嚴(yán) 飛,祁 健,劉銀萍,吳 迪,于 強(qiáng),劉 佳
(1. 南京信息工程大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210044;2. 南京信息工程大學(xué) 大氣物理學(xué)院,江蘇 南京 210044;3. 江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心,江蘇 南京 210044)
光學(xué)三維測(cè)量技術(shù)在眾多測(cè)量技術(shù)中具有重要意義。條紋投影輪廓術(shù)具有結(jié)構(gòu)簡(jiǎn)單、精度高、速度快等優(yōu)點(diǎn),使之在工業(yè)和科學(xué)研究等較多領(lǐng)域都有廣泛的應(yīng)用[1-4]。通過(guò)將條紋投影到被測(cè)物體表面,經(jīng)由相機(jī)采集物體表面高度調(diào)制的圖像,并進(jìn)行相位分析、系統(tǒng)標(biāo)定,最終測(cè)得物體的三維面形數(shù)據(jù)。相移法因?yàn)樾枰M(jìn)行反正切運(yùn)算,所以分析獲取的相位被限制在(-π,π]之間,因此解得的相位被稱為截?cái)嘞辔弧榱藢?shí)現(xiàn)全場(chǎng)相位的連續(xù)性,需要對(duì)截?cái)嘞辔贿M(jìn)行展開(kāi)。相位展開(kāi)的方法主要分為空間相位展開(kāi)方法[5-7]和時(shí)間相位展開(kāi)方法[8-10]。時(shí)間相位展開(kāi)方法對(duì)每個(gè)像素獨(dú)立進(jìn)行計(jì)算,解決了空間相位解包裹誤差傳遞的問(wèn)題,可用于測(cè)量表面非連續(xù)的物體。由于格雷碼是一種誤差最小化的編碼方式,因此基于格雷碼的三維成像技術(shù)具有良好的魯棒性和抗噪性,于是提出了基于格雷碼結(jié)合相移技術(shù)的時(shí)間相位展開(kāi)方法。
格雷碼條紋圖像在投影和采集過(guò)程中容易受到設(shè)備噪聲以及其他環(huán)境噪聲的影響,格雷碼黑白邊界不是理想的二值分布,因此解碼后的條紋級(jí)次與截?cái)嘞辔灰酂o(wú)法處于理想的對(duì)齊狀態(tài),因此進(jìn)行相位展開(kāi)后的絕對(duì)相位值存在跳變誤差。為了避免級(jí)次跳變誤差,LAUGHNER 等人通過(guò)投影額外的全白和全黑圖像來(lái)點(diǎn)對(duì)點(diǎn)確定二值化閾值[11];ZHENG 等人通過(guò)投影儀離焦方法[12-13]利用一幅二值圖像產(chǎn)生灰度為“0.5”的圖案作為閾值;WU 等人則利用正弦相移條紋的均值作為二值化閾值,不需投影額外的圖像[14]。
上述方法對(duì)測(cè)量靜態(tài)場(chǎng)景的測(cè)量有較好的效果,但是在動(dòng)態(tài)場(chǎng)景測(cè)量時(shí),級(jí)次跳變誤差出現(xiàn)的區(qū)域?qū)挾仍龃?,此時(shí)通過(guò)濾波或是單調(diào)性探測(cè)的方法難以消除邊沿誤差所帶來(lái)的跳變。針對(duì)上述問(wèn)題,SUN 和ZHANG 等人提出了一種互補(bǔ)格雷碼的編碼方式[15-16]。相比于傳統(tǒng)格雷碼編碼方法,該方法多投影一幅格雷碼,使得碼字標(biāo)記為正弦周期的一半,利用傳統(tǒng)碼字和附加碼字的不同來(lái)互補(bǔ)邊界跳變[17],使得邊沿錯(cuò)誤區(qū)域?qū)挾刃∮诎雮€(gè)條紋周期寬度時(shí),誤差可以被避免。
為了降低設(shè)備以及其他環(huán)境噪聲對(duì)于條紋邊界的偏移影響,使得邊沿跳變區(qū)域的容錯(cuò)寬度更大,有效地避免級(jí)次跳變誤差,本文提出一種基于格雷碼的分區(qū)間相位展開(kāi)方法。在互補(bǔ)格雷碼基礎(chǔ)上增加一幅輔助的格雷碼圖像,利用所有格雷碼解得附加碼字,通過(guò)對(duì)附加碼字進(jìn)行不同位移量的條紋級(jí)次映射,得到與傳統(tǒng)方法解得條紋級(jí)次的多個(gè)互補(bǔ)的條紋級(jí)次。并利用條紋級(jí)次的互補(bǔ)對(duì)截?cái)嘞辔贿M(jìn)行分區(qū)間相位展開(kāi),獲得了無(wú)級(jí)次跳變誤差的展開(kāi)相位。本文通過(guò)對(duì)傳統(tǒng)正弦相移條紋進(jìn)行二次相移,以構(gòu)造不同程度的邊沿錯(cuò)誤區(qū)域,且通過(guò)實(shí)驗(yàn)對(duì)比了本文方法與傳統(tǒng)格雷碼方法以及互補(bǔ)格雷碼方法的級(jí)次跳變誤差結(jié)果。
相移技術(shù)[18]由于其精度高,且不受物體表面劇烈變化或斷裂影響等優(yōu)點(diǎn)被廣泛應(yīng)用。將正弦相移條紋投影至被測(cè)物體表面,相機(jī)采集回物體表面形貌調(diào)制產(chǎn)生變形的條紋圖像。采集的相移圖像可以表示為
式中:(x,y)為像素坐標(biāo);In為采集到的正弦相移條紋圖像,下標(biāo)n為采集圖像的序號(hào);A為背景光強(qiáng);B為調(diào)制光強(qiáng);φ為待解的相位主值;N表示N步相移。圖1 以四步相移、周期為4 的正弦條紋為例,通過(guò)(2)式可以計(jì)算出截?cái)嘞辔唬?/p>
圖1 相移技術(shù)Fig. 1 Phase shift technology
由于(2)式為反正切運(yùn)算,所以計(jì)算出的相位被截?cái)嘣?-π,π]之間,被稱為截?cái)嘞辔唬虼诵枰獙⒔財(cái)嗟南辔换謴?fù)成連續(xù)相位。
傳統(tǒng)格雷碼條紋為二值條紋圖像,而二值條紋圖像的離散特性限制了重建的點(diǎn)云數(shù)據(jù)分辨率,研究者提出了格雷碼結(jié)合相移的方法。因?yàn)橥队暗恼覘l紋具有連續(xù)的相位分布特性,所以將相移技術(shù)引入三維測(cè)量可以得到更高的空間分辨率。n幅格雷碼圖案可以被用來(lái)標(biāo)記被2n次截?cái)嗟臈l紋級(jí)次k。
圖2 以四步相移、周期為16 的正弦條紋為例,需4 幅格雷碼標(biāo)記條紋級(jí)次。利用(3)式計(jì)算n幅格雷碼對(duì)應(yīng)的十進(jìn)制碼字V,采用(4)式查找計(jì)算十進(jìn)制碼字V和解碼碼字k之間的關(guān)系,并通過(guò)(5)式對(duì)截?cái)嘞辔贿M(jìn)行展開(kāi),將其恢復(fù)成連續(xù)相位。
圖2 格雷碼結(jié)合相移方法Fig. 2 Method of Gray code combined with phase shift
式中:φ為解得的相位主值;Φ為展開(kāi)的相位值。
與傳統(tǒng)的格雷碼方法相比,互補(bǔ)格雷碼方法需在最后額外多投一幅格雷碼圖案,使得該格雷碼圖案計(jì)算出的碼字寬度為正弦條紋周期的一半。圖3 以四步相移、周期為16 的正弦條紋為例,按照傳統(tǒng)的解碼方式解出前4 幅對(duì)應(yīng)的條紋級(jí)次k1,同時(shí)對(duì)全部5 幅條紋進(jìn)行解碼,得到對(duì)應(yīng)的條紋級(jí)次k2,k1和k2級(jí)次邊沿剛好錯(cuò)開(kāi)正弦條紋半個(gè)周期。在用格雷碼輔助截?cái)嘞辔徽归_(kāi)時(shí),按照(6)式進(jìn)行計(jì)算。
圖3 互補(bǔ)格雷碼方法Fig. 3 Complementary Gray code method
式中:φ為解得的相位主值;Φ為展開(kāi)的相位值。
顯然(6)式中僅使用k1和k2中間部分的碼字,而不使用邊沿部分的碼字,主動(dòng)避免使用邊沿部分的碼字帶來(lái)的相位解析錯(cuò)誤。k1和k2級(jí)次邊沿錯(cuò)開(kāi)正弦條紋半個(gè)周期,使得邊沿錯(cuò)誤區(qū)域?qū)挾仍谡覘l紋半個(gè)周期內(nèi),級(jí)次跳變誤差可以被避免。
當(dāng)設(shè)備以及環(huán)境噪聲對(duì)于條紋邊界的偏移影響較大時(shí),將導(dǎo)致邊沿錯(cuò)誤區(qū)域?qū)挾冗M(jìn)一步增加。同時(shí)格雷碼圖像之間將產(chǎn)生偏移,互補(bǔ)格雷碼方法的容錯(cuò)寬度將減小,或不能達(dá)到理想的半個(gè)周期。本文利用一幅輔助的格雷碼圖案,將解得的碼字細(xì)分,利用不同權(quán)值映射條紋級(jí)次,以獲得相對(duì)錯(cuò)開(kāi)1/4 個(gè)周期的多個(gè)錯(cuò)位級(jí)次。在展開(kāi)截?cái)嘞辔粫r(shí),只利用所有條紋級(jí)次的中間部分進(jìn)行分區(qū)間展開(kāi)。由于解得條紋級(jí)次中間部分的質(zhì)量較高,因此可以避免使用條紋級(jí)次邊沿碼字而產(chǎn)生的級(jí)次跳變誤差。該方法屬于預(yù)先避免錯(cuò)誤產(chǎn)生的方法,即使物體本身具有陡變區(qū)域,仍可以進(jìn)行測(cè)量。
以具有4 個(gè)周期的4 幅正弦相移條紋為例,圖4展示了4 幅格雷碼模式的編碼。通過(guò)相移法分析得到截?cái)嘞辔唬? 幅格雷碼按照傳統(tǒng)解碼方式得到級(jí)次k1;利用前3 幅格雷碼解得碼字V1,按照(7)式解碼得到與k1錯(cuò)開(kāi)半個(gè)周期的級(jí)次k2;增加1 幅輔助的格雷碼,利用全部格雷碼解得碼字V2,按照(8)式形成與k1向左位移1/4 個(gè)周期的級(jí)次k3;通過(guò)改變(8)式中取整運(yùn)算的常數(shù)項(xiàng)權(quán)值,利用(9)式形成與k1向左位移3/4 個(gè)周期的級(jí)次k4。
圖4 4 幅格雷碼模式編碼獲取不同位移的條紋級(jí)次Fig. 4 Four-piece Gray code mode encoding to obtain fringe levels with different displacements
式中:floor[]表示向下取整運(yùn)算。
于是利用k1對(duì)截?cái)嘞辔坏闹虚g部分進(jìn)行展開(kāi),同時(shí)利用k2、k3、k4對(duì)截?cái)嘞辔坏奶儏^(qū)域進(jìn)行展開(kāi),通過(guò)(10)式進(jìn)行相位展開(kāi)操作,使得邊沿錯(cuò)誤區(qū)域?qū)挾刃∮?/4 個(gè)條紋周期寬度時(shí),誤差都可以被避免,如圖5 所示。
圖5 級(jí)次跳變誤差校正原理圖Fig. 5 Schematic diagram of level hopping error correction
為了驗(yàn)證所述方法的可行性,開(kāi)展與傳統(tǒng)相移格雷碼方法的對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)中采用的正弦條紋周期數(shù)設(shè)置為16。實(shí)驗(yàn)所搭建的測(cè)量系統(tǒng)主要包括輸出分辨率為1 280 pixel×800 pixel 的DLP 投影儀(Light Crafter 4500),及分辨率為1 280 pixel×1 024 pixel的工業(yè)相機(jī)(Point Grey FL3-U3-13Y3M-C)。
為了驗(yàn)證所提出方法的有效性,采用傳統(tǒng)格雷碼相移方法以及互補(bǔ)格雷碼方法和所提出方法進(jìn)行測(cè)量對(duì)比實(shí)驗(yàn)。對(duì)一標(biāo)定板進(jìn)行測(cè)量,截?cái)嘞辔慌c條紋級(jí)次偏移較小時(shí),實(shí)驗(yàn)結(jié)果如圖6 所示。從圖6 中展開(kāi)相位以及重建結(jié)果可以看出,當(dāng)截?cái)嘞辔慌c條紋級(jí)次偏移較小時(shí),圖6(a)傳統(tǒng)格雷碼方法已經(jīng)出現(xiàn)輕微級(jí)次跳變誤差,此時(shí)通過(guò)濾波或是單調(diào)性探測(cè)的方法可以消除誤差。而圖6(b)互補(bǔ)格雷碼方法以及圖6(c)本文方法無(wú)需進(jìn)行額外濾波等操作,均可避免級(jí)次跳變誤差。
圖6 標(biāo)定板實(shí)驗(yàn)重建結(jié)果Fig. 6 Experimental reconstruction results of calibration plate
為評(píng)價(jià)所提方法測(cè)量精度,對(duì)直徑為50.814 0 mm的標(biāo)準(zhǔn)球進(jìn)行測(cè)量,在測(cè)量點(diǎn)云數(shù)據(jù)基礎(chǔ)上擬合標(biāo)準(zhǔn)球,擬合誤差分布結(jié)果如圖7 所示。擬合的球體直徑為50.814 0 mm,圖7(a)互補(bǔ)格雷碼方法的均方根誤差為0.154 6 mm,圖7(b)本文方法的均方根誤差為0.157 4 mm。標(biāo)準(zhǔn)球擬合誤差結(jié)果表明,所提方法實(shí)際測(cè)量中不會(huì)降低測(cè)量精度。
圖7 標(biāo)準(zhǔn)球擬合誤差結(jié)果Fig. 7 Fitting error results of standard sphere
為了進(jìn)一步驗(yàn)證對(duì)于測(cè)量實(shí)際物體,且在邊沿錯(cuò)誤區(qū)域超過(guò)半個(gè)周期情況下,本文方法仍能較好地避免級(jí)次跳變誤差。實(shí)驗(yàn)中測(cè)量系統(tǒng)和待測(cè)物相對(duì)靜止,將相移圖像再次向左移相2π/3,此時(shí)截?cái)嘞辔挥诩?jí)次邊沿錯(cuò)誤區(qū)域?qū)⒊^(guò)半個(gè)周期,以構(gòu)造截?cái)嘞辔慌c級(jí)次偏移場(chǎng)景。對(duì)物體形貌差別較大的兩件物品進(jìn)行測(cè)量,展開(kāi)相位測(cè)量結(jié)果如圖8 所示。
由圖8 可以看出,當(dāng)邊沿錯(cuò)誤區(qū)域超過(guò)半個(gè)周期時(shí),圖8(a)傳統(tǒng)格雷碼方法出現(xiàn)嚴(yán)重的級(jí)次跳變誤差。同時(shí)圖8(b)互補(bǔ)格雷碼方法也出現(xiàn)了較寬區(qū)域的級(jí)次跳變誤差,此時(shí)通過(guò)格雷碼所解得的碼字并非正確,也意味著解得的2 個(gè)互補(bǔ)級(jí)次較截?cái)嘞辔贿吔缙戚^大無(wú)法互補(bǔ),導(dǎo)致解相錯(cuò)誤。而圖8(c)本文方法利用更密的碼字,以不同常數(shù)項(xiàng)權(quán)值映射級(jí)次,即利用原本錯(cuò)誤的碼字產(chǎn)生偏移于原本級(jí)次半個(gè)周期以上的級(jí)次,使得互補(bǔ)區(qū)間更大。利用這樣相對(duì)位移更小的多個(gè)條紋級(jí)次質(zhì)量較好的中間部分對(duì)截?cái)嘞辔贿M(jìn)行展開(kāi),當(dāng)邊沿錯(cuò)誤區(qū)域超過(guò)半個(gè)周期且小于最大互補(bǔ)區(qū)間時(shí),可有效避免級(jí)次跳變誤差。
圖8 展開(kāi)相位測(cè)量結(jié)果Fig. 8 Measurement results of unwrapped phase
展開(kāi)相位準(zhǔn)確性分析結(jié)果如表1 所示,本文所提出的方法展開(kāi)相位中錯(cuò)誤點(diǎn)占比為1.08%,相對(duì)于傳統(tǒng)格雷碼以及互補(bǔ)格雷碼方法的錯(cuò)誤點(diǎn)占比都較小。實(shí)驗(yàn)結(jié)果表明,當(dāng)邊沿錯(cuò)誤區(qū)域?qū)挾容^大時(shí),本文方法能夠有效地避免級(jí)次跳變誤差,從而提高相位展開(kāi)的準(zhǔn)確性。
表1 展開(kāi)相位準(zhǔn)確性分析結(jié)果Table 1 Analysis results of unwrapped phase accuracy
此外,本文提出的方法對(duì)于三步相移法適應(yīng)性較強(qiáng)。由于三步相移方法位移周期為2/3 個(gè)周期,因此本文方法對(duì)三步相移的任一截?cái)嘞辔贿M(jìn)行相位展開(kāi),均可以獲取正確的展開(kāi)相位。對(duì)一石膏頭像進(jìn)行測(cè)量,重建結(jié)果如圖9 所示。三步相移法可以依次解得三個(gè)截?cái)嘞辔唬瑘D9(a)、圖9(b)和圖9(c)分別是用傳統(tǒng)格雷碼方法、互補(bǔ)格雷碼方法和本文方法對(duì)每一個(gè)截?cái)嘞辔坏恼归_(kāi)結(jié)果。實(shí)驗(yàn)結(jié)果表明,提出的方法對(duì)于三步相移順序圖像生成的任一截?cái)嘞辔欢寄軌蛘_進(jìn)行相位展開(kāi),并獲取較為正確的重建結(jié)果。
圖9 不同截?cái)嘞辔恢亟ńY(jié)果Fig. 9 Reconstruction results of different wrapped phases
本文提出了一種基于格雷碼的分區(qū)間相位展開(kāi)方法,利用一幅輔助的格雷碼圖案,將解得的碼字細(xì)分。在此基礎(chǔ)上,利用不同權(quán)值映射條紋級(jí)次,以獲得相對(duì)錯(cuò)開(kāi)1/4 個(gè)周期的多個(gè)錯(cuò)位級(jí)次,使得互補(bǔ)的區(qū)間更大。利用所有條紋級(jí)次的中間部分進(jìn)行分區(qū)間展開(kāi),當(dāng)邊沿錯(cuò)誤區(qū)域?qū)挾容^大時(shí),能夠保證相位展開(kāi)的準(zhǔn)確性。實(shí)驗(yàn)中,所提出方法展開(kāi)相位錯(cuò)誤點(diǎn)占比為1.08%,較傳統(tǒng)格雷碼結(jié)合相移方法以及互補(bǔ)格雷碼方法均較小,實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證了本文方法的有效性。在測(cè)量設(shè)備以及環(huán)境噪聲對(duì)于條紋邊界的影響較大時(shí),該方法可以提高格雷碼結(jié)合相移方法的相位展開(kāi)容錯(cuò),使邊沿跳變區(qū)域的容錯(cuò)寬度進(jìn)一步拓寬至3/4 個(gè)條紋周期寬度,為測(cè)量過(guò)程中避免級(jí)次跳變誤差提供了保障。