袁柳 高陽(yáng)陽(yáng) 張睿 李勐
摘要:針對(duì)圖像處理應(yīng)用特點(diǎn),提出一種基于NetFPGA開發(fā)平臺(tái)的圖像處理框架。圖像處理框架由軟核、UART模塊、BRAM模塊、VDMA模塊和圖像處理模塊組成,提供統(tǒng)一圖像處理IP核接口。測(cè)試表明,該框架可以高效實(shí)現(xiàn)SIFT特征提取典型圖像處理應(yīng)用。
關(guān)鍵詞:FPGA;VDMA;圖像處理;軟核
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)05-0147-02
隨著大數(shù)據(jù)和人工智能行業(yè)發(fā)展,圖像處理應(yīng)用的數(shù)據(jù)量、運(yùn)算量逐漸增大,傳統(tǒng)的CPU架構(gòu)無(wú)法滿足圖像處理數(shù)據(jù)密集型計(jì)算需要,需要GPU、FPGA等異構(gòu)計(jì)算方案。由于FPGA功耗低、硬件可編程、并行性高、適合嵌入式場(chǎng)合等特點(diǎn),越來越多被應(yīng)用到圖像處理場(chǎng)合[1-3]。但是FPGA平臺(tái)存在開發(fā)難度大,缺乏統(tǒng)一框架等問題。本文基于NetFPGA開發(fā)平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了一種基于VDMA的圖像處理框架,該框架可以提供統(tǒng)一的圖像處理IP核接口,便于下一步開發(fā)和代碼移植。
1 圖像處理框架組成
基于VDMA的圖像處理框架的系統(tǒng)框圖如圖1所示。本系統(tǒng)主要由軟核、BRAM模塊、VDMA模塊和圖像處理模塊、UART模塊組成,集成于FPGA中。其中:
MicroBlaze軟核為嵌入在FPGA中的RISC處理器軟核,具備處理速度快、可配置等特點(diǎn),負(fù)責(zé)控制其他模塊完成各項(xiàng)功能;BRAM模塊提供可配置的存儲(chǔ)緩存功能,支持讀寫同步操作,用于緩存輸入圖像和圖像處理結(jié)果;VDMA模塊基于FPGA的IP核實(shí)現(xiàn),擁有2個(gè)DMA通道,為AXI4格式的圖像視頻數(shù)據(jù)流提供高速數(shù)據(jù)傳輸通道,用于完成BRAM和圖像處理模塊間的數(shù)據(jù)傳輸;圖像處理模塊設(shè)計(jì)統(tǒng)一的IP核接口,內(nèi)部為圖像處理應(yīng)用的邏輯實(shí)現(xiàn),用于完成核心的圖像處理功能;UART模塊用于將FPGA的圖像處理結(jié)果發(fā)送給PC端。
在進(jìn)行圖像處理應(yīng)用執(zhí)行時(shí),主要通過如下步驟完成基于FPGA的圖像處理過程。首先將輸入圖像以數(shù)組的形式存儲(chǔ)在軟核的堆棧中;在應(yīng)用程序啟動(dòng)后,通過軟核將輸入圖像數(shù)據(jù)緩存到BRAM中;再通過VDMA的讀通道讀出輸入圖像數(shù)據(jù)并將其發(fā)送至圖像處理模塊;圖像處理模塊調(diào)用統(tǒng)一的圖像處理IP核硬件接口完成圖像處理應(yīng)用執(zhí)行;然后通過VDMA的寫通道接收?qǐng)D像處理模塊的輸出結(jié)果并緩存到BRAM中;最后通過軟核從BRAM中讀出處理結(jié)果并通過UART串口發(fā)送給PC端。
2 圖像處理模塊
圖像處理模塊IP核的硬件接口如圖2所示,不同的圖像處理應(yīng)用均可以使用統(tǒng)一的硬件接口。其中包括:輸入圖像數(shù)據(jù)接口,輸出圖像數(shù)據(jù)接口,控制接口和中斷信號(hào)接口。輸入圖像數(shù)據(jù)接口輸入Axi4格式的圖像數(shù)據(jù)流,圖像數(shù)據(jù)流格式統(tǒng)一定義為:數(shù)據(jù)流位寬支持8/16/32位,數(shù)據(jù)行數(shù)為圖像高度,列數(shù)為圖像寬度。輸出圖像數(shù)據(jù)接口輸出處理后的數(shù)據(jù)流,數(shù)據(jù)流格式被統(tǒng)一定義為:數(shù)據(jù)流寬度為8/16/32位,可以為輸出圖像數(shù)據(jù),也可以是輸出的圖像處理標(biāo)簽、準(zhǔn)確度結(jié)果等非圖像數(shù)據(jù),在輸出非圖像數(shù)據(jù)的情況下,數(shù)據(jù)流行數(shù)和列數(shù)由用戶定義??刂平涌谟糜谠谲浐酥锌刂茍D像處理模塊,包括啟動(dòng)、使能中斷、給參數(shù)賦值等。
3 系統(tǒng)測(cè)試
本文的測(cè)試系統(tǒng)基于NetFPGA SUME開發(fā)平臺(tái)實(shí)現(xiàn),該開發(fā)平臺(tái)集成一塊高性能Xilinx Virtex-7 XC7V690T FPGA,支持圖像數(shù)據(jù)應(yīng)用數(shù)據(jù)的存儲(chǔ)和高性能處理。本文基于NetFPGA SUME平臺(tái),在CPU端安裝Ubuntu操作系統(tǒng)及FPGA驅(qū)動(dòng),利用Vivado HLS和Vivado 2018.2 完成FPGA端的開發(fā)工作。
在NetFPGA平臺(tái)的基礎(chǔ)上,本文以尺度不變特征轉(zhuǎn)換SIFT特征提取算法為例,驗(yàn)證圖像處理框架的有效性和高效性。SIFT算法具備尺度不變性特征,被廣泛應(yīng)用于視頻、圖像特征提取領(lǐng)域。SIFT特征提取算法主要包括如下步驟:構(gòu)建多尺度高斯金字塔和DOG金字塔;空間極值點(diǎn)檢測(cè);低質(zhì)量極值點(diǎn)剔除;關(guān)鍵方向匹配和特征點(diǎn)描述。
圖3給出SIFT特征提取算法的運(yùn)行結(jié)果,測(cè)試表明該圖像處理框架可較好實(shí)現(xiàn)算法功能。表1給出SIFT特征提取算法在CPU和NetFPGA中的運(yùn)行時(shí)間對(duì)比,其中CPU的OpenCV處理時(shí)間為74ms,F(xiàn)PGA在50Hz時(shí)鐘頻率下運(yùn)行時(shí)間為78ms,執(zhí)行效率類似,可以在嵌入式低功耗下滿足圖像處理算法運(yùn)行時(shí)間需求。
4 結(jié)語(yǔ)
本文提出一種基于NetFPGA實(shí)現(xiàn)的統(tǒng)一圖像處理框架,包括軟核、BRAM模塊、VDMA模塊、圖像處理模塊和URAT模塊。該框架提供統(tǒng)一的圖像處理IP核硬件接口,方便圖像處理應(yīng)用開發(fā)和移植?;趫D像處理框架實(shí)現(xiàn)了SIFT特征提取應(yīng)用,運(yùn)行時(shí)間78ms,可以滿足圖像處理算法高效處理需求。
參考文獻(xiàn)
[1] 王闖.一種基于FPGA的實(shí)時(shí)圖像增強(qiáng)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2018,48(5):255-256.
[2] 劉桂華,陳林宇,肖得勝.基于FPGA的圖像多尺度特征點(diǎn)提取及匹配[J].電視技術(shù),2016,40(9):103-107.
[3] 李錦明,侯天喜,高文剛,成乃朋.基于FPGA和DSP的圖像拼接系統(tǒng)[J].儀表技術(shù)與傳感器,2018(7):46-49.