论文阅读《LSD-SLAM: Large-Scale Direct Monocular SLAM》

摘要

我们提出了一种直接(无特征)单目SLAM算法,与目前最先进的直接方法相比,该算法允许构建大尺度且一致的环境地图。采用基于直接图像对齐的高精度位姿估计方法,同时利用关键帧的位姿图和相应的半稠密深度图,实时重建三维环境。这是通过小基线双目相机滤波得到的。对尺度漂移的解析表示允许该方法用于挑战性的序列,包括那些场景中尺度发生较大变化的序列。本文有两个创新点:(1)在 s i m ( 3 ) \mathfrak{sim(3)} sim(3)上运行的一种新的直接跟踪方法,从而明确地检测尺度漂移;(2)一个优雅的概率解决方案,将带噪声的深度值纳入跟踪。由此产生的直接单目SLAM系统在CPU上实时运行。

1 介绍

实时单目同时定位和建图(SLAM)和三维重建已经成为越来越受欢迎的研究课题。两个主要原因是:(1)它们在机器人领域中的应用,特别是在无人机(UAV)导航方面的应用;(2)增强现实和虚拟现实应用正在慢慢进入大众市场。

单目SLAM的主要好处之一,也是最大的挑战之一,是其固有的尺度模糊。真实世界的尺度无法被观测到,并且会随着时间的推移而漂移,这是主要的误差来源之一。它的优点是可以在不同规模的环境之间无缝切换,例如室内的办公桌环境和大规模的室外环境。另一方面,具备尺度的传感器,如深度相机或双目相机,能够提供可靠测量的范围有限,因此不能提供这种灵活性。

1.1 相关工作

A 基于特征的方法

基于特征的方法(包括基于滤波的和基于关键帧的)的基本思想是将整个问题,即从图像中估计几何信息,分解为两个连续的步骤。首先,从图像中提取一组特征观测。其次,相机的位置和场景的几何作为这些特征观测的函数被计算。

虽然这种解耦简化了整个问题,但它也有一个重要的限制。只有符合特征类型的信息才能被使用。特别是,当使用关键点时,包含直线边缘或曲线边缘的信息,尤其是在人造环境中构成图像的很大一部分,将会被丢弃。过去已经有几种方法通过包括基于边缘甚至基于区域的特征来弥补这一缺陷。然而,由于高维特征空间的估计繁琐,在实际应用中很少使用。为了获得稠密重建,使用多视图几何利用估计的相机位姿连续地重建出稠密地图。

B 直接方法

直接视觉里程计(VO)方法绕过这一限制,直接优化图像的灰度来获得几何,该方法可以使用图像中的所有信息。除了更高的准确性和鲁棒性,特别是在关键点很少的环境中,该方法可以提供更多关于环境几何的信息,这对机器人或增强现实应用非常有价值。

虽然RGB-D相机或双目传感器的直接图像对齐算法已经被很好地确定,但直到最近才提出单目直接VO算法。在文献[20,21,24]中,精确的和完全稠密的深度图使用变分公式计算,但这该方法的计算量很大,需要最先进的GPU实时运行。在文献[9]中,提出了一种半稠密深度滤波公式,大大降低了计算复杂度,这种方法允许在CPU甚至是现代智能手机上实时运行。通过将直接跟踪与关键点相结合,文献[10]在嵌入式平台上实现了高帧率实时运行。然而,所有这些方法都是纯的视觉里程计,它们只在局部跟踪相机的运动,并不能建立一个一致的、全局的和带有回环的环境地图。

C 位姿图优化

这是一种著名的SLAM技术,用于构建一致的全局地图。世界被表示为由位姿约束连接的若干关键帧,可以使用通用的图优化框架(如g2o)进行优化。

在文献[14]中,提出了一种基于位姿图的RGB-D SLAM方法,该方法引入了几何误差,允许在纹理较少的场景中进行跟踪。为了解决单目SLAM中产生的尺度漂移问题,文献[23]提出了一种基于关键点的单目SLAM系统,该系统将相机位姿表示为3D相似变换,而不是刚体运动。

1.2 贡献和大纲

我们提出了一种大规模直接单目SLAM(LSD-SLAM)方法,该方法不仅可以局部跟踪相机的运动,还可以建立一致的大规模的环境地图(见图1和图2)。该方法使用直接图像对齐,并结合文献[9]中首次提出的基于滤波的半稠密深度图估计。全局地图用位姿图的形式表示,关键帧作为顶点,3D相似变换作为边,优雅地融入环境的尺度比例,并允许检测和修正累积漂移。该方法在CPU上实时运行,甚至在现代智能手机上作为里程计运行。本文的主要贡献如下。(1)一种用于大规模直接的单目SLAM的框架,特别是一种新的尺度感知图像对齐算法,可以直接估计两个关键帧之间的相似性变换 ξ ∈ s i m ( 3 ) \xi \in \mathfrak{sim}(3) ξsim(3)。(2)概率一致地将估计深度的不确定性纳入跟踪。

在这里插入图片描述

