3D 语义分割——2DPASS

😸2DPASS( ECCV2022 )主要贡献:

  1. 提出了 二维先验辅助语义分割 2DPASS,该方法利用相机的二维先验信息来 辅助三维语义分割。据作者团队所知,2DPASS 是第一个将多模态信息蒸馏后并用于单点云(模态)的语义分割方法
  2. 利用论文所提出的多尺度融合进行单知识蒸馏( MSFSKD)策略,2DPASS 在 SemanticKITTI 和 NuScenes 这两个大规模基准上取得了 显著的性能提升且达到了 SOTA

文章目录

前言

✍️在自动驾驶领域中,相机可以获取到密集的颜色信息和细粒度纹理却 无法得到准确的深度信息且在弱光条件下不可靠,而激光雷达能提供准确的深度信息但 只能捕获稀疏和无纹理的数据。因此, 相机和激光雷达可捕捉到互补信息,这使得通过多模态数据融合进行语义分割成为了研究热点。

3D 语义分割——2DPASS

😿尽管使用多模态数据能有效提升模型性能,但基于融合(fusion-based)的方法需要成对的数据(paired data)且存在以下局限性:

  • 由于摄像机和激光雷达之间的 视野(FOVs)不同无法为图像平面外的点建立点到像素的映射。通常情况下,激光雷达和相机的 FOVs 仅在一小部分上有重叠(如上图所示,最右边图像上红色部分为 FOVs 重叠部分),这大大限制了基于融合的方法的应用
  • 基于融合的方法在运行时 同时处理图像和点云(通过多任务或级联方式),从而 消耗了更多的计算资源,这给实时应用带来了很大负担

😸因此,论文提出了一种 二维先验辅助语义分割(2DPASS)的通用训练方案,以提高在点云上的表示学习(representation learning)能力。论文提出的 2DPASS 在训练过程中 充分利用了具有丰富语义信息的二维图像,然后在 没有严格的成对数据约束情况下进行语义分割。在实际应用中,2DPASS 通过辅助模态融合(auxiliary modal fusion)和多尺度融合到单知识蒸馏(MSFSKD),从多模态数据中 获取更丰富的语义和结构信息,然后 将这些信息提取到纯 3D 网络。与基于融合的方法相比,论文的解决方案具有以下更好的特性:

  • 通用性:可以在 只修改少量的网络结构下轻松地与其他任何 3D 分割模型集成在一起
  • 灵活性融合模块仅在训练期间用于增强 3D 网络,训练后,增强的三维模型 可以在没有图像输入的情况下部署
  • 有效性:即使只有一小部分重叠的多模态数据,论文提出的方法也 *可以显著提高性能

🙀实验结果显示,在装备了 2DPASS 之后,论文使用的基线模型(baseline model)在只有点云输入的情况下得到了显著的性能提升。具体来说,它在 SemanticKITTI 和 NuScenes 这两个大规模的公认基准上达到了 SOTA。

; 网络结构

3D 语义分割——2DPASS
  1. 从原始图像中 裁剪出一小块图像480x320)作为 2D 输入(由于相机图像非常大,导致将原始图像发送到论文的多模态 pipeline 中是很难处理的),这个步骤 加速了训练过程且没有多余的性能下降
  2. 裁剪后的图像和激光雷达点云分别通过 2D 和 3D 编码器,并行 生成多尺度特征
  3. 对于每个尺度,互补的二维知识通过 MSFSKD 从而有效地 转移到三维网络中(即充分利用纹理和颜色感知的二维先验知识,并保留原始的三维特定知识)
  4. 每个尺度上的 2D 和 3D 特征都被用于生成语义分割预测,这些预测由 纯 3D 标签监督

✍️在 推理过程中,可以 丢弃与 2D 相关的分支,与基于融合的方法相比,这有效地 避免了实际应用中额外的计算负担

编码器

论文采用具有二维卷积的 ResNet34 编码器作为 2D 网络,而 使用稀疏卷积来构建 3D 网络。具体来说,论文设计了一个 分层编码器 SPVCNN,并在每个尺度上采用 ResNet 瓶颈设计,同时用 LeakyReLU 激活函数代替 ReLU 激活函数。在这两个网络中,我们分别从不同的尺度中提取 L 个特征图,得到二维特征 { F l 2 D } l = 1 L {F_l^{2D}}{l=1}^L {F l 2 D ​}l =1 L ​ 和三维特征 { F l 3 D } l = 1 L {F_l^{3D}}{l=1}^L {F l 3 D ​}l =1 L ​。

