c++ - 关于multi-probe Local Sensitive Hashing的问题

标签 c++ algorithm image-processing machine-learning hash

很抱歉问这种菜鸟问题,但因为我真的非常急需一些关于如何使用 Multi probe LSH 的指导,所以我自己没有做太多研究。我意识到有一个 lib 调用 LSHKIT 可以实现该算法,但我在尝试弄清楚如何使用它时遇到了麻烦。 现在,我有几千个 296 维的特征向量,每个代表一个图像。该 vector 用于查询用户输入的图像,以检索最相似的图像。我用来推导 vector 之间距离的方法是欧氏距离。

我知道这可能是一个相当菜鸟的问题,但是你们知道我应该如何实现多探针 LSH 吗?我真的非常感谢任何答复或回复。

-- 更新--

尝试使用提供的工具 fitdata 为我的数据创建模型,但它似乎没有包含我的文件。我用于输入的格式是这种格式,浮点大小:4,数据数量:20,维度:297,我的数组是 297 维 float 组。但是它给了我这个错误

gsl: init_source.c:29: ERROR: matrix dimension n1 must be positive integer
Default GSL error handler invoked.
Aborted

你们知道如何为 fitdata 创建输入吗?

-- 更新--

很抱歉更新晚了,在尝试了 lsh 之后。您可以使用 text2bin 来格式化 fitdata 的数据。文本文件包含图像或音频文件的特征向量,每一行代表一个 vector 。之后,使用 mplsh-tune 获取 M 和 W 参数。 要构建索引,您可以使用扫描工具对一组所需的查询进行采样,然后可以使用 mplsh-run 来获取索引。 现在我试图弄清楚如何使用索引以及如何将库链接到我的代码中。有没有人对此有任何想法?

最佳答案

让我为您指出 spectral hashing这让 LSH 大吃一惊。奖励:他们有 matlab 代码 on their website ,您可以使用或验证您自己的实现。此外,它更容易实现。

关于c++ - 关于multi-probe Local Sensitive Hashing的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574915/

相关文章:

algorithm - 未知大小数组的二进制搜索

c# - 使用 c# + xaml 对图像进行像素化

c++ - 将数组中的所有元素与另一个数组进行比较

c++ - 如何在 C++ 中创建 vector 的 vector 映射?

c++ - 在 C++ 中合并样板 vector<> 代码

c# - 并行双向选择排序

c++ - 从子类的STL vector 到基类 vector 的转换

algorithm - 找出不同的方式来告诉有一些重复的连续数字的数字

image - 将位图中的平面对象形状转换为二维坐标系统中矢量集合的算法

python - 如何使用Opencv Python计算图像中有多少个白色 "balls"?