一种基于分层聚合的3D实例分割方法(ICCV 2021)

时间:2022-10-09 21:56:34


Hierarchical Aggregation for 3D Instance Segmentation (ICCV 2021)

代码地址:​https://github.com/hustvl/HAIS​

随着商品3D传感器(Kinect、RealSense、Velodyne激光扫描仪等)的快速发展和普及,3D场景理解成为计算机视觉领域的研究热点。点云上的实例分割作为3D场景理解的一项基本感知任务,是多数现实生活应用的技术基础,例如机器人、增强/虚拟现实和自动驾驶。

在过去的几年中,对二维图像的实例分割有大量的研究工作,其中自上而下的方法主导了2D实例分割。这些方法首先生成实例级proposals,然后预测每个proposals的mask。虽然现有的2D实例分割方法可以直接扩展到3D场景,但大多数现有的3D方法采用完全不同的自下而上pipeline,通过几何聚类生成实例分割结果。

事实上,直接将一个点云聚类成多个实例对象是一项非常困难的工作,原因如下:(1)一个点云通常包含大量的点;(2)一个点云中的实例数量对于不同的3D场景有很大的变化;(3)实例规模差异显著;(4)每个点都只有一个非常弱的特征,即3D坐标和颜色。导致点和实例定义之间的语义差距十分巨大。因此,过分割或欠分割更容易出现。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图1 输入点云、GT实例mask、不带和带分层聚合的3D实例预测结果。如红色圈出的关键区域所示,对于大尺寸和零散点云的对象,预测容易产生过度分割。所提出的分层聚合可以将不完整的实例与点云片段聚合起来形成完整的实例分割预测。

基于上述问题,作者提出了一个分层聚合方案,该方法通过自下而上的3D实例分割网络HAIS来应对这些问题。首先将点聚合到带宽较低的集合中,以避免过分割,然后采用动态带宽的对集合进行聚合来形成复合实例。考虑到集合聚合后产生的分割预测中可能会包含噪声,即使聚合后的实例产生过分割,作者又设计了一个子网络,用于去除噪点并对mask质量评分。HAIS在ScanNet v2基准和S3DIS数据集上都实现SOTA性能。除此之外,HAIS十分高效,只需要简洁的单向前推理,而无需任何后处理步骤。与所有现有的方法相比,HAIS的推理延迟最低。

本文主要贡献如下:

(1)提出了一种新颖的自下而上的框架,该框架具有分层聚合功能,用于3D点云上的实例分割。分层聚合层弥补了自下而上聚类方法的缺陷。此外,实例内预测网络旨在生成更细粒度的实例分割结果。

(2)方法在ScanNet v2排行榜上排名第一。HAIS还在S3DIS上实现了SOTA结果,并对所提出方法的泛化能力进行了论证。

(3)方法在所有现有方法中实现了最高的效率。HAIS保持简洁的单向前推理pipeline,无需任何后处理步骤。ScanNet v2上每帧的平均推理时间仅为410毫秒,比其他SOTA方法快得多。

2、核心思想

基于聚类的方法一般首先预测按点划分的标签,然后使用聚类分析方法来生成实例分割预测结果。HAIS遵循基于聚类的一般流程,但在两个方面与现有的基于聚类的方法不同。首先,大多数基于聚类的方法都需要复杂且耗时的聚类过程,HAIS采用了更简洁的pipeline,并保持了较高的有效性。其次,以前的方法通常根据点级嵌入对点进行分组,没有实例级的校正过程。HAIS引入了集合聚合和实例内预测,以在object级层面优化实例分割过程。HAIS的整体架构如图2所示,由四个主要部分组成。逐点预测网络从点云中提取特征并预测逐点语义标签和中心偏移向量。点聚合模块基于逐点预测的结果形成初步实例分割预测。点集聚合模块扩展不完整的实例以覆盖缺失部分,而实例内预测网络则用来平滑实例以过滤掉噪点。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图2 HAIS的网络架构。对于输入点云,首先采用具有submanifold sparse convolution的3D类UNet结构进行逐点特征学习。然后,使用点的空间约束来执行具有固定带宽的点聚合。根据点聚合结果,执行动态带宽集聚合以形成实例proposals。

A 逐点预测网络:

逐点预测网络以点云P∈RNxK作为输入,其中N是点数,K是通道数。对应颜色r、g、b和位置x、y、z。其中,submanifold sparse convolution广泛用于3D感知方法,以从点云中提取特征。HAIS采用基于体素的方法,以实现更有效的特征提取。按照惯例,该方法首先将点云数据转换为规则的体素网格。然后使用由堆叠的3D稀疏卷积层组成的类UNet结构来提取体素特征Fvoxel。最后将体素特征Fvoxel映射回点特征Fpoint

基于点特征Fpoint,构建了两个分支,一个用于预测点标签(Semantic Label Prediction Branch),另一个用于预测每个点的中心偏移向量(Center Shift Vector Prediction Branch)。体素特征Fvoxel和点特征Fpoint都应用2层多层感知器(MLP)来实现对应的预测。

B 点聚合:

在3D空间中,同一实例的点本质上是彼此相邻的。利用这种空间约束进行聚类是很直观的。因此,基于语义标签和中心偏移向量,作者使用非常基础且紧凑的聚类方法来获得初步实例。首先,如图3(b)所示,根据逐点中心移动向量∆xi,将每个点xiorigin向其实例中心移动,使同一实例的点在空间上彼此更接近。移动后的点坐标计算为,

一种基于分层聚合的3D实例分割方法(ICCV 2021)

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图3 分层聚合过程。不同颜色的点属于不同的类别。黑色点属于背景。(a):分布在真实3D空间中的点。(b):将中心偏移向量应用于每个点后,属于同一实例的点在3D空间中更接近。(c):点聚合。基于固定的空间聚类带宽将点聚合成集合。(d):设置聚合。主实例以动态的集群带宽吸收周围的局部片体,形成完整的实例分割。

其次,HAIS忽略背景点,将每个前景点视为一个节点。对于每一对节点,如果它们具有相同的语义标签并且它们的空间距离小于固定的空间聚类带宽rpoint,则在这两个节点之间创建一条边。在遍历完所有节点对并建立边之后,整个点云被分成多个独立的集合,如图3(c)所示。每个集合都可以看作是一个初步的实例预测。

C 点集聚合:

图4显示了Ground Truth的实例中的点数分布大小和点聚合结果。与GT实例的大小相比,点聚合生成的实例预测数量要多得多,而且所属尺寸区间较小。这是因为中心偏移矢量并不完全准确。点聚合不能保证同一实例中的所有点都聚合在一起。如图3(d)所示,大多数具有准确中心偏移向量的点可以聚集在一起以形成不完整的实例预测,称这些实例为“主实例”。但是中心偏移向量预测较差的少数点从大多数点中分裂出来,形成了小尺寸的碎片实例,称之为“fragments”。fragment的大小太小,不能被视为完整的实例,但可能是主实例的缺失部分。考虑到fragment数量众多,直接根据阈值去除掉fragment是不合适的。直观地说,HAIS可以在集合级别聚合主实例和fragment以构成完整的实例预测。通过集合聚合来平滑点聚合生成的实例预测,如图3(d)所示。伪代码如算法1所示。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图4 实例大小的分布情况。实例大小定义为实例内的点数。蓝色、绿色和红色分别对应点聚合结果、集合聚合结果和ground truth。统计数据基于ScanNet v2数据。

这里作者定义了公式用来判定fragment m是否是主实例n的一部分。首先,在所有与fragments m具有相同语义标签的主实例中,主实例n是几何中心最接近fragments m的那个。其次,对于fragments m和主实例n,它们的几何中心之间的距离应该小于rset,即动态聚类带宽定义为,

一种基于分层聚合的3D实例分割方法(ICCV 2021)

集合聚合的聚类带宽由rsize和rcls决定。rsize表示特定大小的带宽。较大的主实例应该在更广的范围内吸收fragments。rcls表示特定类的带宽,是统计的特定类的平均实例半径。集合聚合后的实例大小分布如图4所示。大量的fragments与主实例组合在一起,形成质量更高的实例分割结果。

D 实例预测网络:

分层聚合可能会错误地吸收属于其他实例的fragments,从而产生不准确的实例预测。因此,作者提出了用于进一步细化实例的实例预测网络,如图5所示。首先,裁剪实例点云块作为输入,并使用3D submanifold sparse convolution网络来提取实例内的特征。在实例内特征提取之后,mask分支预测二进制mask以区分实例前景和背景。对于每个预测的实例,一般选择最匹配的作为mask监督。预测实例和GT之间的重叠部分被分配正标签,其他部分被分配负标签。低质量实例(低IoU)包含很少的实例级信息,对于优化mask分支几乎毫无价值。因此,只有IoU高于0.5的实例被用作训练样本,而其他的则被忽略。对于mask预测,损失表示为,