✍️其中,稀疏卷积的一个优点在于它的稀疏性,卷积运算 只考虑非空体素

解码器

  • 对于 2D 网络,论文采用 FCN 作为解码器对每个编码层的特征进行上采样。具体来说,可以通过对第( L − l + 1 ) (L−l + 1)(L −l +1 ) 编码层的特征图进行上采样来获得第l l l 解码层的特征图D l 2 D D_l^{2D}D l 2 D ​,其中所有上采样的特征图将 通过元素相加进行合并。最后,将融合后的特征图 通过线性分类器(linear classifier)进行 2D 语义分割
  • 对于 3D 网络,论文采用 U-Net 作为解码器。其中,论文将不同尺度的特征 上采样到原始大小,并将它们连接在一起,然后将它们输入分类器。论文发现,这种结构可以 更好地学习分层信息,同时更有效地获得预测结果

Point-to-Pixel Correspondence

3D 语义分割——2DPASS
  • 2D 特征生成如上图 (a) 所示(以第l l l 层特征为例),其首先使用 反卷积将二维特征F l 2 D ∈ R H l × W l × D l F_l^{2D} \in R^{H_l \times W_l \times D_l}F l 2 D ​∈R H l ​×W l ​×D l ​ 上采样至与原始图像分辨率一致得到特征图F ~ l 2 D \tilde{F}_l^{2D}F ~l 2 D ​,然后再 将点云投影到图像面片(image patch)上并 生成点到像素(P2P)的映射,最后根据 P2P 映射将二维特征图F ~ l 2 D \tilde{F}_l^{2D}F ~l 2 D ​ 转换为逐点二维特征F ^ l 2 D \hat{F}_l^{2D}F ^l 2 D ​。其中,点到像素的映射关系如下:

[ u i , v i , 1 ] T = 1 z i × K × T × [ x i , y i , z i , 1 ] T M i m g = { ( ⌊ v i ⌋ , ⌊ u i ⌋ ) } i = 1 N ∈ R N × 2 \begin{aligned} \ [u_i, v_i, 1]^T &= \frac{1}{z_i} \times K \times T \times [x_i, y_i, z_i, 1]^T \ M^{img} &= { (\lfloor v_i \rfloor , \lfloor u_i \rfloor) }_{i=1}^N \in R^{N \times 2} \end{aligned}[u i ​,v i ​,1 ]T M im g ​=z i ​1 ​×K ×T ×[x i ​,y i ​,z i ​,1 ]T ={(⌊v i ​⌋,⌊u i ​⌋)}i =1 N ​∈R N ×2 ​

✍️其中,p i = ( x i , y i , z i ) ∈ R 3 p_i=(x_i, y_i, z_i)\in R^3 p i ​=(x i ​,y i ​,z i ​)∈R 3 是点云数据中的一个点,p ^ i = ( u i , v i ) ∈ R 2 \hat{p}_i=(u_i, v_i)\in R^2 p ^​i ​=(u i ​,v i ​)∈R 2 为投影后的像素数据,K ∈ R 3 × 4 K\in R^{3\times 4}K ∈R 3 ×4 为相机内参,T ∈ R 4 × 4 T \in R^{4 \times 4}T ∈R 4 ×4 为相机外参,⌊ ⋅ ⌋ \lfloor \cdot \rfloor ⌊⋅⌋ 为下取整。

✍️由于 NuScenes 中激光雷达和相机的 工作频率不同,需要通过 全局坐标系将时间戳 t l t_l t l ​ 的激光雷达帧 转换为时间戳 t c t_c t c ​ 的相机帧。NuScenes 数据集中的外参矩阵 T T T 为:
T = T c a m e r a ← e g o t c × T e g o t c ← g l o b a l × T g l o b a l ← e g o t l × T e g o t l ← l i d a r T = T_{camera} \leftarrow ego_{t_c} \times T_{ego_{t_c}} \leftarrow global \times T_{global} \leftarrow ego_{t_l} \times T_{ego_{t_l}} \leftarrow lidar T =T c am er a ​←e g o t c ​​×T e g o t c ​​​←g l o ba l ×T g l o ba l ​←e g o t l ​​×T e g o t l ​​​←l i d a r

  • 3D 特征生成如上图 (b) 所示(以第l l l 层特征为例),其首先获取 点到体素的映射关系M l v o x e l M_l^{voxel}M l v o x e l ​,然后给定 稀疏卷积层的三维特征F l 3 D ∈ R N l ′ × D l F_l^{3D} \in R^{N^{‘}_l \times D_l}F l 3 D ​∈R N l ′​×D l ​,根据M l v o x e l M_l^{voxel}M l v o x e l ​ 在原始特征图F l 3 D F_l^{3D}F l 3 D ​ 上进行 最接近插值(nearest interpolation)得到 逐点三维特征F ~ l 3 D ∈ R N × D \tilde{F}_l^{3D}\in R^{N \times D}F ~l 3 D ​∈R N ×D,最后再通过丢弃图像视场(FOVs)外的点来过滤相关的点。其相关公式如下:

