999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種硬件加速OpenCV的圖像處理方法研究

2015-10-19 10:02:41張俊濤王園偉陜西科技大學電氣與信息工程學院陜西西安700北京航空航天大學可靠性與系統工程學院北京009
網絡安全與數據管理 2015年22期
關鍵詞:程序設計

張俊濤,王園偉,龐 多(.陜西科技大學 電氣與信息工程學院,陜西 西安 700;.北京航空航天大學 可靠性與系統工程學院,北京 009)

一種硬件加速OpenCV的圖像處理方法研究

張俊濤1,王園偉1,龐 多2
(1.陜西科技大學 電氣與信息工程學院,陜西 西安 710021;2.北京航空航天大學 可靠性與系統工程學院,北京 10091)

研究了一種基于Vivado HLS加速OpenCV程序的方法,其核心是利用Xilinx高層次綜合工具Vivado HLS,將C++編寫的OpenCV程序按照Vivado HLS處理規范進行修改,進而將代碼轉換為硬件描述語言,可快速生成IP核。結合Xilinx Zynq SoC架構和其視頻圖像處理方面的優勢,通過軟硬件協同的方法,實現OpenCV程序算法向高性能處理平臺Zynq SoC系統的移植和加速。該方法對圖像處理軟件設計的硬件化加速具有重要的應用價值。

開源計算機視覺;圖像處理;高層次綜合;加速

0 引言

開源計算機視覺庫 OpenCV是目前最受歡迎的開源計算機視覺軟件函數包[1],為計算機視覺的研究和圖像處理應用提供了很大的便利。然而,OpenCV程序算法都是在PC上通過軟件運行的方式實現,存在處理實時性差、適用范圍有限等問題,尤其是在高清圖像處理方面經常受到外部存儲器性能的限制,存儲帶寬經常成為其程序優化的瓶頸,并且存儲訪問也限制了功耗效率[2]。

基于FPGA可用全硬件實現圖像處理算法,在嵌入式系統應用中得天獨厚,所以很值得嘗試利用可編程邏輯硬件來加速OpenCV。Vivado HLS是Xilinx最新開發的一種高級綜合工具,可以直接將C/C++編寫的算法程序進行仿真綜合成RTL,從而可以在FPGA上實現圖像處理算法。Vivado HLS具有專門的圖像處理庫,與OpenCV函數對應。

本文主要研究高層次綜合工具 Vivado HLS及 Xilinx Zynq SOC全可編程處理平臺、Vivado圖像視頻函數庫,并通過高級綜合工具Vivado HLS將OpenCV轉化為RTL處理流程,在Xilinx Zynq SoC系列全可編程處理平臺上實現OpenCV程序算法的硬件加速。以邊緣檢測為例說明加速流程。

1 Zynq SOC與HLS

Xilinx Zynq SOC是具有 ARM+FPGA架構的全可編程處理器,集成了雙核Cortex-A9處理系統、FPGA邏輯和一些關鍵外設,提供了軟硬件和I/O可編程性。Zynq SOC具有64位高性能端口,可以實現對外部存儲器的訪問;還有32位通用端口實現控制寄存器的訪問,并且使用AXI4-Stream能更好地解決高清視頻流速度問題。處理子系統、FPGA邏輯和外設在Zynq SOC中的高度集成性確保了相對于采用分離式組建設計的系統而言提高數據傳輸速率,高度的軟硬件集成性能幫助設計人員實現極為高效的嵌入式視覺系統,降低功耗和材料清單成本。Zynq SoC視頻圖像處理架構如圖 1所示[3]。為了全面利用 Zynq SOC的諸多性能,Xilinx推出了以 IP設計為中心的設計環境Vivado設計套件,該套件可加速集成和設計實現。而Vivado HLS作為該套件的一個重要組件,能幫助設計人員將采用C/C++語言的開發的算法編譯為RTL,以便在 FPGA邏輯中運行。在圖像處理復雜算法中,通過C/C++創建算法原型,再利用Vivado HLS將算法或者算法的一部分編譯為RTL,進而確定哪些函數更適合在FPGA邏輯中運行,哪些函數適合在ARM上運行,這樣更能集中精力設計出最佳性能的基于Zynq SOC的視覺系統。利用高級綜合工具 Vivado HLS開發的流程如圖2所示。

圖2 Vivado HLS設計和處理過程

2 OpenCV算法程序到Vivado HLS程序的修改

對OpenCV程序的硬件加速,實際上是將OpenCV轉化為可綜合的代碼,用可綜合的Vivado HLS視頻庫函數代替OpenCV函數。VIvado HLS具有專門支持OpenCV的視頻函數庫,這些函數可以代替OpenCV函數,并且能很好地綜合為 RTl代碼,進而可以利用 Zynq全可編程SoC的優勢實現圖像或者視頻的處理。

