李 鑫,任德均,任秋霖,曹林杰,閆宗一
(四川大學機械工程學院,四川 成都 610065)
面對國內(nèi)外智能制造的浪潮,以及國內(nèi)人口紅利優(yōu)勢的下降問題,工業(yè)上出現(xiàn)通過自動化、智能化等技術來進行產(chǎn)線升級的需求。汽車輪轂的生產(chǎn)也逐步由半自動走向全自動化生產(chǎn)。本文研究多規(guī)格輪轂焊縫的自動化檢測定位方法。焊接法生產(chǎn)出來的輪轂,在進入氣密性檢測工位前,其焊縫會存在輪轂曲面任意角度,所以需對其焊縫進行定位,使輪轂焊縫最終能停在固定位置附近,為下一步氣密性檢測工位做準備。
在實際生產(chǎn)過程中,輪轂焊縫的定位工作是,在規(guī)定時間內(nèi),人工手動旋轉(zhuǎn)輪轂,實現(xiàn)焊縫停在固定區(qū)域。人工旋轉(zhuǎn)定位焊縫的方法主要存在以下4個問題:
1)焊縫存在顏色多樣、痕跡淺淡、水漬、冷卻液、油污等干擾因素,人工定位耗時耗力,易影響生產(chǎn)節(jié)拍。
2)人工存在主觀性定位偏差。
3)人工存在疲勞性失誤定位偏差。
4)人工產(chǎn)生的定位偏差,會影響氣密性檢測工位的準確性,導致殘次品問題。
為優(yōu)化與解決以上4點問題,本文采用機器視覺方法對輪轂焊縫進行檢測定位。
要建立輪轂焊縫定位自動化模型,需先分析人工焊縫定位流程。人工焊縫定位可以抽取出3個步驟:1)手動慢速旋轉(zhuǎn)輪轂;2)通過視覺尋找焊縫;3)旋轉(zhuǎn)輪轂使焊縫停在固定區(qū)域。反之思考自動化定位流程,可以采用對高速旋轉(zhuǎn)輪轂連續(xù)拍照的方式,獲取圖像數(shù)據(jù),焊縫檢測定位就可以簡化成序列圖像的圖像識別任務,通過圖像檢測焊縫并且計算位置關系,停轉(zhuǎn)輪轂從而定位焊縫。
現(xiàn)今基于視覺的自動化檢測焊縫的方式有很多。例如基于邊緣檢測算法定位焊縫[1]、基于模板匹配、閾值分割和形態(tài)學處理定位焊縫[2]、基于角點檢測與光流法跟蹤的焊縫特征提取與定位方法[3]、基于焊縫三維重構(gòu)法的焊縫無損檢測定位[4]、基于PSO-SVM的焊縫檢測[5]。還有深度學習方法,例如基于Faster R-CNN模型的焊縫檢測定位[6-7]、基于YOLOv3的輪轂和管道環(huán)焊縫檢測[8-9]等。
分析現(xiàn)有的傳統(tǒng)算法在輪轂焊縫識別上的應用可知:輪轂焊縫特征不明顯,任意區(qū)域的水漬、冷卻液、油污干擾、同規(guī)格同批次生產(chǎn)的輪轂焊縫特征存在較大差異,且由于輪轂焊縫斷裂多段的原因,導致多規(guī)格輪轂焊縫的特征歸納成了難點,所以基于傳統(tǒng)算法的視覺檢測算法,如邊緣檢測算法、角點檢測、模板匹配算法等不太適用此項目??紤]到深度學習算法在無人駕駛、人臉識別的成功應用案例以及通過目標檢測方式實現(xiàn)焊縫定位的使用案例,可知深度學習中的基于卷積網(wǎng)絡CNN[10-12]的目標檢測算法可以用于焊縫檢測定位,所以本文采用深度學習的目標檢測算法對焊縫進行檢測定位。
分析現(xiàn)有的深度學習方法在輪轂焊縫識別上的應用得出:工業(yè)檢測項目的要點在于對檢測精度、檢測重復精度、檢測速度的要求。從上述輪轂焊縫檢測案例可知,基于深度學習方法的檢測算法選用的是快速的目標檢測算法,YOLO算法是單階段檢測算法,檢測速度快,但由于無anchor設置,存在檢測精度低、小目標檢測效果差的問題。Faster-RCNN是兩階段檢測算法,通過區(qū)域建議網(wǎng)絡RPN得到較高的檢測精度,但存在檢測速度慢的問題。本文選擇Retinanet[13]模型為基本結(jié)構(gòu),原因如下:
1)單階段檢測算法,檢測速度快。
2)采用Resnet[14]殘差網(wǎng)絡,提高特征提取能力,避免網(wǎng)絡深度的增加,導致網(wǎng)絡性能下降。
3)采用FPN[15]網(wǎng)絡結(jié)構(gòu),提取多尺度特征,增強對多段焊縫特征的學習。
4)采用Focal loss損失函數(shù),解決前景背景類別不平衡問題。
5)在特征提取階段引入自注意力機制,增強網(wǎng)絡特征提取能力。
本文研究高速旋轉(zhuǎn)輪轂的自動化檢測定位方法,并且探討基于卷積網(wǎng)絡的Retinanet及融合了自注意力機制Transformer[16-19]的Retinanet目標檢測算法在輪轂焊縫數(shù)據(jù)集上的檢測效果。
焊縫自動化檢測定位系統(tǒng),包含成像、機械控制、算法處理及人機交互。成像單元選擇條形光源和工業(yè)相機;機械控制部分包含PLC、輪轂旋轉(zhuǎn)機構(gòu)以及相機移動機構(gòu),用于啟停旋轉(zhuǎn)輪轂和調(diào)整相機輪轂相對位置;算法處理及人機交互包含軟件、工控機、顯示器等。成像單元如圖1所示。
圖1 成像單元
焊縫檢測定位的核心思路:目標檢測算法用于對輪轂圖像進行焊縫識別,得到焊縫坐標,通過后處理換算出實際角度,計算輪轂能夠準確停轉(zhuǎn)的停止時間,再發(fā)送信號給PLC使輪轂停轉(zhuǎn)。輪轂焊縫檢測定位流程如圖2所示。
圖2 輪轂焊縫檢測定位流程圖
為能夠更加精確地使輪轂焊縫停在固定區(qū)域,需要在模型檢出率、誤檢率以及后處理方面優(yōu)化,方法步驟如下:
1)擴充、篩選數(shù)據(jù)集,訓練模型提高檢出率,降低誤檢率。
2)設定單個輪轂檢測生命周期及焊縫追蹤次數(shù)閾值,連續(xù)追蹤成功的目標視為檢出,否則視為漏檢,提高檢測精度。
3)設定檢測區(qū)域要求,將反光區(qū)域排除在外,減小誤檢,減小曲面對角度換算的影響,根據(jù)實際效果可調(diào)整檢測區(qū)域。
4)通過記錄時間來減少程序耗時,更加精準地計算輪轂的實時位置。
5)設置采圖信號濾波算法,過濾異常信號,確保輪轂生命周期準確性。
目標檢測算法是輪轂焊縫檢測的關鍵,本文檢測算法將簡化的Retinanet和CoTNet[20]相結(jié)合,是卷積網(wǎng)絡和Transformer網(wǎng)絡相結(jié)合的目標檢測算法。主要通過變種CoT結(jié)構(gòu)替換Retinanet中抽取特征的卷積層,以較小的計算量實現(xiàn)檢測效果的提升。下面將詳細介紹檢測算法和定位方法細節(jié)。
考慮檢測對象存在多規(guī)格輪轂,焊縫存在斷裂、遮擋等問題,所以本文采用Retinanet網(wǎng)絡作為目標檢測網(wǎng)絡,可以增強對局部的、小的特征的學習能力。由于檢測速度要求,Retinanet的骨干網(wǎng)絡采用ResNet18,配合特征金字塔網(wǎng)絡FPN結(jié)構(gòu),最后是6個卷積網(wǎng)絡用于分類和框的預測。接下來對網(wǎng)絡結(jié)構(gòu)的關鍵要素進行介紹。
選用ResNet網(wǎng)絡結(jié)構(gòu)的原因。神經(jīng)網(wǎng)絡是一個函數(shù)逼近器[21-22],理論上通過增加神經(jīng)網(wǎng)絡的深度就能夠?qū)崿F(xiàn)逼近任意函數(shù),就能夠更加好地擬合實際模型。但實際情況是當網(wǎng)絡層數(shù)超過一定深度后,會產(chǎn)生梯度消失和梯度爆炸現(xiàn)象,該現(xiàn)象可通過改變激活函數(shù)為ReLU[23]、使用批量規(guī)范化BatchNorm[24]等方法改善。但檢測效果仍然會降低,且不是過擬合導致的。為了使得深度網(wǎng)絡至少不劣于淺層網(wǎng)絡,就有了使后層網(wǎng)絡變?yōu)楹愕茸儞Q的思想,問題就轉(zhuǎn)換成使網(wǎng)絡節(jié)點更好地實現(xiàn)恒等變換,將傳播方式F(x)→H(x),優(yōu)化為傳播方式F(x)+x→H(x),其中x為輸入特征,F(xiàn)(x)為前向傳播計算的特征,H(x)為融合后的特征。于是引入了殘差塊,組合起來就成了ResNet網(wǎng)絡,ResNet網(wǎng)絡可以根據(jù)檢測任務的需求,選擇合適的網(wǎng)絡深度,例如Res18、Res34、Res50、Res101、Res152等。ResNet網(wǎng)絡結(jié)構(gòu)如圖3所示。殘差塊結(jié)構(gòu)如圖4所示。
圖3 ResNet網(wǎng)絡結(jié)構(gòu)
通道不變殘差結(jié)構(gòu)
結(jié)合通道間信息的殘差結(jié)構(gòu)圖4 殘差網(wǎng)絡結(jié)構(gòu)
選用FPN網(wǎng)絡結(jié)構(gòu)的原因。檢測目標在原圖上是存在尺寸大小的差異,反映到卷積網(wǎng)絡提取特征階段,是提取的特征有不同的大小,所以為了能夠更好地表達不同尺寸目標的特征,選擇使用FPN網(wǎng)絡結(jié)構(gòu)。通過提取多尺度的特征信息,進行對應的融合,從而實現(xiàn)多尺寸目標的檢測,提升了目標檢測效果。在特征層的每個格子上布置候選錨框,通過設置錨框的高寬比以及縮放比,可以在一個格子上生成多個錨框來更好地擬合目標??梢酝ㄟ^K-means聚類算法對目標數(shù)據(jù)集的標注框的高寬比進行聚類,獲取合適的錨框高寬比。焊縫數(shù)據(jù)集標注框高寬聚類結(jié)果如圖5所示。錨框高寬比設為(4,5,6),錨框縮放比設為(0,0.3,0.6)。
圖5 標注框高寬聚類結(jié)果
Retinanet采用ResNet網(wǎng)絡為基本骨架結(jié)構(gòu),選用FPN提取多尺度特征,最后用6個卷積進行分類和框的預測,Retinanet網(wǎng)絡結(jié)構(gòu)如圖6所示。類別預測采用Retinanet提出的損失函數(shù)Focal Loss,而對于定位回歸采用Fast R-CNN[25]提出的平滑損失函數(shù)Smooth L1 Loss。其中Focal Loss能夠較好地解決正負樣本不均衡問題,該函數(shù)為式(1)~式(3)所示。其中Smooth L1 Loss函數(shù)如式(4)所示。
圖6 Retinanet網(wǎng)絡結(jié)構(gòu)
FL(pt)=-αt(1-pt)γlog(pt)
(1)
(2)
(3)
其中,γ為聚焦參數(shù),p為模型估計類別為1的概率,α為類別為1的權(quán)重大小,區(qū)間在[0,1]。通過改變αt的大小,可以控制正負樣本對訓練損失的貢獻,通過(1-pt)γ,可以減少簡單樣本對訓練損失的貢獻,增加困難樣本對損失的貢獻。據(jù)Retinanet相關文獻指出選用α=0.25,γ=2,可以到達較好的效果。
(4)
L1(x)=|x|
(5)
L2(x)=x2
(6)
(7)
式(4)中,x為預測的坐標與真實坐標的差值,Smooth L1 Loss結(jié)合L1損失函數(shù)和L2損失函數(shù)的優(yōu)點,在(-1,1)之外相當于L1損失函數(shù)如式(5)所示,loss最大梯度為1,在(-1,1)之間相當于L2損失函數(shù)如式(6)所示,為了保證Loss的下降梯度和L1一致,添加了個系數(shù)0.5,使得預測與真實差異較小時,梯度最大為1。但一般在實際中使用式(7),增加β參數(shù),用于控制何時使用均方差、何時使用平均絕對誤差。同時在(-1,1)之間,將系數(shù)更改為1/(2β),用以控制最大梯度為1,同時在(-1,1)之間外,將偏置改為0.5β,用以控制x差值較大時對損失函數(shù)的貢獻。一般β設置為1/9。
考慮焊縫在圖像上是多段的單個檢測目標,可以采用基于自注意力機制的檢測網(wǎng)絡,增大網(wǎng)絡對全局特征的學習能力。目前Transformer在圖像識別領域的應用,有單純只使用Transformer的以及結(jié)合卷積網(wǎng)絡同時使用Transformer的檢測網(wǎng)絡。前者驗證與探討了Transformer在圖像識別領域的應用效果與原理,后者探討原理的同時,將Transformer更好地引入圖像識別領域中,提升了神經(jīng)網(wǎng)絡圖像識別的檢測能力。
Carion提出了Detection Transformer(DETR)[26]目標檢測網(wǎng)絡,在COCO數(shù)據(jù)集上進行測試,DETR模型可達到與經(jīng)過嚴格調(diào)整的Faster R-CNN相當?shù)慕Y(jié)果;華科提出YOLOS[27]目標檢測網(wǎng)絡,YOLOS是基于ViT[28]的目標檢測網(wǎng)絡,在中等大小的ImageNet數(shù)據(jù)集上,經(jīng)過預訓練的YOLOS已經(jīng)足以在COCO數(shù)據(jù)集上取得極具競爭力的目標檢測性能;京東AI研究院借鑒了谷歌團隊提出的獨立自注意力(stand-alone self-attention)[29],提出了一種新的Transformer結(jié)構(gòu)CoT,將CoT代替了ResNet結(jié)構(gòu)中的3×3卷積層,得到CoTNet,在ImageNet數(shù)據(jù)集上,對比EfficientNet-B6的84.3%的準確率,SE-CoTNetD-152取得了84.6%的準確率,并且具有快2.75倍的推理速度。在分類檢測分割等任務效果也非常好。
視覺檢測領域中Transformer網(wǎng)絡結(jié)構(gòu)主要包含patch embedding圖像嵌入層、Transformer編碼層、MLP多層感知機層。接下來就網(wǎng)絡結(jié)構(gòu)的關鍵要素進行介紹。圖像嵌入層的作用:對圖像進行特征提取,并將圖像張量轉(zhuǎn)換成Transformer編碼層需要的張量形式。因為將輸入圖像的單個像素作為一個單詞,計算量太大,所以將圖像塊作為一個單詞,展開成一維,最終得到圖像特征的張量,可增加額外張量,用于后續(xù)的目標檢測和類別判斷。
Transformer編碼層的作用:對輸入的圖像張量進行編碼學習。編碼層是由多頭自注意力層MSA和多層感知機層MLP構(gòu)成,通過多頭自注意力機制,全局性地學習檢測目標,通過多層感知機層,將輸入特征映射到更高維度去學習特征。其中多頭自注意力層MSA層,通過查詢矩陣Q(query),鍵矩陣K(key),得到特征之間的注意力分布加權(quán)值,經(jīng)過Sofmax,再乘上特征矩陣V(value)得到輸出。其中多層感知機層MLP層,通過將輸入特征映射到更高維度去學習特征。
CoTNet中替換Resnet的3×3卷積網(wǎng)絡的結(jié)構(gòu)CoT就是上述的Transformer編碼層中的自注意力層,主要是對輸入特征X,通過3×3卷積和1×1卷積,獲得局部的靜態(tài)的上下文信息key以及自身特征value,將key和輸入特征X(即query)連接在一起,通過2個1×1卷積獲得注意力分布,再乘上value,得到動態(tài)上下文信息key2,將2個上下文信息線性結(jié)合得到輸出特征。CoT網(wǎng)絡結(jié)構(gòu)如圖7所示。
圖7 CoT網(wǎng)絡結(jié)構(gòu)
考慮CoT結(jié)構(gòu)只做了替換3×3卷積層,不能完全替換Retinanet中所有的卷積層。提出變種CoT結(jié)構(gòu),下文記作CoTx,是對輸入特征X,進行步長為s,輸出通道為c,卷積核為k×k的卷積,再連接CoT結(jié)構(gòu),使替換不限于卷積核的大小、步長的大小,以及輸入輸出通道變換,可以實現(xiàn)替換任意通用卷積層。CoTx網(wǎng)絡結(jié)構(gòu)如圖8所示。與原版CoT結(jié)構(gòu)相比,改變了問詢矩陣Q,其需要再經(jīng)歷一次卷積獲得鍵矩陣K和特征矩陣V,都是通過與Q進行卷積獲得,同時,在CoTx的輸入x與輸出y維度不同的情況下,也能保證在CoTx結(jié)構(gòu)內(nèi)Q、K、V維度的一致性。
圖8 CoTx網(wǎng)絡結(jié)構(gòu)
焊縫定位的核心思路。在離輪轂焊縫最終停止位置,逆輪轂旋轉(zhuǎn)方向前90°工位處進行拍照檢測,檢測到焊縫后,使輪轂焊縫圖片像素坐標與旋轉(zhuǎn)輪轂焊縫的角度位置實時對應。
首先圖像中焊縫的角度近似等于實際焊縫角度(2D圖像存在輪轂弧度引起的偏差,可通過限制焊縫在中間區(qū)域檢測到,減小誤差),但從拍照到焊縫被檢測到之間存在著時間偏差,所以要消除處理時間導致的圖像焊縫角度與實際焊縫角度的偏差。方法是設立輪轂生命周期,記錄輪轂開始拍照時間、算法處理時間(曝光時間為us級,忽略不計),已知輪轂旋轉(zhuǎn)速度,于是在檢測到焊縫后就可以得到輪轂實時位置,并且經(jīng)過測試后,設計時間補償參數(shù),發(fā)出停止信號后,可以使輪轂焊縫自動停到要求位置附近。于是焊縫定位工作轉(zhuǎn)換成圖像焊縫坐標到焊縫角度的轉(zhuǎn)換。轉(zhuǎn)換公式如式(8)所示。
(8)
式(8)中,θ為按輪轂旋轉(zhuǎn)方向,從焊縫停止點到焊縫的角度,cx為焊縫在圖像上的中軸線,w為輪轂圖像寬度,A為拍照視野內(nèi)實際輪轂角度。轉(zhuǎn)換原理是將寬度方向的坐標與輪轂角度近似為線性關系,假設畫幅正中是270°,通過焊縫在圖像的位置,轉(zhuǎn)換得到焊縫實際角度。
(9)
為了匹配多輪轂檢測定位需求。保證PLC停轉(zhuǎn)輪轂的角度一致,待輪轂統(tǒng)一旋轉(zhuǎn)到固定角度后,發(fā)送停止信號給PLC,角度為式(9)中θ1,t為檢測到焊縫后延遲發(fā)送停止旋轉(zhuǎn)信號的時間段,R為輪轂旋轉(zhuǎn)速度,t1為算法處理時間,t2為經(jīng)過30次輪轂重復定位測試,輪轂能準確??吭谝?guī)定區(qū)域的時間補償,補償為測試經(jīng)驗值,為常數(shù),可正可負,用于補償轉(zhuǎn)速誤差、機械抖動誤差、計算偏離誤差等。
輪轂存在檢測到焊縫與未檢測到焊縫的情況。為保證生產(chǎn)節(jié)拍,輪轂自轉(zhuǎn)2圈半,截止時間前未檢測到焊縫,輪轂自己停轉(zhuǎn)視作異常件剔除,從而不影響下一個輪轂的檢測。設定輪轂生命周期如圖9所示。因為考慮到輪轂的加減速時間,所以前0.4 s不檢測,停轉(zhuǎn)前0.4 s停止檢測。
圖9 輪轂檢測定位生命周期
本文采用的數(shù)據(jù)為某汽車輪轂生產(chǎn)廠家在線生產(chǎn)的4種規(guī)格輪轂焊縫,汽車廠日產(chǎn)輪轂數(shù)量較大,數(shù)據(jù)充足,在可以采集充足數(shù)據(jù)的前提下,不用對數(shù)據(jù)進行數(shù)據(jù)增廣擴充數(shù)據(jù)集。在盡可能保證數(shù)據(jù)集豐富度的前提下,對整體輪轂焊縫數(shù)據(jù)集進行篩選后選取了15474張。為了減小背景對檢測的干擾,以及適配多規(guī)格輪轂焊縫的檢測,通過自動滑臺裝置、移動相機以及設定輪轂規(guī)格相對應的相機ROI,減小了不同規(guī)格輪轂數(shù)據(jù)的差異性。輪轂焊縫數(shù)據(jù)如圖10所示。
圖10 輪轂焊縫
前期針對一個型號輪轂,進行數(shù)據(jù)采集模型測試。在不影響正常生產(chǎn)的前提下,通過人工檢測定位焊縫后,輪轂自轉(zhuǎn)一圈,對旋轉(zhuǎn)輪轂通過Basler面陣相機采集圖像,采集2000個輪轂焊縫數(shù)據(jù)。使用LabelImg軟件對其進行數(shù)據(jù)標注。
中期軟件在線使用中,發(fā)現(xiàn)存在水漬、油污、冷卻液的誤檢,針對誤檢,為了不影響生產(chǎn),提高檢測效果以及減少因誤檢而導致后序鉆孔工序的輪轂報廢,通過人工添加水漬、冷卻液、油污來制作樣本數(shù)據(jù)。針對漏檢,開發(fā)的軟件有自動保存檢測數(shù)據(jù)的功能,可以標注后加入數(shù)據(jù)集。
后期整體輪轂焊縫數(shù)據(jù)集有10000多張,可以根據(jù)實際生產(chǎn)效果對數(shù)據(jù)集進行增加與調(diào)整。
本文模型訓練使用的服務器硬件參數(shù)為NVIDIA GeForce RTX 3080,CPU為Intel Core i9-10900X。系統(tǒng)版本為Ubuntu20.04,開發(fā)平臺為Pycharm,Python版本為Python3.8。本文是在Pytorch深度學習框架下實現(xiàn)的輪轂焊縫檢測定位,Pytorch版本為torch1.8.1、torchvision0.9.1,CUDA版本為CUDA11.1。為了做對比實驗,在此確定共同的超參數(shù),檢測尺寸設為480,批尺寸設為4,選用Adam優(yōu)化器,初始學習率為10-4,學習率衰減率設為0.1,訓練20000步,第14000步學習率衰減。
本文除了提高網(wǎng)絡的檢測能力以供項目實際使用以外,還要精簡網(wǎng)絡以提高檢測效率,并且探索了卷積網(wǎng)絡與Transformer的線性融合方式對檢測效果的影響,以及CoTx結(jié)構(gòu)替換卷積層對檢測效果的影響。
首先精簡Retinanet網(wǎng)絡。對15474張輪轂數(shù)據(jù),選取不同的隨機種子測試3次發(fā)現(xiàn),檢測框全部出現(xiàn)在FPN的P5及P6特征層上,具體分布結(jié)果如表1所示。由此可以將Retinanet網(wǎng)絡中FPN層的P3、P4、P7層去除,可以極大地提升模型訓練速度,同時提升檢測速度,提速1.5倍,去除后的檢測框在特征層上的分布如表2所示。
表1 Retinanet檢測框在特征層上的分布
表2 簡化Retinanet檢測框在特征層上的分布
使用CoTx結(jié)構(gòu)替換Resnet18中的卷積層以及替換FPN中的P5、P6層的卷積層,網(wǎng)絡替換前后詳細結(jié)構(gòu)對比如表3所示。
表3 網(wǎng)絡替換前后詳細結(jié)構(gòu)
共有4種規(guī)格輪轂用于自動化檢測,隨機選取各規(guī)格輪轂焊縫數(shù)據(jù)250張,共取1000張輪轂焊縫數(shù)據(jù)做為訓練集,在剩余14474張數(shù)據(jù)上測試不同的靜態(tài)上下文k1和動態(tài)上下文k2的線性融合策略的檢測效果。評價標準選用F1-score,即精確率與召回率的調(diào)和平均數(shù),在后續(xù)表中簡寫為F1,網(wǎng)絡參數(shù)量Params、運算量MACs、檢測效果如表4所示??梢婌o態(tài)上下文k1和動態(tài)上下文k2的融合,能一定程度地提升網(wǎng)絡檢測效果。
表4 不同k1、k2融合策略對比
使用k1+k2的疊加融合方式,用CoTx結(jié)構(gòu)替換不同的卷積層,檢測效果如表5所示。實驗表明,在檢測效果達到99%的情況下,用CoTx結(jié)構(gòu)替換卷積層,在數(shù)據(jù)集不變的情況下,仍然能夠起到提升模型檢測效果的作用。綜合考慮網(wǎng)絡的參數(shù)量、運算量以及檢測效果,在Retinanet網(wǎng)絡的特征金字塔FPN層中,用CoTx結(jié)構(gòu)去替換P5、P6特征層的卷積層,效率較高。
表5 CoTx替換不同層的檢測效果
重新劃分數(shù)據(jù)集,用12379張圖訓練模型,訓練Retinanet+CoTx(替換P5、P6的卷積層)模型,F(xiàn)1達到99.97%。對比原Retinanet網(wǎng)絡、簡化后的Retinanet網(wǎng)絡,參數(shù)量、運算量、檢測效果對比如表6所示,損失收斂曲線如圖11所示,F(xiàn)1對比圖如圖12所示,Retinanet+CoTx在特征層P5、P6上生成的熱力圖如圖13所示。
表6 網(wǎng)絡檢測效果對比
(a) Retinanet+CoTx
(b) Retinanet
(c) Simple Retinanet圖11 loss下降圖
圖12 F1對比圖
圖13 輪轂焊縫熱力圖
基于表5與表6可知,使用CoTx結(jié)構(gòu)替換Resnet骨干網(wǎng)絡和FPN特征層中的卷積網(wǎng)絡能夠起到提高檢測效果的作用,且替換最后幾個提取特征的卷積層,提升效率會高一點。使用目標檢測算法,檢測輪轂焊縫的檢測效果如圖14所示。輪轂焊縫檢測定位軟件是基于C#、Java開發(fā)的,現(xiàn)場使用的顯卡型號為NVIDIA GeForce RTX 2060,實時檢測畫面如圖15所示。
圖14 輪轂焊縫檢測效果圖
圖15 輪轂焊縫檢測效果圖
本文介紹了基于深度學習的目標檢測算法,提出了一種基于Transformer架構(gòu)的CoTx結(jié)構(gòu),可便捷替換通用的卷積層,探討了CoTx替換不同卷積層對目標檢測效果的影響,測試了CoTx與Retinanet結(jié)合后的目標檢測網(wǎng)絡在工業(yè)項目上的實際檢測效果,還提供了一種工業(yè)焊縫檢測定位的方法。
通過現(xiàn)場實際在線使用,連續(xù)統(tǒng)計30天生產(chǎn)的漏檢和誤檢情況可知漏檢率為0.28%,誤檢率為0.01%,定位精度均滿足±5°的精度要求,平均單張圖檢測時間為7 ms,單個輪轂焊縫檢測時間為1.25 s,能夠較好地滿足企業(yè)生產(chǎn)需求。