- 04/11
- 2017
-
QQ扫一扫
-
Vision小助手
(CMVU)
嵌入式视觉可划分为两个高级类别:感知环境和采取行动。视觉导向的机器人和无人机属于后面的采取行动类。
在民用领域,目前无人机是商业、医疗、农业、广播和执法应用中最热门的话题之一。对许多这样的应用,无人机可提供显著的优势。在广播和执法领域,无人机能够以低得多的成本提供之前需要直升机才能提供的能力。无人机还能执行预订服务,例如即将推出的 Amazon Prime 交货服务,或者如乌干达偏远地区的医疗产品交货服务。在农业应用中,无人机能使用高光谱成像来判断作物的健康状况。而这些应用, 只不过是目前已经在使用或正在考虑使用无人机技术应用的冰山一角。
农业无人机应用示例
这些应用,综合起来体现着我们在嵌入式视觉总体环境中观察到的嵌入式视觉当前四大普遍趋势中的三大趋势:
1.边缘 (edge)端通过机器学习获得的智能化 – 智能化嵌入在无人机本身内部,需要从它的摄像头提取信息并根据该信息采取行动,达成自己的目标。
2.开放式高级语言和框架 – 在无人机中实现智能化需要高级框架和语言。这些中最常用的是开源多平台框架,比如嵌入式环境里的 OpenCV、OpenVX, 以及在机器学习环境里的 Tensor Flow 和 Caffe。
3.多层次的安全性 – 用于确保无人机不仅能够运行,且不能影响安全性和信息获取。这种方法要求在器件、系统和网络层面实现多层次的安全性。
第四个趋势是嵌入式视觉的普及化。虽然视觉导向的机器人和无人机还不像我们的手机一样普及——我们常在旅行中用手机来翻译标牌等用途,随着新用例被发掘出来,使用视觉导向的机器人和无人机的应用正处于快速发展中。
在架构层面无人机拥有一些关键的子系统,包括实时精准的马达控制系统、提供与无人机双向通信的软件无线电和精确的嵌入式视觉系统。视觉导向的机器人和无人机主要针对大部分电池供电的应用,因此设计高能效解决方案的能力极为重要。
高精度嵌入式视觉系统提供高帧率,其处理图像和根据图像采取行动的能力要远超过人眼。对许多应用来说,需要使用多个摄像头来形成立体多视觉,以完整掌握无人机周边环境。这也称为传感器融合。虽然许多应用使用多摄像头方法来观察环境,部分应用还会把设计用于观测电磁场频谱不同组成部分的摄像头结合起来使用,例如在超光谱或红外应用中的情况。在使用多个相同类型传感器的时候这一般称为同构,在使用不同传感器技术的时候称为异构。
在算法层面,这种高精度嵌入式视觉系统运行的算法有同步定位与地图构建(SLAM)和稠密光流(Dense Optical Flow),以为平台提供增强型感知和避障系统。这些算法还与更传统的模式和对象识别算法结合。
稠密光流设计
视觉导向的机器人和无人机因此不仅需要强大的处理能力,还需要有能力进行功耗优化,提供面向未来且具有可扩展性的解决方案。
All Programmable Zynq® SoC可针对您面临的问题提供独特的解决方案。Zynq提供的高性能逻辑,与双核ARM® A9处理器集成可打造出紧密集成的异构处理单元。该异构处理单元能够在处理器内或可编程逻辑内实现高效率的功能细分。
使用基于ARM的处理系统,可以在边缘开展极为复杂的实时视觉分析。在与可编程逻辑架构结合后,它提供实时检测对象然后使用处理器系统分类对象的能力。分类完成后,视觉导向机器人系统或无人机就能针对检测出的对象类采取适当的行动。
为在边缘实现实时视觉分析,我们运用了机器学习提供的智能化技术。要执行这些算法,我们首先需要模型并提供大型培训数据集,使模型能够进行分析。在极高性能工作站上进行培训,得到的分类器被用于实现方案中。开展这类机器学习有多种不同的方法可供选择,例如卷积神经网络、深度神经网络或递归神经网络。
当我们在边缘实现这些模型时,我们不需要与培训相同水平的性能。可以使用整数或浮点数学,两者都能方便地实现在All Programmable SoC中。
SoC内的可编程逻辑架构本身具有可重编程性,这意味着该器件能支持任意连接。同时处理系统内的多路复用IO(MIO)提供通过多种常用协议(从 SPI、I2C 和串行到千兆以太网、CAN 和 USB)连接的能力,拥有极为灵活的从该设备输入/输出数据的方式。
Zynq同时接口和处理多个摄像头输入的实例
对使用的图像传感器来说,可编程逻辑架构还能够支持最适合于目前应用的特定传感器。与限制传感器接口和图像处理流水线的一些标准解决方案不同,
这种高度的灵活性能够打造出面向未来的设计方案。目前它可以先实例化一个接口,然后随着新标准的出现,重新编程已经部署的系统以支持新标准。可编程逻辑的灵活性还体现在能从一个标准转换到另一个标准。
在同构和异构传感器融合方面,这个最大的 SoC 产品系列提供充足的可编程逻辑架构,能实现20个以上的视觉通道并让每一个通道并行运行。
因为这些通道实现在可编程逻辑架构内,设计工程人员不受定义的图像处理路径制约,相反他们有能力为目前的应用实现所需的特定图像处理流水线。
就生成图像处理流水线而言,和普通的想法不同的是我们不必使用 HDL 重新生成一切。在标准 Vivado® IP 库内提供了一些图像处理内核,使用 AXI Streaming 接口就能够连接。使用 AXI Streaming 接口便于把灵活、可扩展的图像处理流水线创建成标准接口,用在所有的 IP 模块上。这种标准化能缩短初始开发时间,便于随着产品规划图的延伸更容易地升级和复用。
当然许多图像处理算法相当复杂,需要先在 OpenCV 或 MATLAB 等应用中建模。OpenCV 能与 Vivado® 高层次综合视频库结合,即 OpenCV 库的可综合版本,极为简便地为我们的流水线实现图像处理算法。随后这些算法能拉回到 Vivado 内的图像处理流水线中,缩短开发和验证时间。
另外,还可以实现基于 MathWorks MATLAB 流程的模型设计流程。它能够先在模型层面定义整个图像处理流水线,然后在定义底层的代码。
不过大多数现代应用都必须考虑安全性,以防范对系统、系统数据的无授权改动或访问,或是防范恶意黑客攻击。开发安全设计必须从系统层面自上而下考虑。不过使用 All Programmable SoC 能提供一系列器件级和系统级安全功能,让实现工作变得简便易行。Zynq SoC 能够对导向与配置流程进行加密和认证。也可使用 Trust Zone 技术创建正交环境,限制软件借助管理程序访问底层硬件。同时,内置的 XADC 能用于监测器件电压和温度以及外部参数,提供防篡改方法。还有一些功能能实现在设计中,进一步增强安全性。
All Programmable SoC 能实现多个并行图像处理流水线以及同构/异构传感器融合,然后实时执行视觉分析和决策,而且提供对电池供电系统非常关键的极高效的单位功耗性能。借助内在的灵活性,All Programmable SoC 能提供真正的差异化因素,值得在设计中考虑使用,尤其是在需要考虑单位功耗像素数量的时候。
结论
随着使用视觉导向发机器人和无人机应用的快速发展,视觉导向的机器人和无人机本身也正在飞速发展。要开发出拥有理想单位功耗性能的高精度视觉系统,最好使用 All Programmable SoC。All Programmable SoC 能实现大量并行处理链,在边缘完成传感器融合和实时分析,同时提供高能效、高灵活度和高安全性的系统。