跨平台 AI 套件简化嵌入式视觉
AI 的迅速崛起将迫切需要用新的方法将计算机视觉、深度学习和其它分析部署到嵌入式应用中。开发人员在训练他们的模型时有许多选项可选择,有 TensorFlow、MXNet 和 Caffe 等许多流行的框架可用来执行繁重的任务。但是,一旦部署该模型,开发人员就会有更多选择,并存在相关问题。最大的问题之一就是嵌入式硬件和 AI 工具之间存在不匹配。因为 AI 始于高性能的数据中心,而工具的设计针对的是统一、高性能的资源。对比起来,嵌入式系统在成本和功率方面受到很大限制,并且使用各种不同的架构 — 通常混合了各种不同的 CPU、GPU、FPGA 以及其它处理器。要在这个混杂的嵌入式系统环境中部署 AI,开发人员就需要能够处理各种架构的嵌入式专用工具。这些工具应该使用现有的嵌入式 API 和框架,最大限度地提高可移植性、灵活性和可扩展性。而且工具应该能够生成针对嵌入式设计的资源受限现实情况进行了优化的推理引擎。
将深度学习推向边缘
对于寻求嵌入式 AI 功能的开发人员来说,这些挑战的解决方案可能在于 OpenVINO(开放式视觉推理&神经网络优化)工具包,以前称为英特尔® 计算机视觉 SDK,OpenVINO 是一种多平台工具套件,可跨英特尔视觉产品扩展,为英特尔处理器、英特尔集成显卡、英特尔 FPGA 和英特尔® Movidius™ 神经计算模块提供了一个通用的 API。OpenVINO 包括计算机视觉、深度学习和管线优化。它基于广泛用于计算机视觉中的模式识别的卷积神经网络 (CNN)。该套件还利用现有框架,包括各种英特尔计算机视觉库和英特尔深度学习框架。该套件通过三种 API 提供广泛的处理器支持:深度学习部署工具包,以及为 OpenCV 和 Open VX(图 1)优化的函数。
有了这种广泛的支持基础以及 Windows 和 Linux 操作系统,开发人员可以使用经过优化的硬件架构组合,将深度学习推理部署到嵌入式系统中。
智能开发
使用 OpenVINO 的第一步是训练模型。该工具套件包括有许多基于云的框架可用来完成这种训练,如 Caffe、TensorFlow 或 MXNet。英特尔甚至有它自己的开源深度学习框架,称为 neonTM。下一步是将训练的模型导入到 OpenVINO 深度学习部署工具包,这主要包括运行模型优化器和推理引擎(还是参见图 1)。该优化器是基于 Python 的命令行工具,它导入训练的模型,执行分析和调整,以便在边缘设备上最优执行静态训练模型。然后,它会序列化该模型并调整为中间表示 (IR) 格式(.xml、.bin、OpenVINO)。IR 将通过在所有处理硬件选项中能够优化执行的通用 API 导入到推理引擎。例如,某些层可在 GPU 上执行,而其它一些层(如自定义层)可在 CPU 上执行。开发人员还可以利用异步执行来改进帧率性能,同时限制浪费的周期。可利用 C++ AP 处理 IR 文件,进一步优化推理。利用对 OpenCV 和 OpenVX 的访问等功能,用户可以创建自定义内核,使用计算机视觉库的函数以及英特尔的计算机视觉库。开发人员还可以利用 OpenCV 中不断增长的 OpenCL 起点库来添加自定义代码。值得注意的是,虽然 OpenVINO 的功能以及它的深度学习部署工具包已经非常广泛,英特尔也会不断对它们进行更新,以改进 CNN 深度学习算法的开发和硬件加速。也就是说,到目前为止,相比标准 Caffe 和 OpenCV,性能改进显著(图 2)。
实现智能视觉的快速路径
为帮助开发人员更快地开始开发智能视觉应用程序,英特尔与许多生态系统成员合作来开发支持 OpenVINO 的加速器开发套件。例如,来自 UP ! Bridge the gap 的 UP Squared AI 视觉开发套件非常适合概念化和早期开发(图 3)。
该套件基于使用集成 GPU 和 VPU 的英特尔凌动®x7 处理器。它还支持一系列硬件选项,包括工具包附带的 Mini PCIe 外形的英特尔® Movidius™ Myriad™ 2 VPU。该套件完全配置用于 OpenVINO。开发人员可以使用基于云的 Arduino® Create IDE 设计原型,使用英特尔® System Studio 工具套件来优化性能。在预安装的自定义 Ubuntu 台式机操作系统中附带了此软件,配置为允许立即进行计算机视觉开发。对于开发周期不多的开发人员,注意 UP 是来自 AAEON Europe 的一个品牌,它正在积极招募会员加入它的 AAEON 社区 Beta 计划。好处包括提前获得 AAEON 产品,免费的主板样品,还可以选择参加它的社区内容开发以及享受折扣。