林前進,朱婧文,李大鵬,余 躍,邵艷明
(1.上海航天控制技術研究所,上海 201109;2.中國航天科技集團有限公司 紅外探測技術研發(fā)中心,上海 201109)
紅外熱成像技術廣泛應用于軍事、醫(yī)學和監(jiān)控安防等領域,隨著應用環(huán)境的日益復雜和應用技術的深化推進,對于紅外圖像顯示質量的要求也不斷提升[1-2]。但在圖像采集傳輸過程中,系統(tǒng)的成像質量受限于噪聲干擾,其中主要包括圖像探測器的暗電流噪聲、探測器信號放大電路中產生的噪聲(主要有熱噪聲、閃爍噪聲、光電二極管之間的感光不均勻噪聲),以及在成像電路中還有信號處理電路所帶來的噪聲等,如模擬前端電路中的熱噪聲、數字電路的量化噪聲等[3-5]。因此,通過有效的濾波技術抑制噪聲改善圖像顯示質量,是后續(xù)圖像處理分析不可或缺的環(huán)節(jié)。
常見的紅外圖像濾波方法主要分為空域方法和時域方法[6]。空域濾波主要是利用噪聲空間分布的隨機性,傳統(tǒng)的方法有均值濾波、高斯濾波等。這類空域濾波算法會導致圖像中邊緣和紋理的退化,導致表征圖像細節(jié)信息的關鍵梯度數據丟失,輸出圖像整體表現出模糊感[7-8]。非局部均值濾波算法通過噪聲估計,能較好地去除圖像中的高斯噪聲,并且能夠保持邊緣,但是算法本身計算復雜度高,囿于實時處理場合的使用[9]。區(qū)別于空域濾波對于單幀圖像的處理模式,時域濾波方法[7]包含限幅濾波、一階滯后濾波等,考慮了幀間圖像的相關性,具備更好的噪聲處理效果,但是針對運動場景,由于噪聲和場景變化的混疊導致目標產生偽影等時域模糊現象[10-11]。因此,為了兼顧保留幀間相關性和去除時域模糊問題,以運動補償的紅外圖像無限脈沖響應(Infinite Impulse Response,IIR)濾波算法[12]為基礎,引入閾值判定和幀間相關性信息保留等方法,實現圖像運動區(qū)域的檢測分類,根據區(qū)域屬性設置不同濾波參數進行濾波處理,有效濾除圖像噪聲,改善圖像顯示質量。
紅外圖像實時處理技術是決定眾多紅外探測器件和高性能處理算法走向軍事及現代化等領域工程應用的關鍵[13-15]。在實際工程需求中,隨著紅外圖像分辨率和圖像幀頻的不斷提高,對圖像處理系統(tǒng)的實時性提出挑戰(zhàn),單純的軟件系統(tǒng)對圖像進行實時處理已經顯得乏力,而通用處理器的串行執(zhí)行模式也制約了圖像處理的速度,限制了其應用性[16-17]。現場可編程門陣列(Field Programmable Gate Array,FPGA)器件具有并行性架構特點,滿足實時性高、可重配置性靈活以及開發(fā)周期短等優(yōu)勢,使其在眾多的圖像處理芯片中脫穎而出,得到了廣泛的青睞和使用[18-20]。因此,本文采用FPGA作為硬件平臺,實現紅外圖像運動補償濾波算法的硬件設計,結合流水線和串行移位方法加速算法的執(zhí)行效率,提高運動補償濾波算法的實時性,通過實驗數據表明運動補償濾波算法的有效性,方便進一步的圖像處理操作。
紅外圖像噪聲時域IIR 濾波器描述為
式 中:Px,y(t)為當前時刻原始圖像數據;Fx,y(t)為當前時刻濾波后圖像結果;Fx,y(t-1)為前一時刻濾波后圖像,下標x、y為圖像像素在二維圖上的橫縱坐標;a1、b1為濾波器影響因子。
b1影響因子比重越大,則濾波器截止頻率越低,平滑效果越顯著,但同時也會增大相位延時。除了b1影響因子之外,圖像中的高頻成分也會對輸出產生相位延遲,從而導致時域圖像模糊。高頻成分主要來自圖像運動區(qū)域,因此需要對圖像進行運動區(qū)域檢測并加以處理,從而在濾波基礎上有效抑制圖像模糊現象。因此引入差值背景圖[21-22]的方法對圖像區(qū)域進行區(qū)分。算法中將差值背景圖定義為當前時刻圖像與前一時刻濾波后圖像的差值絕對值,表示為Diffx,y(t)=|Px,y(t)-Fx,y(t-1)|。差值背景圖的波動主要受圖像運動和圖像噪聲兩部分因素影響,從而導致圖像幀間的差異變化,運動區(qū)域檢測如圖1 所示。

