JSNet:3D点云的联合实例和语义分割
加入星球:可以发送“知识星球”到后台获取二维码,或者扫描下方二维码。
加入QQ群:327490147(此群已满)二群群号为:1091051698
加入微信群:需要保证您是一个乐于分享,回答的小伙伴,定期整理总结相关文章或者综述,分享到平台,和大家积极交流者可入微信群,微信群可发送“微信群”到后台获取联系方式。
JSNet:3D点云的联合实例和语义分割
赵林 陶文兵
华中科技大学人工智能与自动化学院
AAAI2020接收
在本文中,提出了一种新颖的联合实例和语义分割方法,称为JSNet,以同时解决3D点云的实例和语义分割问题。首先,建立有效的骨干网络,以从原始点云数据中提取鲁棒的特征。其次,为了获得更多的判别特征,提出了一种点云特征融合模块来融合骨干网的不同层特征。此外,开发了联合实例语义分割模块以将语义特征转换为实例嵌入空间,然后将转换后的特征进一步与实例特征融合以促进实例分割。同时,该模块还将实例特征聚合到语义特征空间中,以促进语义分割。最后,通过对实例嵌入应用简单的均值漂移聚类来生成实例预测。最后在大型3D室内点云数据集S3DIS和零件数据集ShapeNet上评估了该JSNet网络,并将其与现有方法进行了比较。实验结果表明,该方法在3D实例分割中的性能优于最新方法,在3D语义预测方面的有重大改进同时有利于零件分割。
论文地址:https://arxiv.org/abs/1912.09654
源码地址:https://github.com/dlinzhao/JSNet
研究综述
语义分割是用于分割场景中所有信息区域并将每个区域分类为特定类别的任务。实例分割与语义分割不同,因为同一类的不同对象将具有不同的标签。两项任务在现实场景中都有广泛的应用,例如,自动驾驶和基于移动的导航。在2D图像中,这两项任务均取得了显著成果(陈等人2018; 何.等人2017; 李.等人2019)。但是,对3D语义和实例分割的研究仍面临巨大挑战,例如,大规模的嘈杂数据处理,计算以及内存消耗。
图1. JSNet将原始点云作为输入,并获得输出实例和语义分割每个点的结果。 JISS代表联合实例和语义分割。
文献研究表明3D场景数据具有不同的表示形式,例如体积网格(Wu等人2015; Thanh Nguyen等人2016; Maturana和Scherer 2015)和3D点云(Qi等人2017b; Li等人2018) ; Wang等人2018b; Yu等人2018)。与其他表示相比,点云是3D场景数据的更紧凑,更直观的表示。最近,已经提出了更高效,更强大的深度学习网络架构(Qi等人2017b; Wu,Qi和Fuxin 2019; Li,Chen和Hee Lee 2018)来直接处理点云,并在点云分类中显示出令人鼓舞的结果和零件细分。这些方法通常在其他任务中用作特征提取网络,例如实例分割和语义分割。
在以前的工作中,实例分割和语义分割经常被分别处理,或者实例分割被视为语义分割的后处理任务(Wang等人2018a; Pham等人2019a)。但是,这两个问题是相关的,因为不同类别的点属于不同的实例,同一实例的点属于同一类。最近,(Pham et al.2019b)处理了多任务逐点网络和多值条件随机场(CRF)的两个问题。但是,CRF是卷积神经网络(CNN)背后的独立部分,很难探索它们组合的性能。而且,该方法没有研究语义分割和实例分割是否可以互相促进。同时,提出了ASIS(Wang等人,2019b)来同时解决这两个任务,即通过完全连接的层将语义特征适配到实例特征空间,并通过K最近邻居(kNN)将实例特征聚合到语义特征空间。但是,此方法的性能有限,因为它很难为kNN选择正确的K值和距离度量。此外,它具有昂贵的计算和内存消耗,因为它将在训练过程中生成高阶稀疏张量。
在这项工作中,作者引入了称为JSNet的3D点云联合实例语义分割神经网络,以解决语义分割和实例分割这两个基本问题。拟议的JSNet网络包括四个部分:共享特征编码器,两个并行分支解码器,每个解码器的特征融合模块,联合分割模块。功能编码器和解码器基于PointNet ++(Qi等人2017b)和PointConv(Wu,Qi和Fuxin 2019)构建,以了解更多有效的高级语义特征。为了获得更多的判别特征,本文提出了一种点云特征融合模块,以融合高级和低级信息,以细化输出特征。为了使这两个任务相互促进,提出了一个新颖的联合实例和语义分割模块来同时处理实例和语义分割。具体来说,该模块通过一维卷积将语义特征转换为实例嵌入空间,然后将转换后的特征与实例特征进一步融合以促进实例分割。同时,该模块还通过隐式学习将实例特征聚合到语义特征空间中,以促进语义分割。因此,本文的方法可用于学习实例感知的语义融合特征和语义感知的实例嵌入特征,从而使这些点的预测更加准确。总而言之,JSNet的主要工作如下:
l 设计了效率更高的点云特征融合(PCFF)模块,以生成更多判别特征并提高点预测的准确性;
l 提出了一种新颖的联合实例和语义分段(JISS)模块,以使实例分段和语义分段相互促进。该模块在训练过程中有可用的GPU内存消耗,从而进一步提高了准确性;
l 在S3DIS数据集(Armeni等人,2016)上取得了较好的结果,并且在3D实例分割任务上有了显着改进。此外,在ShapeNet数据集上的实验(Yi等人,2016年)表明,JSNet也可以实现令人满意的零件分割任务性能。
相关工作
在本节中,简要回顾一些点云特征提取工作,以及一些现有的3D场景中语义和实例分割方法。尤其是,本文专注于将基于深度神经网络的方法应用于3D点云,因为它们在现场已被证明具有鲁棒性和效率。
3D点云的深度学习
尽管深度学习已成功用于2D图像,但是在具有不规则数据结构的3D点云的特征学习功能方面仍然存在许多挑战。最近,PointNet(Qi等人2017a)是将神经网络直接应用于点云的首批方法之一。它使用共享的多层感知器(MLP)和最大池来从无序点集中学习深度特征。但是,PointNet难以捕获本地特征。PointNet ++(Qi等人2017b)已使用分层神经网络解决了此缺陷。最大池化操作是从PointNet和PointNet ++的点中提取要素的关键结构。但是,它只会在特征图的局部或全局区域上保持最强的激活,这可能会导致语义和实例分割任务丢失一些有用的详细信息。后来的一些作品(Simonovsky和Komodakis 2017; Hermosilla et al.2018; Xu et al.2018)通过学习连续滤波器提取点云的特征进行卷积计算。作品(Simonovsky和Komodakis 2017)首先提出了一种想法,即学习将边缘条件化的连续滤镜转换为3D图。此外,动态图CNN(Wang等人2018b)引入了一种动态更新图的方法。以下工作PointConv(Wu,Qi,and Fuxin 2019)提出了反密度标度,以重新加权MLP学习的连续函数并补偿非均匀采样,同时在训练过程中还需要高GPU内存。
点云上的语义和实例分割
对于语义分割,基于完全卷积网络(Long,Shelhamer和Darrell 2015)的方法(Zhao等,2017; Chen等,2018)在2D领域取得了巨大进展。关于3D语义分割,由(Huang and You 2016)引入的3D-FCNN会使用3D全卷积神经网络预测粗体素标签。SEGCloud(Tchapmi et al.2017)通过三线性插值和完全连接的条件随机字段扩展了3DFCNN。RSNet(Huang,Wang和Neumann 2018)使用切片池层,递归神经网络(RNN)层和切片解池层对点云的本地依赖性进行建模。3P-RNN(Ye et al.2018)通过使用逐点金字塔池化模块对语义分割的固有上下文特征进行建模,并使用双向分层RNN探索远程空间依赖性。最近,提出了一种图形注意力卷积GAC(Wang等人,2019a),以利用动态核来捕获点云的结构化特征以适应对象的结构。但是,很少有以前的作品通过使用实例嵌入的优势来专注于语义分割。
对于实例分割,有种方法(Li et al.2019;Huang等)基于Mask R-CNN(He et al.2017)在2D图像上占主导地位。但是,关于3D实例分割的研究很少。SGPN(Wang et al.2018a)通过学习具有双铰链损失的点特征的相似矩阵来生成实例建议。GSPN(Yi et al.2019)通过重构形状生成建议并基于PointNet ++输出最终的分割结果。3D-BoNet(Yang等人,2019)直接回归3D边界框并同时预测所有实例的点级蒙版。同样,很少有作品利用语义融合的优势对实例进行细分,但是,大多数先前的作品都是分别处理这两个任务的。最近(Pham et al.2019b)提出了一种多任务逐点网络(MT-PNet)来预测语义类别和实例嵌入向量,然后使用多值条件随机字段(MV-CRF)作为后置处理。但是,CRF是CNN背后的一个组成部分,因此很难探索其组合的性能。而且,该方法没有研究语义分割和实例分割是否可以互相促进。因此,性能提升并不明显。同时,提出了ASIS(Wang等人,2019b),该方法将PointNet或PointNet ++作为骨干网络立即对3D点云的实例和语义进行分段,然后将拟议的模块ASIS连接起来。ASIS通过完全连接的层将语义特征调整为实例特征空间,并通过kNN将实例特征聚合为语义特征空间。虽然该方法(Wang等人,2019b)难以为kNN选择正确的K值和距离度量,而且由于在训练过程中会生成高阶稀疏矩阵,因此它也具有很高的存储成本。
论文的方法
首先描述提议的JSNet的整个网络体系结构,例如3D点云的实例和语义分割。然后,详细说明网络的两个主要组件,分别是点云特征融合(PCFF)模块和联合实例与语义分割(JISS)模块。
网络架构
图2(a)所示的整个网络由四个主要组件组成,包括一个共享编码器,两个并行解码器,每个解码器的点云特征融合模块,最后一个联合分割模块。对于两个并行分支,一个旨在提取每个点的语义特征,而另一个则是例如分割任务。特别是对于功能编码器和两个解码器,由于两个解码器具有相同的结构,本文可以通过复制一个解码器直接将PointNet ++或PointConv用作本文的骨干网络。但是,如上所述,例如,例如语义分割,由于最大池操作,PointNet++可能会丢失详细信息,并且PointConv在训练过程中会消耗昂贵的GPU内存。在这项工作中,本文将PointNet ++和PointConv结合起来,以可接受的内存成本构建了更有效的骨干网络。骨干网的编码器是通过将PointNet ++的一组抽象模块和PointConv的三个特征编码层连接起来而构建的。同样,解码器由PointConv的三个深度特征解码层组成
其次是PointNet ++的功能传播模块。对于整个管道,本文的网络以大小为Na的点云作为输入,然后通过共享特征编码器将其编码为Ne×512形状的矩阵。接下来,特征编码器的输出被输入到两个并行解码器中,并分别由其后面的组件进行处理。语义分支对共享的特征进行解码,并将不同层的特征融合为Na×128形状的语义特征矩阵FSS。类似地,实例分支在PCFF模块之后输出实例特征矩阵FIS。最后,语义特征和实例特征都由JISS模块获取和处理,然后输出两个特征矩阵。具有Na×C形状的矩阵PSSI之一,用于预测语义类别,其中C是语义类别的数量。形状为Na×K的另一个EISS是实例特征矩阵,用于预测每个实例的实例标签点,其中K是嵌入向量的维数。在嵌入空间中,嵌入表示点的实例关系:属于同一实例对象的点很近,而不同实例的点则彼此远离。
在训练时,本文网络的损失函数L由语义分割损失Lsem和实例嵌入损失Lins组成:
其中Lsem用经典的交叉熵损失定义。至于实例的嵌入损失,本文利用判别函数来表达Lins的嵌入损失,受到一篇论文的启发(De Brabandere,Neven and Van Gool 2017)。具体而言,实例嵌入损失函数的公式如下:
此处Lpull将嵌入拉到均值嵌入附近例如,虽然Lpush进行均值嵌入不同的实例彼此分离。鉴于实例数M,元素中的元素数Nm第m个实例,点的嵌入en和的均值在第m个实例中嵌入µm。最终重写如下:
在测试时,最终实例标签是由使用简单的均值漂移聚类(Comaniciu and Meer2002)的嵌入和最终语义类别通过使用argmax操作获得。
图2:3D点云(JSNet)的联合实例语义分割神经网络的概述。(a)网络架构图。(b)点云功能融合(PCFF)模块的组件。(c)联合实例和语义分段(JISS)模块的组件。不同颜色的块表示(a)中的不同模块,而这些块表示(b)和(c)中的不同特征。
点云功能融合模块
在2D图像的分割和检测任务中,在先前的工作中仅使用最后一层的特征进行预测,而在后续方法中融合了不同层的特征(Lin等人2017; He等人2017; Chen等人。2018),因为高层具有更丰富的语义信息,而底层具有更详细的信息。这些工作表明,融合特征有助于更好的预测。基于以上观察,本文提出了一种点云特征融合(PCFF)模块,用于点云中的语义和实例分割。图2(b) 展示了该结构的细节。考虑到精度,计算和GPU内存消耗,本文仅融合解码器的最后三层。本文用Fa,Fb和Fc分别表示形状为Na×128,Nb×128和Nc×256的解码器的特征矩阵。首先,本文将Fa和F'b上采样与来自Fb的插值连接起来。然后将前一个输出逐元素添加到F'c(从Fc上采样),并将卷积应用于前一个结果。随后(Qi等人2017b),通过使用基于三个最近邻居的平方反比加权平均来实现插值。最后,PCFF生成形状为Na×128的融合特征矩阵。该模块可以用可接受的计算和内存消耗来完善解码器的输出特征。
联合实例分割和语义分割
实际上,语义分割和实例分割都将初始点云要素分别映射到不同的新高级要素空间。在语义特征空间中,相同语义类别的点聚集在一起,而不同类别则分离。在实例特征空间中,同一实例对象的点紧密组合,而不同实例的点则分离。它表明本文可以从语义特征空间中提取语义意识信息,以将信息集成到实例特征中并生成语义感知的实例嵌入特征,反之亦然。
基于此观察,本文提出了一个联合实例语义分段(JISS)模块,以同时获取语义标签和分段实例对象,如图2(c) 所示。JISS模块将语义特征转换为实例嵌入空间,然后将转换后的特征与实例特征进一步融合以促进实例分割。同时,该模块还将实例特征聚合到语义特征空间中,以促进语义分割。具体来说,通过一维卷积(Conv1D)将语义特征矩阵FSS转换为实例特征空间,作为FSST,并将FSST逐元素添加到实例特征矩阵FIS中,作为FISS。然后,本文通过将特征FIS和FISS连接到FISSC中来建模点特征的空间相关性,以增强重要特征,然后将FISSC应用于整个维度的均值(Mean)和逐个元素的S形(Sigmoid),生成权重矩阵FISR。最后,特征矩阵FISSC乘以FISR以生成特征矩阵FISSR,然后进行两次一维卷积以生成形状为Na×K的实例嵌入特征EISS。该过程可以表示为:
其中实例嵌入特征矩阵EISS用于通过均值漂移聚类生成最终实例标签。对于语义分割分支,给定实例嵌入FISSR,此模块将FISSR集成到语义特征空间中,成为具有一维卷积的FISST,然后是跨维度的元素平均值和切片操作。接下来,其他操作与实例分支相似,除了最后一层输出实例感知的语义特征矩阵PSSI(形状为Na×C)的最后一层。本文还按如下方式制定此过程:
其中FSSI是实例融合特征矩阵,而FSSIR是用于语义分割的特征融合矩阵。最终的实例感知语义特征被输入到最后一个分类器来预测每个点的类别。
实验部分
在本文的实验部分,作者斯坦福大学大型3D室内空间(S3DIS)和ShapeNet两个公开数据集上对方法进行了实验。S3DIS是一个室内3D点云数据集,它包含三个不同建筑物的六个区域,并具有272个房间,总共涉及13个类别,是目前较长使用的室内场景分割数据集。本文也使用了k折交叉验证。
S3DIS数据上的实例和语义分割结果比较
ShapeNet数据上的分割结果展示
结论
本文提出了JSNet网络架构,这是一种基于深度学习框架的新型端到端方法,用于点云上的3D实例分割和语义分割。该框架包括一个共享的特征编码器,两个并行的特征解码器,分别跟着点云特征融合(PCFF)模块和联合实例语义分割(JISS)模块。一方面,特征编码器,特征解码器和PCFF模块可以学习更有效和更具区分性的特征。另一方面,JISS模块使实例和语义分段相互利用。最后,该方法在S3DIS数据集的实例和语义分割任务上均取得了显着改进。将来可以将点云的空间几何拓扑添加到该框架中,以获得更好的分割结果。
资源
关于我们
目前微信交流群不断壮大,由于人数太多,目前有两个群,为了鼓励大家分享,我们希望大家能在学习的同时积极分享,将您的问题或者小总结投稿发到群主邮箱主邮箱dianyunpcl@163.com。