标题:NICE-SLAM:
Neural Implicit Scalable Encoding for SLAM
作者:Zihan Zhu Songyou Peng Viktor Larsson Weiwei Xu Hujun Bao Zhaopeng Cu Martin R. Oswald Marc Pollefeys
来源:CVPR2022
编译:张海晗
审核:zhh
代码: https://pengsongyou.github.io/nice-slam.
这是泡泡图灵智库推送的第813篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
大家好,今天介绍的文章是NICE-SLAM:用于SLAM的神经隐含可扩展编码
摘要
最近,神经隐含表征在各个领域显示出令人鼓舞的结果,包括在同步定位和映射(SLAM)方面取得的可喜进展。然而,现有的方法产生了过度平滑的场景重建,并且难以扩展到大场景。这些限制主要是由于其简单的全连接网络结构,没有将局部信息纳入观察范围。在本文中,我们提出了NICE-SLAM,这是一个密集的SLAM系统,通过引入分层的场景表示,纳入了多层次的本地信息。用预先训练好的几何先验来优化这个表示,可以在大的室内场景中进行详细的重建。与最近的神经隐含SLAM系统相比,我们的方法更具可扩展性、效率和鲁棒性。在五个具有挑战性的数据集上进行的实验表明,NICE-SLAM在映射和跟踪质量方面都具有竞争力。
Project
page: https://pengsongyou.github.io/nice-slam.
主要贡献
我们提出了NICE-SLAM,一个密集的RGB-D
SLAM系统,它具有实时性、可扩展性、预测性和对各种挑战性场景的鲁棒性。
NICE-SLAM的核心是一个分层的、基于网格的神经隐式编码。与全局神经场景编码相比,这种表示法允许局部更新,这是大规模方法的一个先决条件。
我们在各种数据集上进行了广泛的评估,证明了在映射和跟踪方面具有竞争力的性能。
主要方法
我们的方法将RGB-D图像流作为输入,并以分层特征网格的形式输出摄像机的姿势和学习到的场景表示。从右到左,我们的管道可以被解释为一个生成模型,它根据给定的场景表示和摄像机姿势渲染深度和颜色图像。在测试时,我们通过逆向传播图像和深度重建损失来解决逆向问题,并通过可区分的渲染器(从左到右)来估计场景表现和摄像机的姿势。这两个实体都是在交替优化中估计的。映射:逆传播只更新层次化的场景表示。跟踪:逆传播只更新摄像机的姿态。为了提高可读性,我们将用于几何编码的细尺度网格与同等大小的颜色网格结合起来,并将它们显示为具有两个属性(红色和橙色)的一个网格。
1. 层次化的场景表示
现在我们介绍一下我们的分层场景表示,它结合了多级网格特征和预训练的解码器,用于占用率预测。几何图形被编码成三个特征网格j l θ和它们相应的MLP解码器f l,其中l∈{0,1,2}是指粗、中、细三级场景细节。此外,我们还有一个单一的特征网格ψω和解码器gω来模拟场景外观。这里θ和ω表示几何和颜色的可优化参数,即网格中的特征和颜色解码器中的权重。
2. 深度和色彩渲染
给定相机的固有参数和当前相机的姿势,我们可以计算出一个像素坐标的观察方向r。我们首先沿着这条射线对Nstrat点进行分层采样,同时对靠近深度的Nimp点进行均匀采样1。我们对每条射线总共取样N=Nstrat+Nimp点。更正式地说,让pi = o + dir, i∈ {1, - -, N}表示给定摄像机原点o的射线r上的采样点,di对应于pi沿该射线的深度值。对于每一个点pi,我们可以计算出它们的粗粒度占用概率o
0 pi,细粒度占用概率opi,和颜色值cpi。
最后,对于每条射线,在粗略和精细层面的深度,以及颜色可以被呈现为:
3. 建图和跟踪
建图。为了优化上文提到的场景表示,我们从当前帧和选定的关键帧中均匀地取样共M个像素。接下来,我们以分阶段的方式进行优化,以最小化几何和光度损失。
几何损失仅仅是观测值和预测深度之间的L1损失,在粗略的或精细的水平上为:
光度损失为:
相机跟踪。除了优化场景表示外,我们还平行运行摄像机跟踪,以优化当前帧的摄像机姿势,即旋转和平移{R,t}。为此,我们对当前帧中的Mt像素进行采样,并应用上面相同的光度损失,但使用一个修改过的几何损失:
修改后的损失在重建的几何形状中减少了某些区域的权重,例如物体的边缘。摄像机跟踪最终被表述为以下最小化问题:
4. 关键帧的选择 与其他SLAM系统类似
我们用一组选定的关键帧不断优化我们的分层场景表示。我们按照iMAP的方法维护一个全局关键帧列表,我们根据信息增益逐步添加新的关键帧。然而,与iMAP相比,我们在优化场景几何时只包括与当前帧有视觉重叠的关键帧。这是可能的,因为我们能够对我们的基于网格的表示进行局部更新,而且我们不会像iMap那样存在关键帧消失的问题。这种关键帧选择策略不仅确保了当前视图之外的几何形状保持静态,而且还导致了一个非常有效的优化问题,因为我们每次只优化必要的参数。在实践中,我们首先随机地对像素进行采样,并使用优化后的相机姿势对相应的深度进行反投影。然后,我们将点云投影到全局关键帧列表中的每个关键帧。从这些有点投射到的关键帧中,我们随机选择K-2帧。此外,我们还将最近的关键帧和当前的帧包括在场景表示优化中,形成总共K个活动帧。
主要结果
如果你对本文感兴趣,请点击点击阅读原文下载完整文章,如想查看更多文章请关注【泡泡机器人SLAM】公众号(paopaorobot_slam)。
欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/bbs/
泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!