于子涵,李凱峰,黃靜穎,黃成章
(華北光電技術研究所,北京 100015)
自然界中的一切物體都在發射紅外線,利用紅外探測儀器可以通過測量目標與背景之間的紅外線差,將肉眼不可見的紅外熱輻射轉換為紅外圖像。由于物體的熱輻射現象是自發且不間斷的,所以紅外圖像在夜間成像方向得到廣泛應用[1]。同時由于紅外成像具有很強的穿透能力,也廣泛應用于軍事領域和民用探測領域。利用紅外圖像進行對空的目標探測,是紅外圖像應用的一個重要領域。隨著紅外圖像分辨率的不斷發展,在目標檢測領域,采用高分辨率的圖像能夠獲得更好的檢測效果,但高分辨率同時也意味著數據量和運算量極大增加,基于這種現狀,對目標檢測算法進行硬件移植是紅外目標檢測工程化應用的前提。
FPGA(Field Programmable Gate Array)即現場可編程邏輯門陣列,作為專用集成電路領域的一種半定制電路,具有設計靈活、適用便捷和高兼容性等特點。在算法的硬件移植領域,FPGA因其強大的并行運算能力,獲得了較為廣泛的應用和發展。在一個圖像處理系統中,為了提高圖像處理系統的實時性,可以利用FPGA完成圖像預處理工作。高分辨率紅外目標檢測算法采用濾波等算法操作,存在大量的并行操作,適合移植到FPGA中進行硬件加速,從而可以提高圖像處理系統的運算速度。
本文基于FPGA架構,研究了實時紅外圖像處理技術,主要包括算法設計和硬件邏輯設計兩部分的研究內容。算法設計部分進行了1280×1024紅外圖像的目標檢測算法相關工作研究,包括中值濾波,卷積濾波,頂帽濾波,圖像二值化,圖像合并等算法;硬件邏輯設計部分包括串口通信協議、紅外圖像解析和目標檢測算法的硬件移植加速等內容。
基于紅外圖像的目標檢測算法主要分為基于濾波的算法、基于視覺系統的算法、基于頻譜殘差的算法、基于稀疏表示的算法和基于塊圖像的算法等。考慮到高分辨率紅外目標檢測算法在硬件移植中的資源占用問題,本次研究主要針對基于濾波的算法進行研究。
本次紅外圖像目標檢測算法主要包含中值濾波、卷積濾波和形態學濾波等,整體算法流程如圖1所示。

圖1 目標檢測算法流程圖
中值濾波最早由Tukey提出,是一種基于統計排序理論的噪聲平滑抑制方法,屬于非線性的信號處理技術[2]。中值濾波的基本運行步驟是對濾波窗口區域內的值排序取中值,利用中值將窗口中心位置的值代替。在一維的情況下,中值濾波是一個含有奇數個像素的窗口,處理后,將窗口正中的像素灰度值用窗口內像素灰度值的中值來代替,算法實現示意圖如圖2所示。

圖2 中值濾波示意圖
由于中值濾波運算過程簡單,運算速度快,且對疊加噪聲具有較好的濾除效果,中值濾波被廣泛應用于二維數字圖像處理方面。中值濾波在處理噪聲時可以較好地保護圖像的細節信息,適用于處理線性濾波無法處理的數字圖像處理領域。
卷積是一種運算方法,卷積濾波是利用卷積核和卷積運算的原理構成圖像濾波器,對圖像進行特征提取的操作。卷積濾波的處理過程就是圖像對應位置的像素和卷積核模板對應位置參數乘積求和,如圖3所示。不同卷積核模板對圖像的特征提取效果不同,常見的卷積濾波核可以實現高斯平滑、圖像銳化和邊緣提取等功能。本次研究為了提取天空背景下的目標,采取圖像銳化的相關卷積核進行處理,強化目標與背景之間的差異,進一步突出目標位置。

圖3 卷積濾波示意圖
形態學濾波是基于數學形態學思想的一種非線性濾波方法。數學形態學的基本思想[3]是用具有一定形態的結構元素去度量和提取圖像中的對應形狀以達到對圖像分析和識別的效果。形態濾波基于圖像的幾何特征[4],用預先定義好的模板對圖像進行匹配,提取圖像信息、抑制噪聲,解決圖像濾波時物體邊緣信息丟失問題。數學形態學是由一組形態學的代數運算子組成,它的基本運算主要有4個:膨脹、腐蝕、開運算和閉運算[5]。形態學濾波的處理性能極大取決于運算模板和形態學運算類型的選擇,本次圖像預處理采用膨脹運算、腐蝕運算和開運算來對紅外圖像進行處理,具體處理流程如圖4所示。

