视觉SLAM中特征点法,光流法,直接法的区别和理解

1.特征点法

简介:顾名思义,特征点法就是对图像提取特征,对图像特征进行跟踪的过程。

有关特征点的介绍
特征点一般包括了两部分:关键点和描述子
常用特征点:SIFT,SURF,ORB等
关键点:通过对图像取不同响应值得到的,如各种角点:例如最出名的FAST角点(ORBSLAM中所使用的特征点类型),Harries角点等
描述子:描述图像关键点的信息,如BRIFE描述子就可以轻量化的完成对关键点的信息记录,如在ORBSLAM(ORB=FAST角点+BRIFE描述子)当中,旋转不变性是由光度质心不变原理解决的,尺度不变性是由金字塔来解决的。

特征点在SLAM系统中的作用如下

前端视觉里程计:通过匹配特征点求取位姿变换,从而估计相机位姿,
后端优化:通过非线性优化的方法或者扩展卡尔曼滤波(EKF)通过路标点(特征点)对位姿进行进一步的优化。
回环检测:在有回环检测的情况下,可以通过FAB-MAP建立的特征点词袋(一类特征点通过聚类形成的一个包),对机器人是否检测回环进行判定。

特征点法的优缺点:(相对于其他算法的比较)
优点
1.理论成熟,研究和应用也是最广泛的,如ORBSLAM。
2.通过特征点建立的词袋(如FABMAP通过视觉特征进行聚类得到的特征点簇可以记作一个词,通过判定词的有无来判定是否回环),可以进行回环检测的判定。
3.基于特征点的算法,由于有描述子可以很稳定且鲁棒的对于视觉的特征进行描述,所以其不易受到光照的影响
缺点
1.对无纹理或者弱纹理会出现特征点匹配困难,比如管型腔体内,白色的墙面
2.关键点和描述子消耗计算资源比较大,实时性不高。
3.图像利用率不高,除了特征点其他点几乎对于SLAM系统没有太大贡献。

2.光流法和直接法

简介:把这两个放在一起讲是由于这两个直接法其实是由光流法演变过去的,它们都有一个共同而强烈的假设:光度(也可以叫做灰度)不变性。
光流法可以通过跟踪关键点(可以是FAST角点,没有描述子)来优化使得图像当中的两个对应的位置光度误差最小来估计相机的运动。
直接法相当于在这个基础上对前面估计的相机位姿进行进一步优化,因为这样的位姿很难保证全局最优性,例如在SVO(稀疏直接法)中,会对过去估计好的位姿通过用过去已经收敛的插入的地图点进行进一步全局的位姿优化。这使得位姿的估计更加的准确和鲁棒。
优点:
1.计算量小,实时性高。如SVO2.0的位姿估计算法在I7的平台上可以实现400帧每秒的速度
2.通过直接法的方式可以不需要有明显的纹理特征,只要一副图像当中有灰度变化即可,在没有特征点的时候甚至可以随机取点.
3.图像的利用率较高,可以利用这一点对图像进行半稠密或者稠密的重建。
缺点:

  1. 由于强烈假设的原因,对于图像的光度变化比较敏感
  2. 单纯图像的梯度来求取位姿的话,由于图像的非凸性,容易陷入局部最优
  3. 目前的直接法如SVO可能设计回环检测比较困难,不过高博士对DSO做了一个回环检测的内容具体还没看,有兴趣的可以参考https://vision.in.tum.de/research/vslam/ldso

总结

在视觉SLAM中,特征点法和直接法都是视觉SLAM中非常重要的组成部分,特征点法通过最小化重投影误差来计算相机位姿与地图点的位置,而直接法则最小化光度误差(photometric error)。所谓光度误差是说,这个最小化的目标函数,通常由图像之间的误差来决定,而非重投影之后的几何误差。
ps:
第一次写博客,可能文章不是非常谨慎,有问题或者疑问的地方希望大家可以多多评论和私信哦,我会及时回复的。
常用SLAM框架的论文我放到这里了,有需要的小可爱可以下载链接:https://pan.baidu.com/s/149hZE9Ql5dv0pMVBjTGY_A
提取码:1r85
这是我做SLAM的看论文的一些汇总,希望可以一键三连
有关直接法SVO的解析可以看这篇博客,讲解的很好,包括公式的推导和程序的解析都比较有帮助:https://blog.csdn.net/heyijia0327/article/details/51083398

