《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的圖像邊緣檢測系統(tǒng)的設(shè)計
基于FPGA的圖像邊緣檢測系統(tǒng)的設(shè)計
王紹雷,趙進(jìn)創(chuàng),,周 毅
摘要: 在Altera公司的Stratix EP1S10器件中設(shè)計了以Prewitt圖像邊緣檢測為基礎(chǔ)的圖像處理和顯示系統(tǒng),,包括二維濾波器模塊,、圖像VGA顯示控制器、ROM存儲器,、FIFO緩沖器及相應(yīng)的讀寫控制器,。整個系統(tǒng)集成在一個芯片上,實驗證明此設(shè)計方法工作效率高,,處理速度快,,性能穩(wěn)定,可移植性好,。
關(guān)鍵詞: FPGA Prewitt算子 VGA QuartusII
Abstract:
Key words :

  摘 要: 在Altera公司的Stratix EP1S10器件中設(shè)計了以Prewitt圖像邊緣檢測為基礎(chǔ)的圖像處理和顯示系統(tǒng),,包括二維濾波器模塊、圖像VGA顯示控制器,、ROM存儲器,、FIFO緩沖器及相應(yīng)的讀寫控制器。整個系統(tǒng)集成在一個芯片上,,實驗證明此設(shè)計方法工作效率高,,處理速度快,,性能穩(wěn)定,可移植性好,。
  關(guān)鍵詞: FPGA" title="FPGA">FPGA Prewitt算子" title="Prewitt算子">Prewitt算子 VGA QuartusII


  在嵌入式圖形系統(tǒng)處理領(lǐng)域,,圖像的邊緣圖作為圖像的一種基本特征,經(jīng)常被應(yīng)用到較高層次的特征描述,。如圖像識別,、圖像分割、圖像增強(qiáng)以及圖像壓縮等圖像處理和分析的技術(shù)中,,從而可以對圖像作進(jìn)一步的分析和理解[1],。但是圖像處理的速度問題一直是很難突破的設(shè)計瓶頸。一般情況下,控制領(lǐng)域及數(shù)據(jù)處理領(lǐng)域幾乎是單片機(jī)和數(shù)字信號處理器的天下,但是在數(shù)據(jù)處理量大,、實時性要求更為苛刻的場合,傳統(tǒng)的MCU無法適應(yīng),。而DSP雖然具備指令流水線和很高的處理速度,但是由于其本質(zhì)仍然是依靠串行執(zhí)行指令來完成相應(yīng)的圖像處理算法,所以其處理速度依然很受限制。因而基于速度,、系統(tǒng)集成和產(chǎn)品升級等角度考慮,,采用現(xiàn)代電子設(shè)計的最新EDA技術(shù),使用高速可編程邏輯器件CPLD/FPGA自行開發(fā)有關(guān)處理芯片成了一種全新的解決方案[2],。
  利用EDA技術(shù)自頂向下的思想設(shè)計SoC(片上系統(tǒng))電路,,能在一塊FPGA芯片中完成圖像存儲器、時鐘管理,、圖像處理模塊,、VGA顯示控制器以及地址發(fā)生器等多個電路模塊。使用Altera公司的Stratix EP1S10 FPGA芯片和Matlab軟件,、QuartusII軟件等完成電路設(shè)計,。其電路結(jié)構(gòu)如圖1所示。


  其中,,ROM模塊用來存儲圖像,,地址發(fā)生器將ROM中的數(shù)據(jù)傳遞給邊緣檢測處理模塊,F(xiàn)IFO為處理后數(shù)據(jù)的緩沖存儲模塊,,VGA控制器用來產(chǎn)生外部VGA顯示器的控制時序及輸出圖像信號,。
