CVPR 2020——PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
-
摘要
-
(一) 引言
-
(二) 相关工作综述
-
(三) 我们的 方法
-
- 3.1 架构概述
-
3.2 主干网络设计
-
3.3 聚类算法优化
-
3.4 分层得分网络构建
-
3.5 网络训练与推理过程
-
(四)实验研究
-
-
- 4.1. 实验配置
-
-
4.2. ScanNet性能分析
-
4.3. S3DIS性能分析
- (五) Conclusion
该学术论文的链接信息为:https://arxiv.org/abs/2004.01658;其代码资源获取地址为:https://github.com/Jia-Research-Lab/PointGroup]
Abstract
- 主要针对三维场景建模任务中的关键挑战——如何高效地对大规模三维数据进行分割与注释——PointGroup提出了一种创新性的体系结构。
- 该方法通过开发了一种双分支架构,在提取点特征的同时推断出语义标签及各点相对于实例质心的位置偏移量。
- 接着采用了聚类算法,并充分利用了原始坐标信息以及经过偏移后的坐标优势。
- 为了实现对候选实例的有效评估与去重,在该框架中引入了ScoreNet框架来进行候选实例的评估,并运用非最大值抑制(NMS)方法去除冗余。
- 在ScanNet v2和S3DIS两个数据集上进行了实验验证,并取得了优异的性能指标:分别为63.6%和64.0%。
(一) Introduction
目前存在的困难:
- 实例分割既涉及对语义标签的预测任务,也要求识别场景中各实体的具体位置信息。
- 基于卷积神经网络的方法显著提升了二维实例分割的效果,但面对非有序且非结构化的3D点云数据时,直接应用二维方法处理三维空间中的数据依然面临诸多困难。
应用:
- 在自动驾驶,机器人导航等在室外和室内环境中的有潜在应用。
改进:基于对3D对象间隙区域及其语义特征的深入研究与分析,在实现更加精准的分割的同时,成功突破了复杂场景下的3D点云实例分割挑战。
流程:
- 通过语义分割骨架提取描述性特征并预测每个点的语义标签。
- 采用偏移分支学习相对偏移量以将每个点移至其各自的ground-truth实心质心位置上。这种操作可使同一对象实例的所有点向同一质心靠拢并相互靠近从而更有利于将它们归类为独立的对象并区分同类别的邻近对象。
- 借助预测的语义标签和计算出的偏移量我们采用了简单有效的算法将所有点聚合成簇群。
- 对于每一个目标点我们以该点的空间坐标为基础将其与具有相同标签且位于其附近的其他点组成一个初始群组然后逐步扩大该群组范围直至包含所有相关的同类目标。
- 在这一过程中我们分别考虑了原始空间中的目标位置以及经由预测偏移后的空间中的目标位置这两种坐标集它们共同构成了"Dual-Set Point Grouping"的过程两者的协同作用有助于提升整体性能水平。
- 我们设计了一种名为ScoreNet的新算法用于评估候选簇群的质量并对最优簇群进行选择。
- 最后我们应用了非最大值抑制技术有效地去除了重复检测到的目标簇群带来的干扰从而提高了整体检测结果的质量和准确性。
贡献:
开发出了一个名为PointGroup的自底向上3D实例分割框架,并专门针对具有挑战性的3D实例分割任务进行了优化设计。
开发出了一种基于双坐标集(即原始和移动集)的点聚类方法,并与新的ScoreNet协同工作以提升对象实例分割效果。
本研究开发出的方法在多个复杂度数据集上均表现优异,并通过实验证明了其高效性及广泛的适用性。
(二) Related Work
看论文吧~~
(三) Our Method
3.1. Architecture Overview
为了获得3D对象的实例级分割标签,考虑两个问题:
- 首先是分别对3D空间中的各项内容进行分项处理。
- 第二步是对每一个对象进行语义属性的识别和分类。
与2D图像不同,在2D平面中物体可能会因为视图遮挡而产生重叠现象,在三维空间中则不会有此问题。由于在三维场景中物体的空间分布较为分散且彼此之间通过空隙自然分离的特点,在分析语义信息的基础上将整个三维内容划分为独立的对象实例更加合理有效。

