潘 碩,邵新杰,李曉磊,唐香珺
(陸軍工程大學(xué)石家莊校區(qū)車(chē)輛與電氣工程系,河北 石家莊 050003)
線結(jié)構(gòu)光法是獲取被測(cè)物體表面三維信息的一種常用視覺(jué)測(cè)量方法,近年來(lái)在工業(yè)檢測(cè)、環(huán)境感知、地理、醫(yī)療及文物保護(hù)等領(lǐng)域得到廣泛應(yīng)用[1~4]。該檢測(cè)方法使用相機(jī)采集激光發(fā)射器投射到三維物體表面的光條圖像,通過(guò)計(jì)算機(jī)解算光條信息獲取物體表面的三維特征。在實(shí)際測(cè)量過(guò)程中,采集圖像中光條寬度通常為幾個(gè)到幾十個(gè)像素,從圖像中精確提取光條中心是實(shí)現(xiàn)測(cè)量的關(guān)鍵步驟[5]。
進(jìn)行線結(jié)構(gòu)光檢測(cè)時(shí),光條投射到三維物體表面,由于被測(cè)物體的表面特性、三維形狀、投影強(qiáng)度及環(huán)境光強(qiáng)不同,對(duì)激光條紋圖像的成像質(zhì)量造成干擾,成為限制提取光條中心坐標(biāo)精度的重要原因[6]。在線結(jié)構(gòu)光中心提取的研究過(guò)程中,國(guó)內(nèi)外學(xué)者提出了許多中心提取方法,其中邊緣提取法、閾值提取法、極值法、骨架細(xì)化法提取光條中心精度為整像素級(jí),幾何中心法、灰度重心法、Steger方法,曲線擬合法的提取精度可以達(dá)到亞像素級(jí)[7],隨著測(cè)量要求的提高,在噪聲環(huán)境中提取精度更高、魯棒性更好的算法成為研究的重點(diǎn)。胡改玲[8]等在結(jié)構(gòu)光條骨架上劃分窗口,對(duì)窗口內(nèi)的像素采用自適應(yīng)灰度加權(quán)重心法求得圖像的亞像素坐標(biāo),提取的光條中心光順性更好。王利等[9]引入距離變換提取條紋的中心像素,然后利用曲線擬合和重心法提取亞像素重心,結(jié)合光條寬度和灰度信息降低了圖像噪聲對(duì)提取精度的影響。LI等[10]通過(guò)最小二乘法計(jì)算出光條上每一點(diǎn)的方向向量和曲率值,構(gòu)建沿法向量的自適應(yīng)矩形窗口,在矩形窗口內(nèi)并沿著法線向量的方向重新計(jì)算每個(gè)中心點(diǎn)的坐標(biāo),顯著提高了光條中心的提取精度。張佳等[11]提取ROI區(qū)域后采用自適應(yīng)寬度的二次加權(quán)重心法確定光條中心,并通過(guò)斜率閾值對(duì)中心坐標(biāo)進(jìn)行均值優(yōu)化,提高了光條中心提取的穩(wěn)定性。
上述算法都在光條的中心像素附近生成了一定大小的窗口,利用光條的鄰域信息提取光條中心,相比傳統(tǒng)算法能夠在一定程度上減少噪聲及被測(cè)物體表面環(huán)境的影響,提高了算法的精度和穩(wěn)定性。一般情況下,同一激光投射器產(chǎn)生的結(jié)構(gòu)光條紋形狀單一,有固定模式的光強(qiáng)分布,在獲取的激光條紋圖像中呈現(xiàn)為相似的光條紋結(jié)構(gòu)。在圖像獲取過(guò)程中,噪聲的存在造成了相似光條鄰域內(nèi)的細(xì)小差異,提取全局圖像中具有相似結(jié)構(gòu)的光條中心,將其均值作為其中心坐標(biāo),能夠有效減小噪聲干擾,提高提取精度。本文利用骨架細(xì)化法提取光條的中心像素,在中心像素鄰域內(nèi)構(gòu)建包含光條基本結(jié)構(gòu)的圖像塊,通過(guò)塊匹配方式搜尋相似度較高的光條結(jié)構(gòu),利用圖像全局光條信息得到了更高精度的光條中心坐標(biāo)。
本文提取光條中心算法步驟如圖1所示。首先對(duì)拍攝的結(jié)構(gòu)光圖像進(jìn)行閾值處理,將其轉(zhuǎn)化為二值圖像,對(duì)二值圖像進(jìn)行骨架細(xì)化,逐層剝離得到光條的中心像素。然后在每個(gè)中心像素鄰域內(nèi)生成包含光條信息的圖像塊,將其作為光條中心亞像素坐標(biāo)提取的基本單元。之后利用塊匹配的方法將圖像中具有一定相似度的圖像塊劃分為不同的塊匹配群組,求取組內(nèi)光條結(jié)構(gòu)的重心坐標(biāo),將同一群組的灰度重心坐標(biāo)均值作為群組內(nèi)亞像素坐標(biāo)與其中心像素的坐標(biāo)偏差,然后將坐標(biāo)偏差與群組內(nèi)圖像塊各自對(duì)應(yīng)的中心像素坐標(biāo)相加得到各自光條中心的亞像素坐標(biāo)。
對(duì)結(jié)構(gòu)光圖像進(jìn)行骨架細(xì)化,得到光條中心的像素級(jí)坐標(biāo)。首先對(duì)結(jié)構(gòu)光圖像進(jìn)行閾值分割,得到分割出光條輪廓的二值化圖像,然后對(duì)光條輪廓一層層細(xì)化,直至得到輪廓的單像素骨架,得到光條中心像素坐標(biāo)。
對(duì)圖像進(jìn)行二值化操作時(shí),本文采用局部均值和標(biāo)準(zhǔn)差的閾值處理提取結(jié)構(gòu)光條,在處理背景照明不均的圖像時(shí)能取到較好效果。該算法首先確定一個(gè)固定大小的模板,通過(guò)計(jì)算模板的標(biāo)準(zhǔn)差和均值確定模板中心像素點(diǎn)的的閾值,公式為:
其中,f(x,y)為處理前的圖像;g(x,y)為處理后的圖像;σxy,mxy分別為(x,y)鄰域像素的標(biāo)準(zhǔn)差和均值;a,b為常系數(shù)。遍歷整幅圖像,得到的二值圖像g(x,y)中光條區(qū)域?yàn)?,其余部分為0[12]。
對(duì)二值圖像進(jìn)行骨架細(xì)化操作,將圖像中任意一點(diǎn)像素P1的3×3鄰域構(gòu)造為圖2所示順序,對(duì)整幅圖像逐點(diǎn)運(yùn)算,當(dāng)P1=1時(shí)判斷其是否為輪廓點(diǎn)進(jìn)行刪除操作,算法步驟如下:
圖2 P1的3×3窗口內(nèi)的9像素
(1)進(jìn)行第1次子迭代時(shí),如果滿足下列情況則刪除該點(diǎn):
(a)2≤B(P1)≤6
(b)A(P1)=1
(c)P2·P4·P6=0
(d)P4·P6·P8=0
其中:
表示在P2,P3,…P8,P9順序下0、1模式的數(shù)量,B(P1)=P2+P3+P4+…+P8+P9,表示P1非零鄰域的個(gè)數(shù)。
(2)進(jìn)行第2次子迭代,條件(c)、(d)變?yōu)?
(c′)P2·P4·P8=0
(d′)P2·P6·P8=0
其余條件不變,刪除滿足條件的點(diǎn)。
(3)重復(fù)步驟(1)、(2),直至沒(méi)有點(diǎn)被刪除后得到光條圖像的中心像素[13]。
塊匹配算法是運(yùn)動(dòng)估計(jì)、圖像濾波和視頻壓縮中的一種常用方法,該方法將圖像劃分為大小相等的圖像塊,選定其中一個(gè)圖像塊作為查詢塊與其他圖像塊進(jìn)行匹配,找出與查詢塊具有相似特征的K個(gè)匹配塊,組成塊匹配數(shù)組。
在骨架細(xì)化法提取出的光條中心像素鄰域內(nèi)生成大小為k×k(k為奇數(shù))的圖像塊,將其作為提取光條中心坐標(biāo)的基本單位,利用塊匹配的方式搜尋具有一定相似度的光條結(jié)構(gòu)。結(jié)構(gòu)光圖像I在中心像素生成圖像塊,其中P代表查詢塊,Q代表與查詢塊進(jìn)行匹配的圖像塊,當(dāng)P,Q之間的相似程度小于一定閾值時(shí),認(rèn)定兩者相似屬于同一分組,在搜索過(guò)程中,圖像塊的距離使用d(P,Q)表示:
(2)
式中,d表示兩個(gè)圖像塊之間的距離,分子表示查詢塊與匹配塊的模,分母表示圖像塊的大小。與查詢塊P的距離小于一定閾值的匹配塊組成分組SP:
SP={Q∈I|d(P,Q)≤τ}
(3)
τ表示匹配塊與查詢塊的相似度閾值,當(dāng)兩個(gè)圖像之間差異的小于τ時(shí),認(rèn)定兩個(gè)圖像的相似度高,具有相同的光條中心坐標(biāo)[14]。
分組SP內(nèi)的光條圖像塊相似度高,含有相同的光條結(jié)構(gòu),將其坐標(biāo)均值作為光條中心坐標(biāo)真值可以降低噪聲對(duì)光條亞像素中心提取的干擾。
設(shè)C(xC,yC)為骨架細(xì)化法提取出的中心像素,P為以點(diǎn)C為中心的大小為k×k的查詢塊,SP={Qi∈I}為與該點(diǎn)相似的匹配塊集合,在每個(gè)匹配塊中采用灰度重心法提取光條中心。匹配塊內(nèi)的中心點(diǎn)x方向的像素集合為Gx(x,y),y方向的像素集合為Gy(x,y),則光條中心在圖像中的亞像素定位可由重心法確定為:
(4)
(5)
n為SP中匹配塊的個(gè)數(shù),對(duì)SP中所有的匹配塊求光條的中心坐標(biāo),最后將其均值作為該塊匹配群組中光條中心的亞像素坐標(biāo)偏差:
(6)
(7)
最終確定光條在整個(gè)圖像的亞像素條紋中心坐標(biāo)為:
(8)
(9)
通過(guò)上述方法遍歷所有的中心像素點(diǎn),得到結(jié)構(gòu)光圖像中所有光條的亞像素中心坐標(biāo)。
生成如圖3所示10條服從峰值為180,標(biāo)準(zhǔn)差為2的多線高斯分布的多線結(jié)構(gòu)光仿真圖像,條紋中心橫向等距分布。在仿真圖像中加入均值為0,方差為0.01~0.05范圍的高斯噪聲,分別使用本文方法與基于骨架提取的灰度重心法提去不同噪聲圖像中的結(jié)構(gòu)光條中心。圖4顯示出在不同噪聲環(huán)境中兩種方法光條中心提取坐標(biāo)平均偏差的對(duì)比結(jié)果,從中可以看出塊匹配的方法能夠在復(fù)雜噪聲環(huán)境中提高提取精度,在不同的噪聲環(huán)境中均有較好的提取效果。
圖3 多線結(jié)構(gòu)光仿真圖像
圖4 不同噪聲環(huán)境下的提取誤差對(duì)比
在仿真試驗(yàn)中分別使用基于塊匹配的改進(jìn)算法、傳統(tǒng)灰度重心法及Steger法分別提取噪聲方差為0.01圖像中的光條中心線,比較其效果。圖5為三種算法在提取光條中心線時(shí)的局部放大圖,可以看出灰度重心法在提取光條中心圖像時(shí)容易受到噪聲干擾,誤差較大,本文算法與Steger算法更為接近真實(shí)光條中心。圖6為使用三種算法提取的光條中心在不同光條上的的平均偏差??梢钥闯霰疚乃岢龅乃惴ň雀哂趥鹘y(tǒng)的灰度重心法,平均偏差總體保持在0.05 pixel左右,誤差更小。
圖5 激光條紋中心提取結(jié)果對(duì)比
圖6 光條中心提取平均偏差對(duì)比
為驗(yàn)證本文提出方法的有效性,使用文獻(xiàn)[15]中的多線結(jié)構(gòu)光測(cè)量系統(tǒng)對(duì)金屬平面工件進(jìn)行測(cè)量實(shí)驗(yàn),圖7所示為實(shí)驗(yàn)拍攝圖像。圖8所示為分別使用基于骨架提取的灰度重心法,Steger法和本文算法提取光條中心的放大圖像,可以看出,基于骨架提取的灰度重心提取算法受噪聲影響較大,提取出的光條中心較為散亂,Steger法提取的的光條中心在光條邊緣處有離散噪聲點(diǎn)存在,影響提取精度,本文算法提取的光條中心比較平滑,更為逼近真實(shí)的光條中心。
圖7 平面工件的多線結(jié)構(gòu)光圖像
圖8 實(shí)驗(yàn)條紋中心提取結(jié)果對(duì)比
線結(jié)構(gòu)光在平面上的投影為一條直線,在實(shí)驗(yàn)結(jié)果的基礎(chǔ)上,對(duì)提取的光條中心點(diǎn)進(jìn)行直線擬合,分別計(jì)算每種方法提取中心點(diǎn)到直線的平均偏差,以表征光條中心提取的精度。表1為圖7中不同編號(hào)光條提取中心線的擬合結(jié)果。
表1 光條中心提取實(shí)驗(yàn)擬合結(jié)果及誤差
從表中可知,本文提出算法提取的光條中心平均偏差小于灰度重心法及Steger法,更加逼近真實(shí)的光條中心,抗噪能力更強(qiáng),能夠在噪聲環(huán)境中提取較高精度的光條中心。
線結(jié)構(gòu)光在提取光條中心時(shí)往往受到噪聲影響,限制中心提取精度,本文利用結(jié)構(gòu)光圖像中的全局信息,通過(guò)塊匹配的方法將具有相似光條結(jié)構(gòu)的圖像塊分組,求取每組圖像塊中光條的中心坐標(biāo),將其均值作為最終光條中心,減少了光條圖像隨機(jī)噪聲對(duì)提取算法精度的影響。在仿真分析過(guò)程中,對(duì)高斯光條施加均值為0,方差為0.01的高斯噪聲時(shí),本文算法提取光條中心坐標(biāo)精度優(yōu)于傳統(tǒng)灰度重心算法和Steger法,平均偏差在0.1pixel內(nèi),同時(shí)實(shí)驗(yàn)驗(yàn)證本文提出的算法在實(shí)際光條提取過(guò)程中產(chǎn)生的平均偏差更小,能夠有效減少噪聲對(duì)光條中心提取精度的影響,具有較好的抗噪性。