使用SIFT搜索图像数据库 [英] Searching an Image Database Using SIFT
问题描述
几个 SIFT算法,但它们似乎都着重于两个图像之间的简单比较.使用SIFT从成千上万张图像的集合中查找最接近的匹配图像,而不是确定两幅图像的相似程度,是否可行?换句话说,SIFT是否可扩展?
例如,使用SIFT生成一批图像的关键点,将这些关键点存储在数据库中,然后找到与为查询"图像生成的关键点具有最短欧几里德距离的那些点,是否可行? ?
在计算欧几里得距离时,您是否会忽略关键点的x,y,比例和方向部分,而仅查看描述符?
有几种方法.
一种流行的方法是所谓的词袋表示法,它仅基于匹配的描述符数量进行匹配,因此忽略了由(x,y,比例和方向)组成的位置部分,而只看描述符. /p>
对大型数据库的有效查询可能使用近似方法,例如位置敏感哈希
其他方法可能涉及词汇树或其他数据结构.
有关同时考虑位置信息的有效方法,请查看金字塔匹配内核
Several questions have been asked about the SIFT algorithm, but they all seem focussed on a simple comparison between two images. Instead of determining how similar two images are, would it be practical to use SIFT to find the closest matching image out of a collection of thousands of images? In other words, is SIFT scalable?
For example, would it be practical to use SIFT to generate keypoints for a batch of images, store the keypoints in a database, and then find the ones that have the shortest Euclidean distance to the keypoints generated for a "query" image?
When calculating the Euclidean distance, would you ignore the x, y, scale, and orientation parts of the keypoints, and only look at the descriptor?
There are several approaches.
One popular approach is the so called bag of words representation which does matching based solely upon how many descriptors match, thus ignoring the location part consisting of (x, y, scale, and orientation) and just look at the descriptor.
Efficient querying of a large database may use approximate methods like locality sensitive hashing
Other methods may involve vocabulary trees or other data structures.
For an efficient method that also takes into account location information, check out pyramid match kernels
这篇关于使用SIFT搜索图像数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!