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