图1 LSD-SLAM:LSD-SLAM生成一致的全局地图,使用直接图像对齐和概率半稠密深度地图来代替关键点。顶部:实时生成的中等轨迹的所有关键帧的累积点云(来自手持单目相机)。底部:带有彩色编码的半稠密逆深度图的关键帧。参见补充视频。

在这里插入图片描述

图2 除了精确和半稠密的三维重建,LSD-SLAM还可以估计关联的不确定性。从左到右:以不同的最大方差限制累积点云。请注意重建明显变得更密集,但同时也包含更多的噪声。

2 初步准备(preliminaries)

在本章中,我们对相关的数学概念和符号作了简要的总结。特别地,我们将位姿用李代数表示(第2.1节),推导出李流上直接图像对齐的加权最小二乘(第2.2节),并简要介绍不确定性的传播(第2.3节)。

符号。我们用粗体大写字母( R \pmb{R} RRR)表示矩阵,用粗体小写字母表示向量( ξ \pmb{\xi} ξξξ)。矩阵的第 n n n行记作 [ ⋅ ] n [\cdot]_n []n。图像记作 I :   Ω → R I:\ \Omega \rightarrow \mathbb{R} I: ΩR,其中 Ω ⊂ R 2 \Omega \subset \mathbb{R}^2 ΩR2为归一化的像素坐标, R \mathbb{R} R表示一维实数。像素级逆深度图记作 D :   Ω → R + D:\ \Omega \rightarrow \mathbb{R}^+ D: ΩR+。像素级逆深度方差图记作 V :   Ω → R + V: \ \Omega \rightarrow \mathbb{R}^+ V: ΩR+。在整篇文章中,我们使用 d d d来表示路标点深度 z z z的倒数,即 d = z − 1 d=z^{-1} d=z1

2.1 3D刚体变换和相似变换

3D刚体变换。三维刚体变换 G ∈ S E ( 3 ) \pmb{G} \in \mathrm{SE}(3) GGGSE(3)表示三维的旋转和平移,记作
G = ( R t 0 1 )    R ∈ S O ( 3 ) ,   t ∈ R 3 (1) \pmb{G}=\begin{pmatrix} \pmb{R} & \pmb{t} \\ \pmb{0} & 1 \end{pmatrix} \ \ \pmb{R} \in \mathrm{SO}(3), \ \pmb{t}\in \mathbb{R}^3 \tag{1} GGG=(RRR000ttt1)  RRRSO(3), tttR3(1)
在优化过程中,需要一个相机位姿的最小表示,它由相关李代数的对应元素 ξ ∈ s e ( 3 ) \pmb{\xi} \in \mathfrak{se}(3) ξξξse(3)给出。李代数通过指数映射转换为李群,即 G = e x p s e ( 3 ) ( ξ ) \pmb{G}=\mathrm{exp}_{se(3)}(\pmb{\xi}) GGG=expse(3)(ξξξ)。该映射的逆变换为 ξ = l o g S E ( 3 ) ( G ) \pmb{\xi}=\mathrm{log}_{SE(3)}(\pmb{G}) ξξξ=logSE(3)(GGG)。此外,我们使用 s e ( 3 ) \mathfrak{se}(3) se(3)中的元素来表示位姿,直接写作向量 ξ ∈ R 6 \pmb{\xi}\in \mathbb{R}^6 ξξξR6。从坐标系 i i i移动一个点到坐标系 j j j的变换记作 ξ j i \pmb{\xi}_{ji} ξξξji。为方便起见,我们将位姿连接操作符 ∘ : s e ( 3 ) × s e ( 3 ) → s e ( 3 ) \circ: \mathfrak{se}(3) \times \mathfrak{se}(3) \rightarrow \mathfrak{se}(3) :se(3)×se(3)se(3)定义为,
ξ k i : = ξ k j ∘ ξ j i : = l o g S E ( 3 ) ( e x p s e ( 3 ) ( ξ k j ) ⋅ e x p s e ( 3 ) ( ξ j i ) ) (2) \pmb{\xi}_{ki} :=\pmb{\xi}_{kj} \circ \pmb{\xi}_{ji} := \mathrm{log}_{SE(3)}\big( \mathrm{exp}_{se(3)}(\pmb{\xi}_{kj}) \cdot \mathrm{exp}_{se(3)}(\pmb{\xi}_{ji}) \big) \tag{2} ξξξki:=ξξξkjξξξji:=logSE(3)(expse(3)(ξξξkj)expse(3)(ξξξji))(2)
进一步,我们定义三维投影warp函数 ω \omega ω,它将图像中的一点 p \pmb{p} ppp和其逆深度 d d d通过 ξ \pmb{\xi} ξξξ变换到相机坐标系,
ω ( p , d , ξ ) : = ( x ′ / z ′ y ′ / z ′ 1 / z ′ )    w i t h    ( x ′ y ′ z ′ 1 ) = e x p s e ( 3 ) ( ξ ) ( p x / d p y / d 1 / d 1 ) (3) \omega(\pmb{p},d,\xi):=\begin{pmatrix} x'/z' \\ y' / z' \\ 1/z' \end{pmatrix} \ \ with \ \ \begin{pmatrix} x' \\ y' \\ z' \\ 1 \end{pmatrix} = \mathrm{exp}_{se(3)}(\pmb{\xi})\begin{pmatrix} \pmb{p}_x/d \\ \pmb{p}_y/d \\ 1/d\\ 1 \end{pmatrix} \tag{3} ω(ppp,d,ξ):=x/zy/z1/z  with  xyz1=expse(3)(ξξξ)pppx/dpppy/d1/d1(3)

