【NeRF_based SLAM论文精读】iMap: Implicit Mapping and Positioning in Real-Time隐式建图和实时定位(ICCV2021)

论文:https://arxiv.org/abs/2103.12352

目录

Related Work

Overview

 Implicit Scene Neural Network

 Depth and Colour Rendering

 Joint optimisation

Camera Tracking

 Keyframe Selection

 Active Sampling

 Experiments

Future directions 


本文首次展示多层感知器 (multilayer perceptron,MLP) 可以作为手持 RGB-D 相机的实时 SLAM 系统中的唯一场景表示。 我们的网络在没有先验数据的情况下进行了实时操作训练,构建了一个密集的、特定于场景的占用和颜色的隐式 三维 模型,该模型也可以用于实时跟踪。

我们的 iMAP 算法使用关键帧结构和多处理计算流程,采用动态信息引导像素采样以提高速度,跟踪频率为 10 Hz,全局地图更新频率为 2 Hz。与标准的密集SLAM技术相比,隐式MLP的优势包括具有自动细节控制的高效几何表示,以及对未观察到的区域(如对象的背面)进行平滑、合理的填充。

  • Related Work

  • Overview

iMAP分为两个进程同时运行:

跟踪tracking,输入RGBD图像,它优化当前帧相对于固定网络的姿态,同时将Tracked pose送入mapping线程。

建图mapping,输入RGBD图像,其中包含了相机的坐标信息和观察角度,判断是否为关键帧(基于信息增量所选),如果是的话就将当前帧加入到关键帧集合当中,进行联合优化网络参数和关键帧相机姿势。

  •  Implicit Scene Neural Network

遵循 NeRF 中的网络架构,我们使用具有 4 个特征大小为 256 的隐藏层的 MLP,以及两个输出头,将 3D 坐标 p = (x, y, z) 转换为颜色和体积密度值: Fθ (p) = (c,ρ)。

把密度σ和颜色RGB分为两部分输出,这么做是因为,粒子密度σ是跟三维场景本身更强相关的属性,不管观察的方向怎么变,它都不会有太大的变化,而颜色值在不同观察方向下,受光照影响,可能会发生大的变动,它受相机位置和观察方向的影响都更大。

基于此,NeRF先把相机位置 (x,y,z) 经过位置编码后拓展成 60 维的向量,送入一堆全连接网络 (FC 层) 后,分叉出两路,其中一路经过一个 FC 层和 ReLU 后输出σ值(使用ReLU校正以确保输出体积密度为非负);另一路同方向向量经过位置编码的向量拼接后,一起送入之后的全连接网络,最后经过 Sigmoid 输出RGB颜色值 。

我们应用傅立叶特征网络( Fourier Feature Networks )中提出的高斯位置嵌入将输入 3D 坐标提升到 n 维空间:sin(Bp),其中 B 是从标准差为 σ 的正态分布中采样的 [n × 3] 矩阵。该嵌入用作 MLP 的输入,并且还连接到网络的第二激活层。 受到 SIREN 的启发,我们允许优化嵌入矩阵 B,将其实现为具有正弦激活的单个全连接层。

  •  Depth and Colour Rendering

查询场景网络以从给定视图获取深度和彩色图像。

给定一个相机位姿a camera pose Twc 和一个像素坐标 a pixel coordinate [u, v],我们首先反投影到世界坐标系(相机内参为K):r=TwcK^{-1}[u,v]

沿射线 pi = dir 采取一组 N 个样本,并具有相应的深度值 {d1, · · · , dN }。

查询场景网格得到颜色和体积密度:(ci, ρi) = Fθ (pi)。

体积密度转化为占用概率(occupancy probability):

深度和颜色呈现为期望:

 计算沿射线的深度方差为:

  •  Joint optimisation

利用越来越多的关键帧,对网络参数和相机位姿做联合优化。

光度损失(the photometric loss):

几何损失(the geometric loss):

将 ADAM 优化器应用于两个损失的加权和,并使用因子 λp 调整光度误差的重要性:

  • Camera Tracking

 在online SLAM 中,接近帧速率的相机跟踪非常重要,因为较小位移的优化更加稳健。 我们运行一个并行跟踪过程,在使用相同的损失和优化器的情况下,以比联合优化高得多的帧速率持续优化最新帧相对于固定场景网络的姿态。 跟踪的姿势初始化在选定关键帧的映射过程中进行了细化。

  •  Keyframe Selection

使用视频流中的所有图像共同优化网络参数和摄像机姿势在计算上是不可行的。由于视频图像中存在巨大的冗余,我们可以用一组稀疏的代表性关键帧来表示一个场景,这些关键帧是根据信息增益逐渐选择的。

始终选择第一个帧以初始化网络并固定世界坐标帧。每次添加新的关键帧时,我们都会保存网络的副本,以表示该时间点的地图。后续帧将对照此副本进行比较,如果观察到明显新区域,则会选择后续帧作为新的关键帧。

为此,我们渲染一组统一的像素样本 s 并计算归一化深度误差小于阈值 tD = 0.1 的比例 P:

当该比例低于阈值 P < tP(我们设置 tP = 0.65)时,该帧将被添加到关键帧集中。

归一化深度误差会产生自适应关键帧选择,当相机靠近对象时,需要更高的精度,因此关键帧的间距更近。

  •  Active Sampling

 Image Active Sampling 图像主动采样:

左侧:首先将每个关键帧的深度图像和颜色图像分成一个[8×8]的网格。然后,在每个网格中均匀地选择一组像素作为采样点。在每个区域中,我们计算采样像素在该区域内的平均损失。这些采样像素是从每个区域中均匀采样得到的。通过计算每个区域的平均损失,我们可以得到关于该区域损失的统计信息。

右侧:我们将这些统计量归一化为一个概率分布。最终的目的是使用这个分布来重新采样每个区域,生成一组新的采样样本。这些新的样本数量与刚刚计算得到的损失统计有极高的关联性。

通过这种方式,我们将更多的样本分配给损失较高的区域,从而在优化过程中更加关注这些区域。可以提高对信息较多的细节区域或重建不精确的区域的采样密度,以获得更准确的重建结果。 

 keyframe active sampling 关键帧主动采样

我们希望将更多的样本分配给损失更高的关键帧,故在每次迭代时,我们从关键帧集中随机采样一固定数量的关键帧,采样概率基于关键帧的损失分布,即损失较高的关键帧有更高的概率被选中。

在有界关键帧选择(Bounded Keyframe Selection)中,我们始终包括最后一个关键帧和当前活动帧参与联合优化。这样可以确保我们在优化中考虑了最新的信息,并将新的观测结果纳入到场景地图的建模中。我们构建一个有界窗口,其中包括最后一个关键帧和当前活动帧,加上另外几个采样的关键帧,总数通常为5个。

  •  Experiments

数据集:Replica数据集。

度量指标:We sample 200, 000 points from both ground-truth and reconstructed meshes。包括准确性Accuracy (cm),重建网格的采样点与最近的地面实况点之间的平均距离;完成性Completion(cm),地面实况网格采样点与最近重建的采样点之间的平均距离;完成率Completion Ratio(<5cm %),重建网格中完成度低于 5 厘米的点的百分比。

数据集:TUM RGB-D数据集。

度量指标:绝对轨迹误差 (Absolute Trajectory Error,ATE) 进行相机位姿估计。

  • Future directions 

 iMAP 的未来方向包括如何做出更加结构化和组合的表示,以明确地推理场景中的自相似性。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值