将一张图像中的SURF描述符与其他图像中的描述符列表进行比较

6
我希望比较图像A中的SURF描述符和其他几个图像(B、C、D等)中的描述符,以找到与A最相似的图像。这些描述符具有64个维度。
使用C#和Emgu,匹配是通过将A的描述符与B的描述符、C的描述符、D的描述符等进行比较来完成的。当图像数超过10时,这种方法非常慢,因为需要搜索许多无关的描述符。
为了加快这个过程,根据文章的说法,正确的方法似乎是为(B、C、D等)中的描述符构建一个kd树,以快速匹配查找A中的描述符。kd树根据级别按维度分割。第一次分割由第一维决定,第二次分割由第二维决定,依此类推。然而,对于描述符的维数(64),使用KD树的好处变得较小。
所以我的问题是:您在使用KD树/其他方法将一个图像(A)中的SURF描述符与几个图像(B、C、D...)进行匹配方面有何经验或知识?什么做得好,什么做得不好,您是否做过类似的事情?
FLANN可以作为一个选项,在OpenCV中使用,但我找不到C#版本。近似最近邻算法也可以用来加速kd树,但对于匹配图像是否有好的效果呢?
此致 Morten
2个回答

0

你可以尝试在C或C++上使用FLANN。它并不太复杂。

然而,我正在C++上测试FLANN,但匹配时间(使用SURF特征、FLANN,在1,000张图像上进行查询)非常长,从20秒到400秒不等(取决于每个图像的特征向量数量)。


0

http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples/c/find_obj.cpp - Piotr
第二个提供的链接也无法加载(了)。 - F.H.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接