• 特征点匹配算法


    粗匹配

    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的比例所决定。

  • 相关阅读:
    Which is best in Python: urllib2, PycURL or mechanize?
    Ruby开源项目介绍(1):octopress——像黑客一样写博客
    Truncated incorrect DOUBLE value解决办法
    Qt Quarterly
    Rich Client Platform教程
    iOS6 中如何获得通讯录访问权限
    省赛热身赛之Javabeans
    [置顶] [开心学php100天]第三天:不羁的PHP文件操作
    hdu2033 人见人爱A+B
    [置顶] AAM算法简介
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725144.html
Copyright © 2020-2023  润新知