论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript
  wh9rG0UkdQJu 2023年11月19日 26 0

SceneEncoder: 用可学习的场景描述符对点云进行场景感知的语义分割

摘要

除了局部特征,全局信息在语义分割中起着至关重要的作用,而最近的工作通常不能明确地提取有意义的全局信息并充分利用它。在本文中,我们提出了一个SceneEncoder模块,以施加一个场景感知的指导来增强全局信息的效果。该模块预测了一个场景描述符,该描述符学会了表示场景中存在的物体类别,并通过过滤掉不属于这个场景的类别直接指导点级语义分割。此外,为了减轻局部区域的分割噪声,我们设计了一个区域相似性损失,将区别性特征传播到它们自己的具有相同标签的相邻点,从而增强了点状特征的区别能力。我们将我们的方法整合到几个流行的网络中,并在基准数据集ScanNet和ShapeNet上进行了广泛的实验。结果表明,我们的方法大大改善了基线的性能,达到了最先进的性能。

1 引言

作为三维视觉的一项基本任务,点云的语义分割已经引起了越来越多的关注。由于点云的不规则性和无序性,以前的许多工作通过体素化或投影将点云转换成网格表示,以利用网格卷积的有效性[Zhou and Tuzel, 2018; Su et al., 2015]。这些方法不可避免地破坏了点云的原始几何信息。因此,PointNet[Qi等人,2017a]直接处理原始点云,并通过共享多层感知器(MLPs)提取特征。然而,由于点云的不寻常特性和场景分割的复杂性,点云的语义分割仍然是一个具有挑战性的问题。

通常由编码器网络提取的全局信息,通常包含直接概括整个场景信息的基本知识,因此在语义分割中应发挥更重要的作用。对于人类来说,对场景的先验知识可以直接影响语义理解。例如,如图1所示,当身处浴室时,很容易将 "浴帘 "类别与 "窗帘 "类别区分开来,即使它们看起来相似。因此,点云的全局信息可以在语义分割中发挥先验知识的作用。

许多先前的工作利用U-Net架构来提取具有不断增长的感受野的全局特征,然后将这些全局特征与局部特征通过串联分层混合[Wu et al., 2019; Graham et al., 2018]。然而,这样的混合不仅削弱了对全局信息的指导,也降低了局部特征的表示能力。SpiderCNN[Xu等人,2018]采用了一种更直接的方式,将点云的全局标签作为特征向量中的一部分元素来增强全局信息的效果。然而,它是基于一个不切实际的假设,即全局标签总是可用的,特别是在测试阶段。

因此,我们提出了一个SceneEncoder模块来预测每个点云的多热场景描述符,这是一种新颖的全局标签表示,而不是手动注释的单热场景标签,以执行场景级的指导。一个理想的场景描述符被设计成一个二进制矢量每个元素代表相应类别物体的存在。如图1(a)所示,卧室的场景描述符由地板、床、桌子、窗帘和其他一些家具组成,可以用一个五热向量表示。

与连接全局特征和局部特征不同,我们利用场景描述符作为掩码/注意力通过过滤掉不可能存在于当前场景中的不相关物体类别来帮助点级语义分割。例如,在图1(a)和(b)中分别有一个窗帘和一个浴帘,由于它们的外观相似,所以很难区分。然而,我们的描述符可以直接帮助排除卧室场景中的浴帘的分类选项,并排除浴室中的窗帘。此外,与单热点场景标签相比,我们精心设计的多热点场景描述符也能对每一类场景进行细分。如图1(c)和(d)所示,为不同目的而设计的会议室可以进一步用不同的场景描述符表示。为了训练SceneEncoder模块,我们根据所有点的标签检查输入的训练场景点云中存在哪些类别的物体,从而动态地生成场景描述符的基础真相。

