点云配准(一)— ICP方法
点云配准本质上是将点云从一个坐标系变换到另一个坐标系。
点云配准通常会需要用到两个点云数据。第一类点云数据称为原始点云,用S(source)来表示。第二类点云数据称为目标点云,用T(Target)来表示。
点云配准是让原始点云S在目标点云T的坐标上进行显示。我们可以通过找到点云中具有相似特征的点云来确定坐标的变换关系。例如,同一个物体的点云同时出现在原始点云和目标点云中,并且在两个点云中有特征相似的部分点云,根据这些相似的点云信息来计算出变换关系。
假设原始点云到目标点云发生的是刚体变换,即原始点云通过旋转和平移即可得到目标点云。这里的旋转和平移过程用旋转变换矩阵R和平移变换矩阵T来表示。我们用P(S)表示原始点云中的点,P(T)表示原始点云在目标点云坐标系中的点。那么这种变换关系可以表示为:
因此,点云配准的主要任务是计算出旋转矩阵R和平移矩阵T。
迭代最近点算法(Iterative Closest Point, ICP)
第一步:初始化R、T矩阵,根据R、T矩阵可以得到P(T),即原始点云在目标点云坐标系下的坐标。
第二步:在目标点云中寻找与P(T)最近的点,并且距离小于规定的阈值,这个阈值可以自己定义。
第三步:对第二步中匹配到的点计算欧式距离误差,并且通过最小二乘法来优化R、T矩阵。
第四步:将第三步优化后的R、T矩阵带回第一步中,重新进行迭代,直到迭代满足要求后,得到最终优化的R、T矩阵。
ICP方法分类
ICP方法可分为点到点(PointToPoint)和点到平面(PointToPlane)两类。
PointToPoint:计算P(t)和目标点云T的距离采用点到点之间的距离形式。
PointToPlane:计算P(t)中点到目标点云T的点所在平面的距离,这里通常需要用到目标点云的法向量。
python源码
点云配准(二)— python open3d ICP方法_Coding的叶子的博客-CSDN博客点云配准(二)—python open3d ICP方法,含源码https://blog.csdn.net/suiyingy/article/details/124336476
python三维点云研究计划_Coding的叶子的博客-CSDN博客_3d点云 python将按照以下目录持续进行更新……点云格式介绍、点云可视化、点云投影、生成鸟瞰图、生成前视图、点云配准、点云分割、三维目标检测、点云重建、深度学习点云算法……https://blog.csdn.net/suiyingy/article/details/124017716
更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。
点云配准(一)— ICP方法相关推荐
- 点云配准NDT+ICP
点云配准NDT+ICP #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types. ...
- 点云配准之icp的简单实现
C++实现经典的点云配准算法--ICP,根据高博视觉14讲的推导(具体过程看书,还是很好理解的),ICP的计算过程如下所示: 具体的C++代码实现如下: void pose_estimation_3d ...
- 点云配准算法ICP及其各种变体
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨流川峰 来源丨深蓝AI 介绍 点云配准(Point Cloud Registration)算法指 ...
- 干货 | 三维点云配准:ICP 算法原理及推导
编者荐语 点云配准可以分为粗配准(Coarse Registration)和精配准(Fine Registration)两步.粗配准指的是在两幅点云之间的变换完全未知的情况下进行较为粗糙的配准,目的主 ...
- PCL点云配准(ICP)
/*********************************** 点云配准 *****************************************/ #include <pc ...
- 点云配准(二)— python open3d ICP方法
上一节中介绍了点云配准的基础知识.本节将采用python open3d来进行点云配准. open3d安装和点云配准介绍,请参考: Open3d读写ply点云文件_Coding的叶子的博客-CSDN博客 ...
- 点云配准的传统算法ICP与NDT概述
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957.本文来自点云PCL博主的分享,未经作者允许请勿转载, ...
- 点云配准学习路线及方法
来源:https://gitee.com/wyfproject/Point-cloud-registration-master/repository/archive/master.zip 在gitee ...
- 快速精确的体素GICP三维点云配准算法
标题:Voxelized GICP for Fast and Accurate 3D Point Cloud Registration 作者:Kenji Koide, Masashi Yokozuka ...
- 简述3D点云配准算法
蝶恋花·槛菊愁烟兰泣露 槛菊愁烟兰泣露,罗幕轻寒,燕子双飞去. 明月不谙离恨苦,斜光到晓穿朱户. 昨夜西风凋碧树,独上高楼,望尽天涯路. 欲寄彩笺兼尺素.山长水阔知何处? --晏殊 导读: 3D点 ...
最新文章
- TensorFlow2-神经网络基础
- 总结 构造函数与非构造函数 原型继承的一个方法
- Visual C++中的ODBC编程实例
- jmeter5实现mysql数据库值提取--单sql提取
- platform_device_add()函数分析
- python编程(关于cocos2d)
- Qtum手机钱包教程
- shell 的source指令和.指令
- tomcat8修改session的JSESSIONID名称
- #多个基因批量cox 多因素回归cox univariate Adjust for age sex单个基因cox 回归分析 多因素 矫正年龄性别之后的cox回归分析 矫正年龄性别之后的cox生存分析
- 未来计算机作文600字,未来的电脑作文600字(精选3篇)
- Circular Barn Revisited (区间DP)
- python文字编辑器推荐_推荐5个常用的文本编辑器
- Wireshark使用详解
- 学校标准化计算机室的设备配置,幸福小学创建标准化学校汇报材料
- 51单片机实现独立按键控制LED灯
- 教资教招笔记整理(二)
- 基于MATLAB Simulink的光伏特性程序,改程序说明了太阳辐射强度、光伏电池温度
- TELEDYNE DALSA Sherlock 系统软件 sherlock SH7-PRO视觉加密狗
- OpenStack下的虚拟机,keepalived虚拟ip,ping不通
热门文章
- 突发!ARM中国区执行董事长兼CEO被免职
- PHP常用函数大全500+
- 易语言数据类型与c 对照,详解易语言中的数据类型
- 基于Python的指数基金量化投资 - 指数投资技巧(二)定期不定额
- 解析游戏中的简单概率算法
- 游戏开发中的脚本语言
- ICEM(2)—机翼翼稍网格绘制
- 强烈推荐!!!Ubuntu19.04安装向日葵踩到的坑【尤其是ubuntu 19.04 遇到了libpng12.so.0 导致无法apt 更新!!!!】
- ISO 37301:2021《合规管理体系 要求及使用指南》国际标准解读及相关标准
- DB2 SQLCODE 异常大全编辑(四)