TinEye、Google 和其他公司提供“反向图像搜索”——您可以上传照片,几秒钟内它就会找到类似的照片。
这些算法有开源版本吗?
我知道“SIFT”和其他用于查找“视觉上相似”照片的算法,但它们仅适用于将一张照片直接与另一张照片进行比较。即,找到与给定照片相似的照片是O(n)
操作,找到所有视觉上相似的照片将是O(n^2)
——两者都慢得令人望而却步。
我需要一个可由[关系]数据库索引的特征描述符,以将结果集减少为更易于管理的内容。
我所说的“视觉上相似”是指very相似的。即,在 Photoshop 中经过轻微修饰/重新着色、稍微裁剪或调整大小的照片、快速连续拍摄同一场景的照片,或者翻转或旋转的图像。
您可以考虑的一个有效方法是词袋模型 http://en.wikipedia.org/wiki/Bag-of-words_model_in_computer_vision.
基本上你可以对目标图像进行离线计算。您可以从这些图像中提取大量特征,以便使用以下算法创建密码本k-均值聚类 http://en.wikipedia.org/wiki/K-means_clustering。搜索最近的图像将导致像这样的算法的应用最近邻搜索 http://en.wikipedia.org/wiki/Nearest_neighbor_search在密码本的空间中。
对于邻居搜索,您可以使用 FLANN
- http://www.cs.ubc.ca/~mariusm/index.php/FLANN/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://opencv.willowgarage.com/documentation/cpp/flann_fast_approximate_nearest_neighbor_search.html
另请查看:视觉相似度搜索算法 https://stackoverflow.com/questions/987830/visual-similarity-search-algorithm?rq=1
这只是一种可能性,而且必须说实话,这个话题确实具有挑战性,相关文献也非常多。
只是一些参考:
- http://www.cs.nott.ac.uk/~qiu/webpages/Papers/颜色模式识别.pdf http://www.cs.nott.ac.uk/~qiu/webpages/Papers/ColorPatternRecognition.pdf
- http://cs.brown.edu/~th/papers/Hofmann-UAI99.pdf http://cs.brown.edu/~th/papers/Hofmann-UAI99.pdf
- http://www.ifp.illinois.edu/~jyang29/ScSPM.htm http://www.ifp.illinois.edu/~jyang29/ScSPM.htm
- http://johnwinn.org/Publications/papers/Savarese_Winn_Criminisi_Correlatons_CVPR2006.pdf http://johnwinn.org/Publications/papers/Savarese_Winn_Criminisi_Correlatons_CVPR2006.pdf
- http://www-cvr.ai.uiuc.edu/ponce_grp/publication/paper/cvpr06b.pdf http://www-cvr.ai.uiuc.edu/ponce_grp/publication/paper/cvpr06b.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)