圖4 形態學濾波示意圖
形態學基本運算:
(1)膨脹
用模板b對輸入圖像f進行灰度膨脹,其定義為:
(f⊕b)(s,t)=max{f(s-x,t-y)+b(x,y)|(s-x),(t-y)∈Dy和(x,y)∈Db}
(1)
其中,Dy和Db分別是f和b的定義域。
(2)腐蝕
用模板b對輸入圖像f進行灰度腐蝕,其定義為:
(f?b)(s,t)=min{f(s+x,t+y)-
b(x,y)|(s+x),(t+y)∈Dy和(x,y)∈Db}
(2)
其中,Dy和Db分別是f和b的定義域。
(3)開運算和閉運算
用模板b對圖像f進行開運算記為:
f°b=(f°b)⊕b
(3)
用模板b對圖像f進行閉運算記為:
f·b=(f⊕b)?b
(4)
開啟和閉合相對于函數的補和映射是對偶的,對偶關系可寫為:
(f·b)c=fc
(5)
對高分辨率的紅外目標檢測的工程化應用采用FPGA的形式來實現。整體硬件平臺包含前端接口板和信號處理板兩塊FPGA,整體系統架構如圖5所示。前端接口板主要用來接收紅外成像設備采集到的紅外圖像,并且按照固定格式打包生成數據包,最后將打包好的圖像數據通過串口通信協議傳輸到信號處理板卡。利用兩個板卡,模仿真實的相機拍攝視頻傳輸場景。由于數據在傳輸中以數據流的形式存在,兩塊板卡間需要實現高速通信,來保證系統的實時性,所以采用SRIO串口通信協議對數據進行傳輸。

圖5 紅外圖像目標檢測硬件系統架構示意圖
SRIO(Serial Rapid I/O)是種面向嵌入式系統開發提出的一種高速互聯技術,是面向串行數據的串行Rapid I/O接口協議[6]。SRIO包含三層協議,即邏輯層緩沖層和物理層,支持多類事務。此次研究采用SRIO接口進行數據接收,SRIO傳輸鏈路以數據包的形式傳輸數據,為了提高SRIO鏈路數據包的傳輸效率,在數據發送過程中采用包頭信息較短的SWRITE事務,設置其有效字節為256B bit,在傳輸過程中,需要為每個包設置特定的包頭標志和數據長度,確保紅外視頻數據以行為單位進行連續發送。在每一幀圖像的起始設置幀頭標志位,確保數據解析的起始位置正確。圖5為紅外圖像目標檢測硬件系統架構示意圖。
信號處理板卡是高分辨率的紅外目標檢測的主要實現平臺,首先對傳輸來的數據包進行解析和時序恢復,然后對恢復好的圖像數據進行目標檢測算法處理。信號處理板卡接收到的圖像數據是以數據包的形式傳輸的,為了方便后續圖像處理工作,需對圖像數據包進行解析,將數據包恢復為數據流的形式。通過SRIO接口接收到圖像數據包,利用幀頭標志位為關鍵字進行圖像解析。本次研究中一幅圖像的大小為1280×1024,在解析圖像模塊的構造時,采用有限狀態機的方法對數據包解析邏輯進行搭建,設置包頭和幀頭解析條件,利用有限狀態機的狀態跳轉,完成工作模式的切換,解析圖像數據。同時,由于前端傳輸來的數據包存在每行數據間隔時間不等的現象,為了保證后續算法數據對圖像數據的運算邏輯正常運行和整體系統幀頻的穩定,在邏輯構造時采用過一級FIFO的方法,為數據設置固定的時間間隔,從而將原始圖像數據包恢復為穩定的圖像數據流。在相關FIFO的編寫中,也通過有限狀態機實現對FIFO讀寫的控制,通過狀態機內部計數完成狀態跳變和圖像延遲讀取功能,具體實現方法如圖6所示。

圖6 圖像解析模塊示意圖
本次紅外圖像預處理研究中算法的第一步就是中值濾波。中值濾波需要實現一個3×3的窗口在圖像上進行滑動的效果,在硬件邏輯實現中,首先利用移位寄存器將圖像數據的前兩行進行寄存,在下一行數據到來的時候,保證三行數據對齊,模擬窗口對圖像數據進行比較運算,得出窗口內數據的中值。移位寄存器的移位操作可以等同于中值濾波中窗口的滑動操作,通過這樣的方式,FPGA可以同時并行計算圖像數據中三行的數據結果,同時產生的輸出結果也以流水的形式輸入后續模塊。
對于高分辨率的紅外圖像進行處理,需要的移位寄存器數量較多,為避免在數據緩存時因為移位寄存器的使能信號而產生時序問題,需要對使能信號進行數據復制的操作。在整體目標檢測算法的流程中,中值濾波計算出的結果需要驅動卷積濾波和形態學濾波兩個算法模塊,為了避免因為同一信號驅動模塊數量過多,導致高扇出的時序問題,在FPGA邏輯設計中添加了數據復制模塊,在模塊內部對中值濾波輸出的數據進行復制,分別對后續模塊進行驅動,保證整體算法邏輯在FPGA中不發生高扇出問題。
對中值濾波后的圖像同時進行卷積濾波和形態學濾波。在卷積濾波中,采用與中值濾波相似的方法,采用移位寄存器對數據進行寄存,需要緩存前幾行行數據,與輸入的最后一行數據對齊后,利用對應的卷積模板對數據進行卷積濾波。卷積濾波需要對數據進行乘加操作,在算法的硬件設計時,將所有乘法操作并行處理,對乘法結果的加法操作進行正負模板分開并行處理,采用三級流水線的方法,計算卷積濾波最后的結果,圖7為濾波算法硬件移植示意圖。

