zoukankan      html  css  js  c++  java
  • [转]关于特征点法、直接法、光流法slam的对比

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

    特征点法:

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

    直接法:

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

    光流法:

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

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

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

    优点

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

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

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

     

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

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

     

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

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

     

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

     

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

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

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

    只能用来构建稀疏地图

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

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

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

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

     

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

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

     
     

    容易受相机暗角影响

     

    提问

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

     

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

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

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

  • 相关阅读:
    SQL学习笔记9——SQL中检索数据之分页查询
    SQL学习笔记8——SQL中检索数据之子查询
    SQL学习笔记7——SQL中检索数据之连接查询
    Two Pointer
    LeetCode 1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
    leetcode 30 days challenge Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary Tree
    LeetCode First Unique Number
    letcode1143 Longest Common Subsequence
    Leetcode 560 Subarry Sum Equals K
    leetcode Leftmost Column with at Least a One
  • 原文地址:https://www.cnblogs.com/qiuheng/p/9285673.html
Copyright © 2011-2022 走看看