Open3d Point cloud outlier removal 点云异常值移除

简介: Open3d Point cloud outlier removal 点云异常值移除

Point cloud outlier removal 点云异常值移除

从扫描设备收集数据时,生成的点云往往包含想要删除的噪声和伪影(artifacts)。本教程介绍了 Open3D 的异常值删除功能。

Prepare input data 准备输入数据

加载点云,使用voxel_downsample下采样。

print("Load a ply point cloud, print it, and render it")
sample_pcd_data = o3d.data.PCDPointCloud()
pcd = o3d.io.read_point_cloud(sample_pcd_data.path)
o3d.visualization.draw_geometries([pcd],
                                  zoom=0.3412,
                                  front=[0.4257, -0.2125, -0.8795],
                                  lookat=[2.6172, 2.0475, 1.532],
                                  up=[-0.0694, -0.9768, 0.2024])

print("Downsample the point cloud with a voxel of 0.02")
voxel_down_pcd = pcd.voxel_down_sample(voxel_size=0.02)
o3d.visualization.draw_geometries([voxel_down_pcd],
                                  zoom=0.3412,
                                  front=[0.4257, -0.2125, -0.8795],
                                  lookat=[2.6172, 2.0475, 1.532],
                                  up=[-0.0694, -0.9768, 0.2024])

或者使用uniform_down_sample 点云下采样,通过收集每n个点。

print("Every 5th points are selected")
uni_down_pcd = pcd.uniform_down_sample(every_k_points=5)
o3d.visualization.draw_geometries([uni_down_pcd],
                                  zoom=0.3412,
                                  front=[0.4257, -0.2125, -0.8795],
                                  lookat=[2.6172, 2.0475, 1.532],
                                  up=[-0.0694, -0.9768, 0.2024])

Select down sample 选择下采样

下面函数使用select_by_index ,它采用二进制掩码(binary mash)来仅输出选定的点。所选点和未所选点将可视化。

def display_inlier_outlier(cloud, ind):
    inlier_cloud = cloud.select_by_index(ind)
    outlier_cloud = cloud.select_by_index(ind, invert=True)

    print("Showing outliers (red) and inliers (gray): ")
    outlier_cloud.paint_uniform_color([1, 0, 0])
    inlier_cloud.paint_uniform_color([0.8, 0.8, 0.8])
    o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud],
                                      zoom=0.3412,
                                      front=[0.4257, -0.2125, -0.8795],
                                      lookat=[2.6172, 2.0475, 1.532],
                                      up=[-0.0694, -0.9768, 0.2024])

Statistical outlier removal 统计异常值删除

statistical_outlier_removal删除与平均值相比,与其相邻点距离过大的点。它需要两个输入参数:

nb_neighbors,它指定在计算给定点的平均距离时要考虑的相邻要素数。

std_ratio,允许根据点云中平均距离的标准偏差设置阈值水平。此数字越低,过滤器的激进程度就越高,删除的越多。

print("Statistical oulier removal")
cl, ind = voxel_down_pcd.remove_statistical_outlier(nb_neighbors=20,
                                                    std_ratio=2.0)
display_inlier_outlier(voxel_down_pcd, ind)

Radius outlier removal 半径异常值删除

radius_outlier_removal移除在给定球体周围具有较少邻居的点。可以使用两个参数来调整筛选器以显示您的数据:

nb_points,允许您选取球体应包含的最小点数。

radius,它定义将用于计算相邻要素的球体的半径。

print("Radius oulier removal")
cl, ind = voxel_down_pcd.remove_radius_outlier(nb_points=16, radius=0.05)
display_inlier_outlier(voxel_down_pcd, ind)


相关文章
|
机器学习/深度学习 存储 编解码
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
15379 1
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
|
7月前
|
编解码 资源调度 算法
深度图与点云去噪实战:双边滤波+统计/半径滤波原理与Open3D全实现
本文系统讲解3D视觉中深度图与点云的工业级去噪方案:详解统计滤波(剔孤立点)、半径滤波(除稀疏噪点簇)及双边滤波(边缘保留平滑),提供Open3D+OpenCV全流程代码,支持深度图预处理→点云生成→联合去噪,兼顾精度、效率与鲁棒性。(239字)
1232 6
|
算法 数据处理
点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)
点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)
2331 0
点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)
|
4月前
|
人工智能 IDE 程序员
[理论篇-13]AI 编程(AI Coding)—— 从"AI 帮你打字"到"AI 替你跑腿",程序员的工种正在重写
用大白话讲清楚"AI 编程"到底是什么、它在 2026 年走到了哪一步、为什么"会用 AI 写代码"突然变成了一门手艺、又为什么有人喊"AI 取代程序员",同时另一群人喊"AI 让我变成了更值钱的程序员"。
721 1
|
3月前
|
人工智能 编解码 自然语言处理
阿里云AI产品与相关大模型活动参考:免费领Tokens,AI产品试用、大模型节省计划介绍
2026年截至目前阿里云AI产品及大模型服务的主要活动参考:AI订阅方面,Token Plan提供198-1398元/月三档套餐,Coding Plan Pro高级套餐200元/月限量发售;HappyHorse视频生成模型限时8折。免费试用提供超30款AI产品及7000万Tokens,涵盖Agent开发、图文生成、代码生成等。成本优化方面,全模型通用抵扣低至10元/月,AI通用型节省计划最高可享5.3折。此外还有"先用后返"优惠券活动,最高返200元。
|
4月前
|
人工智能 供应链 架构师
未来2-3年,智能体架构师是中国最赚钱的职业
智能体架构师卢成(Agent Architect),深耕AI落地实战多年,专注为企业提供轻量化、可量化的AI工作流解决方案。他定义该职业为“智能体时代的API接口”, bridging 技术与商业,不堆砌概念,只做降本增效、能变现的真落地。行业黄金期已至,轻服务、标准化、强适配是其核心方法论。(239字)
|
10月前
|
机器学习/深度学习 人工智能 机器人
焊接情况检测数据集(千张图片已划分)| 面向工业质检的目标检测训练集
总结来看,本次分享的焊接情况检测数据集为工业智能化提供了坚实的基础。数据集涵盖了“良好焊缝”、“不良焊缝”和“缺陷”三大类别,采用了标准的 YOLO 标注格式,保证了在目标检测任务中能够高效、准确地训练模型。通过合理划分训练集、验证集和测试集,开发者可以充分利用数据进行模型优化与验证,从而在实际工业生产环境中实现对焊接表面缺陷的自动检测与监控。
焊接情况检测数据集(千张图片已划分)| 面向工业质检的目标检测训练集
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
29955 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)