4

我正在尝试在 opencv 中使用 Freak 来检测特征并提取描述符,然后构建我的 BOW 词汇表,并为每个图像使用词汇表与 BOW 匹配。你知道,整个事情。我知道 BOW 可以与 SIFT 或 SURF 等其他描述符一起使用,我不清楚二进制的 Freak 描述符是否可以与 BOW 一起使用。更具体地说,当 opencv 构建 BOW 词汇表时,它使用 k-means 集群。我不清楚 k-means 聚类算法使用什么距离函数。对于像 Freak 这样的二进制描述符,汉明距离似乎是唯一的选择。

在我看来,opencv k-means 在计算距离时只使用欧几里得距离,真可惜。看起来我必须建立自己的 k-means 和自己的词汇匹配。有没有聪明人知道解决方法?

谢谢!

4

2 回答 2

1

我在一篇论文上读到 Freak 不容易使用。这是论文的摘录“....这些算法在许多检索算法中都不容易使用,因为它们必须与汉明距离进行比较,汉明距离不容易适应诸如词汇树或近似最近邻(Approximate Nearest Neighbors)之类的加速搜索结构( ANN)...." (ORB ,FREAK 和 BRISK)

于 2012-11-12T15:09:07.697 回答
0

FREAK works with locality sensitive hashing. You can use it with FLANN (Fast approximate nearest neighbors) included in OpenCV.

For the BOW, only the first 5, 6, 7, 8 bytes of the descriptor might be sufficient to construct the tree.

于 2012-12-12T09:23:22.693 回答