转载网址: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. OSPF路由汇总

    转载自红茶三杯博客:http://blog.sina.com.cn/s/blog_5ec353710102vtfy.html 1. 关于路由汇总 路由汇总,又被称为路由聚合(Route Aggrega ...

  2. (11)Linux服务器管理维护注意事项

    1.远程服务器关机及重启时的注意事项 为什么远程服务器不能关机?原因很简单,远程服务器没有放置在本地,关机后谁帮你按开机电源键启动服务器?虽然计算机技术曰新月异,但是像插入电源和开机这样的工作还是需要 ...

  3. 安装kettle

    保证安装了jdk 在window 下载解压 解压到任意目录下 运行startZK.bat 在Linux安装 1.将kettle上传到Linux服务器的/opt/server目录下(如果该目录不存在则创 ...

  4. mysql:如何利用覆盖索引避免回表优化查询

    说到覆盖索引之前,先要了解它的数据结构:B+树. 先建个表演示(为了简单,id按顺序建): id name 1 aa 3 kl 5 op 8 aa 10 kk 11 kl 14 jk 16 ml 17 ...

  5. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)【ABCDF】

    比赛链接:https://codeforces.com/contest/1443 A. Kids Seating 题意 构造一个大小为 \(n\) 的数组使得任意两个数既不互质也不相互整除,要求所有数 ...

  6. P4074 [WC2013]糖果公园 树上莫队带修改

    题目链接 Candyland 有一座糖果公园,公园里不仅有美丽的风景.好玩的游乐项目,还有许多免费糖果的发放点,这引来了许多贪吃的小朋友来糖果公园游玩. 糖果公园的结构十分奇特,它由 nn 个游览点构 ...

  7. Codeforces Round #578 (Div. 2) C. Round Corridor (思维,数论)

    题意: 有一个分两层的圆盘,每层从12点方向均分插入\(n\)和\(m\)个隔板,当内层和外层的隔板相连时是不能通过的,有\(q\)个询问,每次给你内层或外层的两个点,判断是否能从一个点走到另外一个点 ...

  8. Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version) (贪心)

    题意:给你一组数,每次可以选队首或队尾的数放入栈中,栈中元素必须保持严格单增,问栈中最多能有多少元素,并输出选择情况. 题解:首先考虑队首和队尾元素不相等的情况,如果两个数都大于栈顶元素,那么我们选小 ...

  9. Codeforces Round #496 (Div. 3) D. Polycarp and Div 3 (数论)

    题意:给你一个巨长无比的数,你可以将这个数划成任意多个部分,求这些部分中最多有多少个能被\(3\)整除. 题解:首先我们遍历累加每个位置的数字,如果某一位数或者累加和能被\(3\)整除(基础知识,不会 ...

  10. HDU 1173 思路题

    题目大意 有n个地点(坐标为实数)需要挖矿,让选择一个地点,使得在这个地方建造基地,到n个地点的距离和最短,输出基地的坐标. 题解+代码: 1 /* 2 把这个二维分开看(即把所有点投影到x轴上,再把 ...