圖1 運動區(qū)域檢測Fig.1 Schematic diagram of the motion area detection
首先,通過對差值背景圖的均值和方差求取,根據高斯分布3sigma 原則計算閾值BGN,差值背景圖中像素與閾值BGN一一比較,如圖1(a)所示。圖中,超出閾值范圍的像素集合確定為圖像運動區(qū)域或者圖像噪聲部分。
其次,為排除噪聲因素的影響,引入圖像八鄰域判定方式實現對圖像運動區(qū)域的檢測,由于紅外圖像的動態(tài)噪聲多為白噪聲且像素之間的噪聲分布相互獨立,因此在某一像素大于閾值BGN 時,為了進一步區(qū)分為圖像運動區(qū)域或者圖像噪聲,需要對其所在的八鄰域進行判斷。
再次,由于閾值BGN 求取遵循3sigma 原則,像素點落入在BGN 閾值范圍內的概率公式為:,如圖1(b)曲線所示。
最后,因此八鄰域內存在3 個以上像素均大于閾值BGN 概率計算為3.2×10-9,這是一個極小概率事件,紅外噪聲在統(tǒng)計意義上無法滿足該判定條件,而圖像運動造成的差值背景圖變化具備很強的鄰域相關性,即使是弱小紅外目標也極易滿足八鄰域判定條件。
因此,通過八鄰域判定條件有效對噪聲和運動區(qū)域進行區(qū)分,如果像素點(x,y)在大于閾值BGN條件下,且其八鄰域存在3 個以上像素大于閾值BGN,則定義該點(x,y)為運動像素點。
在運動區(qū)域檢測基礎上,引入索引號圖標號設計,保留多幀紅外圖像數據的幀間相關性,進一步細分運動像素點。定義索引號圖Tx,y(t),cf為圖像幀標記即圖像幀數的計數值。如果差值像素點處滿足閾值判斷,且周邊八領域像素存在3 個以上像素滿足閾值判斷的條件,則將圖像幀標記cf更新至索引號圖Tx,y(t)中,否則保持前一幀相同數據。在更新完索引號圖后,此時定義索引號圖Tx,y(t)中所有值等于cf的像素集合映射為圖像運動區(qū)域,索引號圖中所有值等于cf-1、cf-2、cf-3 的像素集合映射為圖像中間區(qū)域,索引號圖中其他像素映射為圖像靜態(tài)區(qū)域,根據圖像區(qū)域的區(qū)分選取不同的濾波參數進行圖像處理。
通過式(1)可知,a1和b1作為濾波器影響因子,其中b1影響因子比重越大,則濾波器截止頻率越低,平滑效果越顯著,但同時也會增大相位延時。因此,針對圖像靜態(tài)區(qū)域,濾波器作用主要側重于圖像噪聲的濾除,因此提高b1影響因子的權值,提升圖像的平滑效果,故對圖像靜態(tài)區(qū)域設置參數為a1=0.125,b1=0.875。針對圖像運動區(qū)域,濾波器作用則弱化噪聲濾波效果,降低濾波帶來的相位延時,防止場景變化的時域偽影現象,故降低b1影響因子的權值,對圖像運動區(qū)域設置參數為a1=0.875,b1=0.125,而圖像中間區(qū)域則折中處理,選擇濾波參數為a1=0.25,b1=0.75。本文實現對圖像不同區(qū)域屬性的運動補償濾波處理,整體算法流程如圖2 所示。

圖2 算法流程Fig.2 Flow chart of the filtering algorithm
為了驗證本文算法的有效性,對多種圖像濾波處理算法進行對比實驗。以外場真實數據為基礎,通過Matlab仿真給出普通時域濾波、普通空域濾波與運動補償濾波的效果對比,如圖3 所示。綠色虛線方框標注圖像部分背景,綠色實線方框表示其放大效果圖,藍色方框標注圖像觀測目標。如圖3(a)和圖3(c)所示,普通空域濾波算法會導致圖像中邊緣和紋理的退化,目標細節(jié)信息的關鍵梯度數據丟失,呈現出模糊感。如圖3(a)和圖3(b)所示,普通時域濾波算法考慮了幀間圖像的相關性,具備良好的背景噪聲處理效果,但是針對運動場景,由于噪聲和場景變化的混疊導致圖像目標產生偽影現象。利用運動補償算法得到結果如圖3(d)所示,背景噪聲得到了有效抑制,同時并未引起明顯的偽影現象和運動模糊。

