Abstract

在本文中,我们提出了一种新的联合实例和语义分割方法,称为JSNet,以同时解决3D点云的实例和语义分割。首先,我们建立了一个有效的骨干网络来从原始点云中提取鲁棒的特征。其次,为了获得更多的判别特征,提出了一种点云特征融合模块来融合骨干网络的不同层特征。此外,开发了一个联合实例语义分割模块,将语义特征转换为实例嵌入空间,然后将转换后的特征与实例特征进一步融合,以方便实例分割。同时,该模块还将实例特征聚合到语义特征空间中,以促进语义分割。最后,通过对实例嵌入应用简单的均值偏移聚类来生成实例预测。因此,我们在大规模3D室内点云数据集S3DIS和部分数据集ShapeNet上评估提出的JSNet,并将其与现有方法进行比较。实验结果表明,我们的方法在3D实例分割中优于state-of-theart方法,显着改善了3D语义预测,并且我们的方法也有利于部分分割。这项工作的源代码可在https://github.com/dlinzhao/JSNet获得。

Introduction

语义分割是用于分割场景中所有信息区域并将每个区域分类为特定类别的任务。实例分割不同于语义分割,因为同一类的不同对象会有不同的标签。这两项任务在现实世界的场景中都有广泛的应用,例如自动驾驶和基于移动的导航。在二维图像中,这两项任务取得了显着的成果(Chen et al 2018; He et al 2017; Li et al 2019)。然而,3D语义和实例分割的研究仍然面临着巨大的挑战,例如,大规模的噪声数据处理、高计算量以及内存消耗。

图 1:我们的网络JSNet将原始点云作为输入,并为每个点获取输出实例和语义分割结果。JISS代表联合实例和语义分割。

文献研究表明,3D场景数据具有不同的表示形式,例如体积网格(Wu et al 2015; Thanh Nguyen et al 2016; Maturana and Scherer 2015)和3D点云(Qi et al 2017b; Li et al 2018; Wang et al 2018b;Yu等人2018)。与其他表示相比,点云是一种更紧凑、更直观的3D场景数据表示。最近,已经提出了更高效、更强大的深度学习网络架构(Qi et al 2017b; Wu, Qi, and Fuxin 2019; Li, Chen, and Hee Lee 2018)直接处理点云,并在点云分类和部分分割。这些方法通常在其他任务中用作特征提取网络,例如实例分割和语义分割。

在以前的工作中,实例分割和语义分割经常被分别处理或实例分割被视为语义分割的后处理任务(Wang et al 2018a; Pham et al 2019a)。然而,这两个问题是相关的,因为不同类别的点属于不同的实例,而同一实例的点属于同一类。最近,(Pham et al 2019b)处理了多任务逐点网络和多值这两个问题条件随机场(CRF)。然而,CRF是卷积神经网络(CNN)背后的一个单独部分,很难探索它们组合的性能。此外,该方法没有研究语义分割和实例分割是否可以相互促进。同时,提出了ASIS(Wang et al 2019b)来同时解决这两个任务,通过全连接层将语义特征适应实例特征空间,并通过KKK最近邻(kNN)将实例特征聚合到语义特征空间.然而,这种方法的性能是有限的,因为很难为kNN选择正确的KKK值和距离度量。此外,它具有昂贵的计算和内存消耗,因为它会在训练过程中产生高阶稀疏张量。

在这项工作中,我们引入了一个名为JSNet的3D点云联合实例语义分割神经网络来解决两个基本问题:语义分割和实例分割。所提出的网络JSNet包括四个部分:一个共享特征编码器、两个并行分支解码器、每个解码器的特征融合模块、一个联合分割模块。特征编码器和解码器基于PointNet++(Qi et al 2017b)和PointConv(Wu, Qi, and Fuxin 2019) 构建,以学习更有效的高级语义特征。为了获得更多的判别特征,我们提出了一个点云特征融合模块来融合高层和低层信息来细化输出特征。为了使这两个任务相互促进,提出了一种新颖的联合实例和语义分割模块来同时处理实例和语义分割。具体来说,该模块通过一维卷积将语义特征转换为实例嵌入空间,然后将转换后的特征与实例特征进一步融合,以方便实例分割。同时,该模块还通过隐式学习将实例特征聚合到语义特征空间中,以促进语义分割。因此,我们的方法可用于学习实例感知语义融合特征和语义感知实例嵌入特征,这可以使这些点的预测更加准确。

