齊金龍 張俊峰 戴賢萍 張勁松 胡陟



摘 要:汽車零部件在實際生產過程中,打磨、拋光等各種無法確定的因素會在零部件的表面留下缺陷,從而嚴重影響車輛的組裝、制造,存在巨大的安全隱患,因此車輛零部件的缺陷檢測十分重要。零部件缺陷檢測已從傳統的手工分類發展為基于機器視覺的方法。本文基于卷積神經網絡對VGG16網絡模型進行改進,提高了模型對汽車零部件缺陷的檢測精度。首先,改進了網絡模型的全連接層;其次,在模型中引入了AMF-Softmax損失函數,在達到更優的聚類效果的同時解決了數據不平衡問題,最終實現了零部件缺陷的識別與定位。與傳統模型的缺陷檢測效果比較表明,改進的VGG16網絡結構模型測試準確率可以達到97.59%,在零部件缺陷檢測方面具有優越性。
關鍵詞: 機器視覺; 缺陷檢測; 卷積神經網絡; VGG16
文章編號: 2095-2163(2021)03-0167-05 中圖分類號: R391.9 文獻標志碼: A
【Abstract】 In the actual production process of automobile parts, polishing, polishing and other uncertain factors will leave defects on the surface of the parts, which will seriously affect the assembly and manufacturing of vehicles, and there are huge safety risks, so the defect detection of vehicle parts is very important. Part defect detection has developed from traditional manual classification to machine vision based method. In this paper, the VGG16 network model is improved based on convolutional neural network to improve the detection accuracy of the model for automobile parts defects. Firstly, the full connection layer of the network model is improved. Secondly, AMF-Softmax loss function is introduced into the model, which solves the problem of data imbalance while achieving better clustering effect. Finally, the paper realizes the identification and location of parts defects. Compared with the traditional model, the test accuracy of the improved VGG16 network structure model can reach 97.59%, which has advantages in parts defect detection.
【Key words】 machine vision; defect detection; Convolutional neural network; VGG16
0 引 言
基于機器視覺的圖像分類是根據圖像特征使用算法對其進行識別,類似于人眼識別的一個過程,車輛零部件的缺陷檢測是圖像分類的一種應用。伴隨人工智能技術的發展,提供了準確更高、識別效果更顯著的缺陷檢測識別分類方法。其中,2種最常用的方法是基于機器學習的支持向量機(SVM)和基于深度學習的卷積神經網絡法(CNN)[1]。
國內外利用機器視覺的方法進行缺陷檢測的研究也越來越多,Han等人[2]提出了基于深度學習的目標檢測算法對輪轂表面缺陷檢測;Liu等人[3]提出了Haar-Weibull-Variance模型,可以對鋼體表面存在的缺陷進行檢測;李瑤等人[4]利用CCD攝像機機器視覺系統對金屬等工業生成板材表面進行在線缺陷檢測。基于機器視覺的檢測已逐步取代人工,大大提高了生產效率,降低了檢測過程中漏檢、錯檢的概率。
目前,在一些汽車制造公司,機器視覺被廣泛用于檢測車輛裝配過程中的缺陷[5]。首先通過相機采集待檢測的零部件圖像,進行圖像預處理,再訓練處理后的圖像,構建信息模板,然后采集目標圖像,提取特征,完成匹配。然而,在檢測車輛零部件缺陷上仍然有許多問題,包括零部件形狀大小不一,以及缺陷的種類,面積的各不相同;獲取的汽車零部件圖像結構復雜,還可能存在諸多不相關因素,噪聲較大,難以進行特征提取。
汽車零部件容易產生缺陷的7個最常見部位包括:前軸左前和中左螺栓、傳動軸、駐車鎖、變速器、專用轉向工具、右大燈定位螺栓和減震器。本研究基于VGG16的改進模型,選取汽車螺栓為缺陷檢測對象。3種典型的螺栓部件缺陷,即頂部裂紋、中部磨損、底部殘余、無缺陷,如圖1所示。
1 VGG模型
卷積神經網絡的深度與其性能之間的變化關系是VGG模型的主要研究方向,網絡結構如圖2所示,具有以下特點:
(1)該網絡模型使用3×3的小卷積核作為濾波器,反復堆疊出一個深度為16~19層的卷積神經網絡。隨著網絡深度的增加,模型的各方面性能也會隨之提升。
(2)VGG16網絡結構含有5個卷積段,每段包含2~3個卷積層,對原始圖片進行等比例縮放。而原始圖片的大小需要調整為3×224×224,初始卷積核大小為3×3×3,中間的池化層采用2×2的最大池化函數進行特征降維。
3×3卷積核如圖3所示。由圖3可知,在無中間池化層中,對2個3×3卷積核進行堆疊,達到的效果能夠替代一個5×5卷積核,即單個5×5卷積的輸出與2個3×3卷積級聯輸出的尺寸完全一樣。除此之外,3個串聯的3×3卷積層產生的參數數量也較少,更少的參數意味著減少過擬合。最重要的是,3個3×3卷積層具有更多的非線性變換。這樣的網絡結構設計,可以確保CNN具有更強的學習功能。VGG模型中都使用了3×3卷積內核和2×2池化內核,可以通過深化網絡結構來提高性能。
VGG16各個卷積段中的卷積核輸出數量依次為:64、128、256、512、512。VGG16模型卷積步驟為:
(1)對2次64個卷積核的卷積進行處理,將處理后的結果進行池化。
(2)經過2次128個卷積核的卷積,仍然進行一次池化。
(3)將結果經過3次256個卷積核的卷積并池化。
(4)還要重復2次3個512個卷積核卷積[6]。
期間每一次卷積處理都要完成一次池化層,所有處理完成后就是全連接層。在卷積過程中,網絡中需要處理的參數量會隨著卷積核數目的增加而減少。
2 基于VGG16的改進模型
為解決檢測目標區域大小不一,圖像缺陷特征提取失敗問題,提升對螺栓零部件的缺陷識別準確度。本文利用VGG16卷積神經網絡的特性,在其基礎上加以改進,可以提高提取螺栓零部件圖像特征和識別精度。
為了提高模型在零部件缺陷檢測的精度,本文在樣本訓練過程中,改變固定層的深度,從而達到對全連接層的改進。同時,通過改進損失函數,減少類內特征的差異性,解決螺栓零部件數據庫不均衡問題。本文基于VGG16設計的VGG-2CF網絡,通過增加卷積特性圖中包含信息數量,從而提高識別能力。
其主要流程如下:
先是采集螺栓零部件數據集,挑選出需要識別的類別圖像,作為訓練集與測試集使用;由于采集的螺栓零部件圖像中存在較多噪聲,在螺栓圖像進行特征提取前,需要進行濾波、去噪、增強等預處理操作; 接著,將整體平均池化后的Conv3和Conv5經過L2歸一化方法解決并實現連接;再將改良完成的生成特征圖當作ROI池化層的輸入;此后,將ROI池化層的結果輸入到全連接層;在此基礎上,建立改進模型,調節超參數;稍后,則由回歸模型得到候選區中缺陷目標的準確位置,調節缺陷區域的邊界范圍;繼而,將訓練改進模型;進一步地,在分類層中,由改進的分類損失函數對候選邊界范圍內的缺陷類別進行判斷;最后,使用測試集,測試和驗證模型。
VGG16的預練模式是通過 ImageNet數據庫的1 000個類別圖片集訓練,可以對1 000個類進行分類。本研究以 VGG16為基礎,對螺栓零件缺陷的圖像數據進行分類,需要用4個標簽 softmax分類層來替換原網絡上的分類層,同時用 ReLU 作為一個激活函數。
全連接層改進步驟如下:全連接層層數和單元數確定,VGG16全連接層為固定的3層結構,即:4 096×4 096×4;對全連接層進行改進,目標是將全連接層設定為2層,網絡層結構為a×4,其中a為首層單元數,分別設a為512,1 024,2 048,3 069,4 096;對第2層全連接層的超參數進行設定,第2層全連接層結構為4 096×b×4,其中b為第2層單元數,此時分別設定b為0,100,1 024和2 048,當第2層單元層設定為0時,收斂最快而且穩定。由以上得出最佳的全連接網絡層為4 096×4。
VGG-2CF網絡設計,首先將VGG的Conv3輸出圖像通過2次濾波,調整為2×2整體平均池化;其次,Conv3和Conv5通過L2歸一化方法設置;最終,通過歸一化方法連接Conv3與Conv5的輸出特征,并且構建特征圖。改進的VGG-2CF和VGG的共用卷積層,有效降低了計算開銷,大大提高了網絡收斂有效性和缺陷的識別精度。
2.1 ReLU非線性激活函數
在神經網絡中數據間的關系通常為非線性關系,本研究使用ReLU作為激活功能,來提高網絡的表征能力。當輸入值小于零時,輸出值為零。如果輸入大于或等于零,則輸出等于輸入。當輸入值為正時,導數為1。其定義可寫為:
在訓練網絡時,與Sigmoid函數相比,ReLU函數的優勢在于:網絡的收斂速度要快得多;只需要一個閾值即可獲取激活值;不會對模型的泛化準確性產生重大影響。
2.2 基于AM-Softmax的改進損失函數
損失函數表示實際和期望值二者間的偏離度,可以促進模型的學習。
Softmax是對神經網絡獲得的多個值進行歸一化處理,值在[0,1]之間。交叉熵損失計算公式可寫為:
Softmax總樣本的丟失公式可進一步表示為:
由于螺栓零部件數據集各個類別的樣本數目相差大,數據不平衡,使用Softmax函數導致識別準確度不高。由于螺栓零部件數據集各個類別的樣本數目相差大,缺陷特征類間差異性較小,及類內差異較大以及數據不平衡問題,使用Softmax函數導致識別準確度不足和分類錯誤,因此Softmax損失函數不適用螺栓零部件檢測。
為了減小缺陷識別的差錯率,本文引入AM-Softmax損失函數。具體計算公式如下:
由于螺栓零部件圖像中,各個缺陷之間的差異較小,缺陷種類的樣本數據不均衡等問題,本文在AM-Softmax損失函數中加入F-measure,構建成AMF-Softmax損失函數[7]。F-measure表示為查全率與準確率的折衷均值,當迭代次數為n時,得到的計算公式為:
AMF-Softmax損失函數有效抑制了訓練效率的降低和圖像信息的遺漏。相應數學公式為:
由于F(n)measure對損失函數帶來的影響,即使得在FasterR-CNN訓練中,可以降低RPN輸出的目標區域特征與其相契合特征間的距離,增加類間特征間的不同,網絡能夠進一步提高待識別區域的目標缺陷的分類準確率。
3 實驗分析
3.1 實驗環境
本文的實驗環境是Python3.5,使用TensorFlow框架完成對零部件的特征提取、參數設置與網絡訓練等。
3.2 實驗數據
本文的零部件缺陷數據來源于汽車生產線,包括4種缺陷,分別是:頂部裂紋、中部磨損、底部殘余、無缺陷。
每一種采集樣本照片600張,總共2 400張原始圖片,訓練集每種500張,總共2 000張;測試集每種100張,總共400張。因為深度學習的樣本數量不足會出現過擬合,必須有足夠數量的樣本,方可確保識別的準確率。為了減小過擬合對樣本采集增加難度,本文通過翻轉、縮放、色度調整等手段處理圖片,從而增加了樣本照片的數量。
圖像旋轉的常用方法是順時針旋轉圖像的中心,當平面繞圓心旋轉270°時,平面上像素的坐標將發生變化。旋轉前的坐標見式(8):
無論是水平,還是垂直鏡像變換,圖像的高度和寬度都不會改變。經過一定的數據擴充后,增加了30 000張圖片,總共有32 400張。這里的正樣本有15 600張,負樣本有16 800張。測試時訓練數據量與測試數據量設置為8∶2,即25 920張進行訓練,6 480張圖像進行測試。訓練數據庫中的25 920張圖片,又包括訓練集和驗證集。數據擴充后的樣本圖像如圖4所示。
由于輸出圖像較為粗糙,背景還有多處小的噪點,要從圖片中提取出目標物體,后續還要進行開運算及二值化處理,這樣能夠顯著提高模型預測的精度。經處理后的清晰目標物體照片如圖5所示。
經過圖像預處理后,改進的VGG16模型經過訓練測試后得到多個缺陷圖片的檢測結果,如圖6所示。
3.3 結果分析
在改進的模型上對訓練集進行訓練,再對訓練好的模型進行測試,通過測試集檢驗改進的模型準確率。訓練集通過SF-VGG卷積神經網絡進行了200次訓練后,改進的VGG16網絡模型訓練以及測試時準確和損失率的變化關系分別如圖7、圖8所示。其中,綠色曲線表示訓練集,紅色曲線表示測試集。
由圖7、圖8可以看出,無論是訓練集、還是測試集,改進的VGG16的準確率都是整體上升的趨勢,損失率都是整體下降的趨勢。因為測試集的數據小于訓練集,曲線有所波動,但準確率和損失率都能夠達到要求。
在此基礎上,研究得到的改進模型和傳統模型的準確率對比值見表1。由表1可知,改進的VGG16網絡模型對于螺栓零部件圖像分類在訓練集上的準確率可以達到98.78%,測試集的精度為97.59%。而傳統SVM方法對汽車零部件的缺陷檢測的準確率只有83.10%,未改進的VGG16網絡模型對汽車零部件的缺陷檢測和識別的準確度為95.26%。這表明改進的VGG16網絡結構比傳統的分類方法具有更高的識別率和魯棒性,提高了網絡模型的檢測效率和準確性,可以對汽車零部件的缺陷進行有效的檢測和分類。同時,改進的VGG16網絡提取方法易于實現,訓練方法簡單,計算復雜度低。
4 結束語
本文提出一種改進的VGG16模型來解決汽車零部件的缺陷檢測問題。基于AM-Softmax的改進損失函數,結合F-measure指標,增大類間特征的差異性,對待檢測物體缺陷區域進行正確分類,提高缺陷識別精度。在VGG16基礎上重新設計網絡結構,增強特征圖像的信息量,提高對較小目標區域的識別能力。改進的VGG16網絡模型,測試集精度從93.25%提高到97.59%,識別精度大大提高。本文只針對車輛螺栓零部件的4種類別缺陷進行了識別和檢測,將來有必要增加零部件和缺陷種類,考慮由于光照、遮擋和圖像不清晰等諸多因素所造成的識別準確率不高的問題,嘗試使用更多改進模型,進一步提高缺陷檢測的效果。
參考文獻
[1] ???吳鵬, 李婷, 仝沖,等. 基于OCC模型和LSTM模型的財經微博文本情感分類研究[J]. 情報學報, 2020,39(1):81-89.
[2] HAN Kai, SUN Muyi, ZHOU Xiaoguang, et al. A new method in wheel hub surface defect detection: Object detection algorithm based on deep learning[C]//2017 International Conference on Advanced Mechatronic Systems. Xiamen, China: IEEE, 2017:335-338.
[3] LIU Kun, WANG Heying, QU Erqing, et al. Steel surface defect detection using a new Haar-Weibull-Variance model in unsupervised manner[J]. IEEE Transactions on Instrumentation and Measurement, 2017, 66(10): 2585-2596.
[4] 李瑤, 王快社, 劉長瑞. 金屬板材表面缺陷檢測發展現狀[J]. 材料導報, 2011, 25(2):238-241.
[5] 傅文軍. 基于5G機器視覺實現某品牌汽車零部件AI缺陷質檢案例[J]. 中國儀器儀表, 2020, 348(3):24-26.
[6] 田佳鷺, 鄧立國. 基于改進VGG16的猴子圖像分類方法[J]. 微型機與應用, 2020, 39(5):6-11.
[7] 吉衛喜, 杜猛, 彭威,等. 基于改進的Faster R-CNN的齒輪外觀缺陷識別研究[J]. 系統仿真學報, 2019, 31(11):24-31.