点击上方“3D视觉工坊”
干货第一时间送达
作者丨paopaoslam
标题:iMAP: Implicit Mapping and Positioning in Real-Time
作者:Edgar Sucar, Andrew I.Davison
今天我们要精读的文章是来自Andrew Davison实验室的iMAP。这篇工作首创性的提出了在SLAM过程中使用MLP来表征场景地图. 这种隐式的地图表示方法不仅可以解决地图存储问题, 还可以很好的控制场景重建细节, 比如相机无法观测到的物体的重建.
摘要:
本文介绍了一种使用MLP隐式表征场景地图的方法, 适用于RGB-D相机的SLAM系统, 我们称之为iMAP. iMAP的系统结构参考PTAM的多线程设计. 跟踪线程以10HZ频率运行跟踪算法, 输入当前帧(rgb+depth)与场景渲染结果(rgb+depth)对齐来完成相机位姿估计. 建图线程以滑窗方式维护关键帧, 以2HZ频率运行地图优化和关键帧位姿优化.
主要贡献:
1、首次提出在SLAM系统中使用MLP隐式表征地图, 并且优化地图和相机位姿;
2、本文可以实时的完成场景建图任务;
3、一种多线程并行的RGB-D SLAM系统;
算法流程:
3.1 系统框架
如Fig.2所示, 场景的3D体素地图被全连接网络表示, 给定相机位姿, 我们可以使用NeRF类似的手段来渲染得到该位姿在场景中对应的rgb和depth图像. 借鉴PTAM的设计, 我们的系统也有两个线程. 跟踪线程优化当前帧相对于场景地图的位姿, 建图线程同步优化网络参数(代表地图)和关键帧位姿.
3.2 神经网络是如何表征隐式场景地图
3.3 如何渲染深度图和RGB图像
渲染模块借鉴了NeRF和NodeSLAM的工作, 给定相机位姿, 在隐式地图中渲染出这个视角对应的rgb和depth图像.
3.4 如何跟踪相机轨迹、联合优化相机和地图?
3.5 如何选取关键帧
3.6 特征点采样策略
关键帧上的特征点采样与普通帧一致, 为了更好的迭代收敛神经网络, 我们将在关键帧上采样更多的特征点.
为了保证系统的实时性, 优化步骤只保留3个关键帧和一个当前(普通)帧, 虽然Fig.4使用了5个关键帧+1个当前帧, 但是在实时运行版本我们只使用红色虚线框出来的4帧来做联合优化;
实验结果
评估重建精度
我们在合成数据集Replica和真实采集的AzureKinect数据集上测试了我们的iMAP, 来评估重建结果的质量.
本文在重建得到的mesh和groundtruth mesh上各采样200000个点, 用这些点的Accuracy(cm)、Completion(cm)、Completion Ratio(<5cm %)来评估重建的mesh. 其中Accurary就是两个点的欧式距离误差, Completion就是采样点周围有mesh部分的距离误差, Completion Ration则是指采样点Completion误差<5cm的点所占的比例.
这里主要把iMAP的重建结果与TSDFFusion做对比, 在Completion指标上略优于TSDF Fusion:
在Replica和AzureKinect数据上的重建结果可视化对比, 这里强调了iMAP能够完整重建出相机未观测到的部分:
评估相机位姿精度
我们又在TUM RGB-D数据集的几个比较简单的场景上评估了iMAP的相机轨迹的精度, 可以看到iMAP比其他一些sota的SLAM系统精度还是有点差距的:
之后就是一些消融实验了.
结论
本文提出的iMAP方法貌似一直在说室内小场景的SLAM, 而且轨迹精度与比较老的视觉SLAM方法相比确实不高, 个人认为还是VO/SLAM的一些显示约束没有加到网络里来, 不过这确实是第一篇用NeRF来做SLAM的文章了,可以算是经典的开山之作.
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
本文仅做学术分享,如有侵权,请联系删文。
▲长按关注公众号
觉得有用,麻烦给个赞~