【视觉SLAM】4-SLAM前端之视觉里程计Visual Odometry
文章目录
-
1. 前言
-
- 1.1 里程计(Odometry)
- 1.2 视觉里程计(Visual Odometry,VO)
-
2. 特征点法
-
- 2.1 特征点
- 2.2 相机运动估计
-
3. 直接法
-
Refs
1. 前言
1.1 里程计(Odometry)
在里程计问题中,可利用多种手段来测量物体的运动轨迹,如在汽车轮胎上安装计数码盘,通过测量轮胎转动圈数获得行驶距离。完成这种运动估计的装置(包括硬件和算法)称为里程计(Odometry) 。
里程计的一个很重要的特性是,它只关心局部时间上的运动 ,多为两个时刻间的运动。通常以估计间隔对时间采样,进而估计物体在各时刻之间的运动,这就导致误差(估计误差、噪声等)会不断累积,这种现象称为漂移(Drift) 。SLAM流程中的回环检测可纠正漂移带来的全局误差。
1.2 视觉里程计(Visual Odometry,VO)
视觉里程计指主要依赖视觉传感器的里程计,如单/双目相机。注意,在前文介绍的SLAM框架中,VO也被称为前端
VO的核心问题是从几个相邻图像中估计相机运动 ,这主要基于相邻图像间的相似性。目前视觉里程计的主要算法分为特征点法(稀疏方法) 和直接法(稠密方法) 两大类。
2. 特征点法
2.1 特征点
从图像中提取有代表性的点(称为特征点),进而通过匹配不同时刻图像中的特征点来估计相机运动。在经典SLAM模型中,这些点被称为路标(Landmark) ;在视觉SLAM中,这些点被称为特征(Feature) 。
常用的特征点提取方法有:
- 简单的角点特征:Harris,FAST,GFTT;
- 更鲁棒的具有旋转一致性的特征:SIFT,SURF,ORB;
特征点由关键点(Key-point) 和描述子(Descriptor) 组成。关键点给出了特征点的空间位置,而描述子则给出了特征点的局部信息,描述子通常是一个人工设计的具有一定长度的向量。
2.2 相机运动估计
提取了相邻图像间的特征点后,可通过多种算法计算其匹配关系(如暴力匹配(Brute-Force Matcher) )。重点来看如何利用得到的特征点匹配关系,通过立体视觉 的相关知识来估计相机的局部运动。
根据输入不同可将该问题分为三类,详细推导和OpenCV实现请看其它文章链接:
- 2D-2D(对极几何) :特征点法估计相机运动之对极几何2D-2D;
- 3D-2D(PnP) :特征点法估计相机运动之PnP 3D-2D;
- 3D-3D(ICP) :迭代最近点(Iterative Closest Point, ICP)算法;
3. 直接法
光流跟踪特征点 \rightarrow 估计相机位姿
后续补充