圖3 原圖下的濾波效果對比圖Fig.3 Comparison of filtering effect under the original image

表1 不同算法γ 細節(jié)表征Tab.1 Detail information representation of γ by different algorithms
基于FPGA 的紅外圖像運動補償濾波算法主要由BGN 閾值計算模塊、幀標記更新計算模塊和濾波輸出模塊組合實現。通過紅外線陣探測器實現紅外圖像的采集,模擬的紅外圖像信息經過AD 電路轉換成數字圖像輸入FPGA。
BGN 閾值計算模塊如圖4 所示,主要完成差值背景圖的均值運算和方差運算,設計采用流水線方法縮短存儲元件間的數據通路,進而提高時鐘頻率改善電路的吞吐能力。首先,對當前原始圖像數據和前一幀濾波圖像數據進行同步讀取,進行差值運算,并對差值運算結果進行絕對值求取,得到算法需要的差值背景圖;其次,所有絕對值運算結果跟隨時鐘節(jié)拍進行累加,對所有數據累加后完成差值背景圖的均值運算;最后,重新讀取絕對值運算數據,結合均值結果,完成差值背景圖的方差運算。方差運算部分以差值運算模塊、乘法運算模塊、數據累加求平均模塊和開方運算模塊組合實現,同理得到差值背景圖的方差值。根據“均值+3×方差值”范式計算閾值BGN。計算出來的閾值BGN 結果通過寄存器鎖存,直至下一幀圖像閾值計算后更新。

圖4 BGN 閾值模塊流水線計算Fig.4 Pipeline calculation diagram of the BGN threshold module
幀標記更新計算模塊如圖5 所示,將算法中分支判斷和循環(huán)部分通過硬件電路形式進行展開,主要通過比較器、加法器、復用器和RAM 內存組合設計完成。

圖5 幀標記更新計算Fig.5 Calculation diagram of the frame mark update module
圖中綠框Diff(x,y)點代表差值背景圖中某一像素,黃色部分表示像素點Diff(x,y)的八鄰域像素,分別表示為Diff(x-1,y-1)、Diff(x-1,y)、Diff(x-1,y+1)、Diff(x,y-1)、Diff(x,y+1)、Diff(x+1,y-1)、Diff(x+1,y)、Diff(x+1,y+1)。采用串行移位方法將八鄰域像素與閾值BGN 通過比較器判斷后并相加,再采用比較器判斷Diff(x,y)八鄰域內是否存在3 個以上像素超過閾值BGN。同時滿足Diff(x,y)大于閾值BGN 的條件,則將圖像幀標記cf更新寫入至對應索引號圖中,否則保持索引號圖中原始數據。在計算過程中,通過添加寄存器延遲模塊保持并行鏈路中的數據同步性計算。以此類推,將Diff(x,y)遍歷整幅差值背景圖,完成所有圖像數據的幀標記cf更新,但在遍歷過程中,由于圖像的邊緣像素缺失八鄰域數據,所以設計中對邊緣圖像數據的幀標記不作更新處理。
濾波輸出模塊如圖6 所示,由比較器、移位器、加/減法器、復用器和RAM 內存組合完成硬件設計。逐一讀取索引號圖中數據index_out,通過比較器與當前圖像幀標記對比,若兩者相等表示該像素處為運動區(qū)域,若兩者相差小于4 則表示該像素處為中間區(qū)域,否則便為圖像靜態(tài)區(qū)域,并根據不同的區(qū)域確定相應的濾波參數。考慮數據計算的同步性,當前圖像數據、上一幀濾波數據和索引號圖數據index_out 需要保持在同一使能下讀取操作。硬件設計中使用比較器和位合成器,形成使能控制信號以區(qū)分不同區(qū)域屬性。此外同步讀取原始圖像數據和上一幀圖像濾波數據,對三種區(qū)域屬性的濾波運算進行硬件設計展開,通過移位器操作代替片上乘法器操作,優(yōu)化資源使用。復用器模塊通過使能控制信號對濾波結果進行多路復用選擇輸出。更新后的濾波數據再次緩存至濾波圖像RAM 中,并為下一幀圖像處理做數據準備。

