在大量图像中查找相似图像的算法

时间:2012-12-26 12:54:18

标签: algorithm image-processing

我知道这个网站上已经有一些关于这个问题的帖子但是没有(据我所知)告诉我我需要知道的事情。

我对图像搜索引擎(如Google图像)如何运行基于图像的搜索感兴趣,到目前为止,我发现this blog post告诉用户如何编写一个可以找到类似图像的指纹识别功能。此站点上的算法仅查找具有相同图像但分辨率不同或相同图像的图像,并略有变化。我正在寻找一种放置图像的方法,让我们说一张森林的图像,它会给你其他的森林图像。

我是这个的初学者,所以我希望能找到详细的东西,而不是给你代码去做,只是一个让我入门的指南。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

图像检索的一种常见方法实际上是受文本检索的启发,因此我将从快速检查文本检索开始:

  1. 每个文档都由其bag-of-words模型表示。
  2. 构建包含所有文档的inverted index
  3. 当用户发送查询q时,使用倒排索引返回数据库中最相似的文档。通常使用表示查询和文档的两个向量的点积来计算文档与查询q之间的相似性。 (tf-idf加权通常用于构建表示文档的向量。)
  4. Sivic和Zisserman在Video Google: A Text Retrieval Approach to Object Matching in Videos中提出的图像检索遵循完全相同的方法。唯一的区别是第一步,他们定义什么是“视觉词”,以便为图像提供词袋表示。

    他们首先提取图像的本地特征,例如SIFT。那些局部特征(SIFT)是高维向量,因此,应用聚类算法(例如k-means)来获取k视觉词:k聚类中心是“视觉”话”。然后给出一个图像,提取局部特征(SIFT),并将每个特征分配给最近的“视觉词”或聚类中心,从而获得一个词袋表示。

    此方法后来经过改进,例如:HervéJégou,Matthijs Douze和Cordelia Schmid参见:Hamming Embedding and Weak Geometric consistency for large-scale image search

    如果您想了解有关这些方法的更多信息,我强烈建议您查看Visual Recognition and Machine Learning Summer School中的材料,特别是“实例级识别”和“大规模视觉搜索”的幻灯片”