用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式视觉应用开发
将Vivado HLS与OpenCV库配合使用,既能实现快速原型设计,又能加快基于Zynq All Programmable SoC的Smarter Vision系统的开发进度。
本文引用地址:http://www.amcfsurvey.com/article/234277.htm计算机视觉技术几年来已发展成为学术界一个相当成熟的科研领域,目前许多视觉算法来自于数十年的科研成果。不过,我们最近发现计算机视觉技术正快速渗透到我们生活的方方面面。现在我们拥有能自动驾驶的汽车、能根据我们的每个动作做出反应的游戏机、自动工作的吸尘器、能根据我们的手势做出响应的手机,以及其它等视觉产品。
今天我们面临的挑战就是如何高效实现上述这些及未来的各种视觉系统,同时满足严格的功耗和上市要求。此类产品可以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逻辑和一些关键外设。这样,该器件就能帮助设计人员实现极为高效的嵌入式视觉系统。
c++相关文章:c++教程
评论