参考文献:
[1] 高翔、张涛《视觉SLAM十四讲》
[2] Ra´ul Mur-Artal and Juan D. Tard´os. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo,and RGB-D Cameras.[J] IEEE TRANSACTIONS ON ROBOTICS VOL. 33, NO. 5, OCTOBER 2017
[3] Christian Forster et al. SVO: Semidirect Visual Odometry for Monocular and Multicamera Systems.[J]. IEEE TRANSACTIONS ON ROBOTICS,VOL. 33, NO. 2, APRIL 2017
[4].[https://blog.csdn.net/heyijia0327/article/details/51083398]

关于视觉SLAM中特征点法,光流法和直接法的区别和理解相关推荐

  1. SVO: 视觉SLAM中特征点法与直接法结合

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前面的话 VSLAM 是利用多视图几何理论,根据相机拍摄的图像信息 ...

  2. SLAM | 视觉SLAM中特征点法与直接法结合:SVO

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前面的话 VSLAM 是利用多视图几何理论,根据相机拍摄的图像信息对相机进行定位并同时构建周围环境地图 ...

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

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

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

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

  5. 视觉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 ...

  6. 视觉SLAM中,本质矩阵、基础矩阵、单应性矩阵自由度和秩分析

    视觉SLAM中,本质矩阵.基础矩阵.单应性矩阵自由度和秩分析 1.各个矩阵的自由度 由于基础矩阵和本质矩阵都是由对极约束来的 1.1 本质矩阵E的自由度为5,秩为2 1.1.1 自由度: 首先,旋转和 ...

  7. SLAM | 视觉SLAM中的后端:后端优化算法与建图模板

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 前面系列一中我们介绍了,VSLAM 是利用多视图几何理论,根据相机拍摄的图像信息 ...

  8. OA-SLAM:在视觉SLAM中利用对象进行相机重新定位

    作者 | 鱼肖浓  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/587010197 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

  9. 视觉SLAM中的公制尺度(metric scale)

    在很多视觉SLAM相关的文献中,都能看到一个词:metric scale,翻译为公制尺度.搜索这个词,得到的结果都是关于公制单位的. 其实在SLAM中公制尺度可以理解为"现实中的尺度&quo ...

  10. 视觉SLAM中的数学基础 第三篇 李群与李代数

    转自:http://www.cnblogs.com/gaoxiang12/p/5137454.html 致敬原作者,请移步原作者博文详细浏览 前言 在SLAM中,除了表达3D旋转与位移之外,我们还要对 ...

最新文章

  1. expect一键登录mysql
  2. WINDOWS下的squid
  3. Linux 命令之 whoami -- 打印当前有效的用户名称
  4. SpringBoot项目集成Mybatis Plus(四)SQL映射文件
  5. 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
  6. 计算机网络——数据链路层
  7. Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
  8. latex加下划线_给latex文字加下划线和高亮显示
  9. HANA数据库备份脚本案例(刘欣)
  10. Cloud Chou's Tech Blog编译相关
  11. GBase 8c 技术白皮书 六
  12. 关于用鲁大师对显卡性能进行评测时抛出“评测中切换页面”的异常的解决方案。
  13. python 汉字与拼音的转换--pypinyin
  14. python爬取百度百科保存scv
  15. 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,使用穷举法求公鸡、母鸡、小鸡各多少只。
  16. 核酸检测管理系统,核酸预约系统,核酸检测预约系统毕业设计作品
  17. 渐开线齿轮齿形误差和齿向误差
  18. PHP程序员的工作内容复杂吗?如何更快完成交代的任务?
  19. HTML圈c怎么打出来,一种方便固定手表的展示C圈的制作方法
  20. spring security (BCryptPasswordEncoder)加密及判断密码是否相同

热门文章

  1. SCDM学习笔记(1)
  2. PPT文件太大了怎么压缩
  3. python饼状图显示其比例_Python学习笔记--使用matplotlib绘制饼状图
  4. Leetcode每日一题 面试题56 - I.数组中数字出现的次数
  5. ipv6的127位掩码如何表示_网络工程师(5):IP如何编址
  6. 2020考研数学一大纲之完全解析(四)
  7. kubernetes-kube-scheduler进程源码分析
  8. 台式电脑硬件维修操作规范
  9. 用艾宾浩斯曲线记忆周期来背单词是否有理论依据?
  10. 深度学习——如何去除警告