□ 唐金亮 □ 王國東 □ 陳特歡 □ 崔 杰
1.寧波大學 機械工程與力學學院 浙江寧波 315211 2.浙江華朔科技股份有限公司 浙江寧波 315800
近年來,汽車行業(yè)發(fā)展迅速,汽車走進千家萬戶。汽車零部件種類繁多,包括法蘭、鑄件、軸承等。汽車零部件對表面粗糙度、加工工藝有極高的要求[1-2],因此,為了篩選汽車零部件加工過程中存在細小缺陷的產(chǎn)品,需要對汽車零部件表面進行缺陷檢測,保證表面質(zhì)量,確保工作過程中的穩(wěn)定性和可靠性[3]。
汽車法蘭表面缺陷檢測[4-7]在汽車制造業(yè)中是必不可少的一個環(huán)節(jié),也是保證汽車法蘭合格的關(guān)鍵步驟。傳統(tǒng)的汽車法蘭表面缺陷檢測由人工目視進行,檢測效率低,并且隨著檢測時間的延長,工人的疲勞程度提高,影響檢測效果[8]。近年來,工業(yè)視覺技術(shù)發(fā)展迅速[9-10],彌補了傳統(tǒng)視覺檢測方法單一、抗干擾性和魯棒性差、多數(shù)情況不適用的不足。由此,利用神經(jīng)網(wǎng)絡(luò)來提高視覺檢測效率和精度成為研究的熱點。
在視覺檢測中,圖像質(zhì)量與檢測精度密切相關(guān),圖像采集的效果會直接影響后續(xù)相關(guān)工作。引起圖像模糊的因素主要有兩方面。第一,鏡頭手動調(diào)焦會帶來不確定性,傳統(tǒng)手動調(diào)焦過程受主觀因素影響而使拍攝質(zhì)量降低。第二,產(chǎn)品的類別、大小,以及通過流水線速度不相同,容易導致提取的圖像出現(xiàn)運動模糊和離焦模糊[11]。
Shen Xiaoye等[12]設(shè)計了一種具有仿生學特點的法蘭表面質(zhì)量檢測自動化系統(tǒng),可以對具有復雜結(jié)構(gòu)和細微缺陷的法蘭表面質(zhì)量進行檢測。在主動照明情況下,這一系統(tǒng)可以檢測出反射率高的金屬法蘭缺陷,減弱反射和噪聲的影響。王健等[13]提出基于生成對抗網(wǎng)絡(luò)和RetinaNet網(wǎng)絡(luò)的模型,對模糊拍攝圖像進行識別,并能夠在高速運動中拍攝清晰圖像,但是去模糊化效果不理想,不能夠準確應(yīng)用于工業(yè)流水線。閔永智等[14]提出基于圖像灰度梯度特征的軌道表面缺陷檢測,采用背景差分法來凸顯圖像缺陷特征部分,對光照條件變化有較強的適應(yīng)性。代小紅等[15]提出一種改進區(qū)域神經(jīng)網(wǎng)絡(luò),用于檢測流水線上的金屬工件,針對流水線上拍攝的圖片可能存在圖像模糊的情況,利用拉普拉斯算子銳化圖像邊緣,并使用對抗生成網(wǎng)絡(luò)來消除圖像的運動模糊,但是運動模糊的去除效果并不明顯。
筆者通過研究,提出一種基于改進YOLO(You Only Look Once)v3算法和DMPHN(Deep Multi-patch Hierarchical Network)算法的汽車法蘭表面缺陷檢測方法,解決因環(huán)境引起圖像模糊、失真等情況下汽車法蘭表面缺陷檢測的問題。網(wǎng)絡(luò)輸入端為DMPHN[16-17],包括生成器和判別器兩部分[18],生成器可以根據(jù)原始數(shù)據(jù)的特點生成逼真的清晰圖像樣例。去模糊后使用YOLOv3算法+MobileNetV3的檢測網(wǎng)絡(luò)[19-20],對汽車法蘭表面缺陷進行定位與識別。為了避免出現(xiàn)過擬合現(xiàn)象,實現(xiàn)實時性檢測功能,將YOLOv3算法原有的DarkNet-53主干網(wǎng)絡(luò)替換為MobileNetV3輕量級模型,提高了檢測速度。
研究的創(chuàng)新點包括三部分。第一,解決了在拍攝時出現(xiàn)運動模糊的情況下高精度檢測汽車法蘭表面缺陷的問題。第二,提出了DMPHN算法與YOLOv3算法MobileNetV3模型的網(wǎng)絡(luò)串聯(lián)方法。第三,根據(jù)現(xiàn)場實時檢測需求,修減網(wǎng)絡(luò)神經(jīng)元與通道數(shù),提高了檢測速度與精度。
汽車法蘭表面缺陷檢測系統(tǒng)如圖1所示,包括環(huán)形光源、相機、相機光源支架、數(shù)據(jù)處理單元。
由MV-CA060-10GC工業(yè)相機和開孔背光光源組成圖像采集單元,相機由網(wǎng)線與數(shù)據(jù)處理單元連接,用于拍攝汽車法蘭表面缺陷圖片。系統(tǒng)工作時,將存在表面缺陷的汽車法蘭放置在檢測平臺上,由相機拍攝得到法蘭的原始圖像。拍攝完成后通過數(shù)據(jù)線將圖像傳輸至數(shù)據(jù)處理單元,對圖像進行處理。圖像分辨率為1 200像素×1 200像素,格式為JPG。汽車法蘭模糊圖像樣本如圖2所示。
通過DMPHN算法對圖像進行去模糊操作?;贒MPHN算法,構(gòu)建三層結(jié)構(gòu),每一層都有單獨的編碼器Encoder和解碼器Decoder,作用于不同數(shù)量的面片。在DMPHN算法中,面片表示將圖像平均分為若干個部分。面片的數(shù)量可以是1、2或4。DMPHN算法結(jié)構(gòu)如圖3所示,[ ]表示空間中的連接,⊕表示殘差相加。
▲圖1 汽車法蘭表面缺陷檢測系統(tǒng)
▲圖2 汽車法蘭模糊圖像樣本
在第一層中,圖像I沒有被劃分為任何面片。在第二層中,圖像I被劃分為兩個面片,分別是I2,1、I2,2。在第三層中,I2,1、I2,2被劃分為四個面片,分別是I3,1、I3,2、I3,3、I3,4。各層中的編碼器Encoder-i和解碼器Decoder-i分別用Enci和Deci表示。編碼器由15個卷積層、6個殘差層和激活函數(shù)ReLU6組成,解碼器中除將兩個卷積層替換為反卷積層以生成去模糊圖像外,其余結(jié)構(gòu)與編碼器相同。
輸入圖像經(jīng)過Encoder-3輸出的特征圖F3,j為:
F3,j=Enc3(I3,j)j=1,2,3,4
(1)
將空間上相鄰的特征圖拼接成新的特征P3,j,為:
P3,j=[F3,2j-1,F3,2j]j=1,2
(2)
將新的連接特征P3,j經(jīng)過Decoder-3傳遞生成第三層特征圖Q3,j,為:
Q3,j=Dec3(P3,j)j=1,2
(3)
殘差疊加之后的結(jié)果經(jīng)過Encoder-2后的輸出F2,j為:
F2,j=Enc2(I2,j+Q3,j)j=1,2
(4)
I2,j+Q3,j為Decoder-3的輸出與第二層中圖像所劃分成的兩個面片殘差疊加。
▲圖3 DMPHN算法結(jié)構(gòu)
(5)
將第三層的P3,j與F2,j拼接成新的特征P2,為:
(6)
P2經(jīng)過Decoder-2生成第二層的特征圖Q2,為:
Q2=Dec2(P2)
(7)
第二層Decoder-2的輸出與輸入圖像殘差疊加后經(jīng)過Encoder-1的輸出F1為:
F1=Enc1(I+Q2)
(8)
(9)
在汽車法蘭表面缺陷檢測部分,將YOLOv3算法作為基礎(chǔ)模型。對于傳統(tǒng)YOLOv3算法,其主干網(wǎng)絡(luò)由DarkNet-53作為基礎(chǔ)架構(gòu),DarkNet-53共由53層卷積層組成,去除最后一個全連接層,總共有52個卷積層作為主體結(jié)構(gòu)。在圖像識別領(lǐng)域,DarkNet-53的精度高,性能優(yōu)異,但是存在模型臃腫、參數(shù)多、計算量大等問題。對于汽車法蘭單類別表面缺陷檢測這一任務(wù),DarkNet-53表現(xiàn)為結(jié)構(gòu)冗余,效率下。
采用輕量級模型MobileNetV3對DarkNet-53進行替換。模型整體上構(gòu)建為金字塔結(jié)構(gòu),通過對圖像進行不同尺度的縮放,實現(xiàn)多尺度特征的提取。對每個尺度的特征進行單獨預(yù)測,以此實現(xiàn)高精度的特征檢測。網(wǎng)絡(luò)結(jié)構(gòu)為16層深度可分離卷積,單獨計算空間卷積和通道卷積。深度可分離卷積的核心思想是將一個卷積操作分解為兩部分,空間卷積對每個輸入通道單獨使用卷積運算,通道卷積計算輸入通道的線性組合,構(gòu)建新的特征。
用DK×DK表示卷積核尺寸,用DF×DF表示輸入的特征圖尺寸,用M、N分別表示輸入和輸出的通道數(shù),那么傳統(tǒng)卷積的計算量R1為:
R1=DK×DK×M×N×DF×DF
(10)
深度可分離卷積的計算量R2為:
R2=DK×DK×M×DF×DF
+M×N×DF×DF
(11)
計算量比值為:
(12)
一般情況下,輸出的通道數(shù)比較多,對于傳統(tǒng)3×3卷積核而言,深度可分離卷積計算力會提升9倍左右,通過兩個卷積將原來的3×3×N卷積核轉(zhuǎn)變?yōu)橐粋€3×3×1卷積核和一個1×1×N卷積核。
MobileNetV3借鑒ResNet思想,引入線性瓶頸和反轉(zhuǎn)殘差層,將每個模塊的最后一個激活函數(shù)轉(zhuǎn)換為線性輸出,這樣當僅輸入低維時激活函數(shù)ReLU6能夠保留所有完整信息。這一非線性改變將模型的延時增加15%,所帶來的網(wǎng)絡(luò)效應(yīng)對于精度和延時具有正向促進作用,剩余消耗可以通過融合非線性與先前層來消除。反轉(zhuǎn)殘差層結(jié)構(gòu)如圖4所示。
使用一種新的激活函數(shù)h-swish,在網(wǎng)絡(luò)結(jié)構(gòu)搜索過程中,結(jié)合資源受限制的NAS和NetAdapt兩種技術(shù)。NAS用于在計算和參數(shù)量受限的前提下搜索網(wǎng)絡(luò)的各個模塊。NetAdapt用于對各個模塊確定之后的網(wǎng)絡(luò)層進行微調(diào)。DarkNet-53中的參數(shù)量為2.9×106,MobileNetV3中的參數(shù)量為40.6×106。
采用MobileNetV3進行汽車法蘭表面缺陷檢測,所用的汽車法蘭表面缺陷圖像復雜程度較低,圖像特征數(shù)量較少。由此,對MobileNetV3的網(wǎng)絡(luò)架構(gòu)進行改進[21],調(diào)整卷積核數(shù)量、卷積層和通道數(shù),調(diào)整網(wǎng)絡(luò)中5×5卷積核尺寸為3×3。激活函數(shù)h-swish的非線性能力更強,替換前三層激活函數(shù)ReLU6,提高擬合能力,使參數(shù)量減少,運算速度加快,從而適用于汽車法蘭表面缺陷檢測。
激活函數(shù)h-swish為:
h-swish(x)=xReLU6(x+3)/6
(13)
改進后的MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)見表1。表1中,k為輸出類別的個數(shù)。
表1 改進后MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)
檢測流程如圖5所示?;诟倪M的YOLOV3算法和DMPHN算法,將模糊圖像輸入DMPHN計算權(quán)重,進行去模糊操作,對計算出的結(jié)果進行標注,然后進行圖像強化處理,輸入改進的檢測網(wǎng)絡(luò)模型,進行訓練,對目標進行預(yù)測,最后將所要預(yù)測的數(shù)據(jù)輸入訓練好的模型,得到預(yù)測結(jié)果。
▲圖5 檢測流程
試驗主要的調(diào)試參數(shù)為批處理大小、學習率、迭代次數(shù)。其中,批處理大小指的是按一定批次將圖像輸入模型,在一定合理范圍內(nèi),批處理大小越大,確定的下降方向越準,引起的訓練振蕩越小。批處理大小如果過大,那么確定的下降方向基本不會有太大變化。對于設(shè)備而言,批處理大小越大,內(nèi)存占用量越大。學習率決定梯度下降中參數(shù)更新的速度,直接影響模型的收斂速度。學習率設(shè)定過大,模型可能陷入局部最小值,導致不會收斂。學習率設(shè)定過小,模型收斂速度則太慢。迭代次數(shù)指訓練輪數(shù),設(shè)定過大可能發(fā)生過擬合,設(shè)定過小可能導致模型檢測精度降低。
所有試驗都在同一臺服務(wù)器上完成,配置英特爾酷睿i9-9900K中央處理器、32GiByte內(nèi)存和英偉達精視RTX 2080Ti圖形處理器。
DMPHN算法基于Keras框架實現(xiàn)。模型學習率為0.000 1,批處理大小為4,迭代次數(shù)為400,同時設(shè)定每100次迭代保存一次結(jié)果。改進YOLOv3算法+MobileNetV3基于Tensorflow框架實現(xiàn),設(shè)置學習率為0.001,動量大小為0.9,批處理大小為32,迭代次數(shù)為500。
考慮到樣本圖像數(shù)量直接影響缺陷檢測的精度,通過圖像增強的方法,將原始圖像擴增至5 038個樣本數(shù)據(jù)。樣本數(shù)據(jù)分為兩部分,訓練集數(shù)量為4 283,測試集數(shù)量為755。
通過數(shù)據(jù)增強的方法,可以提高神經(jīng)網(wǎng)絡(luò)的訓練速度,這是深度學習中必不可少的一個環(huán)節(jié)。筆者所采用的圖像增強方法是高斯模糊、仿射變換、圖片銳化。通過圖像增強,實現(xiàn)數(shù)據(jù)量的擴充,減少網(wǎng)絡(luò)過擬合現(xiàn)象,提高網(wǎng)絡(luò)的泛化能力,使模型能夠在一定程度上抵抗噪聲干擾,并適應(yīng)光線模糊等惡劣的工作環(huán)境情況。
在環(huán)境復雜的加工車間中,圖像拍攝模糊,流水線零件高速移動拍攝導致圖像失真,對檢測效果有很大影響。采用DMPHN算法,能夠有效解決圖像失真和模糊問題,檢測速度為42.5幀/s。DMPHN算法修復模糊圖像結(jié)果如圖6所示。
▲圖6 DMPHN算法修復模糊圖像結(jié)果
圖6中第一列是未修復的模糊圖像,第二列、第三列、第四列依次是DMPHN算法在1輪、10輪、100輪的圖像。第1輪圖像修復效果不明顯,10輪后圖像修復效果顯著,100輪時基本收斂。
模糊圖像修復相似度指標見表2。由表2可以看出,修復后的圖像與未修復的圖像相似度指標差為0.132 5,有助于后期對缺陷進行檢測。相似度指標主要比較兩個圖像的亮度、對比度、結(jié)構(gòu),并采用三要素加權(quán)計算。圖像A與圖像B的相似度指標SSIM(A,B)為:
(14)
(15)
(16)
(17)
C1=(K1L)2
(18)
C2=(K2L)2
(19)
表2 模糊圖像修復相似度指標
式中:NA為圖像A尺寸;μA為圖像A像素平均灰度;μB為圖像B像素平均灰度;σA為圖像A均方差;σB為圖像B均方差;σAB為兩張圖像的協(xié)方差;C1、C2、K1、K2為常數(shù);L為灰度級數(shù),一般為255。
為了避免μA2+μB2、σA2+σB2為0造成系統(tǒng)不穩(wěn)定,設(shè)K1、K2遠小于1,控制C1、C2的占比。
對于已修復完成的圖像,采用YOLOv3算法、SSD(Single Shot MultiBox Detector)算法、Faster區(qū)域卷積神經(jīng)網(wǎng)絡(luò)等,配合不同主干網(wǎng)絡(luò),與筆者所提出的檢測方法進行性能對比,試驗結(jié)果見表3,檢測效果如圖7所示。
表3 試驗結(jié)果
由表3和圖7可以看出,采用筆者提出的基于改進YOLOv3算法和DMPHN算法的汽車法蘭表面缺陷檢測方法,相比傳統(tǒng)算法,在時間和準確率方面都有一定提升,相比改進前的YOLOv3算法+MobileNetV3,平均精度均值提高1.03個百分點。
筆者提出一種基于改進YOLOv3算法和DMPHN算法的汽車法蘭表面缺陷檢測方法。通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),改善網(wǎng)絡(luò)性能,實現(xiàn)了在運動模糊、環(huán)境干擾等情況下的魯棒性。鑒于原始網(wǎng)絡(luò)結(jié)構(gòu)過于冗余,為了最大程度實現(xiàn)在線實時檢測,對網(wǎng)絡(luò)參數(shù)量進行簡化,在不影響檢測精度的前提下提升檢測速度。通過試驗表明,使用DMPHN算法去模糊之后對YOLOv3算法+MobileNetV3進行訓練,能夠在流水線運動的情況下對汽車法蘭表面缺陷實現(xiàn)高效率檢測,平均精度均值達到97.74%,消耗時間更短,計算量更小,內(nèi)存消耗也更少。
▲圖7 缺陷檢測效果
當前筆者只驗證在限定試驗條件下的檢測情況,下一步將研究檢測方法應(yīng)用于傳送帶上部件缺陷的在線檢測,達到流水線不間斷檢測的目的。