莊 濤,張 軍,李志鵬,王秋悅
(天津職業(yè)技術(shù)師范大學電子工程學院,天津 300222)
隨著生產(chǎn)力和科學技術(shù)的發(fā)展,工業(yè)生產(chǎn)的自動化水平有了很大的提高,很多領(lǐng)域都引入全自動流水化生產(chǎn)線,在這種條件下,采用人工進行產(chǎn)品質(zhì)量檢測顯然無法滿足工業(yè)自動化的需求[1]。近年來機器視覺檢測技術(shù)被廣泛應(yīng)用于工業(yè)生產(chǎn)中,如在木材、玻璃、紡織品、印刷版等領(lǐng)域,產(chǎn)品的缺陷檢測已從人工檢測為主轉(zhuǎn)變?yōu)橐詸C器視覺檢測為主,并取得了良好的檢測效果[1]。在現(xiàn)有的工業(yè)生產(chǎn)中,對金屬餐具的缺陷檢測,主要還是依靠人工肉眼檢測。這種傳統(tǒng)的檢測方法,成本高,效率低,易受主觀因素的影響。為了提高檢測效率,降低人工成本,本文提出一種將機器視覺和人工神經(jīng)網(wǎng)絡(luò)相結(jié)合的檢測方法,并以金屬勺子為例進行分析和檢測,取得了較好的檢測效果[2-6]。
缺陷檢測系統(tǒng)總體結(jié)構(gòu)如圖1所示。該系統(tǒng)總體結(jié)構(gòu)包括光照單元、運動控制單元、圖像采集單元、圖像處理單元。光照單元用于提供合適的照明光線以保障金屬餐具圖像的清晰度;運動控制單元通過移動工作臺,使采集的圖像包含整個待測金屬餐具;圖像采集單元實現(xiàn)待測金屬餐具的圖像采集;圖像處理單元是整個系統(tǒng)的核心,主要包括數(shù)字圖像處理和人工神經(jīng)網(wǎng)絡(luò),其中數(shù)字圖像處理部分主要對待測金屬餐具圖像進行預(yù)處理,并提取出缺陷特征量。人工神經(jīng)網(wǎng)絡(luò)的功能是對大量不同樣本的特征量進行學習訓(xùn)練,檢測出存在缺陷的目標對象[7]。
圖1 缺陷檢測系統(tǒng)總體結(jié)構(gòu)
在金屬餐具的生產(chǎn)過程中,由于受制作工藝的限制和其他因素的影響,出現(xiàn)缺陷無法避免。金屬勺子缺陷如圖2所示。一般而言,缺陷分為邊緣缺陷和表面缺陷。邊緣缺陷是指邊緣有凸起和凹陷,表面缺陷是指表面光潔度不夠,有劃痕。
圖2 金屬勺子缺陷
針對勺子的缺陷,需要對采集的金屬餐具原圖像進行處理,以便更好地突出缺陷,便于特征量的提取。
(1)邊緣缺陷的預(yù)處理
邊緣缺陷的預(yù)處理過程如圖3所示。對采集的原圖像進行灰度化處理,轉(zhuǎn)化為256級的灰度圖,分別采用圖像增強來提高勺子和背景的對比度,圖像二值化方法來分割出金屬餐具,圖像濾波法濾除圖像中的噪聲點,邊緣檢測法檢測金屬餐具的邊緣。
圖3 邊緣缺陷的預(yù)處理過程
(2)表面缺陷的預(yù)處理
表面缺陷的預(yù)處理過程如圖4所示。對表面的缺陷只需通過圖像灰度化、圖像增強以及圖像濾波方法進行預(yù)處理。
圖4 表面缺陷的預(yù)處理過程
勺子原圖像經(jīng)過預(yù)處理后的結(jié)果如圖5所示。
經(jīng)過預(yù)處理后,缺陷已被清晰地呈現(xiàn)出來。為了識別出缺陷,需要對缺陷的特征進行提取,提取的特征量能否準確地描述缺陷,這對后續(xù)的識別具有關(guān)鍵作用。
圖5 預(yù)處理后的結(jié)果
2.3.1 對邊緣缺陷的特征提取
(1)周長
圖像中目標物的邊緣周長可以定義為其所占的像素點個數(shù),如圖像大小為M×N的二值圖像,目標物為1,背景為0,則目標物的周長可表示為:
(2)邊緣像素點到中心距離的均值和方差
假設(shè)邊緣像素點坐標為(xi,yj),目標物的中心坐標為(x0,y0),則每個邊緣像素點到中心的距離為:
邊緣像素點到中心距離的均值為:
邊緣像素點到中心距離的方差為:
2.3.2 對表面缺陷特征提取
表面缺陷指金屬餐具表面的光潔度,光潔度主要反映在圖像的灰度特征上[8],因此只需提取圖像的灰度特征參數(shù)。
圖像的不變距對于圖像的平移、尺度變化、鏡像和旋轉(zhuǎn)不變。低階矩主要描述目標的整體特征,如面積、主軸、方向角等;高階矩主要描述圖像的細節(jié),如扭曲度、峰態(tài)等[9]。
大小為M×N的數(shù)字圖像f(x,y)的二維(p+q)階矩定義為:
式中:p=0,1,2,…;q=0,1,2,…。p和q均為整數(shù)。
相應(yīng)的,(p+q)階中心矩定義為:
式中:p=0,1,2,…;q=0,1,2,…。其中:
ηpq表示歸一化中心距,定義為:
由二階距和三階矩可推導(dǎo)出7個不變距組,分別為:
以上提取出的10個特征量,分別為邊緣的周長、邊緣像素點到中心距離的均值、邊緣像素點到中心距離的方差、7個不變距。這10個特征量將作為神經(jīng)網(wǎng)絡(luò)識別的10個輸入?yún)?shù)。
BP神經(jīng)元與其他神經(jīng)元相比,其傳輸函數(shù)為非線性函數(shù)。BP網(wǎng)絡(luò)一般為多層神經(jīng)網(wǎng)絡(luò),信息從輸入層流入,經(jīng)過隱含層,流向輸出層[3]。其中,隱含層可有多層。BP神經(jīng)元一般模型如圖6所示,BP神經(jīng)網(wǎng)絡(luò)模型如圖7所示。
假設(shè)一訓(xùn)練的輸入向量為 X=(x1,x2,x3,…,xn)T,期望輸出為Y= (y1,y2,y3,…,yn)T,實際輸出為Y′=(y1′,y2′,y3′,…,yn′)T。
如果有n個輸入樣本,則輸出誤差為:
圖6 BP神經(jīng)元一般模型
圖7 BP神經(jīng)網(wǎng)絡(luò)模型
式中:i為輸出層的中的第i個神經(jīng)元為i層第j個神經(jīng)單元的輸出,fi為傳遞函數(shù)。
由最速下降法可知,每層神經(jīng)元的權(quán)值迭代式為:
式中:i為層數(shù);μ為收斂速度,也稱學習效率;ΔEk=?Ek/?Wij為誤差對權(quán)值的梯度向量。
根據(jù)式(16)和各層的傳遞函數(shù),可求出第k次迭代的總誤差梯度ΔEk,代入式(17),便可逐次修正其權(quán)值,并使總誤差向減小的方向變化,直至達到所要求的誤差性能為止。
輸入層作為外部數(shù)據(jù)的輸入端,其節(jié)點個數(shù)取決于輸入向量的維數(shù)。經(jīng)過特征參數(shù)提取后,共提取10個特征量,把這10個特征量作為網(wǎng)絡(luò)的輸入,則網(wǎng)絡(luò)的輸入層的節(jié)點個數(shù)為10個。
設(shè)計的識別要求是識別出缺陷的存在,故輸出層只需有1個輸出節(jié)點。1代表有缺陷;0代表無缺陷。
隱含層節(jié)點個數(shù)的確定沒有準確的理論依據(jù),需要依據(jù)前人設(shè)計經(jīng)驗以及具體試驗來確定,對用于模式識別/分類的BP網(wǎng)絡(luò),可參照下式進行設(shè)計。
式中:n為隱含層節(jié)點數(shù);ni為輸入節(jié)點數(shù);no為輸出節(jié)點數(shù);a為1~10的常數(shù)。
識別系統(tǒng)模型如圖8所示。
圖8 識別系統(tǒng)模型
經(jīng)過圖像預(yù)處理,提取出缺陷特征向量,這些特征向量既可直接作為神經(jīng)網(wǎng)絡(luò)的輸入,也可對網(wǎng)絡(luò)進行訓(xùn)練和學習。通過對樣本的學習,各層各節(jié)點的權(quán)值便能確定,神經(jīng)網(wǎng)絡(luò)也隨之確定[10],繼而可對金屬餐具是否存在缺陷進行識別。
用200個勺子圖像樣本對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,再用30個勺子圖像驗證該神經(jīng)網(wǎng)絡(luò)的檢測效果。其中,30個勺子圖像分別為:10個勺子同時具有邊緣缺陷和表面缺陷;10個勺子只具有邊緣缺陷;10個勺子只具有表面缺陷。檢測結(jié)果如表1所示。
表1 檢測結(jié)果
從表1可知,對于所提取的特征量具有2種缺陷的樣本,神經(jīng)網(wǎng)絡(luò)完全能夠識別出缺陷的存在,而只具有某一種缺陷的樣本,神經(jīng)網(wǎng)絡(luò)存在識別錯誤。該錯誤主要是由于用于訓(xùn)練的樣本數(shù)量不夠?qū)е聦W(wǎng)絡(luò)的訓(xùn)練不足。綜合來看,神經(jīng)網(wǎng)絡(luò)的缺陷檢測率達到了80%,說明采用此方法對勺子缺陷進行檢測是可行的。
本文以金屬勺子為例驗證了本研究提出的檢測方法的有效性。但由于用于訓(xùn)練的樣本過少,可能存在過擬合現(xiàn)象。為了更好地驗證檢測性能,還需獲得更多的缺陷樣本。用不同的金屬餐具進行測試時不同的金屬餐具會出現(xiàn)不同種類的缺陷,因此需要進一步提取不同的缺陷特征參量。本文提出的檢測方法的適用性有待進一步驗證。