NeRF-VO:实时稀疏视觉里程计与基于NeRF的稠密重建

论文标题:

NeRF-VO: Real-Time Sparse Visual Odometry with Neural Radiance Fields

论文作者:
Jens Naumann,Binbin Xu,Stefan Leutenegger,Xingxing Zuo,∗Technical University of Munich,University of Toronto

导读: 本文提出一种新型神经视觉里程计系统,结合了基于学习的稀疏视觉里程计、单目深度预测网络,进行基于神经辐射场优化,同时调整位姿和稠密地图。本系统展现优越的位姿估计精度,并提供高质量的稠密建图,同时保持较低的位姿跟踪延迟和GPU 内存消耗。©️【深蓝AI】编译

1. 摘要

本文引入一个新颖的单目视觉里程计系统,集成了基于学习的稀疏视觉里程计,该视觉里程计主要用来低延迟相机追踪,以及一个针对复杂稠密重建和新视角图像合成的神经辐射场景表示。此系统使用稀疏视觉里程计,以及来自于一个单目深度预测网络的稠密几何先验知识,来初始化相机的位姿。本文中的方法协调了位姿的尺度和稠密的几何先验的尺度,将它们作为监督线索来训练神经隐式场景表示。NeRF-VO 通过联合优化关键帧位姿的滑动窗口和底层稠密几何,在场景表示的光度和几何保真度方面都表现出卓越的性能。在各种合成和真实世界数据集上,本文方法在位姿估计精度、新颖视图合成保真度和稠密重建质量方面都超越了最先进的方法,同时实现了更高的相机跟踪频率和更少的 GPU 内存消耗。

▲图1|在Replica数据集上实施3D重建和相机追踪的结果©️【深蓝AI】编译

▲图1|在Replica数据集上实施3D重建和相机追踪的结果©️【深蓝AI】编译

2. 引言

在3D计算机视觉和各种机器人、混合现实应用中,仅仅使用场景的图像信息,实现准确位姿估计和3D场景重建,都是极具挑战的。此前就已证明过:神经辐射场(NeRF)是解决新颖视角图像合成任务的重要场景表示方法。原始的NeRF使用巨大的多层感知机(MLPs),将3D坐标和光线方向分别编码成体积密度和颜色。然而,它无法表示复杂且巨大的场景,尤其是具备详细细节的场景。对使用深度多层感知机的NeRF,进行训练和渲染都是极其耗时且消耗计算量的。

近几年的各项研究工作则致力于解决这一问题——试图加速NeRF,通过更加高效的神经表示来替换深度MLPs。例如,通过使用一个混合的表示,Instant-NGP得到了持续的加速,这一表示将可训练的多尺度哈希编码(MHE)和共享浅层MLPs进行了结合。这些通过加速的神经辐射场景模型,打开了实时敏 感的SLAM/VO技术的新大门。

基于 NeRF 的场景表示,可实现高保真的光度和几何重建,并对一些未观察到的区域提供合理的估计,同时具有很高的内存效率。这些表示能够全面使用,来自于原始图像的信息。使用视觉体积渲染,每个像素都能够在场景优化过程中得到应用。这也就具备超越传统的方法的潜力,例如:直接和非直接SLAM方法。之后,大量工作旨在将神经隐式建图同SLAM进行集合。但是,仅有小部分方法聚焦于单目RGB输入。基于准确度的考量,仅有RGB输入的方法落后于RGB-D输入的方法,尤其是在深度重建任务上。此外,无论输入模式如何,这些方法大多计算成本高昂,缺乏实时性,而且需要大量 GPU 内存。

