Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation论文阅读

news2024/11/25 8:02:34

1. 代码地址

GitHub - cardwing/Codes-for-PVKD: Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation (CVPR 2022)

2. 动机

本篇文章旨在将点云语义分割的复杂模型中的知识蒸馏到较轻量级的模型中。具体的实现方式为将原有的3D backbone网络的每一层进行裁剪,对每一层只保留原有通道数的一半,通过自监督蒸馏学习的方式,使得裁剪后的小模型依然能够达到原有的模型效果,提升模型的运行速度,更好地满足例如自动驾驶车辆的硬件限制。

3. 贡献

由于点云数据的特殊性和局限性(例如离散性、无序性、密度不均匀),直接将传统的蒸馏方法应用到点云语义分割上很难取得好的效果,所以本文提出了一个新的知识蒸馏方法PVD,该模型在点(point)和体素(voxel)两种数据格式上将teacher中的隐藏知识蒸馏到student模型上

  • 同时使用pointwise和voxelwise的输出蒸馏方式来弥补点云稀疏性上的缺陷。
  • 为了更好地学习数据内的结构信息,提出超体素的概念,将点云数据划分为若干个超体素,利用超体素的空间知识,使模型学习点云的空间信息。
  • 由于点云数据的不同区域在空间密度上有很大的差异,距离点云中心很远的物体的点数据具有很高的稀疏性,并且点云数据集内部的类别占比也并不均匀,如果在点云内进行均衡采样学习,模型会很难学到这些稀疏表示的物体和小样本物体的特征知识,致使模型的性能下降,所以在本文中提出了一个困难意识采样机制,该机制的作用是在生成超体素数据流时能够尽可能地倾向去选择稀疏表示的超体素或者包含小样本的超体素,使得模型能够更多地学习这些物体的特征,从而提升模型的性能。
  • 在提出超体素之后,本篇文章利用超体素进行亲和度蒸馏,超体素内的点和体素的相似信息可以帮助模型更好地学习点云空间信息。并且已有的方法在训练模型学习点云空间信息时往往使用整个点云数据,这会消耗大量的计算资源其效率也不高,而在本文提出超体素概念后,便可以在超体素的规模下进行空间结构学习。

4. 网络结构图

很容易注意到网络中的四个红色的箭头,这4个红色的箭头就代表着本文最重要的四个损失函数,首先看后面的两个损失,分别对应着体素和点的输出损失(KL散度),前面两个箭头代表着基于超体素而生成的超体素内部点亲和度和体素亲和度的2范数损失。下面说下网络结构,像介绍中所说,网络包含5个模块,第一个模块是多层感知机得到一个N \times C_f的特征图,在这个特征图上产生超体素内的point的亲和度蒸馏损失;第二个模块是体素化模块;第三个是3D卷积网络输出新的体素特征图,在这产生voxel的亲和度蒸馏损失;第四个模块是维度分解模块,该模块的作用是产生空间特征信息,将原本平面的信息转换成了包含半径、方位角、高度的空间特征信息,并在该模块后产生voxel的输出蒸馏损失;最后一个模块是由多层感知机组成的精炼模块用于产生pointwise 的类别输出,最后生成point的蒸馏损失

体素和点的输出损失公式如下,point的损失很好理解,这里的voxel的损失与传统的不同,它包含了半径、方位角、高度和类别通道的信息

\begin{aligned} &\mathcal{L}_{out}^p(\mathbf{O}_S^p,\mathbf{O}_T^p) =\frac{1}{NC}\sum_{n=1}^{N}\sum_{c=1}^{C}\mathbf{KL}(\mathbf{O}_{S}^{p}(n,c)\|\mathbf{O}_{T}^{p}(n,c)), \\ & \\ &\mathcal{L}_{out}^v(\mathbf{O}_S^v,\mathbf{O}_T^v)= \\ &\begin{aligned}\frac{1}{RAHC}\sum_{r=1}^{R}\sum_{a=1}^{A}\sum_{h=1}^{H}\sum_{c=1}^{C}\mathbf{KL}(\mathbf{O}_{S}^{v}(r,a,h,c)\|\mathbf{O}_{T}^{v}(r,a,h,c))\end{aligned} \end{aligned}

本文的核心还是在空间结构信息的学习,也就是超体素内的亲和度蒸馏:

4.1. 超像素的划分

将点云数据体素化后,对得到体素点云进行超体素划分,每个超体素大小为Rs x As x Hs.

4.2. 困难意识采样机制

