SemAffiNet: Semantic-Affine Transformation for Point Cloud Segmentation
SemAffiNet: 用于点云分割的语义-Affine转换
摘要
传统的点云语义分割方法通常采用编码器-解码器结构,其中中间层特征被局部聚合以提取几何信息。然而,过度依赖这些分类的局部几何表征,可能会在外观相似或空间相邻的不同类别的局部之间产生混淆。为了解决这个问题,我们认为中层特征可以用语义信息进一步增强,并提出了语义模糊转换,用特定于类别的仿射参数来转换属于不同类别的中层点的特征。基于这种技术,我们提出了用于点云语义分割的SemAffiNet,它利用Transformer模块中的注意机制,隐含地和显式地捕捉局部部分中的全局结构知识,以便对每个类别进行整体理解。我们在ScanNetV2和NYUv2数据集上进行了广泛的实验,并在各种三维点云和二维图像分割基线上评估了语义-affine转换,定性和定量的结果都证明了我们提出的方法的优越性和通用能力。
1.引言
点云语义分割是计算机视觉中结构表示学习[11, 47, 59]和立体场景理解[15, 28, 51]的一项基本任务。它的目的是根据点云布局中继承的构象和几何知识,将场景空间划分为有语义的区域。它在自动驾驶、机器人操作和虚拟现实中的成功应用一直激励着研究人员开发更精细、更精确的解决方案。
最近的点云分割方法通常采用编码器-解码器架构作为图像语义分割[4, 6, 7, 53, 72],范围从基于体素的[11, 20, 55, 70, 74]到基于点的[35, 48, 57, 63]。尽管编码器-解码器结构很受欢迎,但仍然存在图1所示的局部混淆问题。一方面,存在着来自不同类别但形状相似的局部零件,例如椅子和桌子的相似腿。另一方面,相邻的局部部位在输入空间中混合在一起,在分割过程中可能混淆模型,留下模糊的分割边界。原因有两个方面:在特征处理过程中大量使用局部聚集,以及中层特征的类别诊断性质。在常用的编码器-解码器结构中,解码器的中层特征是通过卷积或集合抽象进行局部聚合的。感受野的限制对视觉上相似的局部区域产生相似的特征向量,而聚合操作导致空间上相邻的局部区域产生纠缠的中层特征。因此,只使用几何信息是不够的,编码器-解码器结构需要更多的知识来分离相似和纠缠的局部表征。这个问题的一个可能的解决方案是减轻对几何知识的依赖,引入额外的语义信息来丰富中层特征。然而,大多数现有文献未能在编码器-解码器架构的网络设计中充分利用语义知识,因为语义注释大多用于数据增强[8,45,68]或对最终预测的监督[47,48,59]。因此,来自中间层的中层特征只是通过梯度下降进行隐性或弱监督,使得它们几乎是不分等级的。
为了解决局部混淆问题,我们提出了 “Semantic-Affine变换”(Semantic-Affine Transformation),用编码语义信息的特定类别Affine参数来变换中层解码器特征,明确地将同一类别的特征拉近,将不同类别的特征推开。通过这种方式,我们增强了中层特征的语义表示能力,提高了语义分割的性能。基于所提出的Semantic-affine转换,我们设计了一个名为SemAffiNet的语义感知网络,并引入Transformer[58]来隐式和显式地管理语义信息。Transformer编码器通过自我注意技术隐性地在不同的模式间交流几何信息,而Transformer解码器中对类别查询的特殊设计则通过交叉注意机制进行显性的语义感知推理来预测Semantic-affine参数。我们在ScanNetV2[14]数据集上进行了广泛的实验,其表现优于之前最先进的BPNet[27]基线。我们还在NYUv2[44]数据集上进行评估,以验证SemAffiNet模型的泛化能力。作为SemAffiNet的核心,所提出的Semantic-affine变换在各种设置下对三维点云和二维图像分割基线进行了评估,揭示了所提出的变换的泛化能力。
总之,我们的论文的贡献可以概括为以下几点。
(1)我们提出了Semantic-Affine变换,以增强编码器-解码器分割架构中中间层特征的语义表示能力。
(2)我们提出SemAffiNet,通过Transformer模块的特殊设计,显性和隐性地进行语义感知的分割。
(3)我们在不同的设置下对各种数据集进行了实验,揭示了我们方法的优越性和泛化能力。
2.相关工作
点云语义分割。现有的点云语义分割方法可分为四类:基于体素、基于点、基于投影和混合模型。基于体素的方法旨在将三维空间划分为有序的体素,并将二维卷积编码器-解码器架构转化为三维条件,由VoxNet[41]主导。后来的研究解决了沉重的时间成本和内存成本,包括稀疏卷积[11, 20]、有效的数据结构迁移[33, 52]和新型体素化技术[55, 70, 74]。基于点的方法直接处理点并聚集局部信息,而不是使用传统的常规卷积核,以PointNet[47]和PointNet++[48]为代表。现在,基于点的方法已经成为点云认知任务的主流,并已发展成许多分支,包括基于MLP的[16, 18, 26, 47, 48],基于卷积的[35, 57, 63, 64]和基于图的[34, 59]的后验。基于投影的方法大多是为高效处理而设计的,包括图像投影[1,13]和球面投影[2,43,61,62]。混合方法是更复杂的系统,结合了不同的处理方法或融合了不同的模式信息。一些方法结合了基于体素的方法的长程关联和基于点的方法的细致细节[10,38,56,66],而其他方法则融合了二维和三维知识[27, 50]。
语义识别的分割。由于语义信息对分割任务至关重要,一些作品精心设计了特殊的语义感知方法来提高语义分割的性能[19, 40, 49]。一些方法旨在对同类别对和不同类别对之间的上下文关系进行不同的推理。用于图像分割的DependencyNet[36]在三个语义层面统一了依赖关系的推理:类内、类间和全局。用于点云分割的CGANet[40]利用同一类别和不同类别之间的不同聚合策略。其他方法提出了多尺度监督来实现全面的语义指导。在二维视觉中,CPM[60]周期性地引入了中间监督,而MSS-net[31]提出了分层损失。在三维视觉中,RFCC[19]提出了对解码器各层的全监督(omnisupervision)。
与上述方法不同的是,我们的方法通过对中层特征的语义-affine转换实现了全面的语义感知。因此,我们不需要增加模型规模的不同聚合模块。此外,我们对中间层的语义指导比单纯的多级监督要强。
分割的转化器。Transformer[58]在许多计算机视觉任务中取得了巨大的成功,如分类[17, 37]、检测[5]和重建[67]。最近的工作采用了Transformer中的注意机制,利用长距离的关联来进行更深入的上下文理解和更好的分割结果[21, 71, 73]。Maskformer[9]提出了一个掩码分类模型,利用Transformer来预测二进制掩码,并将语义和实例级的分割统一起来。SOTR[22]提出基于Transformer注意模块动态生成实例分割掩码。
虽然我们在SemAffiNet中利用了与Maskformer类似的掩码分类结构,但我们将这一想法从二维图像处理迁移到三维点云理解,这并非易事。此外,我们提出了语义转化,以进一步加强掩模分类管道,根据我们的消融研究,这比掩模分类带来更多的进展。
3.方法
在下面一节中,我们将首先在第3.1节中对拟议的SemAffiNet进行概述。然后,我们将介绍架构的细节,在第3.2节中介绍拟议的语义仿射转换,在第3.3节中揭示我们如何将其包装成一个即插即用的显式语义感知模块,并在第3.4节中介绍辅助的隐式语义感知模块。最后,我们将在第3.5节中介绍损失函数的设计。
3.1.概述
我们精心设计了SemAffiNet,以对传统的编码器-解码器模型的中层特征进行语义-affine转换。图2显示了整体架构,它可以分为以下三个部分:(1)骨干网,(2)显式语义感知模块(ESAM),(3)隐式语义感知模块(ISAM)。
首先,SemAffiNet的主干选择很灵活,我们提出的模块可以很容易地添加到任何编码器-解码器的分割架构中。我们选择BPNet[27],它由二维和三维模式的两个编码器-解码器分支组成,以评估我们提出的语义转换。更多细节请参考BPNet论文或我们的补充材料。
图2. 所提议的网络架构的说明。(a)显示了SemAffiNet的管道,它由两个骨干分支(灰色)、一个隐式语义感知模块(ISAM,深蓝色)和两个显式语义感知模块(ESAM,浅蓝色虚线方形)组成。此外,ESAM由一个Transformer解码器和一个Semantic-Affine转换模块组成,这在(b)中进一步说明。我们计算特定类别的仿生参数的加权和,以获得中层点的语义-仿生参数,中层分类置信度作为线性组合权重。
最重要的是,ESAM将我们提出的语义转换包装成一个即插即用的模块,通过专门设计的Transformer解码器明确利用中层特征中的语义信息。如图2所示,我们采用浅蓝色破折号方块的两个ESAM模块,分别管理来自不同领域的语义知识。Transformer解码器利用交叉注意力机制来获得长距离的依赖关系,以获得更好的语义感知,而下面的Semantic-Aware Transformation Module则用特定类别的仿生参数来转换骨干解码器的中层特征,以扩大跨类别的语义区别。
最后但并非最不重要的是,ISAM利用Transformer编码器中的自我注意机制来增强骨干编码器的输出和ES服务器托管网AM的输入的高级特征。拟议的ISAM融合了多模态信息,实现了隐性语义意识。
3.2.Semantic-Affine转换
由于Semantic-Affine转换是我们论文的关键贡献,我们将在这一小节中首先介绍其概念和技术细节。其核心思想是预测每个类别的Semantic-Affine参数,然后根据其分类预测来确定每个点的仿生参数。
假设有N个类别,第i层的中层特征的形状是
,表示第i层有个点,每个点由一个特征向量表示。根据第3.3节,我们可以预测第i层的每个点的类别,并得到一个分类置信度向量,
其中表示第i层的点属于类k的置信度。同时,我们对第i层的每个类的Semantic-Affine参数进行回归,包括比例因子和偏移偏见。关于这些语义感知参数的学习过程的进一步技术细节可以在第3.3节中找到。
然后,我们可以通过基于每点分类置信度向量的仿生参数族的线性组合,获得第i层每个点的语义特定仿生参数:
一旦用零均值和单位协方差进行归一化,
可以通过Semantic-Affine变换进一步增强,得到语义感知的中间层特征,用来替代fj:
注意,我们实施的是软性Semantic-Affine参数分配,它引入了线性组合,而不是将搜索空间限制在s、b的精确值之内的硬性组合。换句话说,硬分配策略只考虑类别预测的最高信心分数,并相应地选择确切的仿生参数。原因是中层点是其本身及其相邻的下层点的聚合结果,而相邻的点可能与中心查询点的类别不同。因此,当中层点在下层的对应补丁位于边缘时,中层点pi可能代表多个类别。我们将在第3.5节进一步讨论这个问题。
我们在图3中说明了Semantic-Affine转换的原理。(a)中不同类别的点的原始表征是相互纠缠在一起的。然后,我们训练一个网络来捕捉不同类别之间的标度和偏向的基本区别,如(b)所示。然后,我们用语义参数来表达这些区别,这些参数在(c)中显示为箭头方向。最后,在(d)中,语义-阿芬变换明确地将具有类似类别分布的中层特征向类似的尺度和偏移转化,从而将它们拉近。相反,对于具有独特类别分布的中层特征,它们在尺度和偏移上的差异将它们进一步拉开。
根据上面的讨论,语义-affine转换的最重要的前提条件有两个方面。第一个是一个精确的类别预测器,预测中层点的准确类别分布。第二个是一个强大的语义感知模块,为每个类别回归有代表性的仿生转换参数。在第3.3节中,我们表明这两个先决条件可以由一个多层变换器解码器来满足。
3.3.显式语义感知模块
我们的目标是将上文介绍的语义感知转换的可学习参数包装成一个即插即用的模块,可以在大多数编码器-解码器式语义分割架构中实施。我们提出了一个显式语义感知模块(Explicit Semantic-Aware Module,ESAM),作为一个多层Transformer解码器模块,来共同明确地推断语义类别掩码和语义仿生参数。Transformer解码器中的交叉注意。ESAM的输入是高级特征,它是骨干编码器的输出。特别是,我们设计了N个可学习的类查询来查询语义上的特定知识。然后,ESAM的每一层利用注意力机制来推理的语义信息:
其中是缩放系数,Q、K、V是查询、键和值矩阵。我们采用类查询作为Q,而K、V是的映射嵌入。从ESAM的每一层中,我们可以得到阶级特定的特征的维度,这些特征同时编码了来自的阶级语义知识和来自的场景几何知识。
Semantic-Aware参数。基于ESAM的多层Transformer解码器架构,我们利用ESAM中层的中间输出来计算骨干解码器中层的语义参数:
其中1≤k≤N表示类k,骨干解码器中层i和ESAM中层u之间有一个一一对应的、保留次序的映射。其原理是利用较深的ESAM层u的输出特征来计算较深的骨干解码器层i的Semantic-Aware参数。请参考补充材料,了解i和u之间的详细对应关系。
语义类掩码。用于N类每点分类的分割掩码M 是通过ESAM第一层的输出计算的:
。然后我们对类掩码和每点特征实现点乘,计算出置信矩阵,其中表示骨干解码器第i层的点属于类k的置信度,在3.2节中得到利用。
请注意,在传统的按点分割方法中,如FCN[39]或编码器-解码器式架构UNet[53],来自解码器最后一层的每点特征由MLP块作为分割头进一步处理,以获得每点类别预测。然而,我们不是通过全连接层线性组合通道值来预测类置信度,而是用每点特征实现上述掩码预测和点生产,对中层和最终点特征进行分类。预测类掩码的优势有两个方面。一方面,类掩码具有更清晰的解释意义。每个掩码代表类k的综合特征,和点特征之间的点积衡量点和类的相似性。因此,该点被归入其最相似的类别。另一方面,类掩码可以更灵活地实施,以预测中层点的类别。一旦得到M,点乘运算比MLP的正向计算更轻便。因此,类掩码预测更适合与我们提出的Semantic-Aware转换相结合。
总之,ESAM通过一个带有可学习的类别查询的多层Transformer解码器,明确地预测语义类别掩码和Semantic-Aware参数。每个类别查询代表一个类别,并查询场景几何表示中的特定类别信息。然后,语义类掩码被用来执行更灵活和轻量级的每点分类,而Semantic-Aware参数被应用于骨干解码器的中层特征转换。
3.4.隐式语义感知模块
除了ESAM在Transformer解码器中通过专门设计的可学习类查询显式地解释语义信息外,我们还设计了ISAM来隐式地利用和融合来自多模式的语义知识。
在我们的实现中,二维高级特征和三维高级特征被串联起来,形成混合的Transformer编码器输入。然后通过对输入的混合特征进行三种不同的线性变换来获得查询、键和值矩阵。因此,方程(3)中的自我注意计算是在模式间和模式内进行的,以获得更具代表性的高级特征和。一方面,模态内的自我关注是由于来自同一模态的局部部分之间的长距离依赖,将全局信息附加到局部部分特征上。另一方面,模态间的自我注意捕捉不同模态的部分之间的相似性,创建软对应关系,并将来自其他模态的知识合并到本地特征中。因此,ISAM的输出特征既获得了远距离的全局知识,又获得了多模态的信息,使其更加稳健和更具代表性。因此,隐性语义意识是通过域内和域间的自我关注来实现的,其中与键的语义相似度更高的查询对更新值矩阵贡献更大。
3.5.损失函数
按照传统的监督性分割方法,我们使用交叉熵损失来进行虚构的二维每像素分割和三维每点分割。此外,由于我们在骨干解码器中预测了中层点的类别标签,我们为中层分割计算了二进制交叉熵损失。为了获得骨干解码器的中层基础真相,我们设计了ShadowNets来追踪其对应的骨干编码器中的stride操作。如图4所示,编码器中的stride操作将第i层的局部补丁内的点聚合成第i + 1层的元点。假设点的单热标签是,那么我们的影子网就会给元点分配多热标签,该标签记录了下层i的对应补丁中所有点的标签:
这样一来,多热的地面真实标签就代表了中层的点的类别分布。
4.实验
在这一节中,我们在各种数据集上进行了广泛的实验,以验证所提出的Semantic-Aware转换和SemAffiNet架构的优越性,计算类的平均交集大于联合(mIoU)作为评价指标。在第4.1节中,我们将介绍SemAffiNet的定量和定性结果,并与以前的作品进行比较。然后在第4.2节中,我们将在不同的条件下,在三维点云和二维图像分割基线上实现语义-affine转换,以证明其通用能力。此外,在第4.3节中,我们将提供消融研究,以证明每个拟议模块的有效性。最后,在第4.4节中,我们将讨论我们提出的方法的局限性。此外,包括数据集介绍和实施细节的实验设置可以在补充材料中找到。
4.1.主要结果
按照BPNet[27],我们在ScanNetV2上进行了语义分割实验,在验证集上评估了2cm和5cm的体素设置。定量结果显示在表1中。在5cm设置下,SemAffiNet在3D mIoU和2D mIoU指标上分别比BPNet基线高出1.5%和3.1%。在2cm设置下,SemAffiNet在3D和2D分割结果上分别比BPNet高出2.0%和1.5%。我们还超越了以前其他以点云为输入的三维语义分割方法[11, 19, 20, 45, 48, 57, 63, 65]或以点云和辅助的二维图像为输入的方法[30, 69]。
除了ScanNetV2主要关注三维点云的分割,我们还在NYUv2[44]数据集上进行了实验,该数据集由RGB图像和相应的深度图组成。我们根据摄像机的姿势将深度图像转换为伪点云,并采用SemAffiNet。按照BPNet[27],我们采用了13类配置,并报告了致密像素的分类精度。实验结果如表2所示,我们的SemAffiNet在很大程度上优于那些基线,这验证了它的优越性。
定量结果显示在图5中。从第一条线的例子来看,我们的SemAffiNet能够识别BPNet基线未能正确分割的微妙的椅子横梁。从第二行的例子来看,我们的SemAffiNet正确地分类了与椅子视觉上相似的其他家具物体。从这些定性的结果中,我们可以证明SemAffiNet比BPNet基线的优越性。一方面,它有能力识别容易与背景混淆的细微局部。另一方面,它可以正确地对那些在视觉上与其他类别相似的物体进行分类。
4.2.Semantic-Affine变换的效果
除了SemaffiNet架构,我们还通过将语义-阿芬变换包装成即插即用模块ESAM并将其插入各种三维点云和二维图像编码器-解码器分割基线,对其进行独立评估。点云方法可以进一步分为基于体素和基于点的方法。
对于基于体素的三维分割方法,鉴于其效率和高性能,我们选择MinkowskiNet[11]作为基线。我们在5cm和2cm体素化设置下对ScanNetV2[14]验证集进行语义分割,结果显示在表3的前两行。通过将ESAM插入MinkowskiNet,我们在3D mIoU结果上达到了更高的性能。
对于基于点的三维分割方法,我们选择KPConv[57](刚性)作为基线,因为它是最经典的基于点的方法之一,并且在最近发表的许多论文中被分析为基线[19, 45]。我们在S3DIS[3]数据集上进行语义分割,结果显示在表3的第三行。定性结果证明了ESAM所做的改进,说服了基于体素和基于点的点云分割方法上的语义-阿芬变换的泛化能力。
对于二维图像分割方法,我们选择经典的SemanticFPN[32]作为基线,实施ResNet-50和ResNet-101设置。我们在Cityscapes[12]数据集上进行语义分割,结果显示在表3的最后两行。定量结果表明,所提出的ESAM不受三维领域的限制,并在不同的设置下带来了对二维分割基线的一致改进。
4.3.消服务器托管网融研究
为了衡量每个SemAffiNet模块的贡献,我们在ScanNetV2验证集的5cm设置下进行了消融研究。ESAM可以分为两部分:多级分割和Semantic-affine转换(SA)。对于多级分割,除了最终级分割(F.),我们还逐步增加了中级分割(M.),并用掩膜分类器(M)取代全连接分类器(FC)。ISAM模块融合了多模态信息(Fuse)。消融结果显示在表4中,我们得出结论,每个模块都对整体进展做出了自己的贡献,其中Semantic-affine转换是最有效的一个。
除了对SemAffiNet的子模块进行消融,我们还通过用Adaptive Instance Normalization(AdaIN)[29]代替它来进一步探索Semantic-affine转换的优越性,其affine参数完全是通过梯度下降学习的,缺乏明确的语义指导。对比表4中的e、f、g行,AdaIN(f行)与普通的Batch Normalization(e行)相比没有什么改进。然而,Semantic-affine转换(g行)产生了更大的进步。
此外,我们还对二维视图(VN)的数量进行了消融实验。根据a、b行,在BPNet[27]基线上增加视图并没有带来更好的结果,而是增加了计算负担。原因可能是在处理3个视图时,网络的潜力已经耗尽。然而,根据我们的实验(第h行和第i行),当视图数从3个增加到5个时,我们的SemAffiNet在三维语义分割上表现更好。实验结果表明,我们的SemAffiNet揭示了更多的语义知识,具有更大的潜力。
4.4.局限性
尽管所提出的Semantic-affine转换是一种通用的表示学习技术,以提高点云特征的语义认知能力,但在更广泛的点云理解任务中迁移和执行它是一个非难的问题。由于我们需要对中层点进行每点监督,因此在无法获得每点注释的情况下,我们需要开发弱监督或无监督的学习技术。
5.结论
在本文中,我们提出了Semantic-affine变换,将骨干解码器的中层特征明确地映射到更多的语义不同的嵌入中。基于这一技术,我们建立了一个语义感知的分割网络SemAffiNet。ESAM明确地预测类掩码,并通过Transformer解码器对Semantic-affine参数进行回归,同时ISAM通过自我注意机制融合多模式信息。我们在ScanNetV2数据集上对SemAffiNet进行了实验,其表现优于之前最先进的BPNet。我们还证明了Semantic-affine转换的通用能力,将其包装成一个即插即用的ESAM,并在各种设置下对3D点云和2D图像分割基线进行评估。我们相信,鉴于其简单的实现和合理的见解,Semantic-affine变换将推动社区中的相关工作。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
1 理论知识 1.1 分库分表是否必要 分库分表确实可以解决单表数据量大这个问题,但是并非首选。因为分库分表至少引入了三个必须解决的突出问题。 第一是分库分表方案本身具有的复杂性。第二是本地事务失效问题,原本在同一个数据库中可以保证强一致性业务逻辑,分库之后事…