張庭亮,甄倩倩,胡明明
(1.安陽工學院電子信息與電氣工程學院,河南安陽455000;2.安陽師范學院軟件學院,河南安陽455000)
基于FPGA的目標邊緣提取硬件加速系統的設計
張庭亮1,甄倩倩2,胡明明1
(1.安陽工學院電子信息與電氣工程學院,河南安陽455000;2.安陽師范學院軟件學院,河南安陽455000)
傳統的視頻圖像處理實時性不高,數據端與主機聯動性差。為了提高目標邊緣提取的實時性與實用性,設計了基于FPGA的目標邊緣提取硬件加速系統。系統通過IIC總線配置攝像頭參數采集視頻數據,硬件濾波后由FPGA邊緣檢測模塊提取邊緣數據存入SDRAM。VGA控制模塊將存儲的數據輸出至顯示器顯示。設計實現了對視頻圖像邊緣實時提取,并在分辨率為640x480在顯示器實時顯示。經過測試,系統提取目標邊緣清晰,實時性與實用性較高。
FPGA;邊緣檢測;硬件加速;實時顯示
圖像處理技術在監控、醫療、工業等領域得到廣泛應用的同時,人們對于圖像處理技術在具體應用中的要求也在不斷提高,圖像邊緣是圖像的最基本的特征之一[1-2]。圖像的邊緣檢測是一般基于特定的研究領域,應用中的后續處理必須依賴于邊緣檢測時所提供的信息。圖像邊緣的實時提取系統應用于許多領域,例如交通監控、醫療、航天技術、衛星監控技術等[3-7]。動態目標追蹤是圖像處理以及機器視覺中的重要組成部分,難點在于邊緣特征的提取,對動態目標圖像邊緣提取的準確度和實時性提出了較高的要求[8-9]。
提高硬件電路對數據的并行處理能力是硬件加速的本質。在實際應用中,經常使用硬件復制和流水線方法。流水線處理方式中各子模塊對數據的處理由FPGA內部的邏輯單元來完成,數據沿著一定方向依次通過各個邏輯單元時實現了對所有數據的處理,并且將經過處理操作的數據輸出至存儲器中[10-11]。在一個算法運行時,設定算法的核心部分運行時間占整個運行時間的比例為f,非算法核心部分的運行時間所占比例為1-f,所以消耗時間為:

如果通過硬件加速,那么加速器能夠使運行算法核心所消耗的時間縮短為原來的s倍,這樣一來整個過程的運行時間就為:

系統的整體性能就會得到有效的提高,其提高的效率為:

通過硬件來實現對系統的加速很大程度上依賴于算法的核心部分所占整個算法的比例。
邊緣檢測一般通過檢測灰度值的不連續性實現,不連續性在圖像導數中的表現為:一階導數產生波峰或波谷,二階導數產生零交叉。
一階導數通常用梯度來表示,對于圖像函數f(x,y),梯度定義為:

幅度值和幅角為:

為了避免偏導數對每個像素進行位置計算,實際常采用區域模板代替Gx和Gy,不同的模板產生不同的邊緣算子。Sobel算子是基礎的梯度算子,其算法結構簡單,通過對鄰域像素點賦予不同權值計算梯度,因此Sobel算子能夠較好的抑制噪聲[1-3]。Sobel算子是加權平均,Gx,Gy模板如圖1所示。

圖1 Sobel算子模板
其表達式為:

系統主要由兩部分構成:FPGA內部的邏輯功能模塊和外圍硬件模塊。FPGA的內部邏輯功能模塊負責對圖像數據進行相應的數據處理,主要包括對數據編碼和位寬控制、圖像數據的邊緣檢測;而外圍硬件模塊則由數據采集模塊∕顯示模塊組成。系統設計具體結構如圖2所示。

圖2 系統設計框圖
系統采用的圖像采集模塊基于OV7725,屬于CMOS攝像頭系列,CMOS攝像頭工藝簡單,成本較低,功耗小。OV7725首先進行初始化,然后接收圖像信號以及進行同步化設計;在模塊設計時要求在寄存器修改后進行10幀延時,因此修改完成后需要進行場計數延時等待,當攝像頭穩點后進行采樣、拼接8bit輸入數據,最終輸出處理后的數據。圖像采集模塊設計流程如圖3所示。

圖3 采集流程圖
IIC是飛利浦公司提出的一種低速串行通信協議,由串行參考時鐘(SCL)和串行數據(SDA)組成。系統中IIC模塊的串行時鐘(SCL)為12 Mhz,則iic_clk=2SCLK=24 Mhz。在執行寫操作過程中,wr_req、addr、wr_data同步產生,需保持一個時鐘等到busy的下降沿出現時即完成寫操作;在執行讀操作過程中,rd_req、addr同步產生,也需保持一個時鐘等到busy的下降沿出現時即完成讀操作,此時rd_data數據有效生成。在設計IIC模塊時,為了使器件成功匹配應該在IIC接口處上拉電阻。IIC頂層設計如圖4所示。

圖4 IIC頂層設計圖
(1)SDRAM頂層設計
SDRAM控制器系統時鐘為100 Mhz,圖像數據采集模塊的時鐘為24 Mhz,其輸出數據的頻率為12 Mhz,后端VGA控制模塊的時鐘為25 Mhz,由于在一個時鐘下系統只能對SDRAM中的一個地址進行讀∕寫操作,來協調前后模塊的沖突,因此對SDRAM的讀∕寫控制是設計的核心部分,當控制模塊和端口設置完成以后,對于頂層而言,系統對SDRAM和FIFO的操作過程基本一樣。讀∕寫操作的控制通過讀∕寫控制模塊根據讀∕寫端口存儲的數據量多少來判斷。SDRAM控制模塊如圖5所示。
(2)乒乓操作
設計中的難點就是跨時鐘域數據的實時傳輸問題,因此在圖像緩存模塊中調用FIFO模塊,其與SDRAM連接來作為數據的緩存模塊能夠便于系統整體功能的實現。系統通過調用異步FIFO和乒乓操作來實現跨時鐘域的數據傳輸以及圖像的實時傳輸問題。其中乒乓操作的結構框圖如圖6所示,程序流程圖如圖7所示。

