約 130,000 の SIFT 記述子があります。Opencv の flann モジュールを使用して、階層的な Kmeans-index を構築しています。この後、これらの 130,000 個の記述子を量子化したいと思います (後でさらに量子化します)。これを行うために、フランの knnsearch メソッドを使用しています。しかし、この方法の結果は奇妙なものです。すべての記述子について、表示されている最も近いインデックスは、記述子自体のインデックスです。ただし、HIK ツリーのリーフの 1 つである最も近いクラスターのクラスター ID を表示する必要があります。
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));