基于RandLA-Net深度学习模型的激光点云语义分割

一、场景要素语义分割部分的文献阅读笔记

        RandLA-Net是一种高效、轻量级的神经网络,其可直接逐点推理大规模点云的语义标签。RandLA-Net基于随机点采样获得了显著的计算和内存效率,并采用新的局部特征聚合模块有效地保留了几何细节,弥补了随机采样可能丢失关键特征的不足。其中,局部特征聚合器(Local Feature Aggregation,LFA)由局部空间编码、自适应注意力池化以及扩张残差块三个子模块组成。

局部特征聚合器的三个重要子模块:

  1. 局部空间编码(Local Spatial Encoding,LocSE)。 首先基于K最近邻算法找到各输入点的K个邻近点,然后逐输入点通过一个共享的多层感知机进行相对位置编码,继而进行特征堆叠和特征增强以获取每个输入点的邻域特征。局部空间编码单元显式地嵌入所有邻近点的空间三维坐标,这样可以明确地学习到输入点周围邻域的局部几何模式,从而有利于整个网络有效地学习复杂的局部结构。
  2. 自适应注意力池化(Attentive Pooling,AP)。首先将局部空间编码所提取到的邻域特征通过共享权重多层感知机和Softmax函数组合进行注意力得分计算,然后依据注意力分数对得到的局部特征进行加权求和以得到更为准确的特征向量组。
  3. 扩张残差块(Dilated Residual Block,DRB)。一个扩张残差块包含两次局部空间编码模块与自适应注意力池化模块组合,扩张残差块基于短接操作将输入特征和增强后的特征求和输出,其目的在于增加感受野、加快学习速度和持续提升模型精度。

        RandLA-Net网络模型的随机采样结合了点概率标记的方法,点概率由距离和搜索权重计算,这样可以防止一个点被多次选中,也可以防止数量多的类别点被多次选中,而数量少的类别点很少被选中。同时,RandLA-Net网络模型在推理过程中会将输入点云进行下采样且记录原始点云与下采样后的最近邻关系,采用距离最近点标签预测一致的原则输出原始输入点云的预测结果,从而加快模型推理速度。

图一 RandLA-Net局部特征聚集模块(LFA)展示(图源:/*1*/ RandLA-Net)

二、RandLA-Net点云语义分割项目代码逐行解析

项目环境配置:

操作系统:Ubuntu 20.04

Python解释器:Python 3.6(本实验中,若版本大于3.6则无法编译compile_op.sh文件)

CUDA版本:9.0

cuDNN版本:7.3.1

Tensorflow框架版本:1.11.0

配置顺序:CUDA/cuDNN -> tensorflow-1.11.0 -> 配置项目依赖及编译.sh文件

百度网盘链接:

https://pan.baidu.com/s/10hrjVJ3RUOlx_50OH2J2gw

模型测试结果可视化:

电力廊道场景应用下的文件结构说明:

① RandLA-Net-master\main_Power.py

        该文件实现了Power类,该类主要完成数据集的划分(训练集、验证集和测试集)、生成输入数据流、数据预处理(数据增强、中心化等)等功能。

② RandLA-Net-master\RandLANet.py

        该文件实现了Network类,该类主要完成模型超参数设置、模型推理结构、模型训练结构、模型精度评价结构等功能,包含了注意力池化(att_pooling)、近邻点坐标/特征聚合(gather_neighbour)、最近邻插值上采样(nearest_interpolation)、随机采样(random_sample)等编码模块。

③ RandLA-Net-master\tester_Power.py

        该文件实现了ModelTester类,该类主要完成模型对测试数据的推理预测与存储对应预测结果点云。

④ RandLA-Net-master\helper_tool.py

        该文件主要实现了ConfigPower类、DataProcessing类,二者实现模型训练超参数调试优化和数据预处理(点云数据网格下采样、KD树索引建立、原始点云与下采样后点云最近距离点索引存储)等功能函数。

⑤ RandLA-Net-master\helper_ply.py

        该文件实现了.ply存储格式的点云数据读取和写入功能。

⑥ RandLA-Net-master\DataPreds_IOU.py

        该文件实现了对点云预测结果的精度评价文件输出(.txt格式)以及预测点云标签三维空间分布数据生成。

⑦ RandLA-Net-master\utils\data_prepare_Power.py

        该文件用于将S3DIS DataSet文件树数据集转换为.ply格式存储点云数据。该文件主要完成点云数据.ply格式转换、点云网格下采样、网格下采样后的KD树构建存储、存储原始所有点云在网格下采样点云中距离最近的点索引集合等功能,目的在于加快邻域点搜索和点云上采样还原。

