✨ 要点🔬 技术摘要
想象一下你正在试图教会一个机器人如何观察世界。你希望它能瞬间识别出猫、汽车或人,无论他们是直立站着,还是以奇怪的角度倾斜。这就是“目标检测”的工作——它是计算机理解图像和视频的一种超能力。但问题在于:你并不想把这个机器人接入一个庞大且耗电的服务器集群。你希望它能在像无人机或安防摄像头这样的小型、电池供电的设备上运行,就在发生动作的地方。这被称为“边缘计算”。为了实现这一点,工程师们使用了被称为 FPGA 的特殊芯片。把 FPGA 想象成不是一个固定的脑子,而是一套可以根据需要随意拼搭成任何形状的逻辑门乐高积木。这使得它速度极快且能效极高。巨大的挑战是什么?最聪明、最现代化的“大脑”(AI 模型)通常对于这些微小的、定制的乐高大脑来说过于复杂了。它们使用一些乐高积木并不理解的高级数学技巧,这迫使机器人减速,并向一个更大、更慢的计算机寻求帮助。
这篇论文介绍了一个巧妙的“黑客手段”,旨在让最新、最智能的目标检测 AI 模型在这些微小的、定制的乐高芯片上流畅运行,且不丢失其智能。研究人员选取了两个最新且最优秀的 AI 模型,分别命名为 YOLOv26 和 YOLOv11,并为它们进行了一次“感知 DPU(DPU-aware)”的改造。DPU 是内置在这些芯片中的一种特定类型的硬件加速器,它有一套严格的规则手册:它不能执行某些特殊的数学运算,比如以奇怪的方式“拆分”数据,或者使用特定的激活函数。作者意识到,如果尝试按原样运行这些模型,芯片会卡住,导致机器人反应迟钝。因此,他们构建了一个“翻译层”。他们用芯片喜爱的、经过批准的简化版本替换了那些被禁止的数学技巧。例如,他们将一种复杂的“空间注意力(spatial attention)”机制(这种机制能帮助 AI 专注于图像的重要部分)替换为一种使用标准构建模块的简化近似版本。他们还把不支持的激活函数换成了芯片能够识别的函数。
团队在名为 Xilinx ZCU104 的真实芯片上测试了这些修改后的模型,测试数据集涵盖了从标准的街景到物体带有旋转角度的航拍照片等多种类型。他们测量了一切:机器人识别物体的速度(每秒帧数)、消耗的功率以及保持的准确度。结果非常令人期待。通过进行这些特定的架构调整,他们成功让模型以惊人的速度运行——标准检测的速度高达每秒 34.05 帧,检测旋转物体的速度高达每秒 29.55 帧。这足以满足自动驾驶或无人机导航等实时应用的需求。然而,这也付出了微小的代价:与在强大计算机上运行相比,准确度下降了约 5%,作者指出这是将复杂 AI 挤进微型硬件时常见的权衡。他们还发现,虽然随着使用更强大的配置,芯片本身变得更快,但最后一步清理结果的过程(称为后处理)成为了瓶颈,拖慢了整体速度。最终,这篇论文表明,通过适当的定制化修改,即使是最现代的 AI 模型也可以高效地部署在边缘设备上,在速度、功耗和准确度之间找到一个完美的平衡点。
技术摘要:无注意力,无问题:现代 YOLO 在 FPGA 上的 DPU 感知注意力近似技术
问题陈述 基于边缘的人工智能(AI)需要在准确性、速度和功耗效率之间取得微妙的平衡,特别是在实时目标检测方面。虽然现场可编程门阵列(FPGA)通过可重构硬件提供了高性能和低功耗,但在 FPGA 片上系统(SoC)上部署最先进(SOTA)的目标检测模型仍面临重大挑战。具体而言,现代 YOLO 变体(如 YOLOv11 和 YOLOv26)利用了复杂的组件,例如空间注意力机制、特定的激活函数(如 SiLU)和分割操作(split operations),这些组件在 AMD Xilinx DPUCZDX8G 等商用深度学习处理器单元(DPU)中并未得到原生支持。当遇到这些不支持的算子时,执行会回退到 CPU,从而产生瓶板,抵消了硬件加速带来的效率增益。此外,现有文献主要集中在早期的 YOLO 版本或标准水平边界框上,而对于现代基于注意力的架构以及旋转目标检测(OBB)的研究在 FPGA 部署背景下仍处于探索阶段。
方法论 作者提出了一种系统性框架,用于将现代基于注意力的 YOLO 模型适配并部署到使用 Vitis AI 工具链的 AMD Xilinx ZCU104 FPGA SoC 上。该方法包含四个关键阶段:
数据集准备: 本研究利用了涵盖标准(水平)和旋转目标检测的六个基准数据集:用于标准任务的 COCO、Pascal VOC 和 KITTI;用于旋转任务的 DOTA 和 DIOR-R;以及一个自定义构建的人体存在数据集。
DPU 感知架构适配: 为了确保在 DPU 上实现全量执行,作者修改了模型架构(包括 YOLOv8、YOLOv11 和 YOLOv26 的 OBB 变体),以替换不支持的组件:
激活函数: 将不支持的 Sigmoid Linear Unit (SiLU) 替换为修正线性单元 (ReLU)。
分割操作: 在特征融合模块(如 C2f)中,将不支持的分割操作替换为等效的 1 × 1 1 \times 1 1 × 1 卷积操作。权重被初始化为二进制选择矩阵,以复制通道分割的行为。
注意力机制近似: 复杂的空间注意力模块(如 YOLOv11 中的 C2PSA)依赖于 reshape、transpose、矩阵乘法和 Softmax 等不支持的操作,这些操作需要进行近似处理。作者提出了一个 DPU 兼容的版本,使用并行 1 × 1 1 \times 1 1 × 1 卷积来提取查询(Query)、键(Key)和值(Value)特征,通过缩放后的元素级乘积来近似注意力权重,用 Hard-Sigmoid 替换 Softmax,并通过 1 × 1 1 \times 1 1 × 1 卷积将结果投影回原空间。
训练与量化: 使用 Ultralytics 库对模型进行混合精度(FP16)训练。应用训练后量化(PTQ)将模型从 32 位浮点数转换为 8 位整数表示,这是 DPU 部署的必要步骤。
编译与部署: 使用 Vitis AI 编译器针对八种不同的 DPUCZDX8G IP 核配置(B512 到 B4096)对量化后的模型进行编译。使用 Vivado 和 Vitis 重建硬件设计,以生成用于 ZCU104 的比特流和部署镜像。
核心贡献 本文做出了四个主要贡献:
定制化架构: 提出了一种 DPU 感知的注意力近似架构,使得现代基于注意力的 YOLO 变体(v11 和 v26)能够在商用 FPGA SoC 上部署。
全面基准测试: 针对标准和旋转目标检测任务,利用最先进的数据集对这些模型的端到端性能进行了评估。
架构分析: 详细分析了所有八种 DPUCZDX8G IP 核配置下的性能(延迟、FPS、功耗、资源利用率)。
定量基准: 该工作为使用 Vitis AI 工具链在 FPGA SoC 上部署标准和旋转边界框检测模型建立了定量基准。
结果 研究评估了修改后的模型在所有数据集和 DPU 配置下的表现:
准确性: 架构修改(替换 SiLU、近似注意力)导致与原始 FP32 模型相比,mAP@0.5 :0.95 平均绝对下降约 3%。随后的 FPGA 部署(涉及 8 位量化)导致与 CPU 执行相比又增加了约 7% 的平均下降,最终部署系统的总准确率下降约为 5%。
性能: YOLOv26n 和 YOLOv26n-OBB 实现了最高的端到端吞吐量。在最大的 DPU 配置(B4096)上,它们在标准检测中达到了 34.05 FPS ,在旋转检测中达到了 29.55 FPS 。
延迟与瓶颈: 虽然随着 DPU 架构从 B512 扩展到 B4096,DPU 特有的 FPS 增加且延迟降低,但 DPU 性能与端到端性能之间仍存在显著差距。作者指出后处理(特别是非极大值抑制或 NMS)是一个关键瓶颈,因为它在单个 CPU 核心上执行,限制了整体吞吐量,无论 DPU 容量如何。
效率: B4096 配置的功耗高达 8.760 W,比 B512 配置(4.792 W)增加了 83%。尽管如此,作者声称该方案比最先进的替代方案实现了约 3 倍的低功耗 。
意义 本文声称其工作填补了文献中的一个关键空白,即实现了最新的基于注意力的 YOLO 架构在 FPGA 上的部署,而此前这一任务一直受到硬件不兼容性的阻碍。通过系统地适配这些模型并在多种数据集和 DPU 配置下进行基准测试,本研究为边缘 AI 开发人员提供了实用的路线图。结果表明,虽然为了量化和硬件适配必须在准确性上做出权衡(约 5%),但该方法带来了显著的功耗效率和实时吞吐量增益,使其在自动驾驶、无人机导航和监控等应用中具有可行性。作者谦虚地指出,未来的工作将侧重于消除 NMS 依赖,以进一步缓解后处理瓶颈并提高端到端性能。
每周获取最佳 electrical engineering 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。