1. 研究目的与意义
背景:点云是一种常见的3d形状的表达方式,我们可以通过点云来表示一个物体或者一个场景。通过不同角度的观察点云,我们通过人眼可以分辨出点云所代表的物体的类别、猜测物体可能蕴含的功能以及通过不完整的点集来还原出物体本来的形状。近些年来,科研工作者对点云的分析甚至延伸到了时间维度,有一些文章通过分析点云流(point cloud flow)来判断街道上车辆的行驶方向。总而言之,点云是一种方便的3d表达方式,而且还包含着大量值得挖掘的信息。
点云获取和点云数据缺陷:
目前比较流行且方便的点云获取方式主要有两种,rgbd深度相机和lidar激光雷达。二者的优劣在这里就不多讨论了,因为这个专题我们只关注点云本身。
2. 研究内容和预期目标
1. 点云滤波(数据预处理)
点云滤波,顾名思义,就是滤掉噪声。原始采集的点云数据往往包含大量散列点、孤立点,比如下图为滤波前后的点云效果对比。
3. 研究的方法与步骤
1. 显示点云
read_point_cloud: 该方法用于读取点云,它会根据扩展名对文件进行解码。所支持的文件类型
draw_geometries: 查看点云,可以通过移动鼠标来从不同的角度点云。
它看起来像一个密集的曲面,但实际上是一个渲染为曲面的点云。GUI支持各种键盘功能。例如,-键减小点(曲面)的大小。
注:按H键为GUI打印出键盘指令的完整列表。有关可视化GUI的更多信息,请参阅可视化和自定义可视化。
2. 体素下采样
体素下采样使用常规体素栅格从输入点云创建均匀下采样点云。它通常用作许多点云处理任务的预处理步骤。该算法分两步操作:
将点固定为体素。
每个被占用的体素通过平均内部的所有点来生成正好一个点。
print("Downsample the point cloud with a voxel of 0.05")
downpcd = pcd.voxel_down_sample(voxel_size=0.05)
o3d.visualization.draw_geometries([downpcd])
对体素为0.05的点云进行下采样。
3. 顶点正态估计
点云的另一个基本操作是点正态估计。按N键查看点法线。键-和 可用于控制法线的长度。
estimate_normals: 计算每个点的法线。该函数查找相邻点并使用协方差分析计算相邻点的主轴。该方法的两个关键参数radius=0.1和max_nn=30指定搜索半径和最大最近邻。它的搜索半径为10cm,最多只考虑30个邻居,节省了计算时间。
4. 访问估计顶点法线
可以从downpcd的normals变量中检索估计的法向量。
可以通过np.asaray将法向量转换为numpy数组。
5. 裁剪点云
加载多边形体积并使用它裁剪原始点云
read_selection_polygon_volume: 读取指定多边形选择区域的json文件。
vol.crop_point_cloud(pcd): 过滤出点。只剩下椅子了。
6. 绘制点云
paint_uniform_color: 将所有点绘制为统一的颜色。颜色在RGB空间,[0,1]范围内。
7. 点云距离
Open3D提供了方法compute_point_cloud_distance来计算源文件和目标文件间的距离,它为源点云中的每个点计算到目标点云中最近点的距离。在下面的示例中,我们使用函数来计算两点云之间的差异。请注意,此方法也可用于计算两点云之间的倒角距离。
8. 边界体积
点云几何体类型与Open3D中的所有其他几何体类型一样具有边界体积。当前,Open3D实现了一个AxisAlignedBoundingBox和一个OrientedBoundingBox,也可用于裁剪几何体。
9. 密度的聚类算法簇
给定一个来自深度传感器的点云,我们希望将本地点云簇分组在一起。为此,我们可以使用聚类算法。Open3D实现了DBSCAN,这是一种基于密度的聚类算法。该算法在cluster_dbscan中实现,需要两个参数:eps定义到簇内邻居的距离,min_points定义形成簇所需的最小点数。函数返回labels,其中labelmin_points表示noise。
10. 平面分割
Open3D还支持使用RANSAC从点云分割几何原语。要在点云中找到支撑度最大的平面,可以使用segment_plane.该。法有三个参数:distance_threshold定义了一个点到被认为是内联的估计平面的最大距离,ransac_n定义了随机采样以估计平面的点的数量,num_iterations定义了随机平面的采样和验证频率。然后函数将平面返回为(a,b,c,d),这样平面上的每个点(x,y,z)的ax by cz d=0。函数还返回内部点的索引列表。
|
4. 参考文献
[1]戴静兰,陈志杨,叶修梓. icp算法在点云配准中的应用[j].中国图象图形学报,2007(03):517-521.
[2]罗先波,钟约先,李仁举.三维扫描系统中的数据配准技术[j].清华大学学报(自然科学版),2004(08):1104-1106.
[3]徐进军,王海城,罗喻真,王尚庆,严学清.基于三维激光扫描的滑坡变形监测与数据处理[j].岩土力学,2010,31(07):2188-2191 2196.
5. 计划与进度安排
5.具体进度安排(包括序号、起迄日期、工作内容)
一、研究工作准备阶段(2022.02.15——2022.03.15):2022.02.15——2022.03.15为准备工作阶段,包括查阅资料、阅读部分参考文献及实验数据准备等;
2022.03.15——2022.03.26为开题阶段,主要工作是撰写开题报告等。二、研究工作开展阶段(2022.03.29——2022.06.4):2022.3.29——202.5.28为研究攻坚阶段,主要是研究论文撰写阶段;2022.5.28——2022.6.4为论文修改阶段,对前期工作进行修改和完善。三、研究论文提交阶段(2022.06.05——2022.06.12):毕业论文排版、打印、装订以及提交。
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。