⑧ RandLA-Net-master\data

        该文件夹包含input_0.xxx、original_ply和Power三个文件夹。其中,Power文件夹存放S3DIS DataSet文件树结构的电力档段数据集,input_0.xxx存放网格下采样后的点云数据,original_ply存放转换为.ply格式存储的原始点云数据。

⑨ RandLA-Net-master\utils\meta

        该文件夹包含anno_paths.txt和class_names.txt两个文件,anno_paths.txt文件存储电力档段的各要素点云集合文件夹名(如Area_0/Annotations),class_names.txt文件顺序存储要素类别名称。该文件夹用于点云类别标签转换赋值。

⑩ RandLA-Net-master\PowerTXT

        存放由DataPreds_IOU.py文件生成的预测后三维点云类别标签空间分布数据和自定义精度评价文件(.txt格式)。

⑩① RandLA-Net-master\results\Log_2024-05-03_09-02-24\snapshots

        存放模型的训练参数文件,其中checkpoint文件存放了多次保存的模型参数文件名称。

注意事项:

1、本百度网盘不包含任何点云数据,仅为项目代码;

2、电力档段激光点云数据文件与S3DIS Dataset文件树结构一致,具体的数据文件树结构转换代码详见基于PointNet / PointNet++深度学习模型的激光点云语义分割-CSDN博客;

3、由于点云采样的随机性与最近邻点标签上采样还原机制,点云类别标签预测会在每一次测试中体现出差异,因此设置多次验证取,对每个点取最多次预测的类别标签较为准确;

4、具体的命令行训练以及测试流程依据参考资料[1]的Semantic3D部分。

参考资料:

[1] GitHub - QingyongHu/RandLA-Net: 🔥RandLA-Net in Tensorflow (CVPR 2020, Oral & IEEE TPAMI 2021)

[2] RandLa-Net_哔哩哔哩_bilibili

[3] https://zhuanlan.zhihu.com/p/105433460

[4] 从零开始点云语义分割:RandLANet教程-CSDN博客

[5] https://www.tensorflow.org/api_docs/python/tf

[6] conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了_conda cudnn-CSDN博客

RandLA-Net发表论文

/*1*/ RandLA-Net

https://arxiv.org/abs/1911.11236

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

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

相关文章

最新下载:Folx【软件附加安装教程】

​Folx Pro是一款适合Mac的专业下载工具也是一款BT下载器,Folx中文版有一个支持Retina显示的现代界面,提供独特的系统排序、存储下载内容与预览下载文件,Folx中文官网提供Folx教程、激活码、下载。 Folx友好兼容浏览器:如果你在网…

浅谈网络通信(3)

文章目录 一、TCP[!]1.1、TCP协议报文格式1.2、TCP十大机制1.2.1、确认应答机制1.2.2、超时重传机制1.2.3、连接管理机制1.2.3.1、三次握手[其流程至关重要,面试必考]1.2.3.2.1、那为啥要建立连接??建立连接的意义是啥?&#xff1…

Jetson Linux 上安装ZMQ

1. 安装ZMQ 框架 apt-get install libzmq3-dev 2. 或者自己build ZMQ https://github.com/zeromq/libzmq.git 参考官网教程 3. 安装CPPZMQ CPPZMQ 是ZMQ 的友好的C封装,只需要一个zmq.hpp 头文件即可 git clone https://github.com/zeromq/cppzmq.git cd cppz…

Ubuntu安装部署

Ubuntu安装部署 一、Ubuntu概述1、Ubuntu介绍2、Ubuntu特点 二、Ubuntu和Centos的区别1、Centos2、Ubuntu3、Centos和Ubuntu区别 三、安装Ubuntu-Server1、Ubuntu官网2、创建新的机子3、创建名称以及虚拟机在磁盘上的位置4、Ubuntu初始化和安装 四、安装Ubuntu1、开始安装2、安…