圖6 濾波輸出模塊Fig.6 Schematic diagram of the filter output module
選用Xilinx 公司的Kintex7 系列FPGA 來實現整體功能,具體型號為410tffg900-2。使用硬件設計語言在Vivado 2015 環(huán)境下完成整體功能的實現,并對邏輯的時序和功能進行仿真和驗證。FPGA 實現運動補償濾波過程采用流水線的工作方式,硬件系統(tǒng)通過紅外探測器采集256×256@100 Hz 的視頻流紅外數據作為待處理原始圖像數據,FPGA 主頻時鐘200 MHz,時鐘周期為5 ns。資源利用率見表2,該算法硬件設計占用資源較少,片上擁有較大的設計升級空間,滿足設計初衷。在紅外成像系統(tǒng)中,將原始圖像數據和濾波圖像分兩路同時輸出顯示,在工程試驗中原始紅外圖像數據與運動補償濾波后的實時畫面對比如圖7 所示。圖7(a)、圖7(b)和 圖7(c)表示 運動過 程中截取 第2 405、2 409 和2 417 三幀原始紅外圖像數據,圖像白點處為運動檢測目標,由于探測器性能、通道差異、前端電路以及工作環(huán)境等因素影響導致圖像背景上出現閃爍條紋狀噪聲,影響紅外目標的實時截獲和識別。圖7(d)、圖7(e)和圖7(f)表示經過運動補償濾波處理后對應的濾波圖像,在保留紅外目標特征的同時,持續(xù)濾除條紋噪聲,改善圖像背景,運動補償濾波處理,從而達到預期效果。

表2 算法硬件設計資源利用情況表Tab.2 Resource utilization table of the algorithm hardware design

圖7 運動場景下硬件實現結果對比圖Fig.7 Comparison diagram of the hardware realization results in motion scenes
按照流水線操作,對單幀圖像數據進行運動補償濾波處理需要的時間計算如下。算法的硬件設計過程分為BGN 閾值計算模塊、幀標記更新模塊和濾波輸出模塊,處理時間分別為tBGN、t幀標記更新和t輸出。通過算法流程分析,可以得知前一幀圖像數據的BGN閾值作用于當前幀圖像數據的幀標記更新模塊和濾波輸出模塊,故而在BGN 閾值計算模塊與幀標記更新模塊、濾波輸出模塊在單幀圖像周期內計算相互獨立,并行執(zhí)行邏輯運算。因此單幀圖像數據的算法處理時間最終為Max(tBGN,t幀標記更新+t輸出)。
在BGN 閾值流水線計算過程中,差值背景圖的平均值求取和方差求取部分相互依賴,以順序邏輯執(zhí)行,需要二次遍歷所有圖像數據。然后差值運算、絕對值運算、乘法運算以及閾值組合均需要一個時鐘周期,開方運算需要20 個時鐘周期,最終tBGN=(2×256×256+26)×5 ns=0.66 ms。在幀標記更新和濾波輸出模塊計算過程中,比較器、復用器、加法器、移位器以及位合成模塊均需要一個時鐘周期,同樣幀標記更新模塊以流水線結構完成差值背景圖的遍歷,此外索引號圖RAM 在幀標記更新模塊和濾波輸出模塊之間緩存時間為半幅圖寫入后讀出,最終t幀標記更新+t輸出=(256×256+256×128+10)×5 ns=0.5 ms。因此在該硬件設計中,對實時采集的紅外圖像的運動補償濾波算法處理時間是0.66 ms,而紅外圖像幀頻為100 Hz 即10 ms,設計裕量滿足系統(tǒng)實時性要求。
通過上述對濾波結果的對比、資源利用率的分析和處理時間的評估可以看出,運動補償濾波算法能夠在低延時的前提下,有效改善了紅外圖像質量,去除圖像中時域背景噪聲,提升紅外顯示系統(tǒng)整體性能。
本文通過紅外圖像閾值計算和索引號更新計算,實現圖像的運動區(qū)域檢測,以流水線、串行移位等設計方法在FPGA 上完成紅外圖像運動補償濾波算法的硬件設計。實驗結果表明:基于FPGA 的紅外圖像運動補償濾波算法能夠有效去除紅外圖像中的時域噪聲,并抑制運動模糊,明顯改善了紅外圖像顯示質量,硬件設計方法充分利用了FPGA的優(yōu)勢,易于實現,提升了算法的運行頻率,保證了FPGA 實時圖像處理能力,且FPGA 資源占用低,具備較強的工程應用價值。