《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的灰度形態(tài)學(xué)濾波器實現(xiàn)
基于FPGA的灰度形態(tài)學(xué)濾波器實現(xiàn)
柳國普 張桂林 張 寧
摘要: 闡述了灰度形態(tài)學(xué)濾波的原理和基本操作,給出了3×3結(jié)構(gòu)元素灰度形態(tài)學(xué)濾波器的硬件結(jié)構(gòu),詳細描述了該濾波器在Xilinx公司的XC2S400E芯片上實現(xiàn)的過程和仿真的方法,并說明了需要注意的問題,。
關(guān)鍵詞: FPGA 圖像處理 賽靈思
Abstract:
Key words :

  摘  要: 闡述了灰度形態(tài)學(xué)濾波的原理和基本操作,給出了3×3結(jié)構(gòu)元素灰度形態(tài)學(xué)濾波器的硬件結(jié)構(gòu),詳細描述了該濾波器在Xilinx公司的XC2S400E芯片上實現(xiàn)的過程和仿真的方法,并說明了需要注意的問題,。

  關(guān)鍵詞: 圖像處理  形態(tài)學(xué)濾波  FPGA

   數(shù)學(xué)形態(tài)學(xué)濾波是數(shù)字圖像處理和計算機視覺研究中的一種新方法,已廣泛應(yīng)用于計算機視覺,、圖像處理,、視覺檢測、紋理和場景分析等方面,。上述這些應(yīng)用都有時間限制,要求實時處理。數(shù)學(xué)形態(tài)學(xué)濾波作為一種非線性濾波技術(shù),其理論基礎(chǔ)是集合論,具有天然的并行結(jié)構(gòu),便于硬件電路實現(xiàn)[1],。但形態(tài)學(xué)濾波的硬件實現(xiàn)是以犧牲硬件資源為代價的,。對于一幅較大的灰度圖像,如果采用常規(guī)器件實現(xiàn),硬件結(jié)構(gòu)會相當(dāng)龐大。

  隨著微電子技術(shù)的發(fā)展,現(xiàn)場可編程門陣列(Field Program Gates Array,FPGA)器件已經(jīng)朝著高密度,、低壓,、低功耗的方向發(fā)展。由于FPGA芯片門數(shù)不斷增加,PLL/DLL,、Distributed RAM,、Block RAM等片內(nèi)資源以及設(shè)計所需的IP庫越來越豐富,所有這些使得基于FPGA的數(shù)學(xué)形態(tài)學(xué)濾波器實現(xiàn)成為可能。本文綜合考慮了數(shù)學(xué)形態(tài)學(xué)濾波器的并行特性和FPGA器件的特點,在Xilinx公司的XC2S400E芯片上實現(xiàn)了灰度圖像的開操作形態(tài)學(xué)濾波器,。

1 灰度形態(tài)學(xué)濾波基本知識[2]

  數(shù)學(xué)形態(tài)學(xué)是一種數(shù)字圖像處理的新方法,其研究的主要目的在于描述圖像的基本結(jié)構(gòu)和特征,主要內(nèi)容是在積分幾何和隨機集合論的基礎(chǔ)上,設(shè)計一整套變換,、概念和算法,以描述圖像的各個象素之間的關(guān)系。它的基本思想是用具有一定形態(tài)的結(jié)構(gòu)元去度量和提取圖像中的對應(yīng)形態(tài)以達到對圖像分析和識別的目的,。形態(tài)學(xué)的應(yīng)用可以簡化圖像數(shù)據(jù),保持它們基本的形狀特性,并除去不相干的結(jié)構(gòu),。

  形態(tài)學(xué)的基本運算有4種:膨脹、腐蝕,、開和閉,。灰度圖像的腐蝕和膨脹過程可直接從圖像及結(jié)構(gòu)元素的灰度級函數(shù)計算出來,。對圖像中的某一點f(x,y),灰度形態(tài)學(xué)腐蝕運算的定義為:

  

