OpenCV Freak - 我能在BOW中使用Freak特征描述符吗?

4
我正在尝试使用OpenCV中的FREAK来检测特征并提取描述符,然后构建我的BOW词汇,并对每个图像使用该词汇与BOW进行匹配。我知道BOW也可以与其他描述符(如SIFT或SURF)一起使用,但不清楚二进制描述符FREAK是否可与BOW一起使用。更具体地说,当OpenCV构建BOW词汇时,它使用k-means聚类算法。对于像FREAK这样的二进制描述符,Hamming距离似乎是唯一的选择。
在计算距离时,看起来OpenCV的k-means只使用欧几里得距离,真是让人失望。看起来我必须构建自己的k-means和自己的词汇匹配。有没有聪明的人知道解决方法?
谢谢!

在 SO 提问之前,请阅读此链接 http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles ,不要在问题标题中包含标签细节。 - Abdul Rahman
我认为你应该针对汉明距离实现自己的k-means算法。 - luhb
FREAK只是一个描述符。对于检测,您可能想使用BRISK。 - Jean-Philippe Jodoin
2个回答

1
我在一份文件中读到,Freak 不易于使用。以下是该文件的摘录:“…这些算法不能轻易用于许多检索算法中,因为它们必须与汉明距离进行比较,而汉明距离不易适应于加速搜索结构,例如词汇树或近似最近邻(ANN)…。(ORB,FREAK和BRISK)”

0

FREAK使用局部敏感哈希。您可以在OpenCV中使用包含FLANN(快速近似最近邻居)的FREAK。

对于BOW,仅使用描述符的前5、6、7、8个字节可能足以构建树。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接