XAPP1167(v2.0)2013.8.27-Accelerating OpenCV Applications with Zynq-7000 All Programmable SoC翻译

本文档介绍了如何使用Vivado HLS视频库加速基于Zynq-7000 All Programmable SoC的OpenCV应用程序。设计流程涉及将OpenCV函数转换为综合的C++代码,然后在ZYNQ设备上实现。文中详细阐述了设计步骤,包括创建新设计、构建OpenCV应用、生成IP核以及在硬件上测试。同时,文档还讨论了Vivado HLS中的视频处理库、架构和限制。
摘要由CSDN通过智能技术生成

July 21, 2016
作者:dengshuai_super
出处:http://blog.csdn.net/dengshuai_super/article/details/51975607
声明:转载请注明作者及出处。


整理自:
http://xilinx.eetrend.com/files-eetrend-xilinx/download/201401/6326-10718-xapp1167.pdf

Accelerating OpenCV Applications with Zynq-7000 All Programmable SoC using Vivado HLS Video Libraries

Author: Stephen Neuendorffer, Thomas Li, and Devin Wang


Summary

本应用笔记介绍OpenCV库如何被用来制定Zynq® -7000所有Programmable SoC的计算机视觉应用。 OpenCV的可在设计过程中的许多不同的点被使用,从算法原型到在系统执行。 OpenCV的代码也可以使用与Vivado®高层次综合( HLS)交付视频库迁移到综合的C ++代码。当集成到一个ZYNQ SoC设计,合成的块使能高的分辨率和帧速率的计算机视觉算法来实现。


Introduction

计算机视觉是一个领域,广义上包括许多有趣的应用程序,从检测不当制造项目,可以驱动汽车的汽车系统工业监控系统。许多计算机视觉系统的实施或使用OpenCV的,其中包含了许多常见的计算机视觉功能针对台式机处理器和GPU的优化实现库原型。虽然在OpenCV库许多功能已被高度优化,以使许多计算机视觉应用至接近运行以实时的,优化的嵌入式实现是常优选的。

本应用笔记介绍设计流程使OpenCV的程序重新定向到ZYNQ设备。设计流程利用了HLS技术在Vivado设计套件,具有优化的综合视频库一起。该库可以直接使用,或与特定应用程序代码来构建针对特定应用定制的加速器。这种流动可以启用许多计算机视觉算法与高性能和低功耗的快速实施。流也使设计目标的高数据率的像素处理任务到可编程逻辑,而基于帧更低的数据速率处理任务保留在ARM®内核。

如下面的图所示,OpenCV的可在多个点处的视频处理系统的设计中使用。在左边,一种算法可以被设计并实现完全使用OpenCV的函数调用,既输入和输出图像使用文件访问的功能和处理图像。接着,该算法可以在嵌入式系统(如ZYNQ基地TRD)来实现,访问使用特定平台的函数调用的输入和输出的图像。在这种情况下,视频处理仍然实现使用OpenCV函数调用的处理器(如在ZYNQ处理器系统的CortexTM-A9处理器内核)上执行。可替代地,OpenCV的函数调用可通过从Xilinx Vivado HLS视频库对应合成函数来代替。然后OpenCV的函数调用可用于访问输入和输出图像,并提供一个视频处理算法的金色参考实现。合成后,将处理块可被集成到ZYNQ可编程逻辑。根据在可编程逻辑中实现的设计,集成块可以是能够处理由处理器,创建的视频流,例如从文件,或从外部输入的现场实时视频流读出的数据。

这里写图片描述

本应用笔记的设计流程一般遵循以下步骤:
1.制定并执行桌面的应用程序的OpenCV 。
2.重新编译和执行的ZYNQ SoC的OpenCV的应用,无需修改。
3.使用I / O功能封装加速器函数 重构OpenCV的应用。
4.用加速器函数的综合视频库函数调用代替OpenCV的函数的调用。
5.使用Vivado HLS生成加速器函数和相应的API 。
6.通过调用加速器API函数代替调用加速器函数
7.重新编译并执行加速应用程序


Reference Design

The reference design files can be downloaded from:
https://secure.xilinx.com/webreg/clickthrough.do?cid=323570
The reference design matrix is shown in Table 1.
这里写图片描述
这里写图片描述


Video Processing Libraries in Vivado HLS

Vivado HLS包含了一些视频库,目的是为了使您更容易构建各种视频处理的。这些库被实现为综合的C ++代码,并大致相当于OpenCV的实现视频处理功能和数据结构。许多的视频概念和抽象非常类似于在OpenCV的概念和抽象。特别是,许多OpenCV的imgproc模块中的功能也相应的Vivado HLS库函数。

例如,在OpenCV的最中心的元件中的一个是CV ::Mat类,它通常是用于表示在视频处理系统中的图像。cv::Mat对象通常是声明是这样的:
cv::Mat image(1080, 1920, CV_8UC3);
此声明一个可变图像和初始化它具有1080行和1920列,其中每个像素由3八位无符号数代表的代表图像。该综合库包含相应的H

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值