vslam论文16:Real-time event simulation with frame-based cameras(ICRA 2023)

摘要

        事件摄像机由于具有高时间分辨率、高带宽、几乎无运动模糊和低功耗等优点,在机器人和计算机视觉领域越来越受欢迎。然而,这些相机在市场上仍然昂贵和稀缺,使大多数人无法获得。使用事件模拟器可以最大限度地减少对真实事件相机开发新算法的需求。然而,由于仿真的计算复杂性,现有模拟器的事件流不能实时生成,而必须从现有的视频序列中预计算或预渲染,然后从虚拟的3D场景中模拟。尽管这些离线生成的事件流可以用作学习任务的训练数据,但所有依赖于响应时间的应用程序都不能从这些模拟器中受益,因为它们仍然需要一个实际的事件摄像机。本工作提出的仿真方法将事件仿真的性能提高了两个数量级(使其具有实时能力),同时在质量评估中保持竞争力。

开源:Real-time event simulation with frame-based cameras (cogsys-tuebingen.github.io)

I. 引言

        在机器人和计算机视觉领域,事件摄像机已经迅速普及。事件相机的工作原理与传统的基于帧的相机根本不同。事件相机不是一次捕捉整帧像素,而是在像素级别上记录对数尺度的亮度变化。如果更改足够大,则相机发出一个异步事件。事件相机的优点是,与基于帧的相机相比,它们可以间隔几微秒记录事件,从而降低延迟和提高时间分辨率(µs而不是ms)。这些摄像机还具有其他巨大的潜在优势,如高动态范围和低功耗[1]。

        这项技术允许超低延迟的应用程序,当实现正确时,可以利用所有这些数据在各种机器人和计算机视觉任务中优于最佳的传统计算机视觉算法。一些有用的应用包括自动驾驶汽车,通用目标跟踪,图像分割,高帧率视频重建,精确深度感知和先进的帧插值与光流重建和机器人应用,如控制任务[9],[10],和里程计[11]。对于某些应用,例如自动驾驶汽车,实时处理这些数据至关重要。虽然第一款活动相机是在十多年前推出的,但活动相机仍然价格昂贵(~ 6000C),而且在市场上稀缺,因此许多研究人员、企业和爱好者都无法接触到它。本工作建议使用基于帧的相机来模拟该事件数据。传统的基于帧的相机仍然便宜且容易获得,使这种方法成为一个有趣的选择。

        在过去的几年中,已经发表了几种尝试模拟事件数据的方法。虽然这些最近的出版物在事件模拟中产生了高质量的结果,但仅一帧所需的计算可能需要长达数秒,从而消除了实时使用的可能性。为了在机器人应用中真正使用基于帧的相机作为事件相机的替代品,这些模拟器必须以更高的速度运行。这项工作特别试图通过提出旨在大幅改善这些模拟的运行时间同时保持质量竞争力的方法来解决这个问题,以用于实时机器人应用。

本工作的贡献如下:

(1)实时运行的基于光流的事件模拟方法

(2)一种新的事件模拟方法,利用插值中事件的稀疏性来进一步提高运行时间

(3)将我们的事件模拟方法与现有的事件模拟方法和真实事件相机进行定性和定量的比较,并指导何时使用哪个模拟器。

III.方法

        我们提出了三种不同的方法来模拟事件。它们都是基于连续帧的相减,如[12]所做。我们称相减的结果为差坐标系。与事件相机相比,我们不使用对数差,而是使用线性差。对数差异的质量改进很小,并且伴随着很高的计算负载(以毫秒为单位的延迟取决于插值帧)。此外,这项工作并没有解决来自真实事件相机的数据中存在的噪声和伪影。

        基于帧的相机的时间分辨率远低于事件相机。为了解决这个问题,我们使用插值来人为地提高帧率。

        插值是事件模拟中常见的步骤,在[18]和[19]中也有使用。对于插值,我们使用光流算法和一种简单但快速的线性插值方法。我们使用了在中评估的最快的光流算法。

接下来是对这三种方法的详细描述。

A.密集帧插值方法

        第一步计算连续两帧相机之间的稠密光流,这种密集的光流然后被用来在两个连续的相机帧之间进行插值。给定这些插值帧,将连续帧相减得到差分帧。在最后一步中,对不同帧进行阈值处理(使用Cpos和Cneg),以确定应该发出事件的所有像素,并根据该事件对应的极性

这种方法的过程如图1所示。

 图1:稠密帧插值方法的过程,给定在ti−1和ti处的连续摄像机帧作为输入。输出是形式为表示事件的位置(x;Y),时间戳t和事件p的极性或具有累积事件的帧。处理步骤用斜体字母书写,而(中间)输出用普通字母书写。有关更多细节,请参阅第III-A节。

B.稀疏帧插值

        该方法类似于III-A节中描述的密集帧插值方法,不同之处在于使用稀疏光流在两个连续的相机帧之间进行插值。

        使用稀疏光流的动机是通过减少帧插值步骤的计算次数来提高性能。密集光流算法考虑整个帧,而在大多数情况下,帧中只有一小部分像素实际上变化很大。真实事件相机使用阈值来检测特定像素上的事件何时发生。类似于事件相机,在给定阈值内从一帧到下一帧未变化的所有像素可以被忽略用于光流估计。这样,只要改变的像素数大大低于帧中的总像素数,计算速度就可以加快。所选像素可以用任何稀疏光流算法进行估计。

        值得注意的是,稀疏光流估计通常比每像素密集算法慢,因此该算法受益于包含小移动对象的静态背景。

