趙海文,趙亞川 ,齊興悅,李 鋒
(河北工業(yè)大學(xué) a.機械工程學(xué)院;b.河北省機器人感知與人機融合重點實驗室, 天津 300132)
目前對汽車輪轂表面缺陷檢測的研究不是很多,檢測方式為人工檢測,然而這種枯燥的工作以及惡劣的環(huán)境會對工作人員的檢測質(zhì)量和效率造成一定程度的影響。汽車輪轂的表面缺陷主要分為劃痕和擦傷,集中在輪轂輪輻的外表面,屬于金屬表面缺陷。傳統(tǒng)的缺陷檢測算法有圖像差分法[1]、圖像匹配法[2]和Blob分析法[3]等,而這些算法大多不能對缺陷進行分類,且抵抗外界干擾的能力差,識別率低。卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network ,CNN)是一種具有卷積運算的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)算法的一種[4],到目前為止卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于手寫數(shù)字識別[5]、車牌字符識別[6]、人臉識別[7]、行為檢測[8]以及缺陷檢測[9]中。本文提出一種基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的輪轂表面缺陷檢測算法。由于汽車輪轂結(jié)構(gòu)復(fù)雜,本文算法基于把視覺系統(tǒng)安裝于機械手的末端,通過機械手末端的移動完成整個輪轂表面的圖像采集。該算法首先將采集的原始圖片經(jīng)過圖片分割得到若干張分割圖片,然后對分割之后圖片進行圖像增強處理,增加圖像對比度和缺陷特征,然后將圖像處理之后的圖片輸入已經(jīng)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),以此實現(xiàn)汽車輪轂的表面缺陷檢測。
圖像處理在數(shù)字圖像中占了很重要的地位,圖像質(zhì)量的好壞,直接影響著缺陷檢測的結(jié)果。本文圖像處理的過程包括圖像分割、圖像灰度化以及圖像銳化。
圖像分割是指將圖像分割成若干個、具有不同性質(zhì)的區(qū)域圖片的過程。本文缺陷分類算法基于卷積神經(jīng)網(wǎng)絡(luò),輪轂表面的缺陷相對于采集的圖片太小,若以采集的原始圖片作為訓(xùn)練樣本,會增加卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)難度,難以實現(xiàn)缺陷的分類檢測。故本文將采集的原始圖片分割為16張,原始圖片的像素為3840×2748,分割之后圖片的像素為960×687,采集的原始圖片和分割之后的圖片如圖1所示。
(a) 原始圖片 (b) 分割圖片 圖1 圖像分割對比圖
工業(yè)相機采集的照片是RGB圖像,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節(jié)存放灰度值,灰度范圍為0~255。由此可見,圖像的大小縮小了三分之一,提高了訓(xùn)練和測試的速度。
常用的灰度化方法有分量法、最大值法、平均值法和加權(quán)平均值法。加權(quán)平均值法是對彩色圖像中的3個分量按照不同的比例求和得到灰度值,只要選擇合適的權(quán)值,就可保留圖像中的特征信息[10],故選用加權(quán)平均值法。計算公式為:
gray=w1R+w2G+w3B
(1)
式中,w1,w2和w3為權(quán)值,且w1+w2+w3=1。
圖像灰度化的結(jié)果如圖2所示。
(a) 分割圖片 (b) 灰度圖片 圖2 灰度對比圖
圖像銳化是增強圖像邊緣的一種圖像增強方法。本文針對的是汽車輪轂的劃痕、擦傷等缺陷,圖像銳化是為了突出圖像的邊緣、紋理等特征,提高圖像的對比度,提高輪轂表面缺陷檢測的準(zhǔn)確率。
圖像銳化就是指用不同的圖像增強算子與原圖像進行卷積運算,來達到圖像增強的效果,常用到的銳化方法為梯度銳化和拉普拉斯銳化等,常用到的算子有Sobel算子、Roberts算子、和Laplacian算子,3種算子的圖像銳化對比圖如圖3所示。
(a) 灰度圖片 (b) Sobel算子圖像銳化圖片
(c) Robert算子圖像銳化圖片 (d) Laplacian算子圖像銳化圖片 圖3 圖像銳化對比圖
從圖3可以看出,3種算子銳化后的圖片特征更加明顯,laplacian算子相對于robert算子和sobel算子來說,圖像特征更加清晰,效果最好,故本文選擇laplacian算子對圖像進行銳化處理。
CNN是一種深度前饋神經(jīng)網(wǎng)絡(luò),通過權(quán)值共享和局部感知等方式降低了網(wǎng)絡(luò)的復(fù)雜性[11]。CNN的網(wǎng)絡(luò)結(jié)構(gòu)主要包括卷積層、池化層和全連接層。本文采用7層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),包括3層卷積層(C)、3層池化層(S)和1層全連接層(F)。
卷積層是CNN的關(guān)鍵,圖像的一個像素為一個神經(jīng)元,每個神經(jīng)元的輸入與前一層局部連接,通過卷積運算提取圖像的局部特征。卷積層特征圖的大小根據(jù)式(1)計算得出。
(2)
式中,So和Si為輸出圖像與輸入圖像的尺寸,pad為邊緣擴展像素的個數(shù),K為卷集核的尺寸,sd為卷積滑動步長。
將卷積運算的結(jié)果加上一個偏置輸入到激活函數(shù)中,通過激活函數(shù)得到卷積層的特征圖。卷積層的計算公式為:
(3)
式中,W代表卷集核,f代表激活函數(shù),bi代表偏置。
池化層又叫下采樣層,根據(jù)圖像局部相關(guān)性原理,對圖像進行子采樣可以減少計算量,同時保證圖像的旋轉(zhuǎn)不變性。采樣的目的主要是混淆特征的具體位置,某個特征找出來之后,它的具體位置已經(jīng)不重要,只需要這個特征和它的相對位置,這種混淆具體位置的策略能對變形和扭曲的圖片進行識別。
卷積層和池化層交替出現(xiàn),隨著層數(shù)的增加,特征圖的個數(shù)增多,尺寸減小,對特征的表達能力增強。
全連接層的每一個結(jié)點都與上一層的所有結(jié)點相連,用于綜合從前面提取的特征。全連接網(wǎng)絡(luò)輸出神經(jīng)元為需要分類的類別數(shù)量。
本文在輪轂加工廠采集了350張樣本圖片,通過圖像分割制作了正常圖片500張,劃痕缺陷圖片和擦傷缺陷圖片各200張??紤]到樣本圖片的數(shù)量直接影響著缺陷識別的精度,本文通過圖像對稱變換、圖像添加噪聲、缺陷特征位置變換等方法將正常圖片樣本擴充到1250張,其中1100張作為訓(xùn)練集圖片,150張作為測試集圖片。劃痕缺陷圖片和擦傷缺陷圖片擴充到各550張,其中訓(xùn)練集圖片各500張,測試集圖片各50張。三種樣本的圖片如圖4所示。
(a) 劃痕樣本圖片
(b) 擦傷樣本圖片
(c) 正常樣本圖片 圖4 樣本圖片
本文的硬件平臺基于Win10操作系統(tǒng),安裝內(nèi)存為8.0GB,處理器為Intel(R)Core(TM) i5-8400,顯卡為GTX 1050。訓(xùn)練和實驗平臺都是基于Matlab,使用的是Deep Learn Toolbox-master,它是一個深度學(xué)習(xí)包,里面含有很多機器學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò)CNN,深度信念網(wǎng)絡(luò)DBN等。
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)試是一個難點,參數(shù)調(diào)試的好壞直接影響了收斂的精度以及最終模型的準(zhǔn)確率,網(wǎng)絡(luò)訓(xùn)練所耗費的時間等等。卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)主要包括學(xué)習(xí)率、Batch和迭代次數(shù)等。
學(xué)習(xí)率控制著基于損失梯度調(diào)整神經(jīng)網(wǎng)絡(luò)權(quán)值的速度,直接影響我模型能夠以多快的速度收斂到最小值,設(shè)得太大的話算法可能永遠都不會收斂,設(shè)得太小會使算法優(yōu)化得太慢,而且可能還會掉入局部最優(yōu)。迭代次數(shù)是指訓(xùn)練過程遍歷數(shù)據(jù)集的次數(shù),過多會發(fā)生過擬合,過少又會導(dǎo)致分類精度過低,選擇合適的迭代次數(shù)直接影響著分類的精度。Batch是指每次輸入CNN模型中圖片的數(shù)量,過大的值也會發(fā)生過擬合。
Batch是機器學(xué)習(xí)中一個重要的參數(shù),在一定范圍內(nèi),Batch越大其確定的下降方向越準(zhǔn),引起的訓(xùn)練震蕩越小。Batch過大會使最終的收斂精度陷入不同的局部值,通過前期卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,最終選取Batch的大小為50,學(xué)習(xí)率為0.2。模型的準(zhǔn)確率隨著迭代次數(shù)的增加而增加,當(dāng)?shù)螖?shù)選5000時,模型的準(zhǔn)確率不再發(fā)生變化,故本文選擇的最終迭代次數(shù)為5000次。將測試集圖片輸入訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),測試結(jié)果如表1所示。
表1 本文算法檢測結(jié)果
從測試結(jié)果可以看出,訓(xùn)練過后卷積神經(jīng)網(wǎng)絡(luò)具有很高準(zhǔn)確率。
由于汽車輪轂表面結(jié)構(gòu)比較復(fù)雜,本文輪轂的外表面由6個輪輻組成,每個輪輻表面由正面和左右兩個側(cè)面組成,故每個輪幅的檢測需要采集正面和左右兩個側(cè)面3張圖片,本文通過將視覺系統(tǒng)安裝在機械手的末端完成圖像的采集工作。本文實驗選用的是UR3協(xié)作機器人,UR3是一種具有6自由度的小型協(xié)作機器人,可以滿足本文輪轂檢測的位姿要求。相機和鏡頭分別選用的是大恒圖像水星POE相機MER-1070-10GC-P和Computar公司的M0824-MPW2鏡頭,將相機與PC機相連并安裝于UR3的末端。本文輪轂表面反光現(xiàn)象嚴重,而同軸光源主要用于檢測反光程度很厲害的金屬物體,故照明方式選用的是同軸照明,并將同軸光源安裝于鏡頭的下方,輪轂圖像采集系統(tǒng)圖如圖5所示。
圖5 輪轂圖像采集系統(tǒng)圖
本文用示教的方式確定了每個圖像采集的位置點,當(dāng)機械手運動到圖像采集點時,使用PC機完成圖像的采集。本文總共采集了54張圖片,通過圖像分割得到正常圖片751張,劃痕缺陷圖片67張,擦傷缺陷圖片46張,經(jīng)過圖像處理后輸入已經(jīng)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),檢測結(jié)果如表2所示。
表2 檢測結(jié)果
實驗結(jié)果表明,本文算法對3種類型圖片的平均準(zhǔn)確率為93.5%。從檢測結(jié)果可以看出,劃痕缺陷的檢測準(zhǔn)確率比擦傷缺陷的檢測準(zhǔn)確率低,其原因可能是擦傷缺陷相對于劃痕缺陷的特征更加明顯,更容易被檢出。通過對比與卷積神經(jīng)網(wǎng)絡(luò)的測試結(jié)果可以發(fā)現(xiàn),3種類型的圖片檢測準(zhǔn)確率均有所下降,造成準(zhǔn)確率下降的原因可能是訓(xùn)練集和測試集的的圖片與實驗中同軸光源下采集的圖片略有不同。為提高算法檢測的準(zhǔn)確率,可以采取的措施有:
(1)卷積神經(jīng)網(wǎng)絡(luò)的樣本圖片模擬實驗的環(huán)境進行采集。
(2)增加劃痕圖片在訓(xùn)練集圖片中的占比,提高劃痕缺陷的檢測準(zhǔn)確率。
目前輪轂的表面缺陷由人工檢測,卷積神經(jīng)網(wǎng)絡(luò)具有耗時短、魯棒性高的優(yōu)點,在很多領(lǐng)域得到了應(yīng)用,但在工業(yè)領(lǐng)域的應(yīng)用很少,本文在CNN的基礎(chǔ)上提出一種圖像處理與CNN相結(jié)合的輪轂表面缺陷算法。實驗結(jié)果表明該算法具有較高的準(zhǔn)確率。但仍存在缺陷漏檢的情況,下一步將增加學(xué)習(xí)樣本的數(shù)量,并提高樣本圖片的質(zhì)量,優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),調(diào)整網(wǎng)絡(luò)參數(shù),提高分類器的準(zhǔn)確率。