楊鎮(zhèn)豪,楊 柳,李 輝,陳建政
(1.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610064; 2.西南交通大學(xué) 牽引動(dòng)力國家重點(diǎn)實(shí)驗(yàn)室,四川 成都 610031)
在三維測量(three-dimensional measurement)圖像處理系統(tǒng)中,線結(jié)構(gòu)光測量技術(shù)是一種應(yīng)用廣泛、測量有效的光學(xué)測量方法,其原理是線光源激光器產(chǎn)生的光束投射到待測工件表面,用CCD相機(jī)拍攝調(diào)制后的激光光帶圖像,然后根據(jù)光帶中心位置的偏移計(jì)算出測量物體的三維信息。
由于測量系統(tǒng)中的激光光束質(zhì)量、測量環(huán)境和待測物體表面的光學(xué)性質(zhì)都會(huì)對(duì)攝像機(jī)采集到的光帶圖像造成影響,從而對(duì)中心線的提取帶來各種問題,所以如何精確快速地提取圖像中線結(jié)構(gòu)光光帶中心線,是整個(gè)測量系統(tǒng)測量精度的關(guān)鍵。多年來,國內(nèi)外學(xué)者就此問題提出了多種方法,比較常見的主要有極值法、幾何中心法、灰度重心法和Steger法等[1-2]。極值法與幾何中心法通過尋找圖像灰度值的極值與幾何中心計(jì)算光帶中心線,原理簡單,運(yùn)算速度較快,但是精度只能達(dá)到像素級(jí)別,難以滿足工業(yè)測量的要求?;叶戎匦姆ɡ眉す夤鈳芰款愃聘咚狗植嫉奶匦杂?jì)算光帶中心,穩(wěn)定性優(yōu)于極值法,但其準(zhǔn)確性易受圖像高頻噪聲和光帶非正態(tài)分布的影響,僅適用于圖像光帶質(zhì)量較好的場合[3-4]。Steger法利用Hessian矩陣獲取激光光帶像素點(diǎn)的法線方向,通過法線方向上的極值點(diǎn)計(jì)算出亞像素光帶中心線,精度高,但是對(duì)光帶寬度敏感,且運(yùn)算量大[5-8]。
實(shí)際工程應(yīng)用中,一般使用的激光器是普通的激光器,投射出來的光帶質(zhì)量穩(wěn)定性、均勻性不高,此外,某些工件部分表面存在腐蝕或污染,導(dǎo)致激光反射率不均勻,造成光帶圖像離散性較大;或者工件表面的金屬材料導(dǎo)致的反光嚴(yán)重,造成光帶圖像受環(huán)境影響大,質(zhì)量低。針對(duì)上述應(yīng)用背景,文中提出了一種結(jié)合極值法與Steger法的中心線提取算法,以消除或減弱復(fù)雜環(huán)境對(duì)算法提取中心線帶來的影響。
激光器產(chǎn)生激光的基本原理是大量粒子的受激輻射現(xiàn)象,光學(xué)共振腔中的粒子受到入射光子感應(yīng)或激勵(lì),持續(xù)輻射出與入射光子特征完全相同的大量光子就是激光[9]。一般的線激光光源是由點(diǎn)激光光源穿過柱面鏡和球面鏡組合產(chǎn)生,其光束橫截面上的光強(qiáng)能量呈高斯分布,因此調(diào)制到圖像傳感器上的光帶截面灰度值可用近似高斯模型來描述:
(1)
現(xiàn)有結(jié)構(gòu)光光帶中心線提取算法主要分析光帶的三個(gè)特性,即光帶中心點(diǎn)位于光帶橫截面的灰度零階極大值,一階過零點(diǎn),二階極小值處(如圖1所示)[10]。
圖1 結(jié)構(gòu)光帶截面灰度值的零階、一階、二階特征
極值法是簡單的光帶中心線提取算法,利用光帶中心點(diǎn)位于光帶橫截面灰度的極大值處這一特性,找到光帶橫截面極大值即可獲得光帶中心(見圖2)。該算法快速簡單,能達(dá)到像素級(jí)的精度。
Steger算法將圖像看成二維函數(shù),在光帶法線方向上將光帶灰度分布按泰勒多項(xiàng)式展開,求取多項(xiàng)式的極大值所在位置,即為光帶中心。為了得到圖像的泰勒多項(xiàng)式,需要獲得圖像的偏導(dǎo)數(shù),圖像的偏導(dǎo)數(shù)rx,ry,rxy,rxx,ryy通過圖像分別與下面式子中的高斯核進(jìn)行卷積獲得[11]。
圖2 極值法受噪聲的影響
(2)
(3)
(4)
(5)
(6)
則對(duì)于某一像素(x0,y0),圖像二階泰勒展開有:
r(x,y)=r(x0,y0)+[(x-x0)(y-
(7)
該點(diǎn)的Hessian矩陣為:
(8)
該點(diǎn)法線方向(nx,ny)及該方向的二階導(dǎo)數(shù),分別為該點(diǎn)Hessian矩陣的最大絕對(duì)特征值和相應(yīng)的特征向量。
光帶圖像r(x,y)中,在光帶方向上的一階方向?qū)?shù)為0,且二階方向?qū)?shù)取負(fù)的極小值點(diǎn),位于光帶中心上。設(shè)光帶方向n(x,y)用單位向量(nx,ny)表示,則式7沿光帶方向(nx,ny)可以表示為:
r(x0+tnx,y0+tny)=r(x0,y0)+tnxrx(x0,y0)+
(9)
因光帶方向上的一階導(dǎo)數(shù)為零,則有:
(10)
由式9和式10可得:
(11)
則圖像灰度的極值點(diǎn)為(px,py)=(x0+tnx,y0+tny),即光帶中心的一階導(dǎo)數(shù)過零點(diǎn),且(nx,ny)方向上的二階方向?qū)?shù)小于指定閾值,則點(diǎn)(px,py)為光帶的中心點(diǎn)[12-13]。
為了處理光帶離散性差、線寬不均勻、高反光的激光圖像,算法運(yùn)用運(yùn)算量少的極值法確定出光帶每一行截面寬度,得到粗略的光帶區(qū)域;然后再結(jié)合自適應(yīng)線寬Steger法計(jì)算出光帶中心的亞像素位置。
線結(jié)構(gòu)光投射器將激光投射到被測物體表面,利用CCD相機(jī)采集圖像。通常情況下,因?yàn)榄h(huán)境的復(fù)雜性,往往會(huì)給提取激光光帶帶來一定的干擾。為了防止這些環(huán)境所帶來的干擾,往往用CCD相機(jī)連續(xù)采集多張測量圖像,通過圖像序列做差獲得只有激光光帶的測量圖像,避開了環(huán)境復(fù)雜性的干擾。
這時(shí)得到的激光光帶的圖像通常具有較高的對(duì)比度,因此采用基于大津法(Otsu算法)[14]選擇適應(yīng)的閾值,然后用這個(gè)閾值對(duì)圖像進(jìn)行二值化處理,并且再進(jìn)行一系列的腐蝕和膨脹操作,把感興趣區(qū)域(ROI)從背景中提取出來。不僅能有效減少環(huán)境噪聲對(duì)后續(xù)光帶中心提取的影響,而且能明顯提高光帶提取速度,滿足測量系統(tǒng)對(duì)實(shí)時(shí)性的要求。
在現(xiàn)實(shí)環(huán)境下,被測物體表面往往有缺陷、環(huán)境反光等干擾因素,得到的激光光帶圖像的光帶寬度很有可能不一致,所以直接進(jìn)行光帶中心線提取達(dá)不到精度要求。為了解決這個(gè)問題,首先運(yùn)用改進(jìn)的極值法粗略提取光帶區(qū)域,然后再精確提取光帶中心。文中算法首先通過尋找每一行最大像素值和最大像素值0.9倍所在的坐標(biāo),通過這兩個(gè)坐標(biāo)計(jì)算出光帶粗略中心;然后算法設(shè)定最大光帶寬度閾值為40個(gè)像素值,排除反光現(xiàn)象造成的錯(cuò)誤光帶,具體方法是光帶寬度大于40的部分進(jìn)行截?cái)?,其他正常光帶部分尋找到最低光帶邊緣后左右再增?個(gè)像素點(diǎn)的值,以保證光帶包含全部光帶區(qū)域。
再采用參數(shù)為5個(gè)像素的中值濾波(median filtering)對(duì)粗略光帶區(qū)域進(jìn)行處理,以解決由于光帶離散性差和反光帶來的光帶寬度差異太大的問題;最后對(duì)光帶區(qū)域每行用參數(shù)σ=0.5,窗口寬度為3的高斯核進(jìn)行高斯濾波,去除光帶中的雜點(diǎn)和高頻噪聲。經(jīng)過上述一系列圖像處理,得到了最佳的光帶區(qū)域。
w(i)=
(12)
其中,M,N為光帶行號(hào)。
觀察Steger推導(dǎo)公式不難發(fā)現(xiàn),每個(gè)點(diǎn)都要進(jìn)行5次(rx,ry,rxy,rxx,ryy)二維高斯卷積,會(huì)導(dǎo)致算法運(yùn)算量很大。從式2~6可以看出,二維高斯核可以等效分解為一次高斯行卷積和一次高斯列卷積,這樣對(duì)于大模板的卷積計(jì)算將會(huì)從根本上減小計(jì)算量。
為了驗(yàn)證算法的有效性和準(zhǔn)確性,實(shí)驗(yàn)利用基于三角測量法的線結(jié)構(gòu)光測量系統(tǒng),選取兩種表面平整的平面物體作為測量對(duì)象,分別對(duì)其表面進(jìn)行光帶中心線提取。實(shí)驗(yàn)拍攝到的光帶圖像如圖3所示。圖(a)表示測量物體表面光滑、反射率均勻,無反光現(xiàn)象,可以看到激光圖像質(zhì)量較好;圖(b)表示測量物體表面反射率不均勻、存在較嚴(yán)重的反光現(xiàn)象,可以看到激光光帶圖像比較離散,反光較為嚴(yán)重,質(zhì)量不高。
圖3 平面物體實(shí)驗(yàn)圖像
采用相同線寬和其他濾波參數(shù)對(duì)兩幅光帶圖像進(jìn)行預(yù)處理,然后分別用灰度重心法、基于Hessian矩陣的Steger方法和文中算法對(duì)圖3所示圖像提取光帶中心。由于實(shí)驗(yàn)采用的測量對(duì)象是物體平面,因此分別對(duì)結(jié)果直線擬合,計(jì)算所有數(shù)據(jù)點(diǎn)到擬合直線的均方差。在同樣測量條件下,若各數(shù)據(jù)點(diǎn)到擬合直線距離的均方差較大,則表明測量精度較低,說明算法提取光帶中心相對(duì)不準(zhǔn)確;反之,如果數(shù)據(jù)點(diǎn)到擬合直線距離的均方差較小,則說明算法提取光帶中心相對(duì)準(zhǔn)確[15]。表1為運(yùn)用三種算法對(duì)兩種實(shí)驗(yàn)光帶圖像進(jìn)行多次中心線提取,計(jì)算得到的數(shù)據(jù)點(diǎn)到擬合直線均方差的平均值。
表1 三種算法均方差對(duì)比
從表1可以看出,對(duì)于亮度均勻、質(zhì)量較好的光帶,三種算法求出的數(shù)據(jù)點(diǎn)到擬合直線距離的均方差較小且差別不大,提取到的光帶中心線較準(zhǔn)確;而對(duì)于光帶較離散、質(zhì)量較差的情況,灰度重心法的均方差已偏離很大,而文中算法的均方差優(yōu)于其他兩種方法,能比較精確地提取光帶中心線。
為了進(jìn)一步驗(yàn)證該算法對(duì)復(fù)雜環(huán)境的適應(yīng)性,將其應(yīng)用到存在高反光特性的金屬測量工件。圖4(a)為測量工件不同平面在CCD相機(jī)中調(diào)制得到的光帶圖像,離散性差,且表面存在的高反光特性導(dǎo)致光帶截面不再呈高斯分布。圖4(b)為算法第一步處理得到的光帶二值化圖像。圖4(c)為算法得到的最佳光帶區(qū)域圖像。圖4(d)為利用文中算法得到的結(jié)構(gòu)光光帶中心。
圖4 實(shí)驗(yàn)結(jié)果圖像
實(shí)際工程應(yīng)用中,針對(duì)三維測量圖像處理系統(tǒng)中結(jié)構(gòu)光光源質(zhì)量、物體表面反光,或攝像機(jī)采集圖像質(zhì)量等環(huán)境因素對(duì)結(jié)構(gòu)光中心線提取的影響,提出了一種結(jié)合極值法與Steger法的中心線提取算法。該算法首先利用極值法初步確定光帶區(qū)域,然后利用自適應(yīng)線寬的Steger法計(jì)算出光帶中心亞像素位置。實(shí)驗(yàn)結(jié)果表明,該算法能快速有效地提取光帶中心,具有良好的測量精度和穩(wěn)定性,在光帶圖像質(zhì)量低、測量物體存在反光現(xiàn)象等復(fù)雜環(huán)境下仍能比較準(zhǔn)確地提取光帶中心位置。該算法為后續(xù)的各種圖像測量系統(tǒng)提供了良好的精度保障,具有一定的實(shí)用價(jià)值。