張 昂,孫亞琴,高 楠,孟召宗,張宗華
(河北工業(yè)大學(xué) 機械工程學(xué)院,天津 300130)
條紋投影輪廓術(shù)[1]具有非接觸、高精度等優(yōu)點,被廣泛應(yīng)用在光學(xué)三維形貌測量中。相移輪廓術(shù)[3]和傅里葉變換輪廓術(shù)[4]是條紋投影輪廓術(shù)獲取相位的兩種主要方式。條紋投影輪廓術(shù)測量物體時,投影儀投射正弦相移條紋到被測物體上,通過相機采集的變形正弦條紋圖像,利用變形正弦條紋圖進(jìn)行反正切計算的相位被包裹在[-π,π],包裹相位中攜帶物體表面的深度信息,需要通過相位展開算法對包裹相位進(jìn)行展開[5]。利用展開的相位與深度之間的關(guān)系,對物體的三維形貌進(jìn)行重建。
現(xiàn)有的相位展開方法主要分為兩類,空間相位展開法[5]和時間相位展開法[6]??臻g相位展開法不適用于大梯度非連續(xù)表面,因此通過編碼圖像輔助的時間相位展開法更為常用,包括空間編碼、相位編碼、多頻和格雷碼方法??臻g編碼[8]值的獲取需要該像素點以及鄰域內(nèi)的其他像素攜帶的顏色、強度等特征,抗干擾能力差、編碼解碼過程復(fù)雜。相位編碼[9]使用階梯相位來確定條紋級次,該方法受到環(huán)境光、物體表面的顏色紋理和非線性的影響,在條紋級次邊緣處會出現(xiàn)相位誤差,通常需要多幅相位編碼圖像來減少相位誤差。多頻方法[10]使用不同頻率的正弦相移條紋圖像來計算相位,最少需要雙頻(即6幅圖像)來進(jìn)行相位展開,同時雙頻相位展開方法易受到噪聲的影響。格雷碼方法[11]通過唯一的編碼值來確定每個條紋周期的展開相位級次,如果投影的條紋圖像包括f個周期,n灰度級格雷碼則需要幅格雷碼圖像,其中表示向上取整。
多頻方法[10]、傅里葉變換方法[12]以及格雷碼[11]方法是目前相位展開的主要方法。Zheng等[11]將二進(jìn)制格雷碼改進(jìn)到三進(jìn)制格雷碼,對于投影的條紋圖像包括f個周期,僅需要投射幅格雷碼圖像。然而,格雷碼方法通過投射時間序列編碼圖像來保證編碼值的唯一性,對于條紋周期f≥16的條紋圖像,仍需投射n>3幅的格雷碼圖像。Qian[12]通過窗式傅里葉變換法從一幅條紋圖像獲取展開相位,但這種方法對非連續(xù)物體表面的測量結(jié)果并不理想。Zhang等[14]提出利用最佳三條紋選擇法對物體進(jìn)行相位展開,獲得的展開相位是通過獨立的像素點解算得到的,不受其他像素的影響,可實現(xiàn)對非連續(xù)物體的高精度測量。然而,在測量過程中需要投射和采集12幅條紋圖像,測量時間較長。
為了實現(xiàn)快速三維形貌測量的同時保證測量精度,本文提出了一種利用空間鄰域信息的三灰度編碼相位展開方法。該方法利用空間鄰域的編碼值確定相位展開級次,在一個條紋周期內(nèi)有較高的魯棒性,無需復(fù)雜的解碼過程,能夠檢測非連續(xù)表面。將三灰度編碼相位展開方法與三步相移方法結(jié)合,對三步相移算法計算的包裹相位進(jìn)行展開,只需投射和采集5幅條紋圖像即可完成對物體三維形貌的恢復(fù),提高了三維測量的重建效率。
正弦相移與三灰度編碼三維物體測量的整體框架如圖1所示(彩圖見期刊電子版)。其中,綠色部分描述了通過三幅正弦條紋圖提取包裹相位;橙色部分描述了通過兩幅三灰度編碼圖像獲取相位級次;藍(lán)色部分描述了通過獲取的相位級次對提取的包裹相位進(jìn)行展開,然后將對準(zhǔn)誤差去除后得到最終的展開相位;黃色部分描述了通過系統(tǒng)標(biāo)定獲得的標(biāo)定系數(shù)結(jié)合最終的展開相位恢復(fù)物體的三維形貌。

