打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Open3d学习计划—高级篇 1(点云离群点移除)

Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。

本系列学习计划有Blue同学作为发起人,主要以Open3D官方网站的教程为主进行翻译与实践的学习计划。点云PCL公众号作为免费的3D视觉,点云交流社区,期待有使用Open3D或者感兴趣的小伙伴能够加入我们的翻译计划,贡献免费交流社区,为使用Open3D提供中文的使用教程。

当我们从扫描设备获取点云数据时,数据会包含人想除去的噪声和伪影。这篇教程将会介绍如何使用Open3d除去离群点。

数据预处理

使用 voxel_downsample 去采样得到点云。

print("Load a ply point cloud, print it, and render it")pcd = o3d.io.read_point_cloud("../../TestData/ICP/cloud_bin_2.pcd")o3d.visualization.draw_geometries([pcd])

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])

Downsample the point cloud with a voxel of 0.02

为了比较,uniform_down_sample 通过每n个点来降采样点云。

选择点

elect_down_sample 函数通过二进制mask去只输出被选中的点。选中的点和未选中的点被可视化。

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])

统计式离群点移除

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 会删除在给定半径的球体周围几乎没有邻域点的点。他也有两个输入参数:

  • 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)

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
使用正态分布变换进行配准
自动驾驶:基于PCL的激光雷达感知
邻域
LBP特征原理
【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
opencv:特征检测与提取
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服