总而言之,我们工作的主要贡献如下:

  • 我们设计了一个更高效的点云特征融合(PCFF)模块来生成更多的判别特征并提高点预测的准确性。

  • 我们提出了一种新颖的联合实例和语义分割(JISS)模块,使实例分割和语义分割相互促进。该模块进一步提高了训练过程中可接受的GPU内存消耗的准确性。

  • 我们在S3DIS数据集(Armeni et al 2016)上取得了令人印象深刻的结果,同时在3D实例分割任务上取得了显着改进。此外,我们在ShapeNet数据集(Yi et al 2016)上的实验表明,JSNet也可以在零件分割任务中取得令人满意的性能。

Related Work

在本节中,我们简要回顾了一些点云特征提取工作,以及一些现有的3D场景中的语义和实例分割方法。特别是,我们专注于应用于3D点云的基于深度神经网络的方法,因为它们已在该领域证明了稳健性和效率。

Deep learning for 3D Point Clouds

虽然深度学习已经成功用于2D图像,但对于具有不规则数据结构的3D点云的特征学习能力仍然存在许多挑战。最近,PointNet(Qi et al 2017a)是最早将神经网络直接应用于点云的方法之一。它使用共享的多层感知器(MLP)和最大池从无序点集中学习深度特征。然而,PointNet难以捕捉局部区域特征。PointNet++(Qi et al 2017b)使用分层神经网络解决了这个缺点。最大池操作是从PointNet和PointNet++的点中提取特征的关键结构。但它只在特征图的局部或全局区域上保持最强的激活,这可能会导致语义和实例分割任务丢失一些有用的详细信息。

后来的一些作品(Simonovsky和Komodakis 2017;Hermosilla等人2018;Xu等人2018)通过学习用于卷积计算的连续滤波器来提取点云的特征。这项工作(Simonovsky和Komodakis 2017)首先提出了将具有边缘条件的连续滤波器学习到3D图的想法。此外,动态图CNN(Wang et al 2018b) 引入了一种动态更新图的方法。以下工作PointConv(Wu, Qi, and Fuxin 2019)提出了一种逆密度尺度来重新加权MLP学习到的连续函数并补偿非均匀采样,同时它在训练过程中也需要较高的GPU内存。

Semantic&Instance Segmentation on Point Clouds

对于语义分割,基于全卷积网络(Long、Shelhamer 和 Darrell 2015)的方法(Zhao et al 2017; Chen et al 2018)在二维领域取得了巨大的进步。至于3D语义分割,由(Huang and You 2016)引入的3D-FCNN使用3D全卷积神经网络预测粗体素标签。SEGCloud(Tchapmi et al 2017) 使用三线性插值和完全连接的条件随机场扩展了3DFCNN。RSNet(Huang、Wang和Neumann 2018)使用切片池化层、循环神经网络(RNN)层和切片去池化层对点云的局部依赖关系进行建模。P-RNN(Ye et al 2018)通过使用逐点金字塔池化模块对语义分割的固有上下文特征进行建模,并使用双向分层RNN探索远程空间依赖关系。最近,提出了一种图注意力卷积GAC(Wang et al 2019a),以利用动态内核捕获点云的结构化特征,以适应对象的结构。然而,以前很少有工作利用实例嵌入的优势来关注语义分割。

例如分割,基于Mask R-CNN(He et al 2017)的方法(Li et al 2019; Huang et al )在2D图像上占主导地位。然而,很少有关于3D实例分割的研究。SGPN(Wang et al 2018a)通过学习具有双铰链损失的点特征的相似性矩阵来生成实例建议。GSPN(Yi et al 2019)通过重构形状生成提案并输出基于PointNet++的最终分割结果。3D-BoNet(Yang et al 2019)直接回归3D边界框并同时预测所有实例的点级掩码。同样,很少有作品利用语义融合的优势来分割实例。

但是,以前的大多数作品都分别处理这两个任务。最近,(Pham et al 2019b)提出了一种多任务逐点网络(MT-PNet),用于预测语义类别和实例嵌入向量,然后使用多值条件随机场(MV-CRF)作为后处理。然而,CRF是CNN背后的独立部分,很难探索它们组合的性能。此外,该方法没有研究语义分割和实例分割是否可以相互促进。因此,性能提升并不明显。同时,提出了ASIS(Wang et al 2019b)来一次分割3D点云的实例和语义,它使用PointNet或PointNet++作为骨干网络,然后连接一个提议的模块ASIS。ASIS通过全连接层将语义特征适配到实例特征空间,并通过kNN将实例特征聚合到语义特征空间。虽然该方法(Wang et al 2019b)难以为kNN选择正确的KKK值和距离度量,并且由于在训练过程中会产生高阶稀疏矩阵,因此内存成本也很高。

Proposed Method

