庾彩紅,黃海松,曾 鋒,姚立國
(1.貴州大學(xué)現(xiàn)代制造技術(shù)教育部重點實驗室,貴陽 550025;2.貴州省機(jī)場集團(tuán)有限公司,貴陽 550012)
空心杯電機(jī)由于輕量型、小體積、低能耗等特點被廣泛應(yīng)用于醫(yī)療器械、機(jī)器人和無人機(jī)等領(lǐng)域。電樞部件的質(zhì)量對空心杯電機(jī)驅(qū)動性能好壞有重要影響。為了精準(zhǔn)地檢測出空心杯電機(jī)電樞表面微小缺陷,提高生產(chǎn)效率,優(yōu)化生產(chǎn)工藝。急需展開對高精度空心杯電機(jī)電樞表面缺陷更深入的研究,保證高精度空心杯電機(jī)的制造質(zhì)量和產(chǎn)品性能。目前對空心杯電機(jī)電樞的表面缺陷檢測主要依靠人工來篩選。人工檢測速度慢、效率低。隨著人工智能技術(shù)的發(fā)展,深度學(xué)習(xí)[1]算法在目標(biāo)缺陷檢測領(lǐng)域取得了很好的成績。
文獻(xiàn)[2]在R-CNN網(wǎng)絡(luò)的基礎(chǔ)上使用多任務(wù)損失函數(shù),提出了Fast R-CNN算法。文獻(xiàn)[3]在Fast R-CNN網(wǎng)絡(luò)的基礎(chǔ)上結(jié)合了區(qū)域提議網(wǎng)絡(luò)(Region Proposal Network),提出Faster R-CNN網(wǎng)絡(luò)的概念。文獻(xiàn)[4]提出使用改進(jìn)的Faster R-CNN算法對油辣椒灌裝生產(chǎn)線中封蓋面的缺陷進(jìn)行檢測。網(wǎng)絡(luò)輸入使用稀疏濾波與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合提取的重要圖像特征。文獻(xiàn)[5]提出用Mask R-CNN網(wǎng)絡(luò)對齒輪表面缺陷進(jìn)行檢測。文獻(xiàn)[6]提出使用Faster R-CNN算法檢測刨花板表面的缺陷,利用不同的特征提取網(wǎng)絡(luò)下的不同Anchor值設(shè)置模型進(jìn)行訓(xùn)練、驗證和測試。
文獻(xiàn)[7]提出YOLO_v1,檢測速度達(dá)到了每秒檢測45張圖片。原圖片輸入卷積核,按模型的輸出網(wǎng)格劃分,產(chǎn)生多個grid cell。根據(jù)網(wǎng)格中心位置檢測物體所屬類別。Sakai Y等[8]提出聯(lián)合訓(xùn)練算法思想,使用分層的思想訓(xùn)練物體檢測器。YOLO_v3[9-10]重新將分類器應(yīng)用于需要進(jìn)行檢驗測試的任務(wù)中,網(wǎng)絡(luò)應(yīng)用于待檢測目標(biāo)的多個區(qū)域,劃分區(qū)域預(yù)測得分較高的作為實驗結(jié)果。文獻(xiàn)[11]提出用YOLO_v3網(wǎng)絡(luò)對汽車底部危險微小物品進(jìn)行目標(biāo)檢測。文獻(xiàn)[12]利用多尺度訓(xùn)練的YOLO_v3網(wǎng)絡(luò)檢測電力巡檢圖片中的防鳥刺區(qū)域,選取Resnet52作為特征提取網(wǎng)絡(luò)實現(xiàn)防鳥刺部件的識別和故障檢測。
綜上所述,R-CNN系列網(wǎng)絡(luò)檢測精度高但運(yùn)行速度慢,且不滿足實時性檢測要求,僅適用于推薦系統(tǒng)。對實時檢測系統(tǒng)并不適合,尤其應(yīng)用于工業(yè)流水線實時在線檢測??招谋姍C(jī)作為一種輕量型工件,很少有學(xué)者對其進(jìn)行表面缺陷檢測。為解決空心杯電機(jī)電樞表面的微小孔洞缺陷實時檢測問題,提出一種基于YOLO_v4的缺陷檢測方法,實現(xiàn)缺陷位置的檢測以及識別缺陷類別功能。最終通過在檢測平臺上的實驗,驗證了該方法可行性。
YOLO_v4由Bochkovskiy A等[13]于2020年提出,該網(wǎng)絡(luò)是通過結(jié)合新的算法思想對YOLO_v3的子結(jié)構(gòu)進(jìn)行改進(jìn)得來的,實現(xiàn)了算法檢測效率及精度的提高,對微小目標(biāo)的檢測更加友好。YOLO_v4網(wǎng)絡(luò)引入了Mosaic及SAT(Self Adversarial Training)數(shù)據(jù)增強(qiáng)方法豐富輸入圖像,提高YOLO_v4訓(xùn)練網(wǎng)絡(luò)的魯棒性。算法使用CSPDarknet53網(wǎng)絡(luò)提取數(shù)據(jù)集特征,該網(wǎng)絡(luò)包含5個CSP模塊,每個CSP模塊前面增加下采樣方法,卷積核大小為3*3,stride=2。特征圖尺寸的變化尺度依次為608→304→152→76→38→19。CSPDarknet53中用SPP block模塊代替全連接層(Fully Connected Layer),擴(kuò)大了感受野的范圍,提取輸入圖像重要的特征的同時不降低算法的運(yùn)行速度。YOLO_v4框架圖如圖1所示。
圖1 YOLO_v4網(wǎng)絡(luò)框架結(jié)構(gòu)圖
YOLO_v4中的損失函數(shù)采用了CIoU_Loss回歸方式,由三部分組成:
(1)Bounding Box Regression損失,如式(1)所示:
(1)
(2)對于預(yù)測的類別帶來的損失,如式(2)所示:
(2)
(3)對于預(yù)測的置信度的損失,如式(3)、式(4)所示:
(3)
CIoULoss=1-CIoU=
(4)
RCIoU是對CIoU的定義,其中α是做權(quán)衡的一個參數(shù),如式(5)所示:
(5)
其中,v是衡量長寬比一致性的參數(shù),如式(6)所示:
(6)
YOLO_v4網(wǎng)絡(luò)輸出了3個不同尺度的特征圖,每個特征圖對應(yīng)的將輸入圖像分成Si×Si個單元格,檢測目標(biāo)中心落在的單元格負(fù)責(zé)對這個目標(biāo)的檢測,并預(yù)測目標(biāo)位置邊框及邊框的置信度。置信度反映出該邊框內(nèi)含有待識別目標(biāo)的可信程度。如式(7)所示:
(7)
常用于評估目標(biāo)檢測模型的指標(biāo)主要包括三種:IoU(Intersection over Union)交并比、平均精度(Average Percision)、均值平均精度(Mean Average Percision)。
IoU是圖像標(biāo)注區(qū)域與預(yù)測區(qū)域的交集面積占兩者并集面積的分值比。反映的是評價檢測目標(biāo)定位準(zhǔn)確率的一個指標(biāo)。訓(xùn)練的模型的IoU的值越大,表明訓(xùn)練的模型性能越好,預(yù)測精度越準(zhǔn)。M表示圖像標(biāo)注區(qū)域的面積,N表示預(yù)測區(qū)域的面積,X表示兩者交集的面積,那么IoU的計算公式如(8)所示:
(8)
圖例如圖2所示。
圖2 IoU圖示
分類結(jié)果混淆矩陣表示方法如表1所示。
表1 分類結(jié)果混淆矩陣
表格中P代表缺陷空心杯電樞樣本,N代表無缺陷空心杯電樞樣本;T代表結(jié)果識別正確,F(xiàn)代表結(jié)果識別錯誤。
召回率(Recall)反映了數(shù)據(jù)集中具有缺陷空心杯電機(jī)電樞全部被檢測出的比例。精確率反映了空心杯電機(jī)電樞孔洞缺陷的預(yù)測正確率。Precision和Recall表達(dá)式為:
(9)
(10)
以訓(xùn)練網(wǎng)絡(luò)中反映分類器對正例覆蓋能力的recall值為坐標(biāo)軸橫軸,以檢測器識別為正例數(shù)目的precision值為縱軸,對PR曲線進(jìn)行平滑處理。AP就是PR曲線與x軸圍成的圖形面積。
對于連續(xù)的PR曲線,AP如式(11)所示:
(11)
對于離散的PR曲線。AP如式(12)所示:
(12)
mAP為所有類別的平均AP值,如式(13)所示:
(13)
搭建實驗平臺裝置進(jìn)行采集數(shù)據(jù)及驗證YOLO_v4算法檢測空心杯電機(jī)電樞表面缺陷的可行性。圖像采集平臺由CCD相機(jī)、PC機(jī)、鏡頭、勻速轉(zhuǎn)盤、圖像采集卡、LED弧形光源(如圖3所示)。光源、焦距、陰影這些外界因素在采集圖像的時候會影響圖像的質(zhì)量。開始工作前,首先調(diào)整合適的光圈和焦距。檢測實驗中使用Ubuntu16.04系統(tǒng)、英特爾酷睿 i7-1075H處理器,英偉達(dá) GeForce GTX 1650 Ti顯卡。
圖3 圖像采集裝置圖
在空心杯電機(jī)電樞缺陷識別領(lǐng)域,目前沒有公開的大型數(shù)據(jù)集。本實驗所用的數(shù)據(jù)集為自制數(shù)據(jù)集,利用勻速轉(zhuǎn)盤每秒轉(zhuǎn)動15°,進(jìn)行采集一張圖片??偣舶?80張圖像。
圖像數(shù)據(jù)集數(shù)量過小就會使訓(xùn)練的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型過擬合。為了避免這種情況,需要對采集的圖像集采取數(shù)據(jù)增強(qiáng)的方法提高模型的魯棒性和泛化能力。文章中使用數(shù)據(jù)擴(kuò)充法對采集的空心杯電樞圖像進(jìn)行數(shù)據(jù)增強(qiáng)。對空心杯電樞圖像進(jìn)行圖像曝光度、圖像飽和度、圖像色度、圖像旋轉(zhuǎn)(參數(shù)如表2所示),圖4為數(shù)據(jù)增強(qiáng)前后對比。
表2 空心杯電機(jī)電樞孔洞微小缺陷圖像數(shù)據(jù)增強(qiáng)參數(shù)
(a) 曝光(b) 飽和
(c) 色度(d) 旋轉(zhuǎn)圖4 圖像數(shù)據(jù)增強(qiáng)前后對比
空心杯電樞圖像進(jìn)行數(shù)據(jù)增強(qiáng)后,結(jié)合K折交叉驗證(K-fold Cross Validation)對空心杯電樞圖像集進(jìn)行劃分。K折交叉驗證可以更好地估計訓(xùn)練的模型的試驗誤差。將數(shù)據(jù)集Y分為K個完全不相同的數(shù)據(jù)子集。圖像集中的待訓(xùn)練樣本的數(shù)量為X,那么每一個數(shù)據(jù)子集有X/K個訓(xùn)練樣本,對應(yīng)的子集為{y1y2…ys}。隨機(jī)取一個子集作為驗證集,剩余子集作為待訓(xùn)練子集,實驗令K=6。使用K折交叉驗證,模型的性能不會因為數(shù)據(jù)的劃分而出現(xiàn)較大差異。一定程度上降低了模型過擬合,使模型訓(xùn)練結(jié)果更加可靠。
實驗以采集的空心杯電機(jī)電樞圖像為檢測對象。使模型更好地適用本數(shù)據(jù)集,模型的超參設(shè)置為默認(rèn)參數(shù),初始學(xué)習(xí)率為0.001 3,動量和權(quán)值分別設(shè)置為0.88以及0.000 1,設(shè)置待訓(xùn)練模型運(yùn)行迭代輪數(shù)為4000。網(wǎng)絡(luò)訓(xùn)練流程分為模型訓(xùn)練及缺陷識別。
模型訓(xùn)練步驟為:①讀取初始化的網(wǎng)絡(luò)模型及權(quán)重;②讀取空心杯電機(jī)電樞數(shù)據(jù)集,根據(jù)數(shù)據(jù)集樣本的數(shù)量決定迭代次數(shù)尋找最優(yōu)參;③根據(jù)最終訓(xùn)練得到loss值判定模型是否擬合,保存模型訓(xùn)練得到的權(quán)重文件對圖像進(jìn)行測試,檢驗?zāi)P褪欠穹弦蟆?/p>
圖5 模型訓(xùn)練流程圖
獲取適用于識別空心杯電機(jī)電樞表面缺陷的權(quán)重文件之后,使用基于得到的權(quán)重對空心杯電機(jī)電樞數(shù)據(jù)集進(jìn)行目標(biāo)缺陷檢測。缺陷檢測步驟為:①讀取待測空心杯電機(jī)電樞圖片;②引入網(wǎng)絡(luò)模型以及訓(xùn)練的權(quán)重文件;③對讀入的空心杯電機(jī)電樞進(jìn)行檢測。
圖6 缺陷檢測流程圖
YOLO_v4中的特征提取網(wǎng)絡(luò)為CSPDarknet53,將輸入圖像分為兩部分降低復(fù)雜度,圖像分辨率為1440×1080。采集的空心杯電機(jī)電樞圖像中至少有一個微小孔洞缺陷,且缺陷的大小不一,位置不定,保證YOLO_v4網(wǎng)絡(luò)訓(xùn)練得到的模型符合對多種尺度范圍的微小孔洞缺陷進(jìn)行檢測的要求。
以YOLO_v4基礎(chǔ)網(wǎng)絡(luò)對采集的數(shù)據(jù)圖片進(jìn)行訓(xùn)練,算法迭代一次讀取兩張空心杯電機(jī)電樞的圖片,網(wǎng)絡(luò)運(yùn)行迭代到700次左右之后網(wǎng)絡(luò)開始收斂,在迭代了2700次左右訓(xùn)練的模型loss值趨于穩(wěn)定,網(wǎng)絡(luò)基本擬合。迭代過程中損失值及mAP的變化如圖7、圖8所示。
圖7 訓(xùn)練集的損失函數(shù)圖及平均損失函數(shù)圖 圖8 測試集mAP及best mAP
經(jīng)過Loss結(jié)果圖顯示網(wǎng)絡(luò)迭代到2700趨于穩(wěn)定,且在網(wǎng)絡(luò)運(yùn)行迭代了1000次之后,網(wǎng)絡(luò)每迭代120次對數(shù)據(jù)進(jìn)行一次mAP計算。網(wǎng)絡(luò)迭代輪數(shù)運(yùn)行完畢之后,空心杯電樞缺陷檢測結(jié)果顯示loss值為0.63,mAP為0.88。加載網(wǎng)絡(luò)模型權(quán)重驗證模型可行性。測試結(jié)果如圖9所示。
圖9 空心杯電樞圖像缺陷檢驗結(jié)果
表3 空心杯電樞缺陷檢驗結(jié)果
表3說明本次實驗使用72.6 s以88%的正檢率完成了對50個空心杯電樞缺陷樣本的檢測。結(jié)果證明本文提出的方法適用于空心杯電機(jī)電樞表面缺陷的在線實時檢測。檢測結(jié)果出現(xiàn)了漏檢現(xiàn)象,這是由于空心杯電樞表面孔洞缺陷過小不易檢測,而且與采集的圖像質(zhì)量以及人為標(biāo)注的主觀感受這些因素也有關(guān)系。在今后研究中,可運(yùn)用增加卷積層或提取雙層圖像特征提高缺陷識別率。
為了解決空心杯電機(jī)電樞表面孔洞缺陷難以檢測的問題,本文提出一種基于YOLO_v4網(wǎng)絡(luò)框架的表面缺陷檢測方法。以CSPdarknet53作特征提取網(wǎng)絡(luò),增加SPP模塊,擴(kuò)展感受野的范圍。去掉全連接模塊,降低訓(xùn)練難度。搭建實驗平臺采集數(shù)據(jù)并驗證算法。測試單張圖片耗時1.452 s,識別精度達(dá)到88%。結(jié)果證明,YOLO_v4目標(biāo)檢測算法能夠滿足空心杯電機(jī)電樞生產(chǎn)線檢測要求。在實際生產(chǎn)過程中,生產(chǎn)線每道工序的異常都會產(chǎn)生各種缺陷,本文僅檢測了細(xì)微的孔洞缺陷,在今后研究中,結(jié)合多種目標(biāo)檢測方法對工件的質(zhì)量缺陷問題進(jìn)行深入研究。