【论文笔记】-- Visual Odometry Part I: The First 30 Years and Fundamentals

1. Formulation of the VO Problem

A. 基本原理

如下图所示,为双目 VO,VO 对每输入新的一帧,1)估计相邻帧之间的运动 T k , k − 1 T_{k, k-1} Tk,k1(旋转+位移,即位姿变换),2)整合之前所有相邻帧的运动,得到当前帧关于起始坐标系的绝对位姿 C k C_{k} Ck,并恢复相机的全轨迹 C 0 : k C_{0: k} C0:k

方便起见,令 T k T_{k} Tk 为相邻帧运动,易得, C k = C k − 1 T k C_{k}=C_{k-1} T_{k} Ck=Ck1Tk

在这里插入图片描述
这表明,VO 是渐进地恢复相机轨迹。那么,可对刚得到的 m 个位姿执行迭代优化,从而获得更加精确的局部轨迹。具体地,以重建的 3D 点(三角化得来)的重投影误差,来构建最小二乘问题,再执行迭代优化。

B. 基本流程

基于特征点的 VO 的主要流程如图2所示,
在这里插入图片描述

  • feature detection 和 feature matching:检测 2D 特征,并对当前帧与先前帧特征匹配。
  • image correspondences:相同的 3D 特征(路标点)在不同帧上的重投影,形成的 2D 特征,称为 image correspondences。
  • feature matching 与 feature tracking 的区别:前者,先在各个图像上独立地检测特征,再基于一些相似度量标准,将特征匹配起来;后者,先在一张图像上检测特征,再在后续的图像中跟踪那些特征,跟踪时采用局部搜索技术,如 correlation。
  • motion estimation:计算相邻帧之间的运动。根据 correspondences 的具体形式,有三种方法可供选择。在精确的 motion estimation 中,feature correspondences 应不包含 outliers (i.e.,wrong data associations)
  • Local Optimization:对最近的 m 个帧 BA 优化,以得到更精确的局部轨迹。

2. Camera Modeling and Calibration

A. 相机模型

三种相机模型如下,
在这里插入图片描述

1)Perspective Camera Model(针孔模型):图像是由来自物体的光线通过镜头中心(投影中心)与焦平面的相交形成的。这是最常用的相机模型。

2)Omnidirectional Camera Model(全景模型):全景相机具有宽视野(甚至超过180°),可以使用鱼眼镜头,或通过将标准摄像机与反光镜结合使用来构建(后者称为折反射摄像机)。

3)Spherical Model

B. 相机标定

相机标定的目的是,精确的测得相机的内参和外参。也是求解 VO 问题的前提条件。在多摄像机系统(例如,立体和三目)中,外部参数描述了每对摄像机之间的相互位置和方向。 最流行的方法,棋盘法。

3. Motion Estimation

根据相邻两帧 I k − 1 I_{k-1} Ik1, I k I_{k} Ik 的对应两个特征集 f k − 1 , f k f_{k-1}, f_{k} fk1,fk 来计算两帧之间的相对运动 T k T_{k} Tk。根据 feature correspondences 具体是在二维还是三维,有三种方法,

  • 2D-to-2D: In this case, both f k − 1 f_{k-1} fk1 and f k f_{k} fk are specified in 2D image coordinates.
  • 3D-to-3D: In this case, both f k − 1 f_{k-1} fk1 and f k f_{k} fk are specified in 3D. To do this, it is necessary to triangulate 3D points at each time instant; for instance, by using a stereo camera system.
  • 3D-to-2D: In this case, f k − 1 f_{k-1} fk1 are specified in 3D and f k f_{k} fk are their corresponding 2D reprojections on the image I k . I_{k} . Ik. In the monocular case, the 3D structure needs to be triangulated from two adjacent camera views (e.g., I k − 2 I_{k-2} Ik2 and I k − 1 I_{k-1} Ik1 ) and then matched to 2D image features in a third view (e.g., I k I_{k} Ik ). In the monocular scheme, matches over at least three views are necessary.

notice:feature 有点特征和边特征,但主流采用点特征。

A. 2D-to-2D: Motion from Image Feature Correspondences

在这里插入图片描述

B. 3D-to-3D: Motion from 3D Structure Correspondences

在这里插入图片描述

C. 3D-to-2D: Motion from 3D Structure and Image Feature Correspondences

