Motivation
弱监督工作都是利用少的标记样本去做更好的预测结果,本文的弱监督包括不完全监督,即只有少量的点带有准确的label;不准确监督,即点云的每个sample都带有一个不准确的label,文章将这两种弱监督的方式互为补充。之后用Siamese Self-Supervision的技术去处理没有label的点云,此外,文章的写作和分析都很到位。
概念陈述
把点云标记为个独立的shapes或者房间块,记做。每一个sample 包括个3d点和点的特征(如xyz,rgb)。每一个sample被进一步标记为 per-point segmentation label ,比如飞机的机身、机翼、发动机。为了清晰起见,文章将其标记为 one-hot encoded label 。点云的编码网络标记为 ,嵌入后的点云特征为
Method
网络总共分为四个branch
Incomplete Supervision Branch
文章假设,在点云的sample 中,只有少数的点有label。技术上,文章采用一个二分掩码 ,其中1为标记的点,0为其他。在标记的点上,文章定义了交叉熵损失:
其中, 是归一化变量,即是被标记的点的个数。
讨论:这部分理论分析了弱监督情况下点的标记策略,文章假设一个全监督的网络和一个弱监督的网络,当这两个网络的梯度相近时,预测出来的结果就相近。接下来证明了当弱监督标记的label呈现独立同分布时,这种情况更可能接近于全监督的梯度。在标记策略上就是对每个sample都标记了点效果更好。
Inexact Supervision Branch
将网络输出做最大池化后得到,标签为,引入一个如下形式的交叉熵损失:
基本原理是,对于sample中缺少的那些部分的类别,不应以高对数预测任何点。 不完全的监督分支仅在标签点的一小部分受到监督,而不准确的监督分支则在涉及所有点的样本级别上受到监督,因此它们是相互补充的。
Siamese Self-Supervision Branch
这个分支是为了大部分未标记的点设计的。文章假设任何一点的预测都是旋转和镜像翻转不变,这种假设适用于3D CAD形状和在XoY平面中旋转的室内场景,例如语义标签不应随房间的不同视角而变化。设计的loss如下,F为2范数:
Spatial & Color Smoothness Constraint
这部分文章将XYZ和RBG信息分开成两个channel,个人感觉存疑,因为颜色信息脱离位置信息存在时没有意义的,到底能不能分开用?随后,作者对xyz和rgb的channel分别算了两个相关的权重矩阵,并把这两个权重矩阵相加,这一步时融合了同一个点的位置信息和颜色信息,但是这样分开做有什么必要么?这个分支在训练策略上,对training阶段和inference阶段有些不同。
实验Experiments
-
整个实验的算法过程如下:
-
实验方面做了三个数据集,shapenet、partnet和S3DIS,都有不错的效果。
-
消融实验部分分析了:每个独立部分的重要性;不同的backbone的编码能力;不同的标记的label的数量;可视化了点特征的嵌入。
总结
文章用了DGCNN作为backbone,在处理数据输入的时候用了mask来处理掉数据的部分label,在训练的过程中,从不同的角度设计loss去监督网络的学习。其中,Incomplete Supervision Branch和Inexact Supervision Branch来对少部分有标记的点去学习,Siamese Self-Supervision Branch学习无标记的大部分点,Spatial & Color Smoothness Constraint对整个过程做平滑,类似于CNN之后的CRF。文章值得借鉴的地方是loss的设计思路,和消融实验的策略。