莊 濤,張 軍,李志鵬,王秋悅
(天津職業技術師范大學電子工程學院,天津 300222)
隨著生產力和科學技術的發展,工業生產的自動化水平有了很大的提高,很多領域都引入全自動流水化生產線,在這種條件下,采用人工進行產品質量檢測顯然無法滿足工業自動化的需求[1]。近年來機器視覺檢測技術被廣泛應用于工業生產中,如在木材、玻璃、紡織品、印刷版等領域,產品的缺陷檢測已從人工檢測為主轉變為以機器視覺檢測為主,并取得了良好的檢測效果[1]。在現有的工業生產中,對金屬餐具的缺陷檢測,主要還是依靠人工肉眼檢測。這種傳統的檢測方法,成本高,效率低,易受主觀因素的影響。為了提高檢測效率,降低人工成本,本文提出一種將機器視覺和人工神經網絡相結合的檢測方法,并以金屬勺子為例進行分析和檢測,取得了較好的檢測效果[2-6]。
缺陷檢測系統總體結構如圖1所示。該系統總體結構包括光照單元、運動控制單元、圖像采集單元、圖像處理單元。光照單元用于提供合適的照明光線以保障金屬餐具圖像的清晰度;運動控制單元通過移動工作臺,使采集的圖像包含整個待測金屬餐具;圖像采集單元實現待測金屬餐具的圖像采集;圖像處理單元是整個系統的核心,主要包括數字圖像處理和人工神經網絡,其中數字圖像處理部分主要對待測金屬餐具圖像進行預處理,并提取出缺陷特征量。人工神經網絡的功能是對大量不同樣本的特征量進行學習訓練,檢測出存在缺陷的目標對象[7]。

圖1 缺陷檢測系統總體結構
在金屬餐具的生產過程中,由于受制作工藝的限制和其他因素的影響,出現缺陷無法避免。金屬勺子缺陷如圖2所示。一般而言,缺陷分為邊緣缺陷和表面缺陷。邊緣缺陷是指邊緣有凸起和凹陷,表面缺陷是指表面光潔度不夠,有劃痕。

圖2 金屬勺子缺陷
針對勺子的缺陷,需要對采集的金屬餐具原圖像進行處理,以便更好地突出缺陷,便于特征量的提取。
(1)邊緣缺陷的預處理
邊緣缺陷的預處理過程如圖3所示。對采集的原圖像進行灰度化處理,轉化為256級的灰度圖,分別采用圖像增強來提高勺子和背景的對比度,圖像二值化方法來分割出金屬餐具,圖像濾波法濾除圖像中的噪聲點,邊緣檢測法檢測金屬餐具的邊緣。

圖3 邊緣缺陷的預處理過程
(2)表面缺陷的預處理
表面缺陷的預處理過程如圖4所示。對表面的缺陷只需通過圖像灰度化、圖像增強以及圖像濾波方法進行預處理。

圖4 表面缺陷的預處理過程
勺子原圖像經過預處理后的結果如圖5所示。
經過預處理后,缺陷已被清晰地呈現出來。為了識別出缺陷,需要對缺陷的特征進行提取,提取的特征量能否準確地描述缺陷,這對后續的識別具有關鍵作用。

圖5 預處理后的結果
2.3.1 對邊緣缺陷的特征提取
(1)周長
圖像中目標物的邊緣周長可以定義為其所占的像素點個數,如圖像大小為M×N的二值圖像,目標物為1,背景為0,則目標物的周長可表示為:

(2)邊緣像素點到中心距離的均值和方差
假設邊緣像素點坐標為(xi,yj),目標物的中心坐標為(x0,y0),則每個邊緣像素點到中心的距離為:

邊緣像素點到中心距離的均值為:

邊緣像素點到中心距離的方差為:

2.3.2 對表面缺陷特征提取
表面缺陷指金屬餐具表面的光潔度,光潔度主要反映在圖像的灰度特征上[8],因此只需提取圖像的灰度特征參數。
圖像的不變距對于圖像的平移、尺度變化、鏡像和旋轉不變。低階矩主要描述目標的整體特征,如面積、主軸、方向角等;高階矩主要描述圖像的細節,如扭曲度、峰態等[9]。
大小為M×N的數字圖像f(x,y)的二維(p+q)階矩定義為:

