点云配准、拼接概念综述

2023-11-10

        点云扫描设备在对环境进行扫描时,往往不能在同一坐标系下将环境的点云数据一次性测量。其原因是环境大小超过了扫描设备的测量范围,并且环境里的物体之间相互遮挡,点云扫描设备在一个角度不太可能扫描到物体的完整点云。得到多片点云数据后,我们需要一种技术将多片点云数据旋转平移到统一的坐标系下,使它们能够组成完整的环境点云数据,这种技术叫点云拼接

        点云拼接是任意位置的点云的重叠部分相互配准的过程,点云配准分为刚体和非刚体(只存在空间旋转平移变换的配准问题称为刚体配准,存在缩放、变形、仿射变换的配准问题称为非刚体配准),这里主要介绍刚体点云配准。刚体配准计算旋转矩阵R和平移矩阵T,使源点云旋转平移过去与目标点云重合,保证两片点云对应部分尽可能多的重合。解决的办法是可以将他转化成一个优化问题,即在适当的度量空间中,通过求解最佳旋转和平移矩阵使这样的数据集之间的重叠区域之间的各对应点的平均距离最小。

        如上图,将两片点云的重叠部分进行配准,两片点云组合成一片更为完整的点云即实现了两片点云的拼接。

        点云配准按照初始条件与精确度等,可以分为粗配准与精配准两种配准方法。

        粗配准是在源点云与目标点云完全不知道任何初始相对位置的情况下,所进行的配准方法。该方法的主要目的是在初始条件未知的情况下,快速估算一个大致的点云配准矩阵。整个计算过程要求比较高的计算速度,对于计算结果的精确度则不做过高的要求。常见的粗配准算法的思路包括了:基于局部特征描述的方法、基于全局搜索策略以及通过统计学概率等方法。

其中,基于局部特征描述的方法是通过提取源点云与目标点云的邻域几何特征,通过几何特征快速确定二者之间的点对的对应关系,再计算此关系进而获得变换矩阵。而点云的几何特征包括了很多种,比较常见的即为快速点特征直方图(FPFH)。

基于全局搜索策略的代表算法是采样一致性算法(SAC_IA),该算法在源点云与目标点云之间随机选取几何特征一致的点组成点对。通过计算对应点对的变换关系,得到最优解。

正态分布算法(NDT)利用统计学概率的方法,根据点云正态分布情况,确定了对应点对从而计算源点云与目标点云之间的变换关系。

        精配准是利用已知的初始变换矩阵,通过迭代最近点算法(ICP算法)等计算得到较为精确的解。ICP算法通过计算源点云与目标点云对应点距离,构造旋转平移矩阵RT,通过RT对源点云变换,计算变换之后的均方差。若均方差满足阈值条件,则算法结束。否则则继续重复迭代直至误差满足阈值条件或者迭代次数终止。ICP算法具有以下特点:

优点:配准结果精确度较高,是一种精确配准算法;

缺点:对于两片点云的初始位置要求较为严格,否则容易陷入局部收敛且会

影响配准速度,因此需要通过粗配准来为ICP提供较好的点云初始位置。

配准效果如上图,左边为两片兔子的外部轮廓的点云的粗配准,右边为精配准。

 

参考及推荐阅读链接:

ICP 多视角点云对齐方法介绍_yuluoxuanyuan1992的博客-CSDN博客_点云对齐

ICP原理:https://zhuanlan.zhihu.com/p/104735380

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点云配准、拼接概念综述 的相关文章

  • python踩过的坑之py文件命名导致导入包错误

    用python编程 一定要注意命名 今天为大家分享一个小错误 当执行import module时 解释器会根据下面的搜索路径 搜索module1 py文件 1 当前工作目录 2 PYTHONPATH中的目录 3 Python安装目录 usr
  • numpy中的cumsum()函数的使用

    关于numpy cumsum 在官网中官方给了一个很好的例子 cumsum的作用主要就是计算轴向的累加和 里面最重要的参数就是axis 当里面的参数axis没有值时 默认是一个一维数组进行加和 即 a np array 1 2 3 4 5
  • Java面试之Git与Maven面试题

    1 Git 是什么 它有什么作用 Git 是一种分布式版本控制系统 用于管理源代码的变更和追踪 它可以记录文件更改的历史 帮助多人协同开发 并提供了回滚 分支管理等功能 2 Git 和 SVN 或其他版本控制系统 有什么区别 SVN 是集中