灰度形態(tài)膨脹即以結(jié)構(gòu)元素g(i,j)為模板,搜尋圖像在結(jié)構(gòu)基元大小范圍內(nèi)的灰度和的極大值,。腐蝕運算過程則是以結(jié)構(gòu)元素g(i,j)為模板,搜尋圖像在結(jié)構(gòu)基元大小范圍內(nèi)的灰度差的極小值?;叶鹊男螒B(tài)膨脹和形態(tài)腐蝕運算的表達式與圖像處理中的卷積積分非常相似(即以和,、差代替連乘,用最小、最大運算代替求總和),。

  灰度形態(tài)學(xué)開運算的定義為:

  

  開運算是采用相同的結(jié)構(gòu)元先做腐蝕再做膨脹的迭代運算,。閉運算是采用相同的結(jié)構(gòu)元先做膨脹再做腐蝕的迭代運算。開運算和閉運算的基本作用是對圖像進行平滑處理:開運算可以去掉圖像中的一些孤立子域和毛刺,閉運算可以填充一些小洞和將2個鄰近的目標(biāo)連接起來。

  在形態(tài)算法設(shè)計中,結(jié)構(gòu)元素的選擇十分重要,其形狀和尺寸的選擇是能否有效地提取信息的關(guān)鍵,。一般情況下,結(jié)構(gòu)元素的選擇按照下面原則進行:

  (1)結(jié)構(gòu)元素必須在幾何上比原圖像簡單,且有界,。

  (2)結(jié)構(gòu)元素的凸性非常重要,一般選擇凸性子集。

2 灰度形態(tài)學(xué)濾波器的硬件實現(xiàn)

2.1 結(jié)構(gòu)元素選擇及簡化[3]

  本文所述形態(tài)學(xué)濾波的目的是檢測256×256大小12位灰度圖像f中的弱小目標(biāo),選擇3×3大小的扁平結(jié)構(gòu)元素和原始圖像做開操作,其結(jié)構(gòu)為:

  

2.2 電路原理設(shè)計[4][5]

  輸入圖像f與結(jié)構(gòu)元素g1腐蝕就是求f中每行相鄰3個象素的灰度最小值,。對于1幅靜止圖像,可以采用1個1×3的窗體從圖像第1行第1列開始,自左向右滑動,依次取出窗口內(nèi)的3個象素灰度值,比較得到灰度最小值并按順序存儲,。第1行做完后,再在第2行滑動,直至圖像的最后1行的最后3個象素。存儲后的圖像即為f與g1腐蝕的結(jié)果圖像,。對于實時串行輸入圖像,只需讓圖像灰度數(shù)據(jù)流從1×3的窗體通過,取出窗體內(nèi)的3個象素灰度值,比較后得到的最小值數(shù)據(jù)流就是腐蝕后的圖像灰度數(shù)據(jù),。

  求3個數(shù)的最小值可以先求2個數(shù)的較小值,將結(jié)果再與第3個數(shù)比較即可得到最小值。設(shè)計的關(guān)鍵是如何利用第1組數(shù)據(jù)的中間結(jié)果快速完成第2組數(shù)據(jù)的比較,。針對圖像是串行輸入流以及FPGA內(nèi)部資源足夠豐富的特點,設(shè)計了二級流水比較器,其邏輯框圖如圖1所示,。圖像第1行第1列的灰度值輸入后鎖存到12位的觸發(fā)器,待第2個數(shù)據(jù)輸入后與之比較,較小值鎖存到中間的12位觸發(fā)器,而第2個數(shù)據(jù)存儲到左邊的12位觸發(fā)器。當(dāng)?shù)?個數(shù)據(jù)輸入后與前2個數(shù)據(jù)的較小值比較,得到第1組數(shù)據(jù)的最小值,同時第1組數(shù)據(jù)中的第2個值作為第2組數(shù)據(jù)的第1個值,將與第3個數(shù)據(jù)(第2組數(shù)據(jù)的第2個值)比較,。這樣,圖像數(shù)據(jù)輸入到1×3腐蝕單元,2個象素周期之后即可得到最小值輸出數(shù)據(jù)流,。

 

 

  將圖1中的12位鎖存器替換深度為256字節(jié)的FIFO,即可得到1×3腐蝕邏輯框圖。與1×3腐蝕過程類似,f與g1腐蝕的最小值數(shù)據(jù)流輸入到1×3腐蝕單元,2行延遲時間之后即可得到f與g腐蝕的圖像灰度數(shù)據(jù)流,。

  膨脹的結(jié)構(gòu)圖與腐蝕的結(jié)構(gòu)圖類似,只不過是求相應(yīng)的最大值,。在圖1中,A、B二處分別加入非門即可得到膨脹單元的結(jié)構(gòu)圖,。將腐蝕單元和膨脹單元級聯(lián)即可得到如圖2所示的f與g開操作結(jié)構(gòu)圖,。整個結(jié)構(gòu)采用流水線方式設(shè)計,使串行輸入的灰度數(shù)據(jù)能夠得到并行處理,這樣就極大地滿足了圖像處理的實時性要求。

 

 

  將腐蝕結(jié)構(gòu)圖和膨脹結(jié)構(gòu)圖次序交換即可得到形態(tài)學(xué)濾波閉操作結(jié)構(gòu)圖,。對于不同大小的結(jié)構(gòu)元模板,其結(jié)構(gòu)圖與3×3的結(jié)構(gòu)類似,在此不再贅述,。