图释:
该网络体系结构由三个核心组件构成:(a)骨干网;(b)聚类模块;以及(c)ScoreNet系统。
骨干网的输入(a)是一个包含N个点的点集P。每个点都具备颜色属性f_i = (r_i, g_i, b_i)以及三维坐标位置p_i = (x_i, y_i, z_i)。
主干网络通过提取每个点的特征向量F_i来生成特征矩阵F = \{F_i\} \in R^{N \times K}其中K代表通道数量。
随后将特征矩阵馈入两个分支系统:一个分支用于执行语义分割任务另一个分支用于计算每个点的位置偏移量向量o_i = (\triangle x_i, \triangle y_i, \triangle z_i)$。
获得语义标签后系统会对具有相同标签的相邻点进行分组形成实例簇。
为了避免三维空间中同一类别对象因位置相近而被错误分类系统采用基于原始坐标集和位移后坐标的双重聚类策略。
通过ScoreNet系统对上述两种聚类结果进行整合并生成最终的实例分割结果。
该方法通过引入双重定位机制显著提升了分割精度同时有效降低了计算复杂度。
3.2. Backbone Network
随后将这些输入点进行体素化处理,并构建基于子流形稀疏卷积(SSC)与稀疏卷积(SC)的U-Net架构。接着通过从体素中恢复采样获得逐点特征。该U-网能够有效地提取图像上下文及几何信息,并为后续处理提供可区分的关键点特征F。同时也可以采用任意一种基于点特征提取网络作为骨干网络如图2(a)所示
Semantic Segmentation Branch.
- MLP被用于将数据输入到模型中,并且在经过前馈计算后能够输出一个完整的概率分布向量\theta\in R^D;
- 为了确保模型输出的质量和稳定性,在计算过程中我们引入了交叉熵损失L_{sem}作为正则化手段;
- 每个实例i\in I_0^*对应的标签s_i都是其在该分类任务中最有可能出现的结果。
Offset Prediction Branch.
偏移分支对F进行编码作用以输出N个实例对应的N个偏移矢量O=\{o_1,\dots,o_N\}\in R^{N\times3}。通过L_1回归损失函数约束这些实例特征的学习位移量:L_{o\_reg}=\frac{1}{\sum_{i=1}^{N} m_i}\sum_{i=1}^{N}\left\| o_i - (\hat{c}_i - p_i) \right\| \cdot m_i-------(1)
注释:
- m\in\left\{ m_1, ..., m_N \right\}属于二进制掩码集合。
对于每一个点i, 如果它位于当前实例中,则对应的掩码元素m_i=1, 否则为m_i=0.
\hat{c}_i=\frac{1}{N_{g(i)}^{I}}\sum_{j\in _{Ig(i)}}^{}P_{j}--------(2)
注释:
- g\left(i\right)将样本i映射到其真实类别对应的索引值上, 即该实例中包含了所有具有该特征值的样本。其中I_{g\left(i\right)}表示真实类别标签, ** N_{g\left(i\right)}^{I}**表示该类别标签下的样本总数。
注意:
以上改写遵循以下原则:
- 仅对表达方式进行调整
- 使用了更详细的表述
- 保持了数学符号...原样
- 未添加任何额外信息或解释
- 未改变原文段落结构
发现:
- 从点到其实例质心的距离通常具有较小的值(0到1m)。

图释:
- 3b给出了ScanNet数据集中此类距离分布的统计分析。
发现:
由于不同类别的不同对象大小的影响,在回归网络中精确地恢复相应的偏移量存在较大的难度;尤其是在大型对象的边界区域中发现偏差更为明显的原因是这些边界点与实例质心之间的距离相对较远
解决方案:
设定方向损失以约束预测偏移向量的方向为目标。将损耗定义为一种基于余弦相似度的逆运算方法,其数学表达式如下:
L_{o\_dir} = -\frac{1}{\sum_{i} m_i} \sum_i \frac{o_i}{\left\| o_i \right\|_2} \cdot \frac{\hat{c}_i - p_i}{\left\| \hat{c}_i - p_i \right\|_2} \cdot m_i \quad (3)
该损失函数不受预测偏移向量范数的影响,并确保了各点朝对应实例质心方向运动。
3.3. Clustering Algorithm
基于预测得到的语义标签以及偏移向量, 被聚类算法划分为多个实例. 如图1所示.

表释:
- 对于每个点i,在其坐标x_i为中心、半径为r的空间内,默认所有具有相同语义标签的点被划分为同一簇。
- 在聚类过程中被定义为一种空间限制手段。
- 采用广度优先搜索策略来将同一实例的所有相关数据组织成一个群集。
- 在聚类前同时快速识别出每个场景中所有位于半径r球体内的邻近数据点。
3.4. ScoreNet
输入: 一组候选聚类C=\left \{C_{1},...,C_{M}\right \}
- M表示候选聚类的总数
- C_i代表第i个聚类
- N_i代表C_i中的点数。
目标: 预测每个聚类的得分,以便可以在NMS中精确保留更好的聚类。