2.1 OpenCV與Vivado HLS視頻函數庫

Vivado HLS高級語言綜合工具包含了專門的OpenCV視頻庫,通過HLS庫中的函數代替原本 OpenCV算法程序中的函數便可以完成由 OpenCV到 HLS的轉化,在 Zynq上硬件化后,提高OpenCV應用效率[4]。

OpenCV經常用到的數據類型有 Mat、CvMat和IplImage[5],VivadoHLS視頻處理函數庫使用 hls::Mat<>數據類型,這種類型用于模型化視頻像素流處理,等同于hls::steam<>流的類型,而不是OpenCV中在外部 memory中存儲的matrix矩陣類型。因此,在用Vivado HLS實現OpenCV的設計中,需要將輸入和輸出HLS可綜合的視頻設計接口修改為 Video stream接口,也就是采用HLS提供的 Video接口可綜合函數,實現 AXI4 Video stream到Vivado HLS中hls::Mat<>類型的轉換[6]。

從軟件到RTL過程中,最關鍵的是接口問題,而HLS創建的硬件專注于硬件接口,Vivado HLS支持以相對較小的可以輕松創建AXI的從接口,從而使硬件加速器設計變得簡單。在視頻處理中,Xilinx通過 AXI4流協議來實現像素通信,以更小的元素來傳輸視頻幀,可以不用知道視頻流的大小或者圖片的尺寸,大大簡化了視頻處理計算。

2.2 OpenCV程序修改方法

使用HLS加速OpenCV時,需要先用I/O函數提取FPGA實現部分,用可綜合的Vivado HLS函數庫函數代替OpenCV函數。在Zynq開發中使用Vivado HLS實現OpenCV的設計流程如下[7]:

首先,開發 OpenCV的應用,編寫源碼和測試文件,并且采用C++編譯器進行編譯、仿真和調試,產生可執行文件。

其次,使用I/O函數抽取FPGA實現部分,并且使用可綜合的 Vivado HLS庫函數代碼代替 OpenCV函數的調用。其流程如圖3所示。

圖3 OpenCV函數程序到HLS函數程序轉化

最后,運用HLS生成的RTL代碼,在Vivado HLS工程中啟動co-sim,HLS工具自動重用OpenCV的測試激勵驗證產生的RTL代碼。在Xilinx的Vivado集成開發環境中做RTL集成和SOC/FPGA實現。

3 硬件加速OpenCV程序應用

本文通過邊緣檢測算法來介紹硬件加速OpenCV應用。根據前面介紹的方法,利用OpenCV庫函數先設計出邊緣檢測算法原型,如圖4所示,并使用基于OpenCV的測試激勵驗證這個算法。再改寫前面設計好的OpenCV算法程序,按照視頻數據鏈的形式重新改寫,如圖5所示,這樣與HLS視頻庫處理機制相同,方便函數替換。最后將改寫好的 OpenCV程序中的函數替換為HLS提供的相應功能的函數,如圖6所示,并且使用Vivado HLS工具綜合,綜合之后生成 IP,在 Vivado集成開發環境中以IP為核心完成設計,在SDK中利用原OpenCV測試激勵進行測試,基于邊緣設計應用測試結果如圖7所示。

圖4 OpenCV原型設計

圖5 基于視頻數據鏈的OpenCV程序

圖6 函數替換后的可綜合的代碼

4 結論

使用高層次綜合工具 Vivado HLS結合邏輯可編程FPGA或者 Zynq SOC實現 OpenCV在高分辨幀率的實時視頻處理是解決目前OpenCV軟件程序速度優化瓶頸問題的有效方法。采用Vivado HLS視頻庫能加快OpenCV函數向可綜合邏輯器件 Zynq SOC或 FPGA的映射。同樣,也可以利用 Zynq SOC結合 Vivado HLS工具的方法,來硬件加速其他計算機軟件設計。該方法對加速優化高速算法軟件設計具有一定的參考價值。

圖7 邊緣檢測結果

[1]張秀榮,孟和達來.數字圖像處理系統開發與研究[J].湖南師范大學學報(自然科學版),2011,34(6):35-39.

[2]BRADSKIG,KACHLER A.Learning OpenCV(1st Edition)[M].O′Reily Media,Inc.,2008.

[3]Xilinx Inc.Accelerating OpenCV applications with zynq-7000all programmable SoC using Vivado HLS video libraries[Z].http://www.xilinx.com/support/documentation/application_notes/xapp1167.pdf.2014.

[4]Xilinx Inc.Vivado design suite tutorial high-level synthesis[Z].http://www.xilinx.com/support/documentation/sw_manuals/xilinx 2012_4/ug871-vivadohigh-level-synthesis-tutorial.pdf.2014.

