[转]关于特征点法、直接法、光流法slam的对比
转载网址:https://blog.csdn.net/weixin_38203573/article/details/79787499
特征点法:
通过特征点匹配来跟踪点,计算几何关系得到R,t,BA来优化R,t,流程大致如下:
直接法:
直接法是从光流法演变而来的,是基于灰度不变假设,计算最小光度误差来优化R,t,流程大致如下:
光流法:
基于灰度不变假设,把特征点法中的描述子和匹配换成了光流跟踪,之后求解R,t的过程是一样的,流程大致如下:
那么这三种方法的优缺点各是什么呢,近期在学了视觉slam后做了初步的总结,希望大家批评指正。
PS.大多数情况下一种方法的有点即使另外一种方法的缺点,所以在一下没有提到的优缺点可以从其他方法的优缺点中获取。
优点 |
运动过大时,只要匹配点还在像素内,则不太会引起无匹配,相对于直接法有更好的鲁棒性。 |
只要关键点有梯度即可,可以在渐变的环境下工作 |
不需要计算描述子,不需要匹配特征点,节省了很多计算量。 |
不需要计算描述子,不需要匹配特征点,节省了很多计算量。 |
关键点提取的多少基本上都可以工作 |
||
可以筹建半稠密乃至稠密的地图 |
从稀疏到稠密重构基本上都可以使用 |
||
稀疏的直接法可以做到非常快速的效果,适合real time和资源受限的场合 |
|||
缺点 |
特征过多或过少都无法正常工作 |
图像无梯度,则对优化结果无贡献,特别如自动驾驶时候的天空 |
基于灰度不变假设,容易受外界光照的影响。 |
只能用来构建稀疏地图 |
基于灰度不变假设,容易受外界光照的影响。 |
相机发生大尺度移动或旋转时无法很好的追踪,非凸优化,容易局部极值。用尺度金字塔改善局部极值,组合光流法(增加旋转描述)改善旋转。 |
|
环境特征少,或者提不出角点(如:渐变色)都无法工作 |
相机发生大尺度移动或旋转时无法很好的追踪,非凸优化,容易局部极值。用尺度金字塔改善。 |
||
花很多时间在计算描述子和匹配上 |
单个像素没有区分度,需要计算像素块,结果只能少数服从多数。 |
||
容易受相机暗角影响 |
|||
提问 |
提取多少特征点算合适?(不多不少刚刚好?) |
计算出图像的光流后可以直接推导出相机的运动吗? |
由于直接法是光流法的衍生,所以他们有很多的相似性。
有不正确的地方希望大家指出,谢谢!