事件相机初探(一)

Stereo Depth from Events Cameras: Concentrate and Focus on the Future(CVPR 2022)

GitHub - yonseivnl/se-cff: Official implementation of "Stereo Depth from Events Cameras: Concentrate and Focus on the Future" (CVPR 2022)

Yeongwoo Nam,Mohammad Mostafavi, Kuk-Jin Yoon,Jonghyun Choi,Saige Research.NAVER AI Lab.Lunit,KAIST,Yonsei University


方案设计:

文章主要提出三个措施,解决在利用事件相机在深度估计问题上的一系列问题。这是一篇基于事件相机的双目深度估计方法(right,left),后续论文中有单目的。、

一、多密度事件堆栈(Mixed-density Event Stacking)以及事件集中网络(Event Concentration Network)

1.问题和方案

文中对于事件数据的处理方式是简单的基于事件数量的堆叠方式(SBN)(有基于时间和基于数量的以及更复杂的堆叠方式,文中说用SBN就足够可以获得高精度,没有给出对比试验)

①由于事件数据是一中稀疏事件流,在变化的稀疏-密集流中,事件可能在小的时间段或事件数量的计数上不容易对齐。

对于变化稀疏流与变化密集流,很难将它们在时间上或事件数量上精确地对齐,也就是说无法确定哪个事件对应于哪个时间点或事件数。哪个事件发生在另一个事件之后或之前。事件对齐的目标是为了更好地理解事件数据并提取有用的信息。

②事件摄相机根据场景中对象的移动生成不同数量的事件,当基于时间或事件数量堆叠事件时会出现事件覆盖或者事件忽略。

如果包括事件序列或堆叠的事件的预定义数量或时间段较小(short stack),则可以省略关于具有低运动的对象的信息。相反,如果事件序列中包含的事件数量很大(long stack),则来自快速移动对象的过多事件可能会覆盖先前的事件。

对于这两个问题,创建一系列多密度事件堆栈,并使用集中网络创建集中堆栈(concentrated stack),产生锐利的边缘状张量,无论场景或相机速度、移动方向或自由度如何,该张量都能高精度地保存场景细节,并且针对现实世界的应用,例如立体深度估计。也不会出现(2)中覆盖以前的细节或丢失结构信息。

2.具体方法:

①多密度事件堆栈

构建事件集中网络第一步是得到多密度事件堆栈。下图是构建方法,具体地,从ground-truth depth timestamp(深度时间戳:用于记录事件或数据点与深度信息之间的时间关系)向后移动,首先堆叠包括一段时间跨度的所有运动的事件n=N。对于下一个堆栈,使用事件流的前一个切片的事件的一半。继续这个操作,即将前一个堆栈中的一半事件堆叠到下一个堆栈中,每个事件以相同的时间戳结束,直到最终堆栈 M,EM 有 n=N/2(M−1) 个事件。(本文实验中设定M=10,N=500万)

这么做的原因是因为第一个堆栈 (E1) 有 N 个事件,与已移动对象的相关信息较少,并且远离 GT timestamp,可能会降低快速移动时的准确性。

我的理解:开始时,E1包含了所有可能的信息,但随着时间的推移,部分物体已经移动出了视野或不再重要,因此它们的事件信息变得相对不重要。逐渐减小堆叠的事件数量以便更好地关注当前重要的信息,对所有事件进行堆叠得到一个序列(sequence of M stacks)

②事件集中网络的构建

集中网络用于处理混合密度事件堆栈,以创建事件的详细表示,得到concentrate stack,为了减少堆叠的负面影响,例如覆盖以前的事件和丢失细节,文中按照 U-Net 架构设计事件集中网络(可选择网络很多,文字没有提为什么用U-Net网络,无对比试验),该网络使用注意力机制,只关注来自 M 个混合密度事件堆栈的重要信息。在通道维度中连接混合密度事件堆栈,并将其用作事件集中网络的输入。

输入张量E(1~M),输出注意力分数 z,并计算网络输出生成权重W,用于通过制定的逐像素 softmax 运算为每个事件堆栈分配权重。然后对输出权重 W 执行加权和,以获得集中事件堆栈张量。

二、未来事件的知识转移(Knowledge Transfer from Future Events)

1.深度估计网络

未来事件的知识转移这个方法是在深度估计网络中执行的,所以先介绍了设计的深度估计网络。