图释:
- 对于每个聚类,从F∈R^{N×K}(由主干网络提取的特征)中收集点特征,对于聚类C_i形成F_{C_{i}}=\left \{F_{h(C_{i},1)},...,F_{h(C_{i},N_1)}\right \}。
- h映射C_i中的点索引到P中对应的点索引。
- 用P_{C_{i}}=\left \{p_{h(C_{i},1)},...,p_{h(C_{i},N_1)}\right \}表示C_i中点的坐标。
- 采用F_{C_i}和P_{C_i}作为初始特征和坐标,并像在骨干网开始时一样对聚类进行体素化。
- 每个体素的特征均与该体素中点的初始特征进行平均池化。
- 将它们输入带有SSC和SC的小型U-Net中,以进一步编码功能。
- 最大池化,对于每个聚类产生单个聚类特征向量f_{C_i}∈R^{1×Kc}。
- 最终聚类得分S_c = \left \{s_1^c,...,s_M^c\right \}∈R^M表示为:
S_c=Sigmoid(MLP(F_C))-------(4)其中F_{c}=\left \{f_{C_{1}},...,f_{C_M}\right \}\in R^{M\times K_{c}}
为了确保分数中聚类的质量, 采用软标签替代传统的二元标记方法来监督生成聚类置信度
\hat{s_i}^{c}被定义为:
当iou_{i} < \theta _{h}时,
\frac{1}{\theta _{h}-\theta _{l}} \cdot (iou_i-\theta _{l});
反之则为0。
方程编号仍为(5)。
- \theta_l与\theta_h分别被设定为0.25和0.75,
- iou_i被定义为簇C_i与真实实例之间最大联合交集的度量(IoU),其计算公式如下:
iou_i = \max\left( \left\{ IoU(C_i, I_j) \mid I_j \in I \right\} \right) - (6)
使用二元交叉熵损失作为得分损失:
L_{c\_{score}}=-\frac{1}{M}\sum_{i=1}^{M}(\hat{s_i}^{c}log(s_{i}^{c})+(1-s_{i}^{c})log(1-s_{i}^{c}))------(7)
3.5. Network Training and Inference
Training.
总损失为:
L=L_{sem}+L_{o\_dir}+L_{o\_reg}+L_{o\_score}---------(8)
Inference.
通过计算预测分数S_c对聚类中心点集进行非最大抑制处理(NMS),从而得到最终的实例分割结果G⊆C。
设定IoU阈值为0.3。
这表明基于语义信息对样本进行分组时,其标签信息能够准确反映其所属类别。
(四)Experiments
4.1. Experimental Setting
Datasets
- ScanNet v2
- S3DIS
Evaluation Metrics
- 平均精度指标(mAP)
- 其中AP_{25}和AP_{50}分别代表当IoU阈值设定为25%和50%时的平均精度值
- 该方法采用IoU阈值从[此处开始]到[此处结束](每次增加步长为[此处])的方式计算各区间内的得分并取其平均
Implementation Details
- 体素尺寸设定为2厘米。
- 在聚类模块中, 设定该区域半径值为3厘米, 最小聚类顶点数目N_θ定值于5十个。
- 基于Adam优化器的学习率设为千分之一。
- 受限于GPU内存容量, 在数据集中每一个场景中限定单个场景的最大顶点数量设为25万个。
- 当某个场景的顶点数量超过二五十万时, 将执行随机采样并进行部分区域裁剪, 并根据被裁剪区域内的顶点数量逐步调节裁剪幅度.
- 在测试阶段直接输入整个未裁剪的原始场景进行处理。
- S3DIS数据集中的各个室内环境具有较高的密度特征, 部分复杂环境甚至包含上千万级别的顶点数目。因此, 在S3DIS数据集上的每个室内环境样本中, 我们会在每次进行空间分割前随机抽取四分之一数量范围内的样本作为代表进行分析计算。
4.2. Evaluation on ScanNet
4.2.1 Benchmark Results

