作者:Stephen Evanczuk,文章来源:Digi-Key
在越来越多的嵌入式视觉应用中,如机器视觉、安保、零售和机器人,人工智能 (AI) 在基于边缘的智能摄像头上的应用已迅速获得认可。虽然可获得机器学习 (ML) 算法的迅速出现帮助迎来了人们对 AI 的这种兴趣,但开发人员仍难以在满足紧迫的项目时间表的同时,在保持低功耗的情况下为基于边缘的应用提供高性能。
更为复杂的是,由于应用需求的快速变化和演化算法的持续改进,即使是新部署的解决方案也会迅速成为次优方案。
本文将介绍 Xilinx 提供的灵活系统级模块 (SOM) 解决方案,开发人员能用它来快速实现边缘部署的智能摄像头解决方案。文中展示了他们如何能够更容易地调整这些解决方案,以应对不断变化的需求,而不影响对延时和功耗的关键要求。
加快视觉应用的执行
Xilinx 的 Kria K26 SOM 基于定制的 Zynq UltraScale+ 多处理器片上系统 (MPSoC),提供了强大的嵌入式处理系统,其中包括一个 64 位四核 Arm Cortex-A53 应用处理单元 (APU)、一个 32 位双核 Arm® Cortex®-R5F 实时处理单元 (RPU) 和一个 Arm Mali-400MP2 3D 图形处理单元 (GPU)。SOM 将 MPSoC 与四千兆字节的 64 位宽双倍数据速率 4 (DDR4) 存储器和相关的存储控制器以及多个非易失性存储器 (NVM) 器件结合起来,包括 512 兆位 (Mb) 的四路串行外设接口 (QSPI) 存储器、16 千兆字节 (GB) 的嵌入式多媒体卡 (eMMC) 存储器和 64 千位 (Kb) 的电可擦除可编程只读存储器 (EEPROM)(图 1)。
图 1:Xilinx 的 Kria K26 SOM 将定制的 Zynq UltraScale+ MPSoC 的广泛处理能力与可信平台模块 2.0 (TPM2) 以及动态和非易失性存储器相结合。(图片来源:Xilinx)
Xilinx 通过广泛的可编程逻辑系统补充其处理和存储器资产,该系统包括 256K 系统逻辑单元、234K 可配置逻辑块 (CLB) 触发器、117K CLB 查找表 (LUT),以及分布式随机存取存储器 (RAM)、块 RAM 和 ultraRAM 块等各种配置共计 26.6 兆位 (Mb) 的存储器。此外,可编程逻辑系统包括 1,248 个数字信号处理 (DSP) 片、四个收发器以及一个 H.264 和 H.265 的视频编解码器,能够支持多达 32 个流的同时编/解码,在 60 帧/秒 (fps) 的情况下总像素达 3840 x 2160。SOM 的两个 240 针连接器通过用户可配置的输入/输出 (I/O) 提供对功能块和外设的随时访问。
这种处理器内核、存储器和可编程逻辑的组合提供了独特的灵活性和性能水平,克服了高速执行 ML 算法所用 GPU 的主要缺点。不同于 GPU 的固定数据流,开发人员可以重新配置 K26 SOM 数据路径,以优化吞吐量并减少延时。此外,K26 SOM 的架构特别适合于处于不断增加的 ML 应用核心的稀疏网络。
K26 SOM 的可编程性还解决了存储器瓶颈问题,这些瓶颈既增加功耗,又限制存储器密集型应用的性能,如使用 GPU、多核处理器甚至高级 SoC 的传统架构构建的 ML。在使用这些传统器件设计的任何应用中,外部存储器通常占系统功耗的 40% 左右,而处理器内核和内部存储器通常各占 30% 左右。相比之下,开发人员可以利用 K26 SOM 的内部存储器块和可重构性来实现几乎不需要外部存储器访问的设计。因此,与传统器件相比,性能提高,功耗降低(图 2)。
图 2:虽然基于嵌入式 CPU 和典型 SoC 的系统需要多次以高功耗访问存储器来运行其应用,但基于 Xilinx Kria 的系统则采用高效视觉管道,其可设计为避免任何 DDR 访问。(图片来源:Xilinx)
除了高性能、低功耗和广泛的可重构性外,K26 SOM 有助于确保敏感应用的智能摄像头设计的安全性。除了 SOM 内置 TPM 安全器件外,MPSoC 还集成了一个专用配置安全单元 (CSU),支持安全启动、篡改监控、安全密钥存储和加密硬件加速。CSU、内部片上存储器 (OCM) 和安全密钥存储共同提供了安全基础,以确保实现安全启动的硬件信任根和用于应用执行的可信平台。
K26 SOM 的广泛功能为实施基于边缘的苛刻应用提供了强大的基础。然而,每个应用都有自己的要求,即与一组特定应用的外设和其他元器件相关的特性和功能。为了简化特定应用解决方案的实施,K26 SOM 可专门插入一个能承载其他外设的载卡中。Xilinx 通过其基于 Kria K26 的 KV260 视觉 AI 入门套件展示了这种方法。
入门套件简化了视觉应用的开发
Xilinx 的 KV260 视觉 AI 入门套件包括一个插入到以视觉为中心的载板的 K26 SOM,该套件提供了一个开箱即用的平台,专门用于即时评估和快速开发智能视觉应用。尽管 K26 SOM 提供了所需的处理能力,但入门套件的载板提供了电源管理,包括上电和复位定序,以及用于摄像头、显示器和 microSD 卡的接口选项和连接器(图 3)。
图 3:Xilinx 的 KV260 视觉 AI 入门套件使用插入到以视觉为中心的载板的 K26 SOM,提供了一个完整的智能视觉解决方案。(图片来源:Xilinx)
除了多个接口外,载板还通过其 Raspberry Pi 连接器和一对图像访问系统 (IAS) 连接器提供多摄像头支持。其中一个连接器链接到一个专用 onsemi 1300 万像素 AP1302 图像传感器处理器 (ISP),其能应对所有图像处理功能。
为了进一步加快实现基于视觉的应用,Xilinx 通过各种预置加速视觉应用以及一套全面的软件工具和库(以便进行定制开发),来支持这种预定义的视觉硬件平台。
加速应用提供即时解决方案
为了即时评估和快速开发加速视觉应用,Xilinx 提供了几个预置应用,其中演示了几个流行用例的执行,包括使用其可编程逻辑的智能摄像头人脸检测、行人识别和跟踪、缺陷检测以及使用 MPSoC 处理系统的成对关键字识别。在 Xilinx Kria 应用商店中,每个应用都为其特定用例提供了完整的解决方案,并配有相应的工具和资源。例如,智能摄像头人脸检测应用使用 KV260 载卡的内置 AR1335 图像传感器和 AP1302 ISP 来采集图像,并由载卡的 HDMI 或 DisplayPort (DP) 输出来渲染结果。对于人脸检测处理,应用配置了 K26 SOM,以提供视觉管道加速器和预置的机器学习推理引擎,用于人脸检测、人员计数和其他智能摄像头应用(图 4)。
图 4:预置的加速应用可从 Xilinx Kria 应用商店下载,可在 KV260 入门套件上立即运行,为人脸检测等视觉使用模型提供完整的解决方案。(图片来源:Xilinx)
来自 Xilinx 应用商店的预置加速应用提供完整的实施和支持,让开发人员能够在一小时内完成设计并运行,即使缺乏 FPGA 经验也没问题。评估应用时,他们可以使用所提供的软件堆栈来修改功能,以探索替代解决方案。对于更广泛的定制开发,Xilinx 提供了一套全面的开发工具和库。
AI 开发环境和工具加速定制开发
对于基于 AI 应用的定制开发,Xilinx 的 Vitis AI 开发环境提供了优化的工具、库和预先训练的模型,可用作更专业的定制模型的基础。对于运行时操作环境,Xilinx 基于 Yocto 的 PetaLinux 嵌入式 Linux 软件开发套件 (SDK) 提供了构建、开发、测试和部署嵌入式 Linux 系统所需的全套功能。
Vitis AI 环境针对没有 FPGA 经验的专家和开发人员而设计,将底层硅硬件的细节抽象化,让开发人员能够专注于建立更有效的 ML 模型。事实上,Vitis AI 环境与开源 Apache Tensor 虚拟机 (TVM) 深度学习编译器堆栈集成,让开发人员能够将他们的模型从不同的框架编译到处理器、GPU 或加速器。开发人员使用带有 TVM 的 Vitis AI,可以用加速视觉功能增强其现有设计,将深度学习模型等计算密集型视觉工作负载卸载到 Kria SOM。为了帮助开发人员进一步优化其深度学习模型,Xilinx 的 AI 优化工具可以对神经网络进行修剪,以降低每秒十亿次运算 (Gops) 数的复杂性,提高每秒帧数 (fps),并减少过度参数化的模型,其中将模型压缩高达 50 倍,而对平均精度 (mAP) 所代表的准确性几乎没有影响(图 5)。
图 5:Xilinx Research 的一项案例研究表明,使用 Xilinx AI 优化工具进行几次迭代修剪,就可以迅速降低神经网络在 Gops 数上的复杂性,同时提高每秒帧数,而这一切对准确性几乎没有影响。(图片来源:Xilinx)
对于定制视觉应用的实现,Xilinx 的开源 Vitis Vision 库在 Xilinx 平台上进行了高性能和低资源利用的优化,提供了一个基于 OpenCV 的熟悉界面。在分析方面,Xilinx 的视频分析 SDK 应用框架帮助开发人员建立更有效的视觉和视频分析管道,而不需要深厚的 FPGA 知识。视频分析 SDK 基于广泛采用的开源 GStreamer 框架,开发人员可以用它快速创建自定义加速内核,作为 GStreamer 插件集成到 SDK 框架。
典型的嵌入式开发人员使用这些工具,无论是否有自定义加速内核,都可以很容易地组装自定义加速管道。
总结
计算密集型 ML 算法使智能视觉技术能够在边缘运行的多种应用中使用,但要满足基于边缘的视觉系统的高性能、低功耗和适应性的要求,开发人员面临着多种挑战。Xilinx 的 Kria K26 SOM 解决方案为加速高级算法提供了硬件基础,同时又不超出严格的功耗预算。开发人员使用基于 Kria K26 的入门套件和预置应用,可以立即开始评估智能视觉应用,并使用全面的开发环境来创建自定义边缘设备解决方案。