謝 寧, 譚俊濤, 陳 梁, 黃元毅
(1.上海通用五菱汽車(chē)股份有限公司,柳州 545007;2.湖南大學(xué)汽車(chē)車(chē)身先進(jìn)設(shè)計(jì)制造國(guó)家重點(diǎn)實(shí)驗(yàn)室,長(zhǎng)沙 410082)
白車(chē)身焊接機(jī)器人是集環(huán)境感知、運(yùn)動(dòng)規(guī)劃和控制于一體的系統(tǒng).其中,對(duì)白車(chē)身焊點(diǎn)位置的檢測(cè)是實(shí)現(xiàn)機(jī)器人自動(dòng)完成焊接質(zhì)量檢測(cè)的重要基礎(chǔ)[1].傳統(tǒng)的基于霍夫圓變換的焊點(diǎn)檢測(cè)方法在車(chē)間光照條件不好、油污的影響以及焊點(diǎn)自身的形狀不規(guī)則等情況下,檢測(cè)效果較差.因此,研究復(fù)雜環(huán)境下焊點(diǎn)的檢測(cè)定位方法對(duì)于提升白車(chē)身質(zhì)量有著重大意義.
近年來(lái),鑒于深度學(xué)習(xí)對(duì)目標(biāo)特征具有高度的提取能力,神經(jīng)網(wǎng)絡(luò)被廣泛運(yùn)用到目標(biāo)檢測(cè)的任務(wù)當(dāng)中.目前,主流的檢測(cè)方法主要分為單階段檢測(cè)和雙階段檢測(cè)兩類(lèi)[2].雙階段檢測(cè)先對(duì)檢測(cè)圖像進(jìn)行候選區(qū)域生成,再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)在區(qū)域中進(jìn)行目標(biāo)的檢測(cè),代表網(wǎng)絡(luò)為R-CNN系列網(wǎng)絡(luò)[3].單階段檢測(cè)則省去了候選區(qū)域生成這一步驟,直接在網(wǎng)絡(luò)中對(duì)圖像進(jìn)行特征提取來(lái)預(yù)測(cè)目標(biāo)的位置和類(lèi)別,代表網(wǎng)絡(luò)有YOLO[4]、SSD[5]系列網(wǎng)絡(luò).單目標(biāo)檢測(cè)網(wǎng)絡(luò)的特點(diǎn)是端到端,檢測(cè)速度快,其中,最經(jīng)典的是YOLO(You Only Look Once)系列算法.在車(chē)身焊點(diǎn)檢測(cè)方法研究中,巴文進(jìn)[6]利用基于多輪廓聚類(lèi)分析的類(lèi)圓檢測(cè)方法,相較于霍夫圓檢測(cè)能夠在焊點(diǎn)形狀不理想的情況下具有更好的檢測(cè)效果,但對(duì)于圖像中噪聲較嚴(yán)重的情況難以達(dá)到好的效果;王振興[7]通過(guò)改進(jìn)YOLOv2來(lái)識(shí)別焊點(diǎn),能夠很好的克服在光線(xiàn)環(huán)境過(guò)亮、過(guò)暗以及焊點(diǎn)形狀不規(guī)則的情況下,焊點(diǎn)難以識(shí)別的問(wèn)題;馬亞?wèn)|[8]使用Tiny-YOLOv3算法結(jié)合RTCD圓檢測(cè)算法來(lái)聯(lián)合定位焊點(diǎn)位置,精確率和召回率達(dá)到了98.5%和88.1%,但從識(shí)別效果上來(lái)看,焊點(diǎn)漏檢的問(wèn)題還可以進(jìn)一步改善.
近年來(lái),YOLO系列不斷更新,新的YOLOv7[9]算法是YOLOv4的原三位作者Chien-Yao Wang、Alexey Bochkovskiy和Hong-Yuan Mark Liao提出.YOLOv7在5 FPS到160 FPS范圍內(nèi),速度和精度都超過(guò)了所有已知的目標(biāo)檢測(cè)器.針對(duì)車(chē)間焊點(diǎn)檢測(cè)容易受環(huán)境光、銹跡和污漬影響的問(wèn)題及在線(xiàn)檢測(cè)實(shí)時(shí)性的需求,文中選擇兼具檢測(cè)魯棒性與速度的YOLOv7系列網(wǎng)絡(luò)模型,同時(shí)完成其輕量化模型的訓(xùn)練,降低設(shè)備運(yùn)行性能要求以減小成本,以滿(mǎn)足工廠生產(chǎn)線(xiàn)焊點(diǎn)實(shí)際檢測(cè)要求.
目標(biāo)檢測(cè)神經(jīng)網(wǎng)絡(luò)需要依托數(shù)據(jù)集進(jìn)行訓(xùn)練,文中研究以焊點(diǎn)檢測(cè)為目標(biāo),使用工業(yè)相機(jī)采集白車(chē)身焊接車(chē)間白車(chē)身上4 000張不同光照條件、各種實(shí)際工況下的焊點(diǎn)灰度圖片,以保證檢測(cè)的穩(wěn)定性和準(zhǔn)確性.圖1為一組不同光照條件和干擾情況下的焊點(diǎn)圖像.
圖1 不同環(huán)境下采集的焊點(diǎn)圖像
使用LabelImg標(biāo)注工具對(duì)數(shù)據(jù)集中的焊點(diǎn)目標(biāo)進(jìn)行標(biāo)注,并將標(biāo)注信息保存為Pascal VOC數(shù)據(jù)集格式.將標(biāo)注好的4 000張圖片,通過(guò)Python腳本對(duì)圖片進(jìn)行一系列的尺寸變換(如縮放、裁剪和翻轉(zhuǎn)等),擴(kuò)充到8 000張,其中,5 600 張作為訓(xùn)練集,2 400 張作為驗(yàn)證集.由于數(shù)據(jù)集樣本的數(shù)量和復(fù)雜程度對(duì)網(wǎng)絡(luò)模型的檢測(cè)準(zhǔn)確性和泛用性有很大的影響,網(wǎng)絡(luò)通常會(huì)在加載數(shù)據(jù)集時(shí)對(duì)圖片進(jìn)行預(yù)處理來(lái)間接實(shí)現(xiàn)數(shù)據(jù)集的增強(qiáng).文中通過(guò)以下方式對(duì)數(shù)據(jù)集圖像進(jìn)行增強(qiáng).
(1)對(duì)圖片在HSV顏色空間上進(jìn)行變換、直方圖均衡化、中值濾波等方法對(duì)圖像進(jìn)行增強(qiáng);
(2)對(duì)1張圖片隨機(jī)引入另外3張或8張圖片,通過(guò)Mosaic[10]方法生成一張新的圖片,提升了數(shù)據(jù)的多樣性以及GPU的計(jì)算效率;
(3)隨機(jī)選擇兩張圖片,將一張圖片中的目標(biāo)通過(guò)CopyPaste[11]方法隨機(jī)復(fù)制粘貼到另一張圖片中;
圖2為焊點(diǎn)原圖片經(jīng)過(guò)數(shù)據(jù)增強(qiáng)后輸入神經(jīng)網(wǎng)絡(luò)的圖片.
圖2 經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的焊點(diǎn)圖片
YOLOv7是目前具有最優(yōu)秀性能的端到端目標(biāo)檢測(cè)神經(jīng)網(wǎng)絡(luò)之一,具有檢測(cè)速度快、實(shí)時(shí)性好的特點(diǎn).由于焊點(diǎn)檢測(cè)場(chǎng)景具有單一性,車(chē)身焊點(diǎn)形狀幾乎都為類(lèi)圓形,焊點(diǎn)灰度圖像灰度特征簡(jiǎn)單,且檢測(cè)類(lèi)別僅有焊點(diǎn)一類(lèi),因此,文中采用YOLOv7的簡(jiǎn)化網(wǎng)絡(luò)YOLOv7-Tiny作為焊點(diǎn)目標(biāo)檢測(cè)網(wǎng)絡(luò).
YOLOv7-Tiny網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
YOLOv7-Tiny特征提取網(wǎng)絡(luò)由CBL模塊、改進(jìn)高效長(zhǎng)程聚合網(wǎng)絡(luò)ELAN-T層和MP層構(gòu)成.ELAN-T層作為多分支堆疊模塊,由數(shù)個(gè)CBL模塊拼接而成,最終堆疊模塊的輸入包含多個(gè)分支.ELAN-T層與原始ELAN層的區(qū)別僅在于CBL模塊連接輸出數(shù)量的不同,ELAN-T削減了兩層分支,雖然特征提取能力有所下降,但提升了特征提取的速度.堆疊模塊對(duì)應(yīng)了更密集的殘差結(jié)構(gòu),使網(wǎng)絡(luò)更容易優(yōu)化,緩解模型深度增加帶來(lái)的梯度消失問(wèn)題.
在卷積神經(jīng)網(wǎng)絡(luò)中,經(jīng)過(guò)層層卷積,高層結(jié)果所含的語(yǔ)義特征信息越強(qiáng),但同時(shí)也會(huì)使得目標(biāo)的幾何位置信息越弱,造成位置信息的損失,不利于小目標(biāo)檢測(cè).YOLOv7-Tiny網(wǎng)絡(luò)使用了FPN+PAN的網(wǎng)絡(luò)結(jié)構(gòu),能夠?qū)Σ煌瑢蛹?jí)的特征進(jìn)行信息融合,在不同的尺度上對(duì)目標(biāo)進(jìn)行預(yù)測(cè),網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示.
圖4 FPN+PAN網(wǎng)絡(luò)結(jié)構(gòu)圖
FPN(Feature Pyramid Network)網(wǎng)絡(luò)結(jié)構(gòu)類(lèi)似金字塔,圖片先經(jīng)過(guò)Backbone網(wǎng)絡(luò)一系列卷積操作得到高層結(jié)果,然后,自上而下對(duì)高層結(jié)果進(jìn)行上采樣(Upsample)過(guò)程,同時(shí)融合來(lái)自Backbone網(wǎng)絡(luò)中的一些淺層的信息.FPN網(wǎng)絡(luò)能夠自上而下地傳遞高層的語(yǔ)義特征信息,但是位置信息的傳遞效果不好,特征信息較弱.PAN(Path Aggregation Network)網(wǎng)絡(luò)結(jié)構(gòu)是一個(gè)自下而上的金字塔網(wǎng)絡(luò),能夠?qū)PN網(wǎng)絡(luò)進(jìn)行補(bǔ)充,將底層結(jié)果所含較強(qiáng)的位置信息傳遞到上層,得到的結(jié)果即包含語(yǔ)義特征信息又包含位置消息.最后,我們?cè)诰W(wǎng)絡(luò)的三個(gè)不同尺度上的輸出上對(duì)結(jié)果進(jìn)行目標(biāo)預(yù)測(cè).
通過(guò)FPN特征金字塔,網(wǎng)絡(luò)輸出大中小3個(gè)尺度的加強(qiáng)圖像特征,模型會(huì)分別將這3個(gè)特征傳入檢測(cè)端,檢測(cè)端負(fù)責(zé)將特征圖轉(zhuǎn)換為邊界框和類(lèi)別概率.檢測(cè)端引入隱式表征策略來(lái)細(xì)化預(yù)測(cè)結(jié)果,對(duì)應(yīng)特征圖大小使用3種目標(biāo)尺寸的IDetec檢測(cè)頭.
YOLOv7原版網(wǎng)絡(luò)中默認(rèn)采用的激活函數(shù)為SiLU,具備無(wú)上界有下界、平滑、非單調(diào)的特性,效果較ReLU要好,特別是在較深的網(wǎng)絡(luò)中優(yōu)勢(shì)更明顯.但是考慮到Tiny網(wǎng)絡(luò)結(jié)構(gòu)相較YOLOv7簡(jiǎn)單,且設(shè)備的性能不高,以及對(duì)目標(biāo)檢測(cè)的實(shí)時(shí)性要求,YOLOv7-Tiny采用計(jì)算量較小的LeakyReLU激活函數(shù)來(lái)提升檢測(cè)速度.
評(píng)價(jià)一個(gè)目標(biāo)檢測(cè)神經(jīng)網(wǎng)絡(luò)模型檢測(cè)精度的指標(biāo),一般采用均值平均精度(mean Average Precision,mAP),評(píng)價(jià)模型檢測(cè)速度則是每秒檢測(cè)幀數(shù)(Frames Per Second,F(xiàn)PS).mAP是所有檢測(cè)類(lèi)別的平均精度(Average Precision,AP)求和再除以所有類(lèi)別的平均值.AP值通過(guò)畫(huà)出召回率(Recall)和準(zhǔn)確率(Precision)的曲線(xiàn),計(jì)算曲線(xiàn)圍成的面積得到.將一個(gè)正確的目標(biāo)成功檢測(cè)出來(lái)則為真正類(lèi)(True Positive,TP),將一個(gè)不正確的目標(biāo)檢測(cè)為正確則為假正類(lèi)(False Positive,F(xiàn)P).設(shè)目標(biāo)的總數(shù)有N個(gè),則模型檢測(cè)的召回率為
(1)
模型檢測(cè)的準(zhǔn)確率為
(2)
對(duì)不同的召回率的值記錄對(duì)應(yīng)的最大的準(zhǔn)確率,畫(huà)出R與P的曲線(xiàn)圖,計(jì)算P-R曲線(xiàn)與坐標(biāo)軸圍成的面積就是模型的AP值:
(3)
文中使用基于Pytorch的深度學(xué)習(xí)框架,電腦配置為:顯卡為GTX1050 2GB,CPU為Intel i5-7500 3.40GHz,運(yùn)行內(nèi)存為8G.將5 600張焊點(diǎn)圖片作為訓(xùn)練數(shù)據(jù)集,同時(shí)采用了數(shù)據(jù)增強(qiáng)的方法來(lái)增加樣本.在訓(xùn)練過(guò)程中,計(jì)算每一輪結(jié)果在驗(yàn)證集上的損失值,記錄并保存每一輪的訓(xùn)練結(jié)果同時(shí)更新網(wǎng)絡(luò)權(quán)重,根據(jù)損失函數(shù)對(duì)網(wǎng)絡(luò)自動(dòng)進(jìn)行調(diào)整.訓(xùn)練結(jié)果如圖5所示.
圖5 Loss值曲線(xiàn)
模型訓(xùn)練損失如圖所示,訓(xùn)練500輪左右,驗(yàn)證集損失val_loss曲線(xiàn)趨于穩(wěn)定,模型已經(jīng)收斂.600輪后,雖然訓(xùn)練集損失仍在逐步下降,但val_loss曲線(xiàn)開(kāi)始有上升趨勢(shì),說(shuō)明模型發(fā)生了過(guò)擬合.選擇val_loss最小值對(duì)應(yīng)的結(jié)果作為模型最終權(quán)重進(jìn)行實(shí)驗(yàn).
將訓(xùn)練得到的目標(biāo)檢測(cè)模型在含有2 400張焊點(diǎn)圖片的驗(yàn)證集上進(jìn)行驗(yàn)證,得到最終結(jié)果.不同模型在驗(yàn)證集下的實(shí)驗(yàn)結(jié)果匯總在表中,AP@0.5表示交并比為0.5時(shí)的平均精度,AP@0.5∶0.95表示交并比從0.5到0.95,步長(zhǎng)為0.05的不同交并比的平均精度的平均值.
從表1中的結(jié)果來(lái)看,YOLOv2和YOLOv3的AP@0.5∶0.95值為72.8%和64.9%,但是參數(shù)量超過(guò)50 M,模型過(guò)大不利于實(shí)際部署,檢測(cè)速度也不能滿(mǎn)足實(shí)際需求.YOLOv3-Tiny與YOLOv3相比精度提高了10.4%,模型參數(shù)量為8.6 M,運(yùn)行速度和精度優(yōu)于前兩種算法,但仍不夠理想.相比之下,YOLOv7-Tiny網(wǎng)絡(luò)模型精度、FPS和參數(shù)量分別達(dá)到81.2%、27.83和6.0 M,各方面有顯著提高,雖然精度相比于YOLOv7原網(wǎng)絡(luò)下降了1.1%,但TOLOv7-Tiny網(wǎng)絡(luò)參數(shù)量比YOLOv7減少了30.4 M,檢測(cè)的FPS值更是達(dá)到了27.83,高出YOLOv7網(wǎng)絡(luò)FPS值18.78,更加接近機(jī)器視覺(jué)檢測(cè)幀率的標(biāo)準(zhǔn),在相同設(shè)備條件下運(yùn)行效率更高,對(duì)焊點(diǎn)的檢測(cè)能在保證相當(dāng)精度的情況下更加具有實(shí)時(shí)性.
表1 不同模型對(duì)比結(jié)果
在對(duì)白車(chē)身焊點(diǎn)進(jìn)行精確定位時(shí),基于霍夫變換的圓檢測(cè)算法在大多數(shù)情況下表現(xiàn)情況都很好,但是遇到圖像信息較為復(fù)雜的情況,算法很容易受到噪聲的干擾,導(dǎo)致無(wú)法對(duì)焊點(diǎn)的檢測(cè)出現(xiàn)誤檢、漏檢的情況.
從圖6中可以看出,傳統(tǒng)圖像處理算法在一定程度上能夠檢測(cè)焊點(diǎn)信息,但是算法固定的閾值設(shè)定會(huì)讓檢測(cè)在不同環(huán)境下的效果不穩(wěn)定,一張圖片在不同的閾值下會(huì)出現(xiàn)不同的結(jié)果,而一定的閾值在不同的圖片上可能檢測(cè)效果不好,出現(xiàn)漏檢和誤檢的情況.
圖6 基于霍夫圓檢測(cè)的傳統(tǒng)焊點(diǎn)檢測(cè)方法
圖7是不同光照環(huán)境下,以及存在銹跡或油污的焊點(diǎn)圖片用傳統(tǒng)檢測(cè)方法和基于神經(jīng)網(wǎng)絡(luò)檢測(cè)方法的結(jié)果對(duì)比.
圖7 檢測(cè)方法效果對(duì)比
圖7中使用方框標(biāo)記目標(biāo)的方法為文中的檢測(cè)方法,通過(guò)對(duì)比可知,設(shè)定了固定閾值的傳統(tǒng)焊點(diǎn)識(shí)別無(wú)法同時(shí)滿(mǎn)足不同光照下的焊點(diǎn)檢測(cè),而在圖片中存在銹跡或油污的情況下,圖像邊緣檢測(cè)處理算法會(huì)受到嚴(yán)重的干擾,導(dǎo)致圓檢測(cè)基本無(wú)法識(shí)別目標(biāo),產(chǎn)生漏檢或誤檢的情況.而基于YOLOv7-Tiny神經(jīng)網(wǎng)絡(luò)的焊點(diǎn)檢測(cè)方法,相比于傳統(tǒng)的檢測(cè)算法,能夠識(shí)別出不同環(huán)境下的焊點(diǎn)位置,在焊點(diǎn)形狀不完全時(shí)也具有一定的識(shí)別能力,解決了環(huán)境干擾下焊點(diǎn)檢測(cè)效果差的問(wèn)題,檢測(cè)的魯棒性、檢測(cè)準(zhǔn)確率大幅提升.
針對(duì)汽車(chē)白車(chē)身焊點(diǎn)檢測(cè)問(wèn)題,文中提出了基于輕量化YOLOv7的焊點(diǎn)檢測(cè)方法,建立焊點(diǎn)數(shù)據(jù)集,并將訓(xùn)練得到的模型與傳統(tǒng)焊點(diǎn)檢測(cè)算法進(jìn)行比較.實(shí)驗(yàn)結(jié)果表明,網(wǎng)絡(luò)模型具有參數(shù)少、檢測(cè)精度高的特點(diǎn),AP@0.5達(dá)到了99.3%,單張檢測(cè)時(shí)間為0.036秒,表明該輕量化模型能夠適應(yīng)不同生產(chǎn)環(huán)境下的焊點(diǎn)檢測(cè),實(shí)現(xiàn)在線(xiàn)實(shí)時(shí)焊點(diǎn)質(zhì)量檢測(cè),有效提高車(chē)身焊點(diǎn)自動(dòng)化質(zhì)量監(jiān)測(cè)的效率.