劉瑞媛 茅 健 陸文超
(上海工程技術大學機械與汽車工程學院 上海 201620)
零件在制造過程中不可避免地會產生各種缺陷,如尺寸偏差、磕傷、裂紋、劃痕、表面污染等,這些缺陷是導致系統運行故障的重要因素,在高精密系統中更為嚴重,如汽車發動機內部分精密部件,外觀缺陷檢測是不可缺少的環節[1]。傳統的檢測依賴人工的手段,檢測精度不高且影響因素較多,因此,提高精密零件檢測精度勢在必行。
機器視覺檢測因其自身穩定性好、適用范圍廣、非接觸測量等優點,被廣泛應用于檢測領域[2~4]。目前,已有研究將機器視覺系統用于汽車精密零件缺陷檢測過程,厲曉飛[5]設計了一套完整的基于機器視覺的汽車零件缺陷檢測系統,包括光源、相機等硬件設備的選擇和布置,以及圖像處理技術的研究和基于LabVIEW 的軟件系統的編寫,實現了汽車零件的在線檢測;劉艷雄等[6]針對汽車精沖零件斷面缺陷,設計了基于機器視覺的檢測硬件設施和圖像處理技術,通過二值化處理分離缺陷,計算缺陷面積來判斷零件是否合格。俞曉明等[7]針對精密零件,選取OTSU 算法進行圖像分割,采用像素級和亞像素級邊緣檢測,以汽車圓孔零件為實驗,實現了精密零件缺陷的完整檢測。
本文提出了利用Otsu 改進Canny 算子來分割缺陷圖像,Hu 矩提取缺陷及運用SVM 進行缺陷分類,實現對汽車精密零件缺陷的識別方法。搭建了精密零件外觀缺陷檢測平臺,選取了合適的相機及光源等硬件設備,并且利用汽車精密零件進行仿真實驗。實驗結果表明該方法可有效識別精密零件外觀缺陷圖像,并對其進行分類,且具有較高的檢測率和準確率。
針對汽車精密零件的外觀缺陷檢測方法的主要步驟如下。
1)利用CCD 相機及機械結構部分協同工作獲取缺陷圖像;
2)利用小波變換進行圖像預處理,去除圖像噪聲;
3)利用改進的Canny 算法分割圖像缺陷,其中,Otsu算法用于確定Canny算子中的最佳閾值;
4)利用Hu 矩進行特征提取,得到缺陷特征的長度及面積參數;
5)將樣本參數用于訓練SVM 分類器,使其可以對缺陷進行識別分類。
流程圖如圖1所示。

圖1 缺陷檢測方法流程圖
圖像在生成、傳輸或者變換的過程中不可避免地會與原始物體產生一定的差異,尤其在工業環境下,外界環境中光線、噪聲帶來的影響會導致圖像質量的下降、特征比較模糊。因此,對于使用CCD相機采集到的圖像需要進行降噪處理。相比于傳統的中值濾波和均值濾波[8],小波變換由于其特有的可變分辨率特性,可以更好的根據圖像特征進行降噪[9~11]。本算法采用Haar 小波,選擇的分解層數為兩次。以汽車轉向器內部套筒缺陷圖像為例,通過Matlab軟件進行仿真,可以得到三種不同濾波效果,如圖2 所示,均值濾波和中值濾波會造成零件圖像邊緣的損失,如圖中標注位置,小波降噪后對圖像邊緣保有性更好。

圖2 降噪對比圖
圖像分割依賴于邊緣檢測算子來提取圖像邊緣,傳統的邊緣檢測算子一般有Roberts算子、Sobel算子等[12],但是它們對噪聲敏感,難以直接應用。因此,選擇最佳邊緣檢測算子Canny 算子,但是考慮到Canny 算子中閾值的設定復雜[13],本算法中采用Ostu算法替代傳統的雙閾值算法求出最佳閾值,對算法進行優化改進。
改進的Canny算法的步驟如下。
1)高斯濾波平滑圖像
在小波去噪的圖像基礎上,采用Canny 算法中的高斯濾波對圖像進行進一步平滑處理,其中,高斯濾波的函數公式如(1)所示。

用高斯函數處理后的圖像的原理公式可得:

2)計算梯度的幅值及方向(利用一階偏導的有限差分)
采用2×2 鄰域內求有限差分均值來計算平滑后的數據陣列,梯度算子為一階導數。設圖像函數為f(x,y),則它的梯度定義為

幅度值和方向角分別為

