用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式视觉应用开发
将Vivado HLS与OpenCV库配合使用,既能实现快速原型设计,又能加快基于Zynq All Programmable SoC的Smarter Vision系统的开发进度。
计算机视觉技术几年来已发展成为学术界一个相当成熟的科研领域,目前许多视觉算法来自于数十年的科研成果。不过,我们最近发现计算机视觉技术正快速渗透到我们生活的方方面面。现在我们拥有能自动驾驶的汽车、能根据我们的每个动作做出反应的游戏机、自动工作的吸尘器、能根据我们的手势做出响应的手机,以及其它等视觉产品。
今天我们面临的挑战就是如何高效实现上述这些及未来的各种视觉系统,同时满足严格的功耗和上市要求。此类产品可以Zynq™ All Programmable SoC为基础,并结合广泛使用的计算机视觉库OpenCV和高层次综合(HLS)工具,以实现关键功能的硬件加速。这种强强组合能为设计和实现Smarter Vision系统提供强大的平台。
嵌入式系统在当今的市场中无所不在。不过,计算功能方面的局限性,尤其是在处理大型图片、高帧率时计算能力低下严重限制了嵌入式系统在计算机/机器视觉实际实现方面的应用。图像传感器技术的发展犹如为嵌入式器件装上了慧眼,能帮助该器件通过计算机视觉算法与环境互动。嵌入式系统和计算机/机器视觉的融合催生了嵌入式视觉技术,这是一个快速发展的领域,正成为设计能够观看并了解周边环境的设备的基础所在。
嵌入式视觉系统的开发
嵌入式视觉技术要在计算平台上运行智能计算机视觉算法。对许多用户来说,标准的桌面计算处理平台即可方便地满足需求。不过,一般性计算平台或许无法满足高度嵌入式产品的生产需求,这种产品要做到小型化、高效性、低功耗,而且要处理庞大的图像数据集,比如同时处理多个每秒60帧的实时高清视频流。
图1给出了设计人员通常用来创建嵌入式视觉应用的流程。算法设计是整个流程中最重要的一环,因为算法将决定我们能否满足任何特定计算机视觉任务的处理和质量标准要求。首先,设计人员在MATLAB®等数字计算环境中搜索算法选项,明确高级处理选项。一旦确定了适当的算法,设计人员通常用C/C++等高级语言来为算法建模,以便快速执行,并满足最终比特精度实现方案的要求。
系统分区是开发过程中的重要步骤。在此,设计人员通过算法性能分析,可明确他们要对算法的哪些部分进行硬件加速,从而满足处理代表性输入数据集的实时要求。同样重要的是对目标平台中的整个系统进行原型设计,从而实际地检测性能预期。一旦原型设计过程说明设计满足了所有性能和质量目标要求,那么设计人员就能在实际的目标器件中启动最终系统实现。最后一步就是测试运行在芯片上的设计在各种用例场景下的表现。一切检查完成后,设计团队就能发布最终产品。

图1 嵌入式视觉系统开发流程
赛灵思All Programmable SoC是以处理器为中心的器件,在单芯片上提供了软/硬件和I/O可编程性。Zynq SoC在单个器件中集成了一个ARM®双核Cortex™-A9 MPCore™处理系统、FPGA逻辑和一些关键外设。这样,该器件就能帮助设计人员实现极为高效的嵌入式视觉系统。
处理子系统、FPGA逻辑和外设在Zynq SoC中的高度集成能确保相对于采用分立式组件设计而成的系统而言提高数据传输速率,降低功耗和材料清单成本。我们能用Zynq SoC实现实时处理支持1080p60视频序列(1,920 x 1,080 RGB图像,每秒60帧)的系统,达到每秒数千亿次运算的处理功能。
为了全面利用Zynq SoC的诸多功能与特性,赛灵思推出了以IP和系统为中心的设计环境Vivado™设计套件。该套件可加速集成和实现,从而可帮助设计人员提高开发生产力,进而动态开发出Smater嵌入式产品。Vivado HLS作为该套件的一个组件,能帮助设计人员将采用C/C++语言开发的算法编译为RTL,以便在FPGA逻辑中运行。
Vivado HLS工具非常适用于嵌入式视觉设计。在此流程中,您用C/C++创建您的算法,再用Vivado HLS将算法或算法的一部分编译为RTL,进而确定哪些函数更适合在FPGA逻辑中运行,哪些函数更适合在ARM处理器上运行。这样,您的设计团队就能集中精力打造出最佳性能的基于Zynq SoC的视觉系统。
加速算法C到IP集成
ZYNQ SOC:嵌入式视觉的最明智的选择
在开发机器视觉应用过程中,设计团队必须选择高度灵活的器件,这一点至关重要。设计团队所需的计算平台应提供强大的通用处理功能,以支持多种不同的软件生态系统,此外还要有稳健可靠的数字信号处理功能,以便实现计算强度高、存储高效的计算机视觉算法。芯片的高度集成对实现高效、完整的系统至
赛灵思 Vivado OpenCV Smarter SoC 相关文章:
- 可扩展的嵌入式网络平台(07-07)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- 如何快速启动嵌入式系统开发(01-06)
- 利用XPS工具快速生成Virtex FPGA的板级支持包(03-18)
- 设计可靠性: MTBF—这只是开始!(09-17)
- 将SoC平台设计与DSP系统生成器相集成(07-01)
