|
作者:薛轲翰
来源:公众号@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)等优点,关于其介绍的资料很多,这里不再赘述。
主要贡献
提出了首个融合了 Event Camera、传统相机、IMU 三者的 state estimation pipeline。鲁棒性好、精度高,并可在环境光照大幅突变、高速运动等情况下正常工作。这个 pipeline 可以看作是作者组里的上一篇论文《Real-time Visual-Inertial Odometry for Event Cameras using Keyframe-based Nonlinear Optimization》(Event+IMU)的扩展,将传统相机的 image 给加了进来。然后做了一些改进,使其可以在移动机器人上实时运行。定量分析了将传统相机的 image 数据加进来之后,本文提出的方法在计算负荷仍然满足的情况下,状态估计精度的提升。并在真实无人机上进行了评测,可以 onboard 实时运行。并且可以在低光照、光照突变和高速运动等场景中正常飞行。
我个人认为,这篇工作主要基于 okvis 的那一套 formulation,再往优化函数里面加入一项 events frame 的重投影误差项。这样做的细节和带来的好处将在下文中提到。
具体工作
本文提出的 pipeline:
图像数据处理:首先基于 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是要取决于场景中纹理的多少的。
3. Synthesis of Motion-Compensated Event Frames
对于进行运动补偿的图示和效果,在作者的另一篇(也就是上面提到的这篇的前作)中有图例展示:
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:
很直观,这是一个帧数为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)进行对比:
(Fr+E+I)与当前的 SOTA 的(E+I)方案进行对比:
作者在真实无人机上进行实验。飞控使用 PX4,onboard computer使用 Odroid。相机下视,作者做了绕圈飞和悬停的实验;以及飞行过程中的开关灯,导致环境光照剧烈变化。
飞行时的图片样例:
视频演示地址:
https://youtu.be/jIvJuWdmemE
本文仅做学术分享,如有侵权,请联系删文。 |
|