基于朴素贝叶斯算法的激光雷达点云分类

news2025/4/19 11:14:14

前言

激光雷达技术是一种采集三维数据的、重建三维模型的手段,运用在各个行业,随着激光雷达技术的发展与广泛运用本文采用监督分类中的朴素贝叶斯算法进行地基于激光雷达的地物分类。首先根据点云的几何位置建立邻域范围,借助邻域点的集合计算平面法向量、拟合平面残差、邻域高程差、邻域高程方差、点云特征向量等几何特征组成点云的高维特征向量,并用朴素贝叶斯算法进行训练和测试点云的分类。最后对实验结果进行精度验证,结果显示树木、建筑物表面分类结果较好。评价了分类结果与误差来源。

一、研究内容

本文采用朴素贝叶斯算法对雷达点云数据进行分类,先构建kd树对点云领域进行搜寻,后提取点云的法向量、残差、主成分及高程差作为朴素贝叶斯算法的参数,运行程序可得到分类结果图。本文通过对结果精度的评估来评判本次分类的结果,旨在探讨朴素贝叶斯算法对本实验数据分类的适用性,并对朴素贝叶斯算法进行简单的探讨。

二、研究数据与方法

2.1 研究数据来源

本文研究的数据范围是奥克兰宾夕法尼亚州匹兹堡的卡耐基梅隆大学的校园,数据是由SICK LMS激光扫描仪和推式路帚的Navlab11进行采集的。点云数据的属性值包括点的x,y,z坐标,以及对应的标签(类别),类别一共五种,分别是植被,电线,树干,地面,建筑物。将数据分为训练数据和测试数据,分别用于模型的训练和结果的验证。

2.2 方法

朴素贝叶斯分类器是一种有监督的学习方法,其假定一个属性的值对给定类的影响而独立于其他属性值,此限制条件较强,现实中往往不能满足,但是朴素贝叶斯分类器取得了较大的成功,表现出高精度和高效率,具有最小的误分类率,耗时开销小 的特征。贝叶斯网分类器是一种有向无环图模型,能够表示属性集间的因果依赖。通过提供图形化的方法来表示知识,以条件概率分布表表示属性依赖关系的强弱,将先验信息和样本知识有机结合起来;通过贝叶斯概率对某一事件未来可能发生的概率进行估计,克服了基于规则的系统所具有的许多概念和计算上的困难。其优点是具有很强的学习和推理能力,能够很好地利用先验知识,缺点是对发生频率较低的事件预测效果不好,且推理与学习过程是 NP-Hard 的。

算法流程为:

  1. 计算各个独立特征在各个分类的条件概率;

  1. 计算各个类别出现的概率

  1. 对于特定的特征输入,计算其相应属于特定分类的条件概率

  1. 选择条件概率最大的类别作为该输入类别进行返回。

三、点云特征构建

3.1 点云邻域

构建算法是指按照k-d树原理构建一棵二叉k-d树,查找算法为在k-d树中进行数据的查找。基本思路为首先通过二叉树搜索(比较待查询节点和分裂节点的分裂维的值,小于等于就进入左子树分支,等于就进入右子树分支直到叶子结点),顺着“搜索路径”很快能找到最近邻的近似点,也就是与待查询点处于同一个子空间的叶子结点;然后再回溯搜索路径,并判断搜索路径上的结点的其他子结点空间中是否可能有距离查询点更近的数据点,如果有可能,则需要跳到其他子结点空间中去搜索(将其他子结点加入到搜索路径)。重复这个过程直到搜索路径为空。

本文用k邻近点法构建点云邻域,点云邻域的大小为15个。用到的工具为matlab的k-d树构建工具。

3.2 点云特征构建和提取

(1)原始值特征

原始点云只有X,Y,Z坐标,其中高程值能够有助于将较高地物和较低地物分割开来。如地面点低,而建筑物和植被高程值较大。因此可以作为一个特征值。

(2)基于统计值的特征

基于统计值的特征是基于邻域内点的统计特性的特征,一个是高程极差,因为不同第五高程极差相差比较大,比如地面点的极差就很小,而建筑物和植被邻域点云的极差则比较大。

(3)基于平面特征

