LSH是否很少用于OpenCV的flann?

时间:2016-04-06 08:40:58

标签: c++ opencv matching nearest-neighbor

我们知道LSH只能使用CV_8U(二进制描述符)和其他方法(如KMeansIndexParams,KDTreeIndexParams和LinearIndexParams)使用CV_32F。

void lsh_search(const Mat& data,const Mat& point, Mat& indices, Mat& dists, const int k){

    start_time1 = clock();
    flann::Index flannIndex(data,flann::LshIndexParams(15,2,2),cvflann::FLANN_DIST_HAMMING);   
    finish_time1 = clock();
    flannIndex.save("lshIndex.xml");
    start_time2 = clock();
    flannIndex.knnSearch(point, indices, dists, k,flann::SearchParams(-1));
    finish_time2 = clock();
}

我使用代码获取一个给定功能的最近1000个功能(总共50000个功能),并将结果与​​bruteforce的结果进行比较。我发现LSH的结果与kdTree或kmeans相比是最差的。

那么OpenCV在选择“flann :: AutotunedIndexParams”的最佳方法时是否很少使用LSH?通过更改flann :: LshIndexParams的参数,我得到的最好结果是25%。

0 个答案:

没有答案