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

mpe*_*pen 17 database algorithm image image-processing

TinEye,谷歌和其他人提供"反向图像搜索" - 您可以上传照片,几秒钟内就可以找到类似的照片.

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


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

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

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

Nic*_*tti 16

您可以考虑的有效方法是Bag-of-Words模型.

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

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

另请参阅: 视觉相似性搜索算法

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

只是一些参考:

  • 您将使用FLANN在代码簿空间中进行搜索.您需要将每个代码簿字链接到数据库中的许多记录.然后你可以拿起一些链接到该单词的随机图像或者进行更深入的搜索.您还可以构建码本层次结构以进一步增强搜索 (2认同)