zoukankan      html  css  js  c++  java
  • 特征点匹配算法

    粗匹配

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

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

    1.Lower'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的比例所决定。

  • 相关阅读:
    Uva11584 Partitioning by Palindromes
    GYM100741 A Queries
    Uva11400 Lighting System Design
    UVA12563 Jin Ge Jin Qu hao
    Uva116 Unidirectional TSP
    HDU2089 不要62
    BZOJ3670: [Noi2014]动物园
    Uva11384 Help is needed for Dexter
    Uva1347 Tour
    BZOJ1924: [Sdoi2010]所驼门王的宝藏
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725144.html
Copyright © 2011-2022 走看看