论文阅读《Direct Sparse Odometry》1

本文介绍了一种直接稀疏视觉里程计方法,结合高精度的光度相机标定,优化光度误差并联合优化所有参数。实验表明,该方法在鲁棒性和准确性上超越现有技术,适用于各种复杂环境。

摘要

直接稀疏里程计方法(Direct Sparse Odometry, DSO)是一种基于一种新颖、高精度的稀疏直接结构和运动公式的视觉里程计方法。它结合了一个完全直接的概率模型(最小化光度误差)与所有模型参数的一致和联合优化,包括几何(在参考帧中以逆深度表示)和相机运动。这是通过丢弃在其它直接方法中使用的平滑度先验来实现的,本文在整个图像中均匀采样像素。由于我们的方法不依赖于关键点检测器或描述子,它可以自然地从所有具有灰度梯度的图像区域采样像素,包括边缘或平滑灰度变化的基本无特征的墙壁。该模型集成了完整的光度标定,考虑了曝光时间、透镜渐晕和非线性响应函数。我们在包含几个小时视频的三个不同数据集上彻底评估了我们的方法。实验表明,所提出的方法在各种真实世界环境中,无论是在跟踪精度还是鲁棒性方面,都明显优于最先进的直接和间接方法。

1 介绍

同时定位与建图(SLAM)和视觉里程计(VO)是许多新兴技术的基本组成部分——从自动驾驶汽车和无人机到虚拟现实和增强现实。近年来,SLAM和VO的实时方法取得了显著进展。长期以来,该领域以基于特征(间接)的方法为主,近年来,许多不同的方法得到了普及,即直接和稠密的表达。

直接对比间接。所有公式的基础是一个概率模型,它以噪声测量 Y Y Y为输入,并为未知和隐藏的模型参数(3D世界模型和相机运动)计算一个估计器 X X X。通常使用最大似然方法,它找到最大概率获得实际测量值的模型参数,即, X ∗ : = a r g m a x X X^{*}:=argmax_{X} X:=argmaxX P(Y|X)。

间接方法分两步进行。首先,对原始传感器测量数据进行预处理,生成一个中间表示,解决了部分整体问题,如计算图像中对应点的坐标。其次,将计算得到的中间值解释为概率模型中的噪声测量值 Y Y Y,以估计几何和相机运动。注意,第一步通常是通过提取和匹配稀疏的关键点来实现的,但是也存在其它选择,比如以密集的正则化的光流的形式建立对应关系。它还可以包括提取和匹配其它几何基元(如线段或曲线段)的参数表示的方法。

直接方法跳过这个预计算步骤,直接使用实际的传感器值——在特定时间周期内从特定方向接收到的光——作为概率模型中的测量 Y Y Y

在被动视觉的情况下,直接方法因此优化光度误差,因为传感器提供光度测量。另一方面,间接方法优化了几何误差,因为预先计算的值-位置或流-矢量都是几何量。请注意,对于其它传感器形式,如深度相机或激光扫描仪(直接测量几何量),直接公式也可以优化几何误差。

稠密对比稀疏。稀疏方法只使用和重构一组选定的独立点(传统的角点),而密集方法试图使用和重构二维图像域中的所有像素。中间的方法(半密集)避免重建完整的曲面,但仍然旨在使用和重建一个(大部分连接和良好约束)子集。

然而,除了所使用的图像区域的范围之外,一个更根本的也是必然的区别在于增加了一个几何先验。在稀疏表述中,没有邻域的概念,几何参数(关键点位置)是有条件地独立于给定的相机位姿和内参。另一方面,稠密(或半稠密)方法利用所使用的图像区域的连通性来形成一个几何先验,通常有利于平滑。事实上,这样的先验是必要的,以使稠密的世界模型,仅从被动视觉观察。一般来说,这个先验是直接以额外的对数似然能量项的形式表示的。

请注意,稠密和稀疏之间的区别并不等同于直接和间接——事实上,所有四种组合都存在。

  • 稀疏+间接:这是最广泛使用的表示,从一组关键点匹配中估计三维几何,从而使用没有几何先验的几何误差。例如Jin等人的研究[12],monoSLAM[4], PTAM[16]和ORB-SLAM[20]。
  • 稠密+间接:该公式从密集的、正则化的光流场中或与之结合估计三维几何形状,从而将几何误差(偏离流场)与几何先验(流场的平滑度)结合起来,示例包括文献[23]和文献[27]。
  • 稠密+直接:该公式采用了光度误差以及几何先验估计稠密或半稠密几何。例如DTAM[21],其前体[26],REMODE[22]和LSD-SLAM[5]。
  • 稀疏+直接:这就是本文提出的表达。它优化了直接在图像上定义的光度误差,而没有结合几何先验。虽然我们不知道最近有任何使用该公式的工作,但Jin等人已经在2003年[13]提出了一种稀疏和直接的公式。然而,与他们基于扩展卡尔曼滤波器的工作相比,我们的方法使用了非线性优化框架。探索稀疏和直接组合的动机将在下一节中阐述。