在这里插入图片描述
可见采用 3D-to-2D 运动估计的单目 VO 需要三帧参与计算。

PnP,即 perspective from n points
通过最小化重投影误差来求得 T k T_{k} Tk
arg ⁡ min ⁡ T k ∑ i ∥ p k i − p ^ k − 1 i ∥ 2 \arg \min _{T_{k}} \sum_{i}\left\|p_{k}^{i}-\hat{p}_{k-1}^{i}\right\|^{2} argTkminipkip^k1i2
其中, p ^ k − 1 i \hat{p}_{k-1}^{i} p^k1i 是 3D 点 X k − 1 i X_{k-1}^{i} Xk1i 根据变换 T k T_{k} Tk 在图像 I k I_{k} Ik 上重投影得到的像素坐标,而 p k i p_{k}^{i} pki 是图像 I k I_{k} Ik 上与图像 I k − 1 I_{k-1} Ik1 已匹配的特征点的像素坐标。这样的话,应该对变换 T k T_{k} Tk 有个预先估计吧。

D. Triangulation and Keyframe Selection

在单目 VO 中,需要通过三角化来求得路标的 3D 位置,用于 3D-to-2D 的运动估计。

关键帧的选择,即每隔一些帧选择一帧,在三角化求 3D 点时,可以降低误差。

E. Discussion

通常,2D-to-2D、3D-to-2D 方法比 3D-to-3D 更精确。

在单目方案中,与 3D-to-2D 情况相比,2D-to-2D方法更可取,因为它避免了点的三角测量。 但是,实际上,3D-to-2D 方法比 2D-to-2D方法更常用。 原因在于其更快的数据关联。 如 Part II 所述,对于精确的运动计算,输入数据中不包含离群值至关重要。 离群剔除是非常微妙的步骤,此操作的计算时间严格地与估计运动所需的最少点数有关。 如前所述,2D-to-2D 情况至少需要五个点的对应关系(请参阅 five-point algorithm)。 但是,在 3D-to-2D 运动情况下,仅需要三个对应关系(请参阅P3P)。 如 Part II 所示,较少的点数可以更快地进行运动估计。

与单目相比,双目的一个优点是,除了可以直接按绝对比例计算 3D 特征外,还需要仅在两个视图之间计算匹配,而不是像在单目方案中那样在三个视图之间进行匹配。 另外,由于 3D 结构是直接从左右图像对计算而来,而不是像单目况那样从相邻帧计算而来,因此在小运动情况下,立体方案显示的漂移比单目方案小。单目方法很有趣,因为当到场景的距离远大于双目基线(即两个摄像机之间的距离)时,双目 VO 会退化为单目情况。 在这种情况下,双目立体视觉无效,必须使用单目方法。

无论选择哪种运动计算方法,都应始终执行局部 BA(在最近的m帧中)以计算轨迹的更准确估计。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
事件驱动的视惯性里程计(Event-based Visual Inertial Odometry)是一种用于同时定位和建图(SLAM)的算法。它结合了视觉和惯性传感器(如加速度计和陀螺仪)数据,利用事件相机的特点和机器人的运动模型实现了精确的定位和建图。 传统的视觉里程计主要依赖于连续帧之间的像素间匹配,即灰度或彩色图像的特征点匹配。这种方法灵敏度低、计算量大,对于快速运动、光线变化或纹理缺失的环境容易失效。而事件相机则采用了与传统相机不同的工作模式,只在像素强度发生变化时发出事件,可实时地、异步地提供图像数据。这使得事件相机具有极高的时间分辨率和低延迟性能,能够在高速运动、快速变化的环境下提供稳定的图像信息。 事件驱动的视惯性里程计通过结合事件相机和惯性传感器的测量数据,实现了基于事件的视觉特征提取和位姿估计。它利用事件的时间信息和相邻事件的空间关系,通过事件流生成稀疏的特征点,然后利用特征点之间的位移信息来估计相机的运动。同时,惯性传感器提供了关于加速度和角速度的信息,帮助解决事件相机无法感知深度的问题。 这种事件驱动的视惯性里程计在许多应用领域都有广泛的应用,如无人机、机器人导航和虚拟现实等。相比传统的视觉里程计,它具有更好的性能和稳定性,适用于更为复杂的环境。然而,对于算法的计算复杂度和实时性要求较高,仍然需要进一步的研究和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值