式中:p=0,1,2,…;q=0,1,2,…。p和q均為整數。
相應的,(p+q)階中心矩定義為:

式中:p=0,1,2,…;q=0,1,2,…。其中:

ηpq表示歸一化中心距,定義為:

由二階距和三階矩可推導出7個不變距組,分別為:

以上提取出的10個特征量,分別為邊緣的周長、邊緣像素點到中心距離的均值、邊緣像素點到中心距離的方差、7個不變距。這10個特征量將作為神經網絡識別的10個輸入參數。
BP神經元與其他神經元相比,其傳輸函數為非線性函數。BP網絡一般為多層神經網絡,信息從輸入層流入,經過隱含層,流向輸出層[3]。其中,隱含層可有多層。BP神經元一般模型如圖6所示,BP神經網絡模型如圖7所示。
假設一訓練的輸入向量為 X=(x1,x2,x3,…,xn)T,期望輸出為Y= (y1,y2,y3,…,yn)T,實際輸出為Y′=(y1′,y2′,y3′,…,yn′)T。
如果有n個輸入樣本,則輸出誤差為:

圖6 BP神經元一般模型

圖7 BP神經網絡模型

式中:i為輸出層的中的第i個神經元為i層第j個神經單元的輸出,fi為傳遞函數。
由最速下降法可知,每層神經元的權值迭代式為:

式中:i為層數;μ為收斂速度,也稱學習效率;ΔEk=?Ek/?Wij為誤差對權值的梯度向量。
根據式(16)和各層的傳遞函數,可求出第k次迭代的總誤差梯度ΔEk,代入式(17),便可逐次修正其權值,并使總誤差向減小的方向變化,直至達到所要求的誤差性能為止。
輸入層作為外部數據的輸入端,其節點個數取決于輸入向量的維數。經過特征參數提取后,共提取10個特征量,把這10個特征量作為網絡的輸入,則網絡的輸入層的節點個數為10個。
設計的識別要求是識別出缺陷的存在,故輸出層只需有1個輸出節點。1代表有缺陷;0代表無缺陷。
隱含層節點個數的確定沒有準確的理論依據,需要依據前人設計經驗以及具體試驗來確定,對用于模式識別/分類的BP網絡,可參照下式進行設計。

式中:n為隱含層節點數;ni為輸入節點數;no為輸出節點數;a為1~10的常數。
識別系統模型如圖8所示。

圖8 識別系統模型
經過圖像預處理,提取出缺陷特征向量,這些特征向量既可直接作為神經網絡的輸入,也可對網絡進行訓練和學習。通過對樣本的學習,各層各節點的權值便能確定,神經網絡也隨之確定[10],繼而可對金屬餐具是否存在缺陷進行識別。
用200個勺子圖像樣本對神經網絡進行訓練,再用30個勺子圖像驗證該神經網絡的檢測效果。其中,30個勺子圖像分別為:10個勺子同時具有邊緣缺陷和表面缺陷;10個勺子只具有邊緣缺陷;10個勺子只具有表面缺陷。檢測結果如表1所示。

表1 檢測結果
從表1可知,對于所提取的特征量具有2種缺陷的樣本,神經網絡完全能夠識別出缺陷的存在,而只具有某一種缺陷的樣本,神經網絡存在識別錯誤。該錯誤主要是由于用于訓練的樣本數量不夠導致對網絡的訓練不足。綜合來看,神經網絡的缺陷檢測率達到了80%,說明采用此方法對勺子缺陷進行檢測是可行的。
本文以金屬勺子為例驗證了本研究提出的檢測方法的有效性。但由于用于訓練的樣本過少,可能存在過擬合現象。為了更好地驗證檢測性能,還需獲得更多的缺陷樣本。用不同的金屬餐具進行測試時不同的金屬餐具會出現不同種類的缺陷,因此需要進一步提取不同的缺陷特征參量。本文提出的檢測方法的適用性有待進一步驗證。