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