曾凱,劉賀飛,何茜,王福斌,邸躍
(華北理工大學(xué) 電氣工程學(xué)院,河北 唐山 063210)
線結(jié)構(gòu)光三維視覺(jué)測(cè)量技術(shù)作為一種有效的光學(xué)測(cè)量方法,具有非接觸、準(zhǔn)確度高和良好的實(shí)時(shí)性等優(yōu)點(diǎn),在工業(yè)生產(chǎn)、逆向工程、計(jì)算機(jī)視覺(jué)等領(lǐng)域得到廣泛應(yīng)用。提取光條圖像的條紋中心坐標(biāo)是線結(jié)構(gòu)光三維視覺(jué)測(cè)量技術(shù)的關(guān)鍵,光條圖像包含被測(cè)量物體表面的三維形貌信息,是被測(cè)點(diǎn)三維坐標(biāo)求取的依據(jù)[1]。光條中心線坐標(biāo)提取的偏差將直接影響被測(cè)對(duì)象三維坐標(biāo)的精度[2]。由于噪聲對(duì)條紋中心提取存在一定的影響,因此如何充分利用光條圖像特征,實(shí)現(xiàn)條紋中心的快速、高精度提取,是三維視覺(jué)測(cè)量技術(shù)首要考慮的問(wèn)題。
李丹等[3]將極值法和灰度重心法相融合,首先利用極值法找到灰度值的最大點(diǎn),然后通過(guò)灰度重心法獲取光條的中心位置,此方法充分利用了圖像的灰度信息,將2種方法的特點(diǎn)相結(jié)合,提高了條紋中心提取的準(zhǔn)確性和快速性,但是也存在抗噪能力差的缺點(diǎn)。賀忠海等[4]提出了曲線擬合法,實(shí)現(xiàn)了亞像素提取的高精度和高穩(wěn)定性,魯棒性良好,但是檢測(cè)提取速度慢,并且不適合復(fù)雜情況下激光條紋的檢測(cè)。李鳳嬌等[5]對(duì)Steger 算法做出改進(jìn),可根據(jù)寬度值的差異性確定光條中心點(diǎn)坐標(biāo),但當(dāng)激光條紋中心提取時(shí),中心點(diǎn)和邊緣點(diǎn)之間的距離問(wèn)題使運(yùn)算效率降低。吳慶陽(yáng)等[6]對(duì)方向模板法進(jìn)行優(yōu)化,應(yīng)用可變的方向模板確定條紋法線的方向,并結(jié)合灰度重心法在法線方向提取條紋的中心,使提取精度得到提高,但該方法只采用了固定方向的模板,導(dǎo)致計(jì)算誤差較大。蔡懷宇等[7]在Steger算法的基礎(chǔ)上,用主成分分析法(PCA)代替Steger算法中利用Hessian 矩陣求特征值的過(guò)程,該方法避免了對(duì)圖像進(jìn)行多次二維高斯卷積,提高了提取速度,保證了提取精度,滿足系統(tǒng)實(shí)時(shí)性的需求。
在實(shí)際測(cè)量中,一些工件表面存在不同程度的腐蝕或污染現(xiàn)象,并且表面的金屬材料反光現(xiàn)象嚴(yán)重,導(dǎo)致激光反射率不均勻使光條圖像受到較大的環(huán)境影響,易造成光條圖像離散性較大[8]。為解決激光條紋圖像的質(zhì)量問(wèn)題,提出一種自適應(yīng)卷積模板結(jié)合改進(jìn)Steger算法的結(jié)構(gòu)光條紋中心提取法。該方法通過(guò)自適應(yīng)卷積模板有效減弱噪聲,對(duì)去噪后的圖像進(jìn)行閾值分割快速得到條紋的感興趣區(qū)域,再采用Steger法根據(jù)區(qū)域中條紋的線寬分段,精確提取圖像中條紋的亞像素位置,提高了系統(tǒng)精度與計(jì)算效率,并且適用于高亮面物體的檢測(cè)。
線結(jié)構(gòu)光是一種單色線激光?;叶戎翟诠鈼l截面上呈對(duì)稱高斯分布,灰度值最大點(diǎn)是條紋中心。但由于被測(cè)物體本身性質(zhì)的影響,例如材質(zhì)是否均勻、透光性能如何、材料本身的顏色、形狀和表面光滑度等問(wèn)題[9],造成被測(cè)工件表面對(duì)光的反射率并不均勻,即在相機(jī)坐標(biāo)系中,與理想情況相比,這種偏差將會(huì)使被測(cè)物體表面反射的條紋截面光強(qiáng)度的分布發(fā)生改變,從而致使條紋截面的灰度值呈非正態(tài)分布,即一種不對(duì)稱的近似高斯分布。
圖1(a)為非正態(tài)分布的條紋圖像, 其真實(shí)的條紋中心在水平直線上,但灰度值明顯偏離真實(shí)中心位置并在其兩側(cè)波動(dòng)。圖1(b)為正態(tài)分布的條紋圖像,其灰度值基本對(duì)稱分布。
圖1 不同正態(tài)分布的條紋
Steger算法將圖像視為二維函數(shù),利用Hessian矩陣計(jì)算特征值和特征向量,得到條紋中心法線的方向,并在法線方向上將條紋灰度分布根據(jù)泰勒多項(xiàng)式展開,然后獲取對(duì)應(yīng)法線上的極值點(diǎn),即在條紋截面灰度分布曲線上,一階導(dǎo)數(shù)為0,二階導(dǎo)數(shù)為負(fù)的極小值點(diǎn),也就是所求取得條紋截面中心亞像素點(diǎn)。通過(guò)求取激光條紋圖像像素點(diǎn) 的Hessian 矩陣特征值和對(duì)應(yīng)的特征向量來(lái)得到光條中心點(diǎn)法線方向[10]。Hessian矩陣表示為:
(1)
式中:g(x,y)是二維高斯函數(shù)。
設(shè)nx,ny是經(jīng)Hessian矩陣求出的條紋法線方向的單位向量,以點(diǎn)(x0,y0)為標(biāo)準(zhǔn)點(diǎn),對(duì)條紋截面灰度分布函數(shù)進(jìn)行二階泰勒展開,則條紋橫截面上點(diǎn)(x0+tnx,y0+tny)的灰度為:
(2)
其中N=(tnx,tny),rx、ry由z(x,y)和與之相應(yīng)的微分形式的高斯核卷積得到。如下式:
(3)
(4)
可得出條紋中心點(diǎn)精確位置為(x0+tnx,y0+tny)。
由于Hessian矩陣運(yùn)算量大,其中每個(gè)點(diǎn)都要進(jìn)行5次(rx、ry、rxy、rxx、ryy)二維高斯卷積,導(dǎo)致計(jì)算效率低造成系統(tǒng)實(shí)時(shí)性下降,因此,需要在保證精度的基礎(chǔ)上,對(duì)Steger算法進(jìn)行改進(jìn),適當(dāng)提高Steger算法的計(jì)算效率??梢岳酶咚咕矸e的可分離性和對(duì)稱性,將二維高斯核等效分解為一次高斯行卷積和一次高斯列卷積,將運(yùn)算量從5n2次乘加運(yùn)算減少到6n+4次乘加,即從根本上減小對(duì)于大模板卷積的計(jì)算量[11,12]。
通常情況下,通過(guò)圖像預(yù)處理不能理想地消除噪聲干擾。當(dāng)激光投射到粗糙的物體表面時(shí),采集圖像并進(jìn)行閾值分割和中值濾波預(yù)處理,得到圖2所示圖像,圖中噪聲沒(méi)有被完全消除,導(dǎo)致條紋中心提取的精度下降,為提高提取精度,采用一種基于激光條紋中幾何信息和相關(guān)性的自適應(yīng)卷積法來(lái)減弱噪聲。
圖2 粗糙表面條紋預(yù)處理
首先計(jì)算自適應(yīng)模板的大小,自適應(yīng)模板的大小和元素值取決于激光條紋中的幾何信息和相關(guān)性,通過(guò)滑動(dòng)模板達(dá)到去除噪聲的目的[13]。自適應(yīng)模板的獲取可以簡(jiǎn)述為:
Step1:在圖像預(yù)處理之后,計(jì)算行(或列)中非零灰度像素的數(shù)量。
Step2:通過(guò)收縮矩陣來(lái)移除零元素,得到一個(gè)新的矩陣K,其中Km表示矩陣中最大值,Kp表示矩陣中所有元素的平均值。
從圖3(a)可以明顯觀察到對(duì)原圖像使用自適應(yīng)模板進(jìn)行卷積后噪聲減弱,激光條紋的輪廓得到了完好地保留。然后使用大津法對(duì)圖像進(jìn)行閾值分割[14],選定閾值并對(duì)圖像進(jìn)行二值化處理,從背景中提取出圖3(b)所示的感興趣區(qū)域。因此,通過(guò)上述一系列圖像處理,獲得了最佳的條紋區(qū)域,有效消除了噪聲對(duì)條紋中心提取的干擾,并且顯著提高了光條提取速度,實(shí)現(xiàn)了測(cè)量系統(tǒng)的實(shí)時(shí)要求,使之后的處理步驟更加簡(jiǎn)化。
圖3 自適應(yīng)卷積和閾值分割處理后的圖像
在實(shí)際測(cè)量環(huán)境下,由于被測(cè)物體本身表面通常伴有粗糙、高反光等干擾因素,往往造成得到的光條圖像的條紋寬度不一致,因此,條紋中心線直接提取很難達(dá)到其精度要求。在得到了條紋的感興趣區(qū)域后,運(yùn)用幾何中心法粗略提取條紋中心點(diǎn),該研究使用Canny算法進(jìn)行邊緣檢測(cè)[16],邊緣檢測(cè)完成后計(jì)算其幾何中心,計(jì)算所得結(jié)果作為條紋粗略中心點(diǎn),按照列查詢的方式,分別檢測(cè)每行中的最上和最下的非零像素點(diǎn)對(duì)應(yīng)的行坐標(biāo)值,取其平均值作為中心坐標(biāo)。圖4分別為經(jīng)過(guò)處理后邊緣圖像和邊緣及邊緣中心線圖像。
圖4 邊緣圖像和邊緣及中心線圖像
(5)
其中,M,N為光條行號(hào)。
利用實(shí)驗(yàn)室中的線結(jié)構(gòu)光三維測(cè)量系統(tǒng),驗(yàn)證算法的準(zhǔn)確性和有效性,線結(jié)構(gòu)光測(cè)量系統(tǒng)主要由0-30MW線結(jié)構(gòu)光激光器、分辨率為1 600×1 200的德國(guó)Allied Vision TechnologieMako G-192C攝像機(jī)組成,采用Matlab軟件編程實(shí)現(xiàn)。測(cè)量對(duì)象為2種表面光滑的矩形工件,拍攝到的光條圖像如圖5所示,圖5(a)表明工件表面光滑、反射率相對(duì)均勻,有輕微的反光現(xiàn)象,光條圖像質(zhì)量較好;圖5(b)表明測(cè)量工件表面反射率不均勻,光條圖像較離散,反光嚴(yán)重,圖像質(zhì)量不高。
圖5 工件光條圖像
采用相同濾波參數(shù)及線寬對(duì)兩幅激光條紋圖像進(jìn)行預(yù)處理,第1列為灰度重心法,可以看出提取的中心線波動(dòng)較大;第2列為基于Hessian 矩陣的Steger 方法,與灰度重心法對(duì)比,中心線較為平整;第3列為本文算法,其適應(yīng)性更好,提取效果最佳。
圖6 3種算法提取的光條中心線圖像
測(cè)量對(duì)象為工件表面,對(duì)提取結(jié)果分別進(jìn)行直線擬合,并計(jì)算所有數(shù)據(jù)點(diǎn)到擬合直線的均方差。通過(guò)對(duì)比均方差的大小來(lái)判斷算法的測(cè)量精度,均方差越大則測(cè)量精度越低,表明該算法提取光條中心的準(zhǔn)確性較低;均方差較小,則該算法提取光條中心的準(zhǔn)確性較高[19]。表1為使用3種不同算法提取2種光條圖像中心線,并計(jì)算獲得的數(shù)據(jù)點(diǎn)與擬合直線的均方差數(shù)據(jù)。
表1 3種光條中心線提取方法均方差
通過(guò)表1中的數(shù)據(jù)可以得出,對(duì)于亮度均勻且質(zhì)量較好的光條,3種算法求得的數(shù)據(jù)點(diǎn)到擬合直線距離的均方差較小,光條的中心線提取較為準(zhǔn)確;對(duì)于光條較離散且質(zhì)量較差的情況,灰度重心法的均方差已偏離很大,對(duì)比其他2種方法,該研究算法的均方差相對(duì)較小,可以準(zhǔn)確地提取光條中心線,進(jìn)而為后續(xù)的三維測(cè)量打下良好的基礎(chǔ)。
通過(guò)對(duì)線結(jié)構(gòu)光的中心提取實(shí)驗(yàn),提出了一種自適應(yīng)卷積結(jié)合改進(jìn)Steger算法的條紋中心線提取方法。利用自適應(yīng)卷積模板有效地降低了噪聲對(duì)圖像的干擾,之后利用幾何中心法提取條紋粗略中心點(diǎn),根據(jù)光條區(qū)域的寬度不同,設(shè)定不同的高斯函數(shù)均方差σ,利用Hessian 矩陣及泰勒級(jí)數(shù)實(shí)現(xiàn)激光條紋寬度變化的中心線檢測(cè),提高了Hessian矩陣的獲取速度,滿足測(cè)量的實(shí)時(shí)性要求,精度可達(dá)到亞像素級(jí)。該方法穩(wěn)定性強(qiáng)、精度高,適合對(duì)高反光物體的光條中心提取,有利于提升結(jié)構(gòu)光的三維重建的效率。