3D相似变换。一个三维相似变换 S ∈ S i m ( 3 ) \pmb{S} \in Sim(3) SSSSim(3)包括旋转、缩放和平移。
S = ( s R t 0 1 )    w i t h    R ∈ S O ( 3 ) ,   t ∈ R 3   a n d   s ∈ R + (4) \pmb{S}=\begin{pmatrix} s\pmb{R} & \pmb{t} \\ \pmb{0} & 1 \end{pmatrix} \ \ with \ \ \pmb{R} \in SO(3), \ \pmb{t}\in \mathbb{R}^3 \ and \ s\in \mathbb{R}^+ \tag{4} SSS=(sRRR000ttt1)  with  RRRSO(3), tttR3 and sR+(4)
对于刚体变换,其最小表示是由相关李代数 ξ ∈ s i m ( 3 ) \pmb{\xi} \in \mathfrak{sim}(3) ξξξsim(3)给出的,现在它有一个额外的自由度,即 ξ ∈ R 7 \pmb{\xi} \in \mathbb{R}^7 ξξξR7。指数映射和对数映射,位姿连接(concatenation)和投影warp函数可以类似地定义为 s e ( 3 ) \mathfrak{se}(3) se(3)的情况,进一步的细节见文献[23]。

2.2 李代数流形上的加权高斯牛顿优化方法

利用高斯牛顿法使两幅图像的光度误差最小化,
E ( ξ ) = ∑ i ( I r e f ( p i ) − I ( ω ( p i , D r e f ( p i ) , ξ ) ) ) 2 ⏟ = : r i 2 ( ξ ) (5) E(\pmb{\xi})=\sum_i \underbrace{\big( I_{ref}(\pmb{p}_i) - I(\omega(\pmb{p}_i, D_{ref}(\pmb{p}_i), \pmb{\xi})) \big)^2}_{=:r_i^2(\xi)} \tag{5} E(ξξξ)=i=:ri2(ξ) (Iref(pppi)I(ω(pppi,Dref(pppi),ξξξ)))2(5)
假设存在独立同分布的高斯残差,上式给出了对 ξ \pmb{\xi} ξξξ的最大似然估计。我们使用左乘公式:从初始估计 ξ ( 0 ) \pmb{\xi}^{(0)} ξξξ(0)开始,在每次迭代中,通过求解 E E E的高斯牛顿二阶近似的最小值来计算左乘增量 δ ξ ( n ) \delta \pmb{\xi}^{(n)} δξξξ(n)
δ ξ ( n ) = − ( J T J ) − 1 J T r ( ξ ( n ) )    w i t h    J = ∂ r ( ϵ ∘ ξ ( n ) ) ∂ ϵ ∣ ϵ = 0 (6) \delta \pmb{\xi}^{(n)} = -(\pmb{J}^T\pmb{J})^{-1}\pmb{J}^T\pmb{r}(\pmb{\xi}^{(n)}) \ \ with \ \ \pmb{J} = \frac{\partial \pmb{r}(\pmb{\epsilon} \circ \pmb{\xi}^{(n)})}{\partial \pmb{\epsilon}} \bigg|_{\epsilon=0} \tag{6} δξξξ(n)=(JJJTJJJ)1JJJTrrr(ξξξ(n))  with  JJJ=ϵϵϵrrr(ϵϵϵξξξ(n))ϵ=0(6)
其中 J \pmb{J} JJJ是堆叠残差向量 r = ( r 1 , ⋯   , r n ) T \pmb{r} = (r_1,\cdots,r_n)^T rrr=(r1,,rn)T对左乘增量 ϵ \pmb{\epsilon} ϵϵϵ的导数, J T J \pmb{J}^T\pmb{J} JJJTJJJ是高斯牛顿法中 E E E的海塞矩阵近似。然后通过与计算出来的更新相乘得到新的估计,
ξ ( n + 1 ) = δ ξ ( n ) ∘ ξ ( n ) (7) \pmb{\xi}^{(n+1)}=\delta \pmb{\xi}^{(n)} \circ \pmb{\xi}^{(n)} \tag{7} ξξξ(n+1)=δξξξ(n)ξξξ(n)(7)
为了对来自遮挡或反射的异常值具有鲁棒性,研究者提出了不同的加权方案,从而得到一个迭代重加权的最小二乘问题。在每次迭代中,计算一个权值矩阵 W = W ( ξ ( n ) ) \pmb{W}=\pmb{W}(\pmb{ξ}^{(n)}) WWW=WWW(ξξξ(n)),减小较大残差的权重。迭代求解的误差函数为,
E ( ξ ) = ∑ i w i ( ξ ) r i 2 ( ξ ) (8) E(\pmb{\xi})=\sum_iw_i(\pmb{\xi})r_i^2(\pmb{\xi}) \tag{8} E(ξξξ)=iwi(ξξξ)ri2(ξξξ)(8)
更新计算为,
δ ξ ( n ) = − ( J T W J ) − 1 J T W r ( ξ ( n ) ) (9) \delta \pmb{\xi}^{(n)}=-(\pmb{J}^T\pmb{W}\pmb{J})^{-1}\pmb{J}^T\pmb{W}r(\pmb{\xi}^{(n)}) \tag{9} δξξξ(n)=(JJJTWWWJJJ)1JJJTWWWr(ξξξ(n))(9)
假设残差是独立的,最后一次迭代的海塞矩阵的逆 ( J T W J ) − 1 (\pmb{J}^T\pmb{WJ})^{-1} (JJJTWJWJWJ)1是左乘误差的协方差 ∑ ξ \pmb{\sum}_{\xi} ξ估计,
ξ ( n ) = ϵ ∘ ξ t r u e    w i t h    ϵ ∼ N ( 0 , Σ ξ ) (10) \pmb{\xi}^{(n)} = \pmb{\epsilon} \circ \pmb{\xi}_{true} \ \ with \ \ \pmb{\epsilon} \sim \mathcal{N}(0,\pmb{\Sigma}_{\xi}) \tag{10} ξξξ(n)=ϵϵϵξξξtrue  with  ϵϵϵN(0,ΣΣΣξ)(10)
实际上,残差是高度相关的,因此 Σ ξ Σ_ξ Σξ只是一个下界——但它包含了关于不同自由度上噪声之间相关性的有价值的信息。注意,我们遵循左乘法约定,使用右乘法约定可以得到等价的结果。然而,估计的协方差 Σ ξ Σ_ξ Σξ依赖于乘法顺序,当在位姿图优化框架中使用时,必须考虑到这一点。这里使用的左乘法约定与文献[23]一致,而例如,g2o中的默认类型实现却为右乘法约定。

