> 文档中心 > 点云配准——(1)几种点云配准算法比较

点云配准——(1)几种点云配准算法比较


几种点云配准算法比较

参考许多博客,看了点云配准的好多算法,决定对这几天搞得点云配准做一个总结,主要也防止自己忘掉。主要参考下面这个博客,链接已经附上。
https://blog.csdn.net/peach_blossom/article/details/78506184

一、算法实现软硬件环境

CPU:intel corei5-5200 @2.20Hz

显卡:Nvidia GeForce GTX 850M

内存:8GB

操作系统:Windows 10 专业版

开发环境:Vs2013 +pcl1.8.0(release)

点云配准数据集:不同角度下的bunny rabbit

二、点云配准比较

2.1 配准目标
根据原始点云和目标点云,通过配准求出变换矩阵,即旋转矩阵R和平移矩阵T,并计算误差,来比较匹配结果。主要有以下几种比较
(1)基于局部特征描述子(PFH、FPFH、3Dsc);
(2)基于概率分布 (NDT);
(3)icp粗配准比较 。

2.2 配准目标
(1)提取关键点
(2)特征描述
(3)一致性估计
(4)精配准
(5)误差分析:有一片点云,通过一直的旋转变换得到目标点云,让后通过下面几种配准方法,求出R、T,和实际变换矩阵比较,得到误差。

2.3 粗配准比较
粗配准的各种算法原理不加以介绍,好多博客中已经给出了详解。配准中,由于不同点云数据集的特性,需要提取不同关键点。本文统一对数据集进行滤波采样,减少点的数量,来提高算法的效率。

2.3.1 结果图分析
原始图
点云配准——(1)几种点云配准算法比较
pfh粗配准
点云配准——(1)几种点云配准算法比较
fpfh粗配准
点云配准——(1)几种点云配准算法比较
3Dsc粗配准
点云配准——(1)几种点云配准算法比较
ndt粗配准
点云配准——(1)几种点云配准算法比较

2.3.2 时间分析

点云配准——(1)几种点云配准算法比较

2.3.3变换矩阵分析
变换矩阵结构为

R3*3 T1*3
0 1

在这里插入图片描述

2.3.4误差分析
在这里插入图片描述

2.4 粗配准中的icp用法

icp配准一般用于精配准中,我看了看网上博客,似乎可以直接进行配准,所以对两组不同角度的点云数据集进行配准。得到的结果如下:
点云配准——(1)几种点云配准算法比较
t=0.063s
点云配准——(1)几种点云配准算法比较
t=0.05s

在icp粗配准,当给不同的数据集时(R、T不同时的点云),icp可能陷入局部最优解,故icp一般用于精配准中,且需要提供良好的初值。

综上,粗配准方案中,算法耗时时间依次为NDT<FPFH<PFH<3Dsc;其中FPFH特征为PFH特征描述子的改进。NDT耗时少,但从上述图中观察,初值提供不够精确。其中旋转矩阵R和平移矩阵T已经列出。

2.4 完全配准比较
下面对上述几种粗配准方案中,加上精配准。然后对结果进行比较。
2.4.1 结果图分析
点云配准——(1)几种点云配准算法比较
pfh+icp
点云配准——(1)几种点云配准算法比较
fpfh+icp
点云配准——(1)几种点云配准算法比较
3Dsc+icp
点云配准——(1)几种点云配准算法比较
ndt+icp

2.4.2 时间分析
在这里插入图片描述
2.4.3变换矩阵分析
在这里插入图片描述

2.4.4误差分析
在这里插入图片描述
可以得出,配准精度最高的是3Dsc,但耗时最长。
耗时:ndt<fpfh<pfh<3dsc

代码下载链接
https://download.csdn.net/download/weixin_43236944/10997992
https://download.csdn.net/download/weixin_43236944/10998014

后续两个月更新完
基于PCL的QT开发