表释:
- PointGroup以最佳成绩实现了63.6%的AP_{50}得分,并显著超越了所有先前的方法。
- 相比之下,在绝对值上PointGroup超越了前驱方案(多了8.7个百分点),在相对值上则领先了15.8个百分点。
- 对于各个具体的分类结果而言,在多数(共18个)类别中PointGroup均位居榜首。
4.2.2 Ablation Studies
任务:探究ScanNet验证集在PointGroup设计中的消融效果及其参数选择
Clustering based on Different Coordinate Sets

表释:
- 探讨了基于仅原始坐标P、仅移动坐标Q以及两者的联合比较。
- 基于P聚类可能导致将具有相同语义标签且距离较近的对象误分为同一实例;特别是在椅子与图片这类可能高度相似的类别中,在P空间内的聚类效果并不理想。
- 该方法通过在实例质心周围收集实例点并适当扩展各聚类区域来缓解该问题;然而,在预测偏移量时存在不准确性问题——尤其是对于大型物体(如窗帘与货架)的边界点而言,在Q空间内进行聚类无法完全解决问题。

图释:
图4呈现了使用不同坐标集进行簇训练模型的定性分析结果-(i)仅采用P坐标集,(ii)仅采用Q坐标集以及(iii)同时采用P和Q坐标集。
其中情况(i)的问题出在将图像错误地分配到了墙的位置。
情况(ii)展示了成功分割图像为独立实例的效果;然而,在物体边界区域周围出现了模糊现象。
情况(iii)则集成了前两种方法的优点,并实现了最佳性能水平。
Ablation on the Clustering Radius r

表释:
在聚类算法中进行不同参数的选择时需要注意r值的影响因素。当r较小时会表现出对数据点密度的高度敏感性;这使得扫描到的对象在不同区域可能会呈现出不均匀的密度分布;因此采用较小r值可能导致无法有效识别低密度区域中的潜在结构特征。相反地较大r值则会显著提升算法对相近类别数据点合并的可能性;这种做法可能会导致原本属于同一类别但位置较为靠近的数据被错误地归类到其他类别中从而影响整体分类效果。基于上述分析经过多次实验验证最终确定了r的具体取值范围并将参数设定为0.03\text{米}作为最优解以达到最佳分类效果
Ablation for the ScoreNet

表释:
- 消融实验采用ScoreNet模型来评估候选聚类的质量。
- 直接应用ScoreNet模型输出的概率值对实例进行排序,并计算平均精度(AP)。
- 另一种方法则通过计算实例内部相关类别在语义上的平均概率作为置信度指标。具体而言,在AP、AP50和AP25方面分别获得了30.2%、51.9%和68.9%的均值表现;相比之下,在这些指标上分别表现得略逊一筹。
4.2.3 Runtime Analysis

表释:
- 运行时间受点数及场景复杂性的影响。
- 从 ScanNet v2 验证集中随机选取了四个典型场景,并在 Titan Xp GPU 上对该数据集进行了 100 次重复测试。
- 相比原始聚类方法,在 Q 上进行的移位操作通常所需时间更长的原因是,在这些位置附近可能存在更多的邻近点。
4.3. Evaluation on S3DIS

表释:
基于置信度阈值为0.2的方法来筛选并去除低置信度的数据点。
在第5区的测试中发现PointGroup在AP_{50}指标上表现优异,在mPrec_{50}(平均精度)和mRec_{50}(平均召回率)方面均优于ASIS系统。
在六折交叉验证实验中观察到PointGroup在AP_{50}上的表现明显优于SGPN系统,在mPrec_{50}和mRec_{50}方面分别高出4%和21.6%左右。
可视化图:

(五) Conclusion
- 为了实现3D实例分割目标,在PointGroup方法中重点考虑了物体实例间的空间关系以及各点处的语义标签特征,并在此基础上实现了更为精细的点群划分。
- 针对同一类别内可能存在相互靠近的对象这一特殊场景,在模型架构中设计了一种两分支网络结构。这种结构不仅分别学习了各点处的具体语义信息以及相对偏移特征参数化表示,并且能够在后续聚类过程中将每个采样点逐步引导至对应的类别中心位置。
- 在具体的聚类操作中,在原始笛卡尔坐标系下与偏移编码联合作用下完成对采样点集合的操作,并通过巧妙地融合这两种不同的表征方式的优势,在提升聚类精度的同时实现了更好的分类效果。
- 在模型训练阶段主要采用了ScoreNet框架进行评估训练,并结合非极大值抑制技术消除候选聚群中的冗余信息,在保证检测完整性的同时显著提升了整体预测性能。
- 经过系统实验验证,在测试集上该方法达到了目前同类算法中最优的平均精确度指标表现。