圖1 正弦相移與三灰度編碼三維測量的整體框架Fig.1 Framework of three-dimensional measurement of sinusoidal phase shift and ternary-gray encoded
相移測量方法具有高空間分辨率的優(yōu)點,為了實現(xiàn)快速測量,通常使用三步正弦相移條紋圖像來計算包裹相位,三步正弦相移圖像可描述為:

其中:i=1,2,3,φ(x,y)為包含被測物體深度信息的包裹相位信息,A(x,y)為條紋背景光強,B(x,y)為條紋調(diào)制度。由于環(huán)境光和物體表面屬性的影響,A(x,y)和B(x,y)都是空間變化的。包裹相位可由三步相移算法計算得出:

條紋背景光強為:

三灰度編碼圖像如圖2所示。其中,第1行為第一幅三灰度編碼圖像,第2行為第二幅三灰度編碼圖像,黑色代表灰度值為0對應(yīng)三值化后的碼值0,灰色代表灰度值為128對應(yīng)三值化后的碼值1,白色代表灰度值為255對應(yīng)三值化后的碼值2。三灰度編碼以40個碼值為例,編碼方法并不唯一,一旦確定編碼方法,碼值順序固定不變,可用于確定條紋級次。

圖2 三灰度編碼圖像Fig.2 Ternary-gray encoded image
三灰度解碼算法流程如圖3所示。將相機采集的兩幅三灰度編碼圖像經(jīng)過空間灰度平均-灰度三值化-灰色偽碼去除后得到編碼值,然后利用編碼值確定展開相位級次。

圖3 三灰度解碼算法流程Fig.3 Flowchart of ternary-gray decoded algorithm
2.2.1 空間灰度平均
由于投影儀投射條紋圖案到物體上時光強并不是均勻分布的,相機采集到的三灰度編碼圖像的灰度并不是空間均勻的。采集到的一幅三灰度編碼平板圖像如圖4(a)所示,從采集平板圖像的中間行剖面圖可以看出,相機采集的圖像灰度值呈現(xiàn)左低右高的現(xiàn)象。這種空間灰度不均勻的現(xiàn)象會影響到灰度三值化,因此,需要通過式(4)來對采集的編碼圖像進(jìn)行空間灰度平均,最終空間灰度平均處理后的編碼圖像以及中間行剖面圖如圖4(c)~4(d)所示??臻g灰度平均后編碼圖像的光強空間分布更加均勻,具有更高的對比度,便于后續(xù)的灰度三值化處理。

其中:i=1,2,Ap(x,y),Ac(x,y)分別為投射和采集正弦相移條紋圖像的條紋背景光強,為相機采集的三灰度編碼圖像,為空間灰度平均處理后的三灰度編碼圖像。

圖4 三灰度編碼圖的空間灰度平均Fig.4 Spatial gray average of ternary-gray coded images
2.2.2 灰度三值化
2.2.3 灰色偽碼去除
灰色偽碼出現(xiàn)在黑色碼值0和白色碼值1的中間,且對應(yīng)的像素數(shù)量遠(yuǎn)遠(yuǎn)小于一個正弦條紋周期對應(yīng)的像素數(shù)量。因此,可以通過判斷當(dāng)前的碼值1左邊的碼值是否為0或者2找到灰度邊界,然后設(shè)置遠(yuǎn)小于一個正弦條紋周期的像素數(shù)量的閾值將灰色偽碼去除,得到最終的兩幅三灰度編碼圖像。
2.2.4 三灰度編碼值解碼
通過三灰度編碼圖像的編碼值來確定展開相位級次。圖5為空間鄰域解碼圖,第一行對應(yīng)相位級次,第三行和第四行的碼值組合成第二行的編碼值,通過空間相鄰的三個編碼值確定相位級次。其中,編碼值00,01,02,20,21,22對應(yīng)的相位級次通過當(dāng)前編碼值和后兩個相鄰編碼值來確定,編碼值10,11,12對應(yīng)的相位級次通過當(dāng)前編碼值和前兩個相鄰編碼值來確定,通過確定的相位級次對包裹相位進(jìn)行展開得到展開相位。在實際測量時,只需將每行的第一個條紋周期的相位級次通過空間相鄰的三個編碼值確定即可,當(dāng)?shù)谝粋€條紋級次確定后只需依次判斷下一個編碼值是否正確即可確定下一個條紋級次,解碼過程簡單。當(dāng)發(fā)生編碼值跳變時,可以通過空間相鄰的編碼值來避免編碼值錯亂,因而本方法適用于非連續(xù)表面的測量。

