基于事件的视觉在FPGA上的综述
摘要
近年来,人们对事件相机(即为每个像素独立记录照明变化的视觉传感器)产生了越来越浓厚的兴趣。这种操作方式确保在极其不利的照明条件下(无论是低光还是高动态范围)都能进行采集,并降低平均功耗。此外,每个像素的独立操作导致低延迟,这对机器人解决方案尤为重要。如今,现场可编程门阵列(FPGAs)、通用处理器(GPPs/CPUs)和可编程图形处理单元(GPUs)已成为实现和加速计算任务的流行架构。特别是,它们在嵌入式视觉领域的实用性已在过去30年中反复得到证明,它们实现了快速数据处理(甚至实时)和能效。因此,事件相机与可重构设备的组合似乎是一个良好的解决方案,尤其是在能源高效实时嵌入式系统的背景下。本文概述了最重要的工作,在这些工作中FPGAs在不同场景下用于处理事件数据。它涵盖了以下领域的应用:过滤、立体视觉、光流、AI基础算法(包括尖峰神经网络)的加速,用于物体分类、检测和跟踪,以及机器人和检查系统中的应用。当前此类系统的趋势和挑战也进行了讨论。
作者
*Tomasz Kryjak 嵌入式视觉系统组,AGH 克拉科夫大学,波兰
出版信息
Journal: 2024 第27届欧盟微电子数字系统设计会议(DSD) Year: 2024 Pages: 541-550 DOI: 10.1109/DSD64264.2024.00078 Article Number: 10741814 ISSN: Electronic ISSN: 2771-2508, Print on Demand(PoD) ISSN: 2639-3859
指标
论文引用次数: 6 总下载量: 464
关键词
IEEE 关键词: Surveys, Lighting, Spiking neural networks, Vision sensors, Robot sensing systems, Cameras, Real-time systems, Energy efficiency, Stereo vision, Field programmable gate arrays
索引术语: Event-based Vision, Data Processing, Neural Network, Power Consumption, Event Data, Object Detection, Graphics Processing Unit, Object Classification, Low Latency, Optical Flow, Spiking Neural Networks, Object Tracking, High Dynamic Range, Dynamic Vision Sensor, Convolutional Neural Network, Deep Network, Deep Neural Network, Tracking System, Formal Evaluation, Data Fusion, MHz Clock, Graph Neural Networks, Event Stream, Custom Dataset, Multiple Object Tracking, Camera Frame, Hardware Implementation, Sum Of Absolute Differences, Majority Of Papers
作者关键词: event cameras, dynamic vision sensors, DVS, reconfigurable devices, FPGA, embedded vision, survey
未定义
第一节:引言
事件相机,也称为动态视觉传感器(DVS)或神经形态相机,在近几年已获得显著关注。 这一点体现在科学出版物数量的快速增长,包括顶级计算机视觉和机器人会议:CVPR、ICCV/ECCV、WACV、IROS、ICRA,以及知名期刊如 IEEE TPAMI、IEEE TCSVT、IEEE RAL 等。 首批更广泛商业化的解决方案也在出现,例如提升智能手机拍照质量[^1].
事件摄像机由于其特性(参见第II节),在广义上的移动机器人感知系统以及可以称为嵌入式的其他方案中,也是一个具有吸引力的传感器。在此类应用中,一个关键因素是实现算法的计算平台。它应具备足够的计算能力,能够实时低延迟地处理数据,并且能耗低。迄今为止,大多数关于事件驱动视觉的研究采用通用处理器(GPP/CPU)或可编程图形卡(GPU)作为计算平台,尤其是在使用深度神经网络的方案中。另一方面,已知超过20年前,配置式设备已成为实现嵌入式视觉系统的有吸引力的平台:从经典方法到使用人工智能方法 1、2。它们的特点是功耗相对较低、延迟低、支持并行,并允许在目标设备上进行原型设计和多次算法修改。因此,使用FPGA进行事件数据处理似乎是研究和后续应用开发的相当自然方向。
本文汇总了2012年至2024年上半年发表的绝大多数使用FPGA(现场可编程门阵列)或SoC FPGA(片上系统FPGA)处理事件数据的研究论文。区分出的应用包括:事件数据过滤(预处理)、光流、立体视觉、目标分类、检测与跟踪(以“经典”方式实现)、人工智能算法(包括脉冲神经网络 - SNN)以及其他应用。这种编纂使感兴趣的读者能够了解使用FPGA进行事件数据处理的机会、优势、挑战和缺点,并指示各领域工作的进展水平。工作最重要的贡献可概括为:
首先综述了2012年至2024年(截至中期)使用FPGA和SoC FPGA处理事件数据的科学文章,
迄今为止的成就总结以及在 SoC FPGA 平台应用尚未充分探索的领域识别(知识空白)。
本文其余部分的组织如下:第二节简要介绍事件相机的技术。第三节提供关于 FPGA 上事件数据处理工作的综合概述。文章最后以讨论和简要总结结束。
SECTION II. 事件相机
事件相机的灵感来源于视网膜的工作方式,其中光感受器(锥形细胞、杆状细胞)在光照到达时被激活,并且每个光敏元件都独立工作。在事件相机中,这一过程已被复制——每个像素独立(异步)工作,如果记录到的亮度变化超过预设阈值,就会以如下形式生成事件:E=\{x,\ y,\ t,p\},其中 x 和 y 是像素的空间坐标,t 是时间戳,p 是极性(亮度变化方向)。需要补充的是,对亮度变化的监测是在对数尺度上完成的,并且在单个像素的模拟部分进行。
这种工作模式具有多种影响。无可争议的优点包括:(1)在恶劣光照条件下正确工作——既能在低光照下,也能在高动态范围条件下工作(估计为 120 dB,相比传统帧摄像机的 50–60 dB),(2)相较于帧摄像机,对运动模糊的敏感度更低,(3)低延迟,定义为亮度变化开始到此信息出现在传感器输出的时间,(4)高时间分辨率——时间戳通常以 1 微秒(1 MHz 时钟)的精度传输,(5)信息冗余消除——如果场景中没有变化则没有事件,导致数据传输的带宽需求降低且能效更高(需要注意的是,这适用于“平均”情况——例如,场景中出现非常动态的运动或闪烁的照明可能导致数据流与帧摄像机相当,甚至更高)。
另一方面,挑战包括: (1) 缺乏绝对亮度信息,这在某些场景中是必要的(例如在相机也处于静止状态时检测静态物体), (2) 噪声相对较高,需使用某种过滤方法, (3) 不寻常的数据格式——稀疏时空云,无法直接与现有的帧相机处理方法兼容,意味着需要将事件转换为伪图像或使用不太标准的处理方法,例如图神经网络、尖峰神经网络或将事件分组为体素。
在可重构系统的数据处理背景下,最后一个属性尤其值得强调。典型的帧相机数据流结构非常清晰——连续像素逐行逐帧传输。这极大地促进了高效计算架构的设计,并充分利用计算并行化,包括流水线——既适用于“classical”方法,也适用于深度卷积神经网络。在事件相机的情况下,数据流的形式取决于物体和场景的动态,这带来了重大的挑战。
欲了解事件相机技术及其功能与应用,请参阅非常好的综述文章 3 以及最近关注汽车应用的综述 4。
第 III 节. 基于事件的视觉在 FPGA 上
本次综述的起点是对使用 FPGA 处理事件数据的论文进行检索。该检索采用以下几种方法的组合:在 Google Scholar 和 Scopus 上进行搜索(主要使用关键词 FPGA 或 VLSI、event camera 和 DVS)、由 TU Berlin 的 Guillermo Gallego 维护的文章列表[^6]以及苏黎世大学的 Robotics and Perception Group[^7],以及对所审阅论文中引用的文献进行分析。结果,从 2012–2024 年(上半年)收集了 60 篇文章。由于该领域相对规模较小,目前仍有可能审阅绝大多数论文。然而,尽管尽力而为,仍可能遗漏少量论文,尤其是最近的或标题和关键词不太明显的论文。此外,预印本未包含在综述中。每年的文章数量见图 1。
图 1. 每年的出版物数量.
通过分析收集到的文章,还可以区分与所研究主题相关的研究团队。由于频繁的国际合作,决定根据第一作者的所属机构将论文归属到研究团队/国家。迄今为止,发表论文最多的来自塞维利亚大学(Robotic and Technology of Computer Laboratory[^8])——至少 11 篇。除此之外,Institute of Neuroinformatics of ETH Zurich 相关团队发表 9 篇,Instituto de Microelectrónica de Sevilla, University of Seville[^9] 相关团队发表 5 篇,Computer Architecture and System Research (CASR) group of the University of Hong-Kong 发表 4 篇,Temasek Laboratories, National University of Singapore 发表 3 篇,Embedded Vision Systems Group of AGH University of Krakow, Poland 发表 3 篇。在 2012–2014 年早期,AiT in Austria 相关团队也活跃于该领域,发表 3 篇。
按国家划分的出版物细分见 Fig-ure 2。请注意,在 USA 和 China,团队各自发表了一篇论文,而在 Spain、Switzerland、Hong-Kong、Singapore、Austria 或 Poland,可以识别出发表 3 篇或以上论文的团队。
下面讨论的工作中,所实现的硬件算法、事件流的分辨率、所使用的 FPGA 设备(以大括号形式写在参考文献之后)、时钟频率以及事件处理速率(MEPS - Mega Events Per Second,百万事件每秒)或延迟(如有提供)均以非常简洁的形式给出。 此外,还说明了解决方案是否以及如何被评估,特别是与先前工作进行比较。 文献类型也在参考文献之后标注: (C) - 会议论文, (SC) - 短会议论文/演示, (LC) - 长篇会议论文(超过10页), (J) - 期刊, (SJ) - 期刊摘要。
图 2. 按国家(第一作者所在机构)统计的出版物.
A. 过滤
事件数据过滤是一个非常重要的问题,因为 - 由于晶体管结泄漏和寄生光流 - 事件相机具有高噪声水平。 这在单个、无相关事件的形式中可见,它们与实际发生的变化: 照明或物体和/或相机运动无关。
第一篇讨论在 FPGA 中实现过滤的论文是 g{Lattice ECP3}。 它使用了背景活动过滤器(Background Activity Filter,BAF),该过滤器分析传入事件的时间戳,并将其与先前存储的与相关事件相关的时间戳进行比较。 基于此,判断该事件是否应被视为真实事件或噪声。 此外,还将时间戳传播到相邻像素。 该方案使用一个 32 位字数组,大小为 128×128,用于存储时间戳,该数组实现于 BRAM 资源中。 由于所提出的过滤器是跟踪系统的一部分,未单独进行评估。 关于最大频率和延迟的信息也未提供。 所述的时间戳分析机制是大多数事件数据过滤方法的基础。
一种名为 LDSI - Less Data Same Information - 的仿生算法已在文章 §{Virtex 6[^10]} 中提出。它的任务不仅是去噪,还要在保留信息的同时减少事件流。所使用的神经元模型灵感来自视网膜的双极细胞。该模块与 128×128 事件摄像头配合使用,时钟频率为 177 MHz,资源消耗相对较低(671 LUTs,40 BRAMs)。该过滤方法尚未经过正式评估,也没有关于最大吞吐量的信息。
论文 [7{Spartan 6} 提出了多方面改进,其中包括改进版的 BAF 过滤器(参见 5)。该修改主要在过滤过程中更好地考虑了空间上下文。此外,还提出了一种专门用于去除所谓热点或无信息像素的简单遮罩过滤器。它由两个矩阵构成——第一个用于检测频繁生成事件的像素,第二个用于标记并遮罩它们。该过滤方法尚未经过正式评估。该方案已在 128×128 像素 DVS 上得到验证。
论文 6(C){Spartan 6} 提出了一个由四个阶段组成的过滤算法:事件解析(省略时间信息)、偶然检测(分析事件的空间共现)、聚合-下采样(在时间上聚合事件出现)以及霍夫曼编码(由 256 个词构成)。该系统使用分辨率为 480×320 像素的 DVS 传感器,并使用 598 FFs、4053 LUTs、1 DSP 和 103 BRAMs。所提出的过滤方法尚未经过正式评估。
一种称为 HashHeat 的过滤方法,计算复杂度为 O(C),已在论文 7(C){Artix 7} 中提出。它不需要存储时间戳,其计算复杂度与输入流的空间分辨率无关。其基础是一个在欧氏空间中运作的哈希函数。该方案运行频率为 100 MHz,单个事件的延迟为 10 ns。过滤结果已与 DVS Gesture 集合 8 上的几种流行算法进行比较。
在工作 9(C){Artix 7} 中,作者假设由于噪声稀疏且随机的特性,足以仅在给定行或列中存储事件发生的信息。这使得计算复杂度为 O(N) (N - 传感器的空间分辨率。作者进行了理论性能分析,并进行了一项实际实验,将该方法与两种更高内存复杂度的流行过滤方法进行比较。
在论文 10(C){Zynq US+ MPSoC} 中,提出了一种基于时间戳分析的方法。然而,时间戳并未被替代,而是在时间上进行过滤(平均)。该算法已在多组不同序列上进行了评估,但未与其他方法进行比较。实现的资源占用低,吞吐量高达 386.9 MEPS(每秒百万事件)并被设计用于与 1280×720 DVS 一起工作。
作为本领域最新发表的工作,应被视为 11(C){Zynq SoC, Zynq US+ MPSoC}。它提出了 MLPF(多层感知机降噪滤波器)算法。这是第一个使用在标记数据上训练的神经网络的解决方案。对该方法已经进行了正式评估并与其他方法进行比较。它具有非常好的过滤效率,但吞吐量仅约为 23 MEPS。
总之,事件数据过滤这一主题至今已在 8 篇科学论文中得到讨论。一个有前景的方向似乎是使用深度学习方法(如论文 12 所示)。然而,和任何使用神经网络的系统一样,挑战在于计算复杂度。此外,并非所有文章的作者都对所提出的方法进行正式评估。还缺乏一个统一、成熟的数据集来报告过滤性能结果。
B. 光流
光流是由于观察者与场景之间的相对运动而导致的视觉场景中物体、表面和边缘的表观运动模式。对光流的分析可以检测移动物体,并确定相机相对于其周围环境的自运动,这可用于,例如,稳定多旋翼无人机。关于该问题的更详细讨论可见于论文 13。光流是计算机视觉中的基本概念之一,因此尝试从事件相机数据流中确定光流,在 FPGA 上同样似乎是一个明显的研究方向。
该主题的第一篇论文是 14(C){Spartan 6}。它提出了一种基于块匹配的方法,这种方法在传统计算机视觉中已知。在第一步,事件被转换成二进制伪图像(忽略极性),并存储在 BRAM 中——前两个 t_{1} 和 t_{2} 以及当前的 (t_{0})。随后,对于来自图像 tl 的新事件,提取 9×9 上下文并与来自 t2 的 9 个相邻上下文进行比较。使用汉明距离进行匹配。在 50 MHz 时钟下,单个事件的处理时间为 220 ns,相当于 5 MEPS。评估使用了众所周知的指标:AAE(平均角误差)和 AEE(平均端点误差),但未说明使用的是哪一数据集。
本文展示了一种用于事件驱动光流估计的迭代平面拟合算法的硬件实现,文献15(C){Spartan 6}中给出。实现的处理速率为 2.75 MEPS,足以满足分辨率为 304×240 的传感器需求。本文采用了“旋转条纹”序列进行评估,该序列亦被早期工作考虑,但论文未与以往工作进行直接对比。作者强调,改为定点算术导致性能略有下降。
在论文 [7]{Zynq US+ MPSoC} 中,作者专注于用于光流确定的直方图生成方法。首先,事件被存储在由一组 RAM 组成的缓冲区中,数据被压缩——而不是存储绝对时间戳,只存储差值。随后进行背景活动过滤并对时间戳进行解压缩。最终,这使得直方图可以被更新。该方案支持 200 MEPS 的处理。论文中没有直接提及光流确定。
在论文 16(J){Zynq SoC} 中,作者提出了一个用于特征点(角点)检测的硬件实现,称为 SFAST(Slice-based FAST),以及用于它们的块(稀疏)光流计算——ABMOF(Adaptive Block Matching Optical Flow)。值得注意的是,使用了多尺度方法,显著提高了效率。该模块的特点是高内存(BRAM)和 DSP 计算资源占用。密集流计算变体支持 1 MEPS 的处理,而稀疏流(仅针对特征点)则超过 16 MEPS。值得一提的是,对事件数据的两种其他光流计算方法进行了非常广泛的评估和比较。此外,角点检测方法本身在 17](SC){Zynq SoC} 中给出。
在文章 18 [C] {Virtex US+} 中,提出了一个利用事件与视觉数据融合实现光流确定的模块。对于事件数据,使用了三层 Leaky CNN 网络;对于帧数据,则使用经典的 Farneback 算法。融合过程利用从事件输入计算出的置信度图。评估是在一组 MVSEC(从安装在无人机上的相机记录的序列)上进行的。作者估计每秒可获得 41 帧光流结果。然而,在当前版本中,Farneback 模块尚未实现为硬件。
总之,关于在 FPGA 上实现事件数据的光流 (OF) 模块的问题已在 6 篇论文中得到解决。大多数算法使用不同类型的伪图像作为表示。缺乏用于评估的统一数据集是显而易见的。只有一篇论文 19 讨论了事件与视觉数据的融合,使用神经网络来确定事件的光流。
C. 单目立体视觉
除了光流之外,深度估计也是计算机视觉中非常重要的领域之一。此外,执行此任务的算法具有高度的计算复杂性,这直接促使它们在 FPGA 上实现。
在会议论文 20(C){Spartan 3} 中,提出了一个立体视觉模块,作为跌倒检测系统的一部分。传入的事件(304×240)被聚合成伪帧,随后使用 15×15 窗口中的归一化 SAD(绝对差和)进行典型匹配。该论文缺乏 FPGA 实现细节,只提供了对先前工作的引用。立体视觉模块也没有正式评估。然而,在整个系统的背景下,对一个包含跌倒记录的自定义数据集进行了评估。需要注意的是,在将表示从事件数据改为伪帧后,系统架构与典型的视觉解决方案相似。该方案的更多技术细节已在论文 21(C){Spartan 3} 中呈现,但关于性能或效率的信息尚不可得。
论文 22(C){Spartan 3} 基于之前的工作 23 和 24,在 FPGA 上实现了立体视觉系统。作者将图像划分为 16×16 的窗口,仅对事件活动水平足够高的窗口进行匹配。同时实现了去畸变模块和视差一致性检查。对于分辨率为 128×128、时钟为 100 MHz 的传感器,获得了 13.7 µS 的延迟,作者将其转换为 1140 fps(帧率)。评估在作者的两组序列上进行,比较仅限于早期工作的 SAD 方法。
文章 25(C){Spartan 6} 提供了一个针对 128×128 分辨率相机的事件驱动卷积模块阵列的实现。输出结果,例如可以生成可用于立体视觉算法的 Gabor 滤波结果。然而,该方案的实现细节和评估细节缺失。
在文章 26(J){Virtex 5} 中,提出了针对 128×128 相机的立体视觉系统。第一步完成了校正。匹配算法的描述并不明确,但可以推断构建了直方图表示,并在其上进行拟合,考虑了极线几何的限制。该方法尚未得到正式评估。
文章 27(J){Virtex 5} 关注立体视觉系统的标定问题。作者使用特殊的标定板获取了投影矩阵,并利用它们进行重计算,从左、右相机的 u, y 投影坐标重建实际的 X、Y、Z 坐标。该方案在多种情况下进行了测试——既有静态也有运动。文章对硬件实现的细节几乎没有说明——它处理来自 128×128 分辨率相机的数据,单个事件的延迟为 10 ms。
文章 [27]{Zynq SoC} 的重点是加速校正。需要注意的是,这一过程与从传统相机获取像素的计算没有区别。对于分辨率为 400×250 的数据,一个模块每秒可重新计算多达 2200 帧(无关于时钟频率的信息)。
文章 28(J){Zynq SoC}) 是论文 [[27]] 的扩展。值得注意的是,作者并未使用典型的事件相机,而是使用了一种峰值相机,当累计亮度强度超过预设阈值时会发射事件(类似整流-发射神经元)。针对该设备,他们提出了一种图像重建方法——生成一种伪图像和已提出的校正。深度图本身的计算尚未实现。
文章 29(C){Zynq SoC} 提出了事件驱动单目多视角立体(EMVS)方法的加速,即基于已知运动轨迹的录制序列进行深度重建。作者对 EMVS 方法做了一些修改,并提出对算法中选定部分的加速:事件反投影和体积射线计数。该方案在 120 MHz 时钟下运行,能够处理超过 1.8 MEPS。
文章 30(J){Intel Cyclone IV} 提出了用于确定立体对应关系的脉冲式协作网络的硬件实现。该方法不需要生成中间表示,而是直接处理输入事件。该模块在 50 MHz 时钟下运行,针对 128×128 的输入分辨率,延迟为 2 ms。评估在自定义数据集上完成。
综上所述,大多数论文使用事件表示,只有一篇论文 31 尝试直接处理事件数据。它也是唯一使用神经网络的工作。与光流类似,缺乏统一数据集用于评估也值得注意。
D. 目标检测、识别与跟踪
本节概述了使用“传统”算法,即不使用深度网络的工作。首先介绍了目标检测与识别的研究,然后是目标跟踪。
论文 ^33{Zynq SoC} 提出了一个名为 PCA-RECT 的事件流特征提取方法,该方法用于目标检测和分类任务。首先进行滤波,然后为每个像素创建一个动态更新的活动计数矩阵。随后对该矩阵进行卷积(均值)滤波。然后从该矩阵中选择一个上下文,并使用 PCA 将其投影到低维子空间。基于此,使用 k-d 树最近邻搜索算法创建一个字典。使用 SVM 算法进行分类,并利用与字典相关联的激活图来确定位置。作者还提出了一个不使用 PCA 的变体,该变体计算复杂度更低,更适合在 FPGA 上实现。上述模块在 100 MHz 时钟下运行,时延为 550 ns。对 N-MNIST 和 N-Caltech101 [^34] 数据集进行了分类评估,并在作者的数据集上进行了检测。该工作的扩展版本已发表于期刊 [^35]。评估已扩展,描述已改进,并添加了在任意时间点进行分类的可能性。
在文章 [^36][J]{Zynq SoC} 中,提出了一种基于简单二进制特征和随机蕨类分类器的事件数据分类系统。通过分析事件流某一片段中随机选取区域的正负事件发生情况来计算特征。数据的分类方式类似贝叶斯方法,使用由特征决定的蕨类。需要注意的是,该方法支持非常简单的在线训练实现。评估在 MNIST-DVS、Poker-DVS 和 Posture-DVS 数据集上进行。该模块在 100 MHz 时钟下可处理 100 MEPS。请注意,资源使用量随着某一特征向量参数的指数增长,这可能限制了该方案在更复杂问题中的应用。
在论文 [^37][J]{Zynq SoC} 中提出了一种用于层级时间面(HOTS)复杂事件数据表示的硬件加速器。该模块以 100 MHz 的时钟运行,报告的吞吐量范围为 0.16 MEPS 到 2 MEPS。评估针对手势识别应用进行——作者记录了分辨率为 304×240 像素的事件序列。所使用的计算量化导致性能下降约 1 个百分点。
在论文 ^38{Zynq SoC} 中,提出了一种针对无人机的生物启发式立体视觉障碍物检测系统。该系统由若干模块组成:过滤(使用 IMU 传感器数据和立体一致性条件)、伪图像生成,以及匹配特征的检测与定位。计算被分配到处理器系统和 SoC FPGA 设备的可编程逻辑中。由于该系统类型特殊,测试使用了作者的序列(室内和室外无人机飞行)。因此,该工作未包含与其他研究的直接对比。
在上述论文 32 中,除了过滤之外还提出了一个目标跟踪模块。它基于对事件群集(即事件聚集区域)的检测与跟踪。该模块在两种场景下进行了测试:慢速移动物体和高速移动物体。
论文 ^39{Spartan 6} 提出了视网膜节细胞模型的硬件实现,该模型可检测移动物体。它基于物体运动细胞(OMC),能够检测到小型移动物体的存在。随后可将此信息用于跟踪。对于 50 MHz 的时钟,延迟为 220 ns 或 440 ns,取决于 OMC 模块的数量。
论文 ^40{Spartan 6} 呈现了与论文 [[37]] 类似的概念。实现了 Approach Sensitive Cell 机制,其任务是检测靠近相机的物体。以 50 MHz 的时钟频率,获得了 160 ns 的延迟。该工作结果在期刊文章 [^41] 中也有更详细的描述,其中包括该方案在移动机器人平台上的应用等内容。
在论文33(J){Spartan 6}中,34的概念被进一步发展并与[[37]]结合。提出了一个包含四个硬件模块的库:背景活动过滤器、掩模过滤器、簇对象跟踪器和对象运动检测器。该实现可与分辨率为128×128像素的DVS一起使用。
文章^43{Kintex 7}提出了一个用于事件数据处理的嵌入式系统。除了硬件模块外,还包含一个RISC- V处理器。举例应用为:过滤、角点检测、聚类和跟踪已实现。该系统配合128×128像素相机工作,能够执行19 MOPS(每秒百万次操作)。
在论文^44{Zynq SoC}中,作者提出了一个使用事件相机的多目标跟踪(MOT)系统。该系统基于注意力单元,能够在定义区域内(每个AU对应一个对象)并行分析传入事件(在可重配置资源中实现)。此过程在控制器(处理器系统中的实现)监督下进行。作者提出了三种AU实现变体,具有不同的计算复杂度与效率比例。评估在三组测试集上完成。改进版系统在期刊出版物[^45]中展示,具有更高的能效和更好的性能。
论文43{Zynq US+ MPSoC}提出了一种神经启发的超高速移动物体过滤、检测和跟踪方案。根据对摘要[^46]的分析,可以推断对象检测与跟踪使用阈值化和连通组件标记。该加速器每秒可处理多达20000张峰值图像,分辨率为250×400。
论文(C){Zynq US+ MPSoC}介绍了一个由四个模块组成的对象跟踪系统:去噪(双窗口滤波器)、角点检测(基于切片的FAST)、光流(ABMOF 35)和聚类,其中前3个在可重配置逻辑中实现,最后一个在处理器系统中实现。需要指出的是,该论文集成/实现了先前已发布的方案。作者未将该方法与其他方案进行比较,并表示这不可能。
文章^47介绍了一种实时混合神经形态框架,用于对象跟踪与分类。该方法结合了事件帧(用于跟踪)和直接事件处理(用于分类)。除了FPGA设备,本文还使用了IBM的TrueNorth神经形态芯片。评估在自定义数据集上完成,并将该方案与多种已发布的方法进行比较。文中未提供跟踪模块FPGA实现的细节。
总之,针对分类和检测问题,已经提出了两种相当复杂的硬件实现,并在标准化数据集上展示了评估结果。对于跟踪问题,确实有更多的研究论文,但缺乏类似于 VOT 或 MOT/MOTS 数据集(针对基于帧的视觉)的标准化评估集,这使得客观比较所提出的方案变得非常困难。
E. 人工智能
人工神经网络在计算机视觉中的作用日益增加,也在处理事件数据的嵌入式系统中得到体现。尖峰神经网络(SNN),其与事件相机的工作方式“兼容”,是一种特别相关的架构。鉴于此,本文分别讨论了 SNN 及其他网络,主要是卷积神经网络(CNN)。
1) SNN
论文 ^48{Spartan 6} 展示了脉冲卷积神经网络的实现。使用了 LIF(leaky integrate-and-fire)神经元模型。该架构采用了全局异步局部同步(Globally Asynchronous Locally Synchronous)方法,能够共享部分资源,并利用流水线与并行设计原则。该方案可在分辨率为 128×128 的事件视觉传感器(DVS)上运行。
在论文 [Z]{Zynq SoC} 中提出了一种面向 FPGA 的基于事件的卷积引擎。该系统支持最多 64 次卷积,卷积核大小从 1×1 到 7×7,单个事件的延迟为 0.9 微秒。该论文未讨论该加速器的直接应用。结果也以简短会议论文 [^49] 和更为详尽的期刊文章 [^50] 的形式呈现。
文章 ^51{Spartan 6} 介绍了一个完全可配置的尖峰卷积模块,可用于在 FPGA 上集成大型任意卷积神经网络 (ConvNets)。使用该模块,构建了一个由 22 个卷积块组成、分布在 4 层的网络。它使用了 FPGA 芯片资源的 93%。使用事件相机记录的扑克牌符号识别(40 张牌)被作为示例应用展示。输入数据的分辨率为 32×32 像素,呈现时间为 2.5 秒。这些结果也在会议论文 [^52] 中展示。
在论文 ^53{Zynq SoC} 中,提出了一种针对 DVS 数据的事件驱动尖峰多核卷积架构。采用了 LIF 神经元模型。其主要创新点在于将神经元膜电位和卷积核存放于内存中的排列方式。对于 64 个滤波器、32×32 的核尺寸,延迟达到 10.33 微秒。与上述工作相比,该方案实现了更高的吞吐量和更低的功耗。
The article [^54]](SC){Zynq US+ MPSoC} 介绍了一个为 FPGA 实现定制的异步触发 spiking neuron 概念。这种方法降低了功耗。该模块对单个数据样本的时延为 50 毫秒。评估在 N-MNIST、Poker-DVS 和 DVSGesture 数据集上完成。
2) CNN
论文 ^55 介绍了 NullHop,一种通用的卷积神经网络加速器,它利用 CNN 中神经元激活的稀疏性来加速计算并降低内存需求。该工作在主题上超出了本综述的范围,但因两点原因被纳入。作者来自两个在 FPGA 上开展事件驱动视觉工作的主要团队,其中一个应用是事件驱动的人脸检测——将事件聚合为伪帧并实现了实时处理。在演示论文 [^56] 中,讨论的 NullHop 系统也被用于手势识别。作者特别关注 DMA 传输优化。
论文 ^57{Zynq SoC, Zynq US+ MPSoC} 中提出了一个行人检测系统的硬件实现。该系统由两个模块组成:点处理过滤(过滤并同时生成事件数据的二进制表示)和一个二进制神经网络。使用了分辨率为 480×320 像素、可见人物的自定义数据集。获得了与更复杂模型(MobileNet、ResNetl8)相似的性能,并显著减小了尺寸。此外,同一团队在会议论文中提到了一个基于二进制网络的检测模块,该模块运行在 STM32F4 微控制器上,另外还有已讨论的 36 过滤模块。
论文 ^58 介绍了一种 CNN 网络加速器(来自论文 [^55] 的 NullHop),用于高速视觉分类。提出了一个将传入事件聚合为归一化直方图的模块。该模块已使用 HLS(High-Level Synthesis)语言进行描述。本文未对其进行评估或与其他工作进行直接比较。
论文^59{Zynq US+ MPSoC}提出了一种可组合的动态稀疏数据流架构,使得在FPGA上快速构建事件数据加速器成为可能。其主要区别在于稀疏方法,即仅处理激活像素的特征。在187 MHz的时钟频率下,延迟在0.15至7.12 ms之间。该方案在多个数据集上进行了评估:DVSGesture、RoShamBol7、ASL-DVS、N-MNIST和N-Caltechl0l,取得的结果与文献中报道的其他工作相当。
在文章^60{Zynq US+ MPSoC}中,提出了将事件数据以图形式在FPGA中表示的优化方法。该方法实现了一个高效从事件流构建图的硬件模块,可用于基于图卷积神经网络的分类或检测。对N-Caltechl0l数据集的实验表明,该方法对检测性能没有显著影响。在250 MHz时钟下,处理速度达到9.6 MEPS。
总结而言,利用神经网络处理事件数据的方法可分为两类。第一类使用不同类型的事件帧,实际上意味着传递给网络的输入数据与传统帧相机的数据没有显著差异,尽管例如最近一篇论文[^59]尝试利用DVS数据的稀疏特性。第二类则是“直接”处理事件数据。尖峰网络占主导地位,但图神经网络也被考虑。将该领域的发展程度与通用处理器和图形卡上的事件数据处理进行比较,发展潜力巨大——尤其是在目标检测和分类方面,同时考虑事件与视觉数据的融合。
F. 其他应用
本节收集了讨论上述问题之外其他问题的文章。
The article ^61{Spartan 6} 提出了一个基于事件数据控制立体头部机器人平台的系统。采用并适配了受生物启发的 VITE(Vector Integration To-End Point)算法(Spike-VITE)。该系统的特点是 FPGA 资源和功耗低。该方案也在文章 ^62{Spartan 6} 中呈现。采用基于类神经元单元的架构实现对象跟踪。此阶段的结果传递给 SVITE 模块,该模块通过脉冲频率调制实现控制。实验在机器人臂模型上进行。
The article ^63{Spartan 6} 展示了使用事件相机测量电机转速的方法。采用了一个简单的算法,检测装在轴上的标记并确定时间戳之间的差值。还评估了使用音频信号处理测量相同量值的可能性,以及两种传感器数据的融合。
The article ^64{Spartan 6} 在 FPGA 与 UMC 180 nm 技术下提出了一个基于事件相机测量物体旋转频率的系统。该系统基于对单个像素的变化(polarisation)的分析,并对时间进行平均。使用 FPGA 设备使得能够并行计算 256 个位置。作者进行了两项测试:无人机螺旋桨运动登记和闪烁 LED,结果证实了所提方案的有效性。
文章 [^65] (C) {Lattice} 中介绍了一种低功耗事件数据采集与处理节点。它由一个 132×104 分辨率的 DVS 摄像头、一个 FPGA 设备以及蓝牙传输模块组成。在 FPGA 设备中,基于事件流的 5 ms 段生成事件-帧表示,然后将其发送到主机。该方案以每秒 874 个事件-帧的采集率,仅消耗 17.62 mW 的功率。相比之下,整个系统在每秒 200 个事件-帧时消耗 35.5 mW。
文章 ^66{Virtex US+} 介绍了一种事件相机模拟器。一方面,它可以获取模拟事件数据;另一方面,它可以从图像中选择事件发生的高显著性 ROI(感兴趣区域),从而加速使用 DCNN 进行潜在推理。
论文 ^67{Kintex 7} 提出了一个数字架构,实现了基于显著性的选择性视觉注意模型,用于处理异步事件式感知信息。该算法选择最显著的像素,仅转发位于活跃像素附近区域的信息,从而节省带宽、能量并实现“选择性”注意策略。选择本身基于检测高对比度移动物体数量最多的区域的原则。
在文章 [Z]{Zynq SoC, Zynq US+ MPSoC} 中,作者关注在 FPGA 上生成各种事件帧的问题。他们设计了一个模块,针对分辨率为 1280×720 像素的事件流,可以确定以下表示形式:二进制帧、事件帧、指数衰减时间表面、事件频率。除基本变体外,还考虑使用多个内部 RAM 模块并行工作,以便进一步以向量格式处理数据,并在滚动窗口基础上更新表示。针对三种 SoC FPGA 平台,对不同实现方法的可行性和硬件资源使用进行了分析。
总之,除了计算机视觉的“传统”领域外,事件处理的硬件实现还涵盖机器人系统、旋转测量以及使用注意力和显著性机制的方法。更技术性的方面,如数据流的压缩与传输,或事件帧的生成,也被涵盖。
第四节:讨论与结论
对 FPGA 中事件数据处理硬件实现的研究在很大程度上与该领域的“通用”研究(CPU 和 GPU 计算)以及计算机视觉主题相对应。然而,由于硬件实现耗时,本文讨论的工作落后于最新进展一步。
可以从所做的分析得出以下结论:
将 DVS 摄像机连接到 FPGA(尤其是可重构逻辑)并不简单。许多研究使用了难以复制或无法复制的定制解决方案。仅最近,DVS 摄像机制造商 Prophesee 与 AMD Xilinx 合作,推出了专用开发套件[^68]。这应对研究便利性以及该技术演示器的准备产生积极影响。然而,这仅应视为实现将不同事件摄像机连接到不同 FPGA 板的可能性和便利性的第一步。
FPGA 也集成在 DVS 摄像机中(所谓的智能 DVS)。然而,这些解决方案尚未广泛可用,且在所分析的出版物中没有使用它。
作者们通常以低或非常低分辨率处理 DVS 数据。很少有论文考虑 HD(1280×720)传感器。
截至目前,更多研究采用某种事件帧而非“直接”处理。
许多出版物中显著的问题是缺乏可比评估,最好使用常用数据集进行评估。该问题在分类和检测方面已得到最佳解决。
迄今为止,还没有提出同时实现基于 AI 的目标检测和分类的工作。
代码公开,尤其是 HDL(硬件描述语言),非常罕见,但这无疑将有助于未来系统的发展。
未来研究的潜在领域可归纳为:
事件与视觉数据的融合(也包括雷达和激光雷达)。这一问题虽然有前景,但仅在一篇论文中讨论过 37。
研究现代 AI 方法的实现,包括 GNNs 和 transformers,以及对 SNNs(以及神经形态设备)的进一步探讨。
更加关注事件数据的“直接”处理(将其视为时空点云)。
机器人领域的端到端系统,例如用于汽车或自主无人机。
使用最新一代的 SoC FPGA——例如 AMD Xilinx 的 Versal/ACAP 系列——这些设备配备了专用于 AI 计算的资源。
脚注
https://www.prophesee.ai/2023/02/27/prophesee-qualcomm-collaboration-snapdragon/
https://docs.google.com/spreadsheets/dllOBbSz1OCkxXNDHQd-MnruI3DmymMFVin-lW3-IoUvXY87ecIiTIfgiCi=q
由于研究组名称可能发生变化,需对这些数据保持一定的不确定性。
还应注意,许多论文是塞维利亚大学与苏黎世联邦理工学院合作完成的。
如果未提及 FPGA 的制造商,默认为 Xilinx。
IEEE 订阅中无法获取全文。
https://www.prophesee.ai/2024/05/06/event-based-metavision-amd-starter-kit-imx636