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的含义,文中解释为:
注意:判别器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方法结合起来,发现结合后的效果会有提示,证明了本文提出的方法和已有的域适配技术是互补的,可结合起来使用。