参考代码:AdaptSegNet
1. 概述
导读:这篇文章着力于解决模型未见过数据的适应性,一般来讲模型对于与训练集中数据类似的数据表现较好,但是对于未知场景的数据就表现较差了,这也是domain-adaptation需要解决的问题。这篇文章在分割任务下进行了研究,提出在output space(分割softmax输出)上使用GAN网络去拟合两种数据(合成数据与真实数据)分布,此外还提出使用多层GAN监督的形式优化特征的分布。
之前的一些domain adaptation的工作是在feature层次上进行的,但是在分割任务中就显得不是很适合了,这是由于分割任务中的特征编码了高维度的形状/纹理等信息,因而相当复杂,不易adapt。文章通过观察已知数据和未知数据的特点,观察到两种数据在分割结果上更加具有视觉上的一致性,因而在网络的输出(output space)上进行domain adaptation。下图表示的就是这种空间下的相似性:
文中将整个网络划分成两个部分:分割网络组成的生成器和判别网络。并提出了两个分布拟合策略:
- 1)使用分割输出(softmax概率图)的结果去拟合两个数据的分布;
- 2)使用多层数据(在多个特征上得到softmax output space)之后再使用GAN去拉近两个分布;
2. 方法设计
2.1 网络结构
文章的网络结构见下图所示:
在上图中可以看到文章的网络由两部分组成:分割网络构成的生成器 G G G与判别器 D i D_i Di,输入的真实图像与合成图像是 I t , I s ∈ R ( H ∗ W ∗ C ) I_t,I_s\in R^{(H*W*C)} It,Is∈R(H∗W∗C),之后得到两个图像的softmax分割概率输出 P t , P s P_t,P_s Pt,Ps,之后将这两个概率图输入到判别器网络 D i D_i Di拉近这两个数据的分布。
2.2 单层GAN结构
判别器的训练:
通过生成器得到的概率图为 P t , P s P_t,P_s Pt,Ps,其过程为 P = G ( I ) ∈ R