目录
- 摘要
- 1 介绍
- 2 相关工作
- 3 密集的视觉里程计
-
- A 相机模型
- B 刚体运动
- C warping函数
- D 误差函数
- E 概率公式
- F 线性化和优化
- G 参数不确定性
- 4 基于关键帧的视觉SLAM
-
- A 选择关键帧
- B 回环检测
- C 表示和优化地图
- 5 评估
- 6 结论
- 参考文献
摘要
在这篇文章中,我们是RGB-D相机提出了一集的视觉SLAM该方法可以最小化所有像素上的光度和深度误差。与基于特征的稀疏方法相比,这使得我们能够更好地利用图像数据中的可用信息,从而获得更高的位置精度。此外,在关键帧选择和回环检测中提出了基于熵的相似性测量。我们从所有成功的匹配中构建了一个使用g2o优化框架图。我们在公共基准数据集中广泛评估了我们的方法,发现它在低纹理和低结构场景中表现良好。与几种最先进的方法直接相比,我们的方法轨迹误差明显较低。我们通过开源发布软件。
1 介绍
许多机器人应用程序,如导航和地图绘制,需要移动相机的准确性和无漂移位置估计。以往的解决方案倾向于基于视觉特征的方法,并结合光束调整或位置图优化。尽管这些方法是最先进的,但选择相关关键点的过程会丢弃大量的图像数据。因此,我们的目标是开发一个密集的目标SLAM方法,(1)更好地利用传感器获得的数据,(2)仍实时运行,(3)通过全局地图优化有效消除漂移,纠正累积误差。
帧间匹配的视觉里程计自然容易漂移。近年来,出现了与基于特征的方法性能相当密切的跟踪和构图方法。虽然frame-to-model的方法,如KinectFusion,共同估计,一个持久的世界模型仍然会有漂移积累(虽然比视觉里程计慢),所以它只适用于重建一个小的工作空间(如桌子或房间的一部分)。虽然这个问题可以用更复杂的成本函数和对齐程序来延迟,但更基本的解决方案是可取的。
在本文中,我们通过几个关键组件扩展了密集的视觉里程,显著减少了漂移,为获得最佳地图铺平了道路。图1显示了优化轨迹的示例和获得的一致点云模型。关于我们方法的实现,请浏览以下页面:
vision.in.tum.de/data/software/dvo
本文的主要贡献如下:
- 优化灰度和深度误差的快速帧间配准方法
- 基于熵的关键帧选择方法显著减少了漂移
- 一种基于相同熵度量验证回环的方法
- 将上述所有技术集成到一个通用SLAM求解器中,进一步减少了漂移。
公开可用RGB-D对基准的广泛评价证明,该方法的平均精度高于现有基于特征的方法。此外,我们证明了我们的方法比现有的方法更厚SLAM文献[5]和[11]等系统。
2 相关工作
估计相机运动被称为视觉里程计。大多数最先进的方法都是建立视觉特征对应关系来估计相机运动。
在过去的几年里,有一种视觉里程计稠密的方法来取代这些经典方法。Comport等人提出了直接最小化连续双眼图像对光度误差的方法。Steinbrücker等人和Audras等人把这种方法应用到最近RGB-D相机(如微软)Kinect)在获得的图像中。在我们最近的工作中,我们将光度误差公式嵌入概率框架,并显示如何基于传感器模型和运动先验来实现鲁棒成本函数。
除了光度误差,三维点之间的几何误差也可以最小化。这种算法被称为迭代最近点(ICP),并探索了许多变体。
Morency等人提出将光度误差和几何误差结合起来进行前向跟踪,最近Tykk?l?等人和Whelan等人用它来估计相机运动。Meilland等人最近扩展了这种方法,将其定位为参考坐标系,并计算其超分辨率版本。
由于帧到帧运动的估计误差会随着时间的推移而积累,所有里程计方法自然容易漂移。这可以通过同时估计一致的地图来解决。然后根据一致的模型定位相机,以消除漂移。
Newcombe等人提出逐步建立场景的密集模型,并在模型中匹配每个新的测量值。Whelan等人将Newcombe等人的KinectFusion算法扩展到任何大场景。由于KinectFusion不优化以前的相机位置,不可能纠正模型中积累的误差。同时定位和构图(SLAM)或恢复运动结构(SfM)目标是共同优化模型和相机轨迹。这样,甚至可以在检测回环后纠正大的累积误差。在基于特征的方法中,场景通常表示为之前观察到的3D收集特征点。联合优化有两种主要方法。滤波器的状态包括相机位置和特征位置,如扩展卡尔曼滤波器,并逐步改进。另一组采用批量优化的方法来改善特征位置和相机位置。Pose SLAM不结合传感器位置优化场景结构,只优化传感器位置。在Pose SLAM在中间,地图被表示为一张图,顶点表示传感器的绝对位置,同时表示它们之间的相对变化。根据传感器测量结果计算这些变化。最近,一些基础RGB-D相机的Pose SLAM提出了算法。
本文提出了一种视觉SLAM该系统结合了基于光度和几何误差的密集视觉里程计和位置SLAM。我们展示了我们的系统优于基于稀疏特性和密集帧间模型跟踪的可比方法。Tykk?l?与最近的工作相比,我们选择关键帧并优化地图。此外,我们不需要用户互动。
3 密集的视觉里程计
我们的目标是完全从图像流估计相机的运动。在每个时间步(timestep) t t t,提供一个相机RGB-D图像包括灰度图像 I t I_t It和一个应的深度图像 Z t Z_t Zt。给定两个连续时间步的RGB-D图像,我们想计算相机的刚体运动 g g g。
图2说明了这个想法。给定场景中的一个三维点 p p p和正确的运动 g ∗ g^* g∗,我们可以计算出它在第一张图像和第二张图像中对应的像素点坐标 x x x和 x ′ x' x′。一般来说,这对每个点都成立。这种假设也被称为光度一致性,只要传感器是无噪声的,场景是静态的,照明是恒定的。利用这一原则,我们求取目标相机运动,它最大化两张图像之间的光度一致性。
对于深度测量也可以提出类似的假设。给定一个点 p p p和正确的运动 g ∗ g^* g∗,我们可以在第二个深度图 Z 2 Z_2 Z2中预测它的深度测量。理想情况下,预测的深度测量值与实际测量值相等。推而广之,每个点都应该满足这个约束。因此,可以通过最小化预测深度测量和实际深度测量之间的差值来估计运动。在下文中,我们将该方法公式化。
A 相机模型
一个3D点在齐次坐标系下的坐标值为 p = ( X , Y , Z , 1 ) T p=(X,Y,Z,1)^T p=(X,Y,Z,1)T。我们利用它的像素坐标 x = ( x , y ) T \pmb{x} = (x, y)^T xxx=(x,y)T和对应的深度测量 Z = Z ( x ) Z = \mathcal{Z}(x) Z=Z(x)使用逆投影函数 π − 1 π^{−1} π−1重构一个点,即 p = π − 1 ( x , Z ) = ( x − o x f x Z , y − o y f y Z , Z , 1 ) T (1) \pmb{p}=\pi^{-1}(\pmb{x},Z)=\bigg( \frac{x-o_x}{f_x}Z,\ \frac{y-o_y}{f_y}Z,\ Z,\ 1 \bigg) ^T \tag{1} ppp=π−1(xxx,Z)=(fxx−oxZ, fyy−oyZ, Z, 1)T(1) 其中 f x f_x fx和 f y f_y fy是焦距, o x o_x ox和 o y o_y oy是标准针孔相机模型中相机光心的坐标值。一个点的像素坐标可以通过投影函数 π π π来计算: x = π ( p ) = ( X f x Z + o x , Y f y Z + o y ) T (2) \pmb{x}=\pi(\pmb{p})=\bigg( \frac{Xf_x}{Z}+o_x,\ \frac{Yf_y}{Z}+o_y \bigg)^T \tag{2} xxx=π(ppp)=(ZXfx+ox, ZYfy+oy)T(2)
B 刚体运动
我们将相机的刚体运动 g g g限制为特殊欧几里德群 S E ( 3 ) SE(3) SE(3)。刚体运动 g g g的一个常见表示是变换矩阵 T T T, T 4 × 4 = [ R 3 × 3 t 3 × 1 0 1 ] (3) \pmb{T}_{4\times 4}=\begin{bmatrix} \pmb{R}_{3\times 3} & \pmb{t}_{3\times 1} \\ \pmb{0} & 1 \end{bmatrix} \tag{3} TTT4×4=[RRR3×3000ttt3×11](3) 它由一个旋转矩阵和一个平移向量组成。用变换矩阵 g g g表示的点 p p p的变换定义为: g ( p ) = p ′ = T p (4) g(\pmb{p})=\pmb{p}'=\pmb{T}\pmb{p} \tag{4} g(ppp)=ppp′=TTTp 标签: oy054s传感器