田峰,高龍琴,李鷺揚
(揚州大學(xué)機械工程學(xué)院,江蘇揚州 225000)
多聯(lián)齒輪具有結(jié)構(gòu)緊湊、多種轉(zhuǎn)速輸出的優(yōu)點,因此廣泛應(yīng)用于汽車變速箱中。在齒輪的嚙合過程中,齒輪的表面質(zhì)量是影響傳動平穩(wěn)性和可靠性的關(guān)鍵。在齒輪的機械加工過程中,毛刺不僅影響零件的尺寸精度,還會加劇磨損和增大傳動噪聲。常用來檢測毛刺的方法有目測法、掛絲法、定量法、拍照法等。這些方法基本都需要人工參與,在大批量生產(chǎn)的情況下,不僅效率低下,而且容易因視覺疲勞導(dǎo)致誤判的情況。此外,齒輪輪廓形狀的特殊性,也決定了齒輪毛刺檢測的困難程度。在傳統(tǒng)的機器學(xué)習(xí)中,特征工程往往需要人工投入大量時間進行研究和調(diào)整,而深度學(xué)習(xí)很好地解決了特征提取問題,可以自動學(xué)習(xí)特征和任務(wù)之間的關(guān)聯(lián),還能將低級特征組合成更加抽象的高層特征。使用深度學(xué)習(xí)的方法來代替人工檢測,為齒輪毛刺的自動化檢測提供了一種可能。
文獻[2]中提出了一種針對電機銅排毛刺生長區(qū)域的缺陷特征提取方法,先采用掩膜算法屏蔽圖片非檢測區(qū)域,再用形態(tài)學(xué)算法構(gòu)造待檢測區(qū)域并進行分割,最后通過毛刺分類算法和不同毛刺的閾值,實現(xiàn)對銅排四類毛刺特征的自動檢測。文獻[3]中搭建了一套基于FPGA平臺的金屬毛刺在線檢測系統(tǒng),通過傳統(tǒng)邊緣檢測算子提取工件輪廓,再利用形態(tài)學(xué)方法去除輪廓,然后利用形態(tài)學(xué)方法去除輪廓邊緣的噪聲,最后分析輪廓曲線中的異常部分,實現(xiàn)圖像中工件毛刺的檢測與定位。文獻[4]中通過機器視覺的方法實現(xiàn)對汽車卡鉗毛刺的檢測,具體方法是將打磨好的工件的二值圖像與待測工件的二值圖像進行異或運算,然后通過輪廓跟蹤算法找到毛刺區(qū)域的輪廓。以上文獻中的方法對各自的檢測目標都有較好的檢測效果,但是目標對象的輪廓形狀相對簡單,對多聯(lián)齒輪這種不規(guī)則輪廓形狀的毛刺并不能有很好的檢測效果。
文中的研究對象為大批量生產(chǎn)的三聯(lián)齒輪,由于齒輪毛刺位置的特殊性以及周圍環(huán)境的相似性,傳統(tǒng)的圖像處理方法并不能取得很好的效果。為實現(xiàn)對齒輪毛刺的快速檢測,采用深度學(xué)習(xí)的方法,通過改進YOLO v3算法訓(xùn)練好的檢測網(wǎng)絡(luò)進行毛刺偵測,不僅具有較高的精確率,而且具有更快的檢測速度。
2018年,REDMON等提出YOLO v3算法,它采用Darknet53網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),盡管速度上不如YOLO v2(Darknet19),但是彌補了YOLO系列算法在小目標檢測上的不足。
(1)與大多數(shù)深度學(xué)習(xí)的網(wǎng)絡(luò)一致,為了避免影響網(wǎng)絡(luò)的性能和保證網(wǎng)絡(luò)的結(jié)構(gòu)簡潔一致, YOLO v3也是通過增大卷積核的步長取代池化層的作用。除此以外,Darknet53還借鑒了ResNet的殘差結(jié)構(gòu),不僅解決了梯度問題,也解決了退化問題,明顯改善了網(wǎng)絡(luò)的性能。
(2)YOLO v3借鑒FPN(Feature Pyramid Networks)思想,采用多尺度檢測的方法,這使得YOLO v3在識別小目標物體的準確性上有了明顯的提高。
(3)為了使模型更容易學(xué)習(xí),進而作出更好的預(yù)測,YOLO v3仍然采用-means聚類的方法解決先驗框尺寸確定問題,只是將的值從5增加到了9。3種尺度的特征圖根據(jù)感受野的不同分為大、中、小3個,并且每種特征圖對應(yīng)3個尺寸的先驗框。
(4)YOLO算法的損失函數(shù)包括定位損失(先驗框中心誤差和寬高誤差)、置信度損失和分類損失。REDMON僅在YOLO v1中明確給出損失函數(shù),而在YOLO v2和YOLO v3中僅是略有提及。其中,在YOLO v3中明確指出,在訓(xùn)練時使用了二元交叉熵損失來預(yù)測類別。通過查閱相關(guān)資料及其源碼,發(fā)現(xiàn)損失函數(shù)的計算除了寬、高外,其他誤差損失均使用二元交叉熵。YOLO v3的損失函數(shù)如式(1)所示:







