1.点云数据的去噪

在测量数据的过程中,我们往往会不可避免的引入噪声点,点云数据预处理的一个步骤就是除去这些会对结果产生影响的错误的噪声点。

点云数据的去噪方式有很多,不同的点云类型也可以通过分析其具体特征选择适合的去噪方法,如对于扫描线型的点云分布类型,通过拟合曲线求偏差可以很好的过滤掉噪点(可参考你做物理实验时对数据的处理方法)。而本文主要介绍通用的适合多数类型的去噪方法,其在处理点云时将点云视为一团在空间中杂乱分布的点,而不去刻意考虑点云的分布类型。

其实参考物理实验对数据的处理方法,我们往往会默认不合群的数据为误差较大的点,因此去噪的核心就是找出这些不合群的点。这些点叫做孤立点,又叫离群点异常点等。而所谓的离群可以指该点与其他点的距离大于一定值,复杂点的定义引入了孤立因子的概念等,因此离群一词虽然不好定义但又很十分形象。

补充:孤立点的分类:全局孤立点、集合孤立点等。

很容易会想到可以通过求某一点与周围的点之间的距离来判断离群点(这也是目前比较常用的方法,其他也可通过统计、密度等方法判断,但很明显操作性和适用性会受到影响),可是对于大量无序的点来说,想要找到某一点其附近的点(即距离较近的点)并不容易,不同于肉眼一眼就能发现,计算机可能要求出该点到所有点的距离才能判断,这是一项非常耗时耗力的工作。因此对于大量无序的点,我们往往会考虑先将点数据按一定规则(空间索引方法)进行排列,这将会大大提高后续点云处理的速度。常见的排序方法有八叉树法、kd-tree法等。

补充:(1)八叉树:一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点(2*2*2)。

(2)kd-tree法:用于存储k维数据而提出的数据结构,是一种特殊的二叉树(指树中节点的度不大于2的有序树,其子节点数小于等于2)。其按照维度进行划分,每次划分替换一个维度,然后循环维度进行划分。(听起来有些复杂,其实对于三维来说就是按照进行点的划分,使每一个点都在节点上,直到分完每一个点。具体步骤如下:1.先将点按x坐标大小进行排序,将中间那个点放在第一个节点,剩下的自然而然分成两个部分,就有了两个子节点。2.每个部分再按y坐标大小进行排序,再将中间那个点放在刚刚的那两个节点上,又出现了2*2个部分和子节点。3.再按z坐标大小分,分完又按x坐标分。。。直到分完所有的点。)

经过特定规律排列后,便包含了一定的点与点之间的位置信息,下面我们将考虑通过平均邻域算法来检测孤立点。平均邻域算法是一种基于距离的孤立点检测方法,通过计算点云数据中的点与其邻近点之间的距离的平均值是否超过定值来判断。

具体步骤如下:

(1)将点按照一定规律进行排列,这里我们采用kd-tree法;

(2)取三维点云数据的任一点,搜索该点的k近邻点

补充:k邻点搜索方法:先通过二叉搜索找到一个当前的最近邻点(若该点存在于树中则即为该点),再以该节点进行正反向搜索判断k个距离最小的点(应按距离从小到大的顺序搜索)。

(3)计算该点与其k近邻点的平均距离并与设定值进行比较判断是否为孤立点。

补充:平均邻域算法的缺点是不好检测出紧挨点群的噪点,不过可以考虑进另一些判断因素,比如可以给距离的标准差设一个阈值,或者给该点与其k邻点的中心点之间的距离设一个阈值等,这就看你具体想要如何优化,提出你个人的观点了。