[5]郭暉,陳光.基于 OpenCV的視頻圖像處理應用研究[J].微型機與應用,2010,29(21):14-20.

[6]叢秋波.Vivado設計套件將可編程系統集成度和實施速度提升 4倍[J].電子設計技術,2012(6):22-24.

[7]何賓,張艷輝.Xilinx FPGA數字信號處理權威指南[M].北京:清華大學出版社,2014.

A method to accelerate the OpenCV program in image processing

Zhang Juntao1,Wang Yuanwei1,Pang Duo2
(1.School of Electricity and Information Engineering,Shanxi Uiniversity of Science and Technology,Xi′an 710021,China;2.School of Reliability and Systems Engineering,Beihang University,Beijing 100191,China)

This paper introduced a method to accelerate the OpenCV program based on Vivado HLS.The core of the method is that with the High-level synthesis tools Vivado HLS,and OpenCV written in C++program will be modificated according to Vivado HLS processing structure,which converts the code to HDL and may generate IP core.Considering the Xilinx Zynq SoC architecture and its advantages,with this method of synergy from software and hardware,OpenCV program algorithm can be transplantated to the high performance processing platform Zynq SoC system and accelerate the implementation.This method has a certain reference value to software design of high speed optimization in image processing.

OpenCV;image processing;vivado HLS;accelerate

TN851

A

1674-7720(2015)22-0041-03

張俊濤,王園偉,龐多.一種硬件加速OpenCV的圖像處理方法研究[J].微型機與應用,2015,34(22):41-43.

2015-08-21)

張俊濤(1966-),男,教授,碩士生導師,主要研究方向:軟件無線電、信號與信號處理、EDA技術及應用。

王園偉(1989-),通信作者,男,碩士研究生,主要研究方向:嵌入式應用、EDA 技術及應用。E-mail:455069997@qq.com。

龐多(1989-),女,碩士研究生,主要研究方向:系統工程,可靠性。

猜你喜歡
程序設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 一级毛片基地| 91精品视频网站| 激情综合图区| 国产精品9| 最近最新中文字幕免费的一页| 久久国产成人精品国产成人亚洲| 亚洲第一在线播放| 美女被狂躁www在线观看| a毛片在线| 久久伊人色| 国产精品一区二区无码免费看片| 97在线免费| 日韩国产一区二区三区无码| 一区二区欧美日韩高清免费| 欧美综合区自拍亚洲综合绿色| 亚洲第一视频区| 国产精品成人观看视频国产| 国产一区二区三区在线观看视频 | 成人午夜久久| 亚洲永久免费网站| 婷婷久久综合九色综合88| 国产成人精品男人的天堂下载| 青青草国产一区二区三区| 奇米影视狠狠精品7777| 一区二区三区成人| 伊人无码视屏| 欧美激情二区三区| 91精品人妻互换| 日本在线欧美在线| 亚洲天堂日韩av电影| 麻豆精品久久久久久久99蜜桃| 亚洲中久无码永久在线观看软件| 无码专区在线观看| 免费无码又爽又黄又刺激网站| 国产一级毛片网站| 中文字幕1区2区| 国产成人无码Av在线播放无广告| 伊人久久大线影院首页| 久久久精品无码一二三区| 成年看免费观看视频拍拍| 一本色道久久88| 在线欧美a| 国产欧美高清| 亚洲中文字幕久久无码精品A| 久久国语对白| 成人精品在线观看| 国产麻豆va精品视频| 久久综合丝袜长腿丝袜| 久久亚洲美女精品国产精品| 色AV色 综合网站| 国产精品13页| 亚洲男人的天堂久久香蕉网| 国产精品任我爽爆在线播放6080 | 亚洲一区二区三区中文字幕5566| 中文字幕无码电影| 亚洲中久无码永久在线观看软件| 91国内外精品自在线播放| 麻豆国产精品一二三在线观看| 成人蜜桃网| 国产人成在线观看| 欧美色综合久久| 欧美日韩综合网| 欧美激情视频二区| 视频一区亚洲| 国产另类视频| 丝袜国产一区| 亚洲av无码片一区二区三区| julia中文字幕久久亚洲| 欧美a在线| 国产精品亚洲一区二区三区z| 国产一区免费在线观看| 99人体免费视频| 精品一区二区三区视频免费观看| 91精品福利自产拍在线观看| 美女被操91视频| 国产精品男人的天堂| 亚洲第一视频网| 97精品伊人久久大香线蕉| 欧美一区二区精品久久久| 欧美日韩国产综合视频在线观看| 色呦呦手机在线精品| 国产视频大全|