视觉SLAM 主要分为视觉前端和优化后端。前端也称为视觉里程计(VO)。它根据相邻图像的信息,估计出粗略的相机运动,给后端提供较好的初始值。VO 的主要问题是如何根据图像来估计相机运动。VO 的实现方法,按是否需要提取特征,分为特征点法的前端以及不提特征的直接法前端。

首先,从图像中选取比较有代表性的点。这些点在相机视角发生少量变化后会保持不变,所以我们会在各个图像中找到相同的点。然后,在这些点的基础上,讨论相机位姿估计问题,以及这些点的定位问题。

特征点由关键点(Key-point)和描述子(Descriptor)两部分组成。关键点是指该特征点在图像里的位置,有些特征点还具有朝向、大小等信息。描述子通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息。描述子是按照“外观
相似的特征应该有相似的描述子”的原则设计的。

ORB 特征由关键点和描述子两部分组成。它的关键点称为“Oriented FAST”,是一种改进的FAST 角点。它的描述子称为BRIEF(Binary Robust Independent Elementary Features)。因此,提取ORB 特征分为两个步骤:
1. FAST 角点提取:找出图像中的” 角点”。相较于原版的FAST, ORB 中计算了特征点的主方向,为后续的BRIEF 描述子增加了旋转不变特性。
2. BRIEF 描述子:对前一步提取出特征点的周围图像区域进行描述。

(质心是指以图像块灰度值作为权重的中心。)

特征匹配是视觉SLAM 中极为关键的一步,解决了SLAM 中的数据关联问题(data association),即确定当前看到的路标与之前看到的路标之间的对应关系。

描述子距离表示了两个特征之间的相似程度,在实际运用中还可以取不同的距离度量范数。对于浮点类型的描述子,使用欧氏距离进行度量即可。而对于二进制的描述子(比如BRIEF 这样的),我们往往使用汉明距离(Hamming distance)做为度量——两个二进制串之间的汉明距离,指的是它们不同位数的个数。

接下来,我们希望根据匹配的点对,估计相机的运动。这里由于相机的原理不同,情况发生了变化:

1. 当相机为单目时,我们只知道2D 的像素坐标,因而问题是根据两组2D 点估计运动。该问题用对极几何来解决。
2. 当相机为双目、RGB-D 时,或者我们通过某种方法得到了距离信息,那问题就是根据两组3D 点估计运动。该问题通常用ICP 来解决。
3. 如果我们有3D 点和它们在相机的投影位置,也能估计相机的运动。该问题通过PnP求解。

对极约束:几何意义——O1; P;O2 三者共面。对极约束中同时包含了平移和旋转。把中间部分记作两个矩阵:基础矩阵(Fundamental Matrix)F 和本质矩阵(Essential Matrix)E,本质矩阵E = t^R(旋转R和平移t的外积,叉乘)。由于平移和旋转各有三个自由度,故t^R 共有六个自由度。但由于尺度等价性,故E实际上有五个自由度。

单应矩阵(Homography)H 描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上(比如墙,地面等),则可以通过单应性来进行运动估计。p2 = Hp1。它的定义与旋转、平移以及平面的参数有关。(听说找工作面试时有被问到单应矩阵的相关问题)。

SLAM——视觉里程计相关推荐

  1. 视觉SLAM⑦---视觉里程计Ⅰ(特征点法、2D-2D对极几何)

    目录 7.0 本章主要目标 7.1 特征点法 7.1.1 特征点 7.1.2 ORB特征 7.1.3 特征匹配 7.2 实践:特征提取和匹配 7.2.1 OpenCV的ORB特征 7.2.2 手写OR ...

  2. SLAM视觉里程计的理解

    四种坐标系 SLAM中,用到四种坐标系:1.某点在现实世界坐标系中的坐标:2.点在相机坐标系中的坐标:3.归一化后的相机坐标(即Z=1,表示到相机距离为1的平面上的点的X.Y坐标):4.像素二维坐标. ...

  3. SLAM - 视觉里程计 - LK光流法

    CMakeLists.txt: cmake_minimum_required( VERSION 2.8 ) project( 项目名 )set( CMAKE_BUILD_TYPE Release ) ...

  4. SLAM前端中的视觉里程计和回环检测

    1. 通常的惯例是把 VSLAM 分为前端和后端.前端为视觉里程计和回环检测,相当于是对图像数据进行关联:后端是对前端输出的结果进行优化,利用滤波或非线性优化理论,得到最优的位姿估计和全局一致性地图. ...

  5. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  6. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  7. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  8. 【视觉SLAM十四讲】视觉里程计—特征点法

    本文为视觉 SLAM 学习笔记,讲解视觉里程计中的特征点法. 本讲内容概要 图像特征的意义,在单幅及多幅图像中提取特征点. 对极几何的原理,利用对极几何的约束恢复图像间相机的三维运动 PnP 问题,利 ...

  9. SLAM系列——视觉里程计(特征法)

    目录 1 特征点法 1.1 特征点 1.2 ORB特征 1.3 特征匹配 2 特征提取与匹配 3 2D-2D:对极几何 3.1 对极约束 3.2 本质矩阵 3.3 单应矩阵 讨论 4 实践:对极约束求 ...

最新文章

  1. 一款高颜值的 MySQL 管理工具
  2. HDU3037(卢卡斯定理)
  3. 找论文太难?试试这款「文本生成」论文搜索工具丨开源
  4. nova ERROR (ClientException): 解决方法
  5. Entity Framework 学习结束语
  6. 销售人员26个致命弱点
  7. 激光雷达与毫米波雷达对比
  8. 【NOI 2018】归程(Kruskal重构树)
  9. 华为取代苹果 手机销量再创新高
  10. 「CJOJ2723」Reserve
  11. python 核心编程 练习题
  12. 线性规划的大M法和非线性规划的拉格朗日乘子法
  13. 学习,不仅要知其然,更要知其所以然。
  14. 2021年9月国产数据库大事记-墨天轮
  15. 阿里云服务器(Centos7)安装谷歌浏览器
  16. ibeacon的实现,广播数据解析
  17. mysql表误删回复_MySQL数据库误删恢复
  18. html5两个标签重叠,css中两个盒子如何重叠?
  19. 11 ,FacetGrid 使用,分组画图 :各种图形,详细设置
  20. GoLand奔溃之后,文件目录变灰色,如何解决?

热门文章

  1. 骑士游历(Java课设)
  2. 安卓百战天虫_【双端】陪了我一整个童年的游戏,现在还是觉得很好玩!百战天虫4...
  3. linux python虚拟环境搭建_Linux 下创建python 虚拟环境
  4. 联署计划-三赢的网络营销
  5. 再出发!蓝代斯克更名Ivanti 主攻三大业务版块
  6. git ssh 原理
  7. div搜索框与按钮不在一行_手机资源搜索神器+下载神器,结合起来用才真的爽...
  8. UG编程加工15种撞刀过切的变化与解决方法
  9. Bresenham 算法画直线
  10. Ubuntu系统安装opencv详细操作及具体应用