一种基于分层聚合的3D实例分割方法(ICCV 2021)

其中Nins表示实例数,Ni表示实例i的点数。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图5 实例内预测网络的细节。

E 网络其他部分补充:

整个网络以端到端的方式从头开始训练,并通过由几个损失项组成的联合损失进行优化,

一种基于分层聚合的3D实例分割方法(ICCV 2021)

基于Proposal的方法通常需要密集的proposal才能更好地覆盖实例。许多基于聚类的方法采用多种聚类策略来生成冗余实例预测。因此,一般需要非极大抑制(NMS)或其他充当NMS的后处理步骤来去除重复的实例预测。但是在我们的HAIS中,点聚合中一个点只聚集到一个实例中,导致实例预测之间没有重叠,可以直接使用实例确定性分数对实例进行排名,并将分数最高的实例作为最终预测,而不需要任何后处理步骤。相比之下,HAIS只需要一个紧凑的单前向推理程序即可生成准确的预测。通过无NMS和单前向设计,HAIS保持了更简洁的pipeline和更高的效率

3 实验环节:

A.实验细节:

作者在ScanNet v2和S3DIS数据上进行测试。ScanNetv2数据集是3D实例分割中最被接受和十分强大的数据集。它包含1613个带有3D对象实例注释的数据。为了验证HAIS的泛化性,作者还在S3DIS数据集上进行了实验。S3DIS对六个区域进行3D扫描,总共271个场景。每个点都分配有13个语义类别中的一个标签。所有13个类都用于实例评估。

模型在单个TitanX GPU上进行训练,batchsize为4,迭代次数为120k。初始学习率为0.001。为了稳定性和效率,在训练阶段不采用集合聚合,并且这不会影响推理过程中集合聚合的有效性。

在表1中,在未发布的ScanNet v2基准测试集上将HAIS与其他方法进行了比较。HAIS达到了69.9%的最高AP50,在ScanNet v2的排行榜上排名第一,超过了之前的SOTA工作6.1%。对于每个类的结果,我们的方法在18个类中的12个实现了SOTA。

表1 ScanNetv2基准测试集的定量比较。HAIS实现了SOTA性能,大大优于所有其他方法。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

表2中的S3DIS上结果显示,在所有使用的指标(mCov、mWCov、mPre和mRec)方面,HAIS比其他方法取得了更好的效果。ScanNet v2和S3DIS在类别、场景风格和点云密度方面有很大不同。但HAIS在ScanNet v2和S3DIS上的SOTA性能证明了其泛化能力

表2 S3DIS上的定量比较。HAIS方法在mCov (coverage), mWCov (weighted

coverage), mean precision (mPrec)和mean recall (mRec)方面明显优于以前的方法。一种基于分层聚合的3D实例分割方法(ICCV 2021)

图6直观地显示了分层聚合和实例内预测的有效性。对于具有大尺寸和fragment点云的对象,将所有点组合在一起是非常具有挑战性的。可以观察到,通过提出的分层聚合和实例预测,可以获得精确的实例分割mask。

一种基于分层聚合的3D实例分割方法(ICCV 2021)

图6 ScanNet v2上的个别案例的定性结果。关键区域用红色圈出。分层聚合和实例内预测有助于更细粒度的分割预测,特别是对于具有大尺寸和fragment点云的对象。

C.消融分析

为了验证HAIS的设计合理性,实验最后进行了一系列消融研究。

4、总结

HAIS是一种简洁的自下而上的3D实例分割方法。通过引入分层聚合以两步方式生成实例预测,并引入实例物体内预测以进行更加细粒度的实例分割预测。在ScanNet v2和S3DIS上的实验证明了它的有效性和良好的泛化能力。更重要的是,HAIS还保留了比所有现有方法更好的推理速度,在大多数场景中显示出其实用性,尤其是对延迟敏感的场景。

本文仅做学术分享,如有侵权,请联系删文。


一种基于分层聚合的3D实例分割方法(ICCV 2021)