SAP RFC 输入一张表(C# 使用 SapNwRfc 二)

SapNwRfc中的配置参数,记录日志关闭 Trace0,可以得到很好的性能。 有网友在问,SAP RFC返回多张表(C# 使用 SapNwRfc 一)中如何输入一张表的数据,正好博主也遇到了这个场景,今天做了一个DEMO&…

4D毫米波雷达技术及发展

文章目录 前言一、4D毫米波雷达是什么?二、毫米波雷达是什么?毫米波雷达的基本原理多普勒效应 三、4D毫米波雷达的基本结构3D毫米波4D毫米波对比 前言 现阶段自动驾驶技术中,主要用到的传感器有摄像头、激光雷达和毫米波雷达。 摄像头的光谱…

系统架构师考点--计算机硬件

大家好。今天我总结一下计算机硬件的一些考点。 一、中央处理单元(CPU) 我们知道,计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。其中运算器、控制器等部件被集成在一起统称为中央处理单元(Central Proce…

jdk17详细安装步骤

本文以Windows系统,JDK17版本作为示例,其他版本的操作步骤类似。 一、下载 进入官网后往下翻,找到JAVA17,然后点击Windows 点击下载。 二、安装 安装 JDK的安装是无脑安装,就是一路下一步下一步。。直到完成。默认安…

编译安装qemu-devel @FreeBSD

缘起 使用cbsd创建riscv jail的时候提示: you have no qemu-user, please install qemu-devle with BSD_USER and STATIC ops (emulators/qemu-devel) 使用pkg安装之后,创建的riscv jail启动报错: Starting jail: fbriscv, parallel timeo…

华为数通题库HCIP-821——最新最全(带答案解析)

单选1、下面是一台路由器的输出信息,关于这段信息描述正确的是 A目的网段1.1.1.0/24所携带的团体属性值是no—export表明该路由条目不能通告给任何BGP邻居 B目的网段5.1.1.0/24所携带的团体属性值是no—advertise表明该路由条目不能被通告给任何其他的BGP对等体 C…

大数据概论总结

三次信息化浪潮 : 信息技术的支撑 : 存储设备容量不断增加 CPU的处理能力不断提高 网络带宽不断增加 数据产生方式的变革促成大数据时代的来临 运营式系统阶段用户原创内容感知式系统阶段 大数据发展历程 : 分为三个阶段 : 大数据的概念 : 1 . 数据量大 : 根据IDC作出…

Unity:Text-TextMeshPro 不显示中文

共计四步: 一、去C盘复制一份字体: C:\Windows\Fonts二、粘贴到你的项目里(任意文件位置),得到“MSYH”: 三、右键字体文件,依次点击create–>TextMeshPro–>FontAsset: …

Mac平台上公认的最好的下载工具Folx Pro 5 for Mac激活码

Folx是什么 Folx Pro 5 for Mac是Mac平台上公认的最好的下载工具,功能可以与迅雷相媲美。 Folx是一款老牌下载神器,可通过URL链接和种子文件下载文件,同时提供了便捷的下载管理和灵活的应用设置,Folx可以对下载的资源进行分类&a…

勒索病毒搜索引擎

360勒索病毒搜索引擎 https://lesuobingdu.360.cn/ 腾讯勒索病毒搜索引擎 https://guanjia.qq.com/pr/ls/ VenusEye勒索病毒搜索引擎 https://lesuo.venuseye.com.cn/ 奇安信勒索病毒搜索引擎 https://lesuobingdu.qianxin.com/index/getFile 深信服勒索病毒搜索引擎…

韩顺平0基础学java——第22

p460-483 常用类 包装类Wrapper 针对8种几种数据类型相应的引用类型——包装类 包装类和基本数据类型的转换 jdk5之前的手动装箱和拆箱: jdk5之后的自动装箱和拆箱: 三元运算符是一个整体: 这个三元运算符里,精度最高的是doubl…

非线性规划解决工资分配问题

来源:河北工业职业技术大学 安彤彤 彭金杉 张家硕 题目 薪资发放问题 一般公司给职员发放薪金,通常按每月等额发放。某公司即将改进薪金发放方案,允许任职5年以上的职员向公司财务部门申请工资每月可变额度发放,每月工资发放额…

嵌入式系统中常用的参数存储方法

一、有哪些参数需要管理? 在智能硬件产品中,一般有三类数据需要存储并管理: 1. 系统设置数据 系统设置数据是指产品自身正常工作所依赖的一些参数。 这类数据的特点:只能在生产过程中修改,出厂后用户无权限修改。 比如:产品 SN、产品密钥/token/license、传感器校准值…

应急响应处置思路与流程

HVV中常见应急问题: 不确定攻击成功 服务器进行排查 windows服务器 账号排查 隐藏用户排查 net userwmic查看用户管理查看注册列表查看 账户登录日志排查 4624登录成功4625登录失败4720账户创建4724尝试重置密码4738账户已更改 logoff踢出用户 网络连接排…

如何用AI提高产品经理的工作效率

最近我跟几个产品经理聊天,发现有些人居然还没有使用过ChatGPT、MidJourney、NotionAI 等AI工具。 产品经理有个重要的素质是好奇心,好奇心能够帮助产品经理发现新机会、了解用户需求、学习新知识和探索竞争对手,从而更好地完成产品开发和管…