魏東亮,周迪斌,張家瑜,馬建峰,解利軍
(1.杭州師范大學 杭州國際服務(wù)工程學院,杭州 311121;2.杭州手表有限公司,杭州 310015; 3.浙江大學 航空航天學院,杭州 310028)
在精密機械行業(yè),微型擒縱輪(見圖1)是一種常見的微型齒輪。擒縱輪在生產(chǎn)過程中容易出現(xiàn)斷齒的問題,因此,在組裝設(shè)備之前必須進行質(zhì)量檢測。傳統(tǒng)的檢測方法主要是人工檢測,工人通過顯微鏡放大零件圖像,并對照標準的圖紙判斷是否有斷齒。人工檢測依賴個人經(jīng)驗,主觀性強,易疲勞,導致產(chǎn)品質(zhì)量管理的不穩(wěn)定,且難以量化評估。采用機器視覺技術(shù)進行質(zhì)量檢測是行業(yè)發(fā)展趨勢,其能有效保證產(chǎn)品檢測的準確度和穩(wěn)定性。
圖1 擒縱輪
數(shù)字圖像以像素(pixel,px)為基本單位,在邊緣檢測時,為提高精度,經(jīng)常需要進行亞像素級別的定位。亞像素邊緣是指將邊緣附近的像素進行分解,從而精確定位邊緣[1]。常用的亞像素檢測方法[2-3]有矩法、最小二乘方差法、插值法及擬合法等。
文獻[4-5]提出了兩種基于Zernike矩的亞像素邊緣定位法。文獻[6-7]提出了兩種基于高斯擬合的亞像素邊緣檢測算法。文獻[2,8-9]提出了基于二次曲線擬合的亞像素定位模型,該模型在理想條件下定位精準度高。文獻[10]提出了一種通過三次多項式擬合的亞像素邊緣定位方法, 該方法能夠達到較高的精度。本文參考以上文獻,使用一種基于局部區(qū)域特征的三次曲線模型來計算亞像素位置,這種模型考慮了局部的特征和邊緣梯度,精度高,速度快,能夠滿足項目的需要。
對于齒輪齒長缺陷的檢測,目前常用的方法有灰度值比較法[11]、直線擬合法[12]、圖像特征識別的方法[13]等。這些方法一般都要求鏡頭面向輪片,如果需要同時檢測輪片的平整度就會迫使系統(tǒng)變得更加復雜。針對機械行業(yè)中微型齒輪需要同時檢測齒長誤差和輪片平整度等多個指標的情況,本文提出一種中點極差分析的方法,可以在齒輪豎直放立的情況下同時檢測齒長誤差和輪片平整度等多個指標,檢測效率高。
根據(jù)本項目的特點,要求系統(tǒng)必須滿足以下幾點:1)所采用的光學系統(tǒng)成像要清晰,對比度好,噪聲少;2)算法能夠精確地計算出檢測目標的邊緣線;3)算法必須具有一定的魯棒性,比如能夠自動矯正一定的傾斜角度,能夠在亮度不太理想的情況下自動矯正對比度,準確定位目標區(qū)域。
微型擒縱輪體積微小,為了減少拍攝產(chǎn)生的邊緣虛影,所以選擇平行背光源,鏡頭采用高分辨率低畸變的遠心鏡頭。檢測系統(tǒng)采用視頻檢測方式,零件放置在專用的工作臺上,使用導氣管送氣吹動零件轉(zhuǎn)動。工作臺如圖2所示。
圖2 工作臺
齒輪齒長誤差檢測依次經(jīng)歷如下步驟:圖像采集與預處理,傾角矯正, 感興趣區(qū)域(region of interest,ROI)垂直邊緣的亞像素位置計算,齒輪中心位置計算,中心位置動態(tài)極差計算,齒長合格判定。圖3顯示了這個流程框架。
圖3 算法流程
2.1.1 圖像去噪
齒輪表面有時候會附著一些細小的灰塵顆粒,工作的環(huán)境也可能存在光線不理想等情況,這樣得到的零件圖像上常常會存在一些噪聲。噪聲的存在會干擾目標的識別和邊緣的精確定位,所以需要對噪聲進行處理。
目前去噪的方法主要有空間域處理法和頻率域處理法??臻g域處理法常見的有均值濾波、中值濾波、高斯模板卷積等方法,這些方法在濾除噪聲的同時往往會破壞圖像邊緣等細節(jié),使圖像變得模糊。本系統(tǒng)需要精確定位微型齒輪的邊緣,所以空間域處理法不是首選。頻率域去噪方法常見的有基于傅里葉變換的方法、基于離散余弦變換的方法、基于小波變換的方法等。其中小波變換方法在空域和頻域都具有良好的局部化特性,在去除噪聲的同時能保持圖像細節(jié),提高圖像的質(zhì)量?;谝陨戏治觯鞠到y(tǒng)采用小波變換的方法進行去噪處理。
小波變換去噪方法的原理如下:使用濾波器把含有噪聲的圖像信號分解到各尺度中,在每一尺度下把屬于噪聲的小波系數(shù)去掉,保留并增強屬于信號的小波系數(shù),最后再經(jīng)過小波逆變換恢復圖像信號。小波變換使用的濾波器一般由一個低通濾波器和一個高通濾波器組成。圖像信號通過低通濾波器得到其低頻分量,通過高通濾波器得到其高頻分量,噪聲一般屬于高頻分量,高頻分量可以再繼續(xù)分解下去。小波變換可以選擇不同的變換函數(shù),以獲得最佳的效果。使用coif2小波基函數(shù)進行去噪,效果如圖4所示。
圖4 小波去噪
從圖4可以看出,小波變換可以滿足項目需要的去噪效果。
2.1.2 閾值分割
齒輪圖像中背景為白色,目標為黑色,原圖中在零件邊緣處會有一些虛影,為增強對比度,消除虛影,需要進行閾值分割。實驗中分別使用固定閾值法、最大類間方差法、迭代閾值法、P參數(shù)法進行二值化處理,結(jié)果表明固定閾值法二值化效果最好,最佳閾值的經(jīng)驗值為100。固定閾值法實驗結(jié)果如圖5所示。
圖5 二值化
零件在采樣的過程中容易存在一定的傾斜,傾斜的角度一般在水平線上下30°之內(nèi)。目前常用的傾角矯正方法有:基于投影的方法、基于Hough變換的方法、基于Radon變換的方法、基于線性擬合的方法等。本文采用基于Radon變換的方法。
相比較于Hough變換方法,Radon變換方法的抗干擾性更好,效率更高。Radon變換直線檢測算法采用窮舉式搜索將待檢測圖像的灰度分布函數(shù)沿不同方向的直線積分路徑積分,找出超過給定閾值的積分極大值點,則圖像中待檢測直線方向就垂直于該極大值點的直線積分路徑。在Radon變換檢測出的直線中,找到位于零件正常傾斜范圍的直線,將其傾斜角度作為零件傾斜的角度,然后進行反向旋轉(zhuǎn)即可矯正圖像。
設(shè)f(x,y)為一個二維函數(shù),則Radon變換[14-15]定義如下式:
(1)
Radon變換將原圖像空間中的直線映射為(ρ,θ)參數(shù)空間中的點(線積分值),原來在圖像空間上的一條直線的所有的點在參數(shù)空間上都位于同一點。記錄參數(shù)空間上的點的積累厚度,便可知圖像空間上的線的存在性。因而,對原圖像中直線的檢測可轉(zhuǎn)化為對參數(shù)空間中點的檢測。
Radon變換矯正圖像步驟為:
1)讀入原圖像并轉(zhuǎn)化為灰度圖,使用canny算子進行邊緣檢測。
2)對圖像在-90~90°上進行Radon變換。
3)提取變換后最大峰值點對應(yīng)的角度α,α=α-91,如果滿足-45≤α≤45,則將此α作為圖像的水平傾斜角,如果不滿足則繼續(xù)查找剩下的最大峰值對應(yīng)的角度,直到找到屬于[-45,45]的角度并以此作為圖像的傾角θ。
4)對圖像旋轉(zhuǎn)-φ,完成矯正。
使用以上方法能夠矯正擒縱輪圖像的傾斜,如圖6所示。
圖6 圖像矯正
本文采用一種基于局部區(qū)域特征的三次曲線模型來計算亞像素位置,該模型針對每個可能的邊緣像素,選取一個5×3的模板,并在模板區(qū)域內(nèi)計算一個三次曲線,利用此曲線確定邊緣點的亞像素位置。三次模型需要基于一次模型進行推導,故先介紹一次模型。
2.3.1 一次函數(shù)模型
如圖7所示,假設(shè)直線L:y=kx+b是圖像中的邊緣,且L將圖像分成上下兩部分,分別記做M和N。這兩部分的面積分別記做SM,SN,M,N也表示M,N兩部分的平均灰度值。直線L所在的坐標系原點為(i,j),設(shè)(i,j)處像素的灰度值為F(i,j),它也表示整個模板區(qū)域的平均灰度值。設(shè)模板區(qū)域總面積為S[2]。則有:
S=SM+SN
(2)
(3)
圖7 一次函數(shù)模型
考慮中間像素(i,j)的5×3鄰域模板,以L2、M2和R2來表示模板中直線L下側(cè)左、中、右列的像素面積,如圖8所示。直線L坐標系原點的位置依然是O(i,j),l列中心的橫坐標是i-1,r列中心的橫坐標是i+1;最上一行的中心位置縱坐標是j+2,最下一行中心位置的縱坐標是j-2;設(shè)每個像素格的邊長為w。
圖8 5×3模板
(4)
(5)
(6)
設(shè)5×3模板中左邊一列的像素灰度值之和為Tl,中間一列為Tm,右邊一列為Tr,則有:
(7)
將式(3)代入,可得:
(8)
(9)
(10)
2.3.2 三次函數(shù)模型
一次函數(shù)模型是三次函數(shù)模型三次項系數(shù)和二次項系數(shù)都為0時的特殊形式,使用三次函數(shù)模型來預測邊緣點的亞像素位置會比一次函數(shù)模型更精確一些。三次函數(shù)模型預測亞像素位置如圖9所示。各數(shù)學符號還保持前面的定義,假設(shè)曲線f:y=ax3+bx2+cx+d為圖像中的邊緣。
圖9 三次函數(shù)模型
邊緣下側(cè)左、中、右部分面積計算:
(11)
(12)
(13)
式(8)~(10)在3次函數(shù)模型中依然成立。將式(11)~(13)代入式(8)~(10)中,可以解得:
(14)
由式(14)可知,三次函數(shù)模型下像素點(i,j)對應(yīng)的亞像素位置為(i,j-d)。
在上面的公式中,M,N代表了邊緣兩側(cè)平均灰度值,|M-N| 則代表了邊緣兩側(cè)的梯度幅值,其方向為邊緣的梯度方向。
設(shè)點O(x,y)處沿x方向的偏導數(shù)為fx,沿y方向的偏導數(shù)為fy。當fx·fy>0時,設(shè)Δx=1;反之,Δx=-1。
(15)
(16)
將式(15)、(16)代入式(14),即可求得三次函數(shù)模型下的亞像素位置。
在使用上述模型之前必須先粗略定位出邊緣的位置。對于每個邊緣點,使用上述模型求解其亞像素位置。
如圖10所示,我們需要描繪出ROI垂直邊緣的直線??梢允褂猛队胺▉砩芍本€。投影法是通過計算圖像在水平和垂直邊緣上的像素點的個數(shù)來確定邊緣的位置。
圖10 ROI垂線邊緣線
投影法生成垂直線的方法如下: ROI(圖中矩形框中的區(qū)域)中以列為單位,統(tǒng)計每列的像素數(shù),相當于往x軸投影,如下面的式(17)所示,其中f(i,j)為(i,j)處的像素值。為了利用計算前面得到的亞像素位置,i,j的增量都設(shè)置為0.5 px,即將1個像素點分解為4個亞像素點,這樣就可以將邊緣精確到0.5像素:
(17)
其中:當f(i,j)>d時,f(i,j)=1,當f(i,j)≤d時,f(i,j)=0,Δy是ROI在y軸方向的長度,閾值d取100。
在圖11中,從左往右依次是黑色區(qū)域,白色區(qū)域,所以生成的Vi數(shù)組從左往右依次是谷,峰,取峰值處的橫坐標x0為生成的垂直線段L1的起點P1的橫坐標,L1的終點P2的橫坐標也取x0,P1、P2縱坐標取ROI沿y軸方向的起點和終點的縱坐標,連接P1,P2即得到垂直線段L1。
圖11 投影法原理
實驗中擒縱輪外圍的齒數(shù)為20個,屬于偶數(shù)。從圖12中可以看到,20個齒均勻分布在齒輪外圍,每個齒所占有的弧度相等,齒的特征也完全相同,所以整個齒輪呈現(xiàn)中心對稱的特征。過圓心的直線與兩端齒的交點總是處于齒的同一個特征位置。如圖13,為了判斷斷齒情況,可以利用齒輪直徑的兩個端點A,B的位置計算出中點O的位置,并通過計算一定數(shù)量幀的圓心O位置的極差來確定。這一方法在本文中稱為中點極差法。
圖12 齒輪對稱特性
圖13 中點極差法圖
圖14 斷齒偏移分析圖
無斷齒時,有:
(18)
設(shè)斷齒所缺失的部分長度為d,先考慮右側(cè)斷齒情況:
d=|x2-x2′|
(19)
(20)
Δxm=|Δxm1|+|Δxm2|=d
(21)
由式(21)可知,中點位置偏移量Δxm可以代表斷齒的缺失長度d,所以,可以通過計算一定數(shù)量的中點位置極差來判斷斷齒情況。
中點偏移量只能在一定范圍內(nèi)表示斷齒的缺失長度。如圖15所示,設(shè)OP,OQ是緊鄰的兩個齒,OP位于水平位置。
圖15 中點偏移量有效范圍
(22)
PM=OP-OM=OP-OQ·cosθ
(23)
中點偏移量:
Δxm≤|PM|
(24)
所以,使用Δxm代表d僅當d≤|PM|時成立。代入產(chǎn)品的參數(shù),可以求得|PM|=21 cmm(忽米,絲)。
工業(yè)上描述微觀尺寸誤差時經(jīng)常使用的測量單位是忽米,而數(shù)字圖像的單位是像素。如圖16所示,測量得到輪片的厚度為30 px,實際厚度為12 cmm,所以得出換算關(guān)系:1 cmm=2.5 px,1 px=0.4 cmm。
圖16 擒縱輪厚度測量
根據(jù)企業(yè)的規(guī)定,本文所述的這種擒縱輪齒長的合格標準是最大偏差小于等于2 cmm。根據(jù)前面的分析,中點極差法中點位移偏差在21 cmm以內(nèi)都是有效的,所以中點極差法適合測量此種類型的擒縱輪。
為了檢測算法的穩(wěn)定性,對400個零件進行了測試,其中200個合格品,200個斷齒缺陷品。對于每一個零件的檢測結(jié)果,都與人工檢測結(jié)果進行比對。軟件檢測結(jié)果如表1所示。
表1 軟件檢測實驗
經(jīng)分析,出錯的原因在于當擒縱輪輪片不平整情況嚴重時會導致圖像左右擺動幅度增大,從而導致誤判。輪片平整度偏差大于2 cmm時屬于不合格品。實驗表明,只有當輪片平整度超出合格范圍時其對左右擺動的影響才會比較明顯,此時可能導致誤判為斷齒,而平整度小于2 cmm的合格品一般不會影響斷齒的判定。所以,雖然少數(shù)非斷齒品可能誤判為斷齒,但并不影響對該零件整體質(zhì)量是否合格的判定。
通過亞像素算法得到的像素點的位置是浮點型數(shù)據(jù),根據(jù)下面的式(25)將亞像素位置精確到0.5 px的整數(shù)倍。
(25)
x≥0
從測試數(shù)據(jù)中選取有代表性的5個合格品和5個斷齒缺陷品,其檢測數(shù)據(jù)見表2。表中偏差值的單位是像素。
表2 對比實驗
表2中,產(chǎn)品序號為1~5的零件中點最大偏差值都小于等于5,屬于合格品。產(chǎn)品序號為6~10的零件中點最大偏差值都屬于(5,52.5],屬于斷齒缺陷品。類似的數(shù)據(jù)在項目測試中普遍存在。21 cmm就對應(yīng)52.5 px,上述實驗數(shù)據(jù)也證明了2.5.2中得出的中點偏移量有效范圍的正確性。
由實驗中人工和軟件檢測結(jié)論的一致性可以進一步確定,5 px≤2 cmm,5.5 px>2 cmm。
0.18 cmm<0.5 px≤0.2 cmm
(26)
由式(26)可知,使用0.5 px代表0.2 cmm的誤差小于0.02 cmm。
在該項目中,亞像素位置的精確計算對于系統(tǒng)精度起著重要作用。項目中的精確度為0.5 px ,對應(yīng)0.2 cmm的實際長度,這一對應(yīng)關(guān)系誤差小于0.02 cmm。這能夠滿足工廠對該零件的檢測要求。
系統(tǒng)運行實況如圖17所示,其中OK表示合格品,NG表示缺陷品,垂直字樣就代表對齒長誤差的判定。
圖17 系統(tǒng)工作實況
目前微型零件檢測逐步向非接觸式、數(shù)字化檢測方向發(fā)展,引入機器視覺檢測技術(shù),既能保證檢測結(jié)果的準確性,又能緩解工廠招工困難的問題,深受企業(yè)的歡迎。
本文提出一種微型擒縱輪的機器視覺檢測方法,算法的平均準確率為99%,系統(tǒng)精度達到2 μm,單幀檢測時間平均18 ms,一個零件可以在5 s左右給出可靠的結(jié)論。實驗結(jié)果表明:該算法能夠?qū)崟r和準確地檢測擒縱輪的齒長缺陷問題,能夠滿足工業(yè)檢測的要求。
微型擒縱輪是一種常見的微型齒輪,文章提出的檢測方法,對于其他具有中心對稱特征的微型齒數(shù)具有借鑒意義。