PCL点云配准

Posted li-yao7758258

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCL点云配准相关的知识,希望对你有一定的参考价值。

(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算法,其算法流程

                                                       技术分享图片

算法的伪码如下:

                                      技术分享图片

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

技术分享图片

以上是关于PCL点云配准的主要内容,如果未能解决你的问题,请参考以下文章

Python Open3D点云配准点对点,点对面ICP(Iterative Closest Point)

PCL学习总结点云配准算法之NDT

PCL学习总结点云配准算法之ICP系列

MATLAB怎么实现两个点云的配准

3D,点云拼接2

vs2010 点云 pcl运行错误error2019