zoukankan      html  css  js  c++  java
  • 匹配算法笔记

    A.SLAM激光匹配算法

    1、ICP迭代最近点:PLICP、MBICP、IDL

    参考文章http://www.cnblogs.com/yhlx125/p/4955337.html太一吾鱼水

    Iterative Closest Point (ICP[1][2][3] is an algorithm employed to minimize the difference between two clouds of points.

    点云匹配分类法(1)

    •全局匹配算法 Globe
    •局部匹配算法Local

    Salvi, J. (2007). "A review of recent range image registration methods with accuracy evaluation." Image and Vision Computing 25(5): 578-596.
    Mellado, N. and D. Aiger (2014). "SUPER 4PCS Fast Global Point cloud Registration via Smart Indexing."

    点云匹配分类法(2)

    •基于点的匹配
    •基于特征的匹配
    •点特征
    •VPF
    •FHPF
    •…
    •基于线特征
    •"Algorithms for Matching 3D Line Sets."
    •"Line segment-based approach for accuracy assessment of MLS point clouds in urban areas.“
    •Poreba, M. and F. Goulette (2015). "A robust linear feature-based procedure for automated registration of point clouds." Sensors (Basel) 15(1): 1435-1457.

    Coarse to fine registration粗-精过程

    粗配的目的:提供刚体变换初始估计

    Salvi, J., et al. (2007). 

    改进ICP算法

    Besl, P. J. and N. D. Mckay (1992). "A Method for Registration of 3-D Shapes." IEEE Transactions on Pattern Analysis and Machine Intelligence 14(2): 239-256.
    Siegwart, R., et al. (2015). "A Review of Point Cloud Registration Algorithms for Mobile Robotics." Foundations and Trends in Robotics.

    •加快搜索效率
    •K-D树
    •Voronoi图
    •不同的距离量测方式
    •点到点
    •点到线 PLICP
    •Censi, A. (2008). "An ICP variant using a point-to-line metric." IEEE International Conference on Robotics & Automation. IEEE,: 19-25.
    •CSM(Canonical Scan Matcher)源码     http://censi.mit.edu/software/csm/
    •点到面
    •Low, K.-L. (2004).   
    •面到面 GICP

    ICP算法求解

    •Closed Form
    •SVD
    •Unit Quaternions单位四元数
    •The ICP error function minimization via orthonormal matrices
    •Dual Quaternions
    •数值解法
    •LM算法 (Levenberg-Marquardt algorithm)
    •Jerbić, B., et al. (2015). "Robot Assisted 3D Point Cloud Object Registration." Procedia Engineering 100: 847-852.
    •点到面 线性最小二乘法
    •Low, K.-L. (2004). "Linear Least-Squares Optimization for Point-to-Plane ICP Surface Registration."

    问题

    •观测误差
    •部分重叠
    •离群点Outlier、噪声(经常是错误点或者异常点)
    •不满足一一对应的条件

    解决方法

    •剔除 Rejection
    •PCL类库中采用
    •权重方法
    •稳健方法

    Bergström, P. and O. Edlund (2014). "Robust registration of point sets using iteratively reweighted least squares."
    H. Pottmann, S. Leopoldseder, and M. Hofer. Simultaneous registration of multiple views of a 3D object. ISPRS Archives 34/3A (2002), 265-270.
    Andreas Nüchter(2008).3D Robotic Mapping-The Simultaneous Localization and Mapping Problem with Six Degrees of Freedom


    标准ICP

    标准ICP算法是最早提出的基于点-点距离的算法,另外一种是基于点-面的算法,由chen提出,好多文献所说的恶Chen's Method。

    标准的ICP算法需要粗配,满足距离足够近这一条件之后才能进行精确配准。

    IDC

    The idc algorithm does a point-to-point correspondence for calculating the scan alignment. The correspondence problem is solved by two heuristics: the closest point rule and the matching range rule. Furthermore, a formula is provided for calculating an error covariance matrix of the scan matching

    Trimmed ICP 

    在每次迭代的过程中,根据距离残差排序,按照重叠率计算保留的点数。根据保留的点进行计算变换。该方法可以很好的处理部分重叠问题。CC中采用该方法实现,作者的原文还提到了一种自适应计算重叠率的方法。推荐!

    Chetverikov, D., et al., The Trimmed Iterative Closest Point algorithm. 2002. 3: p. 545-548.

    稳健ICP

    由于Outliner的存在,即观测误差和离群点存在,以及部分重叠问题,粗配之后的数据再进行精配的过程中仍然存在不稳健的问题(Robust问题),因此提出了稳健ICP方法。如SICP,IRLSICP

    MBICP

    GICP 泛化的ICP,或者叫Plane to Plane ICP

    EM-ICP

    NICP

    GO-ICP

    ...

    一般的ICP算法(上述的)是局部优化算法,还存在全局优化的问题,即不需要单独粗配,直接一步到位。很多的ICP算法都是稳健的方法,但是并不是全局的优化方法。全局的方法有Super4PCS、三点Ransac等。

    http://www.mathworks.com/matlabcentral/fileexchange/12627-iterative-closest-point-method

    http://www.mathworks.com/matlabcentral/fileexchange/27804-iterative-closest-point

    http://projects.asl.ethz.ch/datasets/doku.php?id=laserregistration:laserregistration

    2、PSM极坐标匹配

    3、遗传匹配

    4、统计学匹配

    B.指纹匹配算法

    C.图像处理匹配算法

    1、德国MVTec公司开发的HALCON机器视觉开发软件

    Develop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配

    2、图像匹配得到精确的旋转角度思考

    来源:https://blog.csdn.net/lsh_2013/article/details/47657461 作者:hao_09

    当对平面物体进行视觉定位时,往往采用图像模板匹配的方式,然而当目标含有一定角度的旋转时,如何精确估算出旋转角度成了一个难题。下面是博主根据自己的理解所做的一个小的总结,也能算纠结,欢迎高手围观。

    1 基于灰度的模板匹配(NCC等)

        用灰度模板进行模板匹配,往往耗时,并且要匹配含有旋转的目标,就需要建立多角度的模板。如果目标的角度范围是(-30°,30°),以1°为步幅,则需要60个模板,如果要把精度提高到0.1°,那至少要600个模板。显然是不太理想的方式。

    2 图像主轴角的旋转匹配

    当图像噪声较大、形状对比度不鲜明时,主轴角不准确,进而估算出的旋转角度误差较大。

    3 点模式匹配

    通过分别提取模板和目标图像中的特征点,建立对应关系,求得仿射变换参数。这种方式只对一定的目标适用,如果图像噪声大,并且形状是圆等,就很难提取出合适的角点。

    4 sift(仿射无关特征变换)

    这种方式也是可以的,只是对于噪声较大的图像还是不行,计算量大,提出的特征点往往很多,工业上对时间有较大要求,sift还是多用于立体匹配,用在平面检测中还是有点大材小用了。

    5 边缘几何特征旋转角度估计

    这种方法显然非常依赖边缘,如果目标含有缺陷,估算出的角度精度仍然不足。能够使得精度达到1°已经很不错了。

    7 矩方法

    这种方法进行模板匹配,估算位置和角度,当图像噪声大,难以二值化时,就不好办了。

    8 广义霍夫变换

    第一比较依赖边缘提取精度,然后就是耗时的问题。

    9 梯度直方图

    建立梯度直方图,角度精度也很难到达0.2°甚至更高。

     

    在平面模板匹配方面,Halcon已经做的很好了,而且算法很通用,速度精度都能达到工业要求,只是商业软件的核心思想很难摸透。

    要想通过模板匹配快速估算出精确的旋转角度,最终还是要插值或者拟合。

    对于含有噪声的多目标匹配定位,还是有很多需要研究的地方,希望高手能提供宝贵建议!

  • 相关阅读:
    cri-o 与 cni的集成分析
    ocacle sql: 两张表左连接 ,1对多,取一条数据,取按时间最新的
    redis jedis pool 高并发的问题
    Redis事件订阅和持久化存储
    Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
    springboot配置redis
    Spring Boot使用Redis进行消息的发布订阅
    Spring boot中使用aop详解
    springBoot 全局异常捕捉
    pring boot中使用aop详解
  • 原文地址:https://www.cnblogs.com/Baron-Lu/p/9769146.html
Copyright © 2011-2022 走看看