视觉SLAM十四讲第七讲
第七章 视觉里程计 1
主要目标
- 理解图像特征点的意义, 并掌握在单幅图像中提取出特征点及多幅图像中匹配特征点的方法。
- 理解对极几何的原理,利用对极几何的约束,恢复出图像之间的摄像机的三维运动。
- 理解 PNP 问题,以及利用已知三维结构与图像的对应关系求解摄像机的三维运动。
- 理解 ICP 问题,以及利用点云的匹配关系求解摄像机的三维运动。
- 理解如何通过三角化获得二维图像上对应点的三维结构。
一、特征点法
VO 的算法主要分为两个大类:特征点法和直接法。
1)特征点
VO 的核心问题是如何根据图像来估计相机运动。
首先,从图像中选取比较有代表性的点。这些点在相机视角发生少量变化后会保持不变,于是我们能在各个图像中找到相同的点。然后,在这些点的基础上,讨论相机位姿估计问题,以及这些点的定位问题。在经典 SLAM 模型中,我们称这些点为路标(Landmark)。而在视觉 SLAM 中,路标则是指图像特征(Feature)。
特征点是图像里一些特别的地方。我们可以把图像中的角点、边缘和区块都当成图像中有代表性的地方。
为此,计算机视觉领域的研究者们在长年的研究中设计了许多更加稳定的局部图像特征,如著名的 SIFT、SURF、ORB,等等。相比于朴素的角点,这些人工设计的特征点能够拥有如下的性质:
特征点由关键点(Key-point)和描述子(Descriptor)两部分组成。
关键点是指该特征点在图像里的位置,有些特征点还具有朝向、大小等信息。描述子通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息。描述子是按照“外观相似的特征应该有相似的描述子”的原则设计的。因此,只要两个特征点的描述子在向量空间上的距离相近,就可以认为它们是同样的特征点。
2)ORB 特征
ORB 特征亦由关键点和描述子两部分组成。它的关键点称为“Oriented FAST”,是一种改进的 FAST 角点。它的描述子称为 BRIEF(Binary Robust Independent Elementary Feature)。因此,提取 ORB 特征分为如下两个步骤:
1、 FAST 角点提取:找出图像中的“角点”。相较于原版的 FAST,ORB 中计算了特征点的主方向,为后续的 BRIEF 描述子增加了旋转不变特性。
2、 BRIEF 描述子:对前一步提取出特征点的周围图像区域进行描述。ORB 对 BRIEF 进行了一些改进,主要是指在 BRIEF 中使用了先前计算的方向信息。
FAST 关键点:
FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与邻域的像素差别较大(过亮或过暗),那么它更可能是角点。相比于其他角点检测算法,FAST 只需比较像素亮度的大小,十分快捷。它的检测过程如下:
1.、在图像中选取像素 p,假设它的亮度为 Ip。
2、 设置一个阈值 T(比如,Ip 的 20%)。
3、 以像素 p 为中心,选取半径为 3 的圆上的 16 个像素点。
4.、假如选取的圆上有连续的 N 个点的亮度大于 Ip + T 或小于 Ip-T,那么像素 p 可以被认为是特征点(N 通常取 12,即为 FAST-12。其他常用的 N 取值为 9 和 11,它们分别被称为FAST-9 和 FAST-11)。
5.、循环以上四步,对每一个像素执行相同的操作。
BRIEF 描述子:
BRIEF 是一种二进制描述子,其描述向量由许多个 0 和 1 组成,这里的 0 和 1 编码了关键点附近两个随机像素(比如 p 和 q)的大小关系:如果 p 比 q 大,则取 1,反之就取 0。如果我们取了 128个这样的 p, q,最后就得到 128 维由 0、1 组成的向量。
3)特征匹配
特征匹配是视觉 SLAM 中极为关键的一步,特征匹配解决了 SLAM中的数据关联问题(data association),即确定当前看到的路标与之前看到的路标之间的对应关系。
最简单的特征匹配方法就是暴力匹配(Brute Force Matcher)。即对每一个特征点 xmt 与所有的 xnt+1 测量描述子的距离,然后排序,取最近的一个作为匹配点。描述子距离表示了两个特征之间的相似程度,不过在实际运用中还可以取不同的距离度量范数。对于浮点类型的描述子,使用欧氏距离进行度量即可。而对于二进制的描述子(比如BRIEF 这样的),我们往往使用汉明距离(Hamming distance)作为度量——两个二进制串之间的汉明距离,指的是其不同位数的个数。
而特征点过多时,暴力匹配法的运算量将变得很大。此时快速近似最近邻(FLANN)算法更加适合于匹配点数量极多的情况。
4)计算相机运动
1.、当相机为单目时,我们只知道 2D 的像素坐标,因而问题是根据两组 2D 点估计运动。该问题用对极几何来解决。
2.、当相机为双目、RGB-D 时,或者通过某种方法得到了距离信息,那么问题就是根据两组 3D点估计运动。该问题通常用 ICP 来解决。
3、 如果一组为 3D,一组为 2D,即,我们得到了一些 3D 点和它们在相机的投影位置,也能估计相机的运动。该问题通过 PnP 求解。
二、特征点法各种算法
1)对极约束
根据2D-2D特征点对求解R,t
2)三角测量
根据2D-2D特征点求深度
3)PnP
根据3D点云和匹配的2D图像求R,t;
4)ICP
求两个点云之间的R,t。
它们之间的关系是:
1)特征点法找到2D图像的匹配点对,用于对极几何和pnp
2)对极几何求出2D-2D的位姿。
3)根据对极几何求出的位姿,三角测量求出2D-2D的深度。
4)根据三角测量求出的深度,可以初始化单目SLAM,得到三维点信息;或用RGBD相机获得三维信息。知道3D信息,对于下一张2D图像,可根据特征点法找到的匹配点对,使用PNP,求出位姿信息和深度信息。
5)根据pnp求出的深度信息;或直接用RGBD得到的两个点云,可以用ICP,求出两个点云之间的位姿变换。
视觉SLAM十四讲第七讲相关推荐
- 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践
专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...
- 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵
专栏系列文章如下: 专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...
- 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...
- 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-PnP和实践
专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记- ...
- 《视觉SLAM十四讲 第二版》笔记及课后习题(第七讲)
读书笔记:视觉里程计1 之前的内容,介绍了运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法.从本讲开始,我们结束了基础知识的铺垫,开始步入正题:按照第二讲的内容,分别介绍视觉里程计.优 ...
- 视觉SLAM十四讲学习笔记专栏汇总
专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二 ...
- 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法
目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...
- 【视觉SLAM入门】一些关于视觉SLAM十四讲的重要基础概念
文章目录 高翔. *视觉SLAM十四讲 从理论到实践*. 电子工业出版社, 2017. Print. 第二章:初识SLAM 第三章:三维空间刚体运动 第四章:李群与李代数 第五章:相机与图像 第六章: ...
- 《视觉SLAM十四讲》第二版源码slambook2编译调试
slambook2-master/ch2 编译正常,log如下: slambook2-master/ch2# mkdir build && cd build && cm ...
- 视觉SLAM十四讲——ch7
视觉SLAM十四讲--ch7 ch7视觉里程计 本章目标: 1.理解图像特征点的意义,并掌握在单副图像中提取出特征点及多副图像中匹配特征点的方法 2.理解对极几何的原理,利用对极几何的约束,恢复出图像 ...
最新文章
- [再读书]私有构造函数
- elasticsearch docker无法挂载_使用Docker安装Graylog日志收集系统
- mysql8.0 linux安装自启动_Linux系统安装部署MySQL8.0.12特详细教程
- 反思网络中的观点:太过杂乱 需要很强的甄别能力
- windows下sshfs挂载远程文件夹-server could not connect故障解决
- 根据IP地址查询其所属城市
- 学弟学妹看过来,小白到大神必经之路!
- 腾讯联手国家信息中心启动共筑疫情“数据长城”计划
- vmware虚拟机里的服务器自动关闭,让VirtualBox虚拟机在主机关闭时自动关闭或保存状态VBoxVmService...
- Vmware Ubuntu 开机蓝屏
- can't resolve symbol 'R' ...
- 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
- 1096 大美数 分数 15
- 基于kettle的可视化数据集成平台
- OS-机械硬盘的磁盘初始化
- 【NOIP2012DAY1】国王游戏
- 采购里的“一分钱一分货”,确定你没被套路?
- 华文慕课操作系统陈向群第三章课后习题解析
- matlab实现视频的载入,及各帧的图片显示
- Android微信智能心跳方案(转)