(1)

YOLO v3延用YOLO v2中使用-means算法求取適合樣本的先驗框,并采用平均交并比(Average Intersection Over Union,Avg IOU)作為聚類結(jié)果的評價標準。針對本文作者選擇的樣本集,此次實驗選擇12個簇,聚類結(jié)果如圖1所示。

圖1 K-means聚類分析結(jié)果
從圖1中可以看出:隨著先驗框個數(shù)的增大而增大;在=1~5時,平均交并比增長很快;當增加到9時,圖像變化情況趨于平緩,此時值約為89.7%。
改進后的YOLO v3網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。輸入圖像的分辨率為960像素×960像素,經(jīng)過一系列卷積操作,輸出3個尺度的特征圖。改進的網(wǎng)絡(luò)中在第2個殘差模塊和第3個殘差模塊之間增加了一個殘差單元數(shù)目為2的殘差模塊。為了降低網(wǎng)絡(luò)的計算量,此后的網(wǎng)絡(luò)中殘差單元的數(shù)目減少為原來的1/2,網(wǎng)絡(luò)總層數(shù)較原網(wǎng)絡(luò)減少了約50層。將最后一個殘差單元輸出的結(jié)果,經(jīng)3次卷積操作、一次3×3卷積和一次1×1卷積后獲得大小為14像素×14像素的第一尺度特征圖。將3次卷積后的輸出結(jié)果進行上采樣,與第13個殘差單元輸出結(jié)果進行張量拼接,再經(jīng)3+2次卷積得到大小為28像素×28像素的第二尺度特征圖。以相同的方法,融合第9個殘差單元,最終獲得大小為56像素×56像素的第三尺度特征圖。將聚類得到的9種尺寸的先驗框按從小到大的順序排列,依次分配給這3個尺寸的特征圖,每個尺度預(yù)測3個先驗框。

圖2 改進后的YOLO v3網(wǎng)絡(luò)
3.1.1 數(shù)據(jù)集制作與環(huán)境配置
三聯(lián)齒輪的毛刺集中分布在中間齒輪的一側(cè),實驗樣本的標記僅針對這種情況,實驗中共采集到圖片1 200張。使用MATLAB中自帶軟件Image Labeler制作樣本標簽,并按照8∶1∶1的比例劃分為訓(xùn)練集、驗證集和測試集。為了消除圖形畸變的影響,在制作標簽前采用張氏標定法進行校正。
實驗環(huán)境:Windows10 64位操作系統(tǒng),處理器為AMD Ryzen 2700X,顯卡為GTX1080TI,運行內(nèi)存32 GB。使用軟件MATLAB R2020a,配置Computer Vison Toolbox和Deep Learning Toolbox工具包。
3.1.2 網(wǎng)絡(luò)訓(xùn)練過程
將訓(xùn)練集放入改進后的YOLO v3網(wǎng)絡(luò)中進行訓(xùn)練,通過不斷調(diào)整參數(shù),優(yōu)化訓(xùn)練過程,最終設(shè)置迭代次數(shù)為3 000次、初始學(xué)習(xí)率為0.001、L2正則化系數(shù)為0.000 5。改進YOLO v3網(wǎng)絡(luò)的損失函數(shù)繼續(xù)采用原YOLO v3網(wǎng)絡(luò)中的損失函數(shù)。訓(xùn)練過程中損失值變化曲線如圖3所示。可以看出:當?shù)螖?shù)超過500時,損失值幾乎不再變化。就參數(shù)收斂的整體情況看,網(wǎng)絡(luò)訓(xùn)練結(jié)果較為理想。

