Performance 多探针LSH索引Opencv
我编写了一个程序,通过获取两个ORB描述符,然后使用multiprobe LSH索引比较两个图像:Performance 多探针LSH索引Opencv,performance,opencv,indexing,Performance,Opencv,Indexing,我编写了一个程序,通过获取两个ORB描述符,然后使用multiprobe LSH索引比较两个图像: flann::Index flannIndex(descriptorsA, flann::LshIndexParams(1,20,2), cvflann::FLANN_DIST_HAMMING); flannIndex.knnSearch(descriptorsB, index, dist, 1, flann::SearchParams()); 它在42秒内(线性)将一个输入图像与10k图像进
flann::Index flannIndex(descriptorsA, flann::LshIndexParams(1,20,2), cvflann::FLANN_DIST_HAMMING);
flannIndex.knnSearch(descriptorsB, index, dist, 1, flann::SearchParams());
它在42秒内(线性)将一个输入图像与10k图像进行比较,获得了良好的结果
--
在我之前
flann::Index flannIndex(descriptorsA, flann::LshIndexParams(10,10,2), cvflann::FLANN_DIST_HAMMING);
flannIndex.knnSearch(descriptorsB, index, dist, 1, flann::SearchParams());
使用相同的输入和数据库,检索结果也需要65秒
我的问题更多的是关于LSH的实现:为什么减少表的数量和增加键的大小会使搜索更快?换言之:
为什么
快于
flann::Index flannIndex(descriptorsA, flann::LshIndexParams(10,10,2), cvflann::FLANN_DIST_HAMMING);
flann::Index flannIndex(descriptorsA, flann::LshIndexParams(10,10,2), cvflann::FLANN_DIST_HAMMING);