圖5 空間鄰域解碼圖Fig.5 Spatial neighborhood decoded image
三步相移算法計算出的包裹相位值受到反正切函數(shù)的影響,被包裹在[-π,π]之間。要想得到連續(xù)的展開相位,需要利用展開相位級次對包裹相位進(jìn)行展開,然而編碼值邊緣處并不能和包裹相位的2π相位跳變處對準(zhǔn)。因此,在相位展開時,相位級次和2π相位跳變處會出現(xiàn)對準(zhǔn)誤差,展開相位存在錯誤相位點。
錯誤相位點去除流程如圖6所示,通過相鄰的兩個展開相位點進(jìn)行一階差分運算得到相鄰展開相位差分值,相鄰展開相位差分值設(shè)置閾值,找到錯誤相位點參與差分運算的位置,圖7中用圓圈標(biāo)記出的點。根據(jù)實際測量情況,沒有對準(zhǔn)誤差時,展開相位是連續(xù)分布的,兩個相鄰展開相位點的差分值對應(yīng)在0弧度附近;存在對準(zhǔn)誤差時,相鄰的展開相位點會存在一個相位級次的跳變,相鄰展開相位點的差分值會出現(xiàn)如圖7所示的兩種情況。其中,綠色相位點的差分值對應(yīng)在2π弧度附近,藍(lán)色相位點的差分值對應(yīng)在0弧度附近,紅色相位點的差分值對應(yīng)在-2π弧度附近。圖7(a)中紅色點為正確相位點和錯誤相位點的差分值,綠色點為錯誤相位點和正確相位點的差分值,綠色點處為錯誤相位點位置。圖7(b)中綠色點為正確相位點和錯誤相位點的差分值,藍(lán)色點為錯誤相位點和錯誤相位點的差分值,紅色點為錯誤相位點和正確相位點的差分值,藍(lán)色和紅色點處為錯誤相位點位置(彩圖見期刊電子版)。

圖6 錯誤相位點去除算法流程Fig.6 Flowchart of wrong phase point removal algorithm

圖7 錯誤相位點的兩種情況Fig.7 T wo cases of wrong phase point
錯誤相位點參與差分運算位置處的相鄰展開相位差分值的和小于2 rad作為判斷條件,即存在一個錯誤相位點或存在兩個錯誤相位點。沒有對準(zhǔn)誤差的情況下,展開相位連續(xù)分布且單調(diào)遞增,相鄰展開相位的差值在0 rad附近,滿足判斷條件的錯誤相位點位置處,分別進(jìn)行除去錯誤相位點的1×3均值濾波處理得到最終的展開相位。圖7(a)中,綠色點處的相位值通過紅色點處的相位值以及其前一個位置的相位值和綠色點處后一個位置的相位值進(jìn)行1×3均值濾波得到。圖7(b)中,藍(lán)色點出的相位值通過綠色點處的相位值以及其前一個位置的相位值和藍(lán)色點處后兩個位置的相位值進(jìn)行1×3均值濾波得到;紅色點出的相位值通過綠色點處的相位值以及其前一個位置的相位值和紅色點處后兩個位置的相位值進(jìn)行1×3均值濾波得到。
將標(biāo)定板在幾乎垂直于相機光軸的方向上擺放N個已知的位置。在每個位置上投影儀投射12幅正弦相移條紋圖到標(biāo)定平板表面,使用四步相移法計算包裹相位,最佳三條紋選擇法[14]計算展開相位,最后選擇中間的某一個位置為參考位置,通過式(5)建立了Δz(x,y)和Δφ(x,y)之間的對應(yīng)關(guān)系,擬合每個像素點的相位和深度間的多項式系數(shù)作為標(biāo)定系數(shù)。

其中:n=0,1,...,N,Δz(x,y)代表測量位置與參 考 位 置 的 距 離,系 數(shù)a0(x,y),…,an-1(x,y),an(x,y)代 表 多 項 式 擬 合 系 數(shù),Δφ(x,y)代表被測相位與參考相位的變化。
為了驗證本文提出的三灰度編碼相位展開方法,搭建了一個硬件系統(tǒng)由LightCrafter4500數(shù)字投影儀(912×1 040 pixel)和AD-080GE雙傳感器棱鏡式面陣掃描相機(1 024×768 pixel)組成,實驗系統(tǒng)如圖8所示。實驗中,投影儀投射的正弦條紋周期數(shù)是40,相機采用單色模式,相機由投影儀的觸發(fā)信號同步,測量物體結(jié)果如圖9和圖10所示。

