田峰,高龍琴,李鷺揚(yáng)
(揚(yáng)州大學(xué)機(jī)械工程學(xué)院,江蘇揚(yáng)州 225000)
多聯(lián)齒輪具有結(jié)構(gòu)緊湊、多種轉(zhuǎn)速輸出的優(yōu)點(diǎn),因此廣泛應(yīng)用于汽車變速箱中。在齒輪的嚙合過程中,齒輪的表面質(zhì)量是影響傳動平穩(wěn)性和可靠性的關(guān)鍵。在齒輪的機(jī)械加工過程中,毛刺不僅影響零件的尺寸精度,還會加劇磨損和增大傳動噪聲。常用來檢測毛刺的方法有目測法、掛絲法、定量法、拍照法等。這些方法基本都需要人工參與,在大批量生產(chǎn)的情況下,不僅效率低下,而且容易因視覺疲勞導(dǎo)致誤判的情況。此外,齒輪輪廓形狀的特殊性,也決定了齒輪毛刺檢測的困難程度。在傳統(tǒng)的機(jī)器學(xué)習(xí)中,特征工程往往需要人工投入大量時間進(jìn)行研究和調(diào)整,而深度學(xué)習(xí)很好地解決了特征提取問題,可以自動學(xué)習(xí)特征和任務(wù)之間的關(guān)聯(lián),還能將低級特征組合成更加抽象的高層特征。使用深度學(xué)習(xí)的方法來代替人工檢測,為齒輪毛刺的自動化檢測提供了一種可能。
文獻(xiàn)[2]中提出了一種針對電機(jī)銅排毛刺生長區(qū)域的缺陷特征提取方法,先采用掩膜算法屏蔽圖片非檢測區(qū)域,再用形態(tài)學(xué)算法構(gòu)造待檢測區(qū)域并進(jìn)行分割,最后通過毛刺分類算法和不同毛刺的閾值,實(shí)現(xiàn)對銅排四類毛刺特征的自動檢測。文獻(xiàn)[3]中搭建了一套基于FPGA平臺的金屬毛刺在線檢測系統(tǒng),通過傳統(tǒng)邊緣檢測算子提取工件輪廓,再利用形態(tài)學(xué)方法去除輪廓,然后利用形態(tài)學(xué)方法去除輪廓邊緣的噪聲,最后分析輪廓曲線中的異常部分,實(shí)現(xiàn)圖像中工件毛刺的檢測與定位。文獻(xiàn)[4]中通過機(jī)器視覺的方法實(shí)現(xiàn)對汽車卡鉗毛刺的檢測,具體方法是將打磨好的工件的二值圖像與待測工件的二值圖像進(jìn)行異或運(yùn)算,然后通過輪廓跟蹤算法找到毛刺區(qū)域的輪廓。以上文獻(xiàn)中的方法對各自的檢測目標(biāo)都有較好的檢測效果,但是目標(biāo)對象的輪廓形狀相對簡單,對多聯(lián)齒輪這種不規(guī)則輪廓形狀的毛刺并不能有很好的檢測效果。
文中的研究對象為大批量生產(chǎn)的三聯(lián)齒輪,由于齒輪毛刺位置的特殊性以及周圍環(huán)境的相似性,傳統(tǒng)的圖像處理方法并不能取得很好的效果。為實(shí)現(xiàn)對齒輪毛刺的快速檢測,采用深度學(xué)習(xí)的方法,通過改進(jìn)YOLO v3算法訓(xùn)練好的檢測網(wǎng)絡(luò)進(jìn)行毛刺偵測,不僅具有較高的精確率,而且具有更快的檢測速度。
2018年,REDMON等提出YOLO v3算法,它采用Darknet53網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),盡管速度上不如YOLO v2(Darknet19),但是彌補(bǔ)了YOLO系列算法在小目標(biāo)檢測上的不足。
(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在識別小目標(biāo)物體的準(zhǔn)確性上有了明顯的提高。
(3)為了使模型更容易學(xué)習(xí),進(jìn)而作出更好的預(yù)測,YOLO v3仍然采用-means聚類的方法解決先驗(yàn)框尺寸確定問題,只是將的值從5增加到了9。3種尺度的特征圖根據(jù)感受野的不同分為大、中、小3個,并且每種特征圖對應(yīng)3個尺寸的先驗(yàn)框。
(4)YOLO算法的損失函數(shù)包括定位損失(先驗(yàn)框中心誤差和寬高誤差)、置信度損失和分類損失。REDMON僅在YOLO v1中明確給出損失函數(shù),而在YOLO v2和YOLO v3中僅是略有提及。其中,在YOLO v3中明確指出,在訓(xùn)練時使用了二元交叉熵?fù)p失來預(yù)測類別。通過查閱相關(guān)資料及其源碼,發(fā)現(xiàn)損失函數(shù)的計(jì)算除了寬、高外,其他誤差損失均使用二元交叉熵。YOLO v3的損失函數(shù)如式(1)所示:
(1)
YOLO v3延用YOLO v2中使用-means算法求取適合樣本的先驗(yàn)框,并采用平均交并比(Average Intersection Over Union,Avg IOU)作為聚類結(jié)果的評價標(biāo)準(zhǔn)。針對本文作者選擇的樣本集,此次實(shí)驗(yàn)選擇12個簇,聚類結(jié)果如圖1所示。
圖1 K-means聚類分析結(jié)果
從圖1中可以看出:隨著先驗(yàn)框個數(shù)的增大而增大;在=1~5時,平均交并比增長很快;當(dāng)增加到9時,圖像變化情況趨于平緩,此時值約為89.7%。
改進(jìn)后的YOLO v3網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。輸入圖像的分辨率為960像素×960像素,經(jīng)過一系列卷積操作,輸出3個尺度的特征圖。改進(jìn)的網(wǎng)絡(luò)中在第2個殘差模塊和第3個殘差模塊之間增加了一個殘差單元數(shù)目為2的殘差模塊。為了降低網(wǎng)絡(luò)的計(jì)算量,此后的網(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é)果進(jìn)行上采樣,與第13個殘差單元輸出結(jié)果進(jìn)行張量拼接,再經(jīng)3+2次卷積得到大小為28像素×28像素的第二尺度特征圖。以相同的方法,融合第9個殘差單元,最終獲得大小為56像素×56像素的第三尺度特征圖。將聚類得到的9種尺寸的先驗(yàn)框按從小到大的順序排列,依次分配給這3個尺寸的特征圖,每個尺度預(yù)測3個先驗(yàn)框。
圖2 改進(jìn)后的YOLO v3網(wǎng)絡(luò)
3.1.1 數(shù)據(jù)集制作與環(huán)境配置
三聯(lián)齒輪的毛刺集中分布在中間齒輪的一側(cè),實(shí)驗(yàn)樣本的標(biāo)記僅針對這種情況,實(shí)驗(yàn)中共采集到圖片1 200張。使用MATLAB中自帶軟件Image Labeler制作樣本標(biāo)簽,并按照8∶1∶1的比例劃分為訓(xùn)練集、驗(yàn)證集和測試集。為了消除圖形畸變的影響,在制作標(biāo)簽前采用張氏標(biāo)定法進(jìn)行校正。
實(shí)驗(yàn)環(huán)境:Windows10 64位操作系統(tǒng),處理器為AMD Ryzen 2700X,顯卡為GTX1080TI,運(yùn)行內(nèi)存32 GB。使用軟件MATLAB R2020a,配置Computer Vison Toolbox和Deep Learning Toolbox工具包。
3.1.2 網(wǎng)絡(luò)訓(xùn)練過程
將訓(xùn)練集放入改進(jìn)后的YOLO v3網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,通過不斷調(diào)整參數(shù),優(yōu)化訓(xùn)練過程,最終設(shè)置迭代次數(shù)為3 000次、初始學(xué)習(xí)率為0.001、L2正則化系數(shù)為0.000 5。改進(jìn)YOLO v3網(wǎng)絡(luò)的損失函數(shù)繼續(xù)采用原YOLO v3網(wǎng)絡(luò)中的損失函數(shù)。訓(xùn)練過程中損失值變化曲線如圖3所示。可以看出:當(dāng)?shù)螖?shù)超過500時,損失值幾乎不再變化。就參數(shù)收斂的整體情況看,網(wǎng)絡(luò)訓(xùn)練結(jié)果較為理想。
圖3 損失值變化曲線
3.1.3 網(wǎng)絡(luò)評價指標(biāo)
實(shí)驗(yàn)中采用召回率(Recall,R)和精確率(Precision,P)作為網(wǎng)絡(luò)評價的指標(biāo)。由于此實(shí)驗(yàn)只需要檢測毛刺這一個類別,故采用平均精度(Average Precision,AP)作為實(shí)驗(yàn)的評價標(biāo)準(zhǔn)。將實(shí)驗(yàn)中的測試集放入改進(jìn)的YOLO v3網(wǎng)絡(luò)和原YOLO v3網(wǎng)絡(luò)中,分別計(jì)算精確率。2種網(wǎng)絡(luò)的精確率-召回率曲線(RP曲線)如圖4所示。
圖4 2種網(wǎng)絡(luò)的精確率-召回率曲線對比
RP曲線與兩坐標(biāo)軸包圍圖形的面積越大,則表示網(wǎng)絡(luò)的性能越好。從圖4可以直觀地看出,改進(jìn)后YOLO v3網(wǎng)絡(luò)的性能更好。
除了準(zhǔn)確率外,實(shí)時性也是網(wǎng)絡(luò)的重要評價參數(shù)之一,可以通過單張圖片運(yùn)行時間來評價。本文作者對相同的數(shù)據(jù)集,分別使用YOLO v3、YOLO v2、Faster-RCNN和改進(jìn)后的YOLO v3網(wǎng)絡(luò)進(jìn)行訓(xùn)練, 結(jié)果如表1所示。隨機(jī)選取測試集中的一張圖片,分別運(yùn)用表1中的4種網(wǎng)絡(luò)進(jìn)行檢測,結(jié)果如圖5所示。
表1 不同網(wǎng)絡(luò)性能對比
從表1可知:YOLO v2的網(wǎng)絡(luò)大小僅為100 MB,但是其檢測時間卻高于YOLO v3;Faster-RCNN網(wǎng)絡(luò)具有最高的平均精度,達(dá)到了97.70%,但它在運(yùn)行時間上并不占優(yōu)勢,而且它的網(wǎng)絡(luò)大小也遠(yuǎn)大于其他3種網(wǎng)絡(luò);改進(jìn)的YOLO v3網(wǎng)絡(luò)在平均精度上僅略低于Faster-RCNN,但它的檢測速度最快,單張圖片檢測時間約為YOLO v3的1/2,網(wǎng)絡(luò)大小約為Faster-RCNN的1/3。
從圖5可以看出:盡管YOLO v2算法在驗(yàn)證集中達(dá)到了較高的平均精度,但是在測試中卻沒有較好的表現(xiàn);另外3種算法的檢測結(jié)果均有較高的檢測精度,其中,改進(jìn)后的網(wǎng)絡(luò)具有更好的檢測效果。例如,圖5(d)中最上方的一個毛刺,在其他3張圖中均沒有檢測出。
圖5 不同網(wǎng)絡(luò)檢測結(jié)果(精確率)對比
針對三聯(lián)齒輪毛刺位置的特殊性以及周圍環(huán)境的相似性,本文作者提出了一種基于改進(jìn)YOLO v3的齒輪毛刺檢測方法。通過增大網(wǎng)絡(luò)輸入的尺寸和調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),改進(jìn)后的網(wǎng)絡(luò)具有更好的檢測效果。在準(zhǔn)確率和召回率上,改進(jìn)YOLO v3網(wǎng)絡(luò)與原YOLO v3網(wǎng)絡(luò)基本保持一致;但是在網(wǎng)絡(luò)體積和檢測速度上,改進(jìn)YOLO v3網(wǎng)絡(luò)更占優(yōu)勢。同時,該檢測方法仍然存在不足:第一,實(shí)驗(yàn)中齒輪單個齒的毛刺并不能看到全貌,單張圖片中最多能檢測到9個齒的部分情況;第二,實(shí)驗(yàn)中的毛刺特征比較明顯且集中,對于更小特征毛刺的檢測并未涉及。如何用最少的次數(shù)實(shí)現(xiàn)對齒邊緣毛刺的全檢,以及對更加細(xì)小的毛刺具有良好的檢測效果,是未來的主要研究方向。