劉瑞媛 茅 健 陸文超
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院 上海 201620)
零件在制造過程中不可避免地會(huì)產(chǎn)生各種缺陷,如尺寸偏差、磕傷、裂紋、劃痕、表面污染等,這些缺陷是導(dǎo)致系統(tǒng)運(yùn)行故障的重要因素,在高精密系統(tǒng)中更為嚴(yán)重,如汽車發(fā)動(dòng)機(jī)內(nèi)部分精密部件,外觀缺陷檢測是不可缺少的環(huán)節(jié)[1]。傳統(tǒng)的檢測依賴人工的手段,檢測精度不高且影響因素較多,因此,提高精密零件檢測精度勢在必行。
機(jī)器視覺檢測因其自身穩(wěn)定性好、適用范圍廣、非接觸測量等優(yōu)點(diǎn),被廣泛應(yīng)用于檢測領(lǐng)域[2~4]。目前,已有研究將機(jī)器視覺系統(tǒng)用于汽車精密零件缺陷檢測過程,厲曉飛[5]設(shè)計(jì)了一套完整的基于機(jī)器視覺的汽車零件缺陷檢測系統(tǒng),包括光源、相機(jī)等硬件設(shè)備的選擇和布置,以及圖像處理技術(shù)的研究和基于LabVIEW 的軟件系統(tǒng)的編寫,實(shí)現(xiàn)了汽車零件的在線檢測;劉艷雄等[6]針對汽車精沖零件斷面缺陷,設(shè)計(jì)了基于機(jī)器視覺的檢測硬件設(shè)施和圖像處理技術(shù),通過二值化處理分離缺陷,計(jì)算缺陷面積來判斷零件是否合格。俞曉明等[7]針對精密零件,選取OTSU 算法進(jìn)行圖像分割,采用像素級和亞像素級邊緣檢測,以汽車圓孔零件為實(shí)驗(yàn),實(shí)現(xiàn)了精密零件缺陷的完整檢測。
本文提出了利用Otsu 改進(jìn)Canny 算子來分割缺陷圖像,Hu 矩提取缺陷及運(yùn)用SVM 進(jìn)行缺陷分類,實(shí)現(xiàn)對汽車精密零件缺陷的識別方法。搭建了精密零件外觀缺陷檢測平臺,選取了合適的相機(jī)及光源等硬件設(shè)備,并且利用汽車精密零件進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明該方法可有效識別精密零件外觀缺陷圖像,并對其進(jìn)行分類,且具有較高的檢測率和準(zhǔn)確率。
針對汽車精密零件的外觀缺陷檢測方法的主要步驟如下。
1)利用CCD 相機(jī)及機(jī)械結(jié)構(gòu)部分協(xié)同工作獲取缺陷圖像;
2)利用小波變換進(jìn)行圖像預(yù)處理,去除圖像噪聲;
3)利用改進(jìn)的Canny 算法分割圖像缺陷,其中,Otsu算法用于確定Canny算子中的最佳閾值;
4)利用Hu 矩進(jìn)行特征提取,得到缺陷特征的長度及面積參數(shù);
5)將樣本參數(shù)用于訓(xùn)練SVM 分類器,使其可以對缺陷進(jìn)行識別分類。
流程圖如圖1所示。
圖1 缺陷檢測方法流程圖
圖像在生成、傳輸或者變換的過程中不可避免地會(huì)與原始物體產(chǎn)生一定的差異,尤其在工業(yè)環(huán)境下,外界環(huán)境中光線、噪聲帶來的影響會(huì)導(dǎo)致圖像質(zhì)量的下降、特征比較模糊。因此,對于使用CCD相機(jī)采集到的圖像需要進(jìn)行降噪處理。相比于傳統(tǒng)的中值濾波和均值濾波[8],小波變換由于其特有的可變分辨率特性,可以更好的根據(jù)圖像特征進(jìn)行降噪[9~11]。本算法采用Haar 小波,選擇的分解層數(shù)為兩次。以汽車轉(zhuǎn)向器內(nèi)部套筒缺陷圖像為例,通過Matlab軟件進(jìn)行仿真,可以得到三種不同濾波效果,如圖2 所示,均值濾波和中值濾波會(huì)造成零件圖像邊緣的損失,如圖中標(biāo)注位置,小波降噪后對圖像邊緣保有性更好。
圖2 降噪對比圖
圖像分割依賴于邊緣檢測算子來提取圖像邊緣,傳統(tǒng)的邊緣檢測算子一般有Roberts算子、Sobel算子等[12],但是它們對噪聲敏感,難以直接應(yīng)用。因此,選擇最佳邊緣檢測算子Canny 算子,但是考慮到Canny 算子中閾值的設(shè)定復(fù)雜[13],本算法中采用Ostu算法替代傳統(tǒng)的雙閾值算法求出最佳閾值,對算法進(jìn)行優(yōu)化改進(jìn)。
改進(jìn)的Canny算法的步驟如下。
1)高斯濾波平滑圖像
在小波去噪的圖像基礎(chǔ)上,采用Canny 算法中的高斯濾波對圖像進(jìn)行進(jìn)一步平滑處理,其中,高斯濾波的函數(shù)公式如(1)所示。
用高斯函數(shù)處理后的圖像的原理公式可得:
2)計(jì)算梯度的幅值及方向(利用一階偏導(dǎo)的有限差分)
采用2×2 鄰域內(nèi)求有限差分均值來計(jì)算平滑后的數(shù)據(jù)陣列,梯度算子為一階導(dǎo)數(shù)。設(shè)圖像函數(shù)為f(x,y),則它的梯度定義為
幅度值和方向角分別為
3)進(jìn)行梯度非極大值抑制
給定梯度幅度圖像矩陣之后,利用梯度模式的門限操作來得到邊緣像素點(diǎn)的輪廓。邊緣點(diǎn)在Canny 算法中定義為在梯度方向上局部強(qiáng)度最大的點(diǎn),這個(gè)較強(qiáng)的約束,可以使通過門限法進(jìn)行操作得到的目標(biāo)邊緣細(xì)化。非最大抑制的目的是找到所有可能存在的邊緣點(diǎn),基本思想是通過計(jì)算當(dāng)前點(diǎn)相鄰周圍方向上像素的梯度值來判斷該點(diǎn)是否具有局部最大梯度值,如果是,那么該點(diǎn)判為可能的邊緣點(diǎn),否則為非邊緣點(diǎn)。
4)雙閾值選取
傳統(tǒng)的Canny 算子中,應(yīng)用預(yù)先設(shè)定的高低閾值來進(jìn)行圖像分割,而實(shí)際圖像因受到外界因素的影響,導(dǎo)致圖像邊緣的變換,以至于預(yù)先設(shè)定的閾值不能更好的實(shí)現(xiàn)圖像分割。為了實(shí)現(xiàn)閾值自適應(yīng)且最優(yōu)的選取,在改進(jìn)Canny 算子中,利用Otsu算法,根據(jù)所給圖像,求出最大類間方差,來確定高閾值的選取,并利用公式算出低閾值。
設(shè)q1、q2分別為目標(biāo)、背景占圖像像素總數(shù)的百分比,u1、u2分別為對應(yīng)的灰度均值,ut為總的均值。則:
最大類間方差為
將最優(yōu)閾值作為Canny 算法的高閾值,由式(8)計(jì)算出低閾值。
為便于缺陷進(jìn)行分類,需要進(jìn)行特征提取來獲得缺陷的特征數(shù)據(jù),包括圖形特征,顏色特征等。根據(jù)常見精密零件缺陷特征,劃痕、油污等,選擇Hu矩[14]的特征提取方法對缺陷進(jìn)行提取。在笛卡爾坐標(biāo)系下,Hu 矩利用二階和三階歸一化中心矩陣構(gòu)造了七個(gè)不變矩,其中圖像p+q 的幾何矩、中心矩和歸一化的中心矩為
機(jī)器視覺檢測的目的在于對缺陷進(jìn)行分類識別,通過樣本的特征數(shù)據(jù)對分類器進(jìn)行訓(xùn)練即可實(shí)現(xiàn)。相比于BP、MLP、KNN 等一些分類算法,支持向量機(jī)SVM 是一個(gè)有監(jiān)督的學(xué)習(xí)模型[15],其主要思想為通過非線性映射算法將低維不可分樣本轉(zhuǎn)化為高維特征空間使得線性可分。即將低維不可分問題上升為高維線性可分問題。SVM 分類器[15]利用結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理,構(gòu)建特征空間中的最優(yōu)分割面,從而得到全局的最優(yōu)化效果。其分類示意圖如圖2所示。
圖3 分類示意圖
具體分類過程描述如下:設(shè)有N 個(gè)樣本為(x1,y1),(x2,y2),…(xN,yN),SVM 分類的線性判別函數(shù)的表達(dá)式為(14),根據(jù)式(15)來確定一個(gè)超平面,該超平面距離最為接近。利用幾何關(guān)系計(jì)算距離M,M的最大值即為L(w)的最小值,如式(17),采用拉格朗日優(yōu)化方法,得到最優(yōu)超平面w 和b 的偏差[11]。
針對汽車精密零件缺陷檢測,搭建了外觀缺陷視覺檢測平臺,如圖4所示,該平臺采用CCD 相機(jī)、LED光源前向照明、零件放置臺及計(jì)算機(jī)等。平臺中主要設(shè)備及參數(shù)如表1 所示。工作原理如下:當(dāng)零件到達(dá)檢測區(qū)域時(shí),觸發(fā)光電開關(guān)信號,同時(shí)觸發(fā)CCD 相機(jī)進(jìn)行拍照。之后根據(jù)工件轉(zhuǎn)動(dòng)的角度度計(jì)算出工件每轉(zhuǎn)動(dòng)90°所需的時(shí)間,并根據(jù)計(jì)算所得時(shí)間觸發(fā)相機(jī)進(jìn)行拍攝。對于每一個(gè)零件,檢測系統(tǒng)可獲得四張圖像,對獲取的圖像進(jìn)行算法處理及分析,最終得出零件的檢測結(jié)果。
表1 主要設(shè)備及其參數(shù)
圖4 汽車精密零件外觀缺陷視覺檢測平臺
基于上述檢測平臺,選擇汽車轉(zhuǎn)向器內(nèi)部套筒零件為檢測對象,從同一批零件中隨機(jī)選取300 個(gè)有缺陷的零件得到作為樣本進(jìn)行缺陷識別,圖5 為樣本缺陷分割結(jié)果。
對汽車精密零件缺陷的面積、周長、Hu 矩這些特征進(jìn)行提取,通過數(shù)據(jù)可以觀察出不同缺陷的數(shù)據(jù)特征差距較大,利用數(shù)據(jù)特征可以明顯地區(qū)分出缺陷類別。表2 所示為針對油污缺陷、劃痕、壓痕和加工缺陷的樣本所進(jìn)行的缺陷的幾何特征和Hu不變矩的特征數(shù)據(jù)實(shí)驗(yàn)結(jié)果。
圖5 缺陷分割結(jié)果
表2 特征提取結(jié)果
由表2 可知,劃痕、壓痕面積、周長和Hu 矩較小,且其面積和周長相差較??;但是油污和加工缺陷的面積、周長及Hu 矩較大。并且其周長和面積相差也比較大。所以,特征提取的實(shí)驗(yàn)結(jié)果與實(shí)際情況相符,實(shí)驗(yàn)分組設(shè)計(jì)方案有效,能充分的驗(yàn)證四類缺陷的缺陷特征。
表3 缺陷分類結(jié)果
在得到缺陷特征之后,通過SVM 分類器進(jìn)行缺陷的樣本訓(xùn)練,便可對該零件進(jìn)行缺陷分類。使用SVM 作為分類器,進(jìn)行缺陷的訓(xùn)練和分類。分類結(jié)果如表3 所示,SVM 的分類結(jié)果與人工分類結(jié)果基本相符。
本文基于機(jī)器視覺系統(tǒng)研究了汽車精密零件外觀缺陷檢測方法,該方法利用小波去噪進(jìn)行圖像預(yù)處理,改善了圖像質(zhì)量。采用Otsu 算法改進(jìn)Canny 算子,實(shí)現(xiàn)Cany 算子中閾值的最優(yōu)選擇,對圖像缺陷進(jìn)行分割。利用Hu矩實(shí)現(xiàn)了缺陷特征提取并進(jìn)行SVM 分類。搭建汽車精密零件外觀缺陷檢測平臺進(jìn)行實(shí)驗(yàn),結(jié)果表明,該算法性能穩(wěn)定,且檢測結(jié)果與實(shí)際結(jié)果相差不大,檢出率較高。