圖8 三灰度編碼相位展開實驗系統(tǒng)Fig.8 Experimental system for ternary-gray encoded phase unwrapping
用所提出的三灰度編碼相位展開方法結(jié)合三步正弦相移測量一個非連續(xù)臺階。相機采集的正弦相移條紋圖像對應(yīng)圖9(a)。采集三灰度編碼圖像對應(yīng)圖9(b)。通過三灰度解碼獲得的展開相位級次對包裹相位進(jìn)行展開,得到的展開相位局部放大圖如圖9(c)所示。三灰度編碼得到的相位級次與包裹相位的相位跳變處存在對準(zhǔn)誤差,展開相位中的錯誤相位點如圖9(d)紅色點所示。去除無數(shù)據(jù)的相位點后,展開相位具有135 256個相位點,展開相位具有1 383個錯誤相位點。對準(zhǔn)誤差產(chǎn)生的錯誤相位點可以通過2.3小節(jié)中所提出的方法進(jìn)行去除,對準(zhǔn)誤差去除后的展開相位局部放大圖如圖9(e)所示。最后,通過系統(tǒng)的標(biāo)定系數(shù)重建標(biāo)準(zhǔn)臺階面,得到的三維輪廓如圖10所示。每個恢復(fù)的標(biāo)準(zhǔn)臺階面上選取所有的像素點進(jìn)行平面擬合,計算兩個相鄰的擬合臺階面間高度作為測量值,標(biāo)準(zhǔn)臺階面通過三坐標(biāo)測量機的測量值作為真實值。相同的測試環(huán)境和測量系統(tǒng),相機采集12幅最佳三條紋圖像進(jìn)行相鄰臺階高度的測量,本文所提方法的測量值與最佳三條紋選擇法的測量值對比如表1所示。本文所提方法與最佳三條紋選擇法的精度相當(dāng)。本文所提方法只需投射和采集5幅條紋圖像,相較于最佳三條紋選擇結(jié)合四步相移法測量速度提升了2.4倍。實驗結(jié)果表明,三灰度編碼結(jié)合三步相移的測量方法能夠在快速測量的同時保證測量精度。利用最佳三條紋方法和本文所提方法測量了貓的石膏像,進(jìn)行了三維形貌恢復(fù)。最佳三條紋選擇法測量的貓石膏像和面部局部放大圖如圖11(a)~11(b)所示,本文所提方法測量的貓石膏像和面部局部放大圖如圖11(c)~11(d)所示,可以看到兩種測量方法恢復(fù)的貓石膏像的胡須、眼睛和鼻子的細(xì)節(jié)部分具有同樣的效果。由此可以看出,本文提出的方法在恢復(fù)物體的細(xì)節(jié)方面具有良好的表現(xiàn)。

圖9 本文方法對標(biāo)準(zhǔn)臺階的測量結(jié)果Fig.9 Measurement result of standard step by our method

圖10 臺階平面Fig.10 Step plane

表1 標(biāo)準(zhǔn)臺階平面的測量結(jié)果Tab.1 Measurement results of standard step plane (mm)

圖11 貓石膏像的測量結(jié)果Fig.11 Measurement results of cat plaster
本文提出了一種利用空間鄰域信息的三灰度編碼相位展開方法,該方法通過減少投影和采集的條紋圖像數(shù)量,可以有效地提高三維測量速度。該方法編碼靈活性高,可以生成不同編碼圖像。將三步相移條紋圖像和三灰度編碼圖像結(jié)合對非連續(xù)臺階進(jìn)行測量,在相同的測試環(huán)境和測量系統(tǒng)下,與最佳三條紋選擇法進(jìn)行了實驗對比。使用最佳三條紋選擇法測量的臺階表面高度的最大絕對誤差為0.033 mm,本文所提方法測量的最大絕對誤差為0.039 mm。所提方法僅需投射5幅條紋圖像即可進(jìn)行物體形貌的恢復(fù),在提高測量速度的同時保證了測量精度。最后對貓石膏像進(jìn)行了測量,實驗結(jié)果表明,該方法對物體的細(xì)節(jié)恢復(fù)效果良好,能夠?qū)崿F(xiàn)復(fù)雜三維形貌的快速測量。