为了解决这些问题,本文提出了NeRF-VO,一种具有神经隐式稠密建图功能的实时稀疏视觉里程计。其性能分析如图1所示。本文使用基于低延迟学习的稀疏视觉里程计,获得初始位姿估计和三维稀疏地标。然后使用基于transformer的神经网络推断出最高尺度的稠密几何线索,包括单目稠密深度和法线。有了初始位姿、相机捕捉的单目图像和粗略的稠密几何先验,NeRF-VO就能有效优化隐式表示三维场景的神经辐射场。通过最小化捕捉到的图像和预测的稠密几何线索与神经辐射场生成的渲染图之间的差异,就能恢复场景的精确位姿和稠密几何图形。因此,本文提出的NeRF-VO由三个主要部分组成:稀疏视觉跟踪前端、稠密几何增强模块和基于NeRF的稠密建图后端。系统架构如图2所示。

▲图2|NeRF-VO系统架构©️【深蓝AI】编译
▲图2|NeRF-VO系统架构©️【深蓝AI】编译

3. 相关工作

■3.1 基于学习的视觉追踪

本文的工作重点是使用来自校准摄像机的 RGB 图像序列进行单目视觉里程测量,该技术可估算出每个输入帧的摄像头位置和方向。与 SLAM 不同的是,视觉里程计侧重于连续帧之间的局部一致性,而不包括 SLAM 的闭环优化或全局调整。最近,VO 方法已从传统的手工特征检测和匹配模块发展到基于深度学习的方法,从而提高了准确性和鲁棒性。其中,DROIDSLAM和DPVO是两个值得关注的作品,它们利用神经网络预测连续图像之间的光流,并迭代更新相机位姿。DPVO是一般SLAM系统前端的基础,因为它既高效又准确。

■3.2 稠密视觉SLAM

稠密视觉SLAM的目的是构建环境的稠密3D表示,而不是稀疏的3D地标。在第一个实时稠密视觉工作 DTAM之后,又提出了许多方法,主要是利用单目深度预测的方法。这些工作中选择的场景表示也从体积表示发展到低维潜在表示和集成预训练深度估计器。在这项工作中,本文选择体积神经辐射场作为表征,因为它具有显著的光度和几何精度。

■3.3 基于NeRF的SLAM

最近,许多工作提出将基于 NeRF的神经隐式表征集成到 SLAM 中。一般来说,现有方法可分为单阶段和双阶段方法。双阶段方法使用现有的SLAM算法作为跟踪模块来估算深度图和摄像机位姿,然后将这些估算作为监督信号来优化隐式神经表征,OrbeezSLAM和NeRF-SLAM等早期方法证明了这种组合的有效性。这一方向的最新进展是进一步引入了以视图为中心的隐函数、全局闭环和单目深度先验,以提高位姿估计精度和稠密建图质量。iMAP和NICE-SLAM利用RGB-D数据为这一方向奠定了基础。随后的工作旨在增强场景表示、引入隐式语义编码和整合惯性测量。在这些工作中,NICERSLAM和 DIM-SLAM仅使用单目图像执行稠密SLAM。NICER-SLAM以高保真场景重建和新颖视图合成为目标,通过大量的优化和各种损失来实现,但不适合实时应用。

4. 稀疏视觉位姿追踪

本文采用深度补丁视觉测距(DPVO)算法作为跟踪前端。DPVO 是一种基于学习的稀疏单目、基于学习的算法,可估计摄像机位姿和每个关键帧中一组补丁的稀疏深度。

■4.1 Patch Graph:

给定RGB帧序列后,DPVO会在每个关键帧随机采样一组大小为 s s s K K K个正方形补丁,并将它们添加到连接补丁和帧的双向补丁图中。例如,取自于第 i i i帧的第 k k k个方块补丁可以表示为 P k i = [ u , v , l , d ] T P_k^i = [u, v, l, d]^T Pki=[u,v,l,d]T,并且通过边与 i i i帧周围的所有帧相连接。 u , v u,v u,v标表示像素坐标, d d d表示逆深。这一补丁假定每个补丁的深度均匀一致,则重投影的定义为:

P k i j ∼ K T j T i − 1 P k i P_ {k}^ {ij}\sim KT_ {j}T_ {i}^ {-1}P_ {k}^ {i} PkijKTjTi1Pki

