两件如何搭配?

首先,特征点(角点)匹配

图像匹配可以应用在很多场合,如目标跟踪、检测、识别、图像拼接等,而角点匹配的核心技术就是角点匹配。所谓角点匹配,是指寻找两幅图像之间特征像素的对应关系,从而确定两幅图像之间的位置关系。

角点匹配可以分为以下四个步骤:

1.检测器提取:在待匹配的两幅图像中找到最易识别的像素(角点),比如纹理丰富的物体的边缘点。

2.提取描述符:对于检测到的角点,使用一些数学特征进行描述,如梯度直方图和局部随机二值特征。检测器和描述符常用的提取方法有sift、harris、surf、fast、agast、brisk、freak、brisk、brief/orb等。

3.匹配:通过每个角点的描述符来判断两幅图像中每个角点的对应关系,比如flann。

4.去噪:去除不正确匹配的离群点,保留正确的匹配点。常用的方法有KDTREE、BBF、Ransac、GTM等。

其次,提出了SIFT匹配方法

为了剔除因为图像遮挡和背景混淆而没有匹配关系的关键点,SIFT的作者Lowe提出了一种比较最近邻距离和下邻距离的SIFT匹配方法:在一幅图像中取一个SIFT关键点,在另一幅图像中找出欧氏距离最近的前两个关键点。在这两个关键点中,如果最近距离除以下一个最近距离的比值小于某个阈值T,则该对匹配点将被接受。因为对于误匹配来说,由于特征空间的高维性,在相似的距离上可能会有很多其他的误匹配,所以它的比值比较高。显然,如果降低比例阈值t,SIFT匹配点的数量会减少,但会更稳定,反之亦然。

Lowe推荐ratio的阈值为0.8,但作者匹配了大量任意比例、旋转、亮度变化的两张图片。结果表明,比值在0。四比零。6,小于0的匹配点很少。4,而存在大量大于0的错误匹配点。6,所以作者建议对比值采用以下原则:

比率=0。4:用于高精度匹配;

比率=0。6:匹配点数需要更多匹配;

比率=0。5:一般来说。

第三,常见的SIFT匹配码

vlfeat中sift工具箱的1,vl_ubcmatch.c使用普通欧氏距离进行匹配(此SIFT代码由Andrea贡献。

维达尔迪).

2.Lowe的C++代码使用欧氏距离,但在matlab代码中,为了加快计算速度,使用向量夹角来近似欧氏距离:首先将128维SIFT特征向量归一化为单位向量(每个数除以平方和的平方根),然后通过点乘得到向量夹角的余弦值,最后使用反余弦(acos函数)得到向量夹角。实验表明,Lowe的方法是非常正确和耗时的。

同样,knnsearch函数也可以用来寻找最近点和下一个最近点:knnsearch使用欧氏距离得到的结果与lowe近似法得到的结果几乎相同,正好印证了模拟欧氏距离的效果。

3.Rob Hess的OpenSIFT使用KDTREE来优化匹配。

4.CSDN大神v_JULY_v实现了KDTREE+BBF优化SIFT匹配,消除错误匹配:从K近邻算法和距离度量到KDTREE和SIFT+BBF算法。

——结构的方法,算法的方法——博客Channel-CSDN.NET。

5.OpenCV中features2d实现的SIFT匹配有很多种:向量描述符、BF Matcher(蛮力描述符匹配器)、Ferndescriptor、OnewayDescriptor、FlannBasedMatcher等等。目前只知道使用了knnsearch,它提供了多种测距方式,具体的区别不了解。