LSH 是将向量转换为汉明距离的二进制向量吗?

2024-03-29

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

  1. 给定一个向量D尺寸(其中D是大)的任何值,用一组翻译它N (where N<<D) 将哈希函数转换为二进制向量N方面。

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

关键点是计算向量的汉明距离N使用 XOR 维度的速度很快。

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

  1. 如果我们使用二进制描述符(例如 ORB),第 1 点仍然有必要吗?既然ORB的描述符已经是二进制的,并且我们使用汉明距离来比较它们,为什么我们应该执行第一点?

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


1)你可以绕过它,but那么你将在D尺寸,不N正如你所说。在哪里N << D。这意味着算法必须适应D尺寸也是如此。


2) No.

Read 来自 openCV 的 SIFT http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html:

  1. 关键点描述符

现在关键点描述符已创建。周围有一个 16x16 的社区 已采取关键点。它被分为 16 个 4x4 大小的子块。为了 每个子块都会创建 8 个 bin 方向直方图。所以总共有 有 128 个 bin 值可用。它被表示为一个向量来形成 关键点描述符。除此之外,还采取了多项措施 以实现对光照变化、旋转等的鲁棒性。

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

LSH 将点集作为输入,n点,每个点都位于d方面。

So, a query is a point, in d dimensions and the goal is to find its NN*.


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

  2. 查询,也是一个点(即带有d坐标),代表另一个图像描述符。

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

所以你所说的转换应用于向量中,not一个矩阵。


Edit:

此外,从我们的高维近似最近邻:k-d 广义随机森林 http://arxiv.org/pdf/1603.09596.pdf纸,请参阅实验部分:

SIFT 是一个 128 维向量,通过以下方式描述局部图像块 局部梯度方向的直方图。


*or the Fixed-radius near neighbors https://en.wikipedia.org/wiki/Fixed-radius_near_neighbors problem

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LSH 是将向量转换为汉明距离的二进制向量吗? 的相关文章

  • 如何使用 python 在白色背景上裁剪图像?

    我正在扫描旧照片 因此我有来自扫描仪的图像和白色背景 我的目的是拍照 去除白色背景 我怎样才能做到这一点 An example picture is the following 我的简单方法 import os import time fr
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • numpy:大量线段/点的快速规则间隔平均值

    我沿着一维线有许多 约 100 万个 不规则间隔的点 P 这些标记线段 这样 如果点是 0 x a x b x c x d 则线段从 0 gt x a x a gt x b x b gt x c x c gt x d 等 我还有每个段的 y
  • 如何在 python 中读取 32 位 TIFF 图像?

    我想用 python 读取 32 位浮点图像文件来进行一些图像分析 我努力了 import matplotlib pyplot as plt im plt imread path to file tif 但是 这仅将数据读取为 8 位整数值
  • Opencv Mat内存管理

    内存管理对于图像类至关重要 在opencv中 图像类是cv Mat 它有一个微妙的内存管理方案 假设我已经有了自己的图像类SelfImage class SelfImage public int width int height unsig
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 找到 4 个特定的角像素并将它们与扭曲透视一起使用

    我正在使用 OpenCV 我想知道如何构建一个简单版本的透视变换程序 我有一张平行四边形的图像 它的每个角都由具有特定颜色的像素组成 该像素在图像中没有其他位置 我想遍历所有像素并找到这 4 个像素 然后我想将它们用作新图像中的角点 以扭曲
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • OpenCV Python 和 SIFT 功能

    我知道有很多关于Python and OpenCV但我没有找到有关这个特殊主题的帮助 我想提取SIFT关键点来自 python OpenCV 中的图像 我最近安装了 OpenCV 2 3 可以访问 SURF 和 MSER 但不能访问 SIF
  • 在Python中寻找坐标系中某些点之间的最短路径

    我编写了一个代码 可以在坐标系中的特定宽度和长度范围内生成所需数量的点 它计算并列出我使用欧几里德方法生成的这些点的距离矩阵 我的代码在这里 import pandas as pd from scipy spatial import dis
  • keras:zca 美白卡住了 train_datagen.fit()

    我尝试将 zca whitening 与 keras 图像处理选项一起使用 但计算陷入困境并且永远不会结束 我导致问题的代码部分如下所示 train datagen ImageDataGenerator rotation range 30
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发
  • 去除图像背景并提取图像中的对象

    I know that there are many threads here about this issue but I m not able to solve my problem with those answers I tried
  • 使用Python对图像进行反转和平移

    我编写了以下代码来循环遍历文件夹中的所有图像 创建其底片并将其保存在新的相似名称下 我怎样才能做同样的事情来将它们向右平移 5 个像素 Code from PIL import Image import PIL ImageOps impor
  • 比较两个直方图

    对于一个小型项目 我需要将一张图像与另一张图像进行比较 以确定图像是否大致相同 这些图像很小 宽度从 25 到 100 像素不等 这些图像应该具有相同的图片数据 但略有不同 因此简单的像素相等检查不起作用 考虑以下两种可能的情况 博物馆中的
  • 在每次迭代中使用 for 循环的索引命名图像

    我正在使用 MATLAB 进行图像处理项目 我使用 for 循环在每次循环迭代时生成某种图像数据 图像大小不同 我的问题是如何阻止它在下一次迭代中覆盖图像 Img i j data 理想情况下我希望它有 Img 1 data for 1st
  • Instagram 勒克斯效果

    Instagram 最近添加了一个 Lux 按钮 可以对您拍摄的照片进行自动对比 调平 我有一堆图片需要以类似的方式自动调平 使这些图片看起来更好 如果我想在 Imagemagick 中使用批处理命令 需要使用什么 秘密成分 我应该坚持对比

随机推荐