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
主站蜘蛛池模板: 国产精品蜜芽在线观看| 国产成人久久综合777777麻豆| 4虎影视国产在线观看精品| 欧美啪啪一区| 婷婷午夜影院| 国产女人水多毛片18| 一级一级一片免费| 亚洲AV无码一区二区三区牲色| 丝袜国产一区| 国产一区二区三区精品欧美日韩| 国产成人永久免费视频| 久久国产免费观看| 欧美性猛交一区二区三区| 国产不卡国语在线| 色天天综合久久久久综合片| 99热这里都是国产精品| 嫩草国产在线| 日本人妻一区二区三区不卡影院| 青草视频在线观看国产| 亚洲精品在线观看91| 久久国产亚洲偷自| 特级精品毛片免费观看| 在线播放国产99re| 国产亚洲欧美另类一区二区| 亚洲小视频网站| 国产真实二区一区在线亚洲| 99成人在线观看| 国产精品中文免费福利| 国产精品亚洲五月天高清| 午夜福利网址| 午夜福利视频一区| 青青草原国产一区二区| 精品欧美日韩国产日漫一区不卡| 亚洲av无码牛牛影视在线二区| 国产欧美日韩在线在线不卡视频| 国产情侣一区| 国产成人一区| 激情影院内射美女| 一级高清毛片免费a级高清毛片| 国产成人综合网在线观看| 色综合久久88| 最新国产你懂的在线网址| 成人一级免费视频| 在线看国产精品| 91亚瑟视频| 国产欧美日韩免费| 久久综合结合久久狠狠狠97色| 深夜福利视频一区二区| 婷婷伊人久久| 欧美色综合久久| 激情無極限的亚洲一区免费| 丰满人妻久久中文字幕| 激情爆乳一区二区| 色网站免费在线观看| 色综合久久无码网| 亚洲最新在线| 国产玖玖玖精品视频| 在线毛片网站| 成人国产精品网站在线看| 国产美女精品人人做人人爽| 欧美成人精品在线| 美女潮喷出白浆在线观看视频| 成人在线不卡| 国产毛片久久国产| 久久精品只有这里有| 日韩精品一区二区三区大桥未久 | 欧美va亚洲va香蕉在线| 福利一区在线| 国产不卡一级毛片视频| 国产h视频在线观看视频| 成人福利在线观看| 久久性视频| 亚洲中文字幕av无码区| 青青草原国产精品啪啪视频| 亚洲国模精品一区| 国产成人精品日本亚洲| 日本欧美午夜| 久久免费视频6| 激情综合网址| 亚洲AV无码乱码在线观看裸奔| 午夜精品久久久久久久99热下载 | 四虎国产精品永久一区|