我读了一些关于LSH的论文,我知道它用于解决近似的k-NN问题。我们可以将算法分为两部分:
给定任意值的D
维(其中D
为大)的向量,使用一组N
(其中N<<D
)哈希对其进行翻译函数为N
维度中的二元向量。
使用汉明距离,对从阶段1获得的给定二进制代码集应用一些搜索技术,以找到k-NN。
关键点是使用XOR计算N
维度中矢量的汉明距离很快。
无论如何,我有两个问题:
如果我们使用像ORB这样的二进制描述符,那么仍然需要点1。由于ORB的描述符已经是二进制文件,我们使用汉明距离来比较它们,为什么我们应该执行第一点呢?
SIFT描述的图像转换的方式如何?每个SIFT描述符是128位,每个图像由一组描述符描述。所以我们有矩阵descX128
(其中desc
是使用的描述符的数量),而LSH通常接受矢量作为输入。
答案 0 :(得分:2)
1)您可以绕过它,但是然后您将使用D
尺寸,而不是N
。其中N << D
。这意味着该算法也必须适应D
维度。
2)否。
- 关键点描述符
醇>现在创建了关键点描述符。一个16x16左右的社区 关键点被采取。它分为16个4x4大小的子块。对于 每个子块,创建8个bin方向直方图。所以总共 128个bin值可用。它被表示为形成的向量 关键点描述符。除此之外,还采取了一些措施 实现对照明变化,旋转等的稳健性。
以下是我的想法,希望这足够了:
LSH将n
点的点集作为输入,其中每个点位于d
维。
因此,查询是d
维度中的一个点,目标是找到其NN * 。
现在每个点代表一个图像描述符。所以,我们有n
张图片
数据集。
查询,也是一个点(即d
的向量
coordinates),代表另一个图像描述符。
我们正在寻求匹配(即寻找最近邻居) 使用我们数据集中的图像描述符查询图像描述符。
所以你所谈论的转换是在矢量中应用的,不是矩阵。
修改:
此外,在我们的High-dimensional approximate nearest neighbor: k-d Generalized Randomized Forests论文中,请参阅实验部分:
SIFT是一个128维向量,用于描述本地图像补丁 局部梯度方向的直方图。