Unsupervised Domain Adaptation for Semantic Segmentation by Content Transfer

论文链接: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} Lzerotrans确保域转换后的图片可以很好的适应对应域;使得风格编码器不仅可以从原本的域中抓取风格,也可以从域转换后的图片中抓取风格特征。
在这里插入图片描述
总的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)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值