張昕楠,李 穎,郝涌汀,付靖凱,于 鵬
(沈陽理工大學(xué)機械工程學(xué)院,沈陽 110159)
金屬軸類是機械設(shè)備的基礎(chǔ)零部件,用于轉(zhuǎn)矩傳動和承受載荷。在制造過程中,由于鋼坯原材料、加工方式、工藝流程等的改變,軸類零部件的表面不可避免地產(chǎn)生各類缺陷,這些缺陷將直接影響到其他機械設(shè)備的日常工業(yè)運轉(zhuǎn)和安全生產(chǎn)管理。傳統(tǒng)的檢測技術(shù),如使用熒光磁粉進行檢查,既費時費力,又容易出現(xiàn)誤檢、漏檢等嚴重的錯誤。隨著基于圖像信息的缺陷檢測分析方法的發(fā)展,MENTOURI等[1]開發(fā)出一種利用二值化的統(tǒng)計圖像特征,結(jié)合k最近鄰分類器的缺陷檢測分析方法,可以更準確地發(fā)現(xiàn)熱軋過程中的鋼帶表面的缺陷。SAYED[2]提出了一個全新的紡織領(lǐng)域面料瑕疵點檢測方法,采用了熵濾波和最小誤差閾值分割的技術(shù),可以更加精細地識別出紡織物瑕疵點。LI等[3]通過對卷煙標簽數(shù)據(jù)圖像的采集與標注,并完成相關(guān)檢測實驗,提出了將最小外接矩形應(yīng)用于缺陷形狀的方案,該方案應(yīng)用性較廣和檢測準確性良好。ZHANG等[4]利用小波多尺度分析技術(shù),提出了一種對多紋理車輪胎圖像的缺陷測試方法,該方法通過應(yīng)用缺陷邊界檢測模型,可以有效區(qū)分缺陷與背景紋理并達到實時檢測的目的。URBONAS等[5]提出一種使用快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(faster region-convolutional neural network,faster R-CNN)對木材表面缺陷進行定位和分類檢測系統(tǒng),使木板材表面缺陷準確率達到96.1%,驗證了深度學(xué)習(xí)算法可以應(yīng)用于實木板材缺陷檢測中的可行性。SHI等[6]使用多通道掩碼和掩膜區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對缺陷進行了分類和確定,分類精度超過0.987,極大提高了缺陷定位的速度和準確性。方葉祥等[7]在金屬表面的缺陷研究中使用了改進的YOLOv3算法,主要改進包括使用直方圖均衡化對圖像進行預(yù)處理﹐使用數(shù)據(jù)增強方法模擬現(xiàn)實工作環(huán)境以及優(yōu)化損失函數(shù)來提高模型對表面缺陷分類的準確性。劉洋[8]為了提高金屬表面瑕疵檢測的速度,提出了基于Tiny-YOLOv3的R-Tiny-YOLOv3算法,該算法加入了殘差網(wǎng)絡(luò)以及空間金字塔池化SPP模塊最后選擇CIOU作為損失函數(shù),該算法對金屬表面瑕疵檢測精度達到71.5%,檢測速度達到39.8 fps,能夠滿足金屬工件的實時檢測需求。
以上研究以不同的方式改進了每種缺陷檢測模型的性能,但是針對金屬軸件表面獨特的缺陷缺乏針對性的處理,特別是軸件表面小目標缺陷以及多目標缺陷和不完整軸件的識別和處理能力不足,這導(dǎo)致了缺陷檢測精度低和識別種類不全面,整體檢測模型不理想。針對以上問題,本文提出了一種基于改進YOLOv5的目標軸件表面缺陷的檢測算法,本實驗首先將采集到的目標軸件數(shù)據(jù)圖像進行數(shù)據(jù)增強與擴容,使用labelimg工具分類標注,再將標注好的數(shù)據(jù)圖像導(dǎo)入到已經(jīng)優(yōu)化完成的YOLOv5的網(wǎng)絡(luò)模型進行訓(xùn)練,獲取訓(xùn)練完成后的的權(quán)重數(shù)據(jù)模型,最后采集需要檢測的目標軸件圖像,并進行預(yù)測與分析。
在生產(chǎn)過程中,由于原材料缺陷、加工方式錯誤、加工人員操作不當(dāng)?shù)葐栴},生產(chǎn)完成的軸件會產(chǎn)生表面缺陷的問題,常見表面缺陷有劃痕、凹坑、擦傷3種。同時為解決工業(yè)生產(chǎn)中同時檢測多目標缺陷軸件與不完整軸件漏檢與檢測精度低。本文選用實驗軸件為12.5*71三段階梯軸、8*25二段階梯軸、8*20單頭牙軸、6*30雙頭牙軸。使用圖像采集裝置采集標準正常軸件、部分遮擋的正常軸件、具有劃痕缺陷的軸件、具有凹坑缺陷的軸件、具有擦傷缺陷的軸件和具有多種缺陷軸件的圖像,如圖1所示。
圖1 缺陷軸件圖像
圖像采集設(shè)備如表1所示。根據(jù)軸件缺陷檢測的要求,本文共采集了2417張軸件的原始圖像。
表1 采集設(shè)備
工業(yè)CCD相機采集得到的軸件數(shù)據(jù)集圖像分辨率較高,而被檢測軸件的尺寸卻遠小于原始圖像,因此本文中采用了切圖的方法來處理原圖,將圖像裁切為640*640的尺寸,并將裁切后的圖像準確定位在缺陷特征的中心。為了深度學(xué)習(xí)的準確性,還需要對收集到的原始數(shù)據(jù)圖像進行多種增強處理,擴展數(shù)據(jù)集,增強模型的泛化能力[9]。其中擴容操作包括上下翻轉(zhuǎn)、左右翻轉(zhuǎn)、灰度處理、增強對比度和增大噪聲,以便更好地訓(xùn)練模型,并將這些處理后的軸件數(shù)據(jù)圖像加入到數(shù)據(jù)集中,經(jīng)過不同處理后的圖像如圖2所示。經(jīng)過切圖與數(shù)據(jù)增強處理后的,最終獲得6557張軸件樣本數(shù)據(jù)。
圖2 數(shù)據(jù)增強后的圖像
在開始訓(xùn)練YOLOv5模型前,必須對收集到的數(shù)據(jù)圖像類型進行標注,本文使用labelimg軟件作為數(shù)據(jù)集類別標注工具,其中包括4種標注類別,如圖3所示。分別是軸體,類別為0,標簽為axle;劃痕缺陷類別為1,標簽scratch;凹坑缺陷類別為2,標簽為pit;擦傷缺陷類別為3,標簽為bruise。通過labelimg標注后,可以獲得VOC(xml格式)的標注集,但YOLOv5模型訓(xùn)練必須通過代碼將VOC(xml格式)文件格式轉(zhuǎn)化為yolo(txt格式)文件格式,并且文件名與圖片名需完全一致。并利用代碼對經(jīng)過標記的圖像集進行隨機的分類與劃分,將80%的標注圖像作為訓(xùn)練集,剩余20%的標注圖像則作為測試集。
圖3 標注類別
YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)分為Input、Backbone、Neck和Prediction四部分[10]。其網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示。
圖4 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
Input端包含Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算和自適應(yīng)圖片縮放。Mosaic技術(shù)可以實現(xiàn)對4張圖像的快速、準確的分割、精確的編碼,極大地豐富了數(shù)據(jù)集樣本﹐從而提升網(wǎng)絡(luò)魯棒性。YOLOv3、YOLOv4中模擬訓(xùn)練多個的數(shù)據(jù)集時,僅依靠一個單獨的程序預(yù)測計算初始錨框的值。而YOLOv5則把預(yù)測計算原有錨框的任務(wù)融合到代碼編譯中,以便在模擬訓(xùn)練多個訓(xùn)練集的情況下,實現(xiàn)獲得最佳錨框值。自適應(yīng)圖片能夠根據(jù)實際情況進行調(diào)整縮放,有效地減少了推理時計算量,從而加快目標檢測的速度與進程。
Backbone模塊的基礎(chǔ)架構(gòu)由Focus與CSP架構(gòu)組成[11]。分辨率為640*640*3的原始圖像經(jīng)過Focus架構(gòu)的切片和卷積處理,便可獲得320*320*32的特征圖像(圖5)。CBL模塊一種很有效的卷積計算模型,CSP結(jié)構(gòu)能夠有效地從特征圖中提取出多種有用的信息。并且CSP結(jié)構(gòu)能夠避免梯度信息的重復(fù),其參量占據(jù)整個系統(tǒng)參量的絕大部分。YOLOv5將SPP模型改變到了Backbone模型中,擴大感受野,以便更有效的捕獲各種尺度的特征。
圖5 切片操作
在NECK結(jié)構(gòu)部分中,YOLOv5網(wǎng)絡(luò)模型使用了Fpn+Pan結(jié)構(gòu),并采用了CSP二架構(gòu),從而達到提升網(wǎng)絡(luò)特征融合計算能力的目的。
Prediction還包含了Bounding box損失函數(shù)和NMS[12]。并且YOLOv5采用了GIoU_Loss損失值算法,利用非極大數(shù)抑制來減少多余的邊框,以便于確定出最終的物體檢測點。
鑒于軸件表面缺陷的種類繁多且形態(tài)特征復(fù)雜,在檢測過程中常有小目標缺陷被漏檢和錯檢,原始的YOLOv5模型,因為小目標缺陷相對都會很小,而YOLOv5的特點之一是下采樣倍數(shù)較大,較深的特征圖在模型訓(xùn)練中往往很難學(xué)習(xí)到小目標缺陷和不明顯缺陷的特征信息,所以小目標缺陷檢測效果不佳。為了改善這一情況,因此提出增加小目標檢測層,將較淺特征圖與深特征圖拼接后進行檢測。加入小目標檢測層,可以讓網(wǎng)絡(luò)更加關(guān)注小目標的檢測,以提高檢測的準確性,同時增加小目標檢測頭的錨框,如圖6所示。
圖6 檢測層對比圖
圖中,P5應(yīng)用于如輪廓、結(jié)構(gòu)等信息的深層特征圖,適用于大目標的檢測,這一特征圖所用錨框尺度較大;P3應(yīng)用于包含較多的低層級信息的淺層特征圖,適用于檢測小目標,錨框尺度較小;同理可得,P4則介于兩者尺度之間,應(yīng)用于檢測中等大小的目標;根據(jù)軸件表面缺陷的實際情況,新增加了應(yīng)用于解決圖像中更小的缺陷目標檢測問題的錨框。圖7為改進后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)。
圖7 改進后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
在本文的實驗環(huán)境中,使用NVIDIA GeForce 1060 GPU進行訓(xùn)練和測試,CUDA版本是11.3,Pytorch版本是1.10.0,Python版本是3.7.3,環(huán)境的詳細信息如表2所示。
表2 環(huán)境配置信息
IoU[13],又稱交并比,是一種衡量邊界框準確性的重要度量指標,它反映了detection box(檢測框)與ground truth(真實標簽)的交集和并集的比值,如圖8所示。實際運算中根據(jù)IoU的大小判斷是否有效,一般當(dāng)IoU≥0.5時判斷正確。
圖8 交并比(IoU)
同時,通過混淆矩陣(圖9)分析可知,可以根據(jù)預(yù)測的情況與實際結(jié)果組合將檢測結(jié)果劃分為4種不同的情況:
TP(true positive):根據(jù)模型中預(yù)測出的框,逐一的向該模型的標注框求交并比,若該標注框產(chǎn)生的最大交并比值超過了先前已經(jīng)設(shè)定好的最大交并比閾值,以及該檢測框?qū)?yīng)的標簽值與通過最大交并比計算得到的標注框標簽值相同時,即認定該預(yù)測框為true positive。
FP(false positive):反之,預(yù)測框與所有的框的交并比均不超過閾值,則認為這些預(yù)測框都是錯誤的預(yù)測,即視該檢測框為false postive。
TN(true negative):如果標注框的最大交并比達到了預(yù)先設(shè)置的交并比閾值,而且該預(yù)測框的類別和通過最大交并比操作所得到的標注框類別相同。則認為此預(yù)測框是true negative。
FN(false negative):反之,如果該預(yù)測框?qū)?yīng)的標簽和通過交并比操作所得到的標注框標簽并不相同。則認為此預(yù)測框是false negative。
根據(jù)以上4種情況,可以得到以下3個指標,精度P(Precision)、召回率R(Recall)和準確率A(Accuracy)。并以此獲得綜合評價指標平均精度AP(Average Precision)和平均精度均值mAP(mean AP over calsses),其中AP表示在同一類別下所有檢測結(jié)果的平均精度[14],mAP表示所有檢測類別平均精度的均值[15]。
(1)
(2)
(3)
為證明本文改進后的檢測效果,以及驗證具體改進措施起到的作用,本次實驗還設(shè)置原YOLOv5,SSD以及Faster-RCNN三組網(wǎng)絡(luò)組作為對照組,在相同的訓(xùn)練環(huán)境下,分別使用3組深度學(xué)習(xí)模型在自建數(shù)據(jù)集上進行訓(xùn)練和測試分析,以更加準確地評估改進后YOLOv5模型的性能。其中實驗的總體結(jié)果如表3所示,改進后的YOLOv5網(wǎng)絡(luò)模型相比較于Faster-RCNN網(wǎng)絡(luò)組maP大約有7%提升,相較于SSD網(wǎng)絡(luò)組提升了大約9%,與原YOLOv5網(wǎng)絡(luò)組的結(jié)果進行對比表明,針對于原網(wǎng)絡(luò)的改進措施起到了良好的效果,相對于原網(wǎng)絡(luò)大約提升了4%的精度。
表3 各網(wǎng)絡(luò)檢測結(jié)果
算法的收斂情況如圖10所示,根據(jù)圖中曲線所示,最優(yōu)權(quán)重在改進的YOLOv5網(wǎng)絡(luò)第87次迭代時產(chǎn)生。
圖10 mAP隨迭代次數(shù)變化情況
圖11~圖14展示了部分檢測結(jié)果,檢測對象分別為不完整軸體和多目標缺陷的軸體、凹坑缺陷、擦傷缺陷和劃痕缺陷。該模型網(wǎng)絡(luò)對明顯的缺陷特征如凹坑和擦傷檢測置信度分別高于0.90和0.86、對不明顯小目標的缺陷特征如劃痕檢測置信度高于0.79,且對于鏡頭下顯示不完整軸體和多目標缺陷軸體的檢測效果較好,能夠滿足實時檢測要求。
圖11 不完整軸體和多目標缺陷的軸體
圖12 凹坑
圖13 擦傷
圖14 劃痕
針對軸件表面缺陷檢測的問題,本文提出了一種基于改進的YOLOv5網(wǎng)絡(luò)模型對軸件表面缺陷進行檢測,并使用自建數(shù)據(jù)集進行實驗驗證。
通過增加小目標檢測層來增加對軸件表面小目標缺陷的檢測效果,能夠有效聚焦于目標軸件的檢測,改進的YOLOv5網(wǎng)絡(luò)模型相較于原YOLOv5模型在mAP上提升了7%左右;相較于SSD網(wǎng)絡(luò)模型,提升了9%左右;與Faster-RCNN網(wǎng)絡(luò)組對比,提升了4%左右。
同時通過在自建數(shù)據(jù)集中引入顯示不完整的軸件與多目標缺陷軸件的數(shù)據(jù)圖像,對于多目標缺陷軸件檢測與不完整軸件的檢測效果具有顯著提升,使網(wǎng)絡(luò)可以更有效完成實際生產(chǎn)中多目標軸件缺陷以及鏡頭下顯示不完整軸件的缺陷檢測的任務(wù)。
本文所提及的兩種改進措施,均可以在軸件表面缺陷檢測中有效的提升檢測精度,并且改進的YOLOv5網(wǎng)絡(luò)模型同樣適用于其他工業(yè)生產(chǎn)場景,特別是存在小目標以及多目標的復(fù)雜缺陷檢測領(lǐng)域中。同時改進后的網(wǎng)絡(luò)模型依然還有提升空間,需要進一步研究。