其中, K K K是摄像机校准矩阵, T i ∈ S E ( 3 ) T_i \in SE(3) TiSE(3)表示第 i i i帧的世界到摄像机变换。

■4.2 可微调的集束调整:

DPVO 的关键部分是其可变位姿和深度更新算子,递归神经网络对具有一组边缘 E E E的光斑图进行操作,同时为每条边缘 ( k , i , j ) ∈ E (k,i,j) \in E (k,i,j)E(光斑-帧对)保持一个隐藏状态,并为光斑中心的每次重投影预测一个二维校正向量 δ δ δ,同时预测一个相应的置信度权重 ψ ψ ψ。通过非线性最小二乘优化,将光流校正作为迭代更新帧位姿和光斑深度的约束条件,进行集束调整。光束调整的成本函数为:
∑ ( k , i , i ) ∈ ε ∣ K T j T i − 1 K − 1 P k i → − [ P k → i + s k i ] ψ k i j 2 \sum\limits_{(k,i,i) \in \varepsilon} |KT_ {j} T_ {i}^ {-1} K^ {-1}\overrightarrow {Pk_ {i}} - [\overrightarrow {P_ {k}}^ {i}+s_ {k}^ {i}]^ {2}_ {\psi_k^{ij}} (k,i,i)εKTjTi1K1Pki [Pk i+ski]ψkij2←如公式未显示完整,左右滑动即可查看→

DPVO的光束调整步骤是可微分的,递归神经网络在一组地面实况位姿和相应的地面实况光流的基础上进行训练,以监督位姿估计和光流校正。

5. 神经隐式稠密建图

如图2系统概述所示,上述视觉跟踪前端的关键帧随后由我们的稠密几何增强系统进行处理,并纳入NeRF优化后端。

■5.1 尺度对齐:

由于稀疏深度和稠密深度都是完全基于 RGB 输入进行预测的,因此它们的深度分布相对于度量深度和相互之间都是偏斜的。然而,下游稠密建图需要统一尺度的深度图和摄像机位姿。因此,我们引入了一个从稠密到稀疏的比例对齐程序,将每个关键帧的预测稠密深度图与稀疏补丁深度对齐。假设稀疏深度 D s ∼ N ( μ s , σ s 2 ) D_s \sim N(\mu_s, \sigma_s^2) DsN(μs,σs2)和稠密深度 D d ∼ N ( μ d , σ d 2 ) D_d \sim N(\mu_d,\sigma_d^2) DdN(μd,σd2),我们通过以下方法计算对齐的稠密深度:

D d ′ = α D d + β 1 , D '_ {d} = \alpha D_ {d} + \beta 1, Dd=αDd+β1,其中, α α α β β β是比例值和移动值,定义为:
α = σ s σ ^ d , β = μ d ( μ s μ ^ d − α ) \alpha= \frac{\sigma_{s}}{ \hat{\sigma}_{d} }, \beta= \mu_{d}( \frac{\mu_{s}}{ \hat{\mu}_{d} }-\alpha) α=σ^dσs,β=μd(μ^dμsα)其中 μ ^ d \hat{\mu} _d μ^d σ ^ d \hat{\sigma}_d σ^d是标准均值和标准差,提取自像素坐标 D s D_s Ds时的稠密深度为 D d D_d Dd稀疏化之后的深度 D d ^ \hat{D_d} Dd^

■5.2 位姿和稠密地图的联合优化:

由于关键帧的摄像机位姿 T c T_c Tc参与了光线采样,因此可以与NeRF场景表示联合优化。因此,我们使用四种损失的加权来优化场景表示和MLP的可学习参数 θ \theta θ以及摄像机位姿 T c T_c Tc。我们的颜色损失定义为渲染的彩色图像与地面真实RGB输入之间的均方误差,类似于 :
L r g b ( T C , θ ) = ∑ ( u , υ ) ∈ B ∣ ∣ C u v − C ˘ u v ( T c , θ ) ∣ ∣ 2 2 , L_ {rgb} ( T_ {C} ,\theta)= \sum\limits_{(u,\upsilon) \in B} ||C_{uv} - \breve{C}_{uv} ( T_ {c} , \theta )||_ {_ {2}}^ {2} , Lrgb(TC,θ)=(u,υ)B∣∣CuvC˘uv(Tc,θ)22,←如公式未显示完整,左右滑动即可查看→