2.3 不确定性的传播

不确定性传播是一种统计工具,用于推导函数 f ( X ) f(\pmb{X}) f(XXX)输出的不确定性,由其输入 X \pmb{X} XXX的不确定性引起。假设 X \pmb{X} XXX为高斯分布,协方差为 Σ X \pmb{Σ_X} ΣXΣXΣX,则 f ( X ) f(\pmb{X}) f(XXX)的协方差可近似(使用f的雅可比矩阵 J f \pmb{J}_f JJJf)为,
Σ f ≈ J f Σ X J f T (11) \pmb{\Sigma}_f \approx \pmb{J}_f \pmb{\Sigma_X}\pmb{J}_f^T \tag{11} ΣΣΣfJJJfΣXΣXΣXJJJfT(11)

3 大尺度直接单目SLAM

我们首先在3.1节中概述了完整的算法,并在3.2节中简要介绍了全局地图的表示。然后在3.3节(跟踪新帧)、3.4节(深度图估计)、3.5节(关键帧到关键帧跟踪)和最后3.6节(地图优化)中描述了算法的三个主要组成部分。

3.1 完整的算法

该算法由跟踪、深度图估计和地图优化三个主要部分组成,如图3所示。

在这里插入图片描述

图3 完整的LSD-SLAM算法概述

跟踪组件持续跟踪新的相机图像。也就是说,它利用前一帧的位姿作为初始化,估计它们相对于当前关键帧的刚体位姿 ξ ∈ s e ( 3 ) \pmb{\xi} \in \mathfrak{se}(3) ξξξse(3)

深度图估计组件使用被跟踪的帧来细化或替换当前关键帧。深度是通过像素级滤波来实现的,再加上文献[9]中提出的交错空间正则化来改进。如果相机移动得太远,一个新的关键帧将从现有的近的关键帧中的点通过投影来初始化。

一旦一个关键帧被替换为跟踪参考,因此它的深度图将不会被进一步细化(refine),它将被地图优化组件合并到全局地图中。为了检测回环和尺度漂移,利用尺度感知估计当前帧到最近关键帧的相似变换 ξ ∈ s i m ( 3 ) \pmb{\xi} \in \mathfrak{sim}(3) ξξξsim(3)

初始化。为了引导LSD-SLAM系统,用随机深度图和大方差初始化第一个关键帧。在最初的几秒钟内,如果相机有足够的平移运动,算法就会“锁定”到特定的配置,并在几个关键帧传播后收敛到正确的深度配置。附件中视频展示了一些例子。对这种不需要专门的初始引导就能收敛的能力进行更加全面的评估超出了本文的范围,并留给以后的工作。

3.2 地图表示