使用性能良好的立体深度估计网络的一些子网络设计模型(以下四个模块),使用多尺度编码器来提取特征(具有共享权重)并将它们关联起来以创建代价体积。通过预测的“可变形聚合”和“多尺度细化”得到深度估计。

  1. Feature Extraction Module(特征提取模块)
    • 作用:特征提取模块通常用于从输入图像或数据中提取有用的特征。这些特征可以捕获图像中的纹理、边缘、形状等信息,以便后续模块或神经网络能够更好地理解图像。
    • 操作:特征提取模块通常由卷积神经网络(CNN)层或其他特征提取器组成,用于对输入图像进行卷积、池化等操作,以生成具有高级语义信息的特征表示。
  2. Cost Volume Module(代价体积模块)
    • 作用:代价体积模块通常用于立体视觉或深度估计任务中。它的目标是计算不同像素位置之间的匹配代价,以便估计深度或视差信息。
    • 操作:代价体积模块计算了每个像素位置之间的特征相似度或差异,生成一个代价体积图,其中每个像素位置包含了不同深度或视差估计的代价值。这个代价体积图通常用于后续的深度估计或视差图生成。
  3. Deformable Aggregation Module(可变形聚合模块)
    • 作用:可变形聚合模块通常用于处理具有不规则形状或动态变化的数据。它的任务是聚合和处理这些数据,以提取有用的特征或信息。
    • 操作:这个模块通常会包括对数据进行空间变换、采样、聚合或加权的操作,以便更好地处理不规则数据分布。它在计算机视觉中用于处理事件数据或其他动态场景数据。
  4. Multiscale Refinement Module(多尺度精化模块)
    • 作用:多尺度精化模块通常用于处理不同尺度的信息,以提高模型的性能和鲁棒性。它允许模型在不同分辨率下进行处理和决策。
    • 操作:这个模块通常包括对特征金字塔或不同尺度的特征进行整合、融合或后处理的操作。它有助于模型更好地理解和处理不同尺度的特征和信息。

具体地,文中提到一下这些方法:

  1. 特征提取模块(Feature Extraction Module):作者使用了ResNet作为特征提取模块,因为ResNet在计算机视觉领域已经被广泛证明具有有效性和简单性。这个模块的主要任务是从输入图像中提取有用的特征。
  2. 特征金字塔网络(Feature Pyramid Networks):为了在不同分辨率下回复图像细节,作者使用了特征金字塔网络。这允许模型在多个分辨率下处理特征,以更好地理解图像。
  3. 特征相关性(Feature Correlation):与将特征连接起来不同,作者使用特征相关性。这个技术使用内积来卷积来自左侧和正确侧对的数据,而不是将它们连接在一起。这可以减少网络的复杂性并降低计算成本。
  4. 可变形卷积(Deformable Convolutions):在代价体积的聚合阶段,作者使用可变形卷积。这种卷积具有非固定的感受野,有助于更好地匹配稀疏事件数据。
  5. 深度估计的精度提升(Accuracy Depth Estimation Refinement):为了提高深度估计的精度,作者使用了分层上采样的方法,通过细化逐渐提高的中间尺度来估计边缘处的深度。有助于提高模型在深度估计任务中的准确性。

2.未来事件的知识转移

