張啟航, 張秋菊, 賈君慧, 荊澤成
(1.江南大學(xué) 機(jī)械工程學(xué)院,江蘇 無(wú)錫 214000;2.華中科技大學(xué)無(wú)錫研究院 機(jī)器人中心,江蘇 無(wú)錫 214000)
作為人工智能的重要元素,機(jī)器視覺(jué)已經(jīng)被廣泛地應(yīng)用在工業(yè)機(jī)器人、目標(biāo)識(shí)別、視覺(jué)檢測(cè)與三維(3D)測(cè)量等領(lǐng)域,并不斷地推進(jìn)產(chǎn)業(yè)智能化的轉(zhuǎn)型[1]。結(jié)構(gòu)光三維測(cè)量因?yàn)槠渚哂刑幚硭俣瓤?、硬件成本低和測(cè)量結(jié)果精度高等優(yōu)點(diǎn),在機(jī)器視覺(jué)三維非接觸測(cè)量領(lǐng)域具有廣闊的應(yīng)用前景[2~4]。結(jié)構(gòu)光三維測(cè)量是通過(guò)投射設(shè)備向待測(cè)物體投射預(yù)先編碼好的圖像,并由一個(gè)或多個(gè)相機(jī)進(jìn)行圖像的采集?;谙鄼C(jī)采集的圖像進(jìn)行解碼操作,進(jìn)而對(duì)匹配點(diǎn)進(jìn)行三角測(cè)量法計(jì)算,求解出目標(biāo)物體表面采樣點(diǎn)三維坐標(biāo)。該方法在縮短測(cè)量時(shí)間,提高測(cè)量效率方面優(yōu)勢(shì)尤為突出[5]。
目前基于結(jié)構(gòu)光編碼與解碼的方法研究有很多,其中,格雷編碼因其相鄰兩個(gè)值最多只存在一位誤碼以及抗干擾能力強(qiáng)等優(yōu)點(diǎn),在結(jié)構(gòu)光應(yīng)用中最為廣泛[6]。Zheng D L等人[7]提出了一種使用自適應(yīng)中值濾波器的方法,有效地消除了圖像噪聲所產(chǎn)生的格雷碼解碼誤差。黃治凡等人[8]介紹了一種基于雙目單視面和結(jié)構(gòu)光的三維復(fù)原方法。雷震[9]提出了一種直接格雷碼編碼的結(jié)構(gòu)光測(cè)量方法,但提高了視覺(jué)系統(tǒng)搭建的難度。崔海華等人[10]采用了一種基于格雷碼—相移的組合光編碼技術(shù)對(duì)目標(biāo)物體進(jìn)行三維測(cè)量,實(shí)現(xiàn)了相機(jī)視場(chǎng)的無(wú)極細(xì)分,提高了編碼的分辨率與穩(wěn)定性,但未考慮周期錯(cuò)位現(xiàn)象可能帶來(lái)的誤差影響。尹麗萍等人[11]在研究茶壺的三維測(cè)量過(guò)程中,引入了格雷碼和相移結(jié)合的編碼方式,分析了解碼過(guò)程中存在的格雷碼和相移結(jié)果周期錯(cuò)位的問(wèn)題,提出了一種以相移周期為基準(zhǔn)的格雷碼周期調(diào)節(jié)方法,該方法有效地規(guī)避了物體表面出現(xiàn)不連續(xù)或者陡峭的解碼誤差。林煥等人[12]針對(duì)格雷碼—相移解碼過(guò)程中存在的周期錯(cuò)位問(wèn)題,提出了一種新的校正方法,并對(duì)人眼石膏模型進(jìn)行三維測(cè)量;該方法基于相移解碼結(jié)果對(duì)格雷碼解碼過(guò)程添加三個(gè)約束條件,進(jìn)而對(duì)目標(biāo)點(diǎn)的主相位值進(jìn)行插值求解。文獻(xiàn)[11]和文獻(xiàn)[12]均對(duì)三維測(cè)量中周期錯(cuò)位現(xiàn)象進(jìn)行校正,但其方法的處理精度受圖像噪聲和外界光環(huán)境影響較大,當(dāng)采集的圖像中被測(cè)物體邊緣處有較多的圖像噪聲時(shí),此方法處理結(jié)果無(wú)法取得一個(gè)很好的周期錯(cuò)位校正結(jié)果。
本文基于格雷碼—相移組合結(jié)構(gòu)光解碼過(guò)程中出現(xiàn)周期錯(cuò)位現(xiàn)象的原理,分析了單個(gè)周期內(nèi)所有可能出現(xiàn)的周期錯(cuò)位現(xiàn)象,并提出了一種新的基于圖像形態(tài)學(xué)運(yùn)算原理的周期錯(cuò)位校正方法,該方法能有效地消除組合結(jié)構(gòu)光解碼過(guò)程中絕對(duì)相位的求解誤差。最后通過(guò)搭建雙目結(jié)構(gòu)光測(cè)量系統(tǒng),完成對(duì)三維實(shí)體模型的點(diǎn)云重構(gòu)實(shí)驗(yàn),對(duì)比分析未校正的結(jié)果和校正后的結(jié)果,驗(yàn)證了該方法的有效性和可靠性。
在格雷碼解碼過(guò)程中,首先需要對(duì)圖像進(jìn)行二值處理,實(shí)現(xiàn)格雷碼模式的二值化,再將每個(gè)像素點(diǎn)對(duì)應(yīng)的格雷碼數(shù)值轉(zhuǎn)化為二進(jìn)制數(shù)值,最終再轉(zhuǎn)換為與之對(duì)應(yīng)的十進(jìn)制數(shù)值,此時(shí)的十進(jìn)制數(shù)值就是該像素點(diǎn)所對(duì)應(yīng)的格雷碼數(shù)值即該像素點(diǎn)所在的周期數(shù)[13]。
為了在格雷碼解碼結(jié)果的基礎(chǔ)上對(duì)像素點(diǎn)周期進(jìn)行進(jìn)一步的細(xì)分,需要對(duì)投影儀投射的四副相移圖像進(jìn)行解碼操作,求出對(duì)應(yīng)像素點(diǎn)的相對(duì)相位[14]。投影儀投射的四幅相移圖像中第i幅相移圖像中每一個(gè)像素對(duì)應(yīng)的光強(qiáng)為
Ii(x,y)=130+100×cos[2×π×(x+21)+0.5×i×π]
(1)
式中Ii(x,y)為該像素點(diǎn)對(duì)應(yīng)的光強(qiáng),i為對(duì)應(yīng)的相移圖像編號(hào)(1≤i≤4),(x,y)對(duì)應(yīng)像素點(diǎn)坐標(biāo)。
求取相對(duì)相位時(shí),將四幅相移圖像對(duì)應(yīng)的各個(gè)像素點(diǎn)光強(qiáng)I1,I2,I3,I4分別代入到式(2)中,根據(jù)相移圖像光強(qiáng)變化規(guī)律以及反正切函數(shù)性質(zhì)可知,相對(duì)相位φ(x,y)在(0,2π)之間周期線性變化
(2)
式中φ(x,y)為該像素點(diǎn)對(duì)應(yīng)的相對(duì)相位。
為了獲得目標(biāo)圖像連續(xù)單值的測(cè)量空間劃分,必須保證格雷碼解碼周期與相移解碼周期完全吻合,格雷碼和相移解碼效果如圖1所示。
圖1 格雷碼—相移解碼結(jié)果
在雙目結(jié)構(gòu)光三維測(cè)量系統(tǒng)中,雙目相機(jī)的像素點(diǎn)匹配精度取決于絕對(duì)相位求取的準(zhǔn)確性。分別將求解出的格雷碼值和對(duì)應(yīng)的相對(duì)相位值分別代入式(3)中求解絕對(duì)相位[15]
φ(x,y)=2×π×Z(x,y)+φ(x,y)
(3)
式中φ(x,y)為該像素點(diǎn)的絕對(duì)相位,Z(x,y)為像素點(diǎn)對(duì)應(yīng)的格雷碼值,φ(x,y)為像素點(diǎn)對(duì)應(yīng)的相對(duì)相位。
在實(shí)際測(cè)量過(guò)程中,由于環(huán)境光照強(qiáng)度不同、圖像噪聲、光柵投影精度以及格雷碼解碼與相移解碼結(jié)果誤差等影響,可能會(huì)導(dǎo)致格雷碼突變周期與相移周期產(chǎn)生錯(cuò)位現(xiàn)象,從而導(dǎo)致絕對(duì)相位的平滑曲線中出現(xiàn)突變?nèi)切?,?shí)際絕對(duì)相位圖像如圖2(a)所示。例如在相移解碼結(jié)果中,φ(x,y)=2π,與其相鄰的像素點(diǎn)相對(duì)相位φ(x+1,y)=0,此時(shí)相對(duì)相位產(chǎn)生突變,從2π突變到0,而與之對(duì)應(yīng)的實(shí)際格雷碼值未滿足Z(x+1,y)=Z(x,y)+1的突變條件,因此,在絕對(duì)相位的結(jié)果中,φ(x+1,y)處會(huì)產(chǎn)生一個(gè)向下的突變,實(shí)際效果如圖2(a)中明顯的灰白色條紋部分,此時(shí)絕對(duì)相位曲線中出現(xiàn)凹錯(cuò)位臺(tái)階現(xiàn)象(如圖2(b)中向下突起的部分),進(jìn)而無(wú)法達(dá)到對(duì)目標(biāo)圖像進(jìn)行連續(xù)單值的測(cè)量空間劃分的目的,稱(chēng)此現(xiàn)象為周期錯(cuò)位,周期錯(cuò)位能否得到有效的校正是格雷碼—相移結(jié)構(gòu)光解碼技術(shù)的關(guān)鍵。
圖2 實(shí)際絕對(duì)相位結(jié)果
本文采用以相移周期為準(zhǔn),對(duì)格雷碼周期進(jìn)行校正,在校正之前,需對(duì)可能出現(xiàn)的周期錯(cuò)位情況進(jìn)行分析。取一完整的相移周期如圖3中相移參考標(biāo)準(zhǔn)周期所示,此時(shí),在當(dāng)前周期內(nèi),格雷碼解碼結(jié)果應(yīng)如圖3中正確格雷碼周期部分所示,格雷碼周期應(yīng)與相移周期保持完全一致。在實(shí)際解碼過(guò)程中,所有可能出現(xiàn)的周期錯(cuò)位現(xiàn)象如圖3中錯(cuò)位格雷碼周期部分所示,共有6種情況,故周期錯(cuò)位校正方法必須保證圖示6種情況得到正確的校正。
圖3 周期錯(cuò)位分析
針對(duì)上述的周期錯(cuò)位問(wèn)題,本文提出了一種新的基于圖像形態(tài)學(xué)運(yùn)算原理的周期錯(cuò)位校正方法。以相對(duì)相位的突變周期為準(zhǔn)校正格雷碼數(shù)值,對(duì)格雷碼解碼結(jié)果進(jìn)行膨脹、腐蝕和卷積等圖像形態(tài)學(xué)運(yùn)算操作,保證其周期與相移突變周期保持嚴(yán)格一致,從而解決格雷碼—相移解碼周期錯(cuò)位問(wèn)題。
為了直觀地觀察周期錯(cuò)位校正效果,以左相機(jī)采集的圖像中第1 000行像素點(diǎn)處理過(guò)程為例,取相移解碼圖像中每個(gè)周期內(nèi)像素點(diǎn)灰度值中值為閾值,對(duì)相移解碼結(jié)果進(jìn)行二值化處理,生成兩幅二值圖像。
提取出格雷碼解碼圖像中灰度值為第一周期對(duì)應(yīng)值的所有像素點(diǎn),將其余像素點(diǎn)的灰度值均改為0。此時(shí),其圖像灰度值結(jié)果如圖4(a)所示。對(duì)圖4(a)對(duì)應(yīng)的圖像進(jìn)行膨脹操作,將預(yù)先測(cè)試好的核和對(duì)應(yīng)圖像代入式(4)中進(jìn)行卷積。膨脹后圖像分別與相移二值化圖像進(jìn)行卷積,完成對(duì)上述周期錯(cuò)位現(xiàn)象1、現(xiàn)象3和現(xiàn)象5對(duì)應(yīng)周期內(nèi)缺失的部分第一次填充處理。卷積后的結(jié)果如圖4(b)所示。式(4)如下
(4)
式中 dst(x,y)為膨脹后圖像,element(x′,y′)為與處理圖像卷積計(jì)算的核,scr(x,y)為處理前的圖像。
基于膨脹后的圖像進(jìn)行腐蝕操作,將對(duì)應(yīng)的核和膨脹后圖像分別代入式(5)中進(jìn)行卷積,得到對(duì)應(yīng)的腐蝕后圖像結(jié)果,完成對(duì)上述周期錯(cuò)位現(xiàn)象2、現(xiàn)象4和現(xiàn)象6對(duì)應(yīng)周期外的部分進(jìn)行有效的處理。腐蝕后進(jìn)行第二次膨脹處理,將腐蝕結(jié)果代入上式(4)中,獲得第二次膨脹后圖像如圖4(c),此時(shí)得到的圖像再分別與相移二值化圖像進(jìn)行卷積,卷積后的圖像相加,進(jìn)而保證所有周期錯(cuò)位現(xiàn)象均可得到校正,得到第一周期內(nèi)格雷碼校正后結(jié)果,如圖4(d)所示。式(5)如下
圖4 第一周期格雷碼校正過(guò)程
(5)
式中 dst(x,y)為腐蝕處理后圖像,element(x′,y′)為與處理圖像卷積計(jì)算的核,scr(x,y)為處理前的圖像。
重復(fù)以上操作,完成格雷碼所有周期的校正操作,校正后的格雷碼值周期與相移周期保持完全一致,如圖5所示,此方法有效地消除了周期錯(cuò)位現(xiàn)象。
圖5 周期校正后格雷碼結(jié)果與相移解碼結(jié)果
實(shí)際搭建了格雷碼—相移結(jié)合的光柵結(jié)構(gòu)光雙目視覺(jué)系統(tǒng),如圖6所示,該系統(tǒng)由工業(yè)相機(jī)、投影儀、計(jì)算機(jī)、標(biāo)定板和石膏娃娃組成。
圖6 結(jié)構(gòu)光雙目視覺(jué)系統(tǒng)
首先由兩個(gè)工業(yè)相機(jī)對(duì)標(biāo)定板進(jìn)行圖像采集,計(jì)算機(jī)處理采集的圖像完成對(duì)相機(jī)的標(biāo)定。然后再通過(guò)計(jì)算機(jī)控制投影儀依次向石膏娃娃投射預(yù)先編譯好的格雷碼—相移圖像,并控制兩個(gè)工業(yè)相機(jī)實(shí)時(shí)進(jìn)行圖像采集,運(yùn)用上述解碼方法分別對(duì)左右兩個(gè)相機(jī)采集的所有圖像進(jìn)行格雷碼解碼和相移解碼操作,再以相移解碼結(jié)果為基準(zhǔn)按照上述周期錯(cuò)位校正方法對(duì)格雷碼解碼結(jié)果進(jìn)行周期錯(cuò)位校準(zhǔn),消除左右圖像中像素點(diǎn)匹配的周期錯(cuò)位誤差,求取圖像中各像素點(diǎn)的絕對(duì)相位。最后基于絕對(duì)相位的結(jié)果進(jìn)行左右兩個(gè)相機(jī)各個(gè)像素點(diǎn)的匹配,將左右兩幅圖像中像素點(diǎn)絕對(duì)相位相等或最接近的點(diǎn)進(jìn)行匹配,完成對(duì)石膏娃娃的點(diǎn)云重構(gòu)操作。
通過(guò)上述流程完成對(duì)格雷碼和相移編碼的解碼工作,并按照本文提出的方法進(jìn)行周期錯(cuò)位校正。在MATLAB軟件中提取處理結(jié)果中的第1 000行像素點(diǎn),以每一個(gè)像素點(diǎn)所對(duì)應(yīng)的絕對(duì)相位值生成曲線,將未進(jìn)行周期校正的實(shí)驗(yàn)結(jié)果、按照文獻(xiàn)[11]和文獻(xiàn)[12]提出的周期錯(cuò)位校正方法校正后的實(shí)驗(yàn)結(jié)果以及按照本文提出的方法處理后的結(jié)果進(jìn)行對(duì)比分析,如圖7所示,通過(guò)曲線可明顯比較出周期錯(cuò)位校正效果。
圖7 程序處理結(jié)果
未進(jìn)行錯(cuò)位校正的結(jié)果中,目標(biāo)物體上絕對(duì)相位中有很多突變位置,此現(xiàn)象會(huì)導(dǎo)致像素點(diǎn)匹配過(guò)程中產(chǎn)生誤差。按照文獻(xiàn)[11]中的周期錯(cuò)位校正方法能消除目標(biāo)物體上大多數(shù)的周期錯(cuò)位現(xiàn)象,但此方法受圖像噪聲和環(huán)境光照影響較大,從圖7(b)上可以看出,該方法在降低周期錯(cuò)位誤差的同時(shí)在目標(biāo)物體外界背景中產(chǎn)生了新的錯(cuò)位現(xiàn)象,雖不影響目標(biāo)物體的點(diǎn)云匹配,但在點(diǎn)云重構(gòu)結(jié)果中,目標(biāo)物體外界會(huì)產(chǎn)生少量的噪點(diǎn)。按照文獻(xiàn)[12]的校正方法在降低圖像噪聲影響的方面較文獻(xiàn)[11]有較大改善,但仍會(huì)在物體邊緣處會(huì)出現(xiàn)誤判的情況,其校正后效果如圖7(c)所示。從圖7(d)上可以明顯看出,按照本文提出的方法對(duì)解碼結(jié)果進(jìn)行周期錯(cuò)位校正,可以有效地消除周期錯(cuò)位現(xiàn)象且并不會(huì)受環(huán)境光等外界因素影響,保證了解碼結(jié)果的準(zhǔn)確性,提高了后續(xù)像素點(diǎn)匹配精度,驗(yàn)證了本文提出的周期錯(cuò)位校正方法的有效性和穩(wěn)定性。
基于正確的像素點(diǎn)絕對(duì)相位結(jié)果,完成雙目相機(jī)像素點(diǎn)匹配步驟從而達(dá)到對(duì)實(shí)際石膏娃娃點(diǎn)云重構(gòu)的目的,三維重構(gòu)結(jié)果如圖8所示。
圖8 石膏娃娃點(diǎn)云重構(gòu)
本文基于格雷碼—相移組合結(jié)構(gòu)光解碼過(guò)程中出現(xiàn)周期錯(cuò)位現(xiàn)象的原理,分析了單個(gè)周期內(nèi)所有可能出現(xiàn)的周期錯(cuò)位現(xiàn)象,提出了一種新的基于圖像形態(tài)學(xué)運(yùn)算原理的周期錯(cuò)位校正方法,并對(duì)三維實(shí)體模型進(jìn)行三維重構(gòu)實(shí)驗(yàn),對(duì)比未周期校正的結(jié)果、按照文獻(xiàn)[11]和文獻(xiàn)[12]方法校正的結(jié)果和按照本文的方法校正后的結(jié)果,體現(xiàn)出本文周期錯(cuò)位校正方法在消除周期錯(cuò)位誤差和規(guī)避外界光環(huán)境影響方面的顯著優(yōu)勢(shì),驗(yàn)證了本文校正方法的有效性和可靠性。