圖3 損失值變化曲線
3.1.3 網(wǎng)絡(luò)評價指標
實驗中采用召回率(Recall,R)和精確率(Precision,P)作為網(wǎng)絡(luò)評價的指標。由于此實驗只需要檢測毛刺這一個類別,故采用平均精度(Average Precision,AP)作為實驗的評價標準。將實驗中的測試集放入改進的YOLO v3網(wǎng)絡(luò)和原YOLO v3網(wǎng)絡(luò)中,分別計算精確率。2種網(wǎng)絡(luò)的精確率-召回率曲線(RP曲線)如圖4所示。

圖4 2種網(wǎng)絡(luò)的精確率-召回率曲線對比
RP曲線與兩坐標軸包圍圖形的面積越大,則表示網(wǎng)絡(luò)的性能越好。從圖4可以直觀地看出,改進后YOLO v3網(wǎng)絡(luò)的性能更好。
除了準確率外,實時性也是網(wǎng)絡(luò)的重要評價參數(shù)之一,可以通過單張圖片運行時間來評價。本文作者對相同的數(shù)據(jù)集,分別使用YOLO v3、YOLO v2、Faster-RCNN和改進后的YOLO v3網(wǎng)絡(luò)進行訓(xùn)練, 結(jié)果如表1所示。隨機選取測試集中的一張圖片,分別運用表1中的4種網(wǎng)絡(luò)進行檢測,結(jié)果如圖5所示。

表1 不同網(wǎng)絡(luò)性能對比
從表1可知:YOLO v2的網(wǎng)絡(luò)大小僅為100 MB,但是其檢測時間卻高于YOLO v3;Faster-RCNN網(wǎng)絡(luò)具有最高的平均精度,達到了97.70%,但它在運行時間上并不占優(yōu)勢,而且它的網(wǎng)絡(luò)大小也遠大于其他3種網(wǎng)絡(luò);改進的YOLO v3網(wǎng)絡(luò)在平均精度上僅略低于Faster-RCNN,但它的檢測速度最快,單張圖片檢測時間約為YOLO v3的1/2,網(wǎng)絡(luò)大小約為Faster-RCNN的1/3。
從圖5可以看出:盡管YOLO v2算法在驗證集中達到了較高的平均精度,但是在測試中卻沒有較好的表現(xiàn);另外3種算法的檢測結(jié)果均有較高的檢測精度,其中,改進后的網(wǎng)絡(luò)具有更好的檢測效果。例如,圖5(d)中最上方的一個毛刺,在其他3張圖中均沒有檢測出。

圖5 不同網(wǎng)絡(luò)檢測結(jié)果(精確率)對比
針對三聯(lián)齒輪毛刺位置的特殊性以及周圍環(huán)境的相似性,本文作者提出了一種基于改進YOLO v3的齒輪毛刺檢測方法。通過增大網(wǎng)絡(luò)輸入的尺寸和調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),改進后的網(wǎng)絡(luò)具有更好的檢測效果。在準確率和召回率上,改進YOLO v3網(wǎng)絡(luò)與原YOLO v3網(wǎng)絡(luò)基本保持一致;但是在網(wǎng)絡(luò)體積和檢測速度上,改進YOLO v3網(wǎng)絡(luò)更占優(yōu)勢。同時,該檢測方法仍然存在不足:第一,實驗中齒輪單個齒的毛刺并不能看到全貌,單張圖片中最多能檢測到9個齒的部分情況;第二,實驗中的毛刺特征比較明顯且集中,對于更小特征毛刺的檢測并未涉及。如何用最少的次數(shù)實現(xiàn)對齒邊緣毛刺的全檢,以及對更加細小的毛刺具有良好的檢測效果,是未來的主要研究方向。