Flann索引匹配和Flann匹配的区别

C++ / OpenCV - Difference between Flann Index matching and Flann matching

本文关键字:Flann 区别 索引      更新时间:2023-10-16

我正在尝试使用FLANN来理解更深层次的特征匹配,看起来有两种可用的方法:有索引和没有索引。

这是SO问题关于使用FLANN 索引匹配:如何使用opencv flann::Index?

下面是一个使用FLANN 而不使用索引进行匹配的例子:https://github.com/Itseez/opencv/blob/master/samples/cpp/matching_to_many_images.cpp

我当然看到了代码中的差异,但我试图理解使用一种方法相对于另一种方法的优势是什么。我知道,在数据库中,在许多情况下,添加索引可以提高性能。当使用FLANN匹配特征时,是否类似??

有人有这方面的经验吗?

特征匹配索引是一种以准确性换取速度的方法。FLANN所做的被称为"近似最近邻搜索"。这意味着你会失去一点准确性(例如,在某些时间内,你会找到下一个最佳近邻,而不是真正的最佳邻居),但你获得了数量级的加速。由于特征数据本身是有噪声的,所以在搜索阶段进行一些近似通常是可以容忍的。KGraph库提供的索引通常在相同精度下比FLANN快几倍。