SIFT特征匹配通过基于欧几里德距离的最近邻居方法完成。有人可以解释一下吗?有计算吗?如果那么有人可以帮我计算我的SIFT特征向量的欧几里德距离吗?我希望将计算出的欧几里德距离保存到神经网络的馈送中,并提供更多的功能,如圆度和图像颜色。
答案 0 :(得分:9)
通过欧几里德距离进行SIFT特征匹配并不困难。我将在这里解释一下:
你有两个图像的关键点描述符。
从一个图像中获取一个关键点描述符。
2.1现在,找到关键点描述符u和其他图像的关键点描述符之间的欧几里德距离。
2.2现在,您将image1中的一个关键点的欧几里德距离与image2中的所有关键点相关联。按升序排列它们(它表示image1中关键点与image2中关键点的最近距离)
2.3现在,设置一些阈值T(大多数在0.3到0.7范围内)。
2.4取第一个最近距离与第二个最近距离的比值,并且小于该阈值,然后只有它匹配并保存该索引。否则没有匹配。
对image1中的所有关键点描述重复此操作。
答案 1 :(得分:0)
我认为你的怀疑是欧几里德的距离。欧几里德距离是在欧几里得(或二维)平面中看到的两点之间的距离。 它是一个二维平面非常直观,但由于SIFT描述符是128维的向量,它变得棘手。你只需坚持公式(https://en.wikipedia.org/wiki/Euclidean_distance)
这是我计算欧氏距离的代码:
for j = 1 : length(SIFT2)
euclideanDist(j) = sqrt(sum((SIFT1{i} - SIFT2{j}).^2));
end
代码将找到第一张图像上的点“i”到第二张图像中所有遇到点的距离,在这种情况下为“j”。我将这个距离存储在矢量euclideanDist中。
单元格数组SIFT1和SIFT2包含每个图像的描述符。