小凡 · 2020年07月17日

Ultimate SLAM?利用事件相机解锁高速运动、高动态范围场景

首发:3D视觉工坊微信公众号
作者:薛轲翰

本篇文章主要介绍 2018 年 ICRA 的一篇论文:

Rosinol Vidal, A., Rebecq, H., Horstschaefer, T., Scaramuzza, D.,
_Ultimate SLAM? Combining Events, Images, and IMU for Robust Visual SLAM in HDR and High Speed Scenarios_,
IEEE Robotics and Automation Letters (RA-L), 3(2):994-1001, Apr. 2018. PDF, YouTube, Poster, Project page, ICRA18 video pitch.

这篇论文提出了首个将 Event-based Camera(事件相机)、Traditional Frame-based Camera(传统相机)与 IMU 三者结合的一个 SLAM pipeline(其实我觉得称其为 VIO 更加合适...)。

Event-based Camera 具有高速、高动态范围(HDR)等优点,关于其介绍的资料很多,这里不再赘述。

640.png

主要贡献

  1. 提出了首个融合了 Event Camera、传统相机、IMU 三者的 state estimation pipeline。鲁棒性好、精度高,并可在环境光照大幅突变、高速运动等情况下正常工作。这个 pipeline 可以看作是作者组里的上一篇论文《Real-time Visual-Inertial Odometry for Event Cameras using Keyframe-based Nonlinear Optimization》(Event+IMU)的扩展,将传统相机的 image 给加了进来。然后做了一些改进,使其可以在移动机器人上实时运行。
  2. 定量分析了将传统相机的 image 数据加进来之后,本文提出的方法在计算负荷仍然满足的情况下,状态估计精度的提升。并在真实无人机上进行了评测,可以 onboard 实时运行。并且可以在低光照、光照突变和高速运动等场景中正常飞行。

我个人认为,这篇工作主要基于 okvis 的那一套 formulation,再往优化函数里面加入一项 events frame 的重投影误差项。这样做的细节和带来的好处将在下文中提到。

具体工作

本文提出的 pipeline:

640-1.png

图像数据处理:首先基于 spatial-temporal window 和 IMU 的测量量,将 Event-based Camera 产生的 events 合成运动补偿(为适应高速运动场景)的 virtual event frames;此外还有传统相机的 image frames。然后对这两者分别进行 FAST 角点检测,L-K 光流法做 tracking,triangulation 出 landmark 的空间坐标、计算重投影误差,作为两个误差项。然后 IMU 的做法也就是传统 的紧耦合 VIO 中常见的方法,这里不再赘述。

1. Coordinate Frame Notation

Event-based Camera、传统相机与 IMU 三者之间的外参由事先标定好。

2. Spatio-temporal Windows of Events

上面提到,要一个合成 virtual event frame,所以这个时候就要确定一个如何选取event 合成 frame 的策略。作者提出了一个Spatio-temporal Window,即以传统相机的 frame 的到来时间tk为基准,选取此前的N个 events 来作为合成 frame 的 events。下图的 example 为N=4的样例,在论文中的实验中,选取了N=20000。这个N是要取决于场景中纹理的多少的。

640-2.png

3. Synthesis of Motion-Compensated Event Frames

640-3.png

对于进行运动补偿的图示和效果,在作者的另一篇(也就是上面提到的这篇的前作)中有图例展示:

640-4.png

4. Feature Tracking

作者同时在event frames 和 standard camera frames上分别进行 FAST 角点检测,并通过 KLT 进行跟踪。两者是完全相互独立的。这里的做法也就比较常规了,每个feature被当作candidate feature,在多帧之间进行跟踪。当它可以被可靠的三角化,就三角化为空间中的 3D 点 landmark,并被当作为 persistent feature用于更长远的后面帧的一直跟踪。当被跟踪的feature小于一个阈值,这个时候就重新进行feature detection。在两种frame上用于 feature 检测和跟踪的参数是一样的。

5. Visual-inertial Fusion through Nonlinear Optimization

构造了如下的 cost function:

640-5.png

很直观,这是一个帧数为K的sliding window中进行的优化,前面一项就是两种frames的重投影误差,其中i表示是是event还是传统相机。第二项就是 IMU的误差项。这些就是标准VIO的标配了,具体可见okvis,这里不再赘述。

作者论文中提到,这种优化方式,自然而然就会往当前工作状态更好的sensor去靠近。比如当前环境光照很低,传统相机效果极差,但event的工作较好,优化自然会更多的利用event的信息。

6. Additional Implementation Details

6.1 Initialization

初始化的时候,认为系统是静止的。收集一段时间的IMU的测量量来估计初始位姿,并且初始化陀螺仪与加速度计的bias。

6.2 No-Motion Prior for Almost-Still Motions

当近乎静止的时候,系统此时几乎是没有event输出的。为了应对这种情况,当检测到event的产生速率低于一定的阈值的时候(论文中提到为 1000events/s,measure window 为 20ms),就在优化问题中加一个速度为零的强先验。

论文实验

在数据集上,作者设定了不同的对比实验。详细的论文实验和参数设置请详见论文。这里简单放一些结果。

同时采用三者(Fr+E+I)与只采用(E+I)、只采用(Fr+I)进行对比:

640-6.png

(Fr+E+I)与当前的 SOTA 的(E+I)方案进行对比:

640-7.png

作者在真实无人机上进行实验。飞控使用 PX4,onboard computer使用 Odroid。相机下视,作者做了绕圈飞和悬停的实验;以及飞行过程中的开关灯,导致环境光照剧烈变化。

飞行时的图片样例:

640-8.png

视频演示地址:

https://youtu.be/jIvJuWdmemE

本文仅做学术分享,如有侵权,请联系删文。

推荐阅读


重点介绍:1、3D视觉算法;2、vslam算法;3、图像处理;4、深度学习;5、自动驾驶;6、技术干货。 博主及合伙人分别来国内自知名大厂、海康研究院,深研3D视觉、深度学习、图像处理、自动驾驶、目标检测、VSLAM算法等领域。
欢迎关注微信公众号
3D与Slam 二维码 极术.jpg
推荐阅读
关注数
1101
内容数
100
专注于3D视觉,Vslam,图像处理等,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息