其中, C ˘ u v \breve{C}_{uv} C˘uv C u v C_{uv} Cuv分别是颜色渲染的和全局真值, ( u , v ) (u,v) (u,v)是线束 R R R的像素坐标。

为了消除深度估算和配准过程中的噪声和偏差,我们采用了不确定深度感知损失,其目的是最小化每条光线上所有样本的假定高斯分布深度值与我们配准的密集深度图 D d ′ D'_d Dd之间的KL散度:
L d ( T c , θ ) = ∑ ( u , v ) ∈ B ∑ t ∈ R u v l o g ( T t ( T C , θ ) ) ⋅ e x p ( − ( d t − D d u v ′ ) 2 2 σ ^ 2 △ d t ) L_d(T_c, \theta) = \sum\limits_{(u,v)\in B} \sum\limits_{t\in R_{uv}}log(T_t(T_C,\theta)) \cdot exp(- \frac{(d_t-D^{'}_{d_{uv}})^2}{2 \hat{\sigma}^2 }\triangle d_t ) Ld(Tc,θ)=(u,v)BtRuvlog(Tt(TC,θ))exp(2σ^2(dtDduv)2dt)←如公式未显示完整,左右滑动即可查看→

其中, t t t是沿射线 R u v R_{uv} Ruv的第 t t t个样本, d t d_t dt是样本 t t t沿射线 R u v R_{uv} Ruv距离摄像机中心的距离, Δ d t \Delta d_t Δdt是取样距离 d t + 1 d_{t+1} dt+1 d t d_t dt之间的距离, Δ d t = d t + 1 − d t \Delta d_t=d_{t+1}-d_t Δdt=dt+1dt σ σ σ是估计深度 D d u v ′ D'_{d_{uv}} Dduv的估计方差(我们使用0.001经验值), T t ( T C , θ ) T_t(T_C, \theta) Tt(TC,θ)是直到采样时沿射线 R u v R_{uv} Ruv的累积透射率,计算公式如下:

T t ( T C , θ ) = e x p ( − ∑ s < t ρ s ( T C , θ ) Δ d s ) T_ {t} ( T_ {C} ,\theta)=exp (- \sum\limits_{s<t} \rho _ {s} ( T_ {C} ,\theta) \Delta d_ {s}) Tt(TC,θ)=exp(s<tρs(TC,θ)Δds)←左右滑动查看完整公式→

其中, ρ s ( ⋅ ) \rho_s(\cdot) ρs()是样本 s s s的估计密度。

法线一致性损失函数,它综合了渲染表面法线 N ˘ u v ∈ R 3 \breve{N}_{uv}\in R^3 N˘uvR3与像素点 ( u , v ) (u, v) (u,v)处单深网络 N u v N_{uv} Nuv预测的法线之间的 L 1 L_1 L1距离和余弦距离:

L n ( T C , θ ) = ∑ ( u , v ) ∈ B ∣ ∣ N u v − N ˘ u v ( T C , θ ) ∣ ∣ 1 + ∣ ∣ 1 − N u v T N ˘ u v ( T C , θ ) ∣ ∣ 1 L_n(T_C, \theta) = \sum\limits_{(u,v) \in B}||N_{uv}- \breve{N}_{uv}(T_C, \theta)||_1+||1-N^T_{uv} \breve{N}_{uv}(T_C, \theta)||_1 Ln(TC,θ)=(u,v)B∣∣NuvN˘uv(TC,θ)1+∣∣1NuvTN˘uv(TC,θ)1←如公式未显示完整,左右滑动即可查看→

其中, N u v T N ˘ u v N^T_{uv} \breve{N}_{uv} NuvTN˘uv表面余弦相似度。

最后,我们对体积密度添加两个正则化项。引入的失真和推荐损失可用于防止漂移和背景失真,并指导提案采样器的优化:
L r o g = L p r o p + 0.002 L d i s t L_{rog} = L_{prop}+0.002L_{dist} Lrog=Lprop+0.002Ldist最后,完整的损失函数表示为:
L = L r g b + 0.001 L d + 0.00001 L n + L r o g L = L_{rgb}+0.001L_{d}+0.00001L_n+L_{rog} L=Lrgb+0.001Ld+0.00001Ln+Lrog←如公式未显示完整,左右滑动即可查看→

6. 实验

实验环节部分,在各种真实和合成的室内数据集上,使用神经网络隐式表征对最先进的单目SLAM方法进行了定性和定量评估,并对本文方法的关键设计选择进行了广泛的消融实验研究。

■6.1 验证数据集

本文在四个数据集上对上述方法进行了评估:

1)Replica:一个包含高质量室内场景重建的合成数据集,本文中使用其生成的八个轨迹数据。

2)ScanNet:一个真实世界的数据集,其中的RGB-D序列是使用手持设备上的 RGB-D 传感器捕获的,地面真实轨迹是使用BundleFusion计算的。

3)7-Scenes:真实世界数据集,提供Kinect传感器捕获的RGB-D帧轨迹,使用KinectFusion计算地面真实轨迹和稠密3D模型。

4)还在一个自我捕捉的数据集上对本文的方法进行了评估,该数据集由在会议室中使用RealSense传感器捕捉的一组四个RGB-D轨迹组成。

