论文链接:https://arxiv.org/abs/2012.12545
此篇论文被AAAI2021接收。
文章目录
1 Motivation
1.1 Domain Gap
这篇论文中,我们将处理无监督域自适应(unsupervised domain adaptation,UDA)的语义分割,其目的是利用有标记的合成数据对未标记的真实数据进行分割。
而UDA的主要问题在于减小真实数据和合成数据之间的域差异。
一个图像包含内容和风格,内容是语义分割的关键因素,风格则代表着一个域的图片特征。风格的不同导致域之间有差异,因此将图片的风格和内容分离可以使得两个域的图像在内容上的差异减小。
在本篇文章中,我们提出了zero-style loss从而分别抓取风格和内容。并且,我们设置了一个内容编码器和两个风格编码器,通过zero-style loss进行学习,编码器可以分别提取出两个域中相同的内容特征以及不同的风格特征。
1.2 Class Imbalance Problem
在城市场景的数据集中,每个类别的样本并不是相同分布的。head classes(如路、天空)在数据中存在最多,tail classes(交通标识、自行车)比较罕见。因此,基于类别分布不平衡的数据集训练模型会导致结果偏向于head classes。
为了增强模型在真实图片(目标域)的表现,self-training策略被应用于UDA方法中,即采用通过有标记的数据集训练的模型对未标记的数据进行打标签。因此,class imbalance问题更加被加剧了。(训练的模型本身有偏向,伪标签的正确率更低)
为解决这个问题,本论文提出tail-class content transfer。即将tail-class的内容从源域迁移至目标域。
2 Related Work
Self-training
自我训练
通过一系列的步骤,用已有的有标签数据集a,去对剩下的还未标记的数据集b打标签,从而使得training data更多。
- 初始化有标签数据和无标签数据
- 用有标签的数据去训练一个模型
- 用这个模型对没有标记的数据进行预测
- 选取最优预测标记数据
- 把标记好的数据加入a中,从b中移除
- 重复以上操作直至数据集不再发生变化(所有数据都打上了标签)
3 Method
总的网络框架如下,包括无监督域自适应部分(域迁移和语义预测),以及内容迁移部分(解决UDA语义分割下的类不平衡问题)。
3.1 Unsupervised Domain Adaptation
源域为S,即已标记数据;目标域为T,即未标记数据。
模型包括一个共享的内容编码器
E
c
E_c
Ec(抓取语义信息,与域无关),一个共享的解码器
G
c
G_c
Gc(通过
E
c
E_c
Ec编码内容特征预测图片中的种类),两个风格编码器
E
s
E_s
Es和
E
t
E_t
Et(抓取风格信息,取决于是源域还是目标域)和两个图片解码器
G
s
G_s
Gs和
G
t
G_t
Gt(根据获取的风格生成风格特定的图片)。
如上图,内容编码器提取内容,风格编码器提取风格,然后生成域转换图片,得出公式如下:
转换后的图片再经过一次域转换得到与原本域相同的图片。
I
s
2
t
2
s
I_s2t2s
Is2t2s:源域-目标域-源域
I
t
2
s
2
t
I_t2s2t
It2s2t:目标域-源域-目标域
为确保内容编码器仅提取内容,风格编码器仅提取风格,我们提出了zero-style loss。
zero-style loss
通过
L
z
e
r
o
L_{zero}
Lzero使得
E
s
E_s
Es和
E
t
E_t
Et仅抓取存在于源域和目标域中独特的信息,所以他们从
I
t
I_t
It和
I
s
I_s
Is中提取不到信息。
无法保证的是—从各域中提取的信息仅包含风格,而不包括语义内容。
因此,为确保共享内容包括语义分割所需的所有信息,我们提出
L
s
e
g
L_{seg}
Lseg,从而使得两个域的内容特征相同。
L
C
E
{L_{CE}}
LCE:交叉熵损失函数。
L
z
e
r
o
−
t
r
a
n
s
L_{zero-trans}
Lzero−trans确保域转换后的图片可以很好的适应对应域;使得风格编码器不仅可以从原本的域中抓取风格,也可以从域转换后的图片中抓取风格特征。
总的zero-style损失函数如下。
Cycle-Consistent Adversarial Learning
定义循环一致性损失和重构损失以防止在域迁移过程中内容信息的损失。
Pseudo Label Generation for Self-Training
为了提高模型在目标域的表现力,我们通过给目标域打标签后得到数据集,并进行训练。此过程采用最大概率阈值的方法[maximum probably threshold,MPT]。
3.2 Content Transfer
在这部分,我们介绍了内容迁移的方式解决UDA语义分割中的类不平衡问题。这个问题的基本原因是缺少尾部类的样本,因此我们通过将尾部类别内容从源域迁移至目标域,增加训练样本,从而解决此问题。此方法应用于输入和输出部分。
Tail-Class Selection
从源域中获取尾部类的部分。
但是直接通过上述公式迁移尾部类的内容至目标域没有考虑目标域的内容信息,有可能导致迁移后尾部类的内容相撞,如下图c的绿框部分。
为解决这个问题,我们首先获取目标域的head-class部分,然后和源域的tail-class部分做同或处理,从而实现仅将源域的tail-class部分迁移至目标域的head-class区域。
Input-Level Content Transfer
在输入层,将
I
s
2
t
I_{s2t}
Is2t的tail-class部分迁移至
I
t
I_t
It的head-class区域,如上图d所示。我们通过
G
c
(
E
c
(
I
t
_
c
t
)
)
G_c(E_c(I_{t\_ct}))
Gc(Ec(It_ct))获取probability map
P
t
_
c
t
P_{t\_ct}
Pt_ct,然后通过MPT打伪标签。基于此构建的数据进行模型训练,增加了tail-class样本,解决了类不平衡问题。
Output-Level Content Transfer
语义分割模型偏向head classes,在tail classes上置信度较低,因此伪标签在tail classes上非常不完整。事实上,经过内容迁移后的图片
I
s
2
t
I_{s2t}
Is2t的标签和
Y
s
Y_s
Ys相同。基于此,我们可以提高伪标签的置信度。
语义分割模型对于内容迁移后数据的损失函数如下:
3.3 Overall Loss Function
我们的模型基于DISE,并加入以上提出的方法。总的loss function如下:
4 Experiments
Datasets
GTA5—Cityscapes;
SYNTHIA–Cityscapes。
前者为源域,后者为目标,通过Cityscapes(real-world数据集)中的验证集评估语义分割模型。
实现细节
模型基于DISE实现。
DISE:三个编码器,两个解码器(segementer and generator),鉴别器。
在训练过程中,首先训练UDA部分,生成伪标签;然后加入内容迁移部分进行训练。
(recorded by zk)