王燚瀟,王夢怡,郭佳怡,陸欣怡,方博平,陳雪東
(湖州師范學(xué)院 理學(xué)院,浙江 湖州 313000)
工程機械配件表面瑕疵檢測是一種延長工程機械壽命的有效方法,也是廠家判斷是否需要更換生產(chǎn)零部件的重要依據(jù).傳統(tǒng)的人工視覺檢測主要依靠肉眼觀察工程機械配件表面是否有瑕疵,易受工人個體經(jīng)驗和主觀因素的影響,檢測效率各不相同,檢測效果也良莠不齊.因此,需要一種基于機器視覺的高速度、高精度的表面缺陷檢測方法.
20世紀70年代,美國Cognex公司提出一種應(yīng)用于金屬表面缺陷檢測的Smart View系統(tǒng)[1].20世紀90年代,Baygin、Karakose等針對印刷電路板孔洞缺失問題,運用Otsu閾值化和Hough變換方法提取檢測物體特征,提出一種基于機器視覺的檢測方法[2].21世紀初Lien、Zhao等將Alexnet卷積神經(jīng)網(wǎng)絡(luò)模型與支持向量機相結(jié)合,提出一種新的表面缺陷檢測方法[3].2020年,包曉敏、魯耀文針對印刷電路板采用燈箱、工業(yè)CD相機,以及Labview2018軟件平臺,開發(fā)出基于機器視覺的PCB檢測系統(tǒng)[4].2021年,金順楠、周迪斌等采用缺角定位算法提出一種多孔材料缺陷的檢測方法[5].張旭、黃定江運用Faster R-CNN 和YOLOv3對制作的鋁材缺陷數(shù)據(jù)進行檢測[6].
相比傳統(tǒng)的人工視覺檢測方法,機器視覺檢測方法不受工人個體經(jīng)驗和主觀因素的影響,且更高效、準(zhǔn)確和精細,在降低成本的同時可以長時間運作,還能關(guān)注到人眼檢測不到的信息,更適用于大規(guī)模工業(yè)生產(chǎn)的產(chǎn)品缺陷檢測.目前,目標(biāo)檢測任務(wù)在深度學(xué)習(xí)上有兩種主流方法:第一種方法如Fast R-CNN[7]、Faster R-CNN[8]等,即先得到一些錨點框,再對其進行分類和回歸,分兩步走,具有精確度高、檢測速度慢的特點;第二種方法如YOLO[9]、SSD[10]等,是一種直接由端到端的檢測方法,只有一步,檢測速度快,但精確度不如第一種方法.
本文主要運用YOLOv3-SPP(Spatial Pyramid Pooling)基本算法訓(xùn)練目標(biāo)權(quán)重,再運用新的權(quán)重提出工程機械配件表面瑕疵檢測模型,提升YOLOv3檢測能力,有效針對作業(yè)中的目標(biāo)進行缺陷檢測,并根據(jù)檢測結(jié)果作出生產(chǎn)工具是否磨損的正確判斷,發(fā)出警告,等待換新,切實減少工業(yè)生產(chǎn)的人力、物力、時間等成本.
YOLOv3架構(gòu)(圖1)由骨架網(wǎng)絡(luò)DarkNet 53和檢測網(wǎng)絡(luò)兩部分組成,用于特征提取和多尺度預(yù)測[11].
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv3 network structure
YOLOv3共有53個卷積層,可同時輸入3個不同尺度的特征層用于檢測不同大小的瑕疵,但YOLOv3的特征數(shù)是固定的,導(dǎo)致輸入的圖片大小也必須是固定的,無法滿足多樣化的圖片條件.而對圖片進行不同的變換,如拉伸、裁剪、旋轉(zhuǎn)、映射等,則容易導(dǎo)致圖像失真,無法準(zhǔn)確表達其所含信息,從而影響最終的模型訓(xùn)練精度.
YOLOv3網(wǎng)絡(luò)中,在DarkNet53最后一個卷積層后添加一個SPP(Spatial Pyramid Pooling)池化層(見圖2),不論輸入圖片的尺寸如何,YOLOv3都可以產(chǎn)生固定大小的輸出,從而形成YOLOv3-SPP網(wǎng)絡(luò).
圖2 SPP池化層Fig.2 SPP pooling layer
損失值是指樣本在訓(xùn)練到一個epoch時所損失數(shù)據(jù)的多少,是模型好壞的評價標(biāo)準(zhǔn)之一.
置信度誤差:
分類誤差:
目標(biāo)檢測技術(shù)路線見圖3.
圖3 目標(biāo)檢測技術(shù)路線Fig.3 Target detection technology route
以工業(yè)制品中的截齒為例,采用工廠提供的數(shù)據(jù)集圖片共586張,在訓(xùn)練樣本較少的情況下運用OpenCV將數(shù)據(jù)擴增,得到圖片共4 688張,其中出現(xiàn)問題的圖片3 770張,未出現(xiàn)問題的圖片918張,并將數(shù)據(jù)集按7∶3劃分為訓(xùn)練集和驗證集.具體步驟如下:
(1) 人工標(biāo)注瑕疵點,見圖4.使用LabelImg方法人工標(biāo)注瑕疵點,對象為圖5工件圖中的瑕疵點,得到位置坐標(biāo)為(0,103,124,152,179).其余圖均采用相同方法標(biāo)注,并得到4個瑕疵點坐標(biāo).
圖4 瑕疵點標(biāo)注Fig.4 Defect mark
(2) 采用垂直變換、仿射變換、鏡像變化、圖像平移、水平拼接、透視變換、圖片旋轉(zhuǎn)等方法對有瑕疵的產(chǎn)品進行圖的擴增,將單張圖擴充為原來的8倍,見圖5.
圖5 圖像擴增Fig.5 Image amplification
訓(xùn)練階段采用異步隨機梯度下降法(SDG),動量項設(shè)置為0.9,權(quán)值的初始學(xué)習(xí)率設(shè)置為0.001,最終學(xué)習(xí)率設(shè)置為0.01.學(xué)習(xí)率曲線見圖6.
圖6 學(xué)習(xí)率曲線 Fig.6 Learning rate curve
實驗所用的計算機配置為Intel Core i7-8700 3.2 GHz CPU,NVIDIA Tesla T4 GPU,PyTorch框架,采用多尺度進行訓(xùn)練,訓(xùn)練的迭代總次數(shù)設(shè)置為30,DarkNet網(wǎng)格輸入大小指定為512像素,見圖7.
圖7 參數(shù)設(shè)置Fig.7 Parameter setting
最終得到的結(jié)果見表1.
表1 YOLOv3與YOLOv3-SPP對比實驗結(jié)果
實驗結(jié)果的最終平均精度值mAP為0.77,Loss值為0.43.在損失值較接近的情況下,本實驗采用YOLOv3-SPP產(chǎn)出權(quán)重的測試結(jié)果精確度比YOLOv3平均精確度高0.1,F(xiàn)PS值為42.70,實時監(jiān)測能力明顯提升,達到了更高效、更精確的要求.
本文主要針對工程機械生產(chǎn)實際問題,通過YOLOv3-SPP訓(xùn)練權(quán)重提出工程機械配件表面瑕疵檢測算法.實際結(jié)果顯示,該檢測算法結(jié)果準(zhǔn)確、有效.但由于數(shù)據(jù)集并非一手數(shù)據(jù),經(jīng)人為變換后對檢測的準(zhǔn)確性會有影響.因此,在后續(xù)的訓(xùn)練中應(yīng)增加一手數(shù)據(jù)集,以增加平均精度值mAP,為工程機械配件表面瑕疵檢測提供更精確的權(quán)重和模型.
由于工程機械生產(chǎn)所需的工具零件較多,問題的出現(xiàn)并非只有某點的上凸和下凹兩種情況.在實際的工程制作中,同一流水線會制作不同種類的產(chǎn)品,這說明工程機械配件的生產(chǎn)還可能會出現(xiàn)劃痕、成品表面不平衡、配件原設(shè)計已有上凸和下凹設(shè)計等多種情況.因此,在后續(xù)的研究中可對模型加入Hough算法,根據(jù)原零件的特征自動檢測不同零件的真?zhèn)舞Υ命c.