■6.2 指标

在三项任务中对本文的方法进行了评估:摄像机跟踪、新颖视图合成和三维稠密重建。在摄像机跟踪方面,使用 Kabsch-Umeyama算法将估计轨迹与地面实况对齐,并使用绝对轨迹误差(ATE RMSE)评估精度。对于新颖的视图合成,使用峰值信噪比(PSNR)、结构相似性(SSIM)和学习感知图像补丁相似性(LPIPS)来评估渲染RGB图像的质量。为了计算这些指标,本文的方法沿着轨迹选择了125个等间距的RGB帧。为了呈现这些评估帧的精确视图,将地面实况相机位姿转换为隐式函数的坐标系。对于三维重建,使用的是准确度、完成度和召回率这些指标。

▲表1|Replica数据集上相机追踪性能©️【深蓝AI】编译▲表1|Replica数据集上相机追踪性能©️【深蓝AI】编译

■6.3 相机追踪

表1描述了Replica数据集上的摄像机跟踪结果,表明本文的模型在所有场景中实现了最低的平均 ATE RMSE。在完全相同的条件下对其他方法进行了评估,结果表明, DIMSLAM和NeRF-SLAM在某些场景中表现较好,但在其他场景中性能却有所下降,而本文的方法在所有场景中都保持相对稳定。

▲表2|ScanNet数据集上相机追踪性能©️【深蓝AI】编译▲表2|ScanNet数据集上相机追踪性能©️【深蓝AI】编译

表2 描述了ScanNet中六个常用测试场景的跟踪精度。本文的方法优于其他采用的视觉里程测量方法,这些方法的跟踪模块只应用了由场景表征施加的隐式 “局部环路闭合”(L-LC),如 HI-SLAM(VO)、DROID-VO、NeRF-SLAM 和 DPVO。总的来说,可以得出的结论是,包含全局环路闭合 (G-LC) 和全场景全局束调整的完整 SLAM 方法在这些大型场景中表现更好。

▲表3|定制数据集上相机追踪性能©️【深蓝AI】编译▲表3|定制数据集上相机追踪性能©️【深蓝AI】编译

表3 描述了本文的方法和NeRF-SLAM,以及它们各自的跟踪模块在自定义数据集上的性能,表明本文的模型具有卓越的相机跟踪性能。

