2011-11-09 80 views
6

我想要獲取用相機拍攝的圖像中某個對象的位置。在這種情況下,模板匹配不會執行,因爲我需要一個比例/旋轉不變的解決方案。使用關鍵點計算對象的相似度

所以我現在使用的從OpenCV的快速算法來檢測我的形象,這似乎是工作好關鍵點。

但接下來呢?我有我想要檢測的對象的「模板圖像」。我可以想象,我也必須檢測此模板圖像的關鍵點,然後將它與相機拍攝的圖像進行比較。這是我接下來要做的,如果是這樣,我可以使用哪些功能? (我使用的OpenCV)

還是有這樣做的另一種方式?

那麼我怎樣才能使用關鍵點來檢測我的形象有一定的對象?

+1

你可以看看這個頁面的最後3個教程,也許他們可以使用你:http://opencv.itseez.com/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html – Adrian

+0

@AdrianPopovici謝謝,我試過「Features2D + Homography找到一個已知的物體」,它的效果非常好。缺點是它的速度極慢。但那可能是因爲我在iphone上。我會試試最後一個,看看是否更快。無論如何,謝謝你指出我正確的方向! – w00

回答

6

您正在使用FAST用於檢測關鍵點,這沒關係。

現在,下一個步驟是使用描述Extractator。什麼是描述符提取器?是一種生成關鍵點描述的算法,該關鍵點使得該關鍵點可通過匹配器識別。着名的描述符是SIFT,FREAK ...

在模板圖像和查詢圖像中找到描述符後,您將需要一個匹配器。匹配器會告訴你哪些描述符是相同的。

注意,SIFT需要基於歐幾里德距離的匹配器(FLANN),但FREAK或其他二進制描述符需要基於漢明距離匹配。

1

嘗試ORB功能來代替。它們被設計得更快。
另外,請看CARD descriptors

+0

我試圖實現ORB方法,但每次嘗試時都會崩潰。當我嘗試做一場比賽時,它不斷崩潰。 - 暴力方法:http://pastebin.com/BvnFQgcY --- flannBased:http://pastebin.com/1RrCv0QL - 任何想法可能是什麼問題? – w00