1 邊緣檢測模塊的設(shè)計
1.1 Prewitt邊緣檢測算法[3]
  圖像邊緣具有方向和幅度兩個特性,通常沿邊緣走向像素的灰度變化平緩,,垂直于邊緣走向的像素灰度變換劇烈,。對于連續(xù)圖像f(x,y),,其方向?qū)?shù)在邊緣(法線)方向上有局部最大值,,因此,邊緣檢測就是求f(x,,y)梯度的局部最大值和方向,。對于離散圖像來說,,就是利用邊緣檢測算子來逼近梯度算子求得局部最大值,即:
  ▽f=(f(x,,y)-f(x-1,,y),f(x,,y)-f(x,,y-1)     (1)
  因此,檢測數(shù)字圖像邊緣最簡單的方法就是對每個像素計算▽f,,然后求絕對值,,最后進(jìn)行閾值操作就可以實現(xiàn)。
  Prewitt算子:
  
  以上兩個矩陣分別代表圖像的水平梯度和垂直梯度,。如果用Prewitt算子檢測圖像M的邊緣,,一般先用水平算子和垂直算子對圖像進(jìn)行卷積,得到兩個矩陣M1和M2,。在不考慮邊界因素的時候,,它們與原圖像有相同的大小,分別表示圖像M中相同位置對于X和Y的偏導(dǎo)數(shù),。然后求M1和M2對應(yīng)位置的兩個數(shù)的絕對值之和,,得到一個新矩陣G,,G是M中像素灰度梯度的近似值,,然后經(jīng)過閾值操作得到邊緣。即:
  
  在硬件實現(xiàn)過程中,,由于Prewitt算子具有對稱性并且濾波系數(shù)只有0和±1,,所以卷積只用加法器和減法器就可以實現(xiàn),不需要乘法器,,這會大大減少FPGA資源消耗并降低二維卷積操作的復(fù)雜度,。
1.2 DSPBuilder建模
  Altera公司提供了DSPBuilder建模工具,可以利用它實現(xiàn)算法的建模和系統(tǒng)仿真工作,;再利用QuartusII軟件進(jìn)行分析和綜合,,最后下載到FPGA器件中完成模塊的構(gòu)建。現(xiàn)以處理256×256像素的256灰度圖像為例說明邊緣檢測模塊的實現(xiàn)過程,,如圖2所示,,像素運算方法如式(4)和式(5)。

  


1.3 圖像處理模塊的Matlab仿真
  DSPBuilder運行在Matlab環(huán)境下,,可以利用Simulink對設(shè)計結(jié)果進(jìn)行仿真,。處理前后的對比閾值為50,仿真結(jié)束時間為65536個時鐘周期,。圖3為Matlab仿真圖,。


  由圖3可以看出,,圖像在經(jīng)過邊緣檢測處理后較真實地反映了實物的邊緣輪廓。說明設(shè)計方法正確,。
2 VGA控制器的設(shè)計
  對于普通的VGA顯示器其引出線共含有5個信號:R,、G、B三基色信號,;HS行同步信號,;VS場同步信號。VGA工業(yè)標(biāo)準(zhǔn)要求的時鐘頻率為25.175MHz(像素輸出頻率),,行頻31.496Hz,,場頻59.94Hz(每秒圖像刷新頻率)。HS,、VS時序輸出圖和電路原理圖如圖4所示,。其中T1包含96個時鐘周期,T2包含704個時鐘周期,,T3包含2個行周期,,T4包含523個行周期。時序驅(qū)動嚴(yán)格遵循VGA工作標(biāo)準(zhǔn),,即640×480×60Hz模式[4][5],。
  HS設(shè)計VHDL進(jìn)程:
  process(clk) begin
   if (rising_edge(clk)) then
    if((hcnt>= 640+8+8) and (hcnt<640+8+8+96 )) then
     hs<=′0′;
    else
     hs<=′1′,;
    end if,;
   end if;
  end process,;
  VS設(shè)計VHDL進(jìn)程:
  process(vcnt) begin
   if ((vcnt>=480+8+2) and (vcnt<480+8+2+2)) then
    vs<=′0′,;
   else
    vs<=′1′;
   end if,;
  end process,;


3 存儲器和地址發(fā)生器的設(shè)計
  Stratix器件內(nèi)帶有TriMatrix存儲器,這些存儲器由三種類型的RAM模塊組成,,其中有512bit的M512模塊94個,,4Kbit的M4K模塊60個,512Kbit的M-RAM模塊1個,,共有920 448bit的存儲容量,。每一種都能配制成不同存儲類型的存儲器,例如可以利用M512 配置成FIFO功能存儲器,;M4K模塊配制成中規(guī)模的存儲器,,就像ROM和ATM(同步傳輸模式)單元處理;M-RAM模塊適合于大容量的緩沖存儲器設(shè)計,例如網(wǎng)絡(luò)協(xié)議包緩沖和系統(tǒng)緩存等,,大大增強(qiáng)了可編程邏輯器件的存儲能力[6],。
  本設(shè)計利用M4K模塊設(shè)計存儲圖像信息的ROM單元,共需要64KB和32個M4K單元,。通過QuartusII中的Megawizard plug-in manager進(jìn)行配置,,圖像初始化由*.mif完成。利用M512模塊設(shè)計FIFO單元用來緩存處理完畢的數(shù)據(jù),,設(shè)計方法同ROM,。
  控制單元主要完成地址生成時序和復(fù)位信號產(chǎn)生,其過程比較簡單,,這里不再詳述,。
4 頂層模塊的設(shè)計與仿真
  將前面設(shè)計的各個模塊例化成整個系統(tǒng)的各個組成部分,并設(shè)為頂層功能電路,,進(jìn)行分析,、綜合,然后進(jìn)行電路的功能仿真,,仿真結(jié)果如圖5所示,。


  圖5中clk5是輸入的25MHz時鐘信號;HS是行掃描信號,,高電平表示可以輸出像素,,低電平表示行消隱;VS是場掃描信號,,高電平表示場掃描過程,,由于周期比較長及仿真參數(shù)的限制沒有顯示出低電平的消隱過程。r,、g,、b表示輸出的像素電平,因為試驗平臺的限制,,輸出信號沒有經(jīng)過模擬轉(zhuǎn)換而是直接從FPGA管腳輸出,這對于輸出是二值化信號的處理結(jié)果并沒有影響,,可以看出在行掃描期間有處理完的像素數(shù)據(jù)輸出,。
  整個電路設(shè)計遵循EDA自頂向下的設(shè)計思想,針對各功能電路分別設(shè)計,,最后組成完整系統(tǒng),。整個系統(tǒng)共用FPGA邏輯單元320個、存儲器資源65Kbit,、管腳7個,、DLL資源1個。完全由硬件電路實現(xiàn)DSP算法是FPGA的優(yōu)勢所在,所實現(xiàn)的系統(tǒng)性能穩(wěn)定,、噪聲小,、易于移植、靈活性高,、處理速度快,、易于實時處理。本設(shè)計可以作為更高層圖像處理技術(shù)的前期處理部分,,也可以在視頻處理技術(shù)中得到應(yīng)用,。
參考文獻(xiàn)

[1] 宋芳莉.圖像邊緣檢測中的方法研究[D].西北大學(xué)碩士論文,2002,,6.
[2] 譚會生,,桂衛(wèi)華,劉展良.基于EDA技術(shù)的圖像邊緣檢測協(xié)處理器的設(shè)計[J].包裝工程,,2004,,25(6):102.
[3] 羅軍輝,馮平,,哈力坦·A.MAtlab7.0在圖像處理中的應(yīng)用[M].北京:機(jī)械工業(yè)出版社,,2005:206-207.
[4] 潘松,黃繼業(yè),,曾毓.SOPC技術(shù)實用教程[M].北京:清華大學(xué)出版社,,2005,3.
[5] 潘松,,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,,2005,7.
[6] Altera Co.stratix_section_2_vol_2.pdf[Z].http://www.altera.com.cn/literature/hb/stx/stratix_section_2_vol_2.pdf.

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