摘 要: 闡述了灰度形態(tài)學濾波的原理和基本操作,給出了3×3結構元素灰度形態(tài)學濾波器的硬件結構,詳細描述了該濾波器在Xilinx公司的XC2S400E芯片上實現的過程和仿真的方法,并說明了需要注意的問題,。
關鍵詞: 圖像處理 形態(tài)學濾波 FPGA
數學形態(tài)學濾波是數字圖像處理和計算機視覺研究中的一種新方法,已廣泛應用于計算機視覺、圖像處理,、視覺檢測,、紋理和場景分析等方面,。上述這些應用都有時間限制,要求實時處理,。數學形態(tài)學濾波作為一種非線性濾波技術,其理論基礎是集合論,具有天然的并行結構,便于硬件電路實現[1],。但形態(tài)學濾波的硬件實現是以犧牲硬件資源為代價的。對于一幅較大的灰度圖像,如果采用常規(guī)器件實現,硬件結構會相當龐大,。
隨著微電子技術的發(fā)展,現場可編程門陣列(Field Program Gates Array,FPGA)器件已經朝著高密度,、低壓、低功耗的方向發(fā)展,。由于FPGA芯片門數不斷增加,PLL/DLL、Distributed RAM,、Block RAM等片內資源以及設計所需的IP庫越來越豐富,所有這些使得基于FPGA的數學形態(tài)學濾波器實現成為可能,。本文綜合考慮了數學形態(tài)學濾波器的并行特性和FPGA器件的特點,在Xilinx公司的XC2S400E芯片上實現了灰度圖像的開操作形態(tài)學濾波器。
1 灰度形態(tài)學濾波基本知識[2]
數學形態(tài)學是一種數字圖像處理的新方法,其研究的主要目的在于描述圖像的基本結構和特征,主要內容是在積分幾何和隨機集合論的基礎上,設計一整套變換,、概念和算法,以描述圖像的各個象素之間的關系,。它的基本思想是用具有一定形態(tài)的結構元去度量和提取圖像中的對應形態(tài)以達到對圖像分析和識別的目的,。形態(tài)學的應用可以簡化圖像數據,保持它們基本的形狀特性,并除去不相干的結構。
形態(tài)學的基本運算有4種:膨脹,、腐蝕,、開和閉?;叶葓D像的腐蝕和膨脹過程可直接從圖像及結構元素的灰度級函數計算出來,。對圖像中的某一點f(x,y),灰度形態(tài)學腐蝕運算的定義為:
灰度形態(tài)膨脹即以結構元素g(i,j)為模板,搜尋圖像在結構基元大小范圍內的灰度和的極大值。腐蝕運算過程則是以結構元素g(i,j)為模板,搜尋圖像在結構基元大小范圍內的灰度差的極小值,?;叶鹊男螒B(tài)膨脹和形態(tài)腐蝕運算的表達式與圖像處理中的卷積積分非常相似(即以和、差代替連乘,用最小,、最大運算代替求總和),。
灰度形態(tài)學開運算的定義為:
開運算是采用相同的結構元先做腐蝕再做膨脹的迭代運算。閉運算是采用相同的結構元先做膨脹再做腐蝕的迭代運算,。開運算和閉運算的基本作用是對圖像進行平滑處理:開運算可以去掉圖像中的一些孤立子域和毛刺,閉運算可以填充一些小洞和將2個鄰近的目標連接起來,。
在形態(tài)算法設計中,結構元素的選擇十分重要,其形狀和尺寸的選擇是能否有效地提取信息的關鍵。一般情況下,結構元素的選擇按照下面原則進行:
(1)結構元素必須在幾何上比原圖像簡單,且有界,。
(2)結構元素的凸性非常重要,一般選擇凸性子集,。
2 灰度形態(tài)學濾波器的硬件實現
2.1 結構元素選擇及簡化[3]
本文所述形態(tài)學濾波的目的是檢測256×256大小12位灰度圖像f中的弱小目標,選擇3×3大小的扁平結構元素和原始圖像做開操作,其結構為:
2.2 電路原理設計[4][5]
輸入圖像f與結構元素g1腐蝕就是求f中每行相鄰3個象素的灰度最小值。對于1幅靜止圖像,可以采用1個1×3的窗體從圖像第1行第1列開始,自左向右滑動,依次取出窗口內的3個象素灰度值,比較得到灰度最小值并按順序存儲,。第1行做完后,再在第2行滑動,直至圖像的最后1行的最后3個象素,。存儲后的圖像即為f與g1腐蝕的結果圖像。對于實時串行輸入圖像,只需讓圖像灰度數據流從1×3的窗體通過,取出窗體內的3個象素灰度值,比較后得到的最小值數據流就是腐蝕后的圖像灰度數據,。
求3個數的最小值可以先求2個數的較小值,將結果再與第3個數比較即可得到最小值,。設計的關鍵是如何利用第1組數據的中間結果快速完成第2組數據的比較。針對圖像是串行輸入流以及FPGA內部資源足夠豐富的特點,設計了二級流水比較器,其邏輯框圖如圖1所示,。圖像第1行第1列的灰度值輸入后鎖存到12位的觸發(fā)器,待第2個數據輸入后與之比較,較小值鎖存到中間的12位觸發(fā)器,而第2個數據存儲到左邊的12位觸發(fā)器,。當第3個數據輸入后與前2個數據的較小值比較,得到第1組數據的最小值,同時第1組數據中的第2個值作為第2組數據的第1個值,將與第3個數據(第2組數據的第2個值)比較。這樣,圖像數據輸入到1×3腐蝕單元,2個象素周期之后即可得到最小值輸出數據流,。
將圖1中的12位鎖存器替換深度為256字節(jié)的FIFO,即可得到1×3腐蝕邏輯框圖,。與1×3腐蝕過程類似,f與g1腐蝕的最小值數據流輸入到1×3腐蝕單元,2行延遲時間之后即可得到f與g腐蝕的圖像灰度數據流。
膨脹的結構圖與腐蝕的結構圖類似,只不過是求相應的最大值,。在圖1中,A,、B二處分別加入非門即可得到膨脹單元的結構圖。將腐蝕單元和膨脹單元級聯即可得到如圖2所示的f與g開操作結構圖,。整個結構采用流水線方式設計,使串行輸入的灰度數據能夠得到并行處理,這樣就極大地滿足了圖像處理的實時性要求,。
將腐蝕結構圖和膨脹結構圖次序交換即可得到形態(tài)學濾波閉操作結構圖。對于不同大小的結構元模板,其結構圖與3×3的結構類似,在此不再贅述,。
2.3 FPGA實現
雖然開操作結構圖很復雜,但圖中實際用到的器件只有12位比較器,、12位2選1選擇器,、深度為256的FIFO以及12位鎖存器等。本文選用Xilinx公司的ISE5.2軟件為設計平臺,以上器件均可以由ISE5.2自帶的CORE Generator生成,。鑒于開操作的結構特點,整個濾波器采用元件例化的方式設計,。求3×3最小值和3×3最大值的部分元件例化VHDL代碼如下:
選用XC2S400E芯片,綜合后所用主要資源如下:
Number of Slice Flip Flops: 212 out of 9 600 2%
Number of 4 input LUTs: 306 out of 9 600 3%
Number of occupied Slices: 260 out of 4 800 5%
Number of Block RAMs: 4 out of 40 10%
Total equivalent gate count for design: 69 920
3 仿真設計及注意事項
本設計在ModelSim SE 5.6e軟件平臺下仿真。輸入圖像大小為256×256,仿真需要的數據量相當大,而且還要求各輸入數據的時序一致,仿真測試文件中數據輸入采用讀文件的方法無法保證數據輸入的時序同步,。同樣,濾波輸出的數據量也非常大,直接看波形顯然行不通,。因此本設計先在C++ Builder環(huán)境下將圖像文件中的灰度數據轉換為測試向量,然后拷貝到仿真測試文件中。雖然測試文件相當大,但可以保證圖像灰度值同步輸入,。對于仿真結果輸出,采用寫文件的方法,將形態(tài)學濾波的輸出寫入到文件中,。通過計算機比較仿真輸出文件和同一幅圖像在C++ Builder環(huán)境下生成的濾波結果文件是否有差異,即可判斷功能仿真的正確性。時序仿真時數據輸出的時間也要保存到仿真結果文件中,。
設計時要注意以下問題:
(1)濾波器要求嚴格的時序關系,宜采用同步設計,。
(2)實際使用時圖像是連續(xù)輸入的,需要用場信號將濾波器復位。
(3)行延遲FIFO宜采用XC2S400E片內的Block RAM生成,。
(4)對于256×256的輸入圖像和3×3的結構元,理論上的有效結果圖像大小是254×254,。在實際使用中,對于不同大小的結構元,濾波結果輸出會滯后幾個行周期,在圖像輸入完以后,象素時鐘信號也會撤銷,而此時形態(tài)學濾波還沒有結束,所以輸出的圖像大小比理論值還要小。不過沒有輸出的濾波結果數據絕大部分都是無效數據,只有幾個象素是有效的,。如果需要得到未能輸出的幾個有效數據,可以在一幀圖像輸入結束之后再人為地加入幾個時鐘脈沖,。
(5)為了方便下一級處理單元接收濾波數據,輸出圖像的大小也應設為256×256,相應的地址生成器也應設為256×256,同時需要將無效數據設置為某個定值。
4 結束語
根據實際應用要求,本文設計了3×3結構元素的形態(tài)學開操作濾波器,將其簡化后設計了相應的硬件原理框圖,并在XC2S400E上實現,。該設計已經成功地應用到實際中,。在本文設計的開操作濾波器基礎上,通過簡單地改變結構元素或改變?yōu)V波子模塊次序,即可得到其他性能的形態(tài)學濾波器。同時FPGA器件的可編程特性,可以方便地對電路進行改進,以進一步提高電路的性能,。
參考文獻
1 劉志敏,楊杰.基于數學形態(tài)學的圖像形態(tài)濾波.紅外與激光工程,1999;28(4)
2 杜崢,張桂林,王超.紅外弱小目標預處理及檢測方法研究.計算機與數字工程,2003;31(4)
3 Singh B,Siddiqi M U.A Simplified Algorithm for Approximate Separable Decomposition of Morphological Templates.Pattern Recognition,1996;29(9)
4 Shih F Y,Mitchell O R.Decomposition of Grey-Scale Morphological Structuring Elements.Pattern Recognition,1995;24(3)
5 Robin F,Renaudin M,Privat G et al.Functionally Asynchronous Array Processor for Morphological Filtering of Greyscale Images.IEEE Proceedings:Computers and Digital Techniques,1996;143(5)