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

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

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

條紋背景光強為:

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

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

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

其中: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 灰色偽碼去除
灰色偽碼出現在黑色碼值0和白色碼值1的中間,且對應的像素數量遠遠小于一個正弦條紋周期對應的像素數量。因此,可以通過判斷當前的碼值1左邊的碼值是否為0或者2找到灰度邊界,然后設置遠小于一個正弦條紋周期的像素數量的閾值將灰色偽碼去除,得到最終的兩幅三灰度編碼圖像。
2.2.4 三灰度編碼值解碼
通過三灰度編碼圖像的編碼值來確定展開相位級次。圖5為空間鄰域解碼圖,第一行對應相位級次,第三行和第四行的碼值組合成第二行的編碼值,通過空間相鄰的三個編碼值確定相位級次。其中,編碼值00,01,02,20,21,22對應的相位級次通過當前編碼值和后兩個相鄰編碼值來確定,編碼值10,11,12對應的相位級次通過當前編碼值和前兩個相鄰編碼值來確定,通過確定的相位級次對包裹相位進行展開得到展開相位。在實際測量時,只需將每行的第一個條紋周期的相位級次通過空間相鄰的三個編碼值確定即可,當第一個條紋級次確定后只需依次判斷下一個編碼值是否正確即可確定下一個條紋級次,解碼過程簡單。當發生編碼值跳變時,可以通過空間相鄰的編碼值來避免編碼值錯亂,因而本方法適用于非連續表面的測量。

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

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

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

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

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

圖9 本文方法對標準臺階的測量結果Fig.9 Measurement result of standard step by our method

圖10 臺階平面Fig.10 Step plane

表1 標準臺階平面的測量結果Tab.1 Measurement results of standard step plane (mm)

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