《AdaptSegNet:Learning to Adapt Structured Output Space for Semantic Segmentation》论文笔记

参考代码: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,IsR(HWC),之后得到两个图像的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 ( H ∗ W ∗ C ) P=G(I)\in R^{(H*W*C)} P=G(I)R(HWC),那么拟合这两个分布的GAN损失可以描述为:
L d ( P s , P t ) = − ∑ h , w l o g ( D ( P t ) ) + l o g ( D ( P s ) ) L_d(P_s,P_t)=-\sum_{h,w}log(D(P_t))+log(D(P_s)) Ld(Ps,Pt)=h,wlog(D(Pt))+log(D(Ps))

生成器的训练:
此外,还存在合成数据的分割损失:
L s e g ( I s ) = − ∑ h , w ∑ c ∈ C Y s ( h , w , c ) l o g ( P s ( h , w , c ) ) L_{seg}(I_s)=-\sum_{h,w}\sum_{c\in C}Y_s^{(h,w,c)}log(P_s^{(h,w,c)}) Lseg(Is)=h,wcCYs(h,w,c)log(Ps(h,w,c))
再加上真实数据在判别网络下的损失:
L a d v ( I t ) = − ∑ h , w l o g ( D ( P t ) ) L_{adv}(I_t)=-\sum_{h,w}log(D(P_t)) Ladv(It)=h,wlog(D(Pt))

2.3 多层GAN结构

这里的多层是在单层分割输出基础上使用多层特征进行分割,之后再在这些分割结果上进行与单层结构类似的损失计算,因而这里的损失函数可以描述为:
L I s , I t = ∑ i λ s e g i L s e g i ( I s ) + λ a d v i L a d v i ( I t ) L_{I_s,I_t}=\sum_i\lambda_{seg}^iL_{seg}^i(I_s)+\lambda_{adv}^iL_{adv}^i(I_t) LIs,It=iλsegiLsegi(Is)+λadviLadvi(It)
整体的优化过程为:
max ⁡ D min ⁡ G L ( I s , I t ) \max_D\min_GL(I_s,I_t) DmaxGminL(Is,It)

2.4 损失函数

文章的损失函数由分割损失与GAN损失两部分组成,可以其使用的组成形式为:
L ( I s , I t ) = L s e g ( I s ) + λ a d v L a d v ( I t ) L(I_s,I_t)=L_{seg}(I_s)+\lambda_{adv}L_{adv}(I_t) L(Is,It)=Lseg(Is)+λadvLadv(It)

3. 实验结果

GTA5-CityScapes:
在这里插入图片描述
SYNTHIA-CityScapes
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/109063173