嵌入式开发:使用边缘人工智能处理器提升嵌入式人工智能性能

更新时间: 2022-12-06 16:36:35来源: 粤嵌教育浏览量:7462

  在嵌入式开发中,人工智能(AI)在嵌入式计算中的到来导致了潜在解决方案的激增,这些解决方案旨在提供在高速率下对流视频执行神经网络推理所需的高性能。尽管ImageNet challenge等许多基准测试在相对较低的分辨率下工作,因此可以由许多嵌入式人工智能解决方案处理,但零售、医疗、安全和工业控制等领域的实际应用要求能够处理分辨率高达4kp60或更高的视频帧和图像。

  可扩展性至关重要,但对于提供主机处理器和神经加速器固定组合的片上系统(SoC)平台来说,可扩展性并不总是一个选项。虽然它们通常提供了一种在原型制作期间评估不同形式的神经网络的性能的方法,但这种一体化实现缺乏现实世界系统通常需要的粒度和可伸缩性。在这种情况下,工业级AI应用将受益于更加平衡的架构,其中异构处理器(如CPU、GPU)和加速器的组合在一个集成的管道中合作,不仅对原始视频帧执行推理,还利用预处理和后处理来改善整体结果或处理格式转换,以便能够处理多种摄像机和传感器类型。

  典型的部署场景是智能摄像机和edge-AI设备。对于前者,要求将视觉处理和对神经网络推理的支持集成到主相机板中。相机可能需要执行一些任务,如计算房间内的人数,并且如果对象进出视图,能够避免计算两次。智能相机不仅要能够识别人,还要能够根据相机已经处理过的数据重新识别他们,以免重复计算。在嵌入式开发中,这需要一个灵活的图像处理和推理管道,其中应用程序可以处理基本的对象识别以及复杂的基于推理的任务,如重新识别。

  

  构建智能摄像机和边缘人工智能设备

  通常,在智能摄像机设计中,主机处理器将传感器输入转换为适合推理的形式:将帧数据调整大小、裁剪和归一化为适合高通量推理的形式。一个类似但更高度集成的用例是edge-AI设备。这需要从多个联网的传感器和摄像机获取输入,这要求能够处理多个同时压缩(或编码)的视频流。在这种多相机场景中,处理能力必须能够扩展以处理执行推理所需的格式、色彩空间和其他转换,并且还能够处理多个并行推理。

  虽然固定的基于SoC的实现处理特定的用例,但可扩展性需求指向根据需求调整平台的能力,并随着客户需求的变化内置对可扩展性和升级的支持。因此,重点关注那些能够轻松扩展硬件功能的平台非常重要,这些平台不需要因需要指定采用不同架构的设备而对代码进行重大更改。很少有人能负担得起这意味着的移植开销。

  许多嵌入式开发人员采用了恩智浦半导体和高通等厂商销售的嵌入式处理平台,因为它们提供了广泛的性能、功能和价格选择。例如,恩智浦i.MX应用处理器涵盖了广泛的性能需求。与固定SoC平台不同,恩智浦处理器系列受益于供应商的长期支持和供应保证,这是许多嵌入式计算市场所必需的。i.MX 8M等设备为edge-AI设备需求提供了良好的基础。其内置的视频解码加速使得在一个处理器上支持四个压缩的1080p流成为可能。通过将i.MX应用处理器与Kinara的Ara-1加速器相结合,可以对多个流执行推理或处理复杂的模型。

  运行多个模型的要求

  每个加速器可以在每个帧上运行多个AI模型,切换时间为零,主机处理器上的负载为零,提供了实时执行复杂任务的能力。与一些依赖批处理多个帧来最大化吞吐量的推理管道相比,Ara-1针对批处理大小1和最大响应性进行了优化。

  这意味着,如果加速器正在对另一帧或一帧的一部分执行推理,则智能摄像机设计不需要依赖主机处理器来执行重新识别算法。两者都可以卸载到Ara-1上,以利用其更高的速度。在需要更高性能的情况下,例如在edge-AI设备中,不同的应用可能需要执行推理任务,可以并行使用多个加速器。

  不仅支持智能摄像机或设备PCB上的芯片级集成,还支持插件升级,从而实现更高程度的可扩展性。在嵌入式开发中,对于芯片级集成,Ara-1支持工业标准和高带宽PCIe接口,可轻松连接到集成了PCIe第三代接口的主机处理器。第二种集成方式是使用可以直接插入可升级主板的模块,利用PCIe接口,并提供处理多达16个摄像头输入的能力。对于使用现成硬件的系统和原型,另一个选择是利用对USB 3.2的内置支持。简单的电缆连接提供了在笔记本电脑上测试人工智能算法的能力,使用硬件评估套件启动生产,或对现有系统进行简单升级。

  

  无缝过渡的软件基础设施

  开发人员可以选择多种方法来简化加速器与处理器及其相关软件堆栈的集成。模型可以在运行时使用C++或越来越常见的Python应用程序编程接口(API)进行部署和管理,这些接口在Arm上的Linux环境或x86上的Windows环境中运行。Kinara的运行时API支持加载和卸载模型、传递模型输入、接收推理数据以及完全控制推理和硬件设备的命令。

  GStreamer环境提供了访问加速器性能的另一种方式。在嵌入式开发中,作为一个为构建媒体处理组件的计算图而设计的库,GStreamer可以轻松地组装过滤器管道,这些过滤器管道可以组装到更复杂的应用程序中,这些应用程序可以对输入视频和传感器馈送中不断变化的情况做出反应。

  对于人工智能推理,Kinara等SDK可以采用许多不同形式的训练模型,包括TensorFlow、PyTorch、ONNX、Caffe2和MXNet,并为数百个模型提供直接支持,如YOLO、TFPose、EfficientNet以及transformer networks。这为通过量化优化性能提供了一个完整的环境,使用自动调整来确保模型准确性,并在运行时调度执行。有了这样的平台,就有可能提供对模型执行的洞察,以促进性能优化和参数调整。一个比特精度的模拟器可以让工程师在部署到芯片之前评估性能。

  总而言之, 随着人工智能成为越来越多的嵌入式系统不可或缺的一部分,能够将推理功能集成到广泛的平台中以满足不断发展的需求是非常重要的。在嵌入式开发中,这意味着能够部署具有相关SDK的灵活加速器,以允许客户将高级人工智能加速与现有或新的嵌入式系统相结合。

免费预约试听课