轉載網址:https://blog.csdn.net/weixin_38203573/article/details/79787499
特征點法:
通過特征點匹配來跟蹤點,計算幾何關系得到R,t,BA來優化R,t,流程大致如下:
直接法:
直接法是從光流法演變而來的,是基於灰度不變假設,計算最小光度誤差來優化R,t,流程大致如下:
光流法:
基於灰度不變假設,把特征點法中的描述子和匹配換成了光流跟蹤,之后求解R,t的過程是一樣的,流程大致如下:

那么這三種方法的優缺點各是什么呢,近期在學了視覺slam后做了初步的總結,希望大家批評指正。
PS.大多數情況下一種方法的有點即使另外一種方法的缺點,所以在一下沒有提到的優缺點可以從其他方法的優缺點中獲取。
優點 |
運動過大時,只要匹配點還在像素內,則不太會引起無匹配,相對於直接法有更好的魯棒性。 |
只要關鍵點有梯度即可,可以在漸變的環境下工作 |
不需要計算描述子,不需要匹配特征點,節省了很多計算量。 |
不需要計算描述子,不需要匹配特征點,節省了很多計算量。 |
關鍵點提取的多少基本上都可以工作 |
||
可以籌建半稠密乃至稠密的地圖 |
從稀疏到稠密重構基本上都可以使用 |
||
稀疏的直接法可以做到非常快速的效果,適合real time和資源受限的場合 |
|||
缺點 |
特征過多或過少都無法正常工作 |
圖像無梯度,則對優化結果無貢獻,特別如自動駕駛時候的天空 |
基於灰度不變假設,容易受外界光照的影響。 |
只能用來構建稀疏地圖 |
基於灰度不變假設,容易受外界光照的影響。 |
相機發生大尺度移動或旋轉時無法很好的追蹤,非凸優化,容易局部極值。用尺度金字塔改善局部極值,組合光流法(增加旋轉描述)改善旋轉。 |
|
環境特征少,或者提不出角點(如:漸變色)都無法工作 |
相機發生大尺度移動或旋轉時無法很好的追蹤,非凸優化,容易局部極值。用尺度金字塔改善。 |
||
花很多時間在計算描述子和匹配上 |
單個像素沒有區分度,需要計算像素塊,結果只能少數服從多數。 |
||
容易受相機暗角影響 |
|||
提問 |
提取多少特征點算合適?(不多不少剛剛好?) |
計算出圖像的光流后可以直接推導出相機的運動嗎? |
由於直接法是光流法的衍生,所以他們有很多的相似性。
有不正確的地方希望大家指出,謝謝!