标题:ECSNet:事件相机的空间时间特征学习
源文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9869656https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9869656
源码:GitHub - zhiwen-xdu/ECSNet: Code for TCSVT'22: ECSNet: Spatio-temporal feature learning for event cameraCode for TCSVT'22: ECSNet: Spatio-temporal feature learning for event camera - zhiwen-xdu/ECSNethttps://github.com/zhiwen-xdu/ECSNet
摘要
神经形态事件相机能通过生成异步和稀疏的事件信号,有效地感知场景中潜在的几何结构和运动线索。由于事件信号布局不规则,如何利用其丰富的时空信息进行识别任务仍是一个重大挑战。现有的方法倾向于将事件视为密集的图像状或点序列表示。然而,它们要么严重破坏了事件数据的稀疏性,要么未能编码稳健的空间线索。为了充分利用其内在的稀疏性并协调时空信息,我们引入了一种紧凑的事件表示,即2D-1T事件云序列(2D-1T ECS)。我们将这种表示与一个新颖的轻量级时空学习框架(ECSNet)结合,该框架同时适用于物体分类和动作识别任务。我们框架的核心是一个层次化的空间关系模块。配备有专门设计的表面事件采样单元和局部事件归一化单元,以增强事件间关系的编码,此模块从2D事件云中学习稳健的几何特征。并且,我们提出了一种运动注意力模块,用于高效地捕捉随1T云序列演化的长期时间上下文。实验证明,我们的框架实现了与现有最佳技术相当甚至更好的性能。重要的是,我们的方法与事件数据的稀疏性很好地配合,无需复杂的操作,从而导致较低的计算成本和显著的推理速度。
索引术语-事件相机,时空特征学习,目标分类,动作识别。
1.引言
本文的主要贡献概括如下:
• 我们引入了一种稀疏的事件表示方法(即,2D-1T事件云序列),这种方法更好地整合了事件数据的时空信息。结合这种表示方法,我们提出了一个新的轻量级时空学习框架(即,ECSNet),用于提取稳健的空间几何特征和运动线索。
• 我们设计了一种基于表面事件的采样算法和一个局部事件归一化单元,以增强事件云中事件间关系的编码,并提出了一种注意力模块,用于在多个事件云上高效建模长期时空上下文。
• 我们在物体分类和动作识别两个任务上对我们的框架进行了评估,结果显示它在这两项任务上的性能与现有最佳技术持平甚至更优。特别是,我们的方法实现了较低的模型复杂度和显著的推理速度。
2.相关工作
在神经形态识别领域,近年来涌现出许多优秀的研究成果。在这些工作中,通常对事件信号进行处理并转换成合适的表示,以提取有意义的特征。根据事件表示可以区分两大类主要算法,即基于框架的方法和基于事件的方法。在此,我们回顾一下这两类作品中的一些代表性作品。
A.基于框架的方法
基于帧的方法首先将具有时间长度的事件序列整合到图像表示中,然后在这些虚拟帧上应用传统的计算机视觉算法。研究人员以不同的方式将事件整合到框架中。具体来说,Maqueda等人[7]和Zhu等人[17]通过整合事件极性的计数和时间戳来生成帧。Chadha et al.[18]通过汇总事件的极性来生成框架,然后将它们馈送到多模态师生框架中。Rebecq等人将传统视觉带入事件相机,将事件重建为正常图像,用于下游视觉任务。为了使整合过程更具适应性,实现端到端训练,Gehrig等人[8]和Cannici等人[9]在整合过程中引入了可学习的神经块对每个事件进行加权。在b[20]中,Deng等人提出了一种运动不可知滤波器,用于提取不同运动条件下的鲁棒语义特征。最近,[21]方法利用多视图策略处理事件流,比单视图帧捕获更多的时空线索。这些基于框架的方法可以在传统框架的帮助下方便地提取事件的时空信息。此外,它们比基于事件的对应物实现了更好的性能。然而,它们需要长事件持续时间的缓冲来生成类似图像的表示,然后执行大量的计算。这些方法没有充分利用事件数据的稀疏性,这可能会降低计算效率,限制事件相机的低延迟优势。
B.基于事件的方法
基于事件的方法着重于利用事件数据的异步性和稀疏性。起初,研究人员采用了脉冲神经网络(SNNs)[10]、[22]、[23]来从事件数据中提取时空特征。SNNs天然适合处理稀疏的事件数据,但是由于缺乏专门的硬件支持和高效的反向传播算法,目前它们的优化和应用颇具挑战性[24]。为了提高可行性,也探索了其他基于事件的方法。具体来说,Lagorce等人[25]为事件数据引入了时间曲面描述符,这是一种面向历史的方法,用于异步提取时空特征。受[25]启发,Sironi等人[26]提出了一种增强型曲面,利用了局部时空体积携带的信息。类似地,Ramesh等人[27]利用对数极坐标网格设计了一种新的曲面描述符,以提高对几何结构的鲁棒性。这些曲面描述符对运动条件敏感,而且它们随时间维持单一映射,因此不会记录场景的动态变化,这意味着它们不适用于长时程任务,如动作识别。也有一些工作[14]、[28]、[29]采用了3D点云学习方法来几何建模事件数据的时空上下文。同样,一种基于图卷积神经网络(Graph-CNN)的模型[30]将丰富的事件级几何信息编码到其图表示中,并特别设计了一个空间特征学习模块来学习图形。通过探索事件间的关系,这些基于点的方法以较低的模型复杂度获得了竞争性的准确率。然而,它们忽略了事件数据和点云之间的布局差异,进行了僵硬的转换[14]、[28]、[29]、[30],导致未能充分利用点云处理方式下的几何学习能力和效率。因此,这些方法在复杂视觉任务(如物体分类)上的泛化能力有限。
相反,我们的方法引入了一种新的时空分离的事件表示,并提出了新颖的轻量级神经模块来提取更有价值的时空特征,从而提高了基于事件模型的性能和效率。
简而言之,本文讨论了基于事件相机数据的多种处理方法,包括早期的SNNs、时间曲面描述符、基于点云的学习方法以及基于图卷积神经网络的模型。虽然这些方法在不同方面有所成就,但都存在一定的局限性,如对硬件依赖、对运动条件敏感、不能记录长时间动态变化或者未能充分利用点云的几何学习能力。相比之下,本文提出的方法通过引入新的时空分离事件表示和创新的神经模块,旨在克服上述局限,提升模型在复杂视觉任务中的表现和效率。
3.方法
我们的框架的工作流程如图2所示。它由三部分组成:稀疏事件表示及其主要运算符,空间特征学习模块,以及时间特征学习模块。具体来说,不规则的事件信号首先被表示为一系列的事件云。然后,这些事件云分别由空间学习模块进行处理,并编码为空间特征向量。最后,我们将编码后的空间特征堆叠起来,以关联时空上下文。连接这三个部分,我们提出了一整套时空学习框架,用于高层次的事件导向视觉任务,例如物体分类和动作识别。在接下来的小节中,我们将提供关于这个框架每个组成部分的更多细节。
A. 2D-1T ECS和事件编码器
2D-1T ECS
给定一个具有H×W空间分辨率的事件相机,在时间间隔τ内生成的一些事件可以表示为元组序列:
其中,(xi,yi)∈{1,…,W}×{1,…,H} 是空间位置,是指示事件触发的时间戳,表示亮度变化的符号(正或负),而N是总事件数。
事件数据本质上能够以事件流的形式记录场景中物体的边缘状几何结构和运动轨迹。在此工作中,我们首先从事件流中以相同的数量窗口裁剪一些小的事件单元,这些单元被称为事件云。不同于文献[14]中的时空事件云,我们构建了空间事件云,主要是因为时间戳给云结构带来的不稳定(参见IV-D.1节的消融研究)。然后,我们将x-y坐标缩放到更小的值以减少操作次数并保留几何结构。定义缩放因子为s后,得到的事件具有的分辨率。最后,我们将这些相邻的事件云按适当长度连接成云序列,以记录运动的长期短期上下文。事件极性包含二进制亮度变化信息,这不仅取决于场景与相机之间的相对运动,还取决于场景亮度。背景-物体亮度的不同差异可能导致相反的极性,这与运动无关[6],[15]。因此,这里我们不将极性作为运动特征使用(参见IV-D.1节的消融研究)。
综上所述,我们构建了事件云序列(ECS)。当数量窗口设置为L时,所有事件将被划分为个连续的事件云。最后,根据空间分辨率将所有事件归一化到范围[0, 1]:
事件编码器
具有潜在的每个事件特征(例如,时间戳、极性或中间学习特征)的事件集可以表示为 。作为一种类似于点云的非结构化数据格式,PointNet++架构[31]启发我们通过近似对称集合函数的方式进行处理。这样,我们定义基本的事件级运算符为:
其中, , 是一个对称函数。事件编码器很简单:它用多层感知机(MLPs)表示h,用最大池化函数表示g。输入事件首先通过共享的MLPs嵌入到空间编码中。然后,最大池化操作将每个事件的最佳编码汇总成一个总体描述符。
简单地说,2D-1T ECS表示方法通过将事件数据组织成空间事件云序列,捕捉事件的时空信息,而事件编码器则通过使用多层感知机和最大池化操作,从事件集中提取特征,形成事件的紧凑表示。这一过程确保了即使在事件数据的非结构化特性下,也能有效地学习和处理事件数据的时空模式。
B.空间关系
为了在事件云上抽象出空间模式,我们提出了空间关系模块(SR)。如图3所示,SR充分利用事件云的空间稀疏性来执行局部操作。与在整张像素平面上进行密集计算的图像类方法相比,我们的SR模块仅在事件发生的位置计算空间模式,从而实现了更高效且针对性的计算。另一方面,SR不仅仅是在CNN框架上的每个固定内核上提取特征,而是通过编码事件间的相互关系,更加灵活地抽取空间特征。
图3展示了我们方法的稀疏编码特性。
(a) 我们的空间特征学习(SFL)模块仅在事件触发的活跃站点上进行操作,以学习空间特征。这意味着计算资源仅集中在有事件发生的区域,而不是在整个图像上均匀分配。
(b) 相比之下,这些图像类方法使用传统的卷积在整张像素平面上执行密集计算。这样的处理方式会涉及大量的零值运算,因为事件相机生成的事件数据在空间上是稀疏的,大部分像素并未发生变化。
通过这种方式,我们的方法实现了更低的计算复杂度。因为我们只在事件实际发生的点上进行计算,避免了对大量未触发事件的像素进行不必要的处理,从而大大减少了计算量和内存消耗,提升了模型的运行效率。这对于实时应用和资源受限的设备尤其重要,因为它能够在保证性能的同时降低能耗和延迟。
表面事件采样
对于一个事件云,要使用分层模型学习它,不可避免地需要有效地对这些事件进行下采样(池化),同时保持信息丰富的结构特征。然而,由于事件相机的工作原理,场景中的强边缘往往会触发更多的事件。如图4所示,事件云通常在不同位置上分布不均匀,一些区域冗余,而其他区域稀疏,这可能阻碍事件编码器稳健地捕捉局部模式。因此,我们需要寻找合适的采样方法,以保留结构性信息并使事件分布均匀化。
点云学习中有一些流行的点采样策略。从N个事件中采样K个事件,这些方法的操作方式各不相同。最远点采样(FPS)迭代计算每个e_k,它是离前k-1个事件最远的事件(k=2,...,K)。虽然这种方法在整个形状上有良好的覆盖度和均匀性,但其计算复杂度为O(N^2),这限制了其在事件相机实时应用中的可行性。随机采样(RS)根据高斯分布从N个源事件中随机选择K个事件。虽然其计算复杂度较低,仅为O(1),但其空间扩散性和均匀性不佳,可能会导致许多有用的事件特征丢失。
受现有采样方法和事件表面[25]的启发,我们为事件云设计了一种新的采样单元,即表面事件采样(SES)。该方法的核心在于不同区域的事件应该有相同的被采样的概率。因此,我们利用时间表面的事件唯一性,其中每个像素只存储一个时间值,来限制事件的冗余。如图4所示,我们首先使用规则像素网格来记录一个2D记忆映射,其中每个像素存储其最后一个事件或空值。然后,我们依赖这个记忆映射来高效地标记表面事件和非表面事件。确保完全覆盖源事件且无事件冗余,这些表面事件是高质量的候选采样事件。为了提高计算效率,我们从这些候选表面事件中随机选择最后采样的事件。完整的采样过程可表示为:
其中SM是表面记忆函数,而RS是随机选择操作。
利用事件数据的空间偏置构建规则的记忆映射,此单元极大地加速了事件采样过程。
2) 局部事件编码
与基于帧的方法中使用的曼哈顿距离(内核大小)不同,我们使用更灵活的欧几里得距离作为新的局部分组的距离度量。通过计算事件间的欧几里得距离并聚类,我们将输入的事件云分割成许多局部区域。然而,不同局部区域中的小几何结构通常具有不同的密度和区域尺度,这使得局部事件特征在空间上的泛化能力较差。为了提高泛化能力和鲁棒性,我们借鉴了[33]和[34]的想法,并进一步引入了一个轻量级的局部归一化单元(LN)来将局部事件转换为正态分布。结合采样单元、局部分区策略、局部归一化单元和事件编码器,我们引入了局部事件编码块来抽象精细的几何模式。
给定一个带有每个事件特征(例如,时间戳、极性或中间学习特征)的事件云,局部编码块的目标是直接使用神经模块学习事件云E的信息表示F。如图2所示,首先,我们采用SES来稀疏化输入的事件云E,输出一个采样云E_s,大小为N_s, 2 + c。然后,对于每个采样事件,我们使用k最近邻算法在E中选择其K个邻居。因此,输入E被分组为N_s个重叠的局部区域,每个局部区域包含K个事件。设表示一个分组的局部区域\(L_i\)。我们通过计算曼哈顿距离明确地编码局部事件间的关系。然后,根据正态分布范式,我们按照以下公式映射局部事件特征:
其中\(\sigma\)是特征标准差,和是可学习的比例和偏移因子,\(\circ\)是哈达玛乘积,\(\theta\)是一个小的稳定性因子(\(10^{-6}\))。通过这种变换,我们将局部事件归一化到一个更稳定的分布中,同时保持它们的几何属性。
然后,对于每个局部区域\(L_i\),我们使用事件编码器作为主要特征学习者,将这些归一化的事件特征提取为大小为\((N_s, D)\)的向量:
最后,我们将这些事件特征与其大小为\((N_s, 2)\)的坐标集成在一起,得到一个新的事件云,大小为\((N_s, 2 + D)\),并将其输入到后续的LEE块中。
通过这种方式,空间关系模块(SR)不仅能够高效地从事件云中捕获局部空间模式,还能通过局部事件编码和归一化增强特征的鲁棒性和泛化能力。
C.运动注意力模块
在2D-1T事件云序列(ECS)中,事件云在外观和位置上随序列变化。特别是当序列变长时,在事件云序列中建模时空上下文变得极其具有挑战性。受注意力网络在视频分析[35]、[36]和点云视频处理[37]、[38]、[39]领域取得的显著进展启发,我们研究了自注意力网络在事件云序列建模中的应用。
假设一个事件云序列包含T帧。利用空间重构(SR)模块,每个事件云被单独处理并输出一系列空间状态向量。这些空间特征向量包含了结构和位置信息,这是捕捉长期时间上下文的关键线索。基于自注意力机制,我们设计了一个时间学习模块来捕捉事件云序列的时空相关性,我们称其为运动注意力(MA)模块。对于注意力中的关系函数,我们没有采用标准的标量点乘[40],而是使用了LEE中的减法关系来编码事件云之间的上下文。此外,我们在所有注意力向量中加入了一个位置嵌入θ。给定一个事件云特征向量序列{Fi}i=1...T,MA模块可以表示为:
其中,α, φ , ψ 和ϕ是多层感知机(MLPs),而◦代表Hadamard乘积。我们参照ViT[41]中的位置嵌入,我们的位置嵌入使用绝对位置:θi = γ(i),这里i代表序列中特征向量的位置,γ同样是一个MLP。
如图5所示,MA模块从过去传播到当前(时间T)编码后的空间特征。它通过全局建模整个序列来捕捉云之间的相似性和变化,学习随时间演化的长期时空相关性。然后我们使用最后一个转换后的特征向量(FT)来表示最终的时空特征,这些特征进一步送入全连接层进行动作识别或物体分类。
这一设计有效地利用了自注意力机制来捕捉事件云序列中的复杂时空模式,通过将长期依赖关系融入到模型中,提高了在动作识别和物体分类任务上的表现。同时,引入位置嵌入确保了模型能够区分不同时间点的信息,增强了模型的时间定位能力。通过这种创新的架构,我们的方法能够更准确地理解事件云序列中的动态变化,从而在处理时间敏感型任务时表现出优越的性能。
4.实验
在本节中,我们将展示我们的方法在基于事件的高级识别任务中的潜力。我们首先描述了现有的识别数据集和实验所需的数据预处理。然后给出了目标分类和动作识别任务的实验结果。在我们所有的比较中,我们将我们的结果与以前基于事件和基于框架的最先进的方法进行比较。然后,我们进行了一些重要的烧蚀研究,以验证我们不同模块和设计的有效性。最后进行了模型复杂度和速度分析,验证了框架的有效性。
A.数据集和预处理
数据集
我们在八个代表性识别数据集上评估我们的方法:N-MNIST[42]、MNIST-DVS[43]、N-CARS[26]、CIFAR10-DVS[44]、N-Caltech101[42]、ASL-DVS[16]、DVS128 Gesture[45]以及UCF101-DVS[16]。
对于物体分类,有两类主要的方法来生成这些数据集。主要地,MNIST-DVS、CIFAR10-DVS和N-Caltech101是通过在LCD显示器上显示传统图像并使用固定的运动轨迹录制获得的。相反,N-CARS和ASL-DVS数据集则是通过直接在真实环境中录制物体创建的。对于动作识别,DVS128 Gesture数据集记录了在不同光照环境下的手势。而UCF101-DVS记录了更复杂的场景,并包含更多的动作类别。如图6所示,我们可视化了来自这些数据集的一些代表性实例,以及我们的ECS表示。为了获取更多详细信息,这些基准数据集的统计信息列在表I的左侧。
这些数据集是许多先前研究中使用的基准数据集,例如[8]、[16]、[26]。因此,我们认为在这些八个数据集上的一致改进将是令人信服的。
预处理
为了适应我们的框架,我们从原始文件中随机裁剪固定数量的事件来构建事件云序列。在接下来的实验中,我们为每个数据集单独定制了适当的表示,包括事件云序列的长度、每个事件云包含的事件数量以及坐标缩放因子。事件表示的设置和统计信息显示在表I的右侧。值得注意的是,对于物体分类,我们裁剪连续的事件云;但对于动作识别,我们每隔三个事件云裁剪一个事件云,以便记录更长的动态变化。
通过对不同类型的识别任务使用定制的预处理步骤,我们的方法能够更好地适应各种数据集的特点,从而在物体分类和动作识别上均展现出优异的性能。这样的灵活性和适应性是确保模型在多种应用场景下都能达到最佳效果的关键。
B.实验细节
网络设置
我们使用以下符号来描述我们的网络架构。事件编码器 `evencoder ([d1, ..., dm])` 是一个使用m个宽度分别为di(i=1,...,m)的多层感知机(MLP)层和最大池化层的编码器,用于将事件集合编码成特征向量。局部事件编码块 `LEE (Ns, K, [d1, ..., dm])` 将事件云分割成Ns个子区域,每个子区域包含K个事件,然后使用 `evencoder` 单元将它们抽象成局部向量。运动注意力模块 `MA(din, T, C)` 接收长度为T、维度为din的特征向量序列,并使用全连接层进行C类别的分类。
在后续实验中,我们定义了一个基于SES算法、LN单元以及多分辨率架构的基线网络。对于输入的事件表示ECS(N, T)和类别C,基线网络的结构如下:
LEE(N/2, K, [32, 48, 64]) → LEE(N/4, K, [64, 96, 128]) → MA(128, T, C)
对于所有数据集,邻域值K通常设置在[32, 96]范围内。
训练设置
对于N-MNIST、MNIST-DVS、N-CARS以及DVS128 Gesture数据集,我们遵循官方提供的训练与测试划分。而对于没有官方划分的ASL-DVS、CIFAR10-DVS、N-Caltech101和UCF101-DVS数据集,我们遵循文献[16]、[26]中的实验设置:随机选取80%的数据用于训练,剩余部分用于测试。我们使用学习率为1e-4的Adam优化器训练网络。每10个周期后,学习率按70%的比例衰减。对所有数据集,模型训练总共120个周期。我们取五个随机分割过程的平均性能作为最终结果。
通过上述详细的网络和训练配置,我们确保了模型能够有效学习和泛化到不同类型的数据集,同时通过精心设计的训练策略进一步提升了模型的稳定性和鲁棒性。
4)云序列建模的运动注意:针对云序列建模,我们设计了一个运动注意模块。但在视频建模领域,已经有一些成熟的方法,包括max pooling、convd -1d和lstm。在这一部分中,我们将这些方法在动作识别上进行比较,分析运动注意的优势。结果见表8。最大池忽略了云特性之间的交互,导致性能差。conv1d沿着序列进行固定步长特征聚合,对短期动态信息进行编码。因此,它获得了显著的性能提升。lstm可以随时间自适应记忆和更新空间信息,学习更多信息的时空上下文,达到接近最优的性能。明确建模云间的局部和全局依赖关系,我们提出的运动关注进一步增强了云序列编码。为此,我们提出的运动注意方法优于现有的序列建模方法,将DVS128和UCF101-DVS的准确率分别提高到98.61%和70.20%。
5.结论与讨论
在这项工作中,我们提出了一个新的事件数据时空特征学习框架。我们首先提出一个紧凑的事件表示。此外,通过利用这种事件表示的稀疏性,我们定制了一种新的轻量级时空学习模型。该模型提供了一种通用的方法来处理基于事件的对象分类和动作识别任务。大量的实验表明,该方法具有优异的性能和较高的计算效率。在未来,我们计划研究更有效的事件编码方法,并将其移植到其他基于事件的视觉任务中。
读后总结
1.事件相机生成的事件数据在空间上是稀疏的,大部分像素并未发生变化。
2.基于自注意力机制,设计了一个时间学习模块来捕捉事件云序列的时空相关性,称其为运动注意力(MA)模块。对于注意力中的关系函数,没有采用标准的标量点乘,而是使用了LEE中的减法关系来编码事件云之间的上下文。此外,在所有注意力向量中加入了一个位置嵌入θ。给定一个事件云特征向量序列{Fi}i=1...T,MA模块可以表示为:
其中,α, φ , ψ 和ϕ是多层感知机(MLPs),而◦代表Hadamard乘积。我们参照ViT[41]中的位置嵌入,我们的位置嵌入使用绝对位置:θi = γ(i),这里i代表序列中特征向量的位置,γ同样是一个MLP。
由于事件相机数据在空间上是稀疏的,减法操作可以用来捕捉像素级的亮度变化,这对于检测快速运动或突然变化尤其有效。例如,在人体行为识别中,减法可以帮助你聚焦于运动区域,因为身体的移动会导致连续事件流中的亮度变化。这种方法能够突出显示与行为相关的局部动态,特别是当行为涉及快速或剧烈的身体运动时,减法操作能够很好地捕捉这些瞬间的细节变化。
在人体行为识别任务中,考虑到事件相机数据的时间性和动态性,减法方式可能是更直接、更有效的特征提取方法。它能够更好地捕捉到人体运动带来的亮度变化,特别是在空间上稀疏的数据集中,减法可以有效地突出变化区域,这对于识别特定的人体行为至关重要。
然而,实际应用中,你可能需要结合多种技术,包括但不限于减法操作,来构建一个更全面的特征提取框架。例如,你可以使用减法来捕捉局部变化,同时结合其他统计方法或深度学习技术(如卷积神经网络CNNs或循环神经网络RNNs)来分析更复杂的时空模式。这样的综合方法能够充分利用事件数据的稀疏性和动态性,以提高人体行为识别的准确性和鲁棒性。
所以,这种减法的方式用于事件数据的时间维度特征提取效果是否可行?