王 勇,鄒 輝,饒勤菲,王李福
(重慶理工大學計算機科學與工程學院 重慶 巴南區(qū) 400054)
基于光學的物體三維形貌測量因其非接觸、無損、測量速度快、自動化程度高、精度適中等特點而廣泛應用于3D打印、機器視覺、虛擬現(xiàn)實等領域[1-2]。小波變換輪廓術[3-4]作為一種光學物體三維測量技術,因其抗噪性強、重建精度高、僅需一幅圖像就能獲取相位等優(yōu)點而受到學者的廣泛研究。
小波變換輪廓術的實質就是正確提取小波脊的位置,從而得到最佳伸縮尺度和對應相位信息。然而,在現(xiàn)實圖像的采集過程,由于受到圖像傳感器、傳輸信道、解碼處理等各種因素的影響,圖像在形成和傳輸?shù)倪^程會引入噪聲,特別是椒鹽噪聲[5]。小波變換輪廓術在提取小波脊的過程中極易受此類噪聲的影響,造成小波脊提取不準確,進而影響測量精度。因此,如何抑制噪聲并準確提取小波脊,成為小波變換輪廓術的重點之一。
文獻[6]利用連續(xù)小波變換平面上分布參數(shù)的相位信息提取脊線,但該方法僅能應用于沒有噪聲的信號,在噪聲環(huán)境下,效果較差。文獻[7]提出了一種在時間尺度空間利用小波變換平面上的相位信息迭代來提取小波脊的方法,由于小波變化的相位受噪聲影響較大,該方法提取的脊線也不準確。文獻[8]提出了模極大值算法,該方法利用小波系數(shù)模值的極值來搜尋脊點,并將極值的最大值做為脊點。但該方法抗噪性能較弱,因此,該研究者對該方法進行了改進,提出了Crazy-Climber算法。該算法優(yōu)化了極值的搜索,強化了結果的全局最優(yōu)化,降低了對噪聲的敏感性,但是較為復雜。文獻[9]提出了使用代價函數(shù)提取小波脊,該算法結合小波系數(shù)模極大值和小波脊的光滑特性,將小波脊的提取轉化為最優(yōu)解的問題,并使用動態(tài)規(guī)劃思想求解小波脊。該算法具有良好的抗噪性和魯棒性,但代價函數(shù)仍有缺陷。文獻[10]指出基于代價函數(shù)的小波脊相位提取方法是目前較為有效、穩(wěn)健的方法。
本文基于文獻[9]提出的代價函數(shù)法,提出了一種新的代價函數(shù)提取小波脊的算法。該算法對原代價函數(shù)的小波變換系數(shù)幅值和尺度參數(shù)曲線梯度兩項指標使用Feature Scaling方法進行調整,為避免兩項權重過于擬合,造成小波脊受噪聲影響波動的問題,本文結合空域噪聲信息對調整后的尺度參數(shù)曲線梯度進行補償,以獲得更加合理的代價值,從而準確提取小波脊。實驗證實了本文算法的有效性。
小波變換輪廓術的測量系統(tǒng)的光路原理和傅里葉變換輪廓術相同[2,4]。成像裝置獲得的變形條紋圖一般可表示為:
式中,a(x,y)為背景分量;b(x,y)為條紋可見度;f0為空間載波頻率;φ(x,y)為物體高度引起的調制相位;c(x,y)為隨機噪聲。其中,f0必須滿足下式才能恢復相位[11]:
條紋圖一維連續(xù)小波變換為[12]:
式中,a為尺度因子;b為平移因子;f(x)為取條紋圖一行的信號;ψ(x)為母小波;“*”表示共軛。
Morlet小波在空域和頻域中具有良好的局部性,文獻[13]通過對幾種小波實驗對比,指出復Morlet相對于其他小波在相位恢復中更具優(yōu)勢,故本文選用復Morlet作為母小波,其表示如下:
式中,fb為帶寬參數(shù);fc為小波中心頻率參數(shù)。
通過使用復Morlet小波對條紋圖信號進行連續(xù)小波變換,可得到小波變換系數(shù)W(a,b),其實部記為虛部為則幅值和相位分別為[4,13]:
由式(3)可以看出,小波變換系數(shù)W(a,b)為信號和小波序列函數(shù)內積的結果,它反映了信號和小波序列函數(shù)的相似程度。因此,當信號的局部頻率和相應尺度的小波函數(shù)振蕩頻率相近或者相同時,較大,即相應的幅值A(a,b)較大。小波脊即為在小波平移方向上,不同位置的幅值最大值的連線。脊處對應的尺度即為最佳伸縮尺度,對應的相位即為包含物體高度信息的調制相位。
條紋圖受到噪聲影響后,小波變換系數(shù)幅值會產(chǎn)生多個局部極大值點,若直接采用模極大值提取相位,易造成脊點的誤選,導致小波脊定位不準確。根據(jù)條紋圖瞬時頻率的連續(xù)特性,文獻[9]提出了基于代價函數(shù)的小波脊提取算法,該算法通過計算最小代價值來確定小波脊。
代價函數(shù)定義為:
式中,b為平移因子;φ(b)為位置b處的尺度因子;表示在尺度為φ(b),位置為b處的小波變換系數(shù)幅值;C0和C1分別表示小波變換系數(shù)幅值和尺度參數(shù)曲線梯度的權值系數(shù)。
在實際應用中,處理的對象為數(shù)字圖像,位置是離散化的,因此需要對式(7)進行離散化,雖然原理上可計算任意位置的代價值,但實際上這是不現(xiàn)實也是不必要的。式(7)離散化形式為:
式中,L表示小波變換系數(shù)幅值矩陣的寬度;b表示平移因子。
由式(8)可以看出,其選取的小波脊代價函數(shù)較小且較為光滑,避免了因噪聲產(chǎn)生較大幅值造成的脊線不光滑。
如式(8)所示,在一般研究中,都默認設置C0和的值為1。小波變換系數(shù)幅值通常在0~1之間。小波變換尺度φ(b)無論選擇步長為1還是步長為指數(shù)增長形式[10],一般大于1。因此通常有:
由式(8)選擇的小波脊過于偏向平滑,受到噪聲影響后,易誤選使脊線更加平滑的噪點作為脊點。因此,本文提出一種新的結合空域噪聲信息和Feature Scaling方法的代價函數(shù),其定義為:
式中,Maxs和Mins分別表示候選脊點對應小波變換系數(shù)幅值矩陣除第一列;的最大值和最小值;Maxb和Minb分別表示候選脊點對應的尺度因子矩陣梯度的最大值和最小值;K為λ的調整因子,一般為10n,n為整數(shù),使得為噪聲程度系數(shù),具體判斷標準可根據(jù)實際情況定義使用,本文中取噪聲數(shù)與總像素比,其表達式為:
式中,Count為檢測的噪聲總數(shù);Pixel_num為變形條紋的總像素數(shù)。
由式(10)可以看出,首先使用Feature Scaling方法對小波變換系數(shù)幅值和尺度參數(shù)曲線梯度兩項特征因子進行特征縮放,權衡兩項特征因子的影響比重,然后利用空域噪聲信息對尺度參數(shù)曲線梯度因子進行補償。在較低噪聲情況下,小波脊受噪聲的影響較小,對尺度參數(shù)曲線梯度因子補償較小,使兩項因子權重等階,既使用模極大值提取小波脊,又利用小波脊線的光滑性過濾噪聲。隨著噪聲的增加,噪聲會產(chǎn)生較多屬于極值的小波變換系數(shù)幅值,更易干擾小波脊的正確提取,此時增加對尺度參數(shù)曲線梯度因子的補償,加大該因子的權重,即增強利用小波脊線光滑特性濾除噪聲,從而正確定位小波脊。
本文結合條紋圖灰度的連續(xù)特性,選取噪聲檢測中常用的基于梯度的判別法來判斷噪點[15],從而計算λ值。噪點分析示意圖如圖1所示,相關公式為:
式中,L(c)為噪點梯度和;c表示檢測點x0的鄰接區(qū)域;x0(c)表示檢測點x0的灰度值;表示x0鄰接點的灰度值。
如圖1a所示,若L(c)大于某個閾值,可判定x0為噪點,對于邊緣像素點,如圖1b所示,L(c)遠小于設定閾值。
圖1 噪點分析示意圖
獲取λ步驟如下:
1)提取變形條紋圖的一行。
2)讀取第j個像素點,其中為條紋圖一行的長度。設讀取的像素點為A,其灰度值為pixel[i][j]。A后第2個像素點B的灰度值為計算A與B的灰度差值d=
3)分別計算A和B的噪點梯度和L1、L2。
小波脊提取步驟如下:
1)分別計算λ值和K值。
2)提取變形條紋圖的一行對其進行連續(xù)小波變換,獲得小波變換系數(shù)矩陣Coefficient(m,n),由式(5)可求得幅值矩陣Modulus(m,n)。其中,m為尺度a的維數(shù),n為條紋圖一行的長度。
3)沿平移因子方向對Modulus(m,n)第i列做尺度-模值曲線,求取曲線局部極大值點和拐點,并將大于均值的點作為候選脊點。
4)重復步驟 3)直到i=n,獲得候選脊點矩陣CandidateRidgePoints,進而獲得對應的小波變換幅值矩陣Can_Magnitudes和尺度因子矩陣Can_Scales。
5)根據(jù)Can_Magnitudes和Can_Scales分別計算Mins、Maxs、Minb、Maxb。
6)設置和CandidateRidgePoints相同大小的代價值矩陣Costs,并將第一列代價值設置為0。
7)從第二列開始,分別選取CandidateRidgePoints第j列每個候選脊點i,根據(jù)式(10)代價函數(shù)以及Can_Magnitudes和Can_Scales,依次求得列j-1各個候選脊點m到選取脊點i的代價函數(shù)值Cost(m),并求最小代價函數(shù)值將Cost(i,j)放入代價值矩陣Costs對應位置中。
8)重復步驟7)到最后一列處理完畢,選取最后一列最小值的點作為脊點,并反推出所有脊點,得到小波脊。
9)重復步驟2)~8),得到整個變形條紋圖的小波脊,并根據(jù)式(6)求解出小波脊相位。
為驗證本文所提算法的有效性和魯棒性,本文使用兩種不同形狀的物體來進行模擬實驗驗證。并對變形條紋圖分別添加方差為0.02、0.04、0.06、0.08、0.1的斑點噪聲來驗證所提方法的抗噪性。本文使用常用的評價指標-均方根誤差RMSE(root mean square error)來計算算法在不同噪聲強度的重建誤差,RMSE的表達式為:
模擬的被測物體由Matlab函數(shù)庫中的peaks函數(shù)生成。物體的高度設為模擬條紋圖大小為512×512 pixels,其中標準正弦光柵周期為16 pixel,模擬物體和在方差為0.1的噪聲下變形條紋圖分別如圖2、圖3所示。
圖2 模擬物體
圖3 含噪變形條紋圖
圖4 原代價函數(shù)法
圖5 本文算法
圖6 各算法在不同噪聲下模擬10次RMSE曲線圖
表1 peaks實驗各算法模擬10次RMSE均值
首先,本文選取中值濾波技術對含噪的變形光柵圖進行濾波處理,設定其濾波窗口為3*3。為了便于對比分析,分別采用了模極大值法、原代價函數(shù)法和本文算法對模擬變形條紋圖進行小波脊相位提取。并對提取的截斷相位都采用相同方法進行相位展開。選取的母小波為復Morlet小波,帶寬參數(shù)為0.5,小波中心頻率參數(shù)為1,尺度因子為1~64,步長為1。對于每種強度的噪聲,分別使用3種方法模擬10次。在不同噪聲情況下,各算法獲得的10次RMSE 均值如表1所示,RMSE曲線如圖6所示,原代價函數(shù)法和本文算法在方差為0.1的噪聲下重建形狀分別如圖4、圖5所示。
可以看出,隨著噪聲的增加,3種方法RMSE值都在增加,本文算法RMSE較小,明顯優(yōu)于模極大值法和原代價函數(shù)法,具有更好的抗噪能力。本文算法在噪聲低的情況下明顯優(yōu)于其他兩種方法,隨著噪聲的增加,模極大值法波動增大,誤差極不穩(wěn)定,原代價函數(shù)法和文本算法則波動較小,較為穩(wěn)定。噪聲增加后,本文算法與原代價函數(shù)法差距逐漸減小,但本文算法仍優(yōu)于其他兩種方法。
為進一步驗證本文算法的有效性和魯棒性,使用高度變化較大的圓錐體作為驗證對象,模擬的圓錐體的表達式為:
模擬條紋圖大小為250×250 pixels,標準正弦光柵周期為16 pixel,模擬物體和在方差為0.1的噪聲下變形條紋圖分別如圖7、圖8所示。
圖8 含噪變形條紋圖
圖9 原代價函數(shù)法
圖10 本文算法
圖11 各算法在不同噪聲下模擬10次RMSE曲線圖
表2 圓錐體實驗各算法模擬10次RMSE均值
其他步驟和參數(shù)設置與peaks模擬相同,3種方法在不同噪聲情況下模擬10次,均方根誤差RMSE均值如表2所示,RMSE曲線如圖11所示,原代價函數(shù)法和本文算法在方差為0.1的噪聲下重建形狀分別如圖9、圖10所示。
可以看出,本文算法明顯優(yōu)于其他兩種方法。在較低噪聲情況下,模極大值法波動較大,原代價函數(shù)法和本文算法波動較小,較為穩(wěn)定,隨著噪聲的增加,原代價函數(shù)出現(xiàn)波動情況,本文算法仍相對穩(wěn)定,這是由于圓錐物體高度變化較大,原代價函數(shù)提取的小波脊趨于過于平滑,造成小波脊提取不準確。
本文提出了一種新的代價函數(shù)提取小波脊的算法。相比原代價函數(shù),本文首先使用Feature Scaling方法對小波變換系數(shù)幅值和尺度參數(shù)曲線梯度的權值進行調整,然后結合空域噪聲信息,對尺度參數(shù)曲線梯度進行補償。避免了在低噪聲情況下提取小波脊時,脊線過于趨向平滑,以及在高噪聲情況下,脊線波動較大造成小波脊選取不準確的問題。實驗表明,無論對于高度變化平滑還是陡峭的物體,本文算法具有良好的抗噪性、魯棒性以及穩(wěn)健性。
本文研究工作得到重慶理工大學研究生創(chuàng)新基金(YCX2016226)的資助,在此表示感謝。