張庭亮,甄倩倩,胡明明
(1.安陽工學(xué)院電子信息與電氣工程學(xué)院,河南安陽455000;2.安陽師范學(xué)院軟件學(xué)院,河南安陽455000)
基于FPGA的目標(biāo)邊緣提取硬件加速系統(tǒng)的設(shè)計(jì)
張庭亮1,甄倩倩2,胡明明1
(1.安陽工學(xué)院電子信息與電氣工程學(xué)院,河南安陽455000;2.安陽師范學(xué)院軟件學(xué)院,河南安陽455000)
傳統(tǒng)的視頻圖像處理實(shí)時(shí)性不高,數(shù)據(jù)端與主機(jī)聯(lián)動性差。為了提高目標(biāo)邊緣提取的實(shí)時(shí)性與實(shí)用性,設(shè)計(jì)了基于FPGA的目標(biāo)邊緣提取硬件加速系統(tǒng)。系統(tǒng)通過IIC總線配置攝像頭參數(shù)采集視頻數(shù)據(jù),硬件濾波后由FPGA邊緣檢測模塊提取邊緣數(shù)據(jù)存入SDRAM。VGA控制模塊將存儲的數(shù)據(jù)輸出至顯示器顯示。設(shè)計(jì)實(shí)現(xiàn)了對視頻圖像邊緣實(shí)時(shí)提取,并在分辨率為640x480在顯示器實(shí)時(shí)顯示。經(jīng)過測試,系統(tǒng)提取目標(biāo)邊緣清晰,實(shí)時(shí)性與實(shí)用性較高。
FPGA;邊緣檢測;硬件加速;實(shí)時(shí)顯示
圖像處理技術(shù)在監(jiān)控、醫(yī)療、工業(yè)等領(lǐng)域得到廣泛應(yīng)用的同時(shí),人們對于圖像處理技術(shù)在具體應(yīng)用中的要求也在不斷提高,圖像邊緣是圖像的最基本的特征之一[1-2]。圖像的邊緣檢測是一般基于特定的研究領(lǐng)域,應(yīng)用中的后續(xù)處理必須依賴于邊緣檢測時(shí)所提供的信息。圖像邊緣的實(shí)時(shí)提取系統(tǒng)應(yīng)用于許多領(lǐng)域,例如交通監(jiān)控、醫(yī)療、航天技術(shù)、衛(wèi)星監(jiān)控技術(shù)等[3-7]。動態(tài)目標(biāo)追蹤是圖像處理以及機(jī)器視覺中的重要組成部分,難點(diǎn)在于邊緣特征的提取,對動態(tài)目標(biāo)圖像邊緣提取的準(zhǔn)確度和實(shí)時(shí)性提出了較高的要求[8-9]。
提高硬件電路對數(shù)據(jù)的并行處理能力是硬件加速的本質(zhì)。在實(shí)際應(yīng)用中,經(jīng)常使用硬件復(fù)制和流水線方法。流水線處理方式中各子模塊對數(shù)據(jù)的處理由FPGA內(nèi)部的邏輯單元來完成,數(shù)據(jù)沿著一定方向依次通過各個(gè)邏輯單元時(shí)實(shí)現(xiàn)了對所有數(shù)據(jù)的處理,并且將經(jīng)過處理操作的數(shù)據(jù)輸出至存儲器中[10-11]。在一個(gè)算法運(yùn)行時(shí),設(shè)定算法的核心部分運(yùn)行時(shí)間占整個(gè)運(yùn)行時(shí)間的比例為f,非算法核心部分的運(yùn)行時(shí)間所占比例為1-f,所以消耗時(shí)間為:
如果通過硬件加速,那么加速器能夠使運(yùn)行算法核心所消耗的時(shí)間縮短為原來的s倍,這樣一來整個(gè)過程的運(yùn)行時(shí)間就為:
系統(tǒng)的整體性能就會得到有效的提高,其提高的效率為:
通過硬件來實(shí)現(xiàn)對系統(tǒng)的加速很大程度上依賴于算法的核心部分所占整個(gè)算法的比例。
邊緣檢測一般通過檢測灰度值的不連續(xù)性實(shí)現(xiàn),不連續(xù)性在圖像導(dǎo)數(shù)中的表現(xiàn)為:一階導(dǎo)數(shù)產(chǎn)生波峰或波谷,二階導(dǎo)數(shù)產(chǎn)生零交叉。
一階導(dǎo)數(shù)通常用梯度來表示,對于圖像函數(shù)f(x,y),梯度定義為:
幅度值和幅角為:
為了避免偏導(dǎo)數(shù)對每個(gè)像素進(jìn)行位置計(jì)算,實(shí)際常采用區(qū)域模板代替Gx和Gy,不同的模板產(chǎn)生不同的邊緣算子。Sobel算子是基礎(chǔ)的梯度算子,其算法結(jié)構(gòu)簡單,通過對鄰域像素點(diǎn)賦予不同權(quán)值計(jì)算梯度,因此Sobel算子能夠較好的抑制噪聲[1-3]。Sobel算子是加權(quán)平均,Gx,Gy模板如圖1所示。
圖1 Sobel算子模板
其表達(dá)式為:
系統(tǒng)主要由兩部分構(gòu)成:FPGA內(nèi)部的邏輯功能模塊和外圍硬件模塊。FPGA的內(nèi)部邏輯功能模塊負(fù)責(zé)對圖像數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)處理,主要包括對數(shù)據(jù)編碼和位寬控制、圖像數(shù)據(jù)的邊緣檢測;而外圍硬件模塊則由數(shù)據(jù)采集模塊∕顯示模塊組成。系統(tǒng)設(shè)計(jì)具體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)設(shè)計(jì)框圖
系統(tǒng)采用的圖像采集模塊基于OV7725,屬于CMOS攝像頭系列,CMOS攝像頭工藝簡單,成本較低,功耗小。OV7725首先進(jìn)行初始化,然后接收圖像信號以及進(jìn)行同步化設(shè)計(jì);在模塊設(shè)計(jì)時(shí)要求在寄存器修改后進(jìn)行10幀延時(shí),因此修改完成后需要進(jìn)行場計(jì)數(shù)延時(shí)等待,當(dāng)攝像頭穩(wěn)點(diǎn)后進(jìn)行采樣、拼接8bit輸入數(shù)據(jù),最終輸出處理后的數(shù)據(jù)。圖像采集模塊設(shè)計(jì)流程如圖3所示。
圖3 采集流程圖
IIC是飛利浦公司提出的一種低速串行通信協(xié)議,由串行參考時(shí)鐘(SCL)和串行數(shù)據(jù)(SDA)組成。系統(tǒng)中IIC模塊的串行時(shí)鐘(SCL)為12 Mhz,則iic_clk=2SCLK=24 Mhz。在執(zhí)行寫操作過程中,wr_req、addr、wr_data同步產(chǎn)生,需保持一個(gè)時(shí)鐘等到busy的下降沿出現(xiàn)時(shí)即完成寫操作;在執(zhí)行讀操作過程中,rd_req、addr同步產(chǎn)生,也需保持一個(gè)時(shí)鐘等到busy的下降沿出現(xiàn)時(shí)即完成讀操作,此時(shí)rd_data數(shù)據(jù)有效生成。在設(shè)計(jì)IIC模塊時(shí),為了使器件成功匹配應(yīng)該在IIC接口處上拉電阻。IIC頂層設(shè)計(jì)如圖4所示。
圖4 IIC頂層設(shè)計(jì)圖
(1)SDRAM頂層設(shè)計(jì)
SDRAM控制器系統(tǒng)時(shí)鐘為100 Mhz,圖像數(shù)據(jù)采集模塊的時(shí)鐘為24 Mhz,其輸出數(shù)據(jù)的頻率為12 Mhz,后端VGA控制模塊的時(shí)鐘為25 Mhz,由于在一個(gè)時(shí)鐘下系統(tǒng)只能對SDRAM中的一個(gè)地址進(jìn)行讀∕寫操作,來協(xié)調(diào)前后模塊的沖突,因此對SDRAM的讀∕寫控制是設(shè)計(jì)的核心部分,當(dāng)控制模塊和端口設(shè)置完成以后,對于頂層而言,系統(tǒng)對SDRAM和FIFO的操作過程基本一樣。讀∕寫操作的控制通過讀∕寫控制模塊根據(jù)讀∕寫端口存儲的數(shù)據(jù)量多少來判斷。SDRAM控制模塊如圖5所示。
(2)乒乓操作
設(shè)計(jì)中的難點(diǎn)就是跨時(shí)鐘域數(shù)據(jù)的實(shí)時(shí)傳輸問題,因此在圖像緩存模塊中調(diào)用FIFO模塊,其與SDRAM連接來作為數(shù)據(jù)的緩存模塊能夠便于系統(tǒng)整體功能的實(shí)現(xiàn)。系統(tǒng)通過調(diào)用異步FIFO和乒乓操作來實(shí)現(xiàn)跨時(shí)鐘域的數(shù)據(jù)傳輸以及圖像的實(shí)時(shí)傳輸問題。其中乒乓操作的結(jié)構(gòu)框圖如圖6所示,程序流程圖如圖7所示。
圖5 SDRAM控制器頂層框圖
圖6 乒乓操作框圖
圖7 乒乓操作程序設(shè)計(jì)流程圖
(3)SDRAM模塊仿真
SDRAM模塊的仿真圖如圖8所示,由仿真結(jié)果可知,在給定讀∕寫請求信號以及相應(yīng)地址時(shí),SDRAM就會進(jìn)行相應(yīng)的讀∕寫操作。
圖8 SDRAM仿真圖
通過圖像緩存、卷積計(jì)算以及門限處理模塊的應(yīng)用完成Sobel算子對圖像數(shù)據(jù)的邊緣檢測操作。圖像數(shù)據(jù)在水平和垂直方向上梯度的具體運(yùn)算是通過Sobel算子來實(shí)現(xiàn)的,然后再對這兩個(gè)值進(jìn)行均方根運(yùn)算,最后把最終的數(shù)據(jù)通過門限處理即可得到邊緣圖像數(shù)據(jù)。其具體結(jié)構(gòu)如圖9所示。
圖9 邊緣檢測硬件實(shí)現(xiàn)框圖
卷積運(yùn)算模塊在邊緣檢測模塊中肩負(fù)重大任務(wù),其要通過Sobel算子計(jì)算圖像數(shù)據(jù)水平、垂直兩個(gè)方向上的梯度值。在邊緣判斷上需要設(shè)計(jì)一個(gè)門限處理模塊,該模塊通過比較接收的圖像中心像素的梯度值與設(shè)定的閾值來判斷圖像的邊緣。當(dāng)梯度值比設(shè)定的閾值大時(shí)將其置1,比設(shè)定的閾值小時(shí)置0,此時(shí)即可得到圖像的邊緣。
Sobel算子的仿真波形如圖10所示。
圖10 Sobel算子模塊仿真圖
VGA視頻圖像陣列,是一種被業(yè)界廣泛使用的圖像顯示標(biāo)準(zhǔn)。采用ADV7123芯片來實(shí)現(xiàn)數(shù)∕模轉(zhuǎn)換,通過FPGA內(nèi)部的VGA控制模塊來完成正確的信號傳輸工作。顯示器是通過從左到右、從上到下的順序在顯示屏上進(jìn)行逐點(diǎn)的掃描,當(dāng)一行掃描完成后就產(chǎn)生同步負(fù)脈沖并且進(jìn)行行消隱,然后再掃描下一行直至整個(gè)屏幕掃描完成。
系統(tǒng)FPGA采用EP4CE6E22C8N為主控芯片,測試動態(tài)迷宮機(jī)器人的邊緣實(shí)時(shí)提取。視頻動態(tài)目標(biāo)采集與邊緣檢測圖像如圖11所示。視頻實(shí)時(shí)檢測結(jié)果如圖12所示。
圖11 視頻采集與邊緣檢測
圖12 目標(biāo)邊緣提取圖像
利用FPGA對數(shù)據(jù)的并行高速處理來保證系統(tǒng)傳輸?shù)膶?shí)時(shí)性,實(shí)時(shí)對動態(tài)目標(biāo)的邊緣進(jìn)行提取顯示,顯示分辨率為640x480。本系統(tǒng)具有高速、實(shí)時(shí)等優(yōu)點(diǎn),而且移植性很強(qiáng),對于大多數(shù)的實(shí)時(shí)圖像處理系統(tǒng)都可被應(yīng)用。
[1]趙堯,董恩增,于曉.基于改進(jìn)Sobel算子的實(shí)時(shí)邊緣檢測系統(tǒng)設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].天津理工大學(xué)學(xué)報(bào),2017,33(1):1-5.
[2]王曉娟,翟成瑞.基于FPGA聯(lián)合Sobel算法的實(shí)時(shí)圖像邊沿檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2017,25(1):34-37.
[3]李闊,劉苗,林楓,等.基于FPGA的Sobel邊沿檢測研究[J].信息通信,2017(1):57-58.
[4]仝海峰,蔡俊,范靜靜.基于FPGA實(shí)時(shí)Sobel邊緣檢測形態(tài)學(xué)優(yōu)化設(shè)計(jì)[J].微電子學(xué),2015,45(6):781-784.
[5]謝周標(biāo),周毅,龍斌.二維橢圓硬件加速算法研究及其FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(3):45-49.
[6]周光宇,劉慧忠.邊緣檢測算法的FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(10):271-275.
[7]寧賽男,朱明,孫宏海,等.一種改進(jìn)的Sobel自適應(yīng)邊緣檢測的FPGA實(shí)現(xiàn)[J].液晶與顯示,2014,29(3):395-402.
[8]劉速,孫偉峰,王洪君.目標(biāo)跟蹤系統(tǒng)在FPGA上的實(shí)時(shí)實(shí)現(xiàn)[J].西安電子科技大學(xué)學(xué)報(bào),2012,39(5):168-173.
[9]廖傳柱.一種基于FPGA的Sobel邊緣檢測算法與仿真研究[J].長江大學(xué)學(xué)報(bào)(自科版),2015,12(7):37-40.
[10]李濤.基于FPGA的Sobel算子實(shí)時(shí)圖像邊緣檢測系統(tǒng)的設(shè)計(jì)[D].北京:北京交通大學(xué),2013.
[11]馮亮,劉紫燕,祁佳.基于FPGA的視頻跟蹤系統(tǒng)目標(biāo)檢測方法研究[J].微型機(jī)與應(yīng)用,2014,(12):34-36.
〔責(zé)任編輯 高彩云〕
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-),男,山西臨汾人,碩士,助教,研究方向:模式識別與智能控制。