基於網格的運動統計,用於快速、超魯棒的特徵匹配

說明:

將平滑度約束引入特徵匹配是已知的可以實現超強魯棒匹配。 然而,這樣的匹配方案既複雜又緩慢,使得它們不適合於視頻應用。 本文提出了GMS(基於網格的運動統計),一種簡單的方法,將運動平滑度作爲一個統計量,進行局部區域的匹配。GMS可以將高匹配數字轉換成高匹配質量。 這提供了一個實時、超強的匹配系統。 評估低質量、模糊的視頻和廣泛基線顯示,GMS始終如一地優於其他實時匹配器。


項目主頁:http://jwbian.net/gms

本人主頁:http://jwbian.net

C++代碼:https://github.com/JiawangBian/GMS-Feature-Matcher


論文GMS的方法實際上是消除錯誤匹配的一種方案,比如可以替換ransac。算法執行的大致流程是:先執行任意一種特徵點的檢測和特徵點的描述子計算,論文中採用的是ORB特徵。然後執行暴力匹配BF,最後執行GMS以消除錯誤匹配。


opencv的ransac非常耗時,他這個GMS則非常快,比opencv的ransac快好幾倍。我是說在同樣特徵點執行錯誤消除的時候要比openCV的ransac快。實際上ransac可以優化到非常快,至少可以比openCV的ransac要快10倍以上。


如果說是超越sift,是從最終的效果上看的。其實兩個完全不是一個可以直接進行比較的對象。


如論文中所說,ORB特徵採用1w個特徵點,則orb部分耗時佔90%,而GMS的時間可能之佔10%。論文中的GMS需要大量的特徵點,佔時間的將會集中在最前面部分了。這樣對比才是對的:


傳統的匹配: ORB + BF + RANSAC的時間比例是:30% + 30% + 40%

GMS匹配   : ORB + BF + GMS的時間比例是   :50% + 40% + 10%


當然最終的效果的確不錯,這是論文中值得稱道的地方。具體還要看應用場景,gms只是解決匹配的問題,ransac除了消除錯誤匹配,最重要的是得到了圖像之間的投影變換矩陣。而且有一點,如果把特徵點的數量弄到只有幾百個,那最終的效果勢必會大打折扣。具體需要進一步去跑跑代碼才能知道。


我的結論是:在同樣特徵點個數的情況下,用ORB+BF+GMS  的時間 小於 SIFT + RANSAC的時間。


爲了保證效果,特徵點的個數就會很多。這時候ORB+BF+GMS的匹配效果要遠好於SIFT+RANSAC,但整個時間可能和SIFT+SANSAC的時間相當甚至還要長。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章