TinEye,Google和其他人提供“反向图片搜索” - 您可以上传照片,几秒钟内就能找到类似的照片。
是否有这些算法的开源版本?
我知道“SIFT”和其他用于查找“视觉上相似”照片的算法,但它们仅用于将一张照片直接与另一张照片进行比较。即,为了找到给定照片的相似照片是O(n)
操作,要查找所有视觉上相似的照片O(n^2)
- 两者都非常慢。
我需要一个可由[关系]数据库索引的特征描述符,以将结果集减少为更易于管理的内容。
通过“视觉上相似”,我的意思是非常相似。即,在Photoshop中轻微修饰/重新着色的照片,略微裁剪或调整大小的照片,在同一场景中快速连续拍摄的照片,或翻转或旋转的图像。
答案 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或图像重复搜索。