费舍尔矢量与LSH?

时间:2016-06-24 06:57:42

标签: c++ image-processing machine-learning cluster-analysis sift

我想实现一个给定输入图像的系统,它在(大约)50K图像的数据集中返回一个合理的类似的(近似是可接受的)。 时间表现至关重要

我将使用SIFT的并行版本来获取描述符矩阵D。我已经阅读了Fisher Vector(FV)(VLfeatYael实现)作为学习和更精确的替代Bag of Features(BoF)以将D表示为单个向量v

我的问题是:

  1. FV的距离是多少?是欧几里德吗?在那种情况下,我会在eucledian距离中使用LSH来快速找到FV的近似邻近区域。
  2. 还有其他FV效率(就时间而言) C ++ 实施吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑的另一种方法是 VLAD 编码。 (基本上是FV的非概率版本,用k-Means聚类代替GMM)

实现与标准矢量量化略有不同,但在我的实验中,它表现出更好的性能和更低的码本大小。

它使用欧氏距离来查找最近的码本向量,但它不是仅计算元素,而是累积每个元素残余

图片搜索的示例:Link

FV / VLAD文件:Paper