我正在尝试使用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快几倍。