圖5 SDRAM控制器頂層框圖

圖6 乒乓操作框圖

圖7 乒乓操作程序設計流程圖
(3)SDRAM模塊仿真
SDRAM模塊的仿真圖如圖8所示,由仿真結果可知,在給定讀∕寫請求信號以及相應地址時,SDRAM就會進行相應的讀∕寫操作。

圖8 SDRAM仿真圖
通過圖像緩存、卷積計算以及門限處理模塊的應用完成Sobel算子對圖像數據的邊緣檢測操作。圖像數據在水平和垂直方向上梯度的具體運算是通過Sobel算子來實現的,然后再對這兩個值進行均方根運算,最后把最終的數據通過門限處理即可得到邊緣圖像數據。其具體結構如圖9所示。

圖9 邊緣檢測硬件實現框圖
卷積運算模塊在邊緣檢測模塊中肩負重大任務,其要通過Sobel算子計算圖像數據水平、垂直兩個方向上的梯度值。在邊緣判斷上需要設計一個門限處理模塊,該模塊通過比較接收的圖像中心像素的梯度值與設定的閾值來判斷圖像的邊緣。當梯度值比設定的閾值大時將其置1,比設定的閾值小時置0,此時即可得到圖像的邊緣。
Sobel算子的仿真波形如圖10所示。

圖10 Sobel算子模塊仿真圖
VGA視頻圖像陣列,是一種被業界廣泛使用的圖像顯示標準。采用ADV7123芯片來實現數∕模轉換,通過FPGA內部的VGA控制模塊來完成正確的信號傳輸工作。顯示器是通過從左到右、從上到下的順序在顯示屏上進行逐點的掃描,當一行掃描完成后就產生同步負脈沖并且進行行消隱,然后再掃描下一行直至整個屏幕掃描完成。
系統FPGA采用EP4CE6E22C8N為主控芯片,測試動態迷宮機器人的邊緣實時提取。視頻動態目標采集與邊緣檢測圖像如圖11所示。視頻實時檢測結果如圖12所示。

圖11 視頻采集與邊緣檢測

圖12 目標邊緣提取圖像
利用FPGA對數據的并行高速處理來保證系統傳輸的實時性,實時對動態目標的邊緣進行提取顯示,顯示分辨率為640x480。本系統具有高速、實時等優點,而且移植性很強,對于大多數的實時圖像處理系統都可被應用。
[1]趙堯,董恩增,于曉.基于改進Sobel算子的實時邊緣檢測系統設計與FPGA實現[J].天津理工大學學報,2017,33(1):1-5.
[2]王曉娟,翟成瑞.基于FPGA聯合Sobel算法的實時圖像邊沿檢測系統的設計與實現[J].計算機測量與控制,2017,25(1):34-37.
[3]李闊,劉苗,林楓,等.基于FPGA的Sobel邊沿檢測研究[J].信息通信,2017(1):57-58.
[4]仝海峰,蔡俊,范靜靜.基于FPGA實時Sobel邊緣檢測形態學優化設計[J].微電子學,2015,45(6):781-784.
[5]謝周標,周毅,龍斌.二維橢圓硬件加速算法研究及其FPGA實現[J].計算機工程與應用,2015,51(3):45-49.
[6]周光宇,劉慧忠.邊緣檢測算法的FPGA實現[J].計算機系統應用,2015,24(10):271-275.
[7]寧賽男,朱明,孫宏海,等.一種改進的Sobel自適應邊緣檢測的FPGA實現[J].液晶與顯示,2014,29(3):395-402.
[8]劉速,孫偉峰,王洪君.目標跟蹤系統在FPGA上的實時實現[J].西安電子科技大學學報,2012,39(5):168-173.
[9]廖傳柱.一種基于FPGA的Sobel邊緣檢測算法與仿真研究[J].長江大學學報(自科版),2015,12(7):37-40.
[10]李濤.基于FPGA的Sobel算子實時圖像邊緣檢測系統的設計[D].北京:北京交通大學,2013.
[11]馮亮,劉紫燕,祁佳.基于FPGA的視頻跟蹤系統目標檢測方法研究[J].微型機與應用,2014,(12):34-36.
〔責任編輯 高彩云〕
Design of Target Edge Extraction Hardware Acceleration System Based on FPGA
ZHANG Ting-liang1,ZHEN Qian-qian2,HU Ming-ming1
(1.School of Electronic Information and Electrical Engineering,Anyang Institute of Technology,Anyang Henan,455000;2.School of Software Engineering,Anyang Normal University,Anyang Henan,455000)
The traditional video image processing real-time is not high,the data side and the host linkage is poor.In order to im?prove the real-time and practicality of target edge extraction,an FPGA-based target edge extraction hardware acceleration system is designed.System through the IIC bus configuration camera can collect video data,filter hardware by the edge detection module to ex?tract the edge data into the SDRAM.The VGA control module outputs the stored data to the display.The design can to achieve realtime extraction of video image edges,and real-time display at a resolution of 640x480 on the display.After testing,the system can ex?tract the target edge clear,which is real-time and practical.
FPGA;edge detection;hardware acceleration;real-time display
TP391
A
1674-0874(2017)05-0027-04
2017-04-30
張庭亮(1989-),男,山西臨汾人,碩士,助教,研究方向:模式識別與智能控制。