M l v o x e l = { ( ⌊ x i r l ⌋ , ⌊ y i r l ⌋ , ⌊ z i r l ⌋ ) } i = 1 N ∈ R N × 3 F ^ l 3 D = { f i ∣ f i ∈ F ~ l 3 D , M i , 1 i m g ≤ H , M i , 2 i m g ≤ W } i = 1 N ∈ R N i m g × D l \begin{aligned} M_l^{voxel} &= { (\lfloor \frac{x_i}{r_l} \rfloor, \lfloor \frac{y_i}{r_l} \rfloor, \lfloor \frac{z_i}{r_l} \rfloor) }{i=1}^N \in R^{N \times 3} \ \hat{F}_l^{3D} &= { f_i | f_i \in \tilde{F}_l^{3D}, M{i, 1}^{img} \le H, M_{i, 2}^{img} \le W }_{i=1}^N \in R^{N^{img} \times D_l} \end{aligned}M l v o x e l ​F ^l 3 D ​​={(⌊r l ​x i ​​⌋,⌊r l ​y i ​​⌋,⌊r l ​z i ​​⌋)}i =1 N ​∈R N ×3 ={f i ​∣f i ​∈F ~l 3 D ​,M i ,1 im g ​≤H ,M i ,2 im g ​≤W }i =1 N ​∈R N im g ×D l ​​

✍️其中,P = { ( x i , y i , z i ) } i = 1 N P={(x_i, y_i, z_i)}_{i=1}^N P ={(x i ​,y i ​,z i ​)}i =1 N ​ 是点云数据,r l r_l r l ​ 为第 l l l 层体素的分辨率,H H H 为图像视场的高,W W W 为图像视场的宽

; MSFSKD

如下图所示,MSFSKD 的内部结构包括 模态融合和模态保持知识蒸馏。其中 2D 特征和 3D 特征通过 2D Learner 进行融合,并使用两个 MLP 以及非线性映射对特征做 逐点相加,然后将输出特征 和原 2D 特征进行融合,再结合 classifier(全连接层)获取融合特征分数 S l 2 D 3 D S_l^{2D3D}S l 2 D 3 D ​。而 3D 部分则通过特征增强,并结合 classifier(全连接层)获取 3D 预测分数 S l 3 D S_l^{3D}S l 3 D ​,并在结果层面上做蒸馏。

3D 语义分割——2DPASS
  • 2D 和 3D 结果融合的表达式如下:

F ^ l 2 D 3 D e = F ^ l 2 D + σ ( M L P ( F ^ l 2 D 3 D ) ) ⨀ F ^ l 2 D 3 D \hat{F}_l^{2D3D_e} = \hat{F}_l^{2D} + \sigma(MLP(\hat{F}_l^{2D3D})) \bigodot \hat{F}_l^{2D3D}F ^l 2 D 3 D e ​​=F ^l 2 D ​+σ(M L P (F ^l 2 D 3 D ​))⨀F ^l 2 D 3 D ​

✍️其中,σ \sigma σ 为 sigmoid 激活函数。此外,上图获取 F ^ l 2 D 3 D e \hat{F}_l^{2D3D_e}F ^l 2 D 3 D e ​​ 经过 2 个 MLP,而表达式为什么只有一个 MLP?

  • 知识蒸馏表达式如下:

L x M = D K L ( S l 2 D 3 D ∥ S l 3 D ) L_{xM} = D_{KL}(S_l^{2D3D}\parallel S_l^{3D})L x M ​=D K L ​(S l 2 D 3 D ​∥S l 3 D ​)

✍️论文使用 KL 散度作为知识蒸馏的损失函数

😻论文:https://arxiv.org/pdf/2207.04397.pdf
😻代码:https://github.com/yanx27/2DPASS

📖补充:ECCV2022 | 2DPASS:2D先验辅助的激光雷达点云语义分割!

Original: https://blog.csdn.net/steven_ysh/article/details/126132185
Author: Lemon_Yam
Title: 3D 语义分割——2DPASS

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/651440/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球