Contrastive Boundary Learning for Point Cloud Segmentation (CVPR 2022)
代码地址:https://github.com/LiyaoTang/contrastBoundary
1、背景
对点云进行语义分割是对3D世界理解的前提,鲁棒的3D分割对于各种应用非常重要,包括自动驾驶、无人机和增强现实。过往几期的分享中,大家往往关注于不同目标的分离,但很少关注3D点云的边界。目前的3D点云分割方法通常在场景边界上表现不佳,这会降低整体分割的性能。场景边界上的准确分割非常重要。首先,清晰的边界估计可能有利于整体分割性能。例如,在2D图像分割中,边界上的准确分割是生成准确mask的关键。另一方面,对于占据场景中大部分3D点的对象类别,例如建筑物和树木,错误的边界分割可能会在更大程度上影响对具有更少点的对象类别的识别(例如,行人和柱子分割),这个现象在实际应用是更加凸显。这对于自动驾驶等应用尤其危险,例如,如果自动驾驶汽车无法准确识别边界,则会撞到路边。
大多数以前的3D分割方法通常忽略了场景边界的分割。尽管一些方法考虑了边界,但它们仍然缺乏明确和全面的研究来分析边界区域的分割性能。它们在整体分割性能上的表现也不尽如人意。特别是,当前流行的分割指标缺乏对边界性能的具体评估,这就使得现有方法无法更好的展示边界分割的质量。为了更清楚地了解边界的性能,本文中作者分别计算了边界区域和内部(非边界)区域的mIoU。通过比较不同区域类型的表现以及整体表现,直接揭示边界区域的不理想表现。
此外,为了更全面地描述边界上的性能,作者考虑了GT中边界与模型分割结果中的边界之间的对齐。提出了一种新颖的对比边界学习(Contrastive Boundary Learning,CBL)框架,以更好地将模型预测的边界与真实数据的边界对齐。如图1所示,CBL优化了边界区域点的特征表示模型,增强了跨场景边界的特征识别。此外,为了使模型更好地了解多个语义尺度的边界区域,作者设计了一种子场景边界挖掘策略,该策略利用子采样过程来发现每个子采样点云中的边界点。具体来说,CBL在不同的子采样阶段进行操作,并促进3D分割方法来学习更好的边界区域周围的特征表示。
图1 对比边界学习(顶部)通过子采样过程从每个子采样点云(即子场景)中发现边界。通过在多个尺度上对边界区域进行对比优化,CBL增强了跨边界的特征识别(中)。在没有明确的边界预测的情况下,CBL改进了边界分割并获得了更好的场景分割结果(下)。
本文主要贡献如下:
(1) 探索了当前3D点云分割中存在的边界问题,并使用考虑边界区域的指标对其进行量化。结果表明,目前的方法在边界区域的准确性比它们的整体性能差得多。
(2) 提出了一种新颖的对比边界学习(CBL)框架,它通过对比场景边界上的点特征来改进特征表示。因此,它提高了边界区域周围的分割性能,从而提高了整体性能。
(3) 通过全面的实验证明CBL可以在边界区域以及所有baseline的整体性能上带来显着且一致的改进。这些实验结果进一步证明了CBL对提高边界分割性能是有效的,准确的边界分割对于鲁棒的3D分割很重要。
2、核心思想
A.边界分割:
由于当前大部分工作都集中在改进一般指标,例如mean intersection over union(mIoU)、overall accuracy(OA)和mean average precision(mAP),点云分割中的边界质量通常被忽略。与最近的边界相关工作仅给出边界的定性结果不同,作者引入了一系列用于量化边界分割质量的指标,包括mIoU@boundary、mIoU@inner和来自2D实例分割任务的边界IoU(B-IoU)分数。
基于ground-truth数据,如果在其邻域中存在具有不同注释标签的点,作者将其视为边界点。类似地,对于模型预测,如果附近存在具有不同预测标签的点,也将这个点视为边界点。这里将点云记为X,第i个点记为xi,其局部邻域为Ni=N(xi),对应的GT标签为li,模型预测标签为pi。将GT中的边界点集定义为Bl,预测分割中的边界点集定义为Bp,有:
这里按照惯例将Ni设置为半径为0.1的半径邻域。
为了检查边界分割结果,一种直观的方法是计算边界区域内的mIoU,即mIoU@boundary。为了进一步比较模型在边界和非边界(内部)区域的性能,作者进一步计算了内部区域的mIoU,即mIoU@inner。拟定mIoU在整个点云X上计算为:
其中K是类的总数,1[·]表示一个布尔函数,如果[·]中的条件为真,则输出1,否则输出0。将mIoU@boundary和mIoU@inner定义为:
其中X-Bl是内部区域中的点集。然而,mIoU@boundary和mIoU@inner没有考虑模型预测分割中的错误边界。受2D实例分割的边界IoU的启发,为了更好地评估,作者考虑了分割预测中的边界与GT数据中的边界之间的对齐。通过B-IoU进行评估。
B.对比边界学习(CBL)框架:
对比边界学习(CBL)框架,如图2所示。通过对比学习来增强跨边界的特征的辨别能力。然后,为了深入提高模型在边界上的性能,作者通过子场景边界挖掘在子采样点云(即子场景)中使用CBL。
图2 对比边界学习的详细说明。
作者遵循广泛使用的InfoNCE损失及其泛化来定义边界点的对比优化目标函数。对于边界点xi∈Bl,作者希望学习后的表示结果更类似于来自同一类别的相邻点,并且明显不同于来自不同类别的其他相邻点,即:
其中fi是xi的特征,d(·;·)是距离测量,τ是对比学习中的温度。上式仅关注边界点(图2中红色的虚线圆圈)。通过对比学习增强了跨场景边界的特征识别,这对于改进边界区域的分割非常重要。
C.子场景边界挖掘:
为了更好地探索场景边界,作者在多个尺度上检查子采样点云的边界,这使得在backbone模型的不同子采样阶段能够进行对比边界学习。然而,在二次采样之后,很难得之前边界点集B的正确定义。因此,为了在子采样点云中启用CBL,作者提出了子场景边界挖掘方法,它在每个子采样阶段确定一组真实边界点。具体来说,作者使用上标来表示阶段。在子采样阶段n,将其子采样点云表示为Xn。对于输入点云,我们有X0=X。在第n个阶段采集一组边界点Bln∈Xn时,需要确定子采样点xni∈Xn的标签lin,即子场景标注。由于每个子采样点xni∈Xn是从其先前点云Xn-1中的一组点聚合而成的。因此,可以利用子采样过程来迭代确定标签。将l0i作为点x0i=xi的GT标签,有以下公式:
其中Nn-1(xni)表示前一阶段xni的局部邻域(图2中灰色虚线圆圈),即从Xn-1聚合的点组将由单个点xni∈Xn表示,AVG表示平均池化。最后,通过子场景边界挖掘,在所有阶段都应用了CBL,最终损失为
其中LnCBL是第n阶段的CBL损失,λ是损失权重
3、主要实验结果展示:
本文的实验主要在室内S3DIS、ScanNet数据集和室外场景Semantic3D、NPM3D数据集上进行CBL性能的评估和分析。
A.边界问题:
实验比较了mIoU、mIoU@boundary、mIoU@inner以及B-IoU计算出的分数。如表1中所示。通过对最近的3D点云分割方法进行评估,可以发现得到的mIoU@boundary远低于mIoU@inner分数。另外整体性能介于这两个分数之间,这表明边界区域的分割效果会降低整体分割性能。B-IoU也与mIoU@boundary一致,计算出的分数远远落后于mIoU分数。因此,实际数据表明边界区域的分割质量确实不令人满意。
表1 S3DIS数据集测试集Area5上获得的结果。*表示该方法也考虑边界
B.性能对比:
如表2和3中所示,所提方法针对不同的数据集都有所提升,证明了对不同的局部聚合模块的有效性。
表2 S3DIS Area5数据集上的定量结果。红色表示对baseline的改进,粗体或红色粗体表示最佳性能。*表示该方法也考虑边界。
表3 S3DIS上的定量结果,经过6层交叉验证。红色表示对基线的改进,粗体或红色粗体表示最佳性能。
作者在图4中进一步定性地证明,CBL通过改进边界区域的分割有效地提高了整体性能。与同样考虑边界的方法相比,CBL获得了更好的表现。
图4作者在几个不同的场景上比较了ConvNet baseline方法与CBL的结果
通过在室外点云数据Semantic3D上的CBL评估,也证明了该方法对不同类型场景的通用性。
表4 Semantic3D上的定量结果
4、总结
在本文中,作者提出了一种专注于场景边界的分割方法,该方法通过创建的场景边界指标“对比边界学习(CBL)”来评估分割性能。解决了分割中边界上出现的问题。具体来说,所提出的CBL通过在多个尺度的场景上下文的帮助下对比它们的表示来增强跨边界点之间的特征区分。通过在三种不同的baseline方法上应用CBL,证明了CBL可以提升了这些方法在边界上的性能以及整体性能。实验结果证明了所提方法的有效性以及边界对3D点云分割的重要性。
作者也指出本文方法的缺陷之一是过多关注场景边界,而忽略了点云的内部区域。未来会进一步探索边界在点云分割中的作用及其与内部区域的关系。
本文仅做学术分享,如有侵权,请联系删文。