7

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

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

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

到目前为止,我想出的最好的方法是生成灰度直方图。使用 16 个 bin 和 256 种灰度,我可以轻松创建一个 16 字节的指纹。这工作得相当好,但它并不像我想要的那么强大。

我尝试的另一个解决方案是调整图像大小,旋转它们以使它们都以相同的方式定向,对它们进行灰度化,标准化直方图,然后将它们缩小到大约 8x8,并将颜色减少到 16 种灰度。尽管微缩图像非常相似,但它们通常相差一两个像素,这意味着精确匹配无法正常工作。

如果没有精确匹配,我认为没有任何有效的方法可以对相似的照片进行分组(无需将每张照片与其他每张照片进行比较,即 O(n^2))。

那么,(1)如何创建我创建一个与上述要求不变的指纹/签名?或者,(2)如果这不可能,我可以使用什么其他指标,以便给定单图像,我可以在数千个数据库中找到它的最佳匹配?

4

1 回答 1

4

您的问题中有一点令人困惑的事情:您链接到的“指纹”明确意味着要找到相似的图像(引用):

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

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

如果您想尝试详细了解它,我建议您查找Sivic、ZissermanNister、Stewenius的论文。这两篇论文(以及最近的许多其他论文)一直在使用的想法是尝试将文本搜索技术应用于图像数据库,并以与谷歌搜索其文档(网页) 数据库。

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

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

两篇论文中用作视觉词的特征都应该满足您的不变性约束,而第二篇论文绝对应该能够使用您所需的数据库大小(甚至第一篇论文中的方法也可以工作)。

最后,我建议查找来自同一作者的新论文(我很肯定 Nister 做了一些新的事情,只是链接论文中的方法对我来说已经足够了),查找他们的一些参考文献并进行一般搜索对于有关基于内容的图像(索引和)检索(CBIR)的论文——它现在是一个非常流行的主题,所以应该有很多。

于 2012-05-07T12:40:43.577 回答