此外,还有混合方法,如SVO[9],使用直接公式进行初始对齐和获取对应关系,然后切换到间接公式进行联合模型优化。

1.1 动机

本文提出的单目视觉里程计的直接和稀疏公式是出于以下考虑。

直接:关键点的主要好处之一是对光照和几何畸变鲁棒。例如自动曝光变化、非线性响应函数(伽马校正/白平衡)、镜头衰减(渐晕)、去马赛克伪影,甚至是由卷帘快门引起的强烈几何扭曲。然而,这种对光照变化的鲁棒性甚至不变性是以丢弃在这些变化中具有潜在价值的信息为代价的。

在这里插入图片描述

图1 直接稀疏里程计(DSO)。3D重建和跟踪轨迹,围绕建筑物进行1分40秒的视频骑行(仅限单目视觉里程计)。左下角的插图显示了开始点和结束点的特写,显示了轨迹中的累积漂移。下面一行显示了一些视频帧。

与此同时,对于介绍中提到的所有用例,数以百万计的设备将(而且已经)装备摄像头,只为计算机视觉算法提供数据,而不是捕捉图像供人类消费。这些摄像头也应该将被设计成提供一个完整的传感器模型,并以最佳服务于算法的方式捕捉数据。例如,自动曝光和伽马校正并不是未知的噪声源,而是能够提供更好的图像数据的特征——这些特征可以被纳入模型中,使获得的数据具有更多的信息。由于直接方法建模完整的图像形成过程到像素灰度,它大大受益于更精确的传感器模型。

直接公式的主要好处之一是,它不需要识别点本身,从而允许更细粒度的几何表示(像素逆深度)。此外,我们可以从所有可用数据(包括边缘和弱灰度变化)中采样,生成更完整的模型,并在纹理稀疏的环境中提供更强的鲁棒性。

稀疏。添加几何先验的主要缺点是引入了几何参数之间的相关性,这使得统计上一致的实时联合优化是不可行的(见图2)。这就是为什么现有的稠密或半稠密方法(a)忽略或粗略近似几何参数之间的相关性(橙色),和/或几何参数和相机位姿之间的相关性(绿色),以及(b)对稠密几何部分采用不同的优化方法,如原始对偶公式。

在这里插入图片描述

图2 稀疏和稠密海塞矩阵结构。左图为稀疏光束调整的海塞矩阵结构,由于几何-几何块是对角的,因此通过舒尔补可以快速求逆。在右图中,几何先验加入了部分非结构化的几何-几何相关性,这导致矩阵不仅维数大,而且还很难求逆。为了简单起见,我们不显示全局相机的内参。

此外,当今先验的表达复杂性是具有局限性的。虽然它们使三维重建更稠密、局部更准确和视觉上更吸引人,但我们发现,先验可能会引入偏差,从而降低而不是提高长期的大规模的场景的精度。请注意,随着从真实数据中学习到的更现实、更公正的先验的引入,这种情况很可能会改变。

1.2 贡献

在本文中,我们提出了一种稀疏和直接的单目视觉里程计方法,一个示例重建如图1所示。据我们所知,这是唯一的完全直接的方法,联合优化所有涉及的模型参数的概率,包括相机位姿,相机内参,和几何参数(逆深度值)。这与混合方法(如SVO[9])形成了对比,后者恢复为联合模型优化的间接公式。

在一个滑动窗口中进行优化,旧相机位姿以及离开相机视野的点被边缘化,灵感来自[17]。与现有方法相比,我们的方法进一步充分利用了光度相机标定,包括镜头衰减、伽马校正和已知曝光时间。这种综合光度标定进一步提高了准确性和鲁棒性。

我们基于CPU的实现在笔记本电脑上实时运行。我们在三个不同的数据集(包括几个小时的视频)上进行了广泛的评估,表明它在鲁棒性和准确性方面优于其他最先进的方法(直接和间接)。通过减少设置(更少的点和活动的关键帧),它甚至可以以5倍的实时速度运行,同时仍然优于最先进的间接方法。在高且非实时设置(更多的点和活动关键帧)下,它创建的半稠密模型在密度上类似于LSD- SLAM,但更准确。

2 直接稀疏模型

我们的直接稀疏里程计是基于对最近帧的一个窗口的光度误差的持续优化,考虑到图像形成的光度标定模型。与现有的直接方法相比,我们联合优化所有涉及的参数(相机内参、相机外参和逆深度值),有效地执行了窗口稀疏光束调整的光度等效。我们保留了其他直接方法所采用的几何图形表示方法,例如,三维点在参考坐标系中表示为逆深度(因此有一个自由度)。

