董營 顧琦 張慶德


摘 要:格雷碼結構光相位展開方法可以擴展相移算法的包裹相位。由于格雷碼圖像的黑白邊界存在過渡區域,使得這些邊界位置容易產生錯誤的展開相位。為此,本文提出了一種改進的格雷碼相位展開方法。改進方法在傳統的格雷碼圖案基礎上,附加一個新的格雷碼圖案,并且給出了相應的相位展開方法。在改進的方法中,過渡區域不參與相位計算過程,因此該方法比傳統格雷碼相位展開方法更為可靠。
關鍵詞:條紋投影;格雷碼;相移法;相位展開
1.前言
條紋投影輪廓測量技術是一種非接觸式的快速光學測量方法,適用于掃描復雜和不連續的物體三維輪廓。在條紋投影技術中,相移法是獲取相位信息的主要方法。然而,相移法會產生周期為2π的不連續相位分布,經過相位展開過程才能得到連續的相位分布圖。
格雷碼相位展開方法屬于時間相位展開方法,是解決相位解包裹問題最簡單直接的方法。通過使用二進制編碼圖案,格雷碼解相位方法具有抗干擾的特點。但是格雷碼方法也有明顯的缺點,最突出的問題是在二值邊界區域容易出現周期跳躍相位誤差。由于物體表面的散焦和不均勻的反射率,在采集的格雷碼圖像上,黑白邊界區域不是理想的亮度突然轉換情況,有過渡區域存在。這將導致在格雷碼圖案邊緣區域確定相位階數時存在不確定性,容易在邊緣過渡區域產生錯誤的相位階數以及展開相位誤差和相位誤差。
針對這個問題,本文提出了一種改進的格雷碼相位展開方法。在改進的展開方法中,過渡區域的展開相位值是由傳統格雷碼圖案以及一個附加的格雷碼圖案決定。改進方法以包裹相位和穩定的格雷碼非邊緣過渡區域亮度確定過渡區域的相位階數,可以有效的消除邊緣過渡區域存在的相位階數誤差和相位誤差。
2.傳統格雷碼方法
2.1?相移法
相移法具有較高的計算效率和精度,被廣泛應用于光學測量領域。在相移法中,第i個理想正弦條紋的亮度可以表示為:
(1)
式中,Iα(x,y)是平均亮度,Im(x,y)是亮度調制,φw(x,y)是相位信息,N表示條紋圖案數量。相位信息φw(x,y)可以使用最小二乘法計算得到:
(2)
由式(2)求解的相位值是周期為2π的不連續相位,正弦條紋圖案和和計算的未展開相位。為了重構連續的物體表面三維輪廓,需要用相位展開方法將不連續的周期相位擴展成連續的絕對相位分布。
2.2?傳統格雷碼相位展開方法
格雷碼方法是一種簡單、有效的相位展開方法。一組三位的理想格雷碼圖案如圖1(b)所示。基于這些圖案的二值化結果,可以計算出其相應的條紋順序,如圖1(c)所示。如果格雷碼圖案的周期與相位條紋的周期一致,按照格雷碼圖案計算的條紋順序也可以稱為相位階數G(x,y)。根據相位階數可以將周期相位φw(x,y)展開成連續的絕對相位分布φu(x,y),展開的連續相位分布如圖1(d)所示。
(3)
2.3?邊界相位誤差
在實際采集的格雷碼圖像中,因為離焦、物體表面不均勻反射等原因,在圖像黑白邊界處亮度不是突然轉變,存在亮度變化過渡區域,如圖1(a)所示。過渡區域的亮度在二值化計算時存在不確定性,導致實際的格雷碼圖案邊緣與周期相位的邊緣不能完全一致,存在輕微錯位,示意圖如圖1(b)和1(c)所示。在利用式(3)進行相位展開時,這種錯位會產生邊緣相位誤差,如圖1(d)所示。
圖1.過渡區域和邊界相位誤差示意圖:(a)過渡區域圖像(b)周期未展開相位(c)階梯邊緣不準的相位階數(d)具有邊界相位誤差的連續相位。
3.改進格雷碼相位展開方法
為了消除在過渡區域中出現的相位誤差,我們提出了一種改進的格雷碼相位展開方法。在這種方法中,格雷碼圖案過渡區域的相位是基于未展開相位和格雷碼圖案非過渡區域編碼值確定。因此,該方法可以在過渡地區提供可靠的相位階數。本文所提出的方法主要分為四個步驟:
步驟1:確定像素坐標是否位于過渡區域中
為了提高計算效率,我們需要在采集的格雷碼圖像中找出位于過渡區域的像素點進行專門的相位展開計算,其他區域的像素點可以采用傳統的格雷碼方法計算展開相位。由于格雷碼圖案的周期是與相移法圖案周期的整數倍,即理論上,格雷碼圖案的過渡區域應在未展開相位的相位突變位置附件。因此,本方法認為過渡區域像素點位于未展開相位過渡區域的±π/2的范圍內,即(-π≤φw<-π/2)和(π/2≤φw<π)。
步驟2:識別格雷碼圖像
圖2所示的陰影區域是確定的過渡區域,三條實現代表傳統的三位格雷碼圖案的二值化結果。可以看出,三幅傳統格雷碼圖案上的過渡區域分別與未展開相位的相位突變位置一一對應。為了識別過渡區域所對應的格雷碼圖像,本方法使用了附加的格雷碼圖案,圖2中虛線代表附加的格雷碼圖案二值化結果。
圖2.改進格雷碼相位展開方法原理
如果某像素點位于格雷碼圖案過渡區域中,可以從附加格雷碼圖案開始依次掃描各格雷碼圖案在該像素坐標的二值化狀態,確定過渡區域屬于哪個格雷碼圖案。在確定過程中,如果我們發現附加格雷碼圖案在像素位置的二進制狀態為真,則可以確定該像素坐標所處的過渡區域屬于格雷碼圖案2。否則,如果附加格雷碼圖案中的二進制狀態為假,并且在格雷碼圖案2中為真,則過渡區域屬于格雷碼圖案1。依次類推,當格雷碼圖像1在像素位置的二進制狀態為真,在其他格雷碼圖案上為假時,可以確定過渡區域位于格雷碼圖像0。
步驟3:識別過渡區域邊緣類型
過渡區域的格雷碼圖案邊緣可以分為上升沿和下降沿兩種類型,需要進行區分對待。在每個格雷碼圖案上(除了圖案0),上升沿和下降沿是按規則順序出現的。利用周期更大的格雷碼圖案可以計算待確定格雷碼圖案上過渡區域的編碼,根據編碼值可以確定該過渡區域是上升邊緣或者是下降邊緣。以圖案2上的過渡區域為例,共有四個過渡區域。根據過渡區域在圖案0和圖案1的二值化結果,可以確定該區域的編碼值(分別為0,1,2和3)。由此,可以判斷出編碼值為0和2的過渡區域為是上升邊緣,編碼值為1和3的過渡區域為是下降邊緣。
步驟4:校正所識別的格雷碼圖像中的邊緣
最后根據上述確定的參數,確定過渡區域的二進制狀態。如果像素點位于格雷碼圖像的過渡區域,其二進制狀態將確定為:
根據式(4)和(5)確定的過渡區域二值化結果,過渡區域的上升邊緣或者下降邊緣與未展開相位的相位突變位置精確對齊。因此,本方法可以得到準確的相位階數,消除由此引起展開相位誤差。
4.實驗結果與分析
為了驗證本方法的有效性,本文使用泡沫魚作為被掃描目標。這里分別采用傳統格雷碼方法和改進的格雷碼方法計算泡沫魚表面輪廓的絕對相位。圖3(a)所示為傳統格雷碼解相方法計算得到的連續相位結果。從該圖上可以明顯看出,被掃描表面的展開相位不光滑,存在周期性的相位誤差。圖3(b)為改進格雷碼解相方法的計算結果。從圖3(b)可以看到,改進的解相方法可以有效地去除邊緣相位誤差,使被掃描表面的展開相位更加光滑。
圖3.?重構表面效果對比:(a)傳統格雷碼方法結果(b)改進格雷碼方法結果
5.結論
為了消除傳統格雷碼解相方法中存在的條紋邊緣相位誤差,本文提出了一種改進的格雷碼解相方法。該方法基于未展開相位和非邊緣區域亮度確定邊緣區域的相位階數,能夠在邊緣區域給出可靠的相位展開結果。實驗結果驗證了該方法的可行性和有效性。
(作者單位:山東化工技師學院,山東?棗莊?277500)