特征点匹配算法

粗匹配

  1. 暴力匹配(汉明距离):顾名思义,取a图中一个点,依次计算与b图中所有点的距离,找出距离最近点
  2. FLANN 快速最近邻匹配:实现原理:对高维数据依次以其中一维作为划分依据将所有点构建一个KD-Tree,从集合中快速查找。效率比暴力匹配高的多。

去粗取精:匹配错误点剔除

  1. Lower's算法

Lowe’s算法:为了进一步筛选匹配点,来获取优秀的匹配点,这就是所谓的“去粗取精”。一般会采用Lowe’s算法来进一步获取优秀匹配点。
   为了排除因为图像遮挡和背景混乱而产生的无匹配关系的关键点,SIFT的作者Lowe提出了比较最近邻距离次近邻距离的SIFT匹配方式:取a图像中的1个SIFT关键点,并找出其与b图像欧式距离最近的前2个关键点,在这两个关键点中,如果最近的距离除以次近的距离得到的比率ratio少于某个阈值T,则接受这一对匹配点。保证最近和次近的距离较远,尽可能保证最近的准确性
   Lowe推荐ratio的阈值为0.8,但作者对大量任意存在尺度、旋转和亮度变化的两幅图片进行匹配,结果表明ratio取值在0. 4~0. 6 之间最佳,小于0. 4的很少有匹配点,大于0. 6的则存在大量错误匹配点,所以建议ratio的取值原则如下:

ratio=0. 4:对于准确度要求高的匹配;ratio=0. 6:对于匹配点数目要求比较多的匹配;ratio=0. 5:一般情况下。

2.RANSAC:设定阈值,抽样误差大于阈值的点就可认为是外点(迭代)

3.LMEDS:不需要阈值,但是内点数小于50%会失效(迭代)

      LMedS也从样本中随机抽选出一个样本子集,使用LS对子集计算模型参数,然后计算所有样本与该模型的偏差。但是与Ransac LS不同的是,LMedS记录的是所有样本中,那个是中位偏差样本的偏差,称为Med偏差(这也是LMedS中Med的由来),以及本次计算得到的模型参数。由于这一变化,LMedS不需要预先设定阈值来区分inliers和outliers。重复前面的过程N次,从中N个Med偏差中挑选出最小的一个,其对应的模型参数就是最终的模型参数估计值。其中迭代次数N是由样本集子中样本的个数、期望的模型误差、事先估计的样本中outliers的比例所决定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章