随机推荐

  • kotlin Array和可变参数vararg之间互转

    可变参数可以直接赋值给array array转可变参数 在使用array时前面加上 传播符号 spread operator 举个例子 val array Array
  • VisualVM使用方法

    1 VisualVM 简介 VisualVM 是一个工具 它提供了一个可视界面 用于查看 Java 虚拟机 Java Virtual Machine JVM 上运行的基于 Java 技术的应用程序 Java 应用程序 的详细信息 Visua
  • 参数估计(点估计和区间估计)

    参数估计是以抽样分布为中介 用样本的参数特征对总体的参数进行数值估计的过程 一 点估计 1 点估计就是用样本统计量来估计总体参数 概念理解 当我们想知道某一总体的某个指标的情况时 测量整体该指标的数值 的工作量太大 或者不符合实际 这时我们
  • Go 编译 build 然后run遇到的问题

    首先 吐槽一下 https go zh org doc code html 这个官网如何编译 Go代码必须放在工作空间内 它其实就是一个目录 其中包含三个子目录 src 目录包含Go的源文件 它们被组织成包 每个目录都对应一个包 pkg 目
  • java deletecharat_Java StringBuffer.delete/deleteCharAt 删除字符

    首页 gt 基础教程 gt 常用类 gt 常用 StringBuffer StringBuilder 类 Java StringBuffer delete deleteCharAt 删除字符 java中StringBuffer delete
  • vue报错sockjs-node/info?t=或者报错info?t=

    前言 整理问题记录 问题现状 相关资料 sockjs node介绍 sockjs node 是一个JavaScript库 提供跨浏览器JavaScript的API 创建了一个低延迟 全双工的浏览器和web服务器之间通信通道 服务端 sock
  • JS数组合并(5种)

    前言 项目过程中 经常会遇到 JS 数组合并的情况 时常为这个纠结 这里整理一下 简单而实用的for 最容易想到的莫过于 for 了 会变更原数组 当然也可以写成生成新数组的形式 let arr 1 2 let arr2 3 4 for l
  • window电脑通过vscode的ssh访问linux服务器-详细部署教程

    在本文中将讲述linux服务器 window电脑的详细设置 一步一步部署 教程包括 在linux服务器和window客户端ssh设置 免密设置 xming图像访问 SSH 是为建立在应用层基础上的安全协议 SSH 是目前较可靠 专为远程登录
  • leetcode--python--228

    228 汇总区间 给定一个无重复元素的有序整数数组 nums 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 也就是说 nums 的每个元素都恰好被某个区间范围所覆盖 并且不存在属于某个范围但不属于 nums 的数字 x 列表中的
  • java属于编译型还是解释型语言?

    首先要明白编译型语言和解释型语言的定义 编译型语言 把做好的源程序全部编译成二进制代码的可运行程序 然后直接运行这个程序 特点 执行速度快 效率高 依靠编译器 跨平台性差 解释性语言 把做好的源程序翻译一句 然后执行一句 直至结束 特点 执
  • BSN长话短说之六:公链如何破局

    BSN长话短说之六 公链破局 王立新 感谢各位嘉宾抽出宝贵时间参与这次对话 先简单介绍下今天出席对话嘉宾 红枣科技CEO 何亦凡 Nervos联合创始人 吕国宁 分布科技Onchain CEO Neo创始人 达鸿飞 Algorand Fou
  • 真题详解(地址索引)-软件设计(五十一)

    真题详解 单元测试 软件设计 五十 https blog csdn net ke1ying article details 130189173 spm 1001 2014 3001 5501 指令寻址方式 有四种 直接寻址 寄存器寻址 隐含
  • Rest分发监听接口

    Rest分发监听接口 一 Rest分发接口 1 创建目录 2 New XMLSchema File Name 自己根据接口定义名字 Directory 选择自己接口Schema的路径 Target Namespace 这个路径根据要求 Sc
  • 使用xlrd库读取Excel自定义sheet表内容,以字典格式输出

    如题描述 如何根据自定义的worksheet读取工作表内容呢 对于参数化数据时如果能做到这个是有一定好处的 当然也有其他不同路径的处理方法也是可以的 想要过程完美需要时间打磨的呀 今天分享xlrd库的用法 根据自定义的sheet读取表格内容
  • 图文并茂开发AR小游戏全教程(一)

    AR动画可放大缩小平移旋转 可自行下载项目运行到真机上演示 由于项目以及下文用到的素材较大 GItHub 无法上传 故传到百度云LLGameAR 文章目录 一 AR 和 VR 概念 二 软件简介 Unity 3D Vuforia SDK 三
  • mybatis中resultmap与resulttype区别

    resultmap与resulttype的区别为 对象不同 描述不同 类型适用不同 一 对象不同 1 resultmap resultMap如果查询出来的列名和pojo的属性名不一致 通过定义一个resultMap对列名和pojo属性名之间
  • 编译ARM版本mosquitto-1.6.8

    编译前提依赖 需下载 c ares 1 14 0 下载源码 wget c https c ares haxx se download c ares 1 14 0 tar gz 解压源码 tar zxvf c ares 1 14 0 tar
  • Redis之《狂神说》学习笔记

    一 Nosql 1 为什么使用Nosql 大数据时代 普通的数据库无法进行数据分析 Hadoop 2006 历史发展 1 单机MySQL时代 90年代 一个网站的访问量一般不会太大 单个数据库完全够用 问题 数据量增加到一定程度 单机数据库
  • OTA测试方法解析

    目前 标准的OTA测试系统是SISO 单输入 单输出 如主流的2G 3G和WLAN的802 11a b g等设备 其主要的测试指标是TRP 总辐射功率 和TIS 总全向灵敏度 现代无线技术如LTE HSPA WI FI和WiMAX为了提高数
  • 点云配准、拼接概念综述

    点云扫描设备在对环境进行扫描时 往往不能在同一坐标系下将环境的点云数据一次性测量 其原因是环境大小超过了扫描设备的测量范围 并且环境里的物体之间相互遮挡 点云扫描设备在一个角度不太可能扫描到物体的完整点云 得到多片点云数据后 我们需要一种技