LSH是否将向量转换为汉明距离的二元向量?

时间:2016-05-24 08:55:07

标签: image-processing sift nearest-neighbor orb locality-sensitive-hash

我读了一些关于LSH的论文,我知道它用于解决近似的k-NN问题。我们可以将算法分为两部分:

  1. 给定任意值的D维(其中D为大)的向量,使用一组N(其中N<<D)哈希对其进行翻译函数为N维度中的二元向量。

  2. 使用汉明距离,对从阶段1获得的给定二进制代码集应用一些搜索技术,以找到k-NN。

  3. 关键点是使用XOR计算N维度中矢量的汉明距离很快。

    无论如何,我有两个问题:

    1. 如果我们使用像ORB这样的二进制描述符,那么仍然需要点1。由于ORB的描述符已经是二进制文件,我们使用汉明距离来比较它们,为什么我们应该执行第一点呢?

    2. SIFT描述的图像转换的方式如何?每个SIFT描述符是128位,每个图像由一组描述符描述。所以我们有矩阵descX128(其中desc是使用的描述符的数量),而LSH通常接受矢量作为输入。

1 个答案:

答案 0 :(得分:2)

1)您可以绕过它,但是然后您将使用D尺寸,而不是N。其中N << D。这意味着该算法也必须适应D维度。

2)

阅读SIFT from openCV

  
      
  1. 关键点描述符
  2.         

    现在创建了关键点描述符。一个16x16左右的社区   关键点被采取。它分为16个4x4大小的子块。对于   每个子块,创建8个bin方向直方图。所以总共   128个bin值可用。它被表示为形成的向量   关键点描述符。除此之外,还采取了一些措施   实现对照明变化,旋转等的稳健性。

以下是我的想法,希望这足够了:

LSH将n点的点集作为输入,其中每个点位于d维。

因此,查询是d维度中的一个点,目标是找到其NN *

  1. 现在每个点代表一个图像描述符。所以,我们有n张图片 数据集。

  2. 查询,也是一个点(即d的向量 coordinates),代表另一个图像描述符。

  3. 我们正在寻求匹配(即寻找最近邻居) 使用我们数据集中的图像描述符查询图像描述符。

  4. 所以你所谈论的转换是在矢量中应用的,不是矩阵。

    修改

    此外,在我们的High-dimensional approximate nearest neighbor: k-d Generalized Randomized Forests论文中,请参阅实验部分:

      

    SIFT是一个128维向量,用于描述本地图像补丁   局部梯度方向的直方图。

    * Fixed-radius near neighbors问题