该地图被表示为关键帧的位姿图。每个关键帧 K i \mathcal{K}_i Ki包含相机图片 I i : Ω i → R I_i: \Omega_i\rightarrow \mathbb{R} Ii:ΩiR和逆深度图 D i : Ω D i → R + D_i:\Omega_{D_i}\rightarrow \mathbb{R}^+ Di:ΩDiR+以及逆深度方差 V i : Ω D i → R + V_i:\Omega_{D_i}\rightarrow \mathbb{R}^+ Vi:ΩDiR+。注意,深度图和方差仅为像素的子集定义 Ω D i ⊂ Ω i \Omega_{D_i} \subset \Omega_i ΩDiΩi,包含足够大的灰度梯度附近的所有图像区域,因此是半稠密的。关键帧之间的边包含了相似变换 ξ j i ∈ s i m ( 3 ) \pmb{\xi}_{ji}\in \mathfrak{sim}(3) ξξξjisim(3)的相对对齐,以及相应的协方差矩阵 Σ j i \pmb{\Sigma}_{ji} ΣΣΣji

3.3 跟踪新帧:直接 s e ( 3 ) \mathfrak{se}(3) se(3)图像对齐

从现有的关键帧 K i = ( I i , D i , V i ) \mathcal{K}_i=(I_i,D_i,V_i) Ki=(Ii,Di,Vi)开始,通过最小化方差归一化的光度误差来计算新图像 I j I_j Ij的相对三维位姿 ξ j i ∈ s e ( 3 ) \pmb{\xi}_{ji} \in \mathfrak{se}(3) ξξξjise(3)
E p ( ξ j i ) = ∑ p ∈ Ω D i ∥ r p 2 ( p , ξ j i ) σ r p ( p , ξ j i ) 2 ∥ δ (12) E_p(\pmb{\xi}_{ji})=\sum_{p\in \Omega_{D_i}} \bigg \Vert \frac{r_p^2(p,\xi_{ji})}{\sigma^2_{r_p(p,\xi_{ji})}} \bigg \Vert_\delta \tag{12} Ep(ξξξji)=pΩDiσrp(p,ξji)2rp2(p,ξji)δ(12)
w i t h    r p ( p , ξ j i ) : = I i ( p ) − I j ( ω ( p , D i ( p ) , ξ j i ) ) (13) with \ \ r_p(p,\xi_{ji}) := I_i(p)-I_j(\omega(p,D_i(p), \xi_{ji})) \tag{13} with  rp(p,ξji):=Ii(p)Ij(ω(p,Di(p),ξji))(13)
σ r p ( p , ξ j i ) 2 : = 2 σ I 2 + ( ∂ r p ( p , ξ j i ) ∂ D i ( p ) ) 2 V i ( p ) (14) \sigma^2_{r_p(p,\xi_{ji})}:=2\sigma^2_I+\bigg(\frac{\partial r_p(p,\xi_{ji})}{\partial D_i(p)}\bigg)^2V_i(p) \tag{14} σrp(p,ξji)2:=2σI2+(Di(p)rp(p,ξji))2Vi(p)(14)
其中 ∥ ⋅ ∥ \Vert \cdot \Vert 是Huber范数,
∣ ∣ r 2 ∣ ∣ δ : = { r 2 2 δ      i f   ∣ r ∣ ≤ δ ∣ r ∣ − δ 2      o t h e r w i s e (15) || r^2||_\delta:=\begin{cases} \frac{r^2}{2\delta} \ \ \ \ \mathrm{if}\ |r| \leq \delta \\ \\ |r| - \frac{\delta}{2} \ \ \ \ \mathrm{otherwise} \end{cases} \tag{15} r2δ:=2δr2    if rδr2δ    otherwise(15)
应用于归一化残差。残差方差的计算使用协方差传播,如第2.3节所述,并利用逆深度方差 V i V_i Vi。进一步,我们假设图像灰度为高斯噪声 σ I 2 \sigma_I^2 σI2。如第2.2节所述,使用迭代重加权高斯牛顿优化来实现最小化。

与以前的直接方法相比,本文提出的公式显式地考虑了深度估计上变化的噪声。这与直接的单目SLAM特别相关,不同像素的噪声差异很大,这取决于它们可见时间的长短。这与处理RGB-D数据的方法相反,后者逆深度的不确定性近似恒定。图4显示了这种加权在不同类型的运动中的表现。注意,新图像的深度信息不可知,因此新图像的尺度没有确定,并在 s e \mathfrak{se} se(3)上执行最小化。

在这里插入图片描述

图4 数据归一化。(a)参考图像。(b-d)跟踪图像和残差的逆方差\sigma_{r_p}^{-2}。对于纯旋转,深度噪声对残差噪声没有影响,因此所有归一化因子相同。对于z方向上的平移,深度噪声对图像中心的像素没有影响,而对于x方向上的平移,它只影响x方向上灰度梯度的残差。

3.4 深度图估计

关键帧的选取。如果相机离现有的地图太远,一个新的关键帧将由最近的跟踪图像创建。我们对当前关键帧的相对距离和相对角度进行加权组合,
d i s t ( ξ j i ) : = ξ j i T W ξ j i (16) \mathrm{dist}(\pmb{\xi}_{ji}):=\pmb{\xi}_{ji}^T\pmb{W}\pmb{\xi}_{ji} \tag{16} dist(ξξξji):=ξξξjiTWWWξξξji(16)
其中 W \pmb{W} WWW为包含权值的对角矩阵。请注意,正如在下一节中描述的,对每个关键帧都进行了缩放,使其平均逆深度为1。因此,这个阈值是相对于当前场景尺度而言的,并确保有足够的可能性进行小基线的立体比较。

在这里插入图片描述

图5 sim(3)上直接关键帧对齐。(a)-(c)两个关键帧、深度和深度方差。(d)-(f)光度残差、深度残差和Huber权重,优化前(左)和优化后(右)。

深度图创建。一旦新一帧被选择为关键帧,它的深度图将由前一关键帧中的投影点来初始化,然后按照文献[9]中提出的方法进行一次空间正则化和外点剔除。然后,缩放深度地图,使其平均逆深度为1 。这个缩放系数将直接融入到 s i m \mathfrak{sim} sim(3)相机位姿中。最后,它替换了之前的关键帧,并用于跟踪后续的新帧。

深度图精修(refinement)。利用没有成为关键帧的被跟踪帧细化当前的关键帧。对于期望立体精度足够大的图像区域,执行大量非常有效的小基线立体比较,如文献[9]中所述。结果被合并到现有的深度图中,从而改进它并可能添加新的像素,这是使用文献[9]中提出的滤波方法完成的。

3.5 约束获取:直接 s i m ( 3 ) \mathfrak{sim}(3) sim(3)图像对齐

s i m ( 3 ) \mathfrak{sim}(3) sim(3)上直接图像对齐。与RGB-D SLAM或双目SLAM相比,单目SLAM本质上是尺度模糊的,即真实世界的绝对尺度是不可观测的。在长轨迹上,这会导致尺度漂移,这是误差的主要来源之一。此外,所有距离都只按尺度定义,这导致基于阈值的外点剔除或参数化鲁棒核(如Huber)定义不明确。我们利用场景深度和跟踪精度之间固有的相关性来解决这个问题。每个创建的关键帧的深度图均被缩放,使其平均逆深度为1。作为回报,关键帧之间的边被估计为 s i m ( 3 ) \mathfrak{sim}(3) sim(3)中的元素,优雅地融合了关键帧之间的尺度差异,并且,特别是对于大型回环,允许显式地检测累积的尺度漂移。

为此,我们提出了一种新的方法在 s i m ( 3 ) \mathfrak{sim}(3) sim(3)上进行直接的、尺度漂移感知的图像对齐,该方法用于对齐两个不同尺度的关键帧。除了光度残差 r p r_p rp之外,我们还加入了深度残差 r d r_d rd,它惩罚了关键帧之间的逆深度的标准差,允许直接估计它们之间的尺度变换。被最小化的总误差函数为,
E ( ξ j i ) : = ∑ p ∈ Ω D i ∥ r p 2 ( p , ξ j i ) σ r p ( p , ξ j i ) 2 + r d 2 ( p , ξ j i ) σ r d ( p , ξ j i ) 2 ∥ δ (17) E(\pmb{\xi}_{ji}):=\sum_{p \in \Omega_{D_i}} \bigg \Vert \frac{r_p^2(\pmb{p}, \pmb{\xi}_{ji})}{\sigma^2_{r_p(p,\xi_{ji})}}+\frac{r_d^2(\pmb{p},\pmb{\xi}_{ji})}{\sigma^2_{r_d(p,\xi_{ji})}} \bigg \Vert_\delta \tag{17} E(ξξξji):=pΩDiσrp(p,ξji)2rp2(ppp,ξξξji)+σrd(p,ξji)2rd2(ppp,ξξξji)δ(17)
其中光度残差 r p 2 r_p^2 rp2及其方差 σ r p 2 \sigma_{r_p}^2 σrp2由公式(13)和公式(14)分别给出。而深度残差及其方差的计算为,
r d ( p , ξ j i ) : = [ p ′ ] 3 − D j ( [ p ′ ] 1 , 2 ) (18) r_d(\pmb{p}, \pmb{\xi}_{ji}):=[\pmb{p}']_3-D_j([\pmb{p}']_{1,2}) \tag{18} rd(ppp,ξξξji):=[ppp]3Dj([ppp]1,2)(18)
σ r d ( p , ξ j i ) 2 : = V j ( [ p ] 1 , 2 ′ ) ( ∂ r d ( p , ξ j i ) ∂ D j ( [ p ′ ] 1 , 2 ) ) 2 + V i ( p ) ( ∂ r d ( p , ξ j i ) ∂ D i ( p ) ) 2 (19) \sigma_{r_d(p,\xi_{ji})}^2:=V_j([\pmb{p}]'_{1,2}) \bigg( \frac{\partial r_d(\pmb{p}, \pmb{\xi}_{ji})}{\partial D_j([\pmb{p}']_{1,2})} \bigg)^2 + V_i(\pmb{p})\bigg( \frac{\partial r_d(\pmb{p}, \pmb{\xi}_{ji})}{\partial D_i(\pmb{p}) } \bigg)^2 \tag{19} σrd(p,ξji)2:=Vj([ppp]1,2)(Dj([ppp]1,2)rd(ppp,ξξξji))2+Vi(ppp)(Di(ppp)rd(ppp,ξξξji))2(19)
其中 p ′ : = ω s ( p , D i ( p ) , ξ j i ) \pmb{p}':=\omega_s(\pmb{p}, D_i(\pmb{p}), \pmb{\xi}_{ji}) ppp:=ωs(ppp,Di(ppp),ξξξji)表示被变换之后的点。请注意,Huber范数被应用于归一化的光度残差和深度残差之和——这解释了一个事实,如果一个是异常值,另一个通常也是异常值。注意,对于 s i m ( 3 ) \mathfrak{sim}(3) sim(3)上的跟踪,需要包含深度误差,因为仅依靠光度误差并不能约束尺度。利用迭代重加权高斯-牛顿算法(第2.2节)对 s e ( 3 ) \mathfrak{se}(3) se(3)上的直接图像对齐进行最小化。在实践中, s i m ( 3 ) \mathfrak{sim}(3) sim(3)跟踪在计算上只比 s e ( 3 ) \mathfrak{se}(3) se(3)跟踪稍微贵一点,因为只需要很少的额外计算。

