从数据库中寻找视觉上相似的照片的算法?[英] Algorithm for finding visually similar photos from a database?

本文是小编为大家收集整理的关于从数据库中寻找视觉上相似的照片的算法?的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

Tineye,Google和其他人提供"反向图像搜索" - 您可以上传照片,并且在几秒钟内会找到类似的照片.

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


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

我需要一个由[关系]数据库索引的功能描述符,以将结果设置为更可管理的内容.

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

推荐答案

A valid approach you can consider is the Bag-of-Words model .

基本上,您可以对目标图像进行离线计算.您可以从这些图像中提取一堆功能,以创建一个使用算法的代码簿聚类.搜索最近的图像将导致算法的应用,例如最近的邻居搜索代码手册.

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

也看一下: 视觉相似性搜索algorithm

这只是一种可能性,必须说实话,这个话题确实具有挑战性,而垃圾确实是巨大的.

只是一些参考:

其他推荐答案

看一下 http://vision.caltech. EDU/MALAA/软件/研究/图像搜索/它使用LSH算法和某种KD-Tree. 此外,此任务称为CBIR或图像重复搜索.

本文地址:https://www.itbaoku.cn/post/597553.html

问题描述

TinEye, Google and others offer a "reverse image search" -- you can upload a photo and within seconds it will find similar photos.

Is there an open-source version of these algorithms?


I know about "SIFT" and other algorithms for finding "visually similar" photos, but they only work for comparing one photo directly to another. i.e., to find similar photos to a given photo is an O(n) operation, to find all visually similar photos would be O(n^2) -- both of which are prohibitively slow.

I need a feature descriptor that is indexable by a [relational] database to reduce the result set to something more manageable.

By "visually similar" I mean very similar. i.e, a photo that has been lightly touched up/recolored in Photoshop, slightly cropped or resized, photos taken in rapid succession of the same scene, or flipped or rotated images.

推荐答案

A valid approach you can consider is the Bag-of-Words model.

Basically you can do an offline computation of the target images. You can extract from those images a bunch of features in order to create a codebook with algorithms like k-means clustering. Searching for the nearest images will lead to the applications of an algorithm like Nearest neighbor search in the space of the codebook.

For the neighbour search you can use FLANN

Take a look also at: Visual similarity search algorithm

This is only a possibility and, truth must be told, this topic is really challenging and litterature on it is really huge.

Just some references:

其他推荐答案

Take a look at http://vision.caltech.edu/malaa/software/research/image-search/ it uses LSH algorithm and some kind of kd-tree. Also this task is called CBIR or image duplicate search.