張 昂,孫亞琴,高 楠,孟召宗,張宗華
(河北工業(yè)大學(xué) 機(jī)械工程學(xué)院,天津 300130)
條紋投影輪廓術(shù)[1]具有非接觸、高精度等優(yōu)點(diǎn),被廣泛應(yīng)用在光學(xué)三維形貌測(cè)量中。相移輪廓術(shù)[3]和傅里葉變換輪廓術(shù)[4]是條紋投影輪廓術(shù)獲取相位的兩種主要方式。條紋投影輪廓術(shù)測(cè)量物體時(shí),投影儀投射正弦相移條紋到被測(cè)物體上,通過(guò)相機(jī)采集的變形正弦條紋圖像,利用變形正弦條紋圖進(jìn)行反正切計(jì)算的相位被包裹在[-π,π],包裹相位中攜帶物體表面的深度信息,需要通過(guò)相位展開(kāi)算法對(duì)包裹相位進(jìn)行展開(kāi)[5]。利用展開(kāi)的相位與深度之間的關(guān)系,對(duì)物體的三維形貌進(jìn)行重建。
現(xiàn)有的相位展開(kāi)方法主要分為兩類(lèi),空間相位展開(kāi)法[5]和時(shí)間相位展開(kāi)法[6]??臻g相位展開(kāi)法不適用于大梯度非連續(xù)表面,因此通過(guò)編碼圖像輔助的時(shí)間相位展開(kāi)法更為常用,包括空間編碼、相位編碼、多頻和格雷碼方法??臻g編碼[8]值的獲取需要該像素點(diǎn)以及鄰域內(nèi)的其他像素?cái)y帶的顏色、強(qiáng)度等特征,抗干擾能力差、編碼解碼過(guò)程復(fù)雜。相位編碼[9]使用階梯相位來(lái)確定條紋級(jí)次,該方法受到環(huán)境光、物體表面的顏色紋理和非線性的影響,在條紋級(jí)次邊緣處會(huì)出現(xiàn)相位誤差,通常需要多幅相位編碼圖像來(lái)減少相位誤差。多頻方法[10]使用不同頻率的正弦相移條紋圖像來(lái)計(jì)算相位,最少需要雙頻(即6幅圖像)來(lái)進(jìn)行相位展開(kāi),同時(shí)雙頻相位展開(kāi)方法易受到噪聲的影響。格雷碼方法[11]通過(guò)唯一的編碼值來(lái)確定每個(gè)條紋周期的展開(kāi)相位級(jí)次,如果投影的條紋圖像包括f個(gè)周期,n灰度級(jí)格雷碼則需要幅格雷碼圖像,其中表示向上取整。
多頻方法[10]、傅里葉變換方法[12]以及格雷碼[11]方法是目前相位展開(kāi)的主要方法。Zheng等[11]將二進(jìn)制格雷碼改進(jìn)到三進(jìn)制格雷碼,對(duì)于投影的條紋圖像包括f個(gè)周期,僅需要投射幅格雷碼圖像。然而,格雷碼方法通過(guò)投射時(shí)間序列編碼圖像來(lái)保證編碼值的唯一性,對(duì)于條紋周期f≥16的條紋圖像,仍需投射n>3幅的格雷碼圖像。Qian[12]通過(guò)窗式傅里葉變換法從一幅條紋圖像獲取展開(kāi)相位,但這種方法對(duì)非連續(xù)物體表面的測(cè)量結(jié)果并不理想。Zhang等[14]提出利用最佳三條紋選擇法對(duì)物體進(jìn)行相位展開(kāi),獲得的展開(kāi)相位是通過(guò)獨(dú)立的像素點(diǎn)解算得到的,不受其他像素的影響,可實(shí)現(xiàn)對(duì)非連續(xù)物體的高精度測(cè)量。然而,在測(cè)量過(guò)程中需要投射和采集12幅條紋圖像,測(cè)量時(shí)間較長(zhǎng)。
為了實(shí)現(xiàn)快速三維形貌測(cè)量的同時(shí)保證測(cè)量精度,本文提出了一種利用空間鄰域信息的三灰度編碼相位展開(kāi)方法。該方法利用空間鄰域的編碼值確定相位展開(kāi)級(jí)次,在一個(gè)條紋周期內(nèi)有較高的魯棒性,無(wú)需復(fù)雜的解碼過(guò)程,能夠檢測(cè)非連續(xù)表面。將三灰度編碼相位展開(kāi)方法與三步相移方法結(jié)合,對(duì)三步相移算法計(jì)算的包裹相位進(jìn)行展開(kāi),只需投射和采集5幅條紋圖像即可完成對(duì)物體三維形貌的恢復(fù),提高了三維測(cè)量的重建效率。
正弦相移與三灰度編碼三維物體測(cè)量的整體框架如圖1所示(彩圖見(jiàn)期刊電子版)。其中,綠色部分描述了通過(guò)三幅正弦條紋圖提取包裹相位;橙色部分描述了通過(guò)兩幅三灰度編碼圖像獲取相位級(jí)次;藍(lán)色部分描述了通過(guò)獲取的相位級(jí)次對(duì)提取的包裹相位進(jìn)行展開(kāi),然后將對(duì)準(zhǔn)誤差去除后得到最終的展開(kāi)相位;黃色部分描述了通過(guò)系統(tǒng)標(biāo)定獲得的標(biāo)定系數(shù)結(jié)合最終的展開(kāi)相位恢復(fù)物體的三維形貌。
圖1 正弦相移與三灰度編碼三維測(cè)量的整體框架Fig.1 Framework of three-dimensional measurement of sinusoidal phase shift and ternary-gray encoded
相移測(cè)量方法具有高空間分辨率的優(yōu)點(diǎn),為了實(shí)現(xiàn)快速測(cè)量,通常使用三步正弦相移條紋圖像來(lái)計(jì)算包裹相位,三步正弦相移圖像可描述為:
其中:i=1,2,3,φ(x,y)為包含被測(cè)物體深度信息的包裹相位信息,A(x,y)為條紋背景光強(qiáng),B(x,y)為條紋調(diào)制度。由于環(huán)境光和物體表面屬性的影響,A(x,y)和B(x,y)都是空間變化的。包裹相位可由三步相移算法計(jì)算得出:
條紋背景光強(qiáng)為:
三灰度編碼圖像如圖2所示。其中,第1行為第一幅三灰度編碼圖像,第2行為第二幅三灰度編碼圖像,黑色代表灰度值為0對(duì)應(yīng)三值化后的碼值0,灰色代表灰度值為128對(duì)應(yīng)三值化后的碼值1,白色代表灰度值為255對(duì)應(yīng)三值化后的碼值2。三灰度編碼以40個(gè)碼值為例,編碼方法并不唯一,一旦確定編碼方法,碼值順序固定不變,可用于確定條紋級(jí)次。
圖2 三灰度編碼圖像Fig.2 Ternary-gray encoded image
三灰度解碼算法流程如圖3所示。將相機(jī)采集的兩幅三灰度編碼圖像經(jīng)過(guò)空間灰度平均-灰度三值化-灰色偽碼去除后得到編碼值,然后利用編碼值確定展開(kāi)相位級(jí)次。
圖3 三灰度解碼算法流程Fig.3 Flowchart of ternary-gray decoded algorithm
2.2.1 空間灰度平均
由于投影儀投射條紋圖案到物體上時(shí)光強(qiáng)并不是均勻分布的,相機(jī)采集到的三灰度編碼圖像的灰度并不是空間均勻的。采集到的一幅三灰度編碼平板圖像如圖4(a)所示,從采集平板圖像的中間行剖面圖可以看出,相機(jī)采集的圖像灰度值呈現(xiàn)左低右高的現(xiàn)象。這種空間灰度不均勻的現(xiàn)象會(huì)影響到灰度三值化,因此,需要通過(guò)式(4)來(lái)對(duì)采集的編碼圖像進(jìn)行空間灰度平均,最終空間灰度平均處理后的編碼圖像以及中間行剖面圖如圖4(c)~4(d)所示。空間灰度平均后編碼圖像的光強(qiáng)空間分布更加均勻,具有更高的對(duì)比度,便于后續(xù)的灰度三值化處理。
其中:i=1,2,Ap(x,y),Ac(x,y)分別為投射和采集正弦相移條紋圖像的條紋背景光強(qiáng),為相機(jī)采集的三灰度編碼圖像,為空間灰度平均處理后的三灰度編碼圖像。
圖4 三灰度編碼圖的空間灰度平均Fig.4 Spatial gray average of ternary-gray coded images
2.2.2 灰度三值化
2.2.3 灰色偽碼去除
灰色偽碼出現(xiàn)在黑色碼值0和白色碼值1的中間,且對(duì)應(yīng)的像素?cái)?shù)量遠(yuǎn)遠(yuǎn)小于一個(gè)正弦條紋周期對(duì)應(yīng)的像素?cái)?shù)量。因此,可以通過(guò)判斷當(dāng)前的碼值1左邊的碼值是否為0或者2找到灰度邊界,然后設(shè)置遠(yuǎn)小于一個(gè)正弦條紋周期的像素?cái)?shù)量的閾值將灰色偽碼去除,得到最終的兩幅三灰度編碼圖像。
2.2.4 三灰度編碼值解碼
通過(guò)三灰度編碼圖像的編碼值來(lái)確定展開(kāi)相位級(jí)次。圖5為空間鄰域解碼圖,第一行對(duì)應(yīng)相位級(jí)次,第三行和第四行的碼值組合成第二行的編碼值,通過(guò)空間相鄰的三個(gè)編碼值確定相位級(jí)次。其中,編碼值00,01,02,20,21,22對(duì)應(yīng)的相位級(jí)次通過(guò)當(dāng)前編碼值和后兩個(gè)相鄰編碼值來(lái)確定,編碼值10,11,12對(duì)應(yīng)的相位級(jí)次通過(guò)當(dāng)前編碼值和前兩個(gè)相鄰編碼值來(lái)確定,通過(guò)確定的相位級(jí)次對(duì)包裹相位進(jìn)行展開(kāi)得到展開(kāi)相位。在實(shí)際測(cè)量時(shí),只需將每行的第一個(gè)條紋周期的相位級(jí)次通過(guò)空間相鄰的三個(gè)編碼值確定即可,當(dāng)?shù)谝粋€(gè)條紋級(jí)次確定后只需依次判斷下一個(gè)編碼值是否正確即可確定下一個(gè)條紋級(jí)次,解碼過(guò)程簡(jiǎn)單。當(dāng)發(fā)生編碼值跳變時(shí),可以通過(guò)空間相鄰的編碼值來(lái)避免編碼值錯(cuò)亂,因而本方法適用于非連續(xù)表面的測(cè)量。
圖5 空間鄰域解碼圖Fig.5 Spatial neighborhood decoded image
三步相移算法計(jì)算出的包裹相位值受到反正切函數(shù)的影響,被包裹在[-π,π]之間。要想得到連續(xù)的展開(kāi)相位,需要利用展開(kāi)相位級(jí)次對(duì)包裹相位進(jìn)行展開(kāi),然而編碼值邊緣處并不能和包裹相位的2π相位跳變處對(duì)準(zhǔn)。因此,在相位展開(kāi)時(shí),相位級(jí)次和2π相位跳變處會(huì)出現(xiàn)對(duì)準(zhǔn)誤差,展開(kāi)相位存在錯(cuò)誤相位點(diǎn)。
錯(cuò)誤相位點(diǎn)去除流程如圖6所示,通過(guò)相鄰的兩個(gè)展開(kāi)相位點(diǎn)進(jìn)行一階差分運(yùn)算得到相鄰展開(kāi)相位差分值,相鄰展開(kāi)相位差分值設(shè)置閾值,找到錯(cuò)誤相位點(diǎn)參與差分運(yùn)算的位置,圖7中用圓圈標(biāo)記出的點(diǎn)。根據(jù)實(shí)際測(cè)量情況,沒(méi)有對(duì)準(zhǔn)誤差時(shí),展開(kāi)相位是連續(xù)分布的,兩個(gè)相鄰展開(kāi)相位點(diǎn)的差分值對(duì)應(yīng)在0弧度附近;存在對(duì)準(zhǔn)誤差時(shí),相鄰的展開(kāi)相位點(diǎn)會(huì)存在一個(gè)相位級(jí)次的跳變,相鄰展開(kāi)相位點(diǎn)的差分值會(huì)出現(xiàn)如圖7所示的兩種情況。其中,綠色相位點(diǎn)的差分值對(duì)應(yīng)在2π弧度附近,藍(lán)色相位點(diǎn)的差分值對(duì)應(yīng)在0弧度附近,紅色相位點(diǎn)的差分值對(duì)應(yīng)在-2π弧度附近。圖7(a)中紅色點(diǎn)為正確相位點(diǎn)和錯(cuò)誤相位點(diǎn)的差分值,綠色點(diǎn)為錯(cuò)誤相位點(diǎn)和正確相位點(diǎn)的差分值,綠色點(diǎn)處為錯(cuò)誤相位點(diǎn)位置。圖7(b)中綠色點(diǎn)為正確相位點(diǎn)和錯(cuò)誤相位點(diǎn)的差分值,藍(lán)色點(diǎn)為錯(cuò)誤相位點(diǎn)和錯(cuò)誤相位點(diǎn)的差分值,紅色點(diǎn)為錯(cuò)誤相位點(diǎn)和正確相位點(diǎn)的差分值,藍(lán)色和紅色點(diǎn)處為錯(cuò)誤相位點(diǎn)位置(彩圖見(jiàn)期刊電子版)。
圖6 錯(cuò)誤相位點(diǎn)去除算法流程Fig.6 Flowchart of wrong phase point removal algorithm
圖7 錯(cuò)誤相位點(diǎn)的兩種情況Fig.7 T wo cases of wrong phase point
錯(cuò)誤相位點(diǎn)參與差分運(yùn)算位置處的相鄰展開(kāi)相位差分值的和小于2 rad作為判斷條件,即存在一個(gè)錯(cuò)誤相位點(diǎn)或存在兩個(gè)錯(cuò)誤相位點(diǎn)。沒(méi)有對(duì)準(zhǔn)誤差的情況下,展開(kāi)相位連續(xù)分布且單調(diào)遞增,相鄰展開(kāi)相位的差值在0 rad附近,滿(mǎn)足判斷條件的錯(cuò)誤相位點(diǎn)位置處,分別進(jìn)行除去錯(cuò)誤相位點(diǎn)的1×3均值濾波處理得到最終的展開(kāi)相位。圖7(a)中,綠色點(diǎn)處的相位值通過(guò)紅色點(diǎn)處的相位值以及其前一個(gè)位置的相位值和綠色點(diǎn)處后一個(gè)位置的相位值進(jìn)行1×3均值濾波得到。圖7(b)中,藍(lán)色點(diǎn)出的相位值通過(guò)綠色點(diǎn)處的相位值以及其前一個(gè)位置的相位值和藍(lán)色點(diǎn)處后兩個(gè)位置的相位值進(jìn)行1×3均值濾波得到;紅色點(diǎn)出的相位值通過(guò)綠色點(diǎn)處的相位值以及其前一個(gè)位置的相位值和紅色點(diǎn)處后兩個(gè)位置的相位值進(jìn)行1×3均值濾波得到。
將標(biāo)定板在幾乎垂直于相機(jī)光軸的方向上擺放N個(gè)已知的位置。在每個(gè)位置上投影儀投射12幅正弦相移條紋圖到標(biāo)定平板表面,使用四步相移法計(jì)算包裹相位,最佳三條紋選擇法[14]計(jì)算展開(kāi)相位,最后選擇中間的某一個(gè)位置為參考位置,通過(guò)式(5)建立了Δz(x,y)和Δφ(x,y)之間的對(duì)應(yīng)關(guān)系,擬合每個(gè)像素點(diǎn)的相位和深度間的多項(xiàng)式系數(shù)作為標(biāo)定系數(shù)。
其中:n=0,1,...,N,Δz(x,y)代表測(cè)量位置與參 考 位 置 的 距 離,系 數(shù)a0(x,y),…,an-1(x,y),an(x,y)代 表 多 項(xiàng) 式 擬 合 系 數(shù),Δφ(x,y)代表被測(cè)相位與參考相位的變化。
為了驗(yàn)證本文提出的三灰度編碼相位展開(kāi)方法,搭建了一個(gè)硬件系統(tǒng)由LightCrafter4500數(shù)字投影儀(912×1 040 pixel)和AD-080GE雙傳感器棱鏡式面陣掃描相機(jī)(1 024×768 pixel)組成,實(shí)驗(yàn)系統(tǒng)如圖8所示。實(shí)驗(yàn)中,投影儀投射的正弦條紋周期數(shù)是40,相機(jī)采用單色模式,相機(jī)由投影儀的觸發(fā)信號(hào)同步,測(cè)量物體結(jié)果如圖9和圖10所示。
圖8 三灰度編碼相位展開(kāi)實(shí)驗(yàn)系統(tǒng)Fig.8 Experimental system for ternary-gray encoded phase unwrapping
用所提出的三灰度編碼相位展開(kāi)方法結(jié)合三步正弦相移測(cè)量一個(gè)非連續(xù)臺(tái)階。相機(jī)采集的正弦相移條紋圖像對(duì)應(yīng)圖9(a)。采集三灰度編碼圖像對(duì)應(yīng)圖9(b)。通過(guò)三灰度解碼獲得的展開(kāi)相位級(jí)次對(duì)包裹相位進(jìn)行展開(kāi),得到的展開(kāi)相位局部放大圖如圖9(c)所示。三灰度編碼得到的相位級(jí)次與包裹相位的相位跳變處存在對(duì)準(zhǔn)誤差,展開(kāi)相位中的錯(cuò)誤相位點(diǎn)如圖9(d)紅色點(diǎn)所示。去除無(wú)數(shù)據(jù)的相位點(diǎn)后,展開(kāi)相位具有135 256個(gè)相位點(diǎn),展開(kāi)相位具有1 383個(gè)錯(cuò)誤相位點(diǎn)。對(duì)準(zhǔn)誤差產(chǎn)生的錯(cuò)誤相位點(diǎn)可以通過(guò)2.3小節(jié)中所提出的方法進(jìn)行去除,對(duì)準(zhǔn)誤差去除后的展開(kāi)相位局部放大圖如圖9(e)所示。最后,通過(guò)系統(tǒng)的標(biāo)定系數(shù)重建標(biāo)準(zhǔn)臺(tái)階面,得到的三維輪廓如圖10所示。每個(gè)恢復(fù)的標(biāo)準(zhǔn)臺(tái)階面上選取所有的像素點(diǎn)進(jìn)行平面擬合,計(jì)算兩個(gè)相鄰的擬合臺(tái)階面間高度作為測(cè)量值,標(biāo)準(zhǔn)臺(tái)階面通過(guò)三坐標(biāo)測(cè)量機(jī)的測(cè)量值作為真實(shí)值。相同的測(cè)試環(huán)境和測(cè)量系統(tǒng),相機(jī)采集12幅最佳三條紋圖像進(jìn)行相鄰臺(tái)階高度的測(cè)量,本文所提方法的測(cè)量值與最佳三條紋選擇法的測(cè)量值對(duì)比如表1所示。本文所提方法與最佳三條紋選擇法的精度相當(dāng)。本文所提方法只需投射和采集5幅條紋圖像,相較于最佳三條紋選擇結(jié)合四步相移法測(cè)量速度提升了2.4倍。實(shí)驗(yàn)結(jié)果表明,三灰度編碼結(jié)合三步相移的測(cè)量方法能夠在快速測(cè)量的同時(shí)保證測(cè)量精度。利用最佳三條紋方法和本文所提方法測(cè)量了貓的石膏像,進(jìn)行了三維形貌恢復(fù)。最佳三條紋選擇法測(cè)量的貓石膏像和面部局部放大圖如圖11(a)~11(b)所示,本文所提方法測(cè)量的貓石膏像和面部局部放大圖如圖11(c)~11(d)所示,可以看到兩種測(cè)量方法恢復(fù)的貓石膏像的胡須、眼睛和鼻子的細(xì)節(jié)部分具有同樣的效果。由此可以看出,本文提出的方法在恢復(fù)物體的細(xì)節(jié)方面具有良好的表現(xiàn)。
圖9 本文方法對(duì)標(biāo)準(zhǔn)臺(tái)階的測(cè)量結(jié)果Fig.9 Measurement result of standard step by our method
圖10 臺(tái)階平面Fig.10 Step plane
表1 標(biāo)準(zhǔn)臺(tái)階平面的測(cè)量結(jié)果Tab.1 Measurement results of standard step plane (mm)
圖11 貓石膏像的測(cè)量結(jié)果Fig.11 Measurement results of cat plaster
本文提出了一種利用空間鄰域信息的三灰度編碼相位展開(kāi)方法,該方法通過(guò)減少投影和采集的條紋圖像數(shù)量,可以有效地提高三維測(cè)量速度。該方法編碼靈活性高,可以生成不同編碼圖像。將三步相移條紋圖像和三灰度編碼圖像結(jié)合對(duì)非連續(xù)臺(tái)階進(jìn)行測(cè)量,在相同的測(cè)試環(huán)境和測(cè)量系統(tǒng)下,與最佳三條紋選擇法進(jìn)行了實(shí)驗(yàn)對(duì)比。使用最佳三條紋選擇法測(cè)量的臺(tái)階表面高度的最大絕對(duì)誤差為0.033 mm,本文所提方法測(cè)量的最大絕對(duì)誤差為0.039 mm。所提方法僅需投射5幅條紋圖像即可進(jìn)行物體形貌的恢復(fù),在提高測(cè)量速度的同時(shí)保證了測(cè)量精度。最后對(duì)貓石膏像進(jìn)行了測(cè)量,實(shí)驗(yàn)結(jié)果表明,該方法對(duì)物體的細(xì)節(jié)恢復(fù)效果良好,能夠?qū)崿F(xiàn)復(fù)雜三維形貌的快速測(cè)量。