3D语义分割——PVD

本文介绍了一种名为PVD的方法,利用知识蒸馏技术改进3D点云语义分割模型,针对点云数据稀疏性和变化特性提出point-to-voxel转换和超体素划分,通过difficulty-aware采样增强对难处理区域的学习。PVD在nuScenes和SemanticKITTI上表现出色,尤其在模型压缩和速度提升方面。

😸PVD(CVPR2022)主要贡献:

  1. 研究了如何将知识蒸馏应用于 3D 点云语义分割中从而进行模型压缩
  2. 提出 point-to-voxel 的知识蒸馏,从而应对点云数据稀疏(sparsity)、随机(randomness)和变化密度(varying density)的固有属性
  3. 提出了超体素(supervoxel)划分方法,使 affinity distillation 过程易于操作
  4. 提出 difficulty-aware 的采样策略,使包含少数种类(minority classes)和远处物体( distant objects)的超体素更容易被采样到,从而提高这些较难处理的物体的蒸馏效果distillation efficacy

😺PVDnuScenesSemanticKITTI 这两个流行的 LiDAR 分割基准上进行了广泛的实验,其在 Cylinder3DSPVNASMinkowskiNet 这三个有代表性的骨干上,始终以较大的优势胜过以前的蒸馏方法。值得注意的是,在具有挑战性的 nuScenesSemanticKITTI 数据集上,它可以在具有竞争力的 Cylinder3D 模型上实现大约 75% 的 MACs 减少2 倍的速度提升,在 WaymoSemanticKITTIsingle-scan)挑战中排名第一,在 SemanticKITTImulti-scan)挑战中排名第三

网络结构

😸下图以 Cylinder3D 为例描述 PVD 的网络结构,其包含教师(teacher)和学生(student2 个网络。其中,学生网络的每一层通道数为教师网络的一半,而教师网络主要5 部分组成,分别是点特征提取模块point feature extraction module)、体素化模块point-to-voxel transformation module)、编解码器模块encoder-decoder module)、DDCM 模块点优化模块point refinement module

在这里插入图片描述

  1. 将输入的点云划分到固定数量的超体素中,并根据 difficulty-aware 采样策略来采样 K 个超体素(图中 K=1,由红框标注出来)
  2. 将采样到的超体素送入点特征提取模块MLPs)中,得到 pointwise 的输出
  3. 通过体素化模块将 pointwise 的输出进行体素化
  4. 体素化后的数据再输入编解码器模块(使用非对称三维卷积网络)得到 voxelwise 输出
  5. 体素再经过 DDCM 模块来捕获高秩的上下文特征,从而有足够的能力来捕获上下文信息
  6. 将上下文特征送入点优化模块MLPs)中得到 pointwise 的输出,从而预测相关的语义信息

✍️在知识蒸馏的架构中,学生网络需要从教师网络中学习两个层次的知识,第一个层次是 pointwisevoxelwise 的输出,第二个层次是 inter-pointinter-voxelaffinity matrix。关于 Cylinder3D 的相关简介可参考我之前的一篇博客【3D 语义分割——Cylinder3D】

Point-to-Voxel Output Distillation

😿相比于图像数据,点云本身具有稀疏性,从而导致较难通过稀疏的监督信号来训练一个有效的学生网络。此外,尽管点云数据包含细粒度的环境的感知信息,但由于点云中有成千上万的点,导致这样的知识学习起来效率很低。为了提高学习效率,除了 pointwise 输出,论文建议蒸馏(distilvoxelwise 输出,因为体素数量更少且更容易学习pointwisevoxelwise 的蒸馏损失如下:
L o u t p ( O S p , O T p ) = 1 N C ∑ n = 1 N ∑ c = 1 C K L ( O S p ( n , c ) ∣ ∣ O T p ( n , c ) ) L o u t v ( O S v , O T v ) = 1 R A H C ∑ r = 1 R ∑ a = 1 A ∑ h = 1 H ∑ c = 1 C K L ( O S v ( r , a , h , c ) ∣ ∣ O T v ( r , a , h , c ) ) \begin{aligned} L_{out}^p(O_S^p, O_T^p) &= \frac{1}{NC}\sum_{n=1}^N \sum_{c=1}^C KL(O_S^p(n, c)||O_T^p(n, c)) \\ L_{out}^v(O_S^v, O_T^v) &= \frac{1}{RAHC}\sum_{r=1}^R \sum_{a=1}^A \sum_{h=1}^H \sum_{c=1}^C KL(O_S^v(r, a, h, c) || O_T^v(r, a, h, c)) \end{aligned} Loutp(OSp,OTp)Loutv(OSv,OTv)=NC1n=1Nc=1CKL(OSp(n,c)∣∣OTp(n,c))=RAHC1r=1Ra=1Ah=1Hc=1CKL(OSv(r,a,h,c)∣∣OTv(r,a,h,c))
✍️其中, L o u t p L_{out}^p Loutppointwise 蒸馏损失, L o u t v L_{out}^v Loutvvoxelwise 蒸馏损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值