平面特征是基于邻域点云拟合平面特性进行特征的提取。本文获取的第一个点云平面特征是平面法向量,地面法向量近乎垂直,植被的法向量则呈现一定的随机性。在计算时,首先是用提取的邻域点集进行平面的拟合,使得点到平面的残差最小,这一步通常是用最小二乘法实现的。将拟合的平面表面转化为以下形式:

其中,a,b,c为参数,x,y,z为变量,点云的法向量为(a,b,c).将a,b,c加入到特征向量中。

另一个是平面的残差,用来衡量平面的拟合程度。残差越大,说明平面拟合越差,地物表面越不规整;残差越小,平面拟合越好,说明点云光滑、规整。对于不同的地物,比如植被,因为冠层结构复杂,所扫描出来的点云比较粗糙,残差大,而建筑物等的平面残差则较小。

(4)基于特征值

基于特征值的特征获取是通过主成分分析获取特征值,计算前三个特征向量对应的特征值,进行排序λ1λ2λ3,特征值提供了点云在三个方向上的离散程度,可用于计算空间分布。另外特征值之间也可进行运算组成其他的特征,比如线性度、平面度、球度和各向异性等。

四、分类结果与精度

4.1 分类结果

图1 点云真实类别

图2 本文方法分类结果

从图中可以看出,总体上能够区分出地面,建筑物和树木轮廓清晰,地面点区分得最好,其次是建筑物和植被。但是分类结果噪点比较多,在建筑物边缘有一些错分的现象,植被点有些被划分到了建筑物。计算得到总体精度达到87.18%。

4.2 精度评价

对分类结果进行了统计,结果如下:

表1.点云分类精度

精度结果表明,地面点的精度最高,其次是植被和建筑物。

总结

本次实验的误差来源主要有朴素贝叶斯算法本身以及选取的特征两方面原因。朴素贝叶斯算法自身有局限性。另外由于仅仅提取的点云的几何特征来进行训练,而数据本身没有颜色、回波强度等信息,造成点云分类信息的不足,而且几何特征选取过程中可能有信息重叠等因素,所以分类精度有一定偏差。同时在进行分类过程中,训练样本中地物类型点比如1100和1103等类别相比于1400和1200明显少,所以训练样本地物的不均衡性也可能是导致测试中这两类分类精度较低的原因。

这里给大家提供两个点云分类加优化的代码供大家参考与学习,有问题欢迎大家在下方留言与交流。

(1)适用于初级者,基于贝叶斯点云分类方法(本博客方法):

https://download.csdn.net/download/u010329292/87370164

(2)适用于进阶学者,不仅有机器学习分类方法,还有基于条件随机场的后处理:

https://download.csdn.net/download/u010329292/85040585

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享98个PHP源码,总有一款适合您

PHP源码 分享98个PHP源码,总有一款适合您 PHP源码下载链接:https://pan.baidu.com/s/1ZNcdj0bLY51UXNoXq8tgFg?pwdwn4b 提取码:wn4b 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&#xff0…

ORB-SLAM2 --- LoopClosing::ComputeSim3 函数

目录 1.什么是sim3,为什么要做sim3 2.函数流程 3.code 4.函数解析 4.1 准备工作 4.2 遍历闭环候选帧集,初步筛选出与当前关键帧的匹配特征点数大于20的候选帧集合,并为每一个候选帧构造一个Sim3Solver 4.3 对每一个候选帧用Sim3Sol…

实例分析Linux内存泄漏检测方法

一、mtrace分析内存泄露 mtrace(memory trace),是 GNU Glibc 自带的内存问题检测工具,它可以用来协助定位内存泄露问题。它的实现源码在glibc源码的malloc目录下,其基本设计原理为设计一个函数 void mtrace ()&#x…

解决Tinkphp的success跳转“使用路由别名后模块和路由器访问不了”问题

遇到的问题:我的thinkphp5网站添加了以下路由别名:Route::alias([ index>index/index, ]);使用http://域名/Index/user/password.html访问正常但使用http://域名/index/user/password.html就访问失败使用$this->success(修改密码成功);进行提示跳转…

Java 链表与LinkedList

链表的组合形式 ①有头结点、无头结点 ②单向链表、双向链表 ③循环链表、非循环链表 根据自由组合,可以得到8种不同形式的链表,那么在刷题种常碰到的是不带有头结点的单向非循环链表和不带头结点的双向非循环链表。 模拟实现不带头结点的单向非循环链表…

Notes可以手动签名了

