文章目录
Abstract
事件相机是视觉传感器,记录每像素亮度变化的异步流,称为事件。与基于帧的相机相比,它们在计算机视觉方面具有吸引人的优势,包括高时间分辨率、高动态范围和无运动模糊。由于事件信号的时空分布稀疏、不均匀,模式识别算法通常将事件聚合成基于网格的表示形式,然后通过标准的视觉管道(如卷积神经网络(CNN))进行处理。在本文中,我们将介绍一个通用框架,通过一系列可微操作将事件流转换为基于网格的表示。我们的框架有两个主要的优点:(i)允许以端到端方式学习输入事件表示和任务专用网络,(ii)列出一个分类,将文献中大多数现存的事件表示统一起来,并识别新的事件表示。经验表明,我们的方法学习的事件表示端到端的提高约12%的光流估计和目标识别的最先进的方法。
1. Introduction
事件相机是受生物启发的视觉传感器,操作方式与传统相机截然不同。事件相机不是以固定的速率捕捉亮度图像,而是独立地测量每个像素的亮度变化(称为事件)。事件相机,如动态视觉传感器(DVS)[34],与传统的基于帧的相机相比,具有吸引人的特性,包括非常高的动态范围、高时间分辨率(微秒级)和低功耗。此外,事件相机大大减少了带宽。虽然存在具有类似时间分辨率和/或动态范围摄像机的基于帧的摄像机,但它们通常体积庞大、能耗大,需要冷却[48]。
事件相机的输出由一系列事件组成,这些事件编码了时间、位置和亮度变化的极性(符号)。因此,每一个事件本身所承载的关于场景的信息非常少。基于事件的视觉算法以两种方式聚合信息以支持进一步的处理:(i)使用一个连续时间模型(例如,卡尔曼滤波器),它可以与每个传入事件[3,19,29,40,44];(ii)同时处理数据包中的事件[27,52,57,66,67],即事件的时空局部聚集。前一种方法可以实现最小的延迟,但是对参数调优(例如,过滤器权重)很敏感,并且计算量很大,因为它们为每个事件执行更新步骤。相反,对事件包进行操作的方法会在计算效率和性能方面权衡延迟。尽管存在差异,但两种范式都成功地应用于各种视觉任务,包括跟踪[19,21,40,42]、深度估计[3,52,67]、视觉测程[27,54,57,66]、识别[29,44]和光流估计[7,69]。在**[18]中可以找到关于事件相机应用的一个很好的调查。在基于帧图像的计算机视觉深度学习的广泛成功的激励下,越来越多的最近的基于事件的作品采用了数据驱动**的方法[2,32,36,47,69]。Spiking神经网络(SNNs)是处理事件流的天然选择,因为它们在专用硬件上以低功耗支持异步推理[2,32,47]。然而,众所周知,snn很难训练,因为没有有效的反向传播算法存在[24]。此外,运行SNNs所需的专用硬件非常昂贵且处于开发阶段,这阻碍了它在vision社区中的广泛采用。
与本文最相关的是将事件流与基于标准帧的深度卷积神经网络(CNN)或递归架构相结合的方法,如[29,36,41,59,69]。为此,预处理步骤通常将异步事件数据转换为类似网格的表示形式,可以同步[36,69]或异步[29,59]更新。这些方法得益于它们易于使用基于标准帧的深度学习库(如[1,46])和对商品图形硬件的快速推理实现。然而,这些工作主要集中在初始表征阶段之外的下游任务上,简单地考虑原始事件流和基于网格的输入张量之间的固定的、可能不是最优的转换。到目前为止,还没有一个广泛研究的影响的选择输入表示,留下以下有待解决的基本问题:**将异步事件流转换为基于网格的(张量)表示以最大化给定任务性能的最佳方法是什么?**在本文中,我们的目标是解决这一知识差距。
贡献。我们提出了一个通用框架,可以将基于异步事件的数据转换为基于网格的表示。为了实现这一点,我们通过内核卷积、量化和投影来表示转换过程,其中每个操作都是可微分的(参见图1)。我们的工作主要有两个优势:首先,它使转换过程完全可微,允许学习从原始事件数据到任务损失的端到端表示。相反,先前的工作假设输入事件表示是固定的。其次,它列出一个分类,统一了现存的大多数文献事件表征,并对novel ones表征进行了识别。通过广泛的经验评估表明,我们展示了我们的端到端的事件表示学习方法,与依赖手工输入事件表示的最先进的方法相比,在光流和对象识别方面分别提高了12%和12.6%。此外,我们将该方法与异步方法在准确性和计算负载方面进行比较,以阐明每种方法的相对优点。
2. Related Work
传统上,手工制作的特征被用于基于帧的计算机视觉,例如,[14,33,35,60,63]。最近,研究转向了数据驱动模型,其中的特征是自动学习数据,如[4,22,25,37,55]。这种范式转变背后的主要催化剂是大型训练数据集的可用性[12、15、16]、高效的学习算法[30、61]和合适的硬件。直到最近,基于event-based vision才在解决这些领域中的每一个方面取得了进展。
与早期基于帧的计算机视觉方法类似,在设计事件流的有效时空特征描述符方面也做了大量的工作。从这一行的研究来看,典型的高级应用是手势识别[31]、对象识别[29,45,59]或人脸检测[6]。低水平应用包括光流预测[8,9]和图像重建[5]。
另一个研究方向是将数据驱动模型应用于基于事件的数据。其中包括异步、spiking神经网络(SNNs)1[32],它已经应用于多个任务,如对象识别[32、44、47、64]、手势分类[2]和光流预测[7,8]。然而,缺乏专门的硬件和计算效率的反向传播算法仍然限制了snn在复杂的现实场景中的可用性。该问题的典型解决方案是使用基于帧的数据学习参数,并将学习到的参数转换为事件数据[13,47]。然而,尚不清楚这个解决方案在多大程度上可以泛化为真实的、有噪声的、在训练期间没有观察到的事件数据。
最近,一些研究提出使用标准的学习体系结构来替代SNNs[36, 41, 59, 68, 69]。为了处理异步事件流,Neil等人采用了递归架构来包含用于预测的时间维度。尽管异步操作,他们的方法引入了高延迟,因为事件必须顺序通过整个递归结构。为了减少延迟,其他方法将事件流转换为基于网格的表示形式,兼容为标准帧设计的学习算法,例如CNNs[36, 59, 68, 69]。Sironi等人通过将事件转换为平均时间表面(HATS)的直方图,然后将这些直方图输入支持向量机进行推理,从而获得对象识别任务的最新状态结果。它们表示的主要优点是,它不仅可以与标准的学习管道一起使用,而且如果有足够的计算,还可以异步地更新它。Maqueda等人提出了一种更简单的表示方法来处理转向角预测steeringangle prediction,该方法将不同极性的事件累积在一个恒定的时间窗口上。为了执行低级任务,即光流估计,Zhu等[69]提出将事件转换为包含极性和峰值时间的四维网格。最后,Zhu等[70]将事件转换为spatiotemporal voxel-grid。与[36]中提出的表示法相比,后两种表示法具有保存时间信息的优点。这些工作的一个共同特点是使用handcrafted事件流表示。与此相反,在本文中,我们提出了一种新的基于事件的表示法,这种表示法是与任务一起端到端学习的。表1总结了基于事件的表示及其设计选择的比较。
将基于事件的数据与基于标准帧的学习体系结构相结合,可以利用事件相机的优势实现学习算法的灵活性。然而,还不清楚事件表示对任务性能的影响。在这项工作中,本文对计算机视觉中的中心任务,即目标识别和光流估计任务的表征选择进行了广泛的实证研究。
3. Method
在本节中,我们将介绍一个通用框架,用于将异步事件流转换为基于网格的表示。通过严格地通过可微操作符执行转换,我们的框架允许我们学习给定任务的端到端表示。有了这个工具,我们就可以得到一个分类法,它统一了文献中的常见表示,并识别新的表示。图2给出了该框架的概述。
3.1 Event Data
事件相机像素独立触发事件时,有一个日志亮度变化:
由于其异步性,事件被表示为一个集合。为了将事件与卷积神经网络结合使用,有必要将事件集合转换为网格状表示。这意味着我们必须找到一个映射在集合E和张量T之间M:E—>T。理想情况下,这种映射应该保留结构(即事件的时空局部性)和事件信息。
3.2 Event Field
直观地说,事件由x和y空间坐标、时间和极性构成的四维点极表示。这个点集可以总结为事件场,灵感来自[11,32]。
定义在连续的空间和时间,为事件的正(E+)和负(E-)极性。这种表示法用时空流形中的狄拉克脉冲来代替每个事件。得到的函数S (x;y;t)给出了E的连续时间表示,保持了事件的高时间分辨率,增强了时空局部性。
3.3 Generating Representations
Measurements 在本节中,我们将概括事件字段的概念,并演示如何使用它从事件生成类似网格的表示。我们注意到(3)可以解释为定义在事件域上的函数f的连续测量,即
(4)是事件观测场Event Measurement Field。它赋值一个度量值f到每个事件。这类函数的例子有事件极性f (x;y;t) = ±1,事件计数f (x;y;t) = 1,则归一化时间戳f (x;y;t) =(t-t0)/delta t。其他示例可能包括异步基于时间的图像传感器(ATIS)[10]等传感器提供的瞬时事件率或图像强度。文献中的各种表示方法都使用了事件观测场 event measurement field。在一些工作中,测量纯事件计数,并对每个像素和极性求和,以生成事件计数图像event count images。其他工作使用事件的时间戳来构造活跃事件面surface of active events(SAE),它保留了每个像素和极性的最近事件的时间戳。其他的表示使用事件极性并将它们聚合成一个三维Voxel Grid[70] 或一个二维Event Frame[53]。
Kernel Convolutions 虽然事件测量字段保持了事件的高时间分辨率,但是由于使用了Dirac脉冲,它仍然是不确定的。因此,要从事件观测场中获得有意义的信号,必须将其与合适的聚合内核进行卷积。因此卷积信号就变成了
在文献中,(5)也被称为膜电位[32,39,49]。在以前的工作中已经使用了这个内核的几个变体。最常用的两个是alpha-kernel,和exponential kernel。实际上,指数核也被用来构建hierarchy of
time-surfaces(HOTS)[29]和histogram of average timesurfaces (HATS)[59],其中事件被聚集成指数时间曲面exponential time surfaces。在HATS[59]中,指数时间曲面可以被解释为脉冲序列与指数核的局部卷积。另一个常用的核是trilinear voting kernel[26]。Generally, the design of kernel functions is based on task-dependent heuristics with no general agreement on the optimal kernel to maximize task performance。
Discretized Event Spike Tensor 在内核卷积之后,可以通过对卷积信号(5)进行定期采样来实现事件的网格表示
我们把这种广义表示称为Event Spike Tensor(EST)。将极性和时间维度相加,就可以得到之前工作中引入的event-frame representation [57]。之前的工作考虑了量化各个维度,包括spatiotemporal binning[70],以及量化极性和空间维度[36,69]。然而,保留所有四维的广义形式以前没有被考虑过,因此是一种新的表示。
End-to-end Learned Representations (6)中的度量和内核通常是手工制作的函数。以前的工作是手动调整这些功能以最大化任务性能。相反,我们建议直接利用数据来寻找最佳的候选函数,从而学习端到端的表示。我们通过用一个多层感知器(MLP)替换(6)中的内核函数来实现这一点,其中两个隐藏层各有30个单位。此MLP将事件的坐标和时间戳作为输入,并在其周围生成激活映射。对于表示中的每个网格位置,我们对每个事件生成的激活映射进行评估,并根据式(6)将它们加在一起。对最终网格中的每个点重复该操作,得到类似网格的表示。为了增强跨事件的对称性,我们将MLP输入限制为坐标上的差异xl-xk,ym-yn,tl-tk。为了简单起见,我们也不学习度量函数,而是从一组固定的函数中选择它。为了加快推理速度,在测试时可以用一个有效的查找表来代替学到的内核,从而与手工内核的计算成本相当。这些设计选择使得表示既高效又完全可微。与以前使用次优启发式将事件转换为网格的工作不同,我们的框架现在可以将表示调优为下游任务,从而最大化性能。
Projection 从event spike tensor我们可以进一步实例化新的和现有的表示。例如,许多文献涉及三维张量,如[29,36,59,69,70]。event spike tensor是一个四维数据结构(两个空间、一个时间和一个极性),因此作为这些三维结构的先驱,可以通过对四维中的一个进行求和来获得。例如,双通道图像[36,59,69]可以通过压缩时间维得到,可以通过求和[36,59,69],也可以通过最大化[69]得到。The voxel grid 示[70]可以通过对事件极性求和得到。所有这些操作可以通过投影算符H,其中其中H可以求和Σ,最大化max,等,同时v表示维度可以是xl, ym, tn,或在极性,产生16个可能的预测。这里,我们只列出保留空间维度的表示,其中有四个,包括没有投影的EST:
我们将这些表示称为EST(7)、Voxel Grid(8)、Two-Channel Image(9)和事件帧(10)。投影的方向对结果表示的信息内容有影响。例如,沿时间轴投影大大压缩了事件表示,但以时间定位信息为代价。相反,投射事件极性会导致正面和负面事件的抵消,可能会在这个过程中移除信息。在这些表示中,EST最为突出,因为它通过放弃投影操作来保留最大数量的事件信息。
4. Empirical Evaluation
在本节中,我们将在标准事件相机基准上对我们的对象识别分类(第4.1节)和光流估计(第4.2节)所确定的表示形式进行广泛的比较评估。
Candidate Representations 我们首先根据event spike tensor (6)确定12种不同的表示形式。特别是,我们从三个候选项中选择度量函数(4):事件极性、事件计数和规范化时间戳。我们使用求和运算符Σ项目中定义的各种轴(7)- (10),导致四种变化:Event Spike Tensor, Voxel Grid, TwoChannel Image, and Event Frame.我们沿着极性维分裂event spike tensor (一个四维张量),并沿着时间维连接两个张量,有效地增加了通道的数量。这样做是为了使表示与二维卷积兼容。作为第一步,我们应用一个通用的三线性核卷积事件峰值信号,然后研究不同的核应用于EST时对性能的影响。最后,我们报告了直接利用原始事件的端到端训练变量的结果。
4.1 Object Recognition
由于其低动态范围、高延迟和运动模糊的倾向,传统相机的目标识别仍然具有挑战性。近年来,基于事件的分类越来越受欢迎,因为它可以解决所有这些挑战。
在本节中,我们将研究第4节中提出的事件表示在基于事件的对象识别任务中的性能。特别地,我们的目标是确定表示的信息内容与分类精度之间的关系。我们展示了我们的端到端学习表示显著优于最先进的[59]。我们在评估中使用了两个公开的数据集:N-Cars59和N-Caltech101[43]。N-Cars为场景中车辆识别的二进制任务提供了一个基准。它包含由ATIS事件相机记录的24029个长度为100 ms的事件样本。N-Caltech101 (Neuromorphic-Caltech101)是流行的Caltech101数据集的基于事件的版本,并提出了事件相机的多级识别任务。它包含8246个样本和100个类别,这些样本是通过将一个事件相机放在一个电机上,并将其移动到一个屏幕前面来记录的,屏幕上放映着来自Caltech101的各种样本。
Implementation 我们为每个数据集使用一个ResNet-34架构[22]。该网络对来自ImageNet[58]的彩色RGB图像进行预处理。为了考虑到预训练模型和我们的模型之间输入通道和输出类的数量不同,我们采用了以下方法[36]:我们用随机权值替换预训练模型的第一层和最后一层,然后对任务上的所有权值进行finetune。我们通过优化交叉熵损失进行训练,并使用ADAM优化器[28],初始学习率为1e 5,每10000次迭代减少2倍。我们对N-Caltech101和N-Cars分别使用60和100的批处理大小。
Optical Flow Estimation
与目标识别一样,基于帧的光流估计方法在高动态范围(如夜间和高速运动时)仍然具有挑战性。特别是,运动模糊和传感器的过/欠饱和经常会破坏图像中的亮度稳定性,这是许多方法背后的基本假设,从而导致估计错误。由于缺乏运动模糊和高动态范围,事件相机有潜力在这些条件下提供更高的精度估计。早期的基于事件的光流估计将平面拟合到事件[7]生成的时空流形上。其他的作品通过寻找投影到帧上的最佳事件对齐来解决这个问题[65]。最近,相对大规模的多车立体事件相机数据集(MVSEC)[68]使得基于深度学习的光流成为可能[69,70]。它提供了与激光雷达相结合的立体声DAVISrig的数据,用于ground truth光流估计[69]。数据集具有几个驾驶序列在白天和晚上,和室内序列记录在一个四轴飞行器。[69,70]中的方法以一种自我监督的方式学习flow,并使用标准的U-Net架构[56],在具有挑战性的夜间场景中优于现有的基于帧的方法。在[69]中,使用四通道图像表示作为网络的输入。该图像由[36]中使用的双通道事件计数图像和活动事件(SAE)[7]的双通道表面组成,按事件极性进行划分。虽然事件计数和时间表面结合了事件流的时间和空间信息,但它仍然通过丢弃除最近的事件时间戳之外的所有事件时间戳来压缩事件信号。
到目前为止,还不清楚哪种事件表示最适合学习光流。我们通过将第4节中列出的表示形式与在MVSEC数据集上评估的最先进的光流回归任务[69]进行比较来研究这个问题。