在这里插入图片描述

图6 两个大尺度变化的场景。每个关键帧显示相机frustum,其大小与关键帧的尺度相对应。

约束搜索。在地图中插入一个新的关键帧 K i \mathcal{K}_i Ki之后,一些可能的回环关键帧 K j 1 , ⋯   , K j n \mathcal{K}_{j1},\cdots,\mathcal{K}_{jn} Kj1,,Kjn被收集。我们使用最接近的十个关键帧,以及一个通过基于外观的建图算法检测出来的大尺度回环关键帧候选项。为了避免插入错误的回环或插入错误跟踪的回环,我们执行一个反向跟踪检验。对于每个候选项 K j k \mathcal{K}_{jk} Kjk,我们独立跟踪 ξ j k i \pmb{\xi}_{j_ki} ξξξjki ξ i j k \pmb{\xi}_{ij_k} ξξξijk。只有当两个估计在统计上是相似的,即如果
e ( ξ j k i , ξ i j k ) : = ( ξ j k i ∘ ξ i j k ) T ( Σ j k i + A d j j k i Σ i j k A d j j k i T ) − 1 ( ξ j k i ∘ ξ i j k ) (20) e(\pmb{\xi}_{j_ki},\pmb{\xi}_{ij_k}):=(\pmb{\xi}_{j_ki} \circ \pmb{\xi}_{ij_k})^T \Big(\pmb{\Sigma}_{j_ki} +\mathrm{Adj}_{j_ki}\pmb{\Sigma}_{ij_k}\mathrm{Adj}_{j_ki}^T \Big)^{-1} (\pmb{\xi}_{j_ki} \circ \pmb{\xi}_{ij_k} ) \tag{20} e(ξξξjki,ξξξijk):=(ξξξjkiξξξijk)T(ΣΣΣjki+AdjjkiΣΣΣijkAdjjkiT)1(ξξξjkiξξξijk)(20)
足够小,它们被添加到全局地图中。因此,利用伴随矩阵 A d j j k i \mathrm{Adj}_{j_ki} Adjjki Σ i j k \pmb{\Sigma}_{ij_k} ΣΣΣijk变换到正确的正切空间中。