2.3 FPGA實現(xiàn)

  雖然開操作結(jié)構(gòu)圖很復(fù)雜,但圖中實際用到的器件只有12位比較器、12位2選1選擇器,、深度為256的FIFO以及12位鎖存器等,。本文選用Xilinx公司的ISE5.2軟件為設(shè)計平臺,以上器件均可以由ISE5.2自帶的CORE Generator生成。鑒于開操作的結(jié)構(gòu)特點,整個濾波器采用元件例化的方式設(shè)計,。求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  仿真設(shè)計及注意事項

  本設(shè)計在ModelSim SE 5.6e軟件平臺下仿真,。輸入圖像大小為256×256,仿真需要的數(shù)據(jù)量相當(dāng)大,而且還要求各輸入數(shù)據(jù)的時序一致,仿真測試文件中數(shù)據(jù)輸入采用讀文件的方法無法保證數(shù)據(jù)輸入的時序同步。同樣,濾波輸出的數(shù)據(jù)量也非常大,直接看波形顯然行不通,。因此本設(shè)計先在C++ Builder環(huán)境下將圖像文件中的灰度數(shù)據(jù)轉(zhuǎn)換為測試向量,然后拷貝到仿真測試文件中,。雖然測試文件相當(dāng)大,但可以保證圖像灰度值同步輸入。對于仿真結(jié)果輸出,采用寫文件的方法,將形態(tài)學(xué)濾波的輸出寫入到文件中,。通過計算機比較仿真輸出文件和同一幅圖像在C++ Builder環(huán)境下生成的濾波結(jié)果文件是否有差異,即可判斷功能仿真的正確性,。時序仿真時數(shù)據(jù)輸出的時間也要保存到仿真結(jié)果文件中。

  設(shè)計時要注意以下問題:

  (1)濾波器要求嚴(yán)格的時序關(guān)系,宜采用同步設(shè)計,。

  (2)實際使用時圖像是連續(xù)輸入的,需要用場信號將濾波器復(fù)位,。

  (3)行延遲FIFO宜采用XC2S400E片內(nèi)的Block RAM生成,。

  (4)對于256×256的輸入圖像和3×3的結(jié)構(gòu)元,理論上的有效結(jié)果圖像大小是254×254。在實際使用中,對于不同大小的結(jié)構(gòu)元,濾波結(jié)果輸出會滯后幾個行周期,在圖像輸入完以后,象素時鐘信號也會撤銷,而此時形態(tài)學(xué)濾波還沒有結(jié)束,所以輸出的圖像大小比理論值還要小,。不過沒有輸出的濾波結(jié)果數(shù)據(jù)絕大部分都是無效數(shù)據(jù),只有幾個象素是有效的,。如果需要得到未能輸出的幾個有效數(shù)據(jù),可以在一幀圖像輸入結(jié)束之后再人為地加入幾個時鐘脈沖。

  (5)為了方便下一級處理單元接收濾波數(shù)據(jù),輸出圖像的大小也應(yīng)設(shè)為256×256,相應(yīng)的地址生成器也應(yīng)設(shè)為256×256,同時需要將無效數(shù)據(jù)設(shè)置為某個定值,。

4  結(jié)束語

  根據(jù)實際應(yīng)用要求,本文設(shè)計了3×3結(jié)構(gòu)元素的形態(tài)學(xué)開操作濾波器,將其簡化后設(shè)計了相應(yīng)的硬件原理框圖,并在XC2S400E上實現(xiàn),。該設(shè)計已經(jīng)成功地應(yīng)用到實際中。在本文設(shè)計的開操作濾波器基礎(chǔ)上,通過簡單地改變結(jié)構(gòu)元素或改變?yōu)V波子模塊次序,即可得到其他性能的形態(tài)學(xué)濾波器,。同時FPGA器件的可編程特性,可以方便地對電路進行改進,以進一步提高電路的性能,。

 

參考文獻

1 劉志敏,楊杰.基于數(shù)學(xué)形態(tài)學(xué)的圖像形態(tài)濾波.紅外與激光工程,1999;28(4)

2 杜崢,張桂林,王超.紅外弱小目標(biāo)預(yù)處理及檢測方法研究.計算機與數(shù)字工程,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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。