李亞偉,張 弘,伍凌帆,楊一帆,陳 浩
(北京航空航天大學(xué) 宇航學(xué)院,北京 102206)
大氣湍流是大氣中的一種重要運動形式,尤其是當上層空氣溫度低于下層空氣溫度而形成對流條件時尤為明顯。大氣湍流對在空氣中傳播的聲波、光波和電磁波都有一定的干擾作用。在大氣湍流中,沿著傳輸路徑的光折射率會發(fā)生改變,這
會嚴重影響遠距離成像設(shè)備的性能[1-4]。大氣湍流會導(dǎo)致光學(xué)成像產(chǎn)生幾何失真、運動模糊(如果曝光時間不夠短)以及離焦模糊。
目前大氣湍流復(fù)原算法一般可分為4 類。第1 類是基于多幀圖像空間域重建的方法[5-9]。這種方法首先需要一種非剛性圖像配準技術(shù)來將每幀圖像與參考幀進行配準,并利用配準參數(shù)對變形區(qū)域進行校正,最后在貝葉斯圖像重建框架下重建銳利圖像。第2 類是基于“幸運”區(qū)域選擇與融合的方法[10-13]。湍流運動本身具有很大的隨機性,使得一些圖像或者圖像的一些區(qū)域受湍流影響較小而保持銳利。這類方法通過選擇每幀圖像中受影響最小的區(qū)域,并融合這些區(qū)域產(chǎn)生“干凈”圖像,所以也被稱為“幸運幀”或者“幸運區(qū)域”方法。該方法的一個問題是幸運區(qū)域出現(xiàn)的概率很低,需要大量(通常是數(shù)百個)圖像來創(chuàng)建一個銳利的圖像。局限性在于只適用于短曝光視頻以及單幀圖像的復(fù)原,而對于長曝光視頻,運動模糊使幸運的區(qū)域更加稀少,圖像的復(fù)原效果較差。第3 類方法是基于低秩矩陣分解的方法[14-16]。這類方法通過低秩矩陣分解將湍流序列分解為3 個組成部分:背景、湍流擾動和運動對象,來實現(xiàn)湍流復(fù)原的目標。在文獻[14] 中,作者將這個極其困難的問題簡化為核范數(shù)、F 范數(shù)和L1 范數(shù)的最小化問題并取得了不錯的效果。在以上3 類方法的基礎(chǔ)上,Zon 等人[17]提出了一種新的統(tǒng)一變分框架來從湍流退化的圖像序列中恢復(fù)清晰的圖像。該方法統(tǒng)一了多種傳統(tǒng)方法[9,18-20],有助于更深入地了解湍流退化問題。第4 類方法是基于深度學(xué)習的方法。Lau 等人[21]提出了一種分別使用變形校正網(wǎng)絡(luò)和去模糊網(wǎng)絡(luò)來處理湍流引起的圖像變形和圖像模糊的單幀人臉圖像復(fù)原算法。該方法通過2 種圖像恢復(fù)路徑來實現(xiàn)圖像畸變與圖像模糊的解糾纏,并從一個給定的退化圖像中生成2 個恢復(fù)圖像,融合函數(shù)結(jié)合了2 個恢復(fù)圖像的特征,重建了具有豐富細節(jié)的清晰圖像。
這幾類方法計算量龐大,計算過程復(fù)雜,并不適合在嵌入式平臺中實現(xiàn);同時這些方法或需要反復(fù)迭代,或需要提前獲取全部視頻信息,或是針對單幀圖像復(fù)原,并不能夠?qū)ν牧饕曨l進行實時處理。因此本文通過結(jié)合實際應(yīng)用,提出一種能夠在線實時處理的圖像湍流復(fù)原算法,并完成算法在基于現(xiàn)場可編程邏輯門陣列(FPGA)的嵌入式平臺上的實現(xiàn)。實驗結(jié)果表明,該算法可在嵌入式平臺中實時運行,且實現(xiàn)了顯著的湍流復(fù)原效果。
大氣湍流會導(dǎo)致圖像出現(xiàn)多種退化效果,其中最主要的是圖像的畸變與模糊。圖像的畸變?yōu)闀r間域的退化結(jié)果,而圖像的模糊為空間域的退化結(jié)果。圖像退化過程可以描述為
式中:yt、xt和nt分別表示在t時刻的模糊圖像、清晰圖像以及噪聲;i,j表示像素點坐標;kt表示t時刻的模糊過程;dt表示t時刻的畸變過程。本文主要針對以 上2 種退化過程分別進行處理。
考慮到大氣湍流的隨機性,圖像畸變在各個方向上都是隨機的,因此本算法采用多幀圖像平均的方法來消除視頻中的湍流畸變。均值圖像通常表示為由于直接采用多幀圖像求均值的方式計算復(fù)雜度高,需要緩存的圖像數(shù)據(jù)量大,因此本算法使用無限沖激響應(yīng)(IIR)濾波的方式求取均值圖像。IIR 濾波公式如下:
式中:yt表示t時刻的輸入圖像;表示t-1時刻的去畸變結(jié)果;表示t時刻的去畸變結(jié)果;a和b分別表示t時刻輸入圖像與t-1時刻處理結(jié)果的求和權(quán)重,且a+b=1。求和之后的圖像再次存入緩存中,用于下一幀圖像的計算。
由(2)式可知,t時刻的去畸變結(jié)果是t時刻及之前的輸入圖像的加權(quán)求和。由于引入了之前的圖像,所以在相機發(fā)生移動或者存在移動目標時,會出現(xiàn)圖像重影的現(xiàn)象。a越小,b越大,則圖像重影效應(yīng)越大,同時去畸變能力也越強;a越大,b越小,則圖像重影效應(yīng)較小,但去畸變能力也越弱。因此,a、b值需要根據(jù)相機移動速度和視場大小確定,具體取值見表1。其中,在靜止場景中,根據(jù)文獻[22]選取a=0.02,b=0.98,保證在不同湍流強度下的圖像穩(wěn)定。其余參數(shù)通過實測獲得。
表1 不同條件下a、 b的取值Table 1 Values of aand bunder different conditions
在處理圖像模糊的問題上,本方法采用傳統(tǒng)的維納濾波算法進行模糊去除。該算法建立在圖像
和噪聲都是隨機變量的基礎(chǔ)上,目標是找到估計圖像使之與真實圖像之間的誤差最小,因此也被稱為最小均方誤差濾波算法。圖像的模糊模型由(3)式給出:
基于FPGA的實時大氣湍流圖像復(fù)原系統(tǒng)設(shè)計方案如圖1所示。本方案采用的主芯片為Xilinx公司的XC7K325T。XC7K325T擁有50 950 個Slices、326 080 個邏輯單元,最大4000 kB 分布式隨機存取儲存器(RAM)及445 kB 塊RAM,適合完成高分辨率圖像的編解碼、緩存以及并行處理等操作。除此之外,該系統(tǒng)還包括SDI 視頻編解碼模塊、通信模塊、數(shù)據(jù)緩存模塊以及時鐘、復(fù)位、供電、JTAG 調(diào)試等模塊。SDI 視頻編解碼模塊采用Semtech 公司的GS2972/GS2971A 芯片,最高支持2.97 Gb/s 的傳輸速率。外部大容量存儲器為2 片4 Gb 16bit DDR3 存儲器,工作在1600 MHz 的時鐘頻率下,數(shù)據(jù)傳輸速率高達6.25 GByte/s;
圖1 基于FPGA的實時大氣湍流圖像復(fù)原系統(tǒng)方案Fig.1 Scheme of real-time atmospheric turbulence image restoration system based on FPGA
系統(tǒng)從光機獲取視頻信號,通過數(shù)字分量串行接口(SDI)解碼芯片進行解碼,將圖像數(shù)據(jù)傳到FPGA 進行實時處理,處理之后通過SDI 編碼芯片編碼輸出。上位機通過串口指令輸出光機的實時運動信息以及運動目標信息。根據(jù)光機的運動信息以及運動目標信息,確定圖像IIR 濾波的權(quán)重。
視頻信號通過解碼器解碼進入FPGA 之后,首先與DDR3 中緩存圖像進行時間域的IIR 濾波操作。IIR 濾波需要的權(quán)重值由系統(tǒng)當前的狀態(tài)決定。本系統(tǒng)中,串口通信主要實現(xiàn)控制指令接收以及視頻狀態(tài)信息接收的功能。視頻狀態(tài)信息主要包括當前光機的運動速度,視場大小以及目標檢測系統(tǒng)反饋的運動目標位置及大小。在獲得當前光機的運動速度以及視場大小后可以根據(jù)表1選擇不同的權(quán)重值進行圖像的時間域IIR 濾波操作。同時,根據(jù)目標檢測系統(tǒng)反饋的運動目標位置及大小信息,可以對當前輸入圖像的運動目標
區(qū)域進行緩存,在IIR 濾波之后的圖像中進行補償,相當于運動目標區(qū)域不進行濾波,避免了在運動目標區(qū)域出現(xiàn)重影的問題。整體流程如圖2所示。
圖2 基于FPGA的圖像畸變?nèi)コ惴鞒虉DFig.2 Flow chart of image distortion removal algorithm based on FPGA
在得到圖像濾波模板kwiener之后,即可通過空間域的模板濾波進行圖像去模糊處理。在本系統(tǒng)中,使用9×9的濾波模板。因為9×9的濾波需要同時對9 行的數(shù)據(jù)進行操作,而圖像數(shù)據(jù)是逐行輸入的,所以需要對圖像數(shù)據(jù)進行緩存。在本系統(tǒng)中,開辟了10 行圖像數(shù)據(jù)的片上BRAM 緩存區(qū)(bram1~bram10),其中bram1~bram9 的9 行數(shù)據(jù)與濾波模板進行9×9空間濾波,產(chǎn)生第n行數(shù)據(jù)的去模糊結(jié)果。bram10 用于接收新輸入數(shù)據(jù),接收完畢與bram2~bram9 數(shù)據(jù)組成新的9 行待濾波圖像塊進行空間濾波操作,bram1 用于接收新輸入數(shù)據(jù),以此循環(huán)執(zhí)行直到一幀圖像結(jié)束。整體流程如圖3所示。
圖3 基于FPGA的圖像實時空間濾波算法流程圖Fig.3 Flow chart of image real-time spatial filtering algorithm based on FPGA
目前,湍流圖像復(fù)原算法的評價指標包括定性評價和定量評價。為了對本文算法的湍流圖像復(fù)原效果進行準確評價,我們在廣泛使用的湍流評價數(shù)據(jù)集上進行了定性和定量測試,定性評價結(jié)果如圖4~圖6所示。
圖4 湍流圖像復(fù)原效果對比圖Fig.4 Comparison of restoration effect of turbulence images
圖4~圖6 分別展示了3 個經(jīng)典場景(building/chimney/car)下的湍流圖像復(fù)原效果。圖中,第1 行展示的是全圖效果,第2 行是局部細節(jié)效果。從圖4 中可以看出,陽臺、窗戶、樹叢等區(qū)域的幾何畸變得到了很大程度的改善,細節(jié)信息得到提升,雖然在某些局部區(qū)域銳度比方法[8] 的結(jié)果低,但產(chǎn)生的額外噪聲也比方法[8]少。從圖5、圖6中可以看出本文方法的復(fù)原結(jié)果在細節(jié)恢復(fù)方面比方法[8]更加有效。
圖5 湍流圖像復(fù)原效果對比圖Fig.5 Comparison of restoration effect of turbulence images
圖6 湍流圖像復(fù)原效果對比圖Fig.6 Comparison of restoration effect of turbulence images
定量評價采用峰值信噪比作為評價指標,結(jié)果如表2所示。
由表2 可得,本文算法比輸入的湍流圖像在峰值信噪比上有很多提升,同時相比于方法[8],部分指標也有提升。
表2 湍流圖像復(fù)原效果定量評價結(jié)果Table 2 Quantitative evaluation results of restoration effect of turbulence images
除此之外,本系統(tǒng)還在外場進行實地測試,結(jié)果如圖7所示。圖7 中,第1 行為原始輸入圖像,第2 行為復(fù)原算法處理之后的圖像。從圖7 可知,大視場和中視場下湍流效應(yīng)不明顯,所以圖像復(fù)原算法的效果也不明顯。在小視場下,湍流效應(yīng)明顯,原始輸入圖像中屋頂邊界、旁邊的樹木都出現(xiàn)了嚴重的畸變,在湍流復(fù)原圖像中,屋頂邊界、旁邊的樹木邊緣整齊,細節(jié)清晰。證明本文算法具有很強的實際應(yīng)用價值。
圖7 湍流圖像復(fù)原實測效果圖Fig.7 Effect pictures of turbulence image restoration in actual scene
本文算法所用FPGA的資源占用率如表3所示。
表3 FPGA 資源占用率Table 3 FPGA resource occupancy rate
根據(jù)大氣湍流運動對遠距離成像在時間域和空間域的退化作用,本文提出了一種分別解決圖像畸變和圖像模糊的實時湍流圖像復(fù)原算法。首先提出一種IIR 濾波方式的連續(xù)幀加權(quán)平均算法,用于去除湍流引起的圖像畸變。同時利用當前光機的運動狀態(tài)信息和運動目標信息,調(diào)整圖像加權(quán)的權(quán)重和進行運動目標補償,來避免因光機移動或者目標移動而出現(xiàn)的重影現(xiàn)象。其次,將傳統(tǒng)頻域的維納濾波算法轉(zhuǎn)換為空間域的模板濾波算法,利用提前估計的濾波模板,進行圖像的去模糊操作。本文算法計算量小,可以在基于FPGA的硬件系統(tǒng)中實時實現(xiàn)。實驗證明,本文算法在仿真測試和實際測試中均具有顯著的湍流圖像復(fù)原效果。