馬春波,秦芳利,簡必建,敖 珺
(桂林電子科技大學信息與通信學院,廣西 桂林 541004)
自然條件下,水的無規(guī)則波動和氣候干擾,會導致經過水-空氣界面的圖像扭曲變形,使得圖像無法辨認。這極大的制約了水下平臺的應用范圍,因此針對水下對空成像的圖像恢復具有重要的意義。
以往研究水下對空成像圖像恢復[1],主要分為兩類:一是對波動的水面建模,從而對扭曲的圖像進行補償和修復。Arete[4]公司在假設天空為亮度均勻,無多余飾物的情況下,利用Snell定律和Fresnel公式估計水面波形。Marina Alterman[5]等人提出使用Shack-Hartmann波前傳感器來復原瞬時波面等。該類方法對環(huán)境的要求較高,且非常依賴建模的準確性;二是利用統(tǒng)計學,對一段時間內的圖片序列進行處理,以期刨除掉波動的水面對圖像造成的影響。Efros[6]等提出了選擇視頻中最優(yōu)圖像塊的方法來獲得幾何失真最小的圖像。該方法先將圖像分成一個個子區(qū)域,再從一系列圖像中選擇每一個子區(qū)域失真最小、最清晰的圖像,然后將所有子區(qū)域拼接起來獲得失真較小的結果。李磊[7]等先使用B樣條圖像迭代配準消除視頻圖像中的嚴重扭曲畸變,然后使用幸運區(qū)融合算法從處理之后的圖像序列中合成失真較小的圖像等。此類方法需要獲取一段視頻流并且對每一幀圖像都做處理,時間復雜度高,數據量大,無法保證實時性。
傳統(tǒng)的非接觸測量方法往往因為被測物體的特征點不夠多而導致結果不準確,或者由于掃描速度慢而耗費大量的時間,結構光的出現彌補了傳統(tǒng)測量方法的缺陷。結構光三維測量具有精度高,速度快,適應性較強等優(yōu)點,近年來,基于結構光的三維測量獲得了大量的關注,已經有不少公司推出了一系列的產品,比較有名的有微軟的Kinect和Inter公司的實感深度攝像頭系列。
本算法在傳統(tǒng)圖像迭代配準的基礎上使用了結構光,針對傳統(tǒng)圖像迭代配準耗時長,需要一系列圖片等問題,提出了基于結構光的水下對空圖像恢復算法。利用主被動結合的方法,在保證復原效果的同時,又保證了處理速度。為水下對空成像圖像復原提供一種新的思路與嘗試。
圖像配準是指同一目標的不同圖像向參考圖像在空間位置上對準的方法。圖像配準技術主要包括以下四個部分:變換模型、特征空間、相似度測度、優(yōu)化策略。根據這四個部分,一般圖像配準可以分為以下五步:
1) 根據實際的應用場合選擇適合的變換模型。變換模型大致可以分為:剛性變換和非剛性變換;
2) 選擇合適的特征空間,可以是基于特征的也可以是基于灰度的;
3) 根據選取的變換模型的參數以及所選用的特征空間,確定參數的變換范圍,并使用最優(yōu)搜索策略去搜索;
4) 以相似度測度為依據在搜索空間按照最優(yōu)化準則進行搜索,尋找極大值,從而求解變換模型中的其余參數;
5) 將待配準圖像按照變換模型將像素逐一對應到參考圖像中,實現圖像的配準。
圖像配準首先使用在醫(yī)學領域,之后成為了跨介質成像扭曲圖像復原領域的主要應用方法。在水下對空成像中,它主要用于將嚴重的幾何失真圖像的幾何空間轉換到低失真圖像的幾何空間(標準圖像)。實際上,在跨介質水下對空成像中,無法得到標準圖像,因為標準圖像就是期望得到的圖像,只能通過取一段時間內拍攝圖片的平均值來近似標準圖像。
線性插值是一種簡單的插值方法,其原理是根據待插值點左右鄰近的兩個數據點來進行數值的估計,并根據到點的距離來分配權重,如圖1 所示,具體公式見式(1)。
圖1 線性插值
其中,y0,y1表示坐標為x0,x1時所對應的函數值,y表示坐標為x時,通過線性插值得到的函數值。
線性插值的值只由附近的兩個特征點所決定,雙三次插值則是指對待插值像素周圍最鄰近的16個特征點進行加權運算,從而得到待插值像素點的灰度值的方法。該方法對于二維圖像來說是對圖像在x方向和y方向分別進行三次插值。
定義如圖2所示的4*4控制點網格。
圖2 雙三次插值
設點a11(x,y),待插值點P相對于點a11的坐標為(u,v),控制點之間間隔距離sx,sy為1,即點P到點a00的水平距離為1+u,豎直距離為1+v,從而點a00對點P處灰度強度的影響系數為
k00=W(1+u)*W(1+v)
(2)
式(2)中,W為權重函數,k00表示控制點a00對待求點P的影響程度。同理,可知周圍最鄰近的16個控制點{a00,a01,…,a33}的灰度值對于待插值點P的影響程度,點P處的像素強度為周圍16個控制點影響程度與灰度值乘積的加權,具體可表示如下
(3)
kij表示控制點aij對點P的影響程度,Aij表示控制點aij的灰度值。
在圖像配準中,B樣條由于自身具有幾何不變性、凸包性、保凸性、對局部形變良好的支撐性等優(yōu)點,在醫(yī)學圖像和遙感圖像配準領域中一直都是首選的方法。同時,B樣條曲面重建也是工程應用中的關鍵技術與研究熱點,并且,B樣條在水下圖像處理方面也獲得了不錯的成效。雙三次B樣條插值即將(3)式中權重函數換作B樣條基函數
B0(t)=(1-t)3/6
(4)
B1(t)=(3t3-6t2+4)/6
(5)
B2(t)=(-3t3+3t2+1)/6
(6)
B3(t)=t3/6
(7)
其中0≤t≤1。綜上,B樣條插值公式可以寫成如下
(8)
aij表示控制點aij的坐標,sx,sy為控制點之間的距離。圖像配準的流程如圖3所示。
圖3 圖像配準流程圖
在圖像配準過程中,需要使用最優(yōu)化算法去尋找控制點的坐標,直到找到最優(yōu)控制點??刂泣c的變化情況如圖4所示。
圖4 控制點位置變化
傳統(tǒng)的迭代配準方法將一系列的扭曲變形幀的均值圖像作為圖像配準中的標準圖像,通過扭曲圖像序列的每一幀向參考圖像配準得到變形較小的扭曲圖像,再將得到的該圖像作為輸入圖像序列,再次進行處理,直到達到迭代次數。該方法的處理流程圖如圖5所示。
圖5 迭代配準流程圖
其步驟可以總結如下:
1) 輸入扭曲圖像序列I,設定迭代總次數N,記迭代次數K=0;
2) 求輸入圖像序列的均值圖像M,將M作為參考圖像,遍歷序列對單幀扭曲圖像與M進行B樣條配準;
3) 更新輸入序列I,令K=K+1,判斷是否已迭代完成,若沒有則轉到1),否則輸出矯正后畸形失真較小的幀序列及均值圖像。
該方法能較好的將扭曲的圖像序列進行校正,但是其存在獲取圖像序列耗時長,數據處理速度慢等問題,無法進行實時處理,使用性不高。
為了彌補迭代配準算法的不足,提出了一種基于結構光的圖像配準算法。記投射出去的結構光標準圖像為A,投射到波面的結構光光圖像為A′,空中景物I在A′上的投影為I′,攝像機拍攝的圖像為C,其中A,A′,I,I′,C皆用矩陣表示。則它們之間有著如下關系
I′=I×H
(9)
I′=I×H
(10)
C=(αA′+βB′)
(11)
H代表水-空氣界面對圖像造成的影響,α,β為權重系數。將A′ 與A進行配準,得到校正矩陣T。
A≈A′*T
(12)
在將得到的校正矩陣與拍攝圖像C進行配準,可得
R=C*T
(13)
將式(11)代入式(13)有
R≈(αA′+βB′)*T
(14)
由于結構光與圖像經過同一個波面的扭曲,可得
R≈αA+βB
(15)
自此,可近似得到未扭曲的圖像與未扭曲結構光的疊加。算法流程圖如圖6。
圖6 基于結構光的配準流程圖
具體步驟可以總結如下:
1) 輸入扭曲圖像C,標準結構光圖像A;
2) 對C進行圖像處理得到扭曲的結構光圖像A′;
3)將扭曲的結構光圖像與標準的結構光圖像A進行配準得到校正矩陣T;
4) 將校正矩陣T與輸入圖像C進行配準,得到校正后的圖像R。
為了驗證本文算法的可行性與有效性,在同樣的硬件條件下進行了仿真測試。迭代配準時使用的幀序列長度為61,圖片大小為253*293,配準6次。本文算法使用的圖片為圖像序列中隨機抽取的幀。仿真結果如圖7所示。
圖7 仿真結果對比
為了更加直觀的區(qū)分兩種方法的優(yōu)劣,本文使用圖像結構相似性(SSIM)來評價處理結果與原圖的相似性,SSIM越高,則說明兩張圖片之間越相似,復原的效果越好;使用處理時間來評價處理速度,時間越少,說明處理速度越快,實時性越好。對比結果如表1所示。
表1 結果對比
為了證明本算法的有效性,避免隨機干擾,仿真時從迭代配準算法的輸入圖像序列中隨機抽取兩幀作為本算法的輸入,得到上表結果。由上表可知,本文方法無論是在復原效果還是在時間效率上,都比迭代配準方法要好。特別是在時間效率上,耗費時間僅為迭代配準方法的1/220,極大的縮短了處理時間,離水下對空圖像實時恢復又近了一步。
實踐出真知,為了進一步驗證本文算法的實際可行性,在亞克力水缸里面模擬了水面有浪的情況,對拍攝圖像進行處理。實際處理結果如圖8所示:
圖8 實際處理效果圖
上述圖片大小皆為500*500,從拍攝圖像到得到處理結果,一共花費了4.195 s。觀察上圖(b),(c)中被紅框標記出的區(qū)域,可以發(fā)現本文算法能夠很好的恢復被扭曲的圖像,與上文的仿真結果一致。
本文提出了一種基于結構光的水下對空成像恢復算法,本方法能夠在單幅扭曲圖像的情況下從圖像中恢復被扭曲的圖像,具有很強的適應性,且能在很短的時間內恢復出質量高的圖像。與傳統(tǒng)的迭代配準方法比較,本文算法具有更好的視覺效果,與更高的處理速度,更加接近實時處理。在接下來的工作中,擬對算法進行改進,使得處理過程更加趨近于實時處理。