即使创建了集中事件堆栈,遮挡、重复模式和场景感知不完整等问题仍然可能由于过去的信息不足而阻碍重建高保真的深度估计。文中提出使用未来的事件信息来进一步提高深度估计的质量(学习一个包含过去和未来事件的模型,但仅根据过去的数据来推断预测的未来)。然而,由于系统是因果系统,因此它在推理上是不可行的。作为补救措施,文中提出可以通过损失函数来预测未来事件的潜在表示(predict the latent representation of future events by a loss function)。(到底怎么实现的?可能要看代码

具体地,准备两种不同的堆叠方案,仅关注过去事件的事件堆栈(Econ,past)和同时关注过去和未来事件的事件堆栈(Econ,both,以GT时间戳为基准的2M个混合密度事件堆栈),引入相似性损失函数,这个损失函数的目标是使这两个不同方案中的中间表示变量(bpast和bboth)变得相似(尽管输入数据不同,但网络应该学会在潜在空间中对它们进行相似性映射),在deformable aggregation module的输出上,执行相似性损失,该模块的作用是聚合事件数据,并计算每个像素位置的视差概率(disparity probability是在视差图生成和深度估计过程中用于表示不同深度值的概率分布)。

再使用两个潜在空间表示之间的 KL 散度来计算相似性损失:

KL散度(Kullback-Leibler Divergence)是一种用于测量两个概率分布之间的差异的方法,差异越小,值越小。

为什么使用KL散度?

评估过去的事件数据与包含过去和未来事件数据的信息之间的差异。这种差异可能由于未来物体在场景中的移动而导致,因此直接使用诸如L2或L1范数的传统距离度量可能不足够准确。因为未来事件的位置可能不会严格对应于过去事件数据中的位置。

KL散度广泛应用于衡量分布之间的差异,在知识迁移和分布对齐等情况下用于改进模型性能。对应在文中,需要解决对齐问题和衡量差异问题,用KL散度来衡量过去事件表示和过去与未来事件表示之间的差异比较适合。

3.学习目标

使用真实视差和预测视差之间的平滑 L1 损失作为训练网络的主要目标项,它在视差不连续性方面具有鲁棒性,并且对异常值或噪声的敏感性较低。通过将仅使用过去事件信息的预测视差损失和使用过去和未来事件信息与通过相似性损失预测的未来相结合,得到最终损失L。

三、事件与强度图像的融合(Events and Intensity Image Fusion)

之前工作中使用了一个叫做“Recycling Network”的循环模块,该模块迭代处理事件和图像数据,以重建一个类似图像的张量,具有事件的高动态范围特性。这个模块的目标是生成不模糊的图像。作者也尝试了同时使用事件和图像数据的方法,并采用了一种简单的融合策略,而不是使用复杂的子网络来融合这两种数据。

具体地,作者使用两个独立的特征提取模块来处理事件堆栈和强度图像,然后通过通道维度连接两个特征图,最后通过一个1x1的卷积操作来融合这两个传感器的特征。这个融合方法既简单又有效。

实验分析

一、定性分析

1.与在堆栈中使用固定数量的事件(即短堆栈或长堆栈)相比,集中堆栈可创建清晰的边界并更好地覆盖场景细节。对比不同的stack,当事件数量较多时覆盖先前的事件,或者当事件数量较少时容易忽略场景详细信息。集中网络产生的集中堆栈不会覆盖或丢失事件。

                                                  Effect of the number of events on depth quality. 

  1. 比较两种场景:(1)仅使用过去事件(无 KD)进行训练/测试,(2)使用过去和未来事件(两者)进行训练/测试(非因果)。文中的(d)正确地估计了边缘处的深度,并且不需要的伪影较少,尽管我们不提供未来事件用于推断。

结果表明,在某些情况下,使用未来事件数据(非因果)可以改善深度估计模型的性能,特别是在处理边缘情况和减少伪影方面。

二、定量分析

1.仅利用事件的方法(在 E 上的方法)与仅使用 DSEC 事件的方法相比,误差要低得多,所有指标均达到基线,MAE(主要指标)、1PE 和 2PE 均达到最新水平 ,但 RMSE 更差使用融合方案利用事件和强度图像时,文中的方案(E+I 上的方案)明显大幅优于最先进的方法 。

2.做消融实验,提到的三个方法:多密度事件堆栈、事件集中网络以及从未来事件中提取知识,都提高了不同的指标。

3.通过对比试验,得出Knowledge Transfer from Future Events在deformable aggregation module的输出上效果最好。

针对Knowledge Transfer from Future Events的位置问题,作者给出的解释:deformable convolutions与传统卷积相比,具有学习空间变换、动态感受野等优势,可以灵活地学习适应输入数据的变换,Knowledge Transfer from Future Events在经过可变形卷积聚合后可能更有益。因为deformable convolutions可以适应不同位置的输入数据,包括未来事件,从而更好地捕获重要的信息。

结论

1.提出了一种新的深度估计网络来估计立体事件相机的密集深度。通过基于注意力的集中网络来集中具有多个密度事件的事件堆栈。集中的事件通过丢失较少的细节来显示场景细节,不会覆盖或忽略事件。

2.进一步,在训练中使用未来事件来获取细节,预测未来的潜在空间表示,以维持系统因果关系。

3.展示了如何使用简单的融合方案将强度图像与事件结合起来,以达到更高质量的深度估计。

方法计算效率高,对于事件加图像和仅事件分别达到超过 18 和 23 FPS,优于现有技术(10 和 17 FPS)。使用数据集 DSEC 评估方法,并展示了方法在定量和定性分析中的优势。

局限性和未来研究方向

  1. 事件数量限制:尽管提出了事件集中网络来处理事件数据,但仍然需要根据输入图像的大小来指定最小和最大事件数量。这个限制意味着模型对于输入图像的尺寸敏感。

需要在处理事件数据时指定一个最小和一个最大事件数量。这个数量范围是基于输入图像的大小来确定的。不同大小的输入图像可能需要不同数量的事件来进行处理。如果输入图像尺寸较小,可能需要更少的事件来表示图像的内容,而较大的图像可能需要更多的事件。因此,模型的性能和效果可能会受到输入图像大小的影响。

2.计算效率:虽然作者提到的方法在计算上比之前的方法更有效率,但仍然远离实际应用的实时性能。作者提到当前的帧率为每秒18到23帧,相比之前的方法(每秒10和17帧)有所改进,但仍不足以在某些实际应用中实用。

3.未来研究方向:文本提到了一些有前景的研究方向。其中一个方向是开发计算效率更高的方法,以使该深度估计方法更实际和实用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值