【论文阅读】【3D场景点云分割】Mask3D: Mask Transformer for 3D Semantic Instance Segmentation

前言

ICRA2023《Mask3D: Mask Transformer for 3D Semantic Instance Segmentation》

论文地址:Mask3D: Mask Transformer for 3D Semantic Instance Segmentation | IEEE Conference Publication | IEEE Xplore

Code地址:https://github.com/jonasschult/mask3d

论文十问

本文介绍了一种基于Transformer的3D语义实例分割方法,名为Mask3D。与现有的方法不同,Mask3D直接预测实例掩码而不需要手动选择的投票方案或手工制作的分组机制。文章详细介绍了Mask3D的组成部分,包括稀疏特征骨干、实例查询和掩码模块等。实验结果表明,Mask3D在多个数据集上取得了最先进的表现。

可能感兴趣的问题: 1. 为什么Mask3D能够直接预测实例掩码而不需要手动选择的投票方案或手工制作的分组机制? 2. Mask3D的组成部分包括什么?它们是如何协同工作的? 3. Mask3D在多个数据集上表现最先进的原因是什么?它与其他现有方法相比有何优势?

Q1论文试图解决什么问题?

3D 场景的语义实例分割问题

Q2这是否是一个新的问题?

不是

Q3这篇文章要验证一个什么科学假设?

Q4有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

归类为两类:自下而上的方法(ASIS、SGPN、3D-BEVIS)

自上而下的方法(3D-SIS,3D-BoNet)

Q5论文中提到的解决方案之关键是什么?

第一个Transformer-based的3D语义实例分割方法

关键思想(直接生成实例掩膜)是计算单个实例特征与点云中所有点特征之间的相似度分数。结果是点云上的热图,(在标准化和阈值化之后)产生最终的二进制实例掩码。

出发点

如何解决在三维点云实例分割任务中,之前手工选择的投票方案这条路线所带来的问题,并真正利用好 Transformer 处理上下文数据这一优势(即能看到全局)。

贡献(包括注明最重要的贡献,从哪些点进行了创新,解决了问题)

  • 1、提出了第一种基于 Transformer 的三维语义实例分割方法

  • 2、其直接预测实例掩码结果而不需要手动选择的投票方案或者手工制作的分组机制

  • 3、目前三维场景点云分割最好的方法

核心(一句话总结)

基于 Transformer 的3D语义实例分割方法,其直接预测实例掩码而不需要手动选择的投票方案或手工制作的分组机制,是目前三维场景点云实例/语义分割最好的方法之一。

文章解读(创新点对应的方法细节)

1.摘要:

现代三维语义实例分割方法主要依赖于专门的投票机制,然后是精心设计的几何聚类技术。在最近基于变换器的物体检测和图像分割方法取得成功的基础上,我们提出了第一种基于变换器的三维语义实例分割方法。我们的研究表明,我们可以利用通用变换器构件直接预测三维点云中的实例掩码。在我们的模型(称为 Mask3D)中,每个物体实例都表示为一个实例查询。使用变换器解码器,通过迭代处理多个尺度的点云特征来学习实例查询。结合点特征,实例查询可直接并行生成所有实例掩码。与当前最先进的方法相比,Mask3D 有几个优势,因为它既不依赖于(1)需要手工选择几何属性(如中心)的投票方案,也不依赖于(2)需要手动调整超参数(如半径)的几何分组机制,而且(3)能够直接优化实例掩码的损失。Mask3D 在 ScanNet 测试(+ 6.2 mAP)、S3DIS 6 倍(+ 10.1 mAP)、STPLS3D(+ 11.2 mAP)和 ScanNet200 测试(+ 12.4 mAP)中创造了新的最高水平。

2.Introduction

最大不同之处:

Mask3D 与当前最先进的 3D 语义实例分割方法的不同之处在于,它避免使用手工选择的投票方案手工制作的分组机制。 相反,它使用 Transformer 解码器来学习实例查询,结合学习到的点特征,直接预测语义实例掩码。 这种方法与领域无关,并且需要较少的手动调整,使其成为当前基于投票的方法的有吸引力的替代方案

有何优势:

首先,它不依赖于人工选择的几何属性(如中心),因为对于大型非凸形状来说,人工选择的几何属性很难预测。其次,它不需要手动调整超参数(如几何分组机制的半径)。第三,它能直接优化实例mask的损失。这些优势使 Mask3D 成为当前最先进方法的一个极具吸引力的替代方案。

