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

标签 database image algorithm image-processing

TinEye、Google 和其他公司提供“反向图像搜索”——您可以上传照片,它会在几秒钟内找到相似的照片。

这些算法有开源版本吗?


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

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

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

最佳答案

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

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

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

同时看看: Visual similarity search algorithm

这只是一种可能性,必须说实话,这个话题真的很有挑战性,相关文献也非常多。

只是一些引用:

关于database - 从数据库中查找视觉相似照片的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16660177/

相关文章:

php - laravel 和图像干预,如何将所有图像转换为 jpeg 并从 Input::file 保存?

php - 使用 PHP 或 Javascript 裁剪图像

c++ - Floyd-Warshall 算法实现不起作用

c# - 从另一个数组中删除一个数组的高效算法

java - Base64上传-性能

mysql - postgresql 中的连接表

java - 检查我的值是否存在于数据库中?

mysql - 在数据库中创建、更新、删除 View

algorithm - 字符串模板

mysql - 在MySQL中实现以下操作的更好方法?