原文首发于公众号「3D视觉工坊」:3D点云配准(二多幅点云配准)

在上一篇文章 点云配准(一 两两配准)中我们介绍了两两点云之间的配准原理。本篇文章,我们主要介绍一下PCL中对于多幅点云连续配准的实现过程,重点请关注代码行的注释。

对于多幅点云的配准,它的主要思想是对所有点云进行变换,使得都与第一个点云在统一坐标系中。在每个连贯的、有重叠的点云之间找到最佳的变换,并累积这些变换到全部的点云。能够进行ICP算法的点云需要进行粗略的预匹配,并且一个点云与另一个点云需要有重叠部分

此处我们以郭浩主编的《点云库PCL从入门到精通》提供的示例demo来介绍一下多幅点云进行配准的过程。

/* ---[ */ int main (int argc, char** argv)
{// 加载数据std::vector

对于上述过程中的核心函数pairAlign(),我们重点介绍如下:

/**匹配一对点云数据集并且返还结果 *参数 cloud_src 是源点云 *参数 cloud_src 是目标点云 *参数output输出的配准结果的源点云 *参数final_transform是在来源和目标之间的转换 */ void pairAlign (const PointCloud::Ptr cloud_src, const PointCloud::Ptr cloud_tgt, PointCloud::Ptr output, Eigen::Matrix4f &final_transform, bool downsample = false)
{//下采样//为了一致性和高速的下采样//注意:为了大数据集需要允许这项PointCloud::Ptr src (new PointCloud); //存储滤波后的源点云PointCloud::Ptr tgt (new PointCloud); //存储滤波后的目标点云pcl::VoxelGrid grid; //滤波处理对象if (downsample){grid.setLeafSize (0.05, 0.05, 0.05); //设置滤波处理时采用的体素大小grid.setInputCloud (cloud_src);grid.filter (*src);grid.setInputCloud (cloud_tgt);grid.filter (*tgt);}else{src = cloud_src;tgt = cloud_tgt;}//计算曲面法线和曲率PointCloudWithNormals::Ptr points_with_normals_src (new PointCloudWithNormals);PointCloudWithNormals::Ptr points_with_normals_tgt (new PointCloudWithNormals);pcl::NormalEstimation

思考:

对于小型或者中型数量的点云数据(点个数<100,000),我们选择ICP来进行迭代配准,可是利用对应点的特征计算和匹配较为耗时,如果对于两个大型点云(都超过100000)之间的刚体变换的确定,有什么好办法可以解决呢?

主要参考:郭浩主编的<点云库PCL从入门到精通>

上述内容,如有侵犯版权,请联系作者,会自行删文。

星球成员,可免费提问,并邀进讨论群

3D点云配准(二多幅点云配准)相关推荐

  1. 保存点云数据_3D点云配准(二多幅点云配准)

    本文首发于微信公众号「3D视觉工坊」:3D点云配准(二多幅点云配准) 在上一篇文章 点云配准(一 两两配准)中我们介绍了两两点云之间的配准原理.本篇文章,我们主要介绍一下PCL中对于多幅点云连续配准的 ...

  2. 云服务器二:远程连接云服务器

    文章目录 前言 一.登录云服务器控制台 二. 重装系统 三.修改密码 四.远程登录云服务器 总结 Linux系列文章链接: 前言 前面已经写了如何购买服务器,接下来记录一下如何使用云服务器. 提示:以 ...

  3. 3D目标检测(二)—— 直接处理点云的3D目标检测网络VoteNet、H3DNet

    前言 上次介绍了基于Point-Based方法处理点云的模块,3D目标检测(一)-- 基于Point-Based方法的PointNet点云处理系列,其中相关的模块则是构成本次要介绍的,直接在点云的基础 ...

  4. 金蝶云星空二维码整体解决方案 金蝶云星空条码管理系统 金蝶ERP移动解决方案 金蝶云星空条码扫描 金蝶云星空WMS仓库移动扫码 金蝶安卓PDA扫码方案 金蝶云星空出入库盘点出货条码扫码 提供源码

    本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案.          最近定制开发了一套适合企业的条 ...

  5. 目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查

    目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查 原文 Are We Hungry for 3D LiDAR Data for Semantic Segmentatio ...

  6. 三维激光点云到二维图像的投影

    Camera系列文章 传感器融合是将多个传感器采集的数据进行融合处理,以更好感知周围环境:这里首先介绍Camera的相关内容,包括摄像头及图像知识基本介绍,OpenCV图像识别(特征提取,目标分类等) ...

  7. 基于PCL库的通过ICP匹配多幅点云方法

    基于PCL库的通过ICP匹配多幅点云方法 前言 Code Result 前言 PCL库中有很多配准的方式,主要都是基于ICP ICP算法最初由Besl和Mckey提出,是一种基于轮廓特征的点配准方法. ...

  8. 3D点云系列(一)点云介绍

    点云数据简介 点云数据(point cloud data)是指在一个三维坐标系统中的一组向量的集合.扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)或反射强度信息(Int ...

  9. “天河二号”总工程师杜云飞谈星光超算应用平台设计

    整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]12 月 21-22 日,OpenI/O 启智开发者大会在深圳召开.在大会上, 国家超级计算广州中心总工程师." ...

最新文章

  1. Spring Boot项目错误:Error parsing lifecycle processing instructions
  2. 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
  3. 程序员减轻压力的十个建议
  4. 5. 深入研究 UCenter API 之 MVC 网站下的用法(转载)
  5. 供应商关系管理SRM为企业的节流增贡献
  6. tableView中deselectRowAtIndexPath的作用
  7. Java基础---“方法”题目练习
  8. 走美团特色的无人配送道路,王慧文:久久为功才能做成
  9. Mac安装apktool/dex2jar/jd-gui逆向工具
  10. c语言 最大子段和,最大子段和 C语言源码
  11. PPT图片虚化效果要怎样实现?
  12. chrome浏览器主页变成hao123
  13. emv交易流程介绍_EMV交易指标简介
  14. 北京 | 微信小程序及小游戏开发者线下交流会
  15. Microsoft SQL Server 数据库使用(一)
  16. 必备干货,程序员进阶升级全攻略!
  17. 修改数据库编码格式UTF-8
  18. 什么是yyyy-mm-dd格式
  19. 20171225 股票操作日志
  20. android:layout_alignParentLeft=true一下是什么意思

热门文章

  1. 迁移Win 2003 DHCP服务到2008R2
  2. 深入剖析SolrCloud(一)
  3. 【有奖辩论】工程师和销售创业谁更有优势?
  4. 利用or构造SQL巧妙注射
  5. 流利说统一可观察性平台实践
  6. 败家玩意儿!Redis 竟然浪费了这么多内存!
  7. Angel:深度学习在腾讯广告推荐系统中的实践
  8. 百度某员工哀叹:身边的混子太多,坚持了一年,简直浪费生命!
  9. 如何在Leangoo中创建企业
  10. 当前国内有哪些公司是做OKR管理软件做的比较好的?