创建可视化点云入门
matplot.subplots( nrows,ncols):
parameters:nrows,ncols:将子图分成nrows*nclos个子图
subplot_kw : dict,使用传递给matplotlib.figure.figure.add_subplot`调用的关键字进行Dict,该调用用于创建每个子程序。
return:fig(Figure),ax(.axes.Axes):常用axes=ax.flatten()把子赋值给axes,axes[0]第一个子图
注:matplot详解:Matplotlib是什么 (biancheng.net)(文档包括2D,3D绘图)
plt.plot3D():绘制图线
plt.scatter3D( ):绘制散点图
github3Dscanrep下载失败:
数据集地址:(9条消息) 3D点云数据集整理_I-am-Unique的博客-CSDN博客
kitti数据集解析:(9条消息) KITTI数据集下载及解析_Michael.CV的博客-CSDN博客_kitti数据集下载
点云数据格式:txt(单纯点集)、ply、pcd(含有相应数据特点的头文件)

PointNet:提供统一框架,实现同一场景的点云分类
给定物体的点云分成不同的类,
把物体分成不同的区块
给定场景,完成语义分割,比如桌子、椅子
点云预处理
戴静兰. 海量点云预处理算法研究[D].浙江大学,2006.
由激光扫描设备得到的三维数字化的结果是空间上离散的集合点,在重建之前应进行数据预处理,目的是获得完整准确的测量数据
预处理包括:点云去噪、点云配准、点云精简、点云合并、点云分割、点云派生、点云排序
点云去噪
有序点云:标准高斯(较好保持原数据的形貌)、平均或中值滤波(消除数据毛刺的效果更好)算法。
散乱点云:k-dTree
k-dTree
对于无序点云,点与点之间没有建立拓扑关系,只要能够建立散乱点云中点与点之间的拓扑关系,就可进行点云去噪
寻找点云拓扑关系(K-nearest neighbors)方法:
| 八叉树法 | 基于八叉树法分割点云,再根据包围盒与数据点空间分布的对应关系,建立点的拓扑关系 |
| 空间单元格法 | 也是基于包围盒的划分,在xyz三个方向上按照一定的间隔分别创建一系列平行平面,把包围盒划分为许多单元格,取各单元格中最靠近单元格中心的数据点作为中心点,代替整个测量数据,即可建立点的拓扑关系 |
| k-dTree法 | 查找距离最近的两点,他是一种便于空间中点搜索的数据结构 |
点云配准
对局部点云数据进行整合和配准
常见方法:
| 标签法 | 人为的贴上一些特征点,使用特征点进行定位 |
| 提取特征法 | 要求点云有比较明显的特征 |
| ICP算法 | 精度高,但速度慢 |
点云精简
获得数据巨大,对点云进行适量的精简
| 散乱点云 | 随机采样、均匀网格、三角网格 |
| 扫描线和多边形点云 | 等间距缩减、倍率缩减、等量缩减、弦高差 |
| 网格化点云 | 等分布密度法、最小保卫区域法 |
点云分割
即使经过点云精简,但对于特别复杂、曲率变化过大的实体,过滤后的点云数据还是比较大,
将整体点云进行分割,分割成一块块的点云数据进行处理,然后再进行整体匹配恢复原始实体形状
点云融合
经过配准后点云为若干个独立的点云,将他们无缝融合,去掉多余的点,或者补上欠缺的点,使整个点云完整
点云派生
需要在原有点云基础上创造新的点云——点云派生。
方法:镜像原始点云、对原始点云按比例缩放、对原始点云加密、原始点云对齐到新坐标系、抽取原始点云扫描线
浙公网安备 33010602011771号