三维点云预处理之点云去噪相关推荐

  1. Halcon三维模型预处理(2):点云数据去噪+连通域分割

    点云数据是庞大的点集合,点云模型去噪就是删除多余的点集. 点云去噪的方式有两种: 1.通过在x,y,z的方向去除固定范围的点云数据,提取想要的点云ROI 2.通过选取连通域根据点云特征,筛选点云. 一 ...

  2. 三维计算机视觉(二)--点云滤波

    转自:http://www.cnblogs.com/ironstark/p/4991232.html 点云滤波的概念 点云滤波是点云处理的基本步骤,也是进行 high level 三维图像处理之前 ...

  3. Halcon双目结构光定位(2)-三维模板匹配及按照点云高度排序

    上一讲提到了点云模型的调平和去噪,下一步就是进行三维点云模板匹配. 一.三维物体模板匹配 1.模板图像 2.模板匹配 我们上一讲中输出的筛选过的点云模型,有连接在一起的部分,连通域拆分是无法拆解的. ...

  4. 【点云预处理】N种点云数据数据预处理方法 — 持续总结和更新(二)

    1~10种点云预处理方法请参考:10种点云数据数据预处理方法 - 持续总结和更新(一)_Coding的叶子的博客-CSDN博客_点云预处理.深度学习中点云基本数据处理和增强方式,包括点云归一化.随机打 ...

  5. LIO-SAM:点云预处理前端---畸变矫正数据预处理

    LIO-SAM框架:点云预处理前端---畸变矫正数据预处理 前言 激光雷达畸变矫正 畸变矫正数据预处理 总结 前言 LIO-SAM的全称是:Tightly-coupled Lidar Inertial ...

  6. python点云滤波_点云滤波去噪

    关于点云滤波去噪的方法 为什么进行点云滤波处理: (1) 点云数据密度不规则需要平滑 (2) 因为遮挡等问题造成离群点需要去除 (3) 大量数据需要下采样 (4) 噪声数据需要去除 1234 点云数据 ...

  7. java点云处理_3D点云算法工程师

    个人觉得首先需要精通常见的点云后处理方法,包括匹配,三维重建等.自动驾驶有相当一部分工作是基于点云的,比如检测,定位等.深度学习应用到点云处理是比较有研究价值的,像3D检测,点云分割,语义定位都还不错 ...

  8. 点云综述一稿 点云硬件、点云软件、点云处理算法、点云应用以及点云的挑战与展望

    经过一周的综述撰写,深感点云算法应用之浩瀚,只能仰仗前辈们的文章作一些整理: 点云硬件: 点云获取技术可分为接触式扫描仪.激光雷达.结构光.三角测距(Triangulation).以及立体视觉等多种. ...

  9. PyTorch 1.3发布:能在移动端部署,支持Colab云TPU,阿里云上也能用

    本文经AI新媒体量子位(公众号ID:qbitai)授权转载,转载请联系出处. 本文约2700字,建议阅读7分钟. 本文向你介绍 PyTorch1.3 的新特性. "我要转PyTorch!&q ...

  10. 用云原生的思维践行云原生,华为云深耕数字化,一切皆服务

    [中国,深圳,2021年9月23日] 华为全联接2021于9月23日开幕.华为轮值董事长徐直军进行了"以持续创新加快数字化发展"的主题演讲,发布业界首个分布式云原生产品--华为云U ...

最新文章

  1. 03-kubeadm初始化Kubernetes集群
  2. 【机器学习算法专题(蓄力计划)】十一、特征数据预处理
  3. python3源代码_Python3源代码编译安装
  4. opencv学 之图像傅里叶变换dft
  5. 流操作中的noException
  6. 【Java从入门到天黑|03】JavaSE入门之流程控制
  7. (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别
  8. 谈谈感想,8元体会易生信培训
  9. 联想如何安装linux系统安装步骤,加速本本的启动 - 在ThinkPad上安装Ubuntu的全过程详解_Linux教程_Linux公社-Linux系统门户网站...
  10. Android Camera 3D效果
  11. 30天敏捷生活(7):生成行动计划
  12. 语音网关典型配置实例
  13. 【手写数字识别】基于matlab RBF手写数字识别【含Matlab源码 471期】
  14. C语言SM4算法实现(基于GMSSL)
  15. 纯js实现数据导出excel表格
  16. Linux环境MySQL卸载教程
  17. 【复杂网络社团发现】Gephi绘制网络图
  18. java加密方案:Virbox Protector Java版-全新保护方案
  19. win7锁定该计算机快捷键,Win7电脑锁定计算机快捷键的方法.ppt
  20. 走近“云地基”的开拓者云快线

热门文章

  1. 建行u盾弹不出来_建行网银不自动跳出网页 建行u盾不能弹出快捷登录
  2. 【radon】图像的radon变换matlab仿真
  3. 日程表模板html,excel日程表模板(每日工作时间表模板)
  4. 高通平台Camera Dtsi解析
  5. 安卓开发之NDK开发基础(一)
  6. idea打包jar的多种方式(总结-共三种)
  7. 最新xcode打包IPA----2021.1.18(完整详细图文)
  8. kindle安装插件和koreader
  9. 视频号推荐机制:可社交裂变冷启动
  10. simulink PID自动整定