3)進行梯度非極大值抑制
給定梯度幅度圖像矩陣之后,利用梯度模式的門限操作來得到邊緣像素點的輪廓。邊緣點在Canny 算法中定義為在梯度方向上局部強度最大的點,這個較強的約束,可以使通過門限法進行操作得到的目標邊緣細化。非最大抑制的目的是找到所有可能存在的邊緣點,基本思想是通過計算當前點相鄰周圍方向上像素的梯度值來判斷該點是否具有局部最大梯度值,如果是,那么該點判為可能的邊緣點,否則為非邊緣點。
4)雙閾值選取
傳統的Canny 算子中,應用預先設定的高低閾值來進行圖像分割,而實際圖像因受到外界因素的影響,導致圖像邊緣的變換,以至于預先設定的閾值不能更好的實現圖像分割。為了實現閾值自適應且最優的選取,在改進Canny 算子中,利用Otsu算法,根據所給圖像,求出最大類間方差,來確定高閾值的選取,并利用公式算出低閾值。
設q1、q2分別為目標、背景占圖像像素總數的百分比,u1、u2分別為對應的灰度均值,ut為總的均值。則:

最大類間方差為

將最優閾值作為Canny 算法的高閾值,由式(8)計算出低閾值。

為便于缺陷進行分類,需要進行特征提取來獲得缺陷的特征數據,包括圖形特征,顏色特征等。根據常見精密零件缺陷特征,劃痕、油污等,選擇Hu矩[14]的特征提取方法對缺陷進行提取。在笛卡爾坐標系下,Hu 矩利用二階和三階歸一化中心矩陣構造了七個不變矩,其中圖像p+q 的幾何矩、中心矩和歸一化的中心矩為

機器視覺檢測的目的在于對缺陷進行分類識別,通過樣本的特征數據對分類器進行訓練即可實現。相比于BP、MLP、KNN 等一些分類算法,支持向量機SVM 是一個有監督的學習模型[15],其主要思想為通過非線性映射算法將低維不可分樣本轉化為高維特征空間使得線性可分。即將低維不可分問題上升為高維線性可分問題。SVM 分類器[15]利用結構風險最小化原理,構建特征空間中的最優分割面,從而得到全局的最優化效果。其分類示意圖如圖2所示。

圖3 分類示意圖
具體分類過程描述如下:設有N 個樣本為(x1,y1),(x2,y2),…(xN,yN),SVM 分類的線性判別函數的表達式為(14),根據式(15)來確定一個超平面,該超平面距離最為接近。利用幾何關系計算距離M,M的最大值即為L(w)的最小值,如式(17),采用拉格朗日優化方法,得到最優超平面w 和b 的偏差[11]。


針對汽車精密零件缺陷檢測,搭建了外觀缺陷視覺檢測平臺,如圖4所示,該平臺采用CCD 相機、LED光源前向照明、零件放置臺及計算機等。平臺中主要設備及參數如表1 所示。工作原理如下:當零件到達檢測區域時,觸發光電開關信號,同時觸發CCD 相機進行拍照。之后根據工件轉動的角度度計算出工件每轉動90°所需的時間,并根據計算所得時間觸發相機進行拍攝。對于每一個零件,檢測系統可獲得四張圖像,對獲取的圖像進行算法處理及分析,最終得出零件的檢測結果。

表1 主要設備及其參數

圖4 汽車精密零件外觀缺陷視覺檢測平臺
基于上述檢測平臺,選擇汽車轉向器內部套筒零件為檢測對象,從同一批零件中隨機選取300 個有缺陷的零件得到作為樣本進行缺陷識別,圖5 為樣本缺陷分割結果。
對汽車精密零件缺陷的面積、周長、Hu 矩這些特征進行提取,通過數據可以觀察出不同缺陷的數據特征差距較大,利用數據特征可以明顯地區分出缺陷類別。表2 所示為針對油污缺陷、劃痕、壓痕和加工缺陷的樣本所進行的缺陷的幾何特征和Hu不變矩的特征數據實驗結果。

圖5 缺陷分割結果

表2 特征提取結果
由表2 可知,劃痕、壓痕面積、周長和Hu 矩較小,且其面積和周長相差較小;但是油污和加工缺陷的面積、周長及Hu 矩較大。并且其周長和面積相差也比較大。所以,特征提取的實驗結果與實際情況相符,實驗分組設計方案有效,能充分的驗證四類缺陷的缺陷特征。

表3 缺陷分類結果
在得到缺陷特征之后,通過SVM 分類器進行缺陷的樣本訓練,便可對該零件進行缺陷分類。使用SVM 作為分類器,進行缺陷的訓練和分類。分類結果如表3 所示,SVM 的分類結果與人工分類結果基本相符。
本文基于機器視覺系統研究了汽車精密零件外觀缺陷檢測方法,該方法利用小波去噪進行圖像預處理,改善了圖像質量。采用Otsu 算法改進Canny 算子,實現Cany 算子中閾值的最優選擇,對圖像缺陷進行分割。利用Hu矩實現了缺陷特征提取并進行SVM 分類。搭建汽車精密零件外觀缺陷檢測平臺進行實驗,結果表明,該算法性能穩定,且檢測結果與實際結果相差不大,檢出率較高。