s i m ( 3 ) \mathfrak{sim}(3) sim(3)跟踪的收敛半径。直接图像对齐的一个重要限制在于该问题固有的非凸性,因此需要一个足够准确的初始化。虽然对于新相机帧的跟踪来说,一个足够好的初始化是可用的(由前一帧的位姿给出),但在寻找回环约束时,并非如此,特别是对于大型回环。

对此的一个解决方案是使用非常少量的关键点来计算更好的初始化。使用来自现有逆深度图的深度值,这需要对齐两组三维点,这可以通过Horn的方法有效地给出闭式解。然而,我们在实践中发现,即使对于大型回环,收敛半径也足够大。特别是,我们发现可以通过以下措施大大地增加收敛半径。

高效二阶最小化(ESM)。虽然我们的结果证实了之前的工作,即ESM不会显著增加稠密图像对齐的精度,但我们观察到它确实略微增加了收敛半径。

由粗到精方法。虽然金字塔方法通常用于直接图像对齐,但我们发现,从 20 × 15 20\times15 20×15像素的非常低的分辨率开始,比通常的要小得多,有助于增加收敛半径。

对这些措施性能的评估见第4.3节。

3.6 地图优化

地图由一组关键帧和跟踪的 s i m ( 3 ) \mathfrak{sim}(3) sim(3)约束组成,在后台使用位姿图优化框架不断进行优化。最小化误差函数,根据第2.2节的左乘约定,由下式定义,
E ( ξ W 1 ⋯ ξ W n ) : = Σ ( ξ j i , Σ j i ) ∈ ε ( ξ j i ∘ ξ W i − 1 ∘ ξ W j ) T Σ j i − 1 ( ξ j i ∘ ξ W i − 1 ∘ ξ W j ) (21) E(\pmb{\xi}_{W1}\cdots\pmb{\xi}_{Wn}) := \underset{(\xi_{ji},\Sigma_{ji}) \in \varepsilon}{\Sigma} (\pmb{\xi}_{ji} \circ \pmb{\xi}_{Wi}^{-1} \circ \pmb{\xi}_{Wj})^T \pmb{\Sigma}_{ji}^{-1} (\pmb{\xi}_{ji} \circ \pmb{\xi}_{Wi}^{-1} \circ \pmb{\xi}_{Wj}) \tag{21} E(ξξξW1ξξξWn):=(ξji,Σji)εΣ(ξξξjiξξξWi1ξξξWj)TΣΣΣji1(ξξξjiξξξWi1ξξξWj)(21)
其中 W W W表示世界系。

