石振華,陳 杰
(貴州大學人民武裝學院信息工程系,貴州 貴陽 550025)
缺陷檢測是工件生產過程中的重要環節之一。工件缺陷很大程度上影響了其表面質量及物理性能。隨著智能制造、工業4.0等概念的相繼提出,依靠人工檢測的方式已無法滿足企業對生產效率的需求,企業轉型日益迫切[1]。基于機器視覺的檢測方法是實現工件表面缺陷檢測的有效途徑。
現有的缺陷檢測方法大都是基于傳統機器學習方法。即先對圖像進行濾波等預處理,經人工特征提取圖像特征后再進行缺陷識別。例如,文獻[2]使用Contourlet 變換將樣本分解為不同方向及尺度的子帶,用以形成高維特征向量,隨后將降維處理后的特征向量送入SVM 分類器中進行鑄坯缺陷識別,取得了優于基于Gabor 小波特征提取得到的識別方法;文獻[3]針對形態復雜的工件表面缺陷難以分類問題,提出了一種基于缺陷自適應聚類的方法,該方法通過改進局部密度峰值確定聚類中心點和數目后,使用譜多流形聚類法分離缺陷并實現檢測,實驗結果均優于Kmeans 聚類法、普聚類法;文獻[4]提出一種基于像元搜索算法的缺陷檢測算法,以解決復雜背景下工件表面缺陷難以區分的問題,該方法使用改進濾波算法對圖像去噪,之后以像元搜索法確定背景、初始目標及偽目標區域,取得了較高的準確度。以上方法實現過程中,樣本預處理方法及特征選擇將對缺陷檢測質量優劣性產生影響。
近年來,深度學習網絡在計算機視覺、語音識別、自然語言處理等領域取得了較大突破。其中,基于卷積神經網絡(CNN)的目標檢測算法正逐漸開始應用在工業領域[5-6]。擬將目前性能較優秀的Yolo V3 深度目標檢測網絡[7-9]應用于工件表面缺陷檢測,并針對數據集特點調整模型結構和預處理方式,以改善檢測方法的魯棒性,提升檢測性能。
用于驗證所提方法可行性的實驗對象為一種環形工件。該工件具有形狀穩定、單一、樣本數量較少的特點。原始圖像均為使用工業灰度相機拍攝到的環形工件缺陷圖,包含無缺陷、表面劃痕、表面凹坑、表面磨損共計200 張圖像,每一類樣本數量均為50 張。為使得檢測過程滿足工業領域實時性和準確性的需求,此處將原始圖像尺寸歸一化為320*320 大小,這樣的尺寸可以令算法在不破壞圖像有用信息的前提下,提升檢測速度。此后對歸一化后的圖像進行數據增強操作[10]。數據增強方法主要選取了旋轉、平移、縮放及水平翻轉。這些方法并沒有改變圖像中的像素值大小,而僅僅是變換了像素值的位置。所以,具有平移不變性學習能力的卷積神經網絡能自適應地學習到更多有用的、高維度的特征用于后續的識別及定位過程,避免出現過擬合現象。數據增強流程,如圖1 所示。

圖1 圖像預處理流程Fig.1 Image Preprocessing Process
Yolo 目標檢測的基本思想是使用回歸方式獲取圖像的類別和位置。該方法先后共有3 個版本,各版本均不斷與先進網絡結構和檢測思想相結合以提升模型性能,是實際工程中常使用的目標檢測算法。其中,Yolo V3 因使用了殘差神經網絡DarkNet53 作為特征提取網絡,在保證檢測速度的前提下得到了更高的識別正確率,故這里所提表面缺陷檢測方法將以Yolo V3 目標檢測網絡為基礎進行調整。具體所設計的模型結構,如圖2 所示。

圖2 缺陷檢測模型結構圖Fig.2 Defect Detection Model Structure
圖中,DBL 的全稱為Darknetconv2d-BN-Leaky,即在卷積層后加入了批標準化(Batch Normalization,BN)與Leaky ReLU 激活函數。使用BN 可以使得輸出特征各維度均值為0,方差為1。這使得當訓練神經網絡時,參數更新過程的網絡層次耦合問題得以解決,并保留了網絡的非線性變化能力。BN 算法可表示如下[11]:

式中:γ、β—自適應學習參數;x^i—標準化后的像素點,更新方式為反向傳播算法。BN 的作用是使特征具備一定的非線性。Leaky ReLU 隸屬ReLU 激活函數類,ReLU 函數類中各激活函數的不同之處主要在于對負值區間的映射。Leaky ReLU 函數的表達式如下:

式中:ai—固定參數,取值范圍為(1,+∞)。
殘差塊Res 由殘差單元及DBL 構成,樣本圖像在DarkNet網絡中的變化過程和該網絡具體的殘差結構,如表1 所示。

表1 DarkNet 參數設置表Tab.1 Parameter Setting Table of DarkNet
標準Yolo V3 網絡選擇8 倍降采樣后的特征圖為基礎用于檢測對象中的小目標。由于環形工件的表面缺陷普遍尺寸較小,這樣的處理方式容易丟失微小缺陷位置信息,導致最后出現錯檢或漏檢現象。為解決上述問題,此處構建的網絡將8 倍降采樣后的特征圖進行2 倍上采樣后,與之前4 倍降采樣后的特征圖進行拼接,以獲取原始樣本圖像中更多的小目標信息。經過特征提取后,Yolo V3 借鑒了Faster R-CNN 中anchor boxes 的思想,以Kmeans 聚類的方式選取固定大小的區域候選框(anchors)。具體地,采用平均重疊度(Average Intersection over Union,Avg IoU),即生成的RoI 與真實目標窗口(Ground Truth,GT)交集與并集的比例值的平均值作為判別依據,其目標函數為:

式中:B和C—檢測目標及簇的中心;n和k—樣本數量與簇的個數;nk—第k個聚類中心中的樣本數量;i與j—樣本即聚類中心的索引值;IIoU(B,C)—簇的中心框與聚類框的交并比。
Yolo V3 在COCO 數據集中共使用3 種下采樣尺度(8、16、32 倍)對應的9 種大小候選框用于目標檢測。為保證算法的快速性和實用性,這里僅選擇4 倍及8 倍降采樣后的兩種尺度進行聚類,以得到適合檢測環形工件缺陷的初始候選框,減少冗余候選框的產生。最終得到的六組預選框的參數為:(18,26)、(28,25)、(25,35)、(36,45)、(51,32)、(35,56)。
Yolo V3 是一個端到端的網絡模型,其訓練時的損失函數主要包括如下四個部分:中心坐標損失、寬高坐標損失、預測類別損失及置信度損失。其中,中心坐標損失可表示為:

實驗機構主要由圖像采集模塊及分析模塊構成。前者的主要組成為:工業灰度相機、LED 弧形光源、鏡頭以及遮光板,其整體結構,如圖3 所示。

圖3 圖像采集模塊實物圖Fig.3 Image Acquisition Module
分析模塊的組成為:Intel Core i7 9700K 處理器,主頻3.6GHz;內存為32GB;GPU 選用兩塊GeForce 1080TI;操作系統為Ubuntu14.04.2;深度學習框架選用Keras。實驗前將預處理后的4 類樣本(含無缺陷樣本)共計1000 張圖像打亂,從每一類樣本選取80%作為訓練集,余下20%作為驗證集。
網絡訓練時的主要參數設定,如表2 所示。此后,將整個數據集遍歷40 次,所得到的表面缺陷檢測網絡訓練損失函數曲線,如圖4 所示。

表2 訓練參數設置表Tab.2 Training Parameter Setting

圖4 損失函數變化曲線圖Fig.4 Loss Function Curve
網絡性能評價主要依據訓練好的網絡是否具備良好的魯棒性,即網絡在驗證集中的表現。驗證集主要由未經訓練的200 張樣本圖像構成,每種類別均有50 張圖像,部分圖像含有多種缺陷,此處將其歸類于每一類樣本中。得到的最終檢測效果,如圖5所示。

圖5 檢測效果圖Fig.5 Test Effect Drawing
為定量地衡量檢測結果,此處以準確率AR、召回率Re 作為性能評價指標,兩者可由下式表示:


式中:XTP—正確預測到缺陷的數量;XFP—在沒有缺陷的情況下錯誤預測到缺陷的數量;XFN—在有缺陷的情況下預測結果為正常的數量;XTN—在正確預測到無缺陷的數量。
上述指標計算結果,如表3 所示。同時可繪出檢測結果的混淆矩陣圖,如圖6 所示。

表3 驗證集檢測結果Tab.3 Validation Set Test Results

圖6 檢測結果混淆矩陣圖Fig.6 Confusion Matrix of Test Results
從表3 和圖6 可知,缺陷檢測網絡在驗證集中取得了較好的檢測效果。總共僅有10 個樣本出現了漏檢、錯檢情況。其中,正常樣本和劃痕缺陷、劃痕樣本與凹坑樣本最易出現混淆,少量的凹坑樣本和磨損樣本會相互誤判。此外,樣本圖像的成像質量、預處理方式也會對最終的實驗結果造成一定影響,但實驗結果仍滿足實際生產中對檢測精度的要求。
為進一步測評網絡性能,實驗選取經典的機器學習圖像檢測方法,即特征提取+BP 神經網絡[12]、特征提取+SVM[13],以及基于VGG-16 的Faster RCNN 網絡[14]、未針對本數據集改進的Yolo V3深度學習網絡與所提網絡進行缺陷檢測實驗對比。前兩種機器學習模型通過OpenCV 庫中detectMultiScale 函數實現多尺度目標檢測,所有檢測模型均在相同的訓練集、驗證集中訓練和測試。各模型的主要特征提取方式及在驗證集中的實驗結果,如表4 所示。

表4 各模型運行結果對比表Tab.4 Comparison of Model Operation Results
從表中可知,所提檢測方法在準確率上優于其與對比方法,單次運算速度為0.032s,能保證大多數情況下的檢測需求。由于針對實驗中的環形工件缺陷特點修改了用于特征融合的網絡結構,該方法比未經改進的標準Yolo V3 網絡具有更好的表現。同時,三種深度學習方法正確率明顯優于常規機器學習方法,這主要是因為深度學習網絡能自適應的學習和保留圖像的高維特征,從而免去了根據人工經驗手動提取特定特征這一步驟。
提出了一種基于Yolo V3 目標檢測模型的表面缺陷檢測方法。首先,在圖像預處理階段使用了數據增強方法,擴充了樣本數量,為后續深度學習的訓練過程提供保證,避免出現過擬合;其次,針對環形工件缺陷數據集形狀單一、缺陷尺寸普遍偏小的特點,選擇4 倍、8 倍降采樣后的特征圖進行融合用于檢測對象中的小目標,并減少預選框的數量,保證了算法的準確性和實時性;最后,搭建圖像采集模塊和分析模塊進行實驗,以準確率和召回率作為指標評估算法效果,并與其它類型的檢測網絡對比,驗證了所提方法的有效性。但是,由于實驗對象僅為環形工件缺陷樣本,這里所提方法的適用對象具有一定局限性,未來將繼續結合更多的網絡結構,探討該方法在不同數據集及工況下的改進思路。