■6.4 3D重建

▲表4|Replica数据集上3D重建结果©️【深蓝AI】编译▲表4|Replica数据集上3D重建结果©️【深蓝AI】编译

表4 描述了本文的模型在Replica数据集上的3D重建性能优于所有同类算法。在四个场景中,本文的方法在准确度、完成度和召回率方面平均优于SOTA。在office0和office1场景中表现较差的原因是场景的特殊性导致单目深度预测复杂化:这些场景中的墙画细节丰富,导致单目深度估计出现伪影。注意到NICER-SLAM也是这种情况,它同样依赖于单目深度预测网络。图3提供了3D重建的定性比较。

▲图3|3D重建的定性比较©️【深蓝AI】编译▲图3|3D重建的定性比较©️【深蓝AI】编译

表5 描述了本文的方法和NeRF-SLAM在三个真实世界数据集上的3D重建性能:7-Scenes、ScanNet和本文的自定义数据集。

在这里插入图片描述▲表5|三个真实世界数据集上的3D重建性能©️【深蓝AI】编译

■6.5 新颖试图合成

▲图4|场景合成图像比对©️【深蓝AI】编译▲图4|场景合成图像比对©️【深蓝AI】编译

在Replica上评估了本文的新颖视图合成模型,如表6所示。结果表明,本文的模型在不同指标上的表现参差不齐。NICER-SLAM在SSIM上表现最佳,而 NeRF-SLAM和本文的方法几乎不相上下。NeRF-SLAM在PSNR方面表现最佳,而本文的方法在大多数场景中几乎不相上下。从图4的定性结果中也可以看出这一点,渲染后的图像和地面实况几乎没有区别。

▲表6|Replica上评估新颖视图合成模型©️【深蓝AI】编译▲表6|Replica上评估新颖视图合成模型©️【深蓝AI】编译

7. 总结

总之,本文介绍了NeRF-VO,这是一种基于深度学习的神经SLAM系统,它采用稀疏视觉里程计进行高效位姿估计,并采用NeRF场景表示法进行高精度稠密建图。与SOTA方法相比,NeRF-VO展示了卓越的几何和光度重建能力,同时在同类方法中保持了最低的跟踪延迟和GPU内存消耗。

编译|匡吉
审核|Los

请移步微信公众号【深蓝AI】关注更多自动驾驶、机器人与AI行业的前沿科技论文解读与干货文章。

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nerf-simple是基于PyTorch框架实现的NERF(神经辐射场)模型的简单版本。NERF是一种用于生成高质量逼真图像的深度学习模型,它通过对场景中各个点的辐射值进行建模,从而实现精确的三维重建和渲染。 在NERF模型中,神经辐射场是核心概念之一。它是一个由多个隐藏层组成的神经网络,用于估计场景中每个点的辐射值。这里的辐射值通常表示像素的RGB颜色值或光强度。 nerf-simple通过使用PyTorch框架的张量操作和自动微分功能来实现NERF模型。首先,我们需要定义一个神经网络模型,包括隐藏层的数量和大小。这个模型可以基于现有的PyTorch模块,如nn.Linear和nn.ReLU,以便构建非线性变换和特征提取。 然后,我们需要定义训练过程,实现数据加载、优化器设置和损失函数计算等步骤。训练数据通常包括一系列场景中的图像及其对应的相机和深度信息。 在模型训练完成后,我们可以使用训练好的神经网络来生成逼真的图像。通过对场景中每个像素点的辐射值进行预测,我们可以还原出场景的三维形状和纹理信息,并最终渲染出高质量的图像。 总结来说,nerf-simple是一个使用PyTorch实现的简单版本NERF模型,它通过神经辐射场来估计场景中每个像素点的辐射值,从而实现精确的三维重建和渲染。通过定义神经网络模型、训练过程和图像生成过程,我们可以利用这个模型生成逼真的图像。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值