陳嵐萍,劉寒寒,馬正華
(常州大學(xué) 信息數(shù)理學(xué)院,江蘇 常州 213164)
工業(yè)生產(chǎn)中,對工件的尺寸、精度的要求會直接關(guān)系到機(jī)械的使用壽命、運動性能等,還會關(guān)系到環(huán)境污染、能源消耗問題。傳統(tǒng)的手工測量方法不僅依賴操作人員,還會造成操作者勞動強(qiáng)度大的問題,從而造成誤差大、生產(chǎn)效率低等問題。面對大批量、精度要求高的產(chǎn)品,研究低成本、高精度、高效率、低消耗的自動檢測系統(tǒng)是解決這個問題的關(guān)鍵[1]。
目前,利用機(jī)器視覺技術(shù)進(jìn)行檢測已經(jīng)成為國內(nèi)外研究的熱點,它能實現(xiàn)對工件的實時在線自動檢測,可以減小人為誤差、提高生產(chǎn)效率和檢測精度。視覺檢測技術(shù)有很多檢測方法:自適應(yīng)開關(guān)中值濾波算法[2]、基于插值理論的精確定位細(xì)分算法[3]、基于二維小波降噪的亞像素圖像處理方法[4]、基于公共特征的圖像拼接算法[5]、分形插值和小波變換結(jié)合的亞像素級邊緣定位檢測方法[6]等。這些方法與傳統(tǒng)的算子相比,檢測精確度、準(zhǔn)確度都有很大的提高,但是計算復(fù)雜度高?;贐lob分析的織物缺陷檢測方法[7],對織物圖像進(jìn)行圖像分割、形態(tài)學(xué)處理、特征提取、特征參數(shù)計算等,計算簡單、易于實現(xiàn),克服了這一問題,但是在光照不均情況下,該算法的檢測效果不是很好。為了解決這一問題,本文提出一種基于Lanser算子的亞像素邊緣檢測與基于亞像素的形狀選擇函數(shù)相結(jié)合的方法,能實現(xiàn)對工件的基本參數(shù)更快速、更準(zhǔn)確的測量。
本文提出基于Lanser算子的亞像素邊緣檢測與基于亞像素的形狀選擇函數(shù)相結(jié)合的方法,從而準(zhǔn)確確定普通工件目標(biāo)檢測對象,提高目標(biāo)檢測的準(zhǔn)確度與精確度,減少目標(biāo)檢測的時間。
傳統(tǒng)用來描述物體輪廓的每個點之間是一個像素間距,數(shù)字圖像中最基本的單位是像素,像素越高,分辨率越大,圖像越清晰。實際工業(yè)應(yīng)用中,需要比像素分辨率更高的精度,這時候就需要提取亞像素精度數(shù)據(jù)。亞像素邊緣檢測技術(shù)是在不改變系統(tǒng)硬件條件下,通過軟件的方式來提高邊緣檢測的精度,使圖像分辨率低于1個像素的圖像處理技術(shù)[8]。
XLD(extended line descriptions)代表亞像素精度的邊緣輪廓和多邊形,可以理解為擴(kuò)展線的描述。本文采用基于Lanser算子的亞像素邊緣檢測,從而提高邊緣檢測的精度。
學(xué)者Canny[9]提出理想邊緣檢測器應(yīng)滿足3條準(zhǔn)則,他將這3條準(zhǔn)則組合成一個最優(yōu)化的準(zhǔn)則,并通過變積分方法解決了這個問題。Canny邊緣檢測器與高斯濾波器一階導(dǎo)數(shù)近似,在二維圖像(x,y)中,其表達(dá)式為
(1)
(2)
Deriche邊緣檢測器修正了Canny邊緣檢測器不能以遞歸方式計算的不足,其表達(dá)式為
(3)
(4)
若要使得Canny濾波器與Deriche濾波器的效果類似,則需滿足
(5)
上述兩種邊緣檢測器,Canny邊緣檢測器具有各項同性和旋轉(zhuǎn)不變形,卻不能用遞歸方式計算,故其運行時間由σ的平滑程度決定。Deriche邊緣檢測器能以遞歸方式計算,其運行時間不受α的影響,運行速度快,但它是各項異性的,其邊緣幅度依賴于圖像中的邊緣角度,邊緣檢測的精度會降低[10]。
Lanser[11]證明了Deriche邊緣檢測器的各項異性是可以修正的:假設(shè)在Deriche邊緣檢測器的梯度方向為φ時,得到邊緣幅度為A,該梯度方向下邊緣幅度真實值為A′,則A′與A有如下關(guān)系
A′=V(φ)A
(6)
式中:V(φ)為原始振幅方向靈敏度失真補(bǔ)償系數(shù),x(φ)、y(φ)分別為V(φ)的X軸方向、Y軸方向的失真補(bǔ)償系數(shù)
(7)
式中
(8)
φ與V(φ)的關(guān)系如圖1所示,通過計算得到每個梯度方向φ對應(yīng)的V(φ)值。
圖1 φ -V(φ)關(guān)系
圖1中
(9)
在光照不均時,從圖像中提取的亞像素精度輪廓還是不能完全去除偽邊緣或者不必要輪廓,為了消除這些不必要特征,必須從分割結(jié)果中選出某些輪廓,從而確定需要測量的特征。
在提取需要測量的特征之前,因為有噪聲、物體本身斷裂等原因,很多邊緣是共線但是斷裂的,我們需要先合并XLD,本文主要用到共線輪廓合并和共圓輪廓合并。
亞像素輪廓可以分為兩種:①閉輪廓:首尾相交;②開輪廓:首尾不相交。
XLD特征主要包括以下4個特征:①基礎(chǔ)特征:XLD面積(area)、中心、寬高、左上角及右下角坐標(biāo);②形狀特征:圓度(circularity)、矩形度(rectangularity)、緊密度/粗糙度(compactness)、長度、凸性、離心率/偏心度、膨松度(bulkiness)、外接圓半徑、外接矩形的方向及兩邊長度等;③云點特征:云點面積中心及方向、等效橢圓半軸及角度等;④幾何特征:二階矩等。
本文為了準(zhǔn)確地提取目標(biāo)邊緣輪廓,按照基于亞像素的形狀選擇函數(shù)對圓度特征、凸包特征、緊密度特征等實現(xiàn)目標(biāo)邊緣輪廓的提取。
最小二乘法擬合是平面擬合中最常用的擬合方法,以直線為例,由于采用的平方距離,所以與直線距離遠(yuǎn)的那些點在最優(yōu)化過程中會有非常大的權(quán)重,因此最小平方直線擬合法對于一些大的離群值是不具有魯棒性的。針對這一問題,本文采用魯棒性擬合。
魯棒性擬合[12]的核心為了減輕遠(yuǎn)離點的影響,從而取消離群值或者賦予離群值很小的權(quán)重。以直線為例,Tukey權(quán)重函數(shù)方法就是一種為距離遠(yuǎn)的點選定了其距離值而不是平方距離值參加運算的魯棒性方法。定義Tukey權(quán)重函數(shù)ω(δ)為
(10)
式中:δ為點到直線的距離;τ為削波因數(shù)。
距離δ大于τ的點為離群值,擬合直線時被忽略;其余點的權(quán)重在0-1之間。削波因數(shù)τ代表的是一個距離,可以依據(jù)數(shù)據(jù)自身推出削波因數(shù),通??梢曰邳c到直線的標(biāo)準(zhǔn)偏差來實現(xiàn)。為了得到數(shù)據(jù)中的離群值,所以不能使用常規(guī)標(biāo)準(zhǔn)偏差,而必須使用針對離群值的魯棒的標(biāo)準(zhǔn)性偏差。式(11)被用來計算這個魯棒的標(biāo)準(zhǔn)偏差σδ,削波因數(shù)τ被設(shè)置為σδ的一個小倍數(shù),本文設(shè)置τ=2σδ
(11)
引入權(quán)重函數(shù)后,使用多次迭代來定義權(quán)重。具體流程是:第一次迭代中使用權(quán)重ω(i)=1,i=1,……,n,即使用標(biāo)準(zhǔn)的直線擬合得到一條近似直線,并通過此計算出每個點到直線的距離δ(i),再根據(jù)式(11)得到魯棒的標(biāo)準(zhǔn)偏差σδ,從而得到削波因數(shù)τ,最后根據(jù)式(10)得到權(quán)重,并作為下次迭代使用的權(quán)重;再按照相同的步驟重復(fù)迭代過程;最終迭代結(jié)束,獲得理想的邊緣輪廓,魯棒性擬合結(jié)束。
本文的研究路線如圖2所示。
圖2 研究路線
本文基于Halcon軟件平臺搭建機(jī)器視覺檢測系統(tǒng),如圖3所示。實驗中采用計算機(jī)為3.70 GHz處理器的PC機(jī),光學(xué)鏡頭為遠(yuǎn)心鏡頭。工業(yè)相機(jī)為1394相機(jī):德國AVT stingray F125b,內(nèi)置圖像預(yù)處理功能,分辨率為1292×964,像素為120萬,幀率可達(dá)30 fps;采用1/3的CCD傳感器,面陣相機(jī),型號為SonyICX445。圖像采集卡為德國AVT 1394,具有好的畫質(zhì),高速的傳輸速度。光源選擇LED(發(fā)光二極管),它采用直流供電,亮度取決于電流大小,容易控制;發(fā)光功耗小、發(fā)熱小、發(fā)光效率高 。
圖3 機(jī)器視覺檢測系統(tǒng)
使用算子read_image()讀取相機(jī)獲取的普通工件原始圖像,如圖4所示。
圖4 待檢測目標(biāo)工件圖像
在實際測量環(huán)境中,利用相機(jī)的內(nèi)參數(shù),根據(jù)針孔成像原理從相機(jī)坐標(biāo)得到的物理坐標(biāo)滿足不了高精度的需求,系統(tǒng)標(biāo)定通過計算每個像素對應(yīng)的實際物理尺寸,會讓標(biāo)定后的檢測更加便捷,能滿足精度要求高、生產(chǎn)效率高的測量環(huán)境。實際物理尺寸d1(mm)與像素數(shù)d2(pixel)之間存在的比例關(guān)系,稱作標(biāo)定系數(shù),即單個像素實際物理距離d(mm/pixel)
d=d1/d2
(12)
在復(fù)雜背景下,為得到圖像中的物體信息,我們必須進(jìn)行目標(biāo)圖像與背景的分離,即目標(biāo)提取,從而提取圖像中與感興趣物體相對應(yīng)的區(qū)域。使用算子gen_rectangle2()、reduce_domain()、crop_domain()獲得目標(biāo)對應(yīng)區(qū)域,如圖5所示。
圖5 目標(biāo)工件檢測區(qū)域
為了準(zhǔn)確地提取亞像素邊緣,本文提出基于Lanser算子的亞像素邊緣檢測與XLD特征選擇相結(jié)合的方法。
首先通過算子edges_sub_pix(ImagePart, Edges, ′lanser2′, 2, 20, 40)對目標(biāo)進(jìn)行粗略檢測,如圖6所示。其中,′lanser2′ 為二階Lanser濾波器;2表示高斯平滑系數(shù),該參數(shù)越小,平滑越強(qiáng)大;20和40表示梯度值,即邊緣的梯度,也可以理解為低閾值和高閾值。
圖6 目標(biāo)粗略檢測
然后對輪廓進(jìn)行XLD合并,通過合并臨近輪廓的亞像素,將端點很近的輪廓連接起來,算子union_adjacent_contours_xld(Edges,UnionContours,10,1,′attr_keep′)得到如圖7(a)所示的輪廓。Edges為輸入的亞像素輪廓,UnionContours為合并后的輪廓,10為兩個輪廓的絕對距離,1為兩個輪廓相對距離比值閾值,′attr_keep′為各輪廓屬性值是否被忽略,這個參數(shù)表示保持原來的屬性。
圖7 目標(biāo)精確檢測
最后通過基于亞像素的形狀選擇函數(shù)算子select_shape_xld()對圖7(a)先進(jìn)行面積area特征(取200~19000)得到圖7(b)邊緣輪廓;再進(jìn)行凸包convexity特征(取0.99~1)得到圖7(c)邊緣輪廓;最后進(jìn)行緊密度compactness特征(取1~1.5)得到圖7(d)邊緣輪廓。
為了對目標(biāo)進(jìn)行擬合、特征計算,那么就要目標(biāo)輪廓進(jìn)行分割和分類,從而得到輪廓數(shù)目與輪廓處理的順序。先通過分割函數(shù)算子segment_contours_xld(),輪廓分割方式選擇′lines_circles′(使用直線段和圓(弧)分割)。再通過算子sort_contours_xld()依據(jù)輪廓的相對位置對輪廓分類。最后通過算子count_obj()計算連通域個數(shù),本文由計算得到8個連通域。
本文通過for循環(huán)對8個連通域進(jìn)行擬合和特征計算,最終目標(biāo)輪廓如圖8所示。
圖8 最終目標(biāo)輪廓
先通過算子select_obj()選擇輪廓,再通過算子get_contour_global_attrib_xld()根據(jù)其輪廓特性確定目標(biāo)輪廓的擬合方向(當(dāng)輪廓的屬性參數(shù)Attrib為-1,表示該輪廓適合擬合成直線;當(dāng)輪廓的屬性參數(shù)Attrib為0,表示該輪廓適合擬合成橢圓;輪廓的屬性參數(shù)Attrib為1,表示該輪廓適合擬合成圓)。
最后通過基于Tukey算法的魯棒性擬合得到最終目標(biāo)輪廓。若Attrib=1,用算子fit_circle_contour_xld()進(jìn)行亞像素擬合圓,并用算子gen_ellipse_contour_xld()對該擬合參數(shù)進(jìn)行亞像素圓的創(chuàng)建;若Attrib=-1,用算子fit_line_contour_xld()進(jìn)行亞像素擬合直線,算子gen_contour_polygon_xld()對該擬合參數(shù)進(jìn)行亞像素直線的創(chuàng)建。
本文將基于Blob分析算法檢測的結(jié)果與基于本文算法目標(biāo)檢測的結(jié)果進(jìn)行比較分析,得到如圖9所示的檢測結(jié)果。
圖9 基于不同算法的檢測結(jié)果
對同一幅圖像進(jìn)行兩種檢測算法得到的檢測結(jié)果進(jìn)行重新編序,如圖8所示,標(biāo)號排序后的檢測結(jié)果見表1。
目標(biāo)系統(tǒng)標(biāo)定下得到每個像素對應(yīng)的實際幾何尺寸為0.2 mm/pixel,通過計算,得到如表2所示的目標(biāo)檢測結(jié)果的實際測量數(shù)據(jù)。
對表2進(jìn)行比較,可知基于本文算法檢測的時間優(yōu)于基于Blob分析算法檢測的時間;基于Blob分析算法的檢測與目標(biāo)基準(zhǔn)邊緣之間的偏差較大,基于本文算法檢測獲取的邊緣與目標(biāo)基準(zhǔn)邊緣十分吻合。由此可見:針對光照不均邊緣,基于Blob分析算法的檢測的圖像邊緣點與實際邊
表1 目標(biāo)特征檢測結(jié)果
表2 工件實際測量數(shù)據(jù)
緣之間有像素級偏差;而本文算法利用基于Lanser算子的亞像素邊緣檢測的特點,具有較好的噪聲抑制能力、定位精度和準(zhǔn)確度。
本文通過Halcon軟件,應(yīng)用機(jī)器視覺技術(shù),實現(xiàn)了對工件目標(biāo)特征尺寸的檢測與測量。與傳統(tǒng)檢測方法相比,機(jī)器視覺檢測方法具有非接觸、精度高、速度快的優(yōu)點。與其它視覺軟件相比,Halcon具有可視化、快速、穩(wěn)定、操作方便等特點。本文檢測系統(tǒng)對測量環(huán)境的要求低,具有較強(qiáng)的自適應(yīng)能力和穩(wěn)健性,極大地提高了檢測效率。基于Lanser算子的亞像素邊緣檢測與基于亞像素的形狀選擇函數(shù)相結(jié)合的方法很好地處理了光照不均等復(fù)雜環(huán)境下檢測的效率、精度、準(zhǔn)確度等問題,因此該方法是可行的。