对于非凸形状,可以拿这个图说明一下:

之前点云分割的最好方法 SoftGroup 基于中心投票并尝试预测实例中心,就像 (b) 中的红色点。然而,对于基于投票的方法来说,预测如此巨大的非凸形状的中心可能很困难。事实上,SoftGroup 无法正确对桌子进行分割(对应其返回两个部分实例 (c))。本文的 Mask3D 不依赖于手动选择的几何属性(例如中心),并且可以处理任意形状和大小的物体。下图也可以看到,SoftGroup 很难预测彼此相邻的多把椅子的中心。手动调整的分组机制将它们全部聚合到一个大实例中,这个实例在随后的细化过程中被丢弃,因此其无法了对这8个椅子进行分割。

3. Related work

实例分割

可以分为由下而上的方法和由上而下的方法。

MASC 使用多尺度分层特征主干,然而多尺度特征用于计成对亲和力,然后进行离线聚类步骤

DyCo3D 是少数无需聚类,即可直接预测实例掩码的方法之一,用动态卷积,和本文的mask预测机制类似。然而他在训练期间没有使用最佳监督分配,性能不佳

监督信号的优化分配首先由 3D-BoNet [61] 使用匈牙利匹配实现。与本文方法类似,3D BoNet 直接并行预测所有实例。然而,它仅使用单尺度场景描述符,无法对不同大小的对象掩模进行编码。

Transformers

ViT用于图像分类,DETR用于 2D 目标检测,Mask2Former 用于 2D 分割任务,

DyCo3D 也使用了Transformer,但是其在特征主干的瓶颈处增加了感受野大小,这与本文的 3D 实例分割机制无关,本文展示了如何将普通Transformer 解码器用于 3D 语义实例分割,实现最先进的性能。

3. Method

如上图所示:模型包括一个特征主干、一个由掩码模块(Mask Module)构建的 Transformer 解码器和用于查询细化(Query Refinement)的 Transformer 解码器层。

Backbone 输出多尺度特征 F,Transformer 解码器迭代地细化实例查询X,给定点特征和实例查询,掩码模块为每个查询预测语义类和实例热图,在(阈值化之后)产生二进制实例掩码 B

该模型的核心是实例查询(Instance queries),每个实例查询代表场景中的一个对象实例,并预测相应的点级实例掩码。实例查询由 Transformer 解码器进行迭代细化,利用 cross-atten 处理特征主干提取得到的点特征,self-atten 处理其他实例查询特征,多级迭代产生最终的实例查询结果。掩码模块使用精炼的实例查询和点特征,并基于点特征和实例查询之间的点积,返回语义类和二进制实例掩码。

3.1 Sparse Feature Backbone

使用基于 MinkowskiEngine 的稀疏卷积 U-net 主干网络以及对称编码器和解码器。带颜色的点变成体素,每个体素被分配该体素内点的平均 RGB 颜色作为其初始特征。除了输出全分辨率特征图之外,还在这个特征主干解码器中提取得到多分辨率特征图,然后上采样到下一个更精细的特征图。在每个分辨率 r >= 0下,可以提取一组 M_r 体素的特征。

3.2 Mask Module

给定 K 个实例查询的集合X\in\mathbb{R}^{K\times D},输出对应的二进制掩码,作者通过 MLP fmask(⋅) 将实例查询映射到与主干输出特征相同的特征空间,然后计算这些实例特征和主干特征 F0 之间的点积。得到的相似度分数用 sigmoid 处理,并以 0.5 为阈值,产生最终的二进制掩码 B\in\left \{ 0,1 \right \}^{M\times K}

作者使用全分辨率特征图 F_0 将 mask 模块应用于每个 Transformer 层,来细化 X,为后续细化步骤的屏蔽交叉注意力创建辅助二进制掩码。当这个掩码用作掩码交叉注意力的输入时,本文通过平均池化根据体素特征分辨率来降低分辨率。在二进制掩码旁边,本文预测每个实例的单个语义类。此步骤是通过线性投影层到 C + 1 维,这里是用 softmax 来完成的。先前的工作通常需要通过多数投票或对每点预测语义进行分组来获取实例的语义标签。

3.3 Query Refinement

