iMAP: 实时的隐式建图和定位

标题:iMAP: Implicit Mapping and Positioning in Real-Time

作者:Edgar Sucar, Andrew I.Davison

编译:方川

审核:zhuhu

来源:ICCV 2021

这是泡泡图灵智库推送的第735篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,请后台留言申请授权

今天我们要精读的文章是来自Andrew Davison实验室的iMAP。这篇工作首创性的提出了在SLAM过程中使用MLP来表征场景地图. 这种隐式的地图表示方法不仅可以解决地图存储问题, 还可以很好的控制场景重建细节, 比如相机无法观测到的物体的重建.

摘要:

本文介绍了一种使用MLP隐式表征场景地图的方法, 适用于RGB-D相机的SLAM系统, 我们称之为iMAP. iMAP的系统结构参考PTAM的多线程设计. 跟踪线程以10HZ频率运行跟踪算法, 输入当前帧(rgb+depth)与场景渲染结果(rgb+depth)对齐来完成相机位姿估计. 建图线程以滑窗方式维护关键帧, 以2HZ频率运行地图优化和关键帧位姿优化.

主要贡献:

首次提出在SLAM系统中使用MLP隐式表征地图, 并且优化地图和相机位姿;

本文可以实时的完成场景建图任务;

一种多线程并行的RGB-D SLAM系统;

算法流程:

3.1 系统框架

如Fig.2所示, 场景的3D体素地图被全连接网络

表示, 给定相机位姿, 我们可以使用NeRF类似的手段来渲染得到该位姿在场景中对应的rgb和depth图像. 借鉴PTAM的设计, 我们的系统也有两个线程. 跟踪线程优化当前帧相对于场景地图的位姿, 建图线程同步优化网络参数(代表地图)和关键帧位姿.

3.2 神经网络是如何表征隐式场景地图

借鉴NeRF的思想, 本文采用4层全连接网络来表征场景地图, 每层网络包含256特征通道. 全连接网络将空间三维点

映射为体素地图的颜色和体素密度

. 但是与NeRF不同的是, 我们不需要三维点

的方向信息, 因为方向信息需要该帧相机位姿, 而本系统的目的就是求解相机位姿.

同时, 我们采用了FourierFeatureNetworks中的位置嵌入方法来把

映射到n维空间:

, 来增强模型对细节的重建能力.

3.3 如何渲染深度图和RGB图像

渲染模块借鉴了NeRF和NodeSLAM的工作, 给定相机位姿, 在隐式地图中渲染出这个视角对应的rgb和depth图像.

与NeRF中的离散近似volume rendering方法类似,给定相机位姿

和一个像素坐标

, 首先把它反投影为相机坐标系中的一条射线

, 然后在这条射线上均匀采样

个点, 采样点的深度值

, 用这种离散渲染的方式来求该像素位置的颜色和体素密度

.

具体的, 记两个采样点之间的深度距离

, 激活函数

模拟射线的透明度, 则累计透明度可以表示为概率密度函数

, 最终渲染得到的深度值和颜色:

这条射线的深度值方差为:

3.4 如何跟踪相机轨迹、联合优化相机和地图?

在SLAM系统的优化环节, 我们要同步优化地图(网络参数

)和

个关键帧

的相机位姿.

因为rendering过程(生成每个像素的颜色和深度值的过程)对待优化变量都是可微的, 我们可以根据颜色的光度误差和深度的几何误差来执行迭代优化.

记渲染得到的像素点集合为

, 颜色光度误差记为:

其中

. 深度几何误差记为:

其中

. 整个网络的损失函数为:

3.5 如何选取关键帧

SLAM系统的常见策略是采用关键帧来表示场景. 与传统的基于特征点SLAM的关键帧选取策略类似, 我们这里的关键帧选取策略是: 在当前帧上均匀采样一群像素点

, 网络渲染得到这些像素点的颜色和深度值, 当深度值误差小于

的像素点比例

时, 就把当前帧选为关键帧.

3.6 特征点采样策略

用图像所有像素来做跟踪、渲染、优化流程是不现实的, 因此我们每次迭代时在每帧图像上采样200个分布均匀的像素点. 为了得到一个合理的采样点概率分布, 包括以下两个步骤:

a. 把当前帧分割为8x8网格, 在这

64网格上均匀采样

个特征点, 并计算光度误差个几何误差:

其中

. 然后再将这64个网格里计算得到的误差归一化:

b. 我们用误差分布

来重新采样

个特征点, 这样就能保证在误差比较大的区域可以采集比较多的特征点,从而加速整个神经网络收敛.如Fig.3所示:

关键帧上的特征点采样与普通帧一致, 为了更好的迭代收敛神经网络, 我们将在关键帧上采样更多的特征点.

为了保证系统的实时性, 优化步骤只保留3个关键帧和一个当前(普通)帧, 虽然Fig.4使用了5个关键帧+1个当前帧, 但是在实时运行版本我们只使用红色虚线框出来的4帧来做联合优化;

实验结果

评估重建精度

我们在合成数据集Replica和真实采集的AzureKinect数据集上测试了我们的iMAP, 来评估重建结果的质量.

本文在重建得到的mesh和groundtruth mesh上各采样200000个点, 用这些点的Accuracy(cm)、Completion(cm)、Completion Ratio(

这里主要把iMAP的重建结果与TSDFFusion做对比:

在Replica和AzureKinect数据上的重建结果可视化对比, 这里强调了iMAP能够完整重建出相机未观测到的部分:

评估相机位姿精度

我们又在TUM RGB-D数据集的几个比较简单的场景上评估了iMAP的相机轨迹的精度, 可以看到iMAP比其他一些sota的SLAM系统精度还是有点差距的:

之后就是一些消融实验了.

结论

本文提出的iMAP方法貌似一直在说室内小场景的SLAM, 而且轨迹精度与比较老的视觉SLAM方法相比确实不高, 个人认为还是VO/SLAM的一些显示约束没有加到网络里来, 不过这确实是第一篇用NeRF来做SLAM的文章了,可以算是经典的开山之作.

关键词: 泡泡图灵智库iMAP实时的隐式建图和定位 imap