该论文是CVPR2019发表的一片关于3D点云的语义和实例分割的论文,原文地址:https://arxiv.org/abs/1902.09852
论文的主要工作
- 提出了一个快速而高效的baseline,用于同时进行3D点云的实例和语义分割
- 提出了一个新的框架,名为ASIS,用于紧密的联合语义和实例分割。主要是两种合作方式:基于语义的实例分割和基于实例融合的语义分割——使得两任务互相协作。
- 基于提出的ASIS,包含基于语义的实例分割和基于实例融合的语义分割是端到端进行训练的。我们的方法超越了S3DIS数据集上最先进的3D实例分割算法同时在3D语义分割任务上取得了显著的提高。另外,我们在ShapeNet数据集上的实验显示ASIS同样对part分割有帮助
Abstract和Introduction部分的总结
实例分割与语义分割的对立与统一
3D点云能够精确并且直观的描述真实世界,但是关于3D点云的分割工作却很少。实例分割和语义分割既相互对立也相互统一。对立指的是实例分割希望把同一类的不同实例区分开来,而语义分割却希望它们有相同的标签。统一指的是语义分割的点需要把不同类别的点区分开来,而不同类别的点肯定属于不同实例;同样,实例分割将统一实例的点打上相同的标签,这也是语义分割需要做的。然而简单的结合两者的step-wise paradigm方法一般是sub-optimal和低效的。
相关工作的总结
实例分割
2D图像领域有自顶而下方法:
- 基于RCNN启发的工作,通过 proposing segment candidates来学习实例分割
- 基于Bbox来predict segment proposals
- Mask RCNN
自底而上的方法:
- group pixels into instances using the learned associative embedding.
- propose a discriminative loss function which enables to learn pixel-level instance embedding efficiently.
- 将实例分割问题分解为 a sequence of sub-grouping problems.
语义分割
2D图像领域基于FCN的方法占据统治地位
3D点云领域:
- 3D FCNN
- PointNet
- SPG
作者说事实上,无论是2D图像还是3D点云,很少有工作利用实例embedding进行语义分割。
点云数据的深度学习
常见的做法:
- 将点云数据根据视角的不同转化为多张2D图片,然后利用2D算法进行处理。但是会丢失信息
- 使用 voxelized volumes来表示点云,并基于此进行处理。但是计算和内存开销大
- PointNet在3D的分类和分割任务表现很好。之后的PointNet++,RSNet,DGCNN,PointCNN聚焦于探索局部的上下文信息和分层的学习架构。
论文的方法
直接用论文的插图来解释论文的方法吧。首先就是针对数量为Np的点云数据,首先通过编码器编码(我理解为特征提取)。然后实例分割和语义分割都用自己对应的解码器解码得到各自的特征矩阵,且大小都是Np×Nf。在我看来,encode到decode的过程就是提取特征的过程。对于实例分割,再通过几层将Np×Nf的特征矩阵变为Np×Ne的实例embedding,就可以在该embedding的基础上进行聚类,得到实例分割结果了。而对于语义分割,再通过几层将Np×Nf的特征矩阵变为Np×Nc的矩阵,就是分割结果了。其中Nc表示语义分割的类别数。
而作者是如何将两种方法结合起来的呢?其实也很简单。
基于语义的实例分割
作者将语义分割解码得到的Np×Nf的特征矩阵Fsem经过几层变换(带bn和relu的全连接层),得到新的Np×Nf的特征矩阵Fsem’,然后和实例分割解码的特征矩阵Fins元素对应相加得到Fsins来代替原来的Fins。
基于实例融合的语义分割
作者基于实例分割的embedding结果,为点云中的每个点找到与其最近的K个点(这K个点中包含自身)。也就是每个点都对应K个类似的点(包含自身),也就对应语义分割矩阵中K×Nf为的语义特征。作者在利用max操作,融合着K×Nf的语义特征,得到新的1×Nf的语义特征。再来对这个点赋予语义标签。在我看来,着其实就是相当于一个投票机制,每个点有K个相似点,融合着K个点的特征来决定这个点的语义标签。
后话
第一次总结自己看过的论文,看的不仔细,理解的不深。如果大家发现有理解错误的地方,请批评指正,谢谢!