在本节中,首先,我们描述了我们提出的JSNet的整个网络架构以及3D点云的语义分割。然后,我们详细阐述了我们提出的网络的两个主要组件,分别包括点云特征融合(PCFF)模块和联合实例和语义分割(JISS)模块。

Network Architecture

图2(a)所示的整个网络由四个主要组件组成,包括一个共享编码器、两个并行解码器、每个解码器的点云特征融合模块、作为最后一部分的联合分割模块。对于两个并行分支,一个旨在为每个点提取语义特征,而另一个是实例分割任务。特别是对于特征编码器和两个解码器,我们可以通过复制一个解码器直接使用PointNet++或PointConv作为我们的骨干网络,因为这两个解码器具有相同的结构。然而,如上所述,对于实例或语义分割,PointNet++可能会因为最大池化操作而丢失详细信息,并且PointConv在训练过程中具有昂贵的GPU内存消耗。在这项工作中,我们将PointNet++和PointConv结合起来,以构建一个更有效的骨干网络,同时具有可接受的内存成本。主干的编码器是通过连接一个PointNet++的集合抽象模块和PointConv的三个特征编码层来构建的。类似地,解码器由PointConv的三个深度特征解码层和PointNet++的特征传播模块组成。

对于整个管道,我们的网络将大小为NaN_{a}Na​的点云作为输入,然后通过共享特征编码器将其编码为Ne×512N_e \times 512Ne​×512形状的矩阵。接下来,特征编码器的输出被输入到两个并行解码器中,并分别由它们的后续组件进行处理。语义分支对共享特征进行解码,将不同层的特征融合成一个形状为Na×128N_a \times 128Na​×128的语义特征矩阵FSSF_{S S}FSS​。同理,实例分支在PCFF模块之后输出一个实例特征矩阵FISF_{I S}FIS​。实例特征由JISS模块提取和处理,然后输出两个特征矩阵。矩阵PSSIP_{S S I}PSSI​的形状为Na×CN_a \times CNa​×C的矩阵之一,用于预测语义类别,其中CCC是语义类别的数量。另一个用Na×KN_a \times KNa​×K整形的EISSE_{I S S}EISS​是实例特征矩阵,用于预测每个点的实例标签,其中KKK是嵌入向量的维数。在嵌入空间中,嵌入表示点的实例关系:属于同一实例对象的点相近,不同实例的点彼此远离。

在训练时,我们网络的损失函数L\mathcal{L}L由语义分割损失Lsem \mathcal{L}_{\text {sem }}Lsem ​和实例嵌入损失Lins\mathcal{L}_{i n s}Lins​组成:

其中Lsem \mathcal{L}_{\text {sem }}Lsem ​是用经典的交叉熵损失定义的。对于实例嵌入损失,我们利用判别函数来表达嵌入损失Lins,其灵感来自(De Brabandere, Neven, and Van Gool 2017)中的工作。具体来说,实例嵌入损失函数公式如下:

其中Lpull \mathcal{L}_{\text {pull }}Lpull ​使嵌入接近实例的平均嵌入,而Lpush \mathcal{L}_{\text {push }}Lpush ​使不同实例的平均嵌入彼此分离。给定实例数MMM、第mmm个实例中的元素数NmN_mNm​、点的嵌入ene_nen​以及第mmm个实例中嵌入的平均值μm\mu_mμm​。每个术语重写如下:

其中[x]+=max⁡(0,x)[x]_{+}=\max (0, x)[x]+​=max(0,x); ∥⋅∥1\|\cdot\|_1∥⋅∥1​为L1L_{1}L1​距离;δv\delta_vδv​ 和δd\delta_dδd​分别是Lpull \mathcal{L}_{\text {pull }}Lpull ​ 和Lpush \mathcal{L}_{\text {push }}Lpush ​的边距(margins)。

在测试时,通过对嵌入使用简单的均值偏移聚类(Comaniciu和Meer 2002)生成最终的实例标签,并通过使用argmax操作获得最终的语义类别。

图 2:3D点云(JSNet)的联合实例语义分割神经网络概述。(a)网络架构示意图。(b)点云特征融合(PCFF)模块的组件。©联合实例和语义分割(JISS)模块的组件。不同颜色的块代表(a)中的不同模块,而这些块代表(b)和(c)中的不同特征。

Point Cloud Feature Fusion Module

在二维图像的分割和检测任务中,之前的工作只使用最后一层的特征进行预测,而在后续的方法中融合了不同的层特征(Lin et al 2017; He et al 2017; Chen et al 2018),因为高层具有更丰富的语义信息,而低层具有更详细的信息。这些工作表明融合特征有利于更好的预测。

