用于在数据库中查找相似图像的度量标准

计算两幅图像之间的相似度有许多不同的算法,但我无法找到任何有关如何将这些信息存储在数据库中的方法,以便您可以快速找到相似的图像。

“相似”是指旋转(90度增量),颜色调整和/或重新保存(有损JPEG压缩)的确切副本。

我试图想出图像的“指纹”,以便我可以快速查找它们。

到目前为止,我所提出的最好的方法是生成灰度直方图。 通过16个灰箱和256个灰度,我可以轻松创建一个16字节的指纹。 这项工作相当不错,但并不像我想的那么健壮。

我尝试的另一个解决方案是调整图像大小,旋转它们以使它们都以相同方式定向,灰度化它们,规格化直方图,然后将它们缩小到8x8,然后将颜色减少到16灰度。 虽然微缩图像非常相似,但它们通常只有一个或两个像素,这意味着精确匹配无法工作。

没有完全匹配,我不相信有任何有效的方法来组合类似的照片(没有比较每张照片与其他所有照片,即O(n ^ 2))。

所以,(1)我如何创建一个不会满足上述要求的指纹/签名? 或者,(2)如果这是不可能的,我可以使用什么其他度量方法,如果给定单个图像,我可以在数千个数据库中找到最佳匹配?


在你的问题中有一个令人困惑的事情:你链接的“指纹”显然不是为了找到类似的图像(引用):

TinEye通常不会找到相似的图像(即具有相同主题的不同图像); 它会查找完全匹配的内容,包括已裁剪,编辑或调整大小的内容。

现在,这就是说,我只是假设你知道你在问什么,并且你确实希望能够找到所有相似的图像,而不仅仅是编辑精确的副本。

如果你想仔细阅读,我建议你查阅Sivic,Zisserman和Nister,Stewenius的论文。 这两篇论文(以及其他一些最近的论文)一直在尝试将文本搜索技术应用于图像数据库,并以相同的方式搜索图像数据库,Google会搜索它的文档(网页)数据库。

我所关联的第一篇论文是这种方法的一个很好的起点,因为它主要解决一个大问题:图像中的“词”是什么? 文本搜索技术都集中在单词上,并将其相似性度量基于包括单词计数在内的计算。 成功地将图像表示为视觉单词的集合是将文本搜索技术应用于图像数据库的第一步。

第二篇论文随后扩展了使用文本技术的想法,提出了一个更合适的搜索结构。 有了这个,他们允许更快的图像检索和更大的图像数据库。 他们还提出了如何基于底层搜索结构构建图像描述符。

在这两篇论文中用作可视化词语的特征应该满足你的不变约束条件,而第二个必须能够处理你所需要的数据库大小(甚至可能从第一篇论文开始工作)。

最后,我建议查看来自同一作者的较新论文(我认为尼斯做了一些新的事情,只是从现在的链接文章中得到的方法对我来说已经足够了),查找他们的一些参考资料,并且一般只搜索关于基于内容的图像(索引和检索)(CBIR)的论文 - 它现在是一个非常受欢迎的主题,所以应该有很多。

链接地址: http://www.djcxy.com/p/58993.html

上一篇: Metric for finding similar images in a database

下一篇: How to mock a service injected in a domain class from a Controller Test Class?