閆曉明,朱立忠
(沈陽理工大學 遼寧 沈陽 110159)
目前應用于工程領域的設備零件趨向于復雜化和精密化,提高線路板的缺陷檢測率是保證質量的重要方面之一。在不同的生產環(huán)境因素下,產生了不同種類的缺陷,例如缺口、毛刺、開路、短路、漏焊和余銅等,對后續(xù)的成品檢測增加了難度,也降低了成品率。隨著深度學習算法研究的不斷深入[1-3],將深度學習算法應用到小目標缺陷檢測的優(yōu)勢逐漸表現出來,也收獲了很好的實驗成果。
李正明等[4]提出了一種基于復雜算法的圖像檢測技術,不依靠原始數據樣本量,對常見缺陷進行檢測,但是結構復雜不適用于現在生產設備。劉西鋒等[5]提出了輪廓提取的檢測方案,通過定位圖像信息,進行對應的殘差運算,根據缺陷定位圖外圍數據一一匹配,降低了匹配的效率。李云峰等[6]提出根據線路板檢測圖的像素分布,建立梯度關系,對目標信息進行濾波和去噪處理,將特征關系分類處理以實現缺陷檢測。
目前AOI技術在線路板缺陷檢測方向有了廣泛應用,相比于傳統檢測方法,其檢測速度、檢測精度、檢測成本、設備維護等都有一系列優(yōu)點。然而在實際檢測中,線路板生產線每天檢測的數據量極大,如果不改進算法會增加檢測設備的內存占用量,進而影響目標檢測的精度。
為了解決這些問題,本文將深度學習的YOLOv4算法骨干網絡進行相應改進,對網絡的激活性能加以優(yōu)化,降低內存的消耗的同時,提高檢測精度和檢測效率,以適應生產的需要。
YOLO算法可以實現目標檢測的實時性,使其應用于實際工控線路板的生產線檢測成為了可能。YOLO算法的設計流程是將輸入的待檢測圖像經過神經網絡的卷積運算,直接給出輸入圖像的位置信息、邊界信息、類別信息,算法的特點是不會對原選區(qū)內的特征進行提取,從而提高了檢測的速率。隨著該算法的不斷演進,目前YOLOv4算法已經進行了四代的改進,保留了其實時性的特點,而且實現了缺陷檢測的高識別率和高檢出率。YOLOv4網絡框架分為骨干網、頸部網和預測網3個部分。作為目標檢測的模型之一,相對于YOLOv3進行了很多方面的改進,包含主干網絡架構、激活函數、損失函數等,其訓練算法也進行了優(yōu)化,以適應小目標檢測的需要。
YOLOv4采用Darknet53中的跨階段部分網絡來構建CSPDarknet53骨干網,CSPDarknet53的訓練過程中對內存的消耗量和占用率很大,包括接近30個卷積層和2 700多萬個卷積參數,如果能對骨干網優(yōu)化成輕量級的同時,保持識別精度的不變則會很大程度減小運算迭代次數,提高檢測效率。
實驗中將CSP網絡替換成輕量級的可分離卷積網絡,對特征圖的不同特征建立關聯圖層,改進網絡分成兩個部分,縱向卷積層和逐點卷積層。第1部分對每個通道內的輸入數據進行濾波,并對每個濾波器的特征向量進行卷積運算。第2部分是將第1部分卷積通道產生的縱向卷積特征每個像素點加減操作,剔除對結果差異影響較少的干擾變量,增強目標像素點的特征向量維度。濾波器的大小可根據卷積參數進行相應調節(jié),以實現實時卷積計算。改進后的骨干網絡見圖1。
在應用YOLOv4網絡檢測線路板缺陷的過程中,激活函數的改進對激活功能會有一定優(yōu)化,而且會改善檢測的功能和準確性。不同的激活函數會影響檢測性能,在分析不同激活函數下檢測的結果后,進行實驗對比,確定采用激活功能最優(yōu)的激活函數Mish以實現激活功能,取代原始的Leaky ReLU激活函數。
圖2顯示了幾種激活函數的對應圖像,激活函數的不同會影響訓練的收斂功能,由于訓練文件中包含大量線路板缺陷的不同特征的數據集,可以很好地測試其特性,以此來優(yōu)化選擇的激活函數。
Mish激活函數的函數特性可以避免訓練引起的過飽和問題,其激活功能可以解決訓練過程的梯度問題,而且在訓練過程中會更改權重參數,更新激活函數的參數可以確保網絡中的每個節(jié)點都有不為0的梯度,得到損失函數局部最優(yōu)的結果,Mish激活函數不是單調遞增或者單調遞減函數,這有助于我們能有更多的特征信息被提取到神經網絡中,穩(wěn)定網絡中的梯度走勢,從而得到更精確、更泛化的測試結果。
在進行線路板缺陷圖像識別和預測時,無論尺寸的寬高和形態(tài)角度如何,都應該最大可能地實現最優(yōu)預測框來對導入對象的每個像素點預測,所以需要根據標記過的數據中獲得適當的預測框來有效地加快識別的收斂速度,提高結果的精確度。原始YOLOv4的預測框是通過聚類得到的,但無法適用于環(huán)境復雜的小目標缺陷檢測,為了提高對小目標甚至微瑕疵的定位精度,實驗中采用新型Kmeans++聚類算法,見圖3。修改后的Kmeans++聚類算法將不同尺寸的包含大量特征數據的圖像動態(tài)劃分成s等份,不同劃分類別的組別來匹配設定的不同大小的預測框。由于聚類算法的動態(tài)參數調整,能保證以最優(yōu)的尺寸大小進行訓練和測試。
YOLOv4在執(zhí)行邊界框預測時最重要的是對象的寬度和高度,這是通過預先聚類獲得的。例如,當我們想使用像素來預測對象時,圍繞這個像素,我們可以預測無限數量物體的形狀。這不是一個隨機的預測,有必要找到最有可能從標記數據中計數的錨框的大小。基于COCO數據集的原始YOLOv4生成的錨盒尺寸的示意圖,為了適應線路板的檢測目標,我們使用Kmeans++聚類算法,根據原裝YOLOv4的輸出端口和改進后的YOLOv4的輸出端口,生成預測輸出框。
工控線路板的種類繁多,形狀各異,無法從已有的數據庫中收集所有缺陷種類的真實圖像集,即便經驗豐富的設計師也無法確定所有缺陷標簽。出于各種原因,我們實驗中的缺陷工控線路圖像來自沈陽某生產車間用高速攝像機采集的數據圖像,共5 860張圖像,其中包括常見的6種缺陷,缺口、毛刺、開路、短路、漏焊和余銅。圖4顯示了生產過程中常見的4類缺陷。
對于不同的缺陷樣本,數據增強技術不但可以提高樣本的數量,也能增加缺陷特征的普遍性,通過隨機的旋轉、裁剪、平移、鏡像、增亮等操作以獲得不同角度、不同中心點、不同照明環(huán)境下的數據圖像,從而從不同角度模擬實際生產的不同環(huán)境狀態(tài),提高了改進網絡模型的適應性。實驗中采用的數據集為二維圖像,假定圖像函數表達式為f(x,y),為實現圖像增強效果,先后進行拉氏變換,故先在圖像寬度上取得二階微分
再在圖像高度上也進行二階微分計算
將兩式相加,獲得拉氏變換增強因子
數據增強后的圖像需要人工標記不同的缺陷類別,每個圖像中的表面缺陷由Label Img程序標記并以VOC格式存儲以便用于訓練,帶注釋的缺陷圖像包含了每個缺陷的基線數值,訓練中與預測邊框匹配計算損失度。增強后的數據集被隨機分成訓練集和測試集兩個部分,訓練集不斷訓練改進后的模型網絡,再用測試集驗證模型,在驗證模型時需要不斷篩選不同模型的測試誤差,最后選擇測試誤差最小的模型進行優(yōu)化,提高泛化能力。
數據集導入前的格式要采取轉換,最初的文件格式是手工標記后默認保存的數據格式,格式無法導入修改好的模型網絡中,因此實驗中要將標記完成的XML格式轉換成TXT文本格式,以保證實驗中缺陷圖像數據的順利導入。
本次訓練的缺陷檢測圖像數據集進行不同的實驗,以驗證提出的改進方案的進步性。
(1)通過對比改進骨干網絡與原始網絡在精度、檢測速度、漏檢率等方面的性能,以選擇新型的改進網絡。
(2)比較不同激活函數對實驗結果的不同精度,驗證Mish激活函數的高性能。
(3)比較不同聚類算法對實驗檢測精度的影響,驗證Kmeans++聚類算法的正確性。
(4)將改進YOLOv4性能與Faster R-CNN和YOLOv4進行實驗結果對比,從而驗證該方案的優(yōu)越性。
實驗使用的深度學習框架是PyTorch,設計上程序的封裝度不高,因此可以對程序的邏輯有更好的理解,也方便更進一步的開發(fā)。PyTorch所連接的不同框架接口調用的兼容性都很高,使算法的開發(fā)更便捷。
原始的YOLOv4的骨干網絡包含大量的參數和內存占用,給訓練過程增加了不必要的負擔,改進網絡采用的輕量級網絡模型擁有高質量的卷積計算,卻不丟失其檢測性能的要求,實驗中對比了3種不同主干網絡,改進的骨干網在功耗和延遲上都有出色的表現,預測準確性明顯高于其他兩種網絡,更適用于小目標的缺陷檢測,比如本文所提的工控線路板缺陷檢測。
激活函數用于頸部和預測網絡中,通過對比不同激活功能的檢測性能,Mish激活函數的檢測性能在第1階段epoch處訓練損失明顯低于其他幾種激活函數,并且在第2階段用圖像進行擬合對比的結果表明:Mish激活函數在測試實驗中獲得的損失度最低,性能優(yōu)于其他激活函數,有最佳的訓練結果,再通過不同策略的對比后,決定選用Mish來提高工控線路板的缺陷檢測準確率。
為驗證本文所改進的激活函數的有效性,分別使用不同的激活函數對模型網絡進行訓練和測試,檢測結果見表1,由此可以看出Mish激活函數在工控線路板缺陷檢測方面的優(yōu)良性能。

表1 不同激活函數檢測結果對比
實驗中,新型改進的Kmeans++聚類算法對不同尺寸圖像都有極高準確度的預測框大小匹配,能夠對缺陷進行高精度的定位,檢測速度相較于其他聚類算法都有明顯的進步性。
為了驗證改進模型的先進性,實驗測試了改進YOLOv4與不同目標檢測算法的檢測結果對比,結果顯示改進的算法達到了最高的檢測準確率,也大大縮短了檢測的時間,而且改進后模型的算法復雜度有很大程度降低,對比結果見表2。

表2 不同模型算法檢測結果對比
針對目前工控線路板缺陷檢測性能不高的問題,提出基于改進YOLOv4的線路板缺陷檢測方法。在原始YOLOv4網絡的基礎上采用輕量級的骨干網絡取代原始檢測算法的冗余和內存占用率高的問題,并且采用了檢測精度更高,損失度更小的激活函數,采用修改的新型Kmeans++聚類算法,實驗結果表明能很好地適應線路板的不同缺陷檢測,檢測準確率達到97.8%,檢測速率也提高到0.036 s識別每張測試圖像,因此能適用于工控線路板生產線的實時檢測。