圖7 濾波算法硬件移植示意圖
在形態學濾波中,首先對數據進行膨脹操作,然后對數據進行腐蝕,后續進行二次膨脹和開運算。在形態學濾波中也采用與卷積濾波相似的方式,利用寄存器對數據進行寄存對齊,再通過對應的模板進行相應的濾波操作,最后獲得形態學濾波的結果。
在圖像經過卷積濾波和形態學濾波后,利用設置好的閾值對處理好的圖像進行二值化操作。后續需要對卷積二值化和形態濾波二值化的圖像進行合并,由于兩個濾波算法在FPGA中的計算存在不同的延時,通過利用移位寄存器將數據對齊,將對應位置進行與操作,對數據進行合并,合并后的圖像在視覺上對目標物體的位置呈現高亮顯示。同時將對應位置的坐標存入RAM中,方便后續對目標進行識別跟蹤等處理。
在FPGA的整體設計中,為了實現圖像的實時運算,在所有算法的設計階段,全部采用數據流水的形式進行傳輸和運算,保證在同一時刻,FPGA并行處理所有算法模塊的數據和計算,充分利用FPGA并行運算的優勢,對高分辨率紅外目標檢測算法實現硬件加速,實驗結果證明了這種設計方法可以實現1280×1024紅外圖像的實時目標檢測運算,具有較大的工程化應用前景。
在整體預處理算法仿真階段,采用MATLAB平臺進行仿真實驗。MATLAB是一款強大的數學軟件,廣泛用于數據分析、無線通信、深度學習、圖像處理和計算機視覺等領域。MATLAB將矩陣計算、科學數據可視化以及建模和仿真等許多功能集成在一個視窗環境中,為算法設計提供了一種全面的解決方案,在很大程度上擺脫了傳統非交互的編輯方法。本次算法實驗采用MATLAB2017a進行算法仿真運行,運行平臺為Windows7,電腦處理器為intel core i7-6700。經過統計,預處理算法對一幅紅外圖像進行處理,需要時間為3.752993 s。
本次研究采用的FPGA開發板芯片為xc7vx690,在硬件開發板卡中,預處理算法對一幅紅外圖像進行處理需要的時間為22 ms,符合紅外圖像處理算法的實時性要求,與MATLAB平臺的處理速度進行對比,大幅提升了紅外圖像目標檢測的速度。在FPGA設計中,各個模塊采用流水的方式進行運算,首先經過邏輯仿真對硬件邏輯進行驗證,驗證通過后,開展FPGA板卡的硬件驗證工作,目標檢測算法相關信號的波形如圖8所示,包含圖像數據、中值濾波、卷積濾波、形態學濾波和圖像融合的運算結果,目標檢測算法在FPGA硬件上占用的資源如圖9所示。

圖8 硬件運算示意圖

圖9 硬件占用資源示意圖
利用實驗室環境模擬空中目標,對高分辨率紅外目標檢測算法進行驗證。通過對比FPGA處理后的圖像數據與MATLAB處理后的圖像數據,對目標檢測算法的硬件移植進行評價。對比結果如圖10,其中(a)是MATLAB處理的圖像結果,(b)是將FPGA處理結果保存進行繪圖得出的圖像,對比結果完全一致。證明本次高分辨率紅外目標檢測算法在FPGA上的算法硬件移植工作完成度較高,能夠達到工程化應用的水平。

圖10 實驗結果示意圖
本文基于FPGA實現高分辨率紅外目標檢測算法,并利用硬件運算的并行特性,使目標檢測算法在實際運算時具備實時性的條件,極大提升工程應用的前景。通過設計流水的運算方式,使FPGA中各個圖像處理模塊能夠并行運算,利用像素點計數對圖像數據進行對齊和重構。實驗證明,本次研究不僅能夠很好的完成高分辨率紅外目標檢測的工作,并且可以利用FPGA并行運算的特性,對算法進行硬件移植,使目標檢測系統具備實時性,對于在FPGA方面的學習和研究具有較大的參考意義。