基于上述观察,我们提出了一个点云特征融合(PCFF)模块,用于点云中的语义和实例分割。图2(b)显示了结构的细节。考虑到精度、计算和GPU内存消耗,我们只融合解码器的最后三层。我们使用Fa,FbF_a,F_bFa​,Fb​和FcF_cFc​来表示解码器的特征矩阵,形状分别为Na×128N_a \times 128Na​×128、Nb×128N_b \times 128Nb​×128和Nc×256N_c \times 256Nc​×256。首先,我们连接FaF_aFa​ 和Fb′F_b^{\prime}Fb′​使用来自FbF_{b}Fb​的插值进行上采样。然后将前一个输出添加到Fc′F_c^{\prime}Fc′​从 FcF_cFc​上采样)元素和卷积应用于先前的结果。继(Qi et al 2017b)之后,通过使用基于三个最近邻的反平方距离加权平均值来实现插值。最后,PCFF生成一个形状为Na×128N_a \times 128Na​×128的融合特征矩阵。该模块可以以可接受的计算和内存消耗细化解码器的输出特征。

Joint Instance and Semantic Segmentation

事实上,语义分割和实例分割都将初始点云特征分别映射到不同的新高级特征空间。在语义特征空间中,相同语义类别的点聚集在一起,而不同类别的点被分开。在实例特征空间中,同一实例对象的点紧密组合,而不同实例的点相互分离。这表明我们可以从语义特征空间中提取语义感知信息,将信息整合到实例特征中并生成语义感知的实例嵌入特征,反之亦然。

基于这一观察,我们提出了一个联合实例语义分割(JISS)模块来同时获取语义标签和分割实例对象,如图2©所示。JISS模块将语义特征转换为实例嵌入空间,然后将转换后的特征与实例特征进一步融合,以方便实例分割。同时,该模块还将实例特征聚合到语义特征空间中,以促进语义分割。具体来说,语义特征矩阵FSSF_{S S}FSS​通过一维卷积(Conv1D)转换为实例特征空间作为FSSTF_{S S T}FSST​,并将FSSTF_{S S T}FSST​作为FISSF_{I S S}FISS​逐元素添加到实例特征矩阵FISF_{I S}FIS​。然后,我们通过将特征FISF_{I S}FIS​和FISSF_{I S S}FISS​连接到FISSCF_{I S S C}FISSC​中来对点特征的空间相关性进行建模以增强重要特征,然后将FISSCF_{I S S C}FISSC​应用于跨维度的元素平均值(Mean)和逐元素的sigmoid(Sigmoid)生成权重矩阵FISRF_{I S R}FISR​。最后,将特征矩阵FISSCF_{I S S C}FISSC​与FISRF_{I S R}FISR​相乘生成特征矩阵FISSRF_{I S S R}FISSR​,然后进行两次1D卷积,生成Na×KN_a \times KNa​×K形状的实例嵌入特征EISSE_{I S S}EISS​。过程可表述为:

其中实例嵌入特征矩阵 EISSE_{I S S}EISS​用于通过均值偏移聚类生成最终实例标签。

对于语义分割分支,给定实例嵌入 FISSRF_{I S S R}FISSR​,该模块将FISSRF_{I S S R}FISSR​作为FISSTF_{I S S T}FISST​集成到语义特征空间中,并带有一维卷积,然后是跨维度的元素平均值和平铺操作。接下来,其他操作类似于实例分支,除了最后一层输出一个实例感知的语义特征矩阵PSSIP_{S S I}PSSI​,形状为Na×CN_a \times CNa​×C。我们还将这个过程制定如下:

其中FSSIF_{S S I}FSSI​是实例融合特征矩阵,FSSIRF_{S S I R}FSSIR​是用于语义分割的特征融合矩阵。最终的实例感知语义特征被送入最后一个分类器,以预测每个点的类别。

Conclusion

在这项工作中,我们提出了JSNet,这是一种基于深度学习框架的新型端到端方法,用于点云上的3D实例分割和语义分割。该框架由一个共享特征编码器、两个并行特征解码器和一个点云特征融合(PCFF)模块和联合实例语义分割(JISS)模块。一方面,特征编码器、特征解码器和PCFF模块可以学习到更有效、更具判别力的特征。另一方面,JISS模块使实例和语义分割相得益彰。最后,我们的方法在S3DIS数据集上的实例和语义分割任务上都取得了显着的改进。未来,可以将点云的空间几何拓扑添加到我们的框架中以获得更好的分割结果。

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/6994

References

