前言
CVPR2022 Oral《SoftGroup for 3D Instance Segmentation on Point Clouds》
论文地址:https://arxiv.org/abs/2203.01509
Code地址:https://github.com/thangvubk/softgroup
参考:
https://blog.csdn.net/qq_41961172/article/details/123890613(翻译)
对比之前的方法 PointGroup,是在语义分组上进行了优化。
可以阅读我前面的论文解读:
【论文阅读】【3d场景分割】PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
论文十问
Q1论文试图解决什么问题?
三维场景点云实例分割问题。
Q5论文中提到的解决方案之关键是什么?
关键是使用 SoftGroup 方法,通过进行自下而上的软分类和自上而下的细化来实现三维实例分割:允许每个点与多个类关联,以减轻语义预测错误带来的问题。
出发点
之前的方法 (比如PointGroup) 进行硬预测分类,会出现两个问题:预测的与gt之间iou低,错误的语义预测又会产生多余的误报。因为作者想做一个软分类,即预测每个点的语义标签时不是只取最大分数的那个类,而是取指定阈值上的所有语义分类结果,这个策略名为 SoftGroup-软分组。
贡献(包括注明最重要的贡献,从哪些点进行了创新,解决了问题)
-
我们提出 SoftGroup 对软语义分数进行分组,以避免从硬语义预测到实例分割的错误传播
-
我们提出了一个自上而下的细化阶段来纠正、细化正样本并抑制由错误语义预测引入的误报
-
我们报告了具有不同评估指标的多个数据集的广泛实验,显示了对现有最先进方法的显著改进。
核心(一句话总结)
每个点保留多个语义类别的预测结果,进而预测得到更多的有效实例点,同时减少错误预测的实例结果。
可能存在的问题:
文章解读(创新点对应的方法细节)
1.摘要:
现有最好的在语义分割领域的3d实例分割方法都是通过分组实现的。当进行语义分割的时候才进行硬预测,这样使得每个点和一个单独的类相关联。然而,硬预测产生的错误会被传播到分组中,从而导致预测的实例和真值之间的覆盖率过低并对应产生大量的假正性值。为了解决以上提到的问题,该文章提出了一个3d实例分割方法,也就是软分组,先进行自下而上的软分组,然后再自上而下的进行细分。软分组允许每个点和多个类相关联,以此来解决由分割预测错误和假正性实例产生的问题,通过学习将他们分类为背景。基于不同数据集和大量验证,实验结果证明软分组是有效的。就 AP50 而言,其性能在 ScanNet v2 隐藏测试集上显着超过最强的现有方法 +6.2%,在 S3DIS Area 5 上显着超过 +6.8%。oftGroup 的速度也很快,在 ScanNet v2 数据集上使用单个 Titan X 时每次扫描运行时间为 345 毫秒。
2. Introduction
输出语义预测对不同部分显示不同类别,使用硬语义预测进行实例分组会导致两个问题:
预测实例与 gt 之间的 iou 重叠度较低;错误语义区域对应产生额外的误报实例。
语义预测结果中,橱柜的某些部分被错误地预测为其他家具。当使用硬语义预测进行分组时,语义预测误差会传播到实例预测。
因此,预测的橱柜实例与 gt 之间的重叠度较低,而这里的其他家具实例则属于误报。
这个工作考虑软语义分数来进行分组。
语义预测错误的对象部分对于真实语义类别仍然具有合理的分数。SoftGroup 依靠分数阈值来确定对象属于哪个类别,而不是参数最大值。语义预测错误的实例将通过学习将其分类为背景来进行抑制。
为此,我们根据与真实情况的最大交集(IoU)将实例提案视为正样本或负样本,然后构建一个自上而下的细化阶段来细化正样本并抑制负样本。
“问题来了,过程中单个实例是怎么进行多个语义分类结果的传播的,到最后又是如何确定一个最终的语义结果”
3.Method
两阶段网络,自下而上的分组阶段,逐点预测网络:将点云作为输入并生成逐点的语义标签和偏移向量。
软分组模块处理这些输出以生成初步实例 proposal
在自上而下的细化阶段,输入 proposal ,从主干中提取相应的特征,预测类别、实例掩码和掩码分数作为每个实例的最终结果。
3.1 软分组(核心)
软分组模块接收语义分数和偏移向量作为输入并生成实例建议。首先,偏移向量用于将点移向相应的实例中心。为了使用语义分数进行分组,本方法定义一个分数阈值 τ 来确定一个点属于哪个语义类,从而允许该点与多个类相关联。
具体:给定语义分数,迭代 N 个类,在每个类索引处,对具有该类索引分数高于阈值 τ 的整个场景的点子集进行切片,然后遍历这个子集中的所有点,几何距离小于分组的点之间建立连接,相当于获得一个候选实例。
“意思就是每个预先类别都有对应的候选实例方案,最后整个场景的候选实例是这些子集实例方案的并集”
作者注意到:现有的基于提案的方法通常将边界框视为对象提案,然后在每个提案中执行分割。然而,在 3D 点云中生成高质量的边界框提案具有挑战性,因为很多点仅存在于对象表面上,那么它真实的中心是很难得到的。相反,SoftGroup 依赖于更准确的点级提案,并且自然地继承了点云的分散特性。
由于分组实例提案的质量很大程度上取决于语义分割的质量,因此作者定量分析了 τ 对语义预测的召回率和精度的影响。设计了一个小实验:改变阈值 τ ,测试每个类的召回率(recall)和精度(precision)。
上图虚线表示原来硬语义预测的召回率和精度。
硬语义预测的结果召回率为 79.1%,表明预测未涵盖类中超过 20% 的点。当使用分数阈值时,召回率随着分数阈值的降低而增加(“也就是涵盖了更多可能的点”),但分数阈值小也导致精度低。
因此作者进一步提出自上而下的细化阶段来缓解低精度问题。精度可以解释为对象实例的前景点和背景点之间的关系。
作者将阈值设置为0.2,精度接近50%,从而得到前景点和背景点之间的比例,以确保平衡。
3.2 自上而下的细化
自上而下的细化阶段对自下而上的分组阶段的实例提案进行分类和细化。特征提取器层处理每个提案以提取其相应的主干特征。提取的特征被输入到一个微型 U-Net 网络(具有少量层的 U-Net 网络)中,然后预测后续分支的分类分数、实例掩码和掩码分数。
“说白了就是再过个网络预测优化一下结果,这个网络细节就不介绍了,可以看原文”
4.实验结果
4.1 定量实验和定性试验
ScanNet 数据集的定量结果当时最高。
有了 SoftGroup 处理之后的结果对比如上图。
也做了目标检测的测评:从预测的实例点掩码提取轴对齐的边界框来作为目标检测的结果。
4.2 消融实验
4.2.1 成分分析
基线是一个具有硬分组的模型,实例的置信度分数由 ScoreNet 分支输出。
通过应用软分组或自上而下的细化可以获得显著的改进。
4.2.2 软分组的分数阈值
None 代表阈值停用,使用硬预测标签进行分组。阈值取 0.2 时获得最佳性能。
4.2.3 分类分支中的实例类别获取
实验对比了获取对象类别的不同方案的结果。
“N”表示实例类别是从语义预测的多数票中获取的。 “Y”表示实例类别取自分类分支(就是细化阶段中的 classification brancn)。分类分支聚合实例的所有点特征,并使用单个标签对实例进行分类,从而实现更可靠的预测
5. 总结
作者提出了 SoftGroup,这是一种简单而有效的 3D 点云实例分割方法。 SoftGroup 对软语义分数进行分组,以解决由于对局部模糊对象进行硬分组而产生的问题。从分组阶段获得的实例提案被分配给正样本或负样本。然后构建自上而下的细化阶段,以细化积极因素并抑制消极因素,获得了当时最好的三维场景点云实例分割结果。
“额外想到的一点:在看过往的论文时可以自己尝试一下去想想未来的进一步工作,这里面还有什么问题没有被解决,还有哪些可以改进的地方,还有哪些setting没有探索过,再去看最新的一些论文,验证自己的思考是否合理,以此来锻炼自己想 idea 的能力。”