由于分割任务是一个点级任务,全局信息对于点级分类是不够的。因此,越来越多的工作[Zhao et al., 2019; Wu et al., 2019]专注于利用本地环境,这对于识别细粒度模式和泛化到复杂场景非常重要。目前流行的方法的一个问题是,提取的特征通常涉及局部区域的不同类别的特征。例如,属于椅子的点云可能就在桌子附近,这样,提取的局部特征就会包含椅子和桌子的特征。这将使点特征的区分度降低,因为这些特征编码了不止一个类别的信息,而且在分割任务中也会导致物体轮廓不清晰。为了解决这个问题,我们设计了一种新的损失,即区域相似性损失,将区别性的点特征传播到局部区域的模糊特征。也就是说,我们只将每个区别性特征传播给其具有相同标签的相邻点(即其邻域的点),因为在同一局部区域但具有不同类别的点在其特征上会有所不同。总的来说,我们的主要贡献可以归纳如下。

- 我们设计了一个带有场景描述符的SceneEncoder模块,以提供场景级别的指导,导致全局信息和局部特征的有效合作,从而实现语义分割。

- 我们提出了一种新的区域相似性损失,将区分点特征传播给局部区域的模糊特征,从而有效地缓解分割噪声。

- 我们通过区域相似性损失将我们的SceneEncoder模块整合到两个普遍的网络中。在两个基准数据集上的实验结果表明,我们的方法优于许多先进的竞争对手。

2 相关工作

在点云上进行分割。令人印象深刻的是,PointNet[Qi等人,2017a]直接处理原始点云,并用MLPs提取点特征。在此基础上,PointNet++[Qi等人,2017b]设计了一个分层框架,以利用具有增长的感受野的局部环境。然而,在这两种方法中,聚集特征的关键操作是最大集合,这导致了上下文信息的巨大损失。

为了有效地利用局部环境,PointWeb[Zhao等人,2019]将局部区域的每一对点密集连接起来,并自适应地调整每个点的特征。Jiang等人,2019]中引入了一个独立的边缘分支,以利用不同尺度的相邻点之间的关系,并与点分支交织在一起,提供更多的上下文信息。PointConv[Wu et al., 2019]关注局部区域的点的分布,并利用了密度信息。此外,[Lei et al., 2019]提出了一个八叉树引导的选择策略,以更合理的方式指导点云的卷积过程。与这些通过融合局部和全局特征来利用场景信息的方法相比,我们直接从全局特征中预测场景描述符来指导点级分割,从而增强全局信息的效果。

分割的细化。此外,噪音和不良的轮廓通常是由模糊的特征引起的,因为它们与本地区域不同类别的特征混合在一起。SEGCloud[Tchapmi等人,2017]提出使用三维条件随机场(CRF)将网络与点云的细粒度表示相结合。GAC[Wang等人,2019]通过这两个特征之间的相似性确定每个点特征对提取的特征的贡献,以提高特征的可区分性。相比之下,我们提出了一个更普遍的损失,通过传播局部区域的区分性特征来完善分割的结果。在语义分割任务中,大多数网络的训练过程都可以采用这种策略。

损失函数。在[De Brabandere等人,2017]中,提出了一个广泛使用的损失来最小化同一实例对象的点特征之间的差异。同样,Pairwise Similarity Loss[Engelmann等人,2018]将同一语义对象的点特征之间的相似度最大化。值得注意的是,相距甚远的点应该有不同的特征,即使它们属于同一类别。因此,我们的损失只是专注于迫使同一类别的相邻点特征相似

3 方法

首先,我们在第3.1节中介绍整体结构。然后,在第3.2节中,将详细描述SceneEncoder模块和场景描述符。在第3.3节中,将描述新的区域相似性损失。最后,我们在第3.4节中总结了整个网络训练过程中使用的不同损失。

3.1 概述

图2说明了我们的整体结构。我们将原始点云编码为一些全局特征,这些特征将被作为输入到拟议的SceneEncoder模块(图2(a))。这个模块的输出,即预测的场景描述符,将被用来与每个点的分类概率向量进行逐点相乘,从而排除不可能的类别选项,得到最终的预测结果。此外,在训练过程中,我们从特征图中选出M个被正确分类的区分点及其相应的特征。然后,我们定义了一个区域相似性损失(图2(b)),通过提高每个区分点和其具有相同标签的相邻点之间的特征相似性来传播区分特征。

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_ide

图2:我们网络的整体结构。(a)代表SceneEncoder模块,其中预测的描述符被精心设计的场景描述符直接规范化并帮助最终分割。(b)代表区域相似性损失,其中区别性特征有助于完善其他模糊的特征。

3.2 场景编码器模块

