关于图像:用于从数据库中查找视觉上相似的照片的算法?

Algorithm for finding visually similar photos from a database?

TinEye,Google和其他公司提供"反向图像搜索"-您可以上传照片,并在几秒钟内找到相似的照片。

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

我知道" SIFT"和用于查找"视觉上相似"照片的其他算法,但是它们只能将一张照片与另一张照片直接进行比较。 也就是说,要查找与给定照片相似的照片是O(n)操作,要查找所有视觉上相似的照片将是O(n^2)-两者都过慢。

我需要一个[关系]数据库可索引的功能描述符,以将结果集减少到更易于管理的位置。

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


您可以考虑采用的有效方法是词袋模型。

基本上,您可以对目标图像进行离线计算。您可以从这些图像中提取一堆特征,以使用k-means聚类算法创建码本。搜索最近的图像将导致算法的应用,例如在码本空间中进行最近邻居搜索。

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

  • http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN
  • http://opencv.willowgarage.com/documentation/cpp/flann_fast_approximate_nearest_neighbor_search.html

还要看看:
视觉相似度搜索算法

这只是一种可能性,必须说实话,这个主题确实具有挑战性,涉及的文献非常多。

只是一些参考:

  • http://www.cs.nott.ac.uk/~qiu/webpages/Papers/ColorPatternRecognition.pdf
  • http://cs.brown.edu/~th/papers/Hofmann-UAI99.pdf
  • http://www.ifp.illinois.edu/~jyang29/ScSPM.htm
  • http://johnwinn.org/Publications/papers/Savarese_Winn_Criminisi_Correlatons_CVPR2006.pdf
  • http://www-cvr.ai.uiuc.edu/ponce_grp/publication/paper/cvpr06b.pdf


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