摘要:由于紅外圖像預處理算法自身的復雜性,使得紅外圖像在DSP中的預處理時間較長。針對這一問題,提出一種基于FPGA的實時紅外圖像預處理方法。該方法采用了流水線技術來并行完成非均勻校正、空間濾波、直方圖統(tǒng)計等多個紅外圖像預處理算法,對系統(tǒng)結構進行了改進和優(yōu)化。經過實驗測試驗證,該方法合理可行,能夠實時高效地完成紅外圖像預處理任務。與DSP圖像預處理系統(tǒng)相比可以節(jié)約將近50%的處理時間。
關鍵詞:FPGA;紅外圖像預處理;非均勻校正;空間濾波;直方圖統(tǒng)計
0 引言
在紅外圖像系統(tǒng)設計中,多采用高速DSP+FPGA的方式對紅外圖像進行處理。在早期的設計中,DSP承擔了大部分的圖像處理工作,FPGA只做一些邏輯譯碼和簡單運算的功能。但DSP運算是相當耗時的,當在圖像較大、實時性要求較高的場合,用DSP進行處理就有相當的難度了。隨著工藝的發(fā)展,FPGA片內邏輯資源和處理速度的提高,將一部分圖像處理算法移植到FPGA中,可采用流水的處理方式,只占用很少的處理時間,能夠大大降低系統(tǒng)對于DSP的負擔。
本文介紹一種紅外圖像預處理的方法,將圖像非均勻校正、空間濾波、直方圖統(tǒng)計算法移植到FPGA中實現,DSP只完成控制和簡單判斷的功能,有效的提高了系統(tǒng)的實時性。
1 總體設計
結合FPGA和DSP處理算法的各自特點,本方法中將非均勻校正、空間濾波、直方圖統(tǒng)計等功能在FPGA中實現。
首先,紅外圖像數據以像素為單位按照流水的方式進入到非均勻校正模塊中進行紅外圖像的非均勻校正;之后,校正后的圖像進入到空間濾波模塊中進行空間濾波處理;空間濾波后的圖像數據,被送到直方圖統(tǒng)計模塊進行處理,同時濾波后的圖像數據也被存儲在FPGA內部雙口RAM中;接下來,直方圖統(tǒng)計結果也將被存儲在FPAG內部雙口RAM中。最終,圖像預處理后的紅外圖像數據及直方圖統(tǒng)計結果分別存儲在FP GA內部雙口RAM的不同區(qū)域中。DSP按照預先設定的時序將預處理結果從FPGA內部雙口RAM中讀取出來,并進行后續(xù)處理工作。
同時DSP通過控制指令對整個預處理流程進行控制。
總體設計如圖1所示。
下面將對非均勻校正、空間濾波、直方圖統(tǒng)計的具體設計方法進行闡述。本文中所使用的輸入圖像為256x256x16 b數據。
1.1 非均勻校正模塊設計
在本方法中,紅外焦平面成像非均勻校正采用目前應用較廣的兩點校正法,計算公式如下:
Gij和Oij分別是二點校正法的增益校正系數和偏置校正系數,yij為校正后的輸出。二點校正法是利用焦平面各陣列元在溫度不同的兩個均勻輻射的黑體(高溫TH和低溫TL)下的響應輸出計算出Gij和Oij,從而實現非均勻性校正。
首先將預先計算好的系數Gij和Oij存入FLASH中,系統(tǒng)上電后先將系數搬移到外部的SRAM中,再通過FPGA讀取,完成非均勻校正的乘加功能。
FPGA算法結構如圖2所示。
為了在20MHz時鐘的一個周期內能夠處理完一個像素的非均勻校正算法,以保證能夠流暢的進行,將數據同步時鐘clk_20M通過DCM時鐘管理器,倍頻到60 MHz,以60 MHz時鐘進行乘加、緩存,以達到實時處理的目的,省去了對原始圖像的緩存。
1.2 空間濾波模塊設計
在圖像生成和采集的過程中,會疊加各種各樣的噪聲,這些噪聲會使圖像質量變差,必須對圖像信號進行預處理,抑制背景噪聲,增加目標強度,從而提高圖像的信噪比,為后續(xù)處理奠定基礎。在本方法中,采用均值濾波的方式,FPGA算法結構如圖3所示。
為了實現流水處理,需要3x3的窗口模版中的3行和3列的數據能夠在一個同步時鐘輸出,在3x3窗口模版的設計中利用了兩個FIFO和9個寄存器來實現數據的緩存,其FPGA算法結構如圖4所示。
由于均值濾波需要3行的數據,由ISE的IP核生成FIFO_1和FIFO_2,寬度為16 b,深度為256,緩存兩行數據。利用9個寄存器Reg_1到Reg_9的緩存值Q11~Q13,Q21~Q23,Q31~Q33,進行均值濾波,得到濾波后的圖像數據data_out,計算公式如下:
1.3 直方圖統(tǒng)計模塊設計
在實時圖像處理中,直方圖統(tǒng)計是多種空間域圖像處理的基礎。圖像的灰度直方圖就是圖像中像素分布在灰度等級上的概率密度,它反映不同灰度級的像素在各自灰度級別上個數之和。在本方法中,利用對空域濾波后的圖像進行直方圖統(tǒng)計,統(tǒng)計結果可作為動態(tài)門限設置的基礎。
直方圖統(tǒng)計涉及到地址索引值累加的功能,利用RAM、有限狀態(tài)機和DCM模塊實現,RAM由ISE中的IP核產生,數據寬度為16 b,深度覆蓋所有像素灰度值,深度值為16 384,由有限狀態(tài)機實現讀寫信號的控制功能,DCM設置4倍頻,直方圖統(tǒng)計的FPGA實現結構框圖如圖5所示。
有限狀態(tài)機實現整個直方圖統(tǒng)計的信號控制功能,在實時處理中需要進行流水處理,將輸入的20 MHz時鐘信號倍頻到80 MHz,有限狀態(tài)機工作在80 MHz。保證一個周期能夠處理完一個像素的統(tǒng)計工作,每個輸入信號有4個處理狀態(tài),分別是IDLE,READ,SUM和WRITE,狀態(tài)轉換圖如圖6所示。
各狀態(tài)工作如下:
IDLE:初始化各信號,等待使能信號有效,輸出讀使能信號,將像素灰度值輸出給RAM的地址線,并轉換到READ狀態(tài)。
READ:讀取RAM輸出的數值,并轉換到SUM狀態(tài)。
SUM:對讀取值加1,轉換到WRITE狀態(tài)。
WRITE:將累加后的值寫入RAM中,轉換到IDLE狀態(tài)。
2 應用
在TI公司TMS320C6416T,CPU頻率為800 MHz的系統(tǒng)中運行整個處理算法須在3 ms以上,本設計采用Xilinx公司的Virtex-4系列現場可編程門陣列(FPGA)實現,使用流水線的處理方法,只緩存幾行圖像數據的延時,從而在保證了圖像處理質量的同時,提供了系統(tǒng)的實時性。圖7,圖8為原始圖像和預處理后圖像的對比。
3 結語
本方法能夠有效地對紅外圖像進行非均勻校正、空域濾波、直方圖統(tǒng)計等圖像預處理工作。與采用DSP進行處理的系統(tǒng)比較,能夠節(jié)約將近50%的處理時間。使用FPGA實現的實時圖像預處理系統(tǒng)具有廣泛的應用價值。