gpt4 book ai didi

opencv flann 模块 : knn-search for hierarchical kmeans tree giving weird result

转载 作者:行者123 更新时间:2023-12-02 17:14:21 24 4
gpt4 key购买 nike

我有大约 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));

最佳答案

knnSearch正在寻找索引中的 k 最近邻(它没有给出集群 ID!)。您使用 cluster_data 构建索引, 然后你尝试匹配 cluster_data反对自己。在这种情况下,每个描述符的最近邻居是它自己也就不足为奇了……

编辑:如果您想获得这些中心,请查看以下内容(来自 FLANN 库的来源):

/**
* Chooses the initial centers using the algorithm proposed in the KMeans++ paper:
* Arthur, David; Vassilvitskii, Sergei - k-means++: The Advantages of Careful Seeding
*/
template <typename Distance>
class KMeansppCenterChooser : public CenterChooser<Distance>
{
...

关于opencv flann 模块 : knn-search for hierarchical kmeans tree giving weird result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com