本文提出了一种结合Attention机制和self-Regularization的无监督图像域转换模型。
问题
为了解决两个域间的图像转换问题,需要学习从一个域到另一个域的映射,将X域中的图像转换到Y域。
本文的目的是使生成的图像看起来和源图像(X域)是相似的,同时具备Y域图像的特征。
如上图所示,图像从Horse域转换到了Zebra域,但是背景部分并没有变化。
方法
由于现在的图像转换方法经常会对图像作一些多余的修改,于是作者提出加入一个attention模型来预测一个attention map来指导图像转换。
模型结构如上图所示。
生成器G包含了两个部分,常见的生成器G-0和attention部分G-attn。
G-0负责将输入图像x转换到Y域,G-attn负责预测一个 attention mask。其中G-attn(x)和x同纬度,并且每个像素点都是一个0-1的概率值。
最后在根据G-attn(x)将x,G-0(x)相加得到G(x),之后会具体介绍是怎么加的。
Loss
生成器loss
其中
G-attn(x)即attention mask表示每个像素需要attend的概率,G-attn(x)G-0(x)就从转换过后的图像中取出attend的部分(前景),(1-G-attn(x))x就从原图像中得到了不被attend的部分(背景),将两者加起来就得到了最后的输出。
再回到本文的生成器loss,loss由两部分构成对抗loss L-adv和自正则化loss L-reg。
判别器loss
判别器loss就是常见的GAN中的判别器loss
同样生成器loss L-adv就是
自正则化loss Self-regularization loss
加入自正则化可以使生成的图像和原图保持视觉上的相似,即保留原图的低纬特征。例如 颜色,性质,轮廓等。
自正则化被定义为最小化生成图像和原图的距离,这个距离可以是L1,L2或者SSIM等。
所以生成器L-reg定义为
F是在IMageNet上预训练的VGG网络,用来提取特征。
其中H和W表示不同层,即在多层上做自正则化。
作者提出取前三层能取到最好的效果,并且w1,w2,w3分别取1.0/32,1.0/16,1.0/8。
训练方式
首先单独训练G-0
保持G-0不动,训练G-attn
jointly fine-tune G-0和G-attn
Adaptive weight induction
生成器loss中L-reg前面有一个 λ,一般这个都是作为超参数手工设置的,本文作者采用了一种自适应的方法。
首先设置 λ为0
之后逐步增大 λ
当对抗loss 降低到某个值过后停止增大 λ
继续训练直到收敛
作者说这种方式能够找到较好的 λ,但是原因没有说的很清楚。
具体实现
G-0
由三部分组成,下采样,残差块,上采样层
前部分下采样层 包括两个卷积 stride为2
中间部分是 9个残差块 保持height/width不变
末尾部分 两个反卷积 stride为2
每个卷积后面都跟了 batch normalization和Relu
G-attn
G-attn由初始VGG(取到conv3_3)构成,然后跟了两个分卷积,最后是一个卷积和sigmoid。
Discriminator
5层卷积
前三层stride为2后两层为1
输出是一个判断real/fake的向量
更多细节请看论文地址
目前代码还没有开源出来。
网友评论