29 PCL配准问题调参

Posted ghjnwk

tags:

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

0 引言

最近项目中用到了基于PCL开发的基于平面的点云和CAD模型的配准算法,涉及到19个参数,分列如下。

1 参数及其意义介绍

(1)点云下采样

  1. 参数:leafsize

  2. 意义:Voxel Grid的leafsize参数,物理意义是下采样网格的大小,直接影响处理后点云密集程度,并对后期各种算法的处理速度产生直接影响。

  3. 值越大,点云密度越低,处理速度越快;值越小,点云密度越高,处理速度越慢。通常保持这个值,使得其他的与点数有关的参数可以比较稳定而不作大的改动。

  4. 对应的代码:

PointCloudPtr cloud(new pointCloud);
ParameterReader pd(ParameterFilePath);
double leafsize = stod(pd.getData("leafsize"));
pcl::VoxelGrid<PointT> sor;
sor.setInputCloud(CRTP::cloud_org);
sor.setLeafSize(leafsize, leafsize, leafsize);
sor.filter(*cloud);

(2)点云法线估计

  1. 参数:Ksearch

  2. 意义:估计法线时邻域内点的个数

  3. 值越小,对点云的轮廓描述越精细;值越大,对点云的轮廓描述越粗糙。

  4. 对应的代码:

ParameterReader pd(ParameterFilePath);
pcl::NormalEstimation<PointT, pcl::Normal> ne;
pcl::PointCloud<pcl::Normal>::Ptr mynormals(new pcl::PointCloud<pcl::Normal>);
pcl::search::KdTree<PointT>::Ptr tree(new pcl::search::KdTree<PointT>);
tree->setInputCloud(cloud_filter);
ne.setInputCloud(cloud_filter);
ne.setSearchMethod(tree);
ne.setKSearch(stoi(pd.getData("Ksearch")));
ne.compute(*mynormals);

 

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

点云配准(Registration)算法——以PCL为例

PCL点云配准

66 PCL配准算法——ICP与RanSAC

点云配准 6 -pcl如何使用正态分布变换进行配准

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

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