从数据库中查找视觉上相似的照片的算法?

时间:2013-05-21 00:11:57

标签: database image algorithm image-processing

TinEye,Google和其他人提供“反向图片搜索” - 您可以上传照片,几秒钟内就能找到类似的照片。

是否有这些算法的开源版本?


我知道“SIFT”和其他用于查找“视觉上相似”照片的算法,但它们仅用于将一张照片直接与另一张照片进行比较。即,为了找到给定照片的相似照片是O(n)操作,要查找所有视觉上相似的照片O(n^2) - 两者都非常慢。

我需要一个可由[关系]数据库索引的特征描述符,以将结果集减少为更易于管理的内容。

通过“视觉上相似”,我的意思是非常相似。即,在Photoshop中轻微修饰/重新着色的照片,略微裁剪或调整大小的照片,在同一场景中快速连续拍摄的照片,或翻转或旋转的图像。

2 个答案:

答案 0 :(得分:16)

您可以考虑的有效方法是Bag-of-Words model

基本上,您可以对目标图像进行离线计算。您可以从这些图像中提取一系列功能,以便使用k-means clustering等算法创建一个代码簿。搜索最近的图像将导致在码本空间中应用Nearest neighbor search等算法。

对于邻居搜索,您可以使用FLANN

看一看: Visual similarity search algorithm

这只是一种可能性,而且必须说明的是,这个话题真的很具挑战性,对它的文献真的很大。

只是一些参考文献:

答案 1 :(得分:2)

看一下http://vision.caltech.edu/malaa/software/research/image-search/它使用LSH算法和某种kd-tree。 此任务也称为CBIR或图像重复搜索。