[论文笔记][半监督语义分割]Universal Semi-Supervised Semantic Segmentation
论文原文原文地址
Motivations
- 传统的训练方式需要针对不同 domain 的数据分别设计模型,十分繁琐(deploy costs)
- 语义分割数据集标注十分昂贵,费时费力
Contributions
- 本文提出的统一模型可以实现跨领域统一训练
- 模型使用少量的标注数据和大量未标注数据(半监督模型)
网络架构/方法实现
-
基本结构:一个encoder和n个decoder(decoder数量和domain的数量相同)
-
基本设定:假设共有两个数据集domainA和domainB,每个domain中都包含少量有标签的数据和大量无标签的数据
-
具体实现:将不同domain的数据集中有标签的数据汇集为labeled set,无标签的数据集合为unlabeled set。
对于labeled set,使用传统的监督学习的方法,将所有image送入共享的encoder,再根据image所属的域将encoder的输出送入对应的decoder中,与标签对比,用交叉熵函数计算监督损失 \(L_s\)。
对于unlabeled set,先将image送入encoder(F),再将encoder的输出送入Entropy Module。Entropy Module先将特征图投影到d维(E),再分别计算与这个image相同或不同domain的label embedding相似度 \(v\)
其中相似度的计算是通过点乘实现的非监督损失分为两个部分:cross dataset entropy loss和within dataset entropy loss
cross dataset entropy loss:
within dataset entropy loss:
总损失:
实验部分
**数据集 :Cityscapes (CS), CamVid (CVD) ,Indian Driving Dataset (IDD) **
Table2: 当N= 100,backbone为resnet18时,此方法在Cityscapes (CS), CamVid (CVD)两个数据集上的表现对比
注:Univ-basic:总损失函数后面两项系数为0,Univ-full:总损失函数最后两项系数均为1
Table3: 当N= 100,N= 50时,backbone为resnet18时,此方法在Cityscapes (CS), CamVid (CVD)两个数据集上的表现对比
注:Univ-basic:总损失函数后面两项系数为0;Univ-cross:总损失函数最后一项系数为0,倒数第二项系数为1;Univ-full:总损失函数最后两项系数均为1
Table4: 当N= 375时,backbone为resnet101时,此方法在Cityscapes (CS)+CamVid (CVD)两个数据集上训练后分别测试的表现
Table5: 当N= 100,N= 1500时,backbone为resnet18,resnet50时,此方法在Cityscapes (CS)+Indian Driving Dataset (IDD) 两个数据集上训练后分别测试的表现
Table6:使用Resnet50作为backbone时,在不同domain上的分割效果展示(CS为自动驾驶数据集,SUN常用于室内景象分割)