输入 K 个实例查询,通过 L 个 Transformer 解码器层将它们细化为最终的一组准确的、场景特定的实例查询,通过交叉关注场景特征,并通过自注意力在实例级别上进行推理。本文在后面的第 2 节中讨论不同类型的实例查询,每一次使用标准交叉注意力来处理来自特征主干的特征图:

为此,体素特征 F_r 首先线性投影到一组固定维度的 K,V特征上,K个实例查询 X 被线性投影成 Q 特征。交叉注意力之后是查询之间的自注意力步骤,其中键key、value和查询 q 都是基于实例查询的线性投影来计算的。如果没有这种查询间通信,模型就无法避免多个实例查询锁定同一对象,从而导致重复的实例掩码。

与大多数基于 Transformer 的方法类似,本文对键和查询使用位置编码。本文使用基于体素位置的傅立叶位置编码。在计算交叉注意力之前,本方法将结果位置编码添加到各自的键中。所有实例查询还被分配一个固定的(并且可能是学习的)位置嵌入,该位置嵌入在整个查询细化过程中不会更新。这些位置编码被添加到交叉注意力中的各个查询中,以及自注意力中的键和查询中。本方法不使用普通的交叉注意力(其中每个查询关注一个分辨率中的所有体素特征),而是使用掩码变体,其中每个实例查询仅关注前一层预测的其相应中间实例掩码 B 内的体素。

在[5](《Masked-attention Mask Transformer for Universal Image Segmentation》)中,从交叉注意力中屏蔽上下文提升了分割结果。一个可能的原因是 Transformer 不需要学习专注于特定的实例而不是不相关的上下文,但设计是被迫这样做的。

3.4 Sampled Cross-Attention

不同训练场景中的点云数量是不一致的,当前的 Transformer 依赖于每个 batch 中固定数目的点,为了利用经过充分测试的 Transformer 实现,在这个工作中,本文建议填充体素特征并在需要时屏蔽注意力。如果体素的数量超过某个阈值,本方法就会对体素特征进行采样。为了允许实例在交叉注意期间访问所有体素特征,本方法对每个 Transformer 解码器层中的体素进行重新采样,并在推理期间使用所有体素。这可以看作是 dropout 的一种形式。

“说白了,就是数量超过就采样,不超过就填充。并且在交叉注意力阶段对所有体素进行重新采样,类似dropout”

这个过程可以节省内存,而且这个提出的采样交叉注意力需要较少的内存,可以在更高分辨率的体素网格上进行训练,获得更好的结果。

4.实验结果

可以看到性能确实相比之前的方法,有了大幅度提升。

目前 bechmark 的前三 (截止 2023.9.2 )

分析实验

主要对实例初始化策略(学习还是fps采点),实例初始化数量掩码损失transformer 解码器层数来进行消融对比。

左边的表格和图:(1)代表的是参数化(初始化是用学习的位置和特征)、(2)和(3)都代表非参数化初始化:FPS获取采样点的位置,其特征初始化为0/采用点特征作为实例的初始化特征。

当在测试的时候设置初始化的query,发现设置到 100 就差不多了。

另外右下角的图也展示了 transformer decoder 层数给实验性能带来的影响。

Mask 模块会为每个实例生成一个实例 heatmap,经过匈牙利匹配后,相应的gt mask 会拿来计算 mask loss,二元交叉熵损失 Lbce 通常用于二元分割任务。但在类别不平衡较大的情况下表现不佳(少数前景点,多数背景点)。Ldice 是专门设计用来处理这种数据情况的。

右上的表格证明了对应损失的必要性。

定性结果和局限性

一个错误是合并相距很远的实例。原因可能是:由于注意力机制可以关注完整的点云,因此可能会发生两个具有相似语义和几何形状的对象暴露相似的学习点特征,因此即使它们在场景中相距很远,也会被组合成一个实例。

对于显式编码几何先验的方法来说,这种情况不太可能发生。(这类方法指的就是之前的技术路线,比如基于投票的方法 SoftGroup)

5. 总结

Mask3D 基于 Transformer 解码器,学习实例查询,结合学习的点特征,直接预测语义实例掩码,无需手动选择的投票方案或手工分组机制。我们认为 Mask3D 是当前基于投票的方法的一个有吸引力的替代方案,并期望看到沿着这一研究方向的后续工作。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值