GDAL中的SURF演算法

來源:互聯網
上載者:User

在去年的時候,在GDAL的郵件清單中發現有人提出要在GDAL中添加自動提取匹配點(GCP)的演算法,在經過了將近半年的時間,GDAL中的匹配演算法終於有了實質性的進展。在目前GDAL的開發版本(GDAL1.10beta)中已經提交,該匹配演算法是基於SURF演算法來實現的。

實現該演算法的人叫Andrew Migal,郵件地址為:migal.drew@gmail.com。同時在實現SURF演算法的時候,Andrew通過部落格記錄了所有的過程,有興趣的童鞋可以訪問這裡看看:http://correlatorgsoc2012.blogspot.com。

在Andrew研究SURF的時候,最初寫了一個C#版本的程式,代碼掛靠在github上,為:https://github.com/migal-drew/SimpleSURF_csharp。之後又寫了一個基於GDAL庫的C++代碼,代碼為:https://github.com/migal-drew/GDAL-correlator。不過我記得這個C++版本的好像需要FLANN的庫才能編譯過去,不知道之後有沒有修改。最後在GDAL庫中也有相關的代碼,有興趣的童鞋可以更新開發版本的GDAL看看原始碼。

目前比較遺憾的是,對於SURF演算法,還不支援大影像處理,看來處理的時候只能自己分塊來處理了。

下面是用andrew的C#版本程式處理了一下,感覺速度很快,比SIFT要快不少。對比的SIFT庫是Rob Hess維護的SIFT庫,同時測試資料也是使用Rob Hess庫中裡面的beaver和beaver_xform。


beaver

beaver_xform

上面兩個映像找到的特徵點如所示,使用SURF閾值為0.001,分別找到了57個和59個特徵點。如所示:


接下來使用匹配閾值為1,進行匹配,發現只剩下了7對點,其中有一個明顯是錯誤的(尾巴上的最右側的那個點),如所示:


點匹配的結果如所示。通過簡單的直觀感覺,SURF確實要比SIFT快很多,(通過這兩個庫可以比較一下,SIFT是C++的庫,SURF是C#的庫,C#的運行效率肯定不及C++的高),尤其是在尋找特徵點的時候,SURF的速度要比SIFT快很多,當然由於兩者的參數沒有進行相同的設定,可能也會影響速度。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.