DA(语义分割6)Domain Adaptation for Structured Output via Discriminative Patch Representations

Domain Adaptation for Structured Output via  Discriminative Patch Representations


数据集:GTA5 to Cityscapes ,SYNTHIA to Cityscapes,and cross-city  (Cityscapes to Oxford RobotCar )

实现:Pytorch框架,single Titan X  GPU with 12 GB memory

网址:https://sites.google.com/site/yihsuantsai/research/iccv19-adapt-seg

渊源:作者在论文中常和Learning to Adapt Structured Output Space for Semantic Segmentation进行对比

网络结构:采用和论文Learning to Adapt Structured Output Space for Semantic Segmentation一样的DeepLab-v2 with ResNet101作为G,

本文的创新模式是:针对一个问题,从一个新的角度,提出一个新的方法去解决,发现取得的效果和已有的方法相比并不逊色。

作者说自己提出的方法和已有的域适配技术是互补的,还做了实验把这个技术和已有的模型融合,比如output space adaptation [40], pixel-level adaptation [16], and pseudo label re-training。

并没说超过已有的,而是说能和已有的方法取得的效果相同。


语义分割有pix-level的适配,feature-level的适配,output-level的适配,不同的适配的区别,我理解的是在于判别器的输入的不同。feature-level的适配,判别器的输入是特征。

1.Setting


论文Learning to Adapt Structured Output Space for Semantic Segmentation是把原域和目标域的分割结果图进行对齐,可以说是output级别的对齐,而本文则是在分割结果上多加一步,让原域和目标域分割结果图的Patch进行对齐,可以认为是小块儿区域级别(patch-level)的对齐。

注:patch就是一小块区域。

STEP A:从原域的分割图中提取patches,用它们的标记图表示它们,然后用K-means聚类算法(K是个超参数)来发现patch的模式(就是把patches分成K个簇)。这样,原域分割图中的每个patch就被分配了一个ground truth    cluster/mode index。有了这个ground truth 标签就可以训练一个K分类器,该分类器为每个patch预测一个Index。

STEP B: 用K分类器,把目标域的patch映射到一个K维的概率向量空间中,在这个空间中进行模式对齐。

2.Method


2.1粗略框架


作者说输出空间的适配方法只对齐了Category Distribution,而没有考虑原域数据的多模式;于是,作者创新地去发现原域数据的多模式。具体做法是,作者把原域的patches用K-means算法分成K个簇,构成了一个clustered space。原域和目标域的Category Distribution在这个clustered space中进行转换,就映射到了一个K维的空间,得到了其对应的Patch Distribution,然后通过对抗学习,把目标域patch distribution和原域的patch distribution在这个K维的空间中进行对齐。


2.2具体网络结构



关于Fs的含义,文中解释为:


Fs的含义

注意:判别器D的输入就是Fs和Ft,用于判别输入的特征是来自原域(标签为1)还是来自目标域(标签为0)



2.3损失函数

2.3.1训练分类器H的损失函数Ld


H用于给patch分配一个cluster membership(一个K维的向量),拿原域带标签的样本进行训练。

其中,由原域图像的per-pixel标记来得到原域图像的ground truth cluster membership,需要一些转换技巧,文中进行了介绍。

2.3.2 patch对齐的损失函数Ladv



2.3.3原域样本的语义分割损失Ls

这个文中没有给出具体公式,它是必不可少的,每个语义分割论文中都有。

2.3.4整体的训练目标(把以上三个损失结合起来)


2.4网络训练

文中采用类似训练GAN的方法来训练,交替进行以下两步:

(1)更新判别器D

(2)固定D,更新网络G和H

2.4.1更新判别器


判别器D的输入就是Fs和Ft,用于判别输入的特征是来自原域(标签为1)还是来自目标域(标签为0)


要想让Ld这个损失最小,则判别器判别原域特征,判别结果要尽可能接近1,判别目标域特征,结果也要尽可能接近1.

也就是说判别器把原域样本判别成原域,把目标域样本判别成原域

这样做的目的是让目标域分布和原域分布尽可能地接近。

2.4.2更新网络G和H


为了让Lg,h尽可能小,这里对抗损失要尽量把Ft判别成1.,Ft的生成需要G,H,故它的梯度反向传播也会更新G,H.

3.实验结果

3.1训练要求


3.2实验结果

3.2.1证明patch-alignment方法和已有的域适配方法的互补性

作者把patch-alignment方法分别和output space,pixel-level,pseudo-GT,Fusion方法结合起来,发现结合后的效果会有提示,证明了本文提出的方法和已有的域适配技术是互补的,可结合起来使用。



3.2.2从虚拟数据集到实际数据集的域适配


3.2.3 cross-city 适配


你可能感兴趣的:(DA(语义分割6)Domain Adaptation for Structured Output via Discriminative Patch Representations)