特征向量分区

时间:2017-09-01 18:33:17

标签: image algorithm opencv search tree

我正在阅读关于图像搜索的内容,并且我已经达到了对特征向量有基本了解的程度,并且对旋转不变量和尺度不变特征有一个非常基本的(绝对不完整的)理解。如何查看多采样图像的尺度不变性和角度以获得旋转不变性。

要搜索十亿张图片,但您无法进行线性搜索。我的大多数阅读似乎暗示K-d树被用作分区数据结构以改善查找时间。

K-d树拆分的指标是什么?如果您使用SIFT,SURF或ORB等描述符,则无法保证您的相似关键点在特征向量中排成一行,因此我很困惑您如何确定左侧'或者'对'由于具有这样的功能,您需要基于相似性进行拆分。我的猜测是欧洲标准与标准的距离。那么你做一个健壮的最近邻搜索,但想要在最近邻搜索之前如何处理对KD树的初始查询的一些输入。我认为KD树需要比较每个维度中的相似特征,但我不知道如何在许多关键点上发生这种情况。

我可以找到很多关于最近邻搜索的文章,但大多数人似乎都认为你知道这是如何处理的,所以我在这里遗漏了一些东西。

1 个答案:

答案 0 :(得分:1)

这很简单。所有这些特征描述符都将图像作为多维空间中的一个点。仅仅为了简单起见,我们假设您的描述符维度为2.比所有图像都映射到两个维度平面上。然后,kd-tree将此平面拆分为矩形区域。落在同一区域内的任何图像都将被视为相似。

这意味着,顺便说一句,两个图像彼此非常接近,但在不同的区域(kd树的叶子)将不会被认为是相似的。 为了克服这个问题,可以使用余弦相似性代替欧几里德距离。您可以在wiki中详细了解该主题。