全局信息可以为点级分类器提供一个自上而下的指导。为了充分利用全局信息作为场景的先验知识,我们提出了一个SceneEncoder模块,该模块有一个精心设计的多热点场景描述符,以加强全局信息在语义理解中的作用。这个描述符能够替代全局性的场景标签,并在对每个点进行分类时起到屏蔽/注意的作用,以消除不可能的结果。

多热点场景描述符。由于场景的识别可以直接影响点级语义分割的结果,我们建议使用场景描述符来表示全局场景信息。对于有n个物体类别的场景语义分割任务,我们设计了一个长度为n的多热向量,每个元素代表点云中相应类别存在的概率。具体来说,让表示预测的描述符,如果第i个类别不存在于这个点云中,这个描述符的第i个元素将为0。然后,在语义分割中,我们可以对输出结果应用softmax,得到分类概率图,其中N表示点的数量,n是类别的数量,表示点i属于类别j的概率。为了使场景描述符直接指导语义分割,我们直接将概率图与预测描述符相乘,得到如下精炼概率图。

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_描述符_02

其中

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_ide_03

是最终预测的i点属于j类的概率,

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_ide_04

表示整个场景中j类存在的概率。

这样,全局信息通过过滤掉不可能的结果,在语义分割中起到了重要的、必不可少的先验知识作用。显然,具有相同描述符的两个场景很可能是同一类型的场景,这使得我们的描述符能够替代场景标签。此外,与人工标注的标签相比,我们的场景描述符可以根据物体的构成对每个场景进行细分,提供更具体的全局信息。

场景描述符的监督。与SpiderCNN[Xu等人,2018]在训练和测试期间都需要全局标签的地面真相相比,我们通过SceneEncoder模块生成场景描述符。为了有效地训练SceneEcoder模块,我们对预测的场景描述符进行正则化处理,而不是手动标注每个场景描述符g的地面真相,我们在训练过程中根据点云中所有点的标签即时生成。请注意,场景描述符的基础真值是一个长度为n的二进制矢量,每个元素代表这个场景中存在相应的类别。因此,通过检查所有点的标签,我们可以很容易地确认哪些类别出现在这个点云中。然后,正则化的方法如下。

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_描述符_05

在训练阶段,SceneEncoder模块可以通过将全局信息编码到场景描述符中来学习表示每个场景的类型。至于验证和测试过程,场景描述符可以由训练有素的SceneEncoder模块预测,并通过公式(1)直接帮助点级预测。

3.3 区域相似性损失

与全局信息相比,局部细节有助于对复杂场景进行归纳。然而,在特征聚合过程中,以前的工作忽略了每个局部环境中具有不同标签的点之间的差异。这种标签的不一致性将导致点特征的区分能力不足。因此,在分割结果中通常会出现较差的轮廓线和噪声区域。因此,我们提出了一种新的基于区域的损失来传播局部区域的区分性特征,从而使那些具有相同标签的邻居的非区分性特征可以被重新处理

区分性特征的选择。与中间层的特征相比,最后一层的点特征编码了更多的局部和全局信息,并直接影响分割结果。因此,我们提出的损失直接细化最后一个特征抽象层的点特征

如图2所示,为了选择可区分的点特征,我们首先选择一组正确分类的点P。然后,在这些点中,我们分析了两种策略来选择固定数量的点M。第一种策略是随机选择,而第二种策略是从P中挑选分类置信度最高的M个点。然而,第一种策略过于随意,所以一些正确分类的低置信度的点也可能被选中,导致纳入不可区分的特征。

相比之下,第二种策略更为合理,这将在第4.3节中得到证实。在实践中,如果正确分类的点的数量少于给定的数量M,这通常发生在训练过程的开始,具有最高分类置信度的点特征被重复采样。

特征调整。基于选定的区分点特征,我们调整其他特征以提高其区分能力。首先,由于不同类别的点应该有不同的特征,我们只对同一类别的点传播区分性特征。然后,我们通过减少每个区别性特征和其局部邻域而不是整个场景中的点的特征之间的差异来实现特征传播。因为在大多数情况下,相距较远的点的特征很可能是不相似的,即使它们属于同一类别。如果我们强行减少两个特征之间的差异,但其对应的点却相距甚远,这将阻碍特征抽象层学习正确的点特征,使深度网络难以训练。

