《图像局部不变性特征与描述》阅读笔记(5End)-- 特征点匹配、各种检测算子的性能评估

特征点匹配算法

以SIFT算法为例,当对两幅图像提取了SIFT特征向量后,需要对其建立一一的对应关系。

这里就涉及到两个步骤:特征向量的最近邻搜索、匹配对的提纯


(1)特征向量的最近邻搜索

对一幅图像的每个SIFT特征向量,搜索另一幅图像中与之最相邻的特征向量(欧式距离最短)

这一步实际上就是K近邻搜索,考虑到特征点数目一般较大,需要使用快速K近邻搜索算法,文章K近邻快速算法 -- KD树、BBF改进算法介绍的KD树及BBF算法就是SIFT采用的方案。

当特征维数较高时,原始的KD树搜索算法性能逼近穷举法,需要考虑BBF算法。

当特征数目较少时,KD树方法较穷举法提升不大,此时KD树构建的用时比例占大头;如果应用中基准图是固定的(意味着特征点不变),可以提前离线构建KD树。

由于KD树在回溯步骤耗时较大,本章还简要介绍了一种改进方案Spill树:其通过冗余分割方式(两个子空间有一部分是重叠的),减少了相当部分的回溯搜索。

该步骤对每个特征向量都会找到最近的匹配特征,但在实际中往往存在某些特征向量在另一幅图中不存在的情况。因此需要对这些匹配对进行筛选,即匹配对提纯。


(2)匹配对的提纯

匹配对提纯有两种方案,一般将这两种串联起来一起用

a) 比值提纯法

思路很简单,需要在最近邻搜索时保存2个近邻(就是2近邻咯)-- 最近邻和次近邻。

一般认为,只有当待匹配点与其最近邻的距离比其与次近邻的距离小的比较多时,该匹配可信(唯一性更强嘛)

Lowe的统计表明,当 最近邻/次近邻<0.8 时匹配正确率较高;

书里还给了另一个公式:最近邻>=0.49*次近邻(个人感觉有问题,最近邻和次近邻相等时也显然满足)

b)一致性提纯法

*基本思想是:首先通过初始匹配对(肯定是冗余的)得到一个较精确的图像透视变换模型(待匹配的两幅图像是一个透视变换的关系),然后逐个检查每个匹配对,如果在给定阈值范围内不满足这个变换模型则认为是错误的匹配,应该过滤掉

*令X和X'为具有透视变换关系的两幅图,H为透视矩阵,有,令(x,y)和(x',y')为其中的点,有,这9个参数就是上面提到的需要拟合的变换模型。

*考虑到噪声对拟合效果的影响,这里没有用常见的最小二乘,而是RANSAC算法

以直线拟合为例,因为两个点可确定一条直线,RANSAC首先选取2个点,得到一条直线,再计算其他所有点到这条直线的距离,统计距离在给定阈值内的点数(范围内的点叫内点,范围外的点叫外点),最后选取内点数最多的那一条直线(最多条)作为最终模型,再次计算所有点到该直线的距离,过滤外点得到提纯结果。


匹配算子的性能比较

章节从尺度变换、仿射变换、光照变化和图像模糊4个方面对SIFT、SURF(特征点检测);Harris-Affine、MSER、IBR、EBR(区域检测)等算子进行了实验对比。

(1)特征点检测

对于尺度缩放,SIFT和SURF均具有一定鲁棒性,且相对于纹理图像,两个算法在结构型图像中性能更好(纹理有重复)

对于仿射变换,SIFT和SURF具有一定鲁棒性,整体效果SIFT稍微好于SURF

对于光照变化,SIFT和SURF具有一定鲁棒性,两者性能基本持平

对于图像模糊,SIFT和SURF具有一定鲁棒性,两者性能基本持平

(2)区域检测

对于尺度缩放、仿射变换、光照变化,MSER均有理想表现(尺度缩放中Hessian-Affine优于MSER,其他情况MSER为最优)

对于图像模糊,其他算子都较稳定,但MSER性能迅速变差


总的来说,特征点用SIFT或SURF,区域用MSER比较理想

你可能感兴趣的:(《图像局部不变性特征与描述》阅读笔记(5End)-- 特征点匹配、各种检测算子的性能评估)