为了能够更多地选择特殊的区域(小样本的区域、稀疏区域等),本文设计了一个困难意识采样机制使得模型在选择超体素进行模型蒸馏训练时,能够更多地选择这些特殊区域的超体素从而提高模型的性能。在点云中为每一个超体素赋权重,其权重计算方式如下:

这里的d_i是超体素到点云中心的距离,R是半径,N_s是超体素内体素的数量


N_{minor}是指包含小样本的体素数量

4.3. 点/体素特征处理

 为了保持计算的一致性(点云的不同区域和不同的点云会造成超体素内部点数量和体素数量不均衡),首先在超体素内选取N_p个点和N_v个体素,多出的从点数量较多的类别中删去,少的则直接补0特征向量。计算超体素内的亲和矩阵,以point为例,voxel的与之类似:

基于超体素内的亲和矩阵进行空间结构信息蒸馏,损失如下:

最终的优化目标

后面4个损失在前文已经介绍了,最前面两个损失分别是基于点的和基于体素的加权交叉熵损失,其是为了保证类别多样性,防止有的类别为空。lovasz损失是语义分割中十分常见的损失,其与普通的交叉熵损失相比会注重类别的不均衡性,在优化MIOU指标上会比普通的交叉熵损失更有效果 

参考文献

Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation

Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation 论文阅读CVPR2022-CSDN博客

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

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

相关文章

恶劣天候激光雷达点云模拟方法论文整理

恶劣天候点云模拟方法论文整理 模拟雨天点云:【AAAI2024】模拟雪天点云:【CVPR 2022 oral】模拟雾天点云:【ICCV2021】模拟点云恶劣天候的散射现象:【Arxiv 2021】模拟积水地面的水花飞溅点云:【RAL2022】 模拟雨天点云…

蓝桥杯Web开发【大赛大纲】15届

一、 组别 Web应用开发分为:大学组和职业院校组。 每位选手只能申请参加其中一个组别的竞赛。各个组别单独评奖。 研究生和本科生只能报大学组。 其它高职高专院校可自行选择报任意组别。 二. 竞赛赛程 省赛时长:4小时。 决赛时长:4小…

纹理映射技术在AI去衣中的艺术与科技融合

引言: 在数字图像处理的世界里,AI去衣技术正逐步揭开其神秘的面纱。这门技术结合了深度学习的智能算法与图形学的先进手段,以实现对图像中衣物的智能识别与处理。在这一过程中,纹理映射技术发挥着至关重要的作用。本篇博客将深入探…

【GESP试卷】2024年03月Scratch四级试卷

2024年GESP03月认证Scratch四级试卷 分数:100 题数:27 一、单选题(共15题,每题2分,共30分) 010203040506070809101112131415CDBBACBCDCDADBA 1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙&…

【综合类型第 39 篇】《我的创作纪念日》成为创作者的第2048天

这是【综合类型第 39 篇】,如果觉得有用的话,欢迎关注专栏。 前言 无意间看了一眼CSDN的私信,提示我 Allen Su ,不知不觉今天已经是你成为创作者的 第2048天 啦,为了纪念这一天,我们为您准备了一份专属小…

vue3 响应式基础(怎么改变界面值)

在开发中,我们需要在改变一个数据的同时,去改变页面的变化,那这个时候响应式声明用起来就比较方便 之前做安卓开发的时候,要改变页面,首先拿到页面的一个控件,再对控件进行赋值或者其他的操作来改变界面 1、…

孢子捕捉分析仪的工作原理

TH-BZ1孢子捕捉分析仪是一种专门用于捕捉和分析空气中飘浮的病原菌孢子的设备。它利用现代传感技术、图像识别技术和网络通信技术,通过设置在田间的设备,连续不断地抽吸周围空气,吸附空气中漂浮的病原菌孢子到特制的载玻带上。然后&#xff0…

基于Kafka的日志采集

目录 前言 架构图 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 启动 二、部署filebeat 部署filebeat 添加配置文件 启动 三、部署kibana 部署kibana 修…

Vitis HLS 学习笔记--抽象并行编程模型-不良示例

目录 1. 简介 2. 基础 kernel 2.1 pass kernel 2.2 double_pass kernel 2.3 add_kernel 2.4 split kernel 3. 三种bypass 3.1 input_bypass 3.2 middle_bypass 3.3 output_bypass 4. 总结 1. 简介 本文展示三个在数据流水线中常见的问题: 输入参数绕过…

