Unsupervised Attention-guided Image-to-Image Translation

目前的无监督Image-to-Image Translation很难在不改变背景或场景中多个对象的情况下将注意力集中在单个对象上。作者提出了一种方法来解决这个问题。

Introduction

目前的包括CycleGAN在内的许多无监督Image-to-Image Translation方法都无法只关注特定的场景对象,如下图所示:

为了解决这个问题,作者提出了一种只修改图像中相关区域的方法,并且将attention机制加入了CycleGAN中的生成器中。下面进行详细的解释。

Method

Image-to-Image Translation的任务就是寻找出一个映射 F_{S 	o T} 使得源图像域 S 转换到目标域 T ,下面的方法基于CycleGAN。 需要解决两个重要的问题:

  • 定点阵图像中需要转换的区域
  • 对定位区域进行正确的转换

Attention map intuition

为了解决这两个问题,作者加入了两个attention networks A_S,A_T ,这两个网路通过最大化discriminator出错的概率来选择要转化的区域, A_S:S 	o S_a, A_T:T 	o T_a ,其中, S_a,T_a 是attention map,就相当于一个mask,其值介于0,1之间,这个mask其实就是用来抠图的,具体可以看下面这张图:

上图只展示了CycleGAN中 S	o T 的这部分,我们先看左边部分, F_{S	o T} 还是对整张图像进行转化, A_S 网路学习到了一个attention map,将这个attention map与 F_{S	o T} 的输出进行element-wise乘积,就提取出了需要转化的特定对象,然后再加上原图的背景,生成最终图像 S ,整个过程可以用下式表示: s=underbrace{s_a odot F_{S	o T}(s)}_{	ext{Foreground}} + underbrace{(1-s_a) odot s}_{	ext{Background}} s_a 全是1,则得到作者的方法的特例CycleGAN;若 s_a 为全0,则输入图像和输出图像一样,discriminator可以很轻易的判别;理想的情况是 s_a 只关注图像中特定的对象,既能够骗过discriminator,又使得输出图像看起来更加真实。

因此,使得 F_{S	o T},A_S,D_T 达到平衡的方法就是使得 A_S 将注意力集中在相应discriminator认为在其领域内最具描述性的对象或区域(例如,马)。GAN的机制也使得attention networks能够找到图像中最具领域描述性的对象。 需要注意的是,attention map的值是在[0,1]之间的连续值,而不像分割的二值化的mask一样,作者对此的解释是:

  1. it makes estimating the attention maps differentiable, and so able to train at all;
  2. it allows the network to be uncertain about attention during the training process, which allows convergence;
  3. it allows the network to learn how to compose edges, which otherwise might make the foreground object look 『stuck on』 or produce fringing artifacts.

Loss function

首先是adversarial loss:

然后是cycle-consistency loss:

其中, ss 通过 F_{T	o S}A_T 得到的。 最终得loss为:

其中, lambda_{cyc}=10 ,优化目标是求解minimax问题:

Attention-guided discriminator

前面介绍说,attention network能够让网路只关注图像中特定的对象,然而,这会产生一个问题:生成图像的背景可能和转化后的特定对象不搭,举例来说,Figure 1中原来的马转化为了斑马,但是整幅图像还是假的,因为马生活在草原上,而斑马生活在热带稀树草原。

为了解决这个问题,作者在训练discriminator的时候只考虑有注意力的区域。简单的使用 s_aodot s 会有问题,因为刚开始的时候attention network还未训练,所以作者在前30个epochs使用全图进行训练,然后切换到masked image进行训练。

还有另一个问题,由于attention map是连续的,discriminator可能会得到小数的像素值,这些数值在训练初期可能会非常接近于0,虽然生成器能够得益于在对象边界上混合像素,但是将真实图像于这些小数值相乘导致discriminator学习到了中灰色是「真实的」(也就是我们将答案推到归一化[- 1,1]像素空间的中点0),因此作者给学习到的attention map进行阈值处理:

其中, t_{new},s_{new} 分别是目标域样本 t 和转换后的源域样本 s 的masked version, 	au 设置为0.1 由此,原来的adversarial loss(公式2)变为:

下面是源域到目标域 S	o T 的训练过程演算法:

需要注意的是,为了避免mode collapse问题,作者在30个epoch后停止训练 A_S,A_T

Experiments

Dataset

  • Apple to Orange( Aleftrightarrow O )
  • Horse to Zebra( H leftrightarrow Z )
  • Lion to Tiger( Lleftrightarrow T )

部分结果展示:

Limitation

  • 对不同domains的shape的变化不鲁棒;
  • 只能在attended regions里面进行转变;

推荐阅读:

相关文章