当前位置:网站首页>论文阅读《LSD-SLAM: Large-Scale Direct Monocular SLAM》
论文阅读《LSD-SLAM: Large-Scale Direct Monocular SLAM》
2022-06-25 03:54:00 【YMWM_】
摘要
我们提出了一种直接(无特征)单目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)概率一致地将估计深度的不确定性纳入跟踪。


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=z−1。
2.1 3D刚体变换和相似变换
3D刚体变换。三维刚体变换 G ∈ S E ( 3 ) \pmb{G} \in \mathrm{SE}(3) GGG∈SE(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) RRR∈SO(3), ttt∈R3(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′/z′y′/z′1/z′⎠⎞ with ⎝⎜⎜⎛x′y′z′1⎠⎟⎟⎞=expse(3)(ξξξ)⎝⎜⎜⎛pppx/dpppy/d1/d1⎠⎟⎟⎞(3)
3D相似变换。一个三维相似变换 S ∈ S i m ( 3 ) \pmb{S} \in Sim(3) SSS∈Sim(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 RRR∈SO(3), ttt∈R3 and s∈R+(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(ξξξ)=i∑wi(ξξξ)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} ΣΣΣf≈JJJfΣXΣXΣXJJJfT(11)
3 大尺度直接单目SLAM
我们首先在3.1节中概述了完整的算法,并在3.2节中简要介绍了全局地图的表示。然后在3.3节(跟踪新帧)、3.4节(深度图估计)、3.5节(关键帧到关键帧跟踪)和最后3.6节(地图优化)中描述了算法的三个主要组成部分。
3.1 完整的算法
该算法由跟踪、深度图估计和地图优化三个主要部分组成,如图3所示。

跟踪组件持续跟踪新的相机图像。也就是说,它利用前一帧的位姿作为初始化,估计它们相对于当前关键帧的刚体位姿 ξ ∈ 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:Ωi→R和逆深度图 D i : Ω D i → R + D_i:\Omega_{D_i}\rightarrow \mathbb{R}^+ Di:ΩDi→R+以及逆深度方差 V i : Ω D i → R + V_i:\Omega_{D_i}\rightarrow \mathbb{R}^+ Vi:ΩDi→R+。注意,深度图和方差仅为像素的子集定义 Ω D i ⊂ Ω i \Omega_{D_i} \subset \Omega_i ΩDi⊂Ωi,包含足够大的灰度梯度附近的所有图像区域,因此是半稠密的。关键帧之间的边包含了相似变换 ξ j i ∈ s i m ( 3 ) \pmb{\xi}_{ji}\in \mathfrak{sim}(3) ξξξji∈sim(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) ξξξji∈se(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∣≤δ∣r∣−2δ 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)上执行最小化。

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。因此,这个阈值是相对于当前场景尺度而言的,并确保有足够的可能性进行小基线的立体比较。

深度图创建。一旦新一帧被选择为关键帧,它的深度图将由前一关键帧中的投影点来初始化,然后按照文献[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′]3−Dj([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)跟踪稍微贵一点,因为只需要很少的额外计算。

约束搜索。在地图中插入一个新的关键帧 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∘ξξξWi−1∘ξξξWj)TΣΣΣji−1(ξξξji∘ξξξWi−1∘ξξξWj)(21)
其中 W W W表示世界系。
4 结果
我们对LSD-SLAM进行了定量评估,包括使用公开的数据集,以及使用手持单目相机记录的具有挑战性的户外轨迹。补充视频中显示了一些被评估的轨迹。
4.1 大轨迹的定性结果
我们在几个长且具有挑战性的轨迹上测试了该算法,其中包括许多相机旋转、大规模变化和大回环。图7显示了一个大约500m长的轨迹,在发现大回环前后耗时6分钟。图8显示了一个具有挑战性的轨迹,在场景深度上有很大的变化,其中还包括一个回环。


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

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

5 结论
我们提出了一种新的直接(无特征)单目SLAM算法,我们称之为LSD-SLAM,它能够在CPU上实时运行。与现有的直接方法(都是纯里程计方法)相比,它在环境的全局地图上维护和跟踪,其中包含关键帧的位姿图,以及相关的概率半稠密深度图。该方法主要由两个关键的创新组成。(1)在 s i m ( 3 ) \mathfrak{sim}(3) sim(3)上直接对齐两个关键帧,显式地合并和检测尺度漂移。(2)一种新的概率上的方法,将噪声的估计加入到深度图跟踪上。该地图以点云的形式表示,给出了一个半稠密的和高度精确的环境三维重建。我们的实验表明,该方法可以可靠地跟踪和绘制长度超过500米的手持式轨迹,特别是在相同序列内的大尺度变化(平均逆深度小于20厘米到大于10米)和大旋转,证明了它的通用性、鲁棒性和灵活性。
参考文献
略
边栏推荐
- MySQL modifies and deletes tables in batches according to the table prefix
- Deveco studio 3.0 editor configuration tips
- Cesium graphic annotation circle, square, polygon, ellipse, etc
- SEO的5大关键指标:排名+流量+会话+停留时长+跳出率
- 1280_C语言求两个无符号整形的平均值
- How to use crawlers to capture bullet screen and comment data of station B?
- How to use ide to automatically sign and debug Hongmeng application
- Interview with Mo Tianlun | ivorysql wangzhibin - ivorysql, an Oracle compatible open source database based on PostgreSQL
- DAP数据调度功能完善说明
- Development of trading system (XII) - Official quickfix document
猜你喜欢

9 necessary soft skills for program ape career development

Cesium loading display thermal diagram

Exercise: how difficult is it to simulate the blessing lottery two-color ball - China 500W grand prize? Just run the code.

About PLSQL error initialization failure

【openwrt】推荐一个国内开发的openwrt的版本,iStoreOS简介,非常好用,主要是做了一些优化。解决了汉化的问题。

Crawler crawls Sina Weibo data

cesium 图形标注圆形、正方形、多边形、椭圆等

长沙“求才”:“下力气”与“出实招”并进,“快发展”和“慢生活”兼得

numpy np tips:使用opencv对数组插值放缩到固定形状 cv2.resize(res, dsize=(64, 64), interpolation=cv2.INTER_CUBIC)

Cesium drag 3D model
随机推荐
The problem that only the home page can be accessed under openSUSE Apache laravel
MySQL插入过程报错1062,但是我没有该字段。
[team learning] SQL programming language notes - task04
General steps for QT compiling database plug-ins
95% 程序员都在这里摸鱼……
SQL, CTE, FLG CASE问题
Crawler crawls Sina Weibo data
【LeetCode】143. 重排链表
MySQL modifies and deletes tables in batches according to the table prefix
Create SQLite table with shell script and add SQL statement -- General
The art of writing simple code
Although the Internet in the traditional sense has long ceased to exist, this does not mean that the Internet has long disappeared
Crawler grabs the data of Douban group
Work assessment of pharmacotherapeutics of Jilin University in March of the 22nd spring -00064
[rust submission] review impl trail and dyn trail in rust
uniapp 制作手机app程序, 使用uni.chooseVideo录制视频,视频播放模糊分辨率低的原因
Cesium 拖拽3D模型
【Proteus仿真】Arduino UNO按键控制数码管闪烁增/减显示
openmmlab-环境配置
PHP代码审计2—这些函数必知必会