2011-11-30 104 views
6

我想比較一幅圖像(A)中的SURF描述符與幾幅其他圖像(B,C,D,...)中的描述符以查找與A最相似的圖像。描述符有64個維度。將一個圖像中的SURF描述符與其他圖像中的描述符列表進行比較

使用C#和Emgu,通過將A的描述符與B的,C的,然後D等進行比較來完成匹配。當圖像計數超過10時這很慢,因爲需要搜索許多不相關的描述符。

爲了加速這個過程,正確的路要走(根據文章)似乎是爲(B,C,D,...)中的描述符構建一個kd樹來快速匹配找到描述符A. kd-tree根據級別進行分割。第一個分割由第一維分割,第二維分割等。然而,在描述符(64)的維數很高的情況下,使用KD樹的好處變得更小。

所以我的問題是:你有什麼經驗或知識使用KD樹/其他方法來匹配SURF描述符從一個圖像(A)到幾個圖像(B,C,D ..)。什麼效果很好,不太好,你做了這樣的事情嗎?

FLANN將成爲一個選項,因爲它被OpenCV使用,但是我找不到C#的版本。大約最近的Neightboor也可以加快kd-tree的速度,但是這對匹配圖像效果如何?

問候 莫滕

回答

0

您可以嘗試FLANN它在C或C++。這不是太複雜。但是,我在C++上測試FLANN,但匹配時間(在1,000幅圖像上使用SURF特徵,FLANN查詢)非常長,從20秒到400秒(取決於每幅圖像的特徵向量數)。