我有大约 130,000 个 SIFT 描述符。我正在使用 Opencv 的 flann 模块构建分层 Kmeans 索引。在此之后,我想量化这 130,000 个描述符(稍后将量化更多)。我正在使用 flann 的 knnsearch 方法来执行此操作。但是这种方法的结果有些奇怪。对于每个描述符,它显示的最近索引是描述符本身的索引。但是,它应该显示最近的集群的集群 ID,这将是 HIK 树的叶子之一。
我应该尝试 k=2
这是一个代码片段 -
int k=1;
cv::flann::KMeansIndexParams indexParams(8,4,cvflann::FLANN_CENTERS_KMEANSPP) ;
cv::flann::Index hik_tree(cluster_data, indexParams);
Mat indices,dist;
hik_tree.knnSearch(cluster_data, indices, dist, k, cv::flann::SearchParams(64));