徐昆鵬,王建華
(1.徐州工業(yè)職業(yè)技術(shù)學院 機電工程學院,江蘇徐州,221140;2.青島理工大學 自動化工程學院,山東青島,266520)
基于光柵投影的光學三維面形測量具有非接觸、精度高、速度快、低成本、全場測量和易于實現(xiàn)等特點,在逆向工程、工業(yè)檢測、質(zhì)量控制、虛擬現(xiàn)實、醫(yī)學診斷、文物修復和物體識別等領(lǐng)域應(yīng)用廣泛[1]。相移輪廓術(shù)(PSM)和傅里葉變換輪廓術(shù)(FTP)是兩種傳統(tǒng)方法。相移法[2]計算簡單,測量精度高,但對噪聲比較敏感,噪聲會引起解相位結(jié)果存在大量虛假2π跳變,增加了相位展開的難度,且至少需要三幅以上的條紋圖像,適用于靜態(tài)測量;傅里葉變換法[3]是M.Takeda等人在1983年提出來的,它只需要一幅條紋圖案,即可恢復物體三維形貌,可用于動態(tài)物體的三維形貌測量;但由于傅里葉變換不具有局部分析的能力,頻譜混疊等問題,影響了其測量精度。小波變換具有多分辨率分析特點,抑噪能力強,可分為一維小波變換輪廓術(shù)(1D WTP)和二維小波變換輪廓術(shù)(2D WTP)[4-6]。小波脊提取是小波變換輪廓術(shù)的關(guān)鍵步驟,最大模法是常見的小波脊提取方法。
本文分析了相移法、傅里葉變換法和一維、二維小波變換法解相位的原理,對比了幾種方法的解相位結(jié)果。針對條紋圖存在較強噪聲干擾,小波變換最大模提取算法會產(chǎn)生較大誤差,提出了基于價值函數(shù)的二維小波變換小波脊提取算法。首先,提取二維小波變換系數(shù)模的最大值點和部分局部極值點,共同作為小波脊候選點;其次,根據(jù)噪聲產(chǎn)生的較大系數(shù)模可以使用小波脊連續(xù)性進行去除這一原理,在二維小波變換系數(shù)的模上引入尺度因子的梯度,建立價值函數(shù),評估所有候選點的價值;最后,確定每行條紋的最優(yōu)小波脊。仿真和實驗證明,該方法的抑噪能力明顯優(yōu)于其他幾種解相位方法。
相移法[7]的投影條紋一般為余弦條紋(或正弦),得到條紋的灰度值用下式(1)表示:
式中,a(x,y)為背景光強值,b(x,y)為調(diào)制強度,f0為載波頻率,φ(x,y)為被測物體高度調(diào)制相位。
沿著垂直于光柵條紋方向在一個周期內(nèi)移動n次,n∈ (3,5)。當n= 3時稱為三步相移法,當n= 4時稱為四步相移法,當n= 5時稱為五步相移法。以四步相移法為例,四幅帶有 /2π相移的灰度值函數(shù)分別用下式(2)~(5)表示:
得到:
求取反正切函數(shù),得到:
式(6)反正切運算得到的相位值 (,)xyψ包裹在(-,]ππ之間,稱為相位主值(或包裹相位),需要相位展開得到實際相位。
傅里葉變換解相位的基本原理是在頻域中把代表背景光的零頻分量和代表噪聲的高頻分量通過合適的濾波器濾除掉,剩下的是包含有用相位信息的基頻分量,再對基頻分量進行逆傅里葉變換,通過正切運算即可解出被測物體高度調(diào)制相位主值。
根據(jù)歐拉公式,式(1)可以(7)表示為:
式中:
沿x方向?qū)κ剑?)采用一維傅里葉變換,得到:
上式(8)由-1級C*(f+f0)、0級A(f)、1級C(f-f0)三種頻譜信號組成,如圖1所示。
圖1 一維傅里葉變換的基頻分量提取
其中A(f)其代表零頻背景信號,而C(f-f0)、C*(f+f0)包含了所需的相位信號。這里選取 0(-)Cff,逆傅里葉變換得到:
其實部和虛部分別為:
被測物體高度調(diào)制相位主值可以寫成:
同相移法類似,傅里葉變換法得到的相位主值也是截斷的,即包裹在(-,]ππ之間,需要相位展開得到實際相位。
1.3.1 一維小波變換法
圖2(a)為模擬被測物體1Peaks× ,圖像大小為512pixels×512pixels,被測物體高度調(diào)制后的變形條紋如圖2(b)所示,選取變形條紋第256行像素的灰度值組成一維數(shù)組g(256,:)(x)。
圖2 被測物體和變形條紋
對一維數(shù)組g(256,:)(x)一維小波變換:
式中: (,)Wbs為一維小波變換系數(shù),b為平移因子,s為伸縮因子(或稱尺度因子),母小波 ()xψ選擇一維Morlet小波,表達式為:
一維小波變換系數(shù)是二維的,其模和相位分布分別用公式(13)、(14)表示:
式中:Modulus是一維小波變換系數(shù)的模,如圖3(a)所示,橫軸為平移因子b,取值范圍為1~512pixles,豎軸為系數(shù)模,白色表示系數(shù)模比較大,黑色表示系數(shù)模比較??;phase_map是一維小波變換系數(shù)的相位,如圖3(b)所示,橫軸為尺度因子s,取值范圍為1~64,豎軸為相位。
圖3 變形條紋的一維小波變換
小波變換系數(shù)模的最大值定義為小波變換的“脊”,“脊線”則代表了信號和Morlet小波最為相似的位置,提取出“脊線”位置處對應(yīng)的相位,即為第256行像素的相位主值,條紋所有行像素采用同樣方式得到相位主值,從而獲得整幅條紋圖案的相位主值分布[8-11]。
1.3.2 二維小波變換法
二維小波變換不但含有平移因子和尺度因子,而且含有旋轉(zhuǎn)因子,因此具有方向選擇性,其多分辨率分析能力強于一維小波變換。其原理是把小波不斷平移、縮放和旋轉(zhuǎn),與原始信號進行比較,計算得到小波變換系數(shù)矩陣。系數(shù)模代表小波與信號的相似程度,系數(shù)模值越高,表示小波與信號越相似。通過尋找二維小波系數(shù)的最大模,來恢復相位主值[12]。
在二維小波變換中,母小波采用二維Morlet復小波[13-14],表示為:
式中:θ為小波相對于x旋轉(zhuǎn)角度,k為小波中心頻率。
變形條紋 (,)gxy二維小波變換表達式為:
式中:W(a,b,s,θ)為小波變換系數(shù),(a,b)為兩個方向上的平移因子,s為伸縮因子(或稱尺度因子),θ為旋轉(zhuǎn)角度,rθ為旋轉(zhuǎn)矩陣。
如果尺度因子s有六十四種不同的取值,旋轉(zhuǎn)角度因子s有四種不同的取值,那么將整幅變形條紋二維小波變換后得到一個四維數(shù)據(jù)為512×512×64×4,取出每個512×512矩陣第一個位置點的數(shù)值,組成64×4系數(shù)矩陣,它是第1行、第1列像素點在不同縮放尺度和旋轉(zhuǎn)角度下的二維小波變換系數(shù)矩陣,如圖4所示。
圖4 二維小波變換的四維數(shù)據(jù)
根據(jù)式(13)、(14)求出該像素點的模和相位,找到系數(shù)模最大值,進一步得到最大值點的相位值,即為該像素點的相位主值。依次提取出512×512矩陣其他像素點的數(shù)據(jù),提取最大系數(shù)模位置相對應(yīng)的相位,從而得到整幅條紋的相位主值。
計算機生成模擬被測物體為0.5Peaks,條紋周期為16Pixels,相位展開采用Itoh提出的基本相位展開方法[15-16](逐行相位展開方法),以均方根誤差(RMSE)作為評價標準,對比各種方法的面形恢復、誤差如表1所示。通過對比幾種方法的解相位結(jié)果可以看出,相移法測量精度最高,誤差最小。
表1 理想無噪聲干擾條紋圖,不同方法的三維面形恢復和誤差
小波變換直接最大模小波脊提取方法的特點是算法簡單,速度快。但是,當條紋圖像中存在噪聲時,會出現(xiàn)多個局部極大值點,小波變換系數(shù)模不是最大值點,也是局部極大值點。如果仍然采用模最大值搜索“脊”,將找到錯誤的“脊”,而導致恢復的三維形貌存在較大誤差。通過前面的分析可以看出,系數(shù)模的“脊”一般是連續(xù)的,而噪聲產(chǎn)生的局部極值點可以選用系數(shù)?!凹咕€”的連續(xù)性進行去除。根據(jù)以上特性,提出了基于評價函數(shù)的二維小波脊提取算法。
評價函數(shù)定義為:
式中:φ(b)為尺度因子,b為平移因子,S[φ(b),b]為小波變換系數(shù)((),)bbφ位置的模,代表了尺度因子的梯度,C0和C1為權(quán)值。
根據(jù)前面分析,系數(shù)模越大且路徑越光滑,則越能代表實際“脊線”。由式(17)可以看出,S[φ(b),b]越大,越小,價值函數(shù)值也越小,越能反映真實的“小波脊線”。
假設(shè)C0和C1取值為1,價值函數(shù)最小的路徑經(jīng)過點(p,j),其中尺度因子p=φ(j),j為平移因子,則后面一點(q,j+ 1)的價值函數(shù)可表示為:
Step1: 對條紋圖進行二維小波變換,得到一個四維的系數(shù)矩陣。
Step2: 0θ= 時,取出尺度因子為1,2……64時每個矩陣的第一行系數(shù),組成64512× 系數(shù)矩陣,它代表了 0θ= 時、第一行像素的系數(shù)矩陣。采用相同的方法,取出其他三個旋轉(zhuǎn)角度中每個矩陣的第一行系數(shù),組成各自的第一行像素系數(shù)矩陣,如圖5所示。
圖5 基于價值函數(shù)的二維小波變換四維系數(shù)矩陣
Step3: 取θ= 0時,第一行像素的64 × 512系數(shù)矩陣的模和如圖6所示。在圖6中依次找出平移因子為b= 1,b= 2, ······b=512時,模的最大值和最大值90%的局部極值點,共同組成候選脊點,圖7為候選脊點的模,而候選脊點所對應(yīng)尺度因子如圖8所示。由于噪聲的影響,所有候選點都有可能是最終的“脊”。因此,根據(jù)式(18)計算所有候選點的價值;第一列的價值都為0,第2列價值的計算過程如圖9所示。
圖6 二維小波變換系數(shù)矩陣 0θ= 第一行像素的模
圖7 候選脊點的模
圖8 候選脊點的尺度因子
圖9 候選脊點的價值計算
Step4: 找到第512列像素點的所有候選點的最小價值,并記錄該候選點的位置(即尺度因子和系數(shù)模),然后找出該最小價值的求解路徑,從而確定第511像素點的小波脊位置,然后按照上述方法反向?qū)ふ业剿凶顑?yōu)路徑,即可找到第512~1列位置,即為 0θ= 時第一行像素的最優(yōu)小波脊線,如圖10所示。
圖10 最優(yōu)小波脊線
采用計算機模擬驗證所提方法的抑噪性能。模擬被測物體為0.5×Peaks,條紋圖大小為512pixle×512pixel,采用均方根誤差(RMSE)衡量形貌恢復精度。依次加入標準方差梯度0.1遞增的高斯白噪聲和椒鹽噪聲,對比二維小波變換的直接最大模的小波脊提取和基于價值函數(shù)的小波脊提取,如圖11和12所示。信噪比較低時,基于價值函數(shù)的小波脊提取算法的均方根誤差明顯小于直接最大模的小波脊提取方法。
圖11 不同椒鹽噪聲等級時的RMSE
圖12 不同高斯白噪聲等級時的RMSE
測量系統(tǒng)主要由數(shù)字投影儀(三星SP-P410M)、CCD相機(大恒水星系列MER-050-560U3M)和個人計算機(Intel Core i5-4258U CPU, 4G RAM)組成,如圖13所示。
圖13 測量系統(tǒng)
被測物體為三維凸起曲面,條紋圖存在噪聲污染,采集到的條紋圖如圖14(a)所示,分別采用二維小波變換最大模的小波脊提取和基于價值函數(shù)的小波脊提取算法獲得包裹相位,然后用Itoh逐行逐列相位展開方法得到實際相位分布,結(jié)果如圖14(b)和(c)所示。通過對比可以看出,相對于最大模提取算法,基于價值函數(shù)的二維小波脊提取形貌恢復精度更高,結(jié)果更好。
圖14 曲面實驗對比
光柵條紋投影輪廓術(shù)的解相位方法主要有相移法、傅里葉變換法和小波變換法。本文分析了幾種方法的原理,并對測量精度進行了對比分析,研究發(fā)現(xiàn)相移法解相位精度最高,但所需條紋數(shù)量較多,適合靜態(tài)物體測量;傅里葉變換和小波變換只需一幅條紋即可獲得相位主值,但測量精度低于相移法。此外,當條紋圖存在較強噪聲干擾,小波變換最大模提取算法會產(chǎn)生較大誤差,提出了一種基于價值函數(shù)的二維小波變換小波脊提取算法,相對于二維小波變換直接最大脊提取算法,抑噪能力更好。