4 结果

我们对LSD-SLAM进行了定量评估,包括使用公开的数据集,以及使用手持单目相机记录的具有挑战性的户外轨迹。补充视频中显示了一些被评估的轨迹。

4.1 大轨迹的定性结果

我们在几个长且具有挑战性的轨迹上测试了该算法,其中包括许多相机旋转、大规模变化和大回环。图7显示了一个大约500m长的轨迹,在发现大回环前后耗时6分钟。图8显示了一个具有挑战性的轨迹,在场景深度上有很大的变化,其中还包括一个回环。

在这里插入图片描述

图7 长且具有挑战性的户外轨迹的回环(左为回环后,右为回环前)。还显示了生成的点云的三个特写,以及特定关键帧的半稠密深度图。

在这里插入图片描述

图8 大尺度变化情况下的轨迹的累积点云,包括平均逆深度小于20厘米到大于10米的视图。在回环之后(右上),几何图形是一致对齐的,而在此之前(左上)部分场景以不同的比例存在了两次。 最下面的一排显示了场景的不同特写。提出的尺度感知公式允许精确地估计精细细节和大规模几何——这种灵活性是单目方法的主要好处之一。

4.2 定量评估

我们在公开可用的RGB-D数据集上评估LSD-SLAM。请注意,对于单目SLAM来说,这是一个非常具有挑战性的基准,因为它包含快速旋转运动、强烈的运动模糊和滚动快门伪影。我们使用第一个深度图来启动系统,并得到正确的初始尺度。图9给出了得到的绝对轨迹误差,并与其它方法进行了比较。

在这里插入图片描述

图9 对于TUM RGB-D基准和两个模拟序列的结果,以绝对轨迹误差(RMSE)的形式展示,单位厘米。对于LSD-SLAM,我们还显示了创建的关键帧的数量。x表示跟踪失败,-表示没有可用数据。为了进行比较,我们分别给出了半稠密单目VO[9]、基于关键点的单目SLAM[15]、直接RGB-D SLAM[14]和基于关键点的RGB-D SLAM的结果[7]。注意,[14]和[7]使用来自传感器的深度信息,而其它的则不使用。

4.3 s i m ( 3 ) \mathfrak{sim}(3) sim(3)跟踪的收敛半径

我们计算了两个示例序列的收敛半径,结果如图10所示。即使直接图像对齐是非凸的优化问题,我们发现利用第3.5节中的措施,非常大的相机运动也可以被跟踪。可以看出,这些方法只增加了收敛半径,对跟踪精度没有显著影响。

在这里插入图片描述

图10 不同金字塔层数下sim(3)上的收敛半径和精度,直接图像对齐,带有或不带有ESM最小化(用明亮和灰暗表示)。各自序列的所有帧在第300帧(左)和第500帧(右)上被跟踪,使用标识作为初始化。下面的图显示了跟踪成功的帧;上面的图显示了最终的平移误差。ESM和金字塔层数的增加明显增大了收敛半径,但对跟踪精度没有显著影响。如果跟踪收敛,它几乎总是收敛到相同的最小值。

5 结论

我们提出了一种新的直接(无特征)单目SLAM算法,我们称之为LSD-SLAM,它能够在CPU上实时运行。与现有的直接方法(都是纯里程计方法)相比,它在环境的全局地图上维护和跟踪,其中包含关键帧的位姿图,以及相关的概率半稠密深度图。该方法主要由两个关键的创新组成。(1)在 s i m ( 3 ) \mathfrak{sim}(3) sim(3)上直接对齐两个关键帧,显式地合并和检测尺度漂移。(2)一种新的概率上的方法,将噪声的估计加入到深度图跟踪上。该地图以点云的形式表示,给出了一个半稠密的和高度精确的环境三维重建。我们的实验表明,该方法可以可靠地跟踪和绘制长度超过500米的手持式轨迹,特别是在相同序列内的大尺度变化(平均逆深度小于20厘米到大于10米)和大旋转,证明了它的通用性、鲁棒性和灵活性。

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YMWM_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值