王 琦 李 鋒(江蘇科技大學電子信息學院 江蘇 鎮(zhèn)江 212003)
在光學三維測量的條紋投影技術中,相移測量輪廓術[1](Phase Measurement Profilometry,PMP)計算過程簡單且受外界環(huán)境因素影響較小從而被廣泛使用。但其易受到器件伽馬畸變和顏色串擾的影響,使得CCD接收相位出現非線性現象,從而使相位值求解產生較大相位誤差。
當前系統(tǒng)器件非線性校正研究多在黑白編碼條紋下進行的,而對于彩色編碼條紋下的研究較少。近幾年在彩色編碼條紋下的校正方法,主要分為三大類:離焦法、相位誤差補償法和伽馬校正法。離焦法[2]將器件看作低通濾波器,產生離焦效應對圖像高頻起抑制作用。該方法受物體表面形狀限制造成離焦程度不一。相位誤差補償法[3]屬于被動相位誤差補償。李彪[4]將實際條紋圖與預設條紋圖進行比較建立系統(tǒng)誤差查找表;劉冠洲等[5]利用最小二乘法和線性插值建立實際與理想光柵相位映射的關系。該類方法易受環(huán)境因素影響產生相位波動。
伽馬校正法[6]對投影條紋提前校正,使獲得的相移光柵具有正弦性且對彩色適應性強。伽馬校正法分為兩類:標定法和非標定法。標定法使用相同預編碼值對紅綠藍三通道內的正弦光柵函數統(tǒng)一預調制。因紅、綠、藍通道響應函數不同,造成三通道的伽馬畸變值也不同,對三通道使用相同的預編碼值不能起到良好的校正效果,但是一次標定即可反復使用。非標定法通過投射一組三通道的灰度圖像求取各通道響應曲線,再多項式擬合反算各通道曲線的預設強度值。該方法易受多項式系數影響產生累計誤差,但是其包含了對紅、綠、藍三通道分道處理的思想。
因此,本文考慮彩色編碼條紋特性并結合顏色串擾補償對現有伽馬校正法進行改進,更好地減少器件非線性的影響。實驗結果表明該方法能夠有效減少相位測量誤差。
(1)
式中:R為物體表面反射率;B為背景光強;γ為系統(tǒng)伽馬值,即投影儀一次畸變值與攝像機二次畸變值之和。R、B為常數不會引起器件的非線性響應,B可再細分為環(huán)境光強和投影光強:
B=A+C
(2)
式中:A為環(huán)境光強;C為投影光強。
考慮實際測量環(huán)境中,不同物體表面材質引起反射率不同。因此該校正法不再投射光柵圖像到物體表面,而是投射灰度圖像至白色參考平面,以減少物體表面反射率對于預編碼值求取的影響。在系統(tǒng)中,環(huán)境光強變化[8]會引起彩色條紋強度的變化,無論是條紋強度過強還是過弱都會影響相位值求解精度,此時可通過式(3)來進行條紋強度補償。
In=255(Io-Imin)/(Imax-Imin)
(3)
式中:In為補償后的強度值;Io為補償前的強度值;Imin為某行強度最小值;Imax為某行強度最大值。而投影光強則存在亮度不均的問題,導致同幅圖像中伽馬值不同。其分布規(guī)律類似于同心圓[9],伽馬值在圓心處最小,隨著半徑向外擴展越大。為了保證投影儀亮度均值在85%以上且伽馬值較小,選取采集回圖像的中心區(qū)域并求取每幅圖像的灰度均值。接著對理想灰度圖像引入一個合適的預編碼值γp,1/γp<1,式(1)可變?yōu)椋?/p>
(4)
預調制后的灰度圖像再經過器件非線性的影響,實際灰度圖像的系統(tǒng)伽馬值被調整為1,器件非線性情況得到明顯的抑制。再結合分道處理的思想,對紅、綠、藍三通道分別求取對應預編碼值來進行預調制補償。
本文算法流程如圖1所示。
首先通過MATLAB 2014a軟件生成三組紅、綠、藍灰度圖像并投射至白色參考平面,三組圖片灰度均為0~255,投射步長為5,投射順序按灰度值從低到高。再求取每幅圖像的灰度均值,因為均值點為離散點無法直觀地顯示響應函數,所以使用MATLAB曲線擬合工具箱對離散點進行多項式曲線擬合,得出最趨近測量系統(tǒng)的三通道真實響應曲線。
在獲得三通道各自的響應曲線后,擬合曲線頭部和尾部存在明顯的平臺效應,如果系統(tǒng)工作在該范圍內會產生相位誤差。本文通過對響應曲線求取一階導數差值來確定最大線性區(qū)間[10]。首先對相鄰灰度值間的直線段求解斜率。投影預設灰度值為xn,n=1,2,…,52,攝像機采集回的灰度值為yn,n=1,2,…,52,相鄰兩灰度間直線段的斜率可通過一次求導獲得:
(5)
再對式(5)進行二次求導,從而獲得一階導數差值:
(6)
如圖2所示的是綠通道響應曲線,圖3所示是其二階導數,即為一階導數差值。圖3中(65,70)和(70,85)、(225,230)和(230,235)兩對區(qū)間內一階導數差值變化較大,所以(70,230)為綠通道的最大線性區(qū)間。同理可得其他兩通道的最大線性區(qū)間。
系統(tǒng)伽馬畸變值在理想狀態(tài)下等于3,在使用黑白編碼條紋時,即只包含一個通道的情況下,隨著伽馬預編碼值從1.5到4.5,相位誤差呈現先降后升的趨勢,當γp接近于3時,所對應的相位誤差已經很小了[11]。彩色攝像機的三通道系統(tǒng)響應程度不一,表示受到的伽馬畸變不一,各通道的預編碼值也不相同。若通道響應程度較高,伽馬畸變較小,預編碼值與理想值3的差值越大;若通道響應程度較低,伽馬畸變較大,預編碼值與理想值3的差值越小。
(7)
由式(7)可以推得:
(8)
在式(8)中,因其僅包含γ一個未知量,再將其變成非線性超越方程的形式:
(9)
令f(γ)=0,符合條件的γ值即為單通道中系統(tǒng)伽馬值。單通道下有兩組灰度圖像,每一組灰度圖像再分別利用遺傳算法對方程解進行尋優(yōu),可以得到單通道兩個不同的系統(tǒng)伽馬值γ1和γ2。
若將γ進一步分化成如式(10)所示的投影儀和攝像機的伽馬值之和,這樣系統(tǒng)中某一個出現故障,則不必重新全部求取,只需求取單個設備值進行替換即可。
γ=γa/γp+γb
(10)
式中:γa和γb分別為投影儀和攝像機器件伽馬值。在單通道γp1、γp1、γ1和γ2已知的情況下,利用式(11)則可以解出單通道下的γa和γb。
(11)
令式(10)中γ=1,再將求得的γa和γb代入,則可利用式(12)求得針對相應單通道的預編碼值。引入該預編碼值對相應單通道進行預調制,即可消除伽馬失真。
(12)
彩色編碼條紋的顏色串擾[12]不僅會導致校正后的圖像經過攝像機采集回后產生顏色偏差,而且會對接收相位造成非線性影響。本文引入了顏色串擾模型[13],基于該模型可得到預設像素值與實際像素值之間的響應關系:
M=AKP(I)+M0
(13)
式中:M為像素點實際強度值;A為串擾矩陣;K為反射矩陣,表示像素點對于紅、綠、藍三通道不同的反射率;P(I)為像素點預設強度值;M0為像素點環(huán)境光強。實驗通常將器件布置在黑暗環(huán)境下,此時投影光強與環(huán)境光強之間差值較大,所以可以忽略M0。在白色參考面的情況下反射率默認為1時,式(13)可簡化成:
M=AP(I)
(14)
向白色參考平面分別投射三幅圖片,分別為純紅、純綠和純藍。對采集回的圖像利用MATLAB軟件進行歸一化處理。提取出紅綠藍三通道的灰度值并求取平均值,確定出實際測量值。利用式(14)計算顏色串擾矩陣A和逆矩陣A′。最后將采集回的圖像中每一個像素點均乘以矩陣A′進行顏色補償修正,即可消除彩色編碼條紋顏色串擾的影響。
為了驗證本文在彩色編碼條紋下伽馬預編碼法的有效性,搭建了由EPSON EB-C760X投影儀(分辨率為1 024×768)、AVT MANTA G-125攝像機(分辨率為1 292×964)、白色參考面(42 cm×30 cm)和計算機組成的結構光測量系統(tǒng)裝置,如圖4所示。在光照為0的情況,即黑暗環(huán)境下調整攝像機的參數,在白平衡紅藍分量值均為2時達到最佳。
圖4 實際測量系統(tǒng)裝置
先通過攝像機投射三組紅、綠和藍圖像至白色參考面,圖像灰度值為255,大小為1 024×768,與投影儀的分辨率保持一致。再通過攝像機采集回至電腦端中使用MATLAB軟件對圖像進行處理,經過攝像機的調制,此時圖像大小變?yōu)? 292×964。處理時以圖像中心像素點為基準,先選取采集回圖像的中心區(qū)域,圖像大小為1 024×768,以與原設定圖像大小保持一致。然后求取每幅圖像的灰度均值,最后MATLAB工具箱擬合得三通道響應曲線如圖5所示。
圖5 三通道擬合的輸入輸出響應
因為使用攝像機的RGB24模式進行采集,圖像為unit8型且各純色圖像中混有其他顏色分量,所以需要對圖像進行分通道處理,從而提取出每組單幅實際圖像的灰度均值。
表1 基于彩色編碼條紋的伽馬預編碼法預設值
如圖5所示,因為通道響應程度從小到大為紅色<藍色<綠色,所以設定各通道的γpi與3之間的差值從小到大為紅色<藍色<綠色。相同通道的γp1和γp2與3為差值大小相同,且γp1<γp2。先設定響應程度最好的綠通道的γp1和γp2值。文獻[7]中的黑白編碼條紋下的灰度響應曲線與本測量系統(tǒng)中綠通道響應曲線相似,參考其預設值,所以將綠通道的γp1和γp2分別設定為2.5和3.5。剩余兩通道根據響應程度,γp1以0.1遞增,γp2以0.1遞減,如表1所示。
在實驗中提取單通道每組每幅圖像第300行,在不同γpi條件下,將該行所有像素點對應的伽馬值求和并取平均值賦值給該條件下的系統(tǒng)伽馬值,最后求得各通道的伽馬預編碼值,如表2所示。
表2 基于彩色編碼條紋的伽馬預編碼法結果值
在MATLAB 2014a中,生成γp=1時的三個頻率T1=70、T2=64、T3=59的標準四步余弦相移編碼圖案,融入三通道生成四幅彩色編碼條紋圖案,投射至白色參考平面。使用MATLAB軟件產生三組不同頻率、每組中有四幅相移量分別為0°、90°、180°和270°的正弦條紋圖。
for m=1:自設
for n=1:自設
temp(m,n)=0.5+0.5*cos(2*pi*f*n+phi);
然后提取每組中相位相同的圖像,按照頻率從大到小的順序依次調制到紅、綠、藍三通道中。
I=cat(3,R,G,B);
將0°相位、頻率為A的條紋調制到紅通道中,將0°相位、頻率為B的條紋調制到綠通道中,將0°相位、頻率為C的條紋調制到藍通道中,再將三通道復合得到一幅0°相位狀態(tài)下的彩色編碼條紋圖,如圖6所示。同理得到另三種相位狀態(tài)下對應的彩色編碼條紋圖。
圖6 組合過程示意圖
在無任何干擾的情況下,獲得三種頻率的包裹相位作為其理想相位。再將求得的三通道rp對各通道正弦條紋進行預編碼,圖7為預編碼法校正前后綠通道的光柵投影曲線。同時比較校正前后的包裹相位與理想相位第300行的相位誤差,得到圖8所示的包裹相位誤差圖。
由圖7可知,校正前預設的標準正弦光柵經過器件影響后發(fā)生畸變,兩側變寬,谷底提高,非線性現象嚴重。校正后光柵的非線性現象得到明顯改善,該通道的光柵灰度相比未校正前已經非常接近正弦分布。由圖8可知,校正前包裹相位誤差最大值為0.054 3,其絕對值的平均值為0.039 9,校正后包裹相位誤差最大值為0.015 7,其絕對值的平均值為0.007 3,分別減小了71.09%和81.70%。
為了驗證本文方法性能,在相同條件下,將該方法與兩種已有的校正方法進行對比,對比結果如表3所示。方法1為本文方法,方法2為彩色編碼條紋三通道使用相同γp值[14]進行伽馬預編碼校正,方法3為反向誤差補償法[15]。
表3 各非線性校正方法實驗結果
由表3可知,使用方法2校正后的相位誤差相較于其他兩種方法更大且準確性低,方法3相位誤差較小但穩(wěn)定性不如方法1。因此從數值上驗證了本文方法對于彩色編碼條紋包裹相位誤差補償的有效性。
驗證顏色串擾補償的有效性。先投射紅、綠、藍圖案至白色參考面,計算得到串擾矩陣A及其逆矩陣A′,如式(15)、式(16)所示。后用逆矩陣對采集回的彩色編碼條紋進行串擾補償。串擾補償前后的彩色編碼條紋圖像如圖9所示。
(15)
(16)
由圖9中的黑框處可以觀察到:補償前的紅、藍通道受到較大串擾影響,其顏色條紋無法得到有效區(qū)分。同時在串擾矩陣A中,可以觀察到紅通道數據值距離1差距較大,說明紅通道中涉入了一定量的其他分量。補償后的彩色條紋強度值得到明顯的改善,且得到明顯的區(qū)分,驗證了本文所提串擾補償方法的有效性。
現有的實際測量系統(tǒng)中,為了提高物體測量精度,需要獲得更多的物體表面信息。彩色編碼結構光測量系統(tǒng)較之黑白編碼結構光測量系統(tǒng)更具有優(yōu)勢。但隨之系統(tǒng)中出現了由伽馬畸變和顏色串擾引起的器件非線性問題。
針對此問題,本文提出一種在彩色編碼結構光測量系統(tǒng)中的伽馬預編碼法,通過計算獲得符合R、G、B三通道響應的三個預編碼值,分別對三通道分類進行預調制。實驗結果表明,通過該方法在彩色測量系統(tǒng)中進行器件非線性校正,校正后的光柵具有良好的正弦性和較小的相位誤差。再結合顏色串擾補償,彩色編碼條紋得到良好區(qū)分且強度值得到明顯增強,進一步減少非線性問題。該方法相較于現有的彩色測量系統(tǒng)中三通道多使用同一預編碼值進行預調制的方法,相位誤差能得到明顯的減少,提高測量精度。該方法以投射純色圖像代替光柵圖像,在實際運用中能夠簡化圖像設計過程,減少因物體表面反射和參考面移動對于測量的影響,打破投射光柵圖像求解的局限性,提升彩色測量系統(tǒng)的使用率。