JSNet: Joint Instance and Semantic Segmentation of 3D Point Clouds相关推荐

  1. ECCV2020语义分割——Self-Prediction for Joint Instance and Semantic Segmentation of Point Clouds

    Self-Prediction for Joint Instance and Semantic Segmentation of Point Clouds Abstract (一) Introducti ...

  2. (3DV 2017) SEGCloud: Semantic Segmentation of 3D Point Clouds

    图 1:SEGCloud:3D点云被体素化并通过3D全卷积神经网络馈送,以生成粗略的下采样体素标签.三线性插值层将此粗略输出从体素转换回原始3D点表示.获得的3D点分数用于在3D全连接CRF中进行推理 ...

  3. 论文翻译 | RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

    论文:RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds 代码:code 前言:最近很犹豫要不要继续翻译点云 ...

  4. 地面分割:Fast Segmentation of 3D Point Clouds for Ground Vehicles

    论文链接:Fast segmentation of 3D point clouds for ground vehicles | IEEE Conference Publication | IEEE X ...

  5. 论文笔记-Multi-view Incremental Segmentation of 3D Point Clouds for Mobile Robots

    标题:Multi-view Incremental Segmentation of 3D Point Clouds for Mobile Robots 作者:Jingdao Chen1, Yong K ...

  6. Fast Segmentation of 3D Point Clouds: A Paradigm on LiDAR Data for Autonomous Vehicle Applications阅读

    该篇点云论文主要分为两个阶段的创新: ①点云地面点的提取(Ground Plane Fitting, GPF): ②点云扫描聚类快速提取(Scan Line Run, SLR): 一.Ground P ...

  7. RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

    上岸以后第一次做这种读论文的任务,该怎么读.怎么学都还在一点一点摸索,这里记录一下看论文的过程中的一些思考以及不明白的地方. 一.简介 在大规模的3D点云识别中,想要做到高效的语义分析是一个不简单的任 ...

  8. Feature Relevance Assessment for the Semantic Interpretation of 3D Point Clouds Data

    摘要 大型三维点云的自动分析是摄影测量.遥感和计算机视觉中的一项重要任务.在这篇文章中,我们提出了一种新的方法来对这种点云进行语义解释,其中包括特征相关性估计,以减少处理时间和内存消耗.给定具有130 ...

  9. 【点云系列】综述: Deep Learning for 3D Point Clouds: A Survey

    文章目录 起因 题目 摘要 1 简介 2 背景 2.1 数据集 2.2 衡量指标 3 3D形状分类 3.1基于多视角的方法 3.2基于体素的方法 3.3 基于点的方法 3.3.1逐点MLP网络 3.3 ...

最新文章

  1. 利用矩阵奇异值分解(SVD)进行降维
  2. Entity Framework 在MySQL中执行SQL语句,关于参数问题
  3. Zuul:路由转发,排除和自定义
  4. mha如何管理多套mysql集群_Mysql 集群高可用方案 MHA
  5. 小程序canvan画布,现两张图片合成一张,并保存到本地
  6. matlab dy,高手,请问用matlab如何解下面方程:y*Dy=a+b*y;我的计算结果里面含有wrightOmega ,怎样解出一般解?...
  7. python 面试问题_值得阅读的30个Python面试问题
  8. java中volatile关键字的含义_java中volatile关键字的含义
  9. Git中的pull request真正比较的是什么?
  10. HDU3785 寻找大富翁【优先队列】
  11. Android抓包工具——Fiddler
  12. 程序员入门:三本必看的书
  13. 计算机英语词汇助记,英语单词查询软件
  14. 软件测试的维护,浅谈如何维护软件测试用例
  15. 实用工具:常用数学公式
  16. android 调用短信,Android实现接收短信和发送短信功能
  17. 【JAVA问题解决方案】01.EasyExcel导出数据超过Excel单表上限解决方案
  18. 【百家讲坛】郦波副教授解读《曾国…
  19. Connection terminated as request was larger than 10485760.
  20. 计算机二级是专业技术职务吗,计算机二级算中级技能证吗

热门文章

  1. 学习RHCSA的第二天
  2. android 阻止系统进入深度休眠(不影响正常休眠逻辑)
  3. UnityShader案例篇-镜子2
  4. 饿了吗谈“外卖多等五分钟”
  5. Maven编译 Fatal error compiling: 无效的目标发行版: 11
  6. 自考会计原理和实务能带什么计算机,高等教育自学考试“会计原理与实务”命题说明...
  7. 重来之大学版|社交生活篇——为什么毕业季是分手季?怎么和平分手?分手了还要不要做朋友?分手了怎么挽回?
  8. 【Leetcode 1039】多边形三角剖分的最低得分
  9. Android ART详细介绍及配置参数详解
  10. Unix_Linux_常用命令总结