转载网址:https://blog.csdn.net/weixin_38203573/article/details/79787499

特征点法:

通过特征点匹配来跟踪点,计算几何关系得到R,t,BA来优化R,t,流程大致如下:

直接法:

直接法是从光流法演变而来的,是基于灰度不变假设,计算最小光度误差来优化R,t,流程大致如下:

光流法:

基于灰度不变假设,把特征点法中的描述子和匹配换成了光流跟踪,之后求解R,t的过程是一样的,流程大致如下:

那么这三种方法的优缺点各是什么呢,近期在学了视觉slam后做了初步的总结,希望大家批评指正。

PS.大多数情况下一种方法的有点即使另外一种方法的缺点,所以在一下没有提到的优缺点可以从其他方法的优缺点中获取。

优点

运动过大时,只要匹配点还在像素内,则不太会引起无匹配,相对于直接法有更好的鲁棒性。

只要关键点有梯度即可,可以在渐变的环境下工作

不需要计算描述子,不需要匹配特征点,节省了很多计算量。

 

不需要计算描述子,不需要匹配特征点,节省了很多计算量。

关键点提取的多少基本上都可以工作

 

可以筹建半稠密乃至稠密的地图

从稀疏到稠密重构基本上都可以使用

 

稀疏的直接法可以做到非常快速的效果,适合real time和资源受限的场合

 

缺点

特征过多或过少都无法正常工作

图像无梯度,则对优化结果无贡献,特别如自动驾驶时候的天空

基于灰度不变假设,容易受外界光照的影响。

只能用来构建稀疏地图

基于灰度不变假设,容易受外界光照的影响。

相机发生大尺度移动或旋转时无法很好的追踪,非凸优化,容易局部极值。用尺度金字塔改善局部极值,组合光流法(增加旋转描述)改善旋转。

环境特征少,或者提不出角点(如:渐变色)都无法工作

相机发生大尺度移动或旋转时无法很好的追踪,非凸优化,容易局部极值。用尺度金字塔改善。

 

花很多时间在计算描述子和匹配上

单个像素没有区分度,需要计算像素块,结果只能少数服从多数。

 
 

容易受相机暗角影响

 

提问

提取多少特征点算合适?(不多不少刚刚好?)

 

计算出图像的光流后可以直接推导出相机的运动吗?

由于直接法是光流法的衍生,所以他们有很多的相似性。

有不正确的地方希望大家指出,谢谢!

[转]关于特征点法、直接法、光流法slam的对比的更多相关文章

  1. 目标跟踪之Lukas-Kanade光流法

    转载自:http://blog.csdn.net/u014568921/article/details/46638557 光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于19 ...

  2. 光流法(optical flow)

    光流分为稠密光流和稀疏光流 光流(optic flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了.因为这种视觉现象我们每天都在经历.从本质上说,光流就是你在这个运动着的世界里感 ...

  3. 【图像处理】openCV光流法追踪运动物体

    openCV光流法追踪运动物体 email:chentravelling@163.com 一.光流简单介绍 摘自:zouxy09 光流的概念是Gibson在1950年首先提出来的.它是空间运动物体在观 ...

  4. OpenCV Using Python——基于SURF特征提取和金字塔LK光流法的单目视觉三维重建 (光流、场景流)

    https://blog.csdn.net/shadow_guo/article/details/44312691 基于SURF特征提取和金字塔LK光流法的单目视觉三维重建 1. 单目视觉三维重建问题 ...

  5. 【Matlab】运动目标检测之“光流法”

    光流(optical flow) 1950年,Gibson首先提出了光流的概念,所谓光流就是指图像表现运动的速度.物体在运动的时候之所以能被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的 ...

  6. 目标跟踪之Lukas-Kanade光流法(转)

    光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于1981年提出的,创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法.光流计算基于物体移动的光学特性提 ...

  7. 光流法跟踪fast角点思路

    光流法需要include<opencv2/video/tracking.hpp>,用到列表,所以要include<list><vector>1.读取文件定义图像存储 ...

  8. LK 光流法简介

    前言 若假定一个局部区域的像素运动是一致的,则可以用这个新的约束条件替代前文中提到的全局速度平滑约束条件.这种光流算法就叫做 LK 光流法. LK 光流法的推导 首先,需要推导出光流约束方程. 这一步 ...

  9. OpenCV 使用光流法检测物体运动

    OpenCV 可以使用光流法检测物体运动,贴上代码以及效果. // opticalflow.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

随机推荐

  1. Cmder的findstr问题

    在环境变量中加入C:\windows\system32即可

  2. 寻找最小字符串,IP地址——解题报告

    寻找最小字符串 题目 思路 在寻找最小字符串的时候需要用到的函数有strcmp和strcpy,首先先输入输入字符串,先假设第一个字符串为最小的字符串min,再然比较接下来的字符串,当接下来的字符串比m ...

  3. JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比

    谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解了前面的前置知识,有利于对垃圾回收器的理解. 什么是垃圾? 垃圾,主要是指堆上的对象, ...

  4. 手把手教你从Git上导入项目

    Git上导入项目 进入Gitlab账户中的项目,点击Clone按钮,复制HTTPS路径.如果配置了SSH,则可以通过SSH导入项目. 在IDEA中,点击VCS-Checkout from Versio ...

  5. F - Courses (学生选课(匈牙利算法模板))

    题目大意:一共有N个学生跟P门课程,一个学生可以任意选一门或多门课,问是否达成: 1.每个学生选的都是不同的课(即不能有两个学生选同一门课) 2.每门课都有一个代表(即P门课都被成功选过) 输入为: ...

  6. python的scrapy框架的使用 和xpath的使用 && scrapy中request和response的函数参数 && parse()函数运行机制

    这篇博客主要是讲一下scrapy框架的使用,对于糗事百科爬取数据并未去专门处理 最后爬取的数据保存为json格式 一.先说一下pyharm怎么去看一些函数在源码中的代码实现 按着ctrl然后点击函数就 ...

  7. java中string,stringBuffer和StringBuider

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  8. 2.使用jenkins自动构建并发布应用到k8s集群

    作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-21 14:39:01 星期五 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...

  9. codevs1068乌龟棋-四维DP,五维如何缩减一维

    我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y ...

  10. STM32F107移植LWIP

    STM32F107上移植LWIP2.0.3 因为最近需要在STM32F107上实现TCP/IP协议栈,所以网上查了一下,准备使用LWIP,虽然大多数用的是1.4.1版本但是官方说2系大版本修复了1.4 ...