当前位置:首页 > 智能硬件 > 机器视觉
[导读] 从工业检测系统到自动驾驶系统,计算机视觉是一个包括许多有趣应用的广泛领域。许多这样的系统在原型和实现阶段都要用到开源计算机视觉 (Open Source Computer Vision Libr

从工业检测系统到自动驾驶系统,计算机视觉是一个包括许多有趣应用的广泛领域。许多这样的系统在原型和实现阶段都要用到开源计算机视觉 (Open Source Computer Vision Library,OpenCV)。OpenCV优化了许多功能函数,并在实时的计算机视觉程序中得到应用。但是,由于嵌入式优化策略得天独厚的优势,仍然值得大家尝试利用逻辑硬件来加速OpenCV的性能。

目前,OpenCV被广泛用于开发计算机视觉应用中。OpenCV包含2500多个优化的视频函数的函数库,并且专门针对台式机处理器和图形处理器(Graphic Processing Unit,GPU)进行优化。

Xilinx提供的Vivado HLS高层次综合工具能够通过C/C++ 编写的代码直接创建RTL硬件,显著提高设计效率;同时,Xilinx Zynq全可编程SOC系列器件嵌入双核ARM Cortex-A9处理器将软件可编程能力与FPGA的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现单芯片无以伦比的系统性能、灵活性、可扩展性,加速图形处理产品设计上市时间。OpenCV拥有成千上万的用户,而且OpenCV的设计无需修改即可在 Zynq器件的ARM处理器上运行。但是,利用OpenCV实现的高清处理经常受外部存储器的限制,尤其是存储带宽会成为性能瓶颈,存储访问也限制了功耗效率。通过Xilinx公司提供的Vivado HLS高级语言综合工具,设计者可以轻松实现OpenCV C++视频处理设计到RTL代码的转换,将其转换为可以在Zynq实现的硬件加速器或者在FPGA上实现的实时硬件视频处理单元。

1、 OpenCV和HLS视频库

如图15.83所示,OpenCV在视频处理系统中可以有不同的应用方式。在图15.83(a)中,算法的设计和实现完全依赖于OpenCV的函数调用,利用文件的访问功能进行图片的输入、输出和处理;在图15.83(b)中,算法可以在嵌入式系统(例如Zynq Base TRD)中实现,利用特定平台的函数调用访问输入输出图像,但是,视频处理的实现依赖于嵌入式系统中处理器(例如Cortex™-A9)对OpenCV功能函数的调用;在图15.83(c)中,处理算法的OpenCV功能函数被Xilinx Vivado HLS视频库函数替换,而OpenCV函数则用于访问输入和输出图像,提供视频处理算法实现的设计原型。Vivado HLS提供的视频库函数可以被综合,在对这些函数综合后,可以将处理程序模块整合到诸如Zynq的可编程逻辑中。这样,这些程序逻辑块就可以处理由处理器生产的视频流、从文件中读取的数据、外部输入的实时视频流。

图15.83 OpenCV应用的不同方式

Vivado HLS包含大量的视频库函数,方便于构建各种各样的视频处理程序。通过可综合的C++代码,实现这些视频库函数。在视频处理功能和数据结构方面,这些综合后的代码与OpenCV基本对应。许多视频概念与抽象和OpenCV非常相似,很多图像处理模块函数和OpenCV库函数一致。

例如,OpenCV中用于代表图片的很重要的一个类便是cv::Mat类,cv::Mat对象定义如下:
cv::Mat image(1080, 1920, CV_8UC3);

该行代码声明了一个1080&TImes;1920像素,每一个像素都是由3个8位无符号数表示的变量image。对应的HLS视频库模板类hls::Mat<>声明如下:
hls::Mat<2047, 2047, HLS_8UC3> image(1080, 1920);

这两行代码的参数形式、图像尺寸最大值、语法规则不同,生成的对象是相似的。如果图像规定的最大尺寸和图像的实际尺寸相同的话,也可以用下面的代码替代:
hls::Mat<1080, 1920, HLS_8UC3> image( );

表15.14给出了一个简单的图像转换函数应用对比(功能实现dst=src*2.0+0.0)。

表15.15和表15.16给出了OpenCV和HLS视频库的核心结构和HLS视频库。

2、AXI4流和视频接口

通过AXI4流协议,Xilinx提供的视频处理模块实现像素数据通信。尽管底层AXI4流媒体协议不需要限制图片尺寸,但是,若图片尺寸相同,则将会大大简化大部分的复杂视频处理计算。对于遵循AXI4流协议的输入接口,可以保证每一帧都包含ROWS * COLS的像素。在保证前面视频帧保持完整性和矩形性的情况下,后续模块实现对视频帧有效地处理。

如表15.17所示,Vivado HLS包含2个可综合的视频接口转换函数。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