因此,如图2(b)所示,我们利用带标签的KNN策略来选择同一类别的相邻点并只在相应的邻域传播每个区分特征。具体来说,对于每个具有区分特征的点,其具有相同标签的k个最近的邻居被调整。为了最小化每个邻接点特征和中心区分点特征之间的差异,我们使用余弦相似度来定义区域相似度损失,如下所示:

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_描述符_06

其中M是区分点特征的数量,k是所选邻接点的数量。 和分别是中心点和邻接点的特征。

除了余弦相似性之外,欧氏距离也可以作为一种距离测量。然而,它对每个点特征的每个维度的值很敏感,降低了损失的泛化能力。相反,余弦相似性可以使我们提出的损失对不同尺度的点云更加稳健。

3.4 总损失

总之,总损失函数由三部分组成。Lcls是用于约束点级预测的交叉熵损失。Ldes被定义在公式(2)中,以提高SceneEncoder模块的性能。此外,Lrs是提议的区域相似性损失,以提高点特征的区分能力,如公式(3)。因此,总的损失函数如下:

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_点云_07

其中λ1、λ2和λ3调整三个损失的比例。在训练过程中,我们抑制了从Lcls到的梯度反向传播,也就是防止场景描述符被Lcls规范化。因为,Lcls是一个点级的分类损失,而我们的场景描述符是一个全局描述符,这将降低训练性能。在我们的实验中,λ1和λ2的设置是相同的,但是我们在训练过程中动态地改变λ3。在训练过程的开始阶段,所选择的特征没有足够的区分度,所以对其他特征的影响应该被弱化。因此,我们在开始时给λ3分配一个小的权重,然后逐渐增加权重,直到它与λ1和λ2相同。在测试过程中,我们不再生成场景描述符的ground truth。

4 实验

实验由三部分组成。首先,我们在第4.1节中证明了我们的方法在语义分割任务中的有效性。其次,我们将我们的方法推广到部分分割,并在第4.2节中证明其在部分分割上的有效性。最后,我们在第4.3节中进行了消融研究以证明所提出的SceneEncoder模块和区域相似性损失的有效性。

衡量标准。和以前的工作一样,我们采用交叉联合(IoU)作为我们的衡量标准,即语义分割任务的平均IoU超过类别,部分分割任务的类平均IoU和实例平均IoU。

4.1 场景语义分割

数据集。我们在ScanNet v2[Dai等人,2017]上评估了场景语义分割任务的性能。ScanNet v2包括1201个扫描场景用于训练,312个场景用于验证。另有100个场景被提供作为测试数据集。与之前大多数同时使用几何和颜色信息的工作不同,我们只将几何信息(即xyz)作为输入。

实施细节。我们将SceneEncoder模块插入PointConv[Wu et al., 2019],其中最后一层的点特征在训练过程中被我们的区域相似性损失规范化。按照[Wu et al., 2019],训练样本是通过从房间中随机抽取3m×1.5m×1.5m的立方体产生的,然后我们在整个扫描中进行测试。网络是通过使用Adam优化器在单个GTX 1080Ti GPU上以批量大小8进行训练的。

结果。我们在表1中报告了不同类别的平均IoU(mIoU),其中可以观察到比骨干网(PointConv)明显的改进,即7.2%的mIoU,而且我们的方法在ScanNet基准中取得了最先进的性能。如前所述,我们只把位置信息作为我们的输入,它也比很多使用额外颜色信息的方法表现得更好。图3是PointConv[Wu et al., 2019]和我们的方法的场景语义分割结果的可视化。

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_ide_08

图3:ScanNet上语义分割的可视化结果。从左到右的图片是原始场景、分割的基本事实、PointConv和提议的方法分别给出的预测结果。

4.2 部件分割

同样地,我们的方法也可以提高部件分割的性能。在以分割每个物体的功能部分为目的的部件分割任务中,我们可以将每个物体视为整个场景点云,而每个物体的部件可以被视为场景中的不同物体。因此,为了确认其泛化能力,我们对我们的方法进行了部分分割的评估。

数据集。我们在ShapeNet零件数据[Chang等人,2015]上评估性能。ShapeNet零件数据由16个类别的16,881个点云组成,总共包含50个零件,xyz和规范向量被作为输入。