记号。在本文中,粗体小写字母( x \pmb{x} xx)表示向量,粗体大写字母( H \pmb{H} HH)表示矩阵。标量用小写字母( t t t)表示,函数(包括图像)用小写字母( I I I)表示。相机位姿表示为变换矩阵 T i ∈ S E ( 3 ) \pmb{T}_i \in SE(3) TTiSE(3),将一个点从世界坐标系转换到相机坐标系。线性化的姿态增量将被表示为李代数元素 x i ∈ s e ( 3 ) x_i\in \mathfrak{se}(3) xise(3),我们直接将其写成向量 x i ∈ R 6 x_i\in \mathbb{R}^6 xiR6——稍微滥用了符号。我们进一步定义常用的操作符 ⊞ :   s e ( 3 ) × S E ( 3 ) → S E ( 3 ) \boxplus:\ \mathfrak{se}(3) \times SE(3) \rightarrow SE(3) : se(3)×SE(3)SE(3),利用左乘表述,即
x i ⊞ T i : = e x i ^ ⋅ T i (1) \pmb{x}_i \boxplus \pmb{T}_i := e^{\hat{x_i}}\cdot \pmb{T}_i \tag{1} xxiTTi:=exi^TTi(1)

2.1 标定

直接法是对图像建模的综合方法。除了几何相机模型(包含将3D点投射到2D图像的功能)之外,考虑光度相机模型也是有益的,它包含将传感器上的像素接收到的真实能量(辐照度)映射到相应灰度值的函数。请注意,对于间接方法,这是没有什么好处,因此被广泛忽略,因为常见的特征提取器和描述子是不变的(或高度鲁棒)光照变化。

2.1.1 几何相机标定

为了简单起见,我们为众所周知的针孔相机模型制定了我们的方法——在预处理步骤中消除径向失真。而对于广角相机,这确实减少了视野,它允许跨方法的比较,只实现有限的相机模型的选择。在本文中,我们将用 Π c : R 3 → Ω \Pi_c:\mathbb{R}^3\rightarrow \Omega Πc:R3Ω表示投影,用 Π c − 1 : Ω × R → R 3 \Pi_c^{-1}:\Omega \times \mathbb{R}\rightarrow \mathbb{R}^3 Πc1:Ω×RR3表示反投影,其中 c c c表示相机的内参(对于针孔模型,这是焦距和主点)。请注意,与[2]类似,我们的方法可以扩展到其它(可逆)相机模型,尽管这确实增加了计算需求。

2.1.2 光度相机标定

我们使用[8]中使用的成像模型,它包含非线性响应函数 G : R → [ 0 , 255 ] G:\mathbb{R}\rightarrow[0,255] G:R[0,255],以及透镜衰减(渐晕) V : Ω → [ 0 , 1 ] V:\Omega\rightarrow[0,1] V:Ω[0,1]。图3显示了一个来自TUM monoVO数据集的标定示例。那么,结合的模型可以由下式给出,
I i ( x ) = G ( t i V ( x ) B i ( x ) ) (2) I_i(\pmb{x})=G(t_iV(\pmb{x})B_i(\pmb{x})) \tag{2} Ii(xx)=G(tiV(xx)Bi(xx))(2)
其中, B i B_i Bi I i I_i Ii为第 i i i帧的辐照度和观察到的像素灰度, t i t_i ti为曝光时间。该模型的第一步是对每个视频帧进行光度校正,即计算,
I i ′ ( x ) : = t i B i ( x ) = G − 1 ( I i ( x ) ) V ( x ) (3) I'_i(\pmb{x}):=t_iB_i(\pmb{x})=\frac{G^{-1}(I_i(\pmb{x}))}{V(\pmb{x})} \tag{3} Ii(xx):=tiBi(xx)=V(xx)G1(Ii(xx))(3)
在本文的其余部分中,除另有说明外, I i I_i Ii总是指经过光度校正的图像 I i ′ I_i' Ii

在这里插入图片描述

图3 光度标定。上图:图1所用相机的逆响应函数G^{-1}和镜头衰减V。下图:包含室内和室外部分的序列的毫秒级曝光t。请注意,它的变化幅度超过500倍,从0.018 ms到10.5 ms。我们不把这些量当作未知的噪声源,而是在光度误差模型中明确地说明它们。

2.2 模型表述

我们将参考坐标系 I i I_i Ii p ∈ Ω i \pmb{p} \in \Omega_i ppΩi点在目标坐标系 I j I_j Ij中观测到的光度误差定义为像素小邻域上的加权SSD。我们的实验中已经表明,8个像素排列在一个稍微分散的模式(见图4),在评估所需的计算、对运动模糊的鲁棒性和提供足够信息之间给出了一个很好的权衡。注意,就所包含的信息而言,在如此小的像素邻域上评估SSD类似于为中心像素添加一阶和二阶辐照度导数常数项(除了辐照度常数)。令,
E p j : = ∑ p ∈ N p w p ∥ ( I j [ p ′ ] − b j ) − t j e a j t i e a i ( I i [ p ] − b i ) ∥ γ (4) E_{p_j}:=\sum_{p\in\mathcal{N}_p} w_p \bigg \Vert (I_j[\pmb{p}']-b_j)-\frac{t_je^{a_j}}{t_ie^{a_i}}(I_i[\pmb{p}]-b_i) \bigg\Vert_\gamma \tag{4} Epj:=pNpwp (Ij[pp]bj)tieait

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YMWM_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值