【发布时间】:2016-05-09 08:23:04
【问题描述】:
我正在尝试实现一个通用指纹memoizator:我们有一个可以通过智能指纹表达的文件(例如图像的 pHash 或音频的chromaprint),如果我们想要的(昂贵的)功能已经在相似文件上计算,然后我们返回相同的结果(避免昂贵的计算)。
Locality Sensitive Hash (LSH) 是在昂贵的多维空间中解决Approximate nearest neighbor 问题的流行且性能良好的解决方案。
pHash 是一个很好的库,它实现了图像的感知散列。
因此 pHash 将多维输入(图像)转换为一维对象(哈希码),这与 LSH(同样,LSH 中的多维对象)有所不同。
所以我想知道我们如何为 pHash 哈希值实现一维 LSH?或者简而言之:我们如何将相似的 pHash 值分组?它可以替代经典的 LSH 方法(如果不是为什么)?
【问题讨论】:
标签: c++ hash locality-sensitive-hash phash