DAMA:数据治理 CDGA/CDGP 认证考试备考经验分享

一、关于DAMA中国和CDGA/CDGP考试 国际数据管理协会(DAMA国际)是一个全球性的专业组织,由数据管理和相关的专业人士组成,非营利性机构,厂商中立。协会自1980年成立以来,一直致力于数据管理和数字化的研究、…

计算机毕业设计hadoop+spark微博舆情大数据分析 微博爬虫可视化 微博数据分析 微博采集分析平台 机器学习(大屏+LSTM情感分析+爬虫)

电商数据建模 一、分析背景与目的 1.1 背景介绍 电商平台数据分析是最为典型的一个数据分析赛道,且电商数据分析有着比较成熟的数据分析模型,比如:人货场模型。此文中我将通过分析国内最大的电商平台——淘宝的用户行为,来巩固数…

WebRTC | 网络传输协议 RTP 和 RTCP

WebRTC | 网络传输协议 RTP 和 RTCP WebRTC | 网络传输协议 RTP 和 RTCP如何选择 TCP 与 UDPRTP概述工作机制报文结构RTP 的使用RTP 拓展头RTP 中的填充数据翻译器和混合器同步控制报文大小wireshark 抓取 RTP 报文 RTCP概述工作机制分组类型报文结构WebRTC 的反馈报文RTPFBPSF…

接口响应断言

目录 接口断言介绍接口断言方式介绍响应状态码断言 课程目标 掌握什么是接口断言。了解接口断言的多种方式。掌握如何对响应状态码完成断言。 思考 这两段代码是完整的接口自动化测试代码吗? …省略… when().get(“https://httpbin.ceshiren.com/get?namead&…

白鹭群优化算法,原理详解,MATLAB代码免费获取

白鹭群优化算法(Egret Swarm Optimization Algorithm,ESOA)是一种受自然启发的群智能优化算法。该算法从白鹭和白鹭的捕食行为出发,由三个主要部分组成:坐等策略、主动策略和判别条件。将ESOA算法与粒子群算法(PSO)、遗传算法(GA)…

5.24学习记录

[FSCTF 2023]ez_php2 比较简单的pop链 <?php highlight_file(__file__); Class Rd{public $ending;public $cl;public $poc;public function __destruct(){echo "All matters have concluded";die($this->ending);}public function __call($name, $arg){for…

揭秘Python的魔法:装饰器的超能力大揭秘 ‍♂️✨

文章目录 Python进阶之装饰器详解1. 引言装饰器的概念与意义装饰器在Python编程中的作用 2. 背景介绍2.1 函数作为对象2.2 高阶函数 3. 装饰器基础3.1 理解装饰器3.2 装饰器的工作原理 4. 带参数的装饰器4.1 为什么需要带参数4.2 实现带参数的装饰器使用函数包裹装饰器使用类实…

【ZYNQ】AXI-Quad-SPI SDK 开发记录 测试

前人工作 如前人工作&#xff0c;在Navigate to BSP Settings中找到历例程 file:///F:/Xilinx/Vitis/2019.2/data/embeddedsw/XilinxProcessorIPLib/drivers/spi_v4_5/doc/html/api/example.html使用XSpi_LowLevelExample例子&#xff0c;源代码的AI解析 int XSpi_LowLeve…

蓝桥杯Web开发【模拟题一】15届

1.动态的Tab栏 日常在使用移动端 APP 或访问 PC 端网站的时候&#xff0c;常常发现在一些有工具栏或者 Tab 栏的页面会有顶栏固定的效果。简单来说&#xff0c;在页面未开始滚动时顶栏处在其原有的位置上&#xff0c;当页面向下滚动一定区域后&#xff0c;顶栏会跟随滚动固定在…

python-数据分析与可视化基础

1、data1.csv中的B、C、D和E列数据分别是日期、权重、A企业的销售额、B企业的销售额。读取C、D、E列数据,并统计E列数据的算术平均数、加权平均值(权值为C列数据)、方差、中位数、最小值、最大值。并绘制E列数据的直方图。 &#xff08;1&#xff09;源代码&#xff1a; impo…

vue3的api风格

Vue的组件有两种不同的风格&#xff1a;组合式API 和 选项式API 选项式api 选项式API&#xff0c;可以用包含多个选项的对象来描述组件的逻辑&#xff0c;如&#xff1a;data&#xff0c;methods&#xff0c;mounted等。 组合式api setup&#xff1a;是一个标识&#xff0c;告…