C.差帧插值

        插值规则帧是一个复杂的问题,有许多不可预见的边缘情况,例如,闭塞,并且是计算昂贵的。传统的插值算法都依赖于一个基本假设,即组成一个对象的像素面积在颜色、亮度或大小上不会从一帧到另一帧发生剧烈变化。这种假设在发生闭塞的场景中就失效了。

        传统的光流算法无法找到原始像素,在光流估计中会出现伪影。

        为了减少这种边缘情况的可能性,并进一步减少插值步骤的计算负荷,该方法只在连续的差分帧之间进行插值,而不是在连续的相机帧之间进行插值。这种方法通过只在事件本身之间进行插值来降低复杂性,因为我们假设不同的帧代表事件。

        给定三个连续的相机帧,第一步计算两个差帧。下一步计算两个差帧之间的光流。利用这种光流,从第一步开始,可以在两个差帧之间插入额外的差帧。这种方法的过程如图2所示。

图2:差分帧插值法的过程; 

        该方法对原始帧序列作了严格的假设。产生事件的物体的运动必须是恒定的线速度。此外,这些物体在视频中的视角不会随着时间的推移而改变。考虑到这些假设,这种方法是专门针对任务的,例如,对象跟踪。

IV. 评估

我们以三种不同的方式评估我们提出的模拟方法。

A. 运行时间

        我们比较了我们提出的事件模拟方法在两种不同场景下的运行时间。第一个场景是具有高每帧事件比率的动态场景。这段视频摘自[23]。数据集包含记录的事件和20帧每秒的相机帧,从一辆汽车行驶。

        我们从interlaken 00c序列中选取了537帧的帧序列。原始分辨率为1440 × 1080像素的帧在传递给事件模拟器之前被调整为事件相机的分辨率(640 × 480像素)。对于这个数据集,我们使用了20个插值(差分)帧。实验结果如图3所示。

图3:运行时比较[毫秒]在高事件每帧的镜头,分辨率为640 × 480像素。

        在第二个场景中,我们使用了一个动态较少的场景,其事件每帧率较低。具体来说,我们使用FLIR CHAMELEON 3相机和propheee Gen4事件相机以150 fps的速度在静态背景前记录了一个飞行的乒乓球。该帧序列包含158帧。我们还调整了这个数据集的输入帧的大小,从1280×1024像素(相机的分辨率)到1280 × 720像素(事件相机的分辨率),然后将其传递给事件模拟器。对于这个数据集,我们使用了10个插值(差分)帧。实验结果如图4所示。

图4:运行时比较[毫秒]在低事件每帧的镜头(乒乓球),分辨率为1280 × 720像素。

        除了我们提出的三种方法的运行时之外,我们还列出了计算差帧的运行时作为参考。我们还将我们的事件模拟方法与两种最先进的事件模拟器vid2e[18]和v2e[19]进行了比较。由于模拟方法在很大程度上依赖于所使用的光流实现,因此我们对这三种事件模拟方法使用了不同的光流算法。我们选择Cpos、Cneg和插值帧数,使生成的事件类似于地面真实累积的事件帧。这些值列在表1中。

 B. 定性比较

        为了进行定性比较,不同方法的输出如图5所示为动态数据集,如图6所示为非动态数据集。我们使用与第IV-A节相同的数据集。积累时间设置为模仿帧相机的帧速率(1=fps)。

图5:对描绘一辆汽车在因特拉肯行驶的高帧事件视频序列上不同模拟方法的输出进行定性比较。LK代表Lucas Kanade。积累时间设置为模仿帧相机的帧速率(1=fps)。 

 图6:在描述飞行乒乓球的低事件/帧视频序列上不同仿真方法输出的定性比较。

C. 统计比较

        我们将我们的事件模拟方法与真实事件以及vid2e[18]和v2e[19]的输出进行统计比较。我们使用[27]中引入的每像素每秒事件度量(事件像素·s)作为两个短序列的比较。事件计数是真实模拟事件相机的必要条件,但不是充分条件。我们从[23]中的interlaken 00 c序列中获取高每帧事件数的数据,从飞行乒乓球数据集中获取低每帧事件数的数据,取了15秒(40帧)。我们调整了每种模拟方法的阈值Cpos和Cneg,以获得与真实事件相似的平均值。在表III中列出了低事件/帧数据。

        从表2中可以看出,对于高事件每帧数据集,我们的模拟方法与真实事件v2e和vid2e相比,往往具有更低的标准偏差。然而,在低每帧事件数据集上,与v2e和vid2e相比,我们的大多数模拟方法的标准差更接近真实事件之一。

 V. 结论

        这项工作提出了可以在30毫秒内运行的多个事件模拟器方法。与现有的事件模拟器相比,我们的模拟器可以用于实时机器人应用,同时在质量评估中保持竞争力。我们已经展示了场景的分辨率和动态对模拟器运行时、模拟事件的质量和事件统计的影响。

        根据摄像机设置和场景的动态,我们有以下建议:对于高动态的场景,例如,安装在行驶中的汽车上的事件摄像机,我们建议使用GPU上的Farneback密集插值方法。在动态较少的场景中,例如,使用静态事件相机跟踪对象,我们建议使用差分插值方法。对于介于两者之间的用例,可能需要一些实验来找到快速运行时和高质量模拟事件之间的最佳点。稀疏插值方法可能是一个很好的选择

        通过这项工作,我们向实时机器人应用的事件模拟器迈出了第一步。我们希望我们的工作能够让其他人在实时用例中为基于事件的数据开发新的算法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值