大家好,才是真的好。 Notes/Domino 12.0.2陆续有人下载测试了,关于Notes的新功能中,我们上一篇也介绍到了可以手动签名。 字面上的意思,就是你可以调出手写板,然后使用触屏或鼠标来进行签名,可以在Nomad …

javaEE 初阶 — 定时器

文章目录定时器1 什么是定时器2 标准库中定时器3 实现一个定时器3.1 实现的思路3.2 为什么要使用优先级队列来保存任务3.3 开始实现定时器 1 什么是定时器 定时器 类似于一个 “闹钟”,达到一个设定的时间之后,就执行某个指定好的代码。 定时器是一种实…

印染行业APS智能排程排产的应用意义

不得不说的印染之“痛” 在印染行业,因排产无法自动化、智能化,企业在交期、成本、生产管理方面承受着巨大的压力,尤其当下印染企业生产管理正从传统的粗放式转向精细化,这些痛点愈加凸显。 一方面,客户和企业面临一个…

httpd安装

一、离线安装 1、去 https://pkgs.org/ 下载httpd所依赖的7个rpm包 [基于CentOS 7 x86_64系统,如需其他环境可前往官网直接下载] apr-1.4.8-5.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm apr-util-ldap-1.5.2-6.el7.x86_64.rpm postgresql-libs-9.2.24-1.el…

互联互通-标准化成熟度指标分析(未完成)

整体分析1 医疗机构基本情况2 数据资源标准化建设情况(30 分)2.1数据集标准化情况(15 分)2.1.1电子病历基本数据集 第1部分:病历概要(1-4数据集)2.1.2电子病历基本数据集 第2部分:门…

Jetpack Compose UI创建布局绘制流程+原理 —— 内含概念详解(手撕源码)

本文是我去年首发于稀土掘金平台的文章 全文较长:共1万5千字,适合有耐心❤️的人学习 有些概念不懂的可以去4.部分概念详解这个目录先稍微学习一下 Compose源码基于最新的Compose 版本:1.0.1 系统源码基于最新的Android11 版本 注意&#xff…

【蓝桥杯基础题】2020年省赛填空题—回文日期

👑专栏内容:蓝桥杯刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录一、题目背景二、题目描述1.问题描述2.输入格式3.输出格式4.一个例子5. 评测用例规模与约定三、题目分析1.获取位数2.回文…

236页10万字精选数据中台建设方案2022版

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 目录 1. 数据中台平台建设方案 …

数据存储大小端 网络字节序

一、概念 大端模式:数据的低位存放在内存的高地址中 小端模式:数据的低位存放在内存的低地址中 二、数据的高低位 首先需要清楚一段数据存储高低位区分 联想记忆最右边为16^0 下来16^1 比如下图二进制为例: 三、内存的高低位 以vs2019为…

JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配

文章目录前言一、排序规范1、happens-before原则2、找文档位置二、对象创建的过程(后面回答的就是这几个问题)1、一线互联网企业面试题: 关于对象2、对象创建过程三、对象在内存中的存储布局1、1.8版本虚拟机配置2、对象的内存布局a、普通对象…

字节三面:如何设计一个高并发系统

前言 大家好,我是田螺。 记得很久之前,去面试过字节跳动。被三面的面试官问了一道场景设计题目:如何设计一个高并发系统。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大…

【EHub_tx1_tx2_E100】Ubuntu18.04 + ROS_ Melodic + 万集716 单线激光 测试

简介:介绍 万集716 单线激光 在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS驱动,打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS版本:Melodic。关于测试…

三、k8s资源管理

文章目录1 k8s资源管理介绍2 YAML语言介绍3 资源管理方式3.1 命令式对象管理3.2 命令式对象配置3.3 声明式对象配置3.4 如何编写YAML1 k8s资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 kubernetes的本质…

MySQL字符集和排序规则详解

一. 相关概念1. 字符集MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关(1). 字符集的设置可以在MySQL实例、数据库、表、列四个级别(2). MySQL设置字符集支持在InnoDB, M…

Git学习:工作流学习实践

文章目录一、前言二、开发过程一、前言 在实践的项目开发过程中,会使用Git或者类似的版本控制工具来管理代码。下面介绍基于Git工具在实际项目开发过程中的使用流程。 如上图所示显示了项目开发的一个简化流程。在开发一个新需求/版本的时候,一般会从主…