实施细节。我们仍然选择PointConv作为基线,并将我们的方法融入其中。我们直接将原始点云作为输入,而不进行预处理。采用Adam优化器在单个GTX 1080Ti GPU上用我们的区域相似性损失来训练模型。

结果。我们在表2中报告了部分分割的类平均IoU(mcIoU)和实例平均IoU(mIoU)。在mcIoU方面,比PointConv增加了0.6%,这表明所提出的方法在部分分割方面有很大的潜力。总的来说,对场景语义分割任务和部分分割任务的改进显示了我们方法的通用性。然而,即使在mcIoU上有明显的改进,在mIoU上也没有什么增加,见表2的最右边一栏。原因可能是:目标场景描述符对相同类别的实例非常相似,而预测场景描述符能够学习一个类别的模式,但不善于区分实例之间的细微差别。一些结果的可视化显示在图4中。

论文阅读:SceneEncoder: Scene-Aware Semantic Segmentation of Point Clouds with A Learnable Scene Descript_点云_09

图4:ShapeNet上零件分割的可视化。对于每一对物体,左边的是基础事实,右边的是预测结果。

4.3 消减研究

为了证明场景描述符可以描述全局信息并替代全局类别标签,我们以SpiderCNN[Xu et al., 2018]为骨干在ShapeNet上进行了实验,因为它直接采用了类别标签。然后,在不丧失一般性的情况下,我们在ScanNet上对语义分割任务进行了更多的消融研究,并选择PointConv作为基线。

SceneEncoder模块与类别信息。对于零件分割来说,类别标签并不总是可用的,而对于场景语义分割来说,甚至很难给一个场景打上标签。相比之下,我们的SceneEncoder模块学会了用从点云中提取的场景描述符来表示全局信息,即使没有类别标签的额外信息。为了显示场景描述符在代表全局信息方面的有效性,我们以SpiderCNN为骨干,对不同的组合进行了消融研究。[Xu等人,2018]发布了带有类别信息的SpiderCNN的结果,我们在相同的设置下进行了三个额外的实验,即没有类别信息的SpiderCNN,带有SceneEncoder模块的SpiderCNN,以及既有类别信息又有SceneEncoder模块的SpiderCNN。如表3所示,带有SceneEncoder模块但没有类别信息的SpiderCNN与只有类别信息的SpiderCNN表现一样好。因此,这表明场景描述符也可以代表全局信息并替代全局类别标签。此外,与[Xu et al., 2018]相比,结合SceneEncoder模块和类别标签可以使类的平均IoU增加0.7%。这一结果说明,SceneEncoder可以增强全局信息的效果。

SceneEncoder模块和区域相似度损失。为了评估SceneEncoder模块和区域相似性损失的影响,我们在ScanNet上进行了两个实验。首先,我们在PointConv中插入我们的SceneEncoder模块,在没有区域相似性损失的情况下训练模型。第二,我们在没有SceneEncoder模块的PointConv训练过程中引入区域相似性损失。结果如表4所示,我们可以看到SceneEncoder模块和区域相似性损失可以单独提高性能。两者的结合可以更好地处理全局特征和局部特征,从而进一步大幅提高PointConv的性能。

区域相似性损失的选择策略。为了证明我们对区分点特征的选择策略的有效性,我们设计了实验来研究使用另一种选择策略的区域相似性损失的性能。也就是说,我们在正确分类的点中随机选择区分点的特征。如表5所示,选择高置信度的区分点特征可以帮助提高2.5%的mIoU,这证明了我们提出的选择策略的有效性。

5 结论

在本文中,我们提出了一种带有SceneEncoder模块和区域相似度损失的场景感知语义分割方法。SceneEncoder模块充分利用全局信息来预测一个场景描述符,这个场景描述符可以通过过滤掉不可能的结果来帮助点级的语义分割。为了进一步完善分割的轮廓,我们提出了区域相似性损失,通过强迫每个局部区域中具有相同标签的点具有相似的最终特征来传播区分的特征。总的来说,所提出的方法在ScanNet数据集的语义分割和ShapeNet数据集的部分分割上达到了最先进的性能。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
wh9rG0UkdQJu