zoukankan      html  css  js  c++  java
  • PCL点云配准(3)

    (1)关于点云的配准

        1.首先给定源点云与目标点云。

        2.提取特征确定对应点

       3.估计匹配点对应的变换矩阵

       4.应用变换矩阵到源点云到目标点云的变换

    配准的流程图

                           

    通过特征点的匹配步骤

    (1)计算源点云与目标点云的关键点

     (2)计算关键点的特征描述子(比如:FPFH等等)

     (3)匹配特征点计算出对应关系

     (4)从特征点之间的对应关系估算变换矩阵

    与Opencv中使用harris 角点等特征点来计算两幅图像之间的变换矩阵的原理是一样的,所以其中用到的算法的思路和工作流程也都很相似

    有很多中方法来计算转换矩阵T = (R,t),如果给定了配对点(Di,Mi):

      (1)通过点对点的方式

      (2)点对平面的方式

      (3)平面到平面之间的配对,等等

    基于SVD分解的最小化点对点的最小距离的方法(最小方差误差的公式):

    那么肯定会有误匹配,去除错误匹配点(局外点)的方法采用RANSAC方法

      (1)找出三对对应的匹配点(Di ,Mi)

      (2)根据这些点估算转换矩阵(R,t)

     (3)对于匹配点满足 一定条件的设为内点

     (4)重复上面的步骤N次,直到(R,t)有很多的内点

                                           初始匹配(可以看见非常多的误匹配)

                                                            经过RANSAC算法计算后的匹配

    找到了特征点之间的转换矩阵之后我们想完全的的对应源点云与目标点云还要用到ICP 算法

    如图所示

    我们认为M作为模型设置点,S作为对应的场景,我们认为S上的每一个点都有与之对应的M上的点。如果有正确的配准点我们是已知的,就可以找到两者之间的旋转与平移,那么如果找到一个误差最小的配准呢?就要用到ICP算法,其算法流程

                                                          

    算法的伪码如下:

                                         

     关注微信公众号,加入群聊

  • 相关阅读:
    java:LeakFilling (Linux)
    java:redis(redis安装配置,redis的伪集群配置)
    java:Linux(简单命令,远程ssh使用hostname访问,.免密钥登录配置)
    java:easyui(重点示例)
    任意文件下载漏洞学习
    Centos7 nginx报错403 forbidden
    Centos7 nginx提示错误 Access denied.
    Python问题:UnboundLocalError: local variable 'xxx' referenced before assignment
    PHP载入GIF图像造成服务器宕机(CVE-2018-5711)的漏洞复现
    Python问题:'Nonetype' object is not iterable
  • 原文地址:https://www.cnblogs.com/li-yao7758258/p/6605719.html
Copyright © 2011-2022 走看看