【PaddlePaddle】【论文复现】Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation
论文阅读
ABSTRACT
文章提供一种新的无监督图片翻译(风格迁移之类)的方法,主要应用了一种新的注意力单元和一种新的归一化函数:
attention module 与之前的注意力机制方法不同处理图片之间的geometric有所不同,论文使用辅助分类器得到的注意力特征图对图片需要整体的风格改变和large shape的改变都能起到较好的作用;
Adaptive Layer-Instance Normalization 文章提出的AdaLIN函数可以更灵活地控制形状(shape)和上下文语义(texture)因为依赖数据集学习参数而引起的较大的变化。
代码: https://github.com/znxlwm/UGATITpytorch ;
INTRODUCTION
图像到图像的翻译旨在学习一种将图像映射到两个不同领域的功能。该话题因其在图像修复等领域的广泛应用而受到机器学习和计算机视觉领域研究者的广泛关注。尽管取得了些进展,但先前的方法由于domains之间shape和texture的变化量而显示出性能差异。例如,它们对于映射局部纹理的风格迁移任务是成功的,但是对于在wild images中具有较大形状变化的图像翻译任务通常是不成功的。因此,通常需要预处理步骤,例如图像裁剪和对齐到达限制数据分布的复杂性以避免这些问题。此外,诸如DRIT 的现有方法,其图像翻译不能既保持shape,又能改变具有固定网络架构和超参数的形状。而且网络结构或超参数设置需要针对特定的数据集。
在这项工作中,文章提出了一种新的无监督图像到图像的翻译方法,该方法以端到端的方式结合了一个新的注意力模块和一个新的可学习的归一化函数。文章的模型通过基于辅助分类器获得的注意图区分源域和目标域来引导翻译关注更重要的区域而忽略次要区域。这些注意力图被嵌入到生成器和鉴别器中,以聚焦于语义上重要的区域,从而促进形状变换。虽然生成器中的注意图会将焦点集中在明确区分两个域的区域,但鉴别器中的注意图会通过关注差异来帮助微调目标域中真实图像和虚假图像的区分。除了注意机制之外,文章还发现,对于形状和纹理变化量不同的各种数据集,归一化函数的选择对转换结果的质量有显著影响。受批量实例归一化(BIN) 的启发,我们提出了自适应层属性归一化(AdaLIN),其参数是在训练期间通过自适应地选择实例归一化(IN)和层归一化(LN)之间的适当比率从数据集学习的。AdaLIN功能帮助我们的注意力导向模型灵活控制形状和纹理的变化量。因此,文章的模型在不修改模型架构或超参数的情况下,可以执行图像翻译任务,不仅需要整体改变,而且也需要大的形状变化。在实验中,文章展示了所提出的方法与现有的最先进的模型相比的优越性,不仅在style transfer上,而且在object transfiguration上。
MODEL
network architecture
文章的目标是训练一个函数G s → t G_{s \to t} G s → t ,仅使用从每个domain提取的不成对样本,将图像从源域(source domain)X s X_{s} X s 映射到目标域(target domain)X t X_{t} X t 的测试。文中的框架由两个生成器组成G s → t G_{s \to t} G s → t 和G t → s G_{t \to s} G t → s 和两个鉴别器D s D_{s} D s 和D t D_{t} D t 。文章将注意力模块集成到生成器和鉴别器中。鉴别器中的注意力模块引导生成器关注对生成真实图像至关重要的区域。生成器中的注意模块将注意力放在与其他域不同的区域。在这里,文中只详细介绍了G s → t G_{s \to t} G s → t ,G t → s G_{t \to s} G t → s 反之亦然。
Gengerator
x ∈ { X s , X t } x\in\{X_{s},X_{t}\} x ∈ { X s , X t } 代表来自source和target的样本。其中model G s → t G_{s \to t} G s → t 由编码器E s E_{s} E s 、解码器G t G_{t} G t 以及一个辅助分类器η s \eta_{s} η s 组成,η s \eta_{s} η s 表示 x x x 来自于X s X_{s} X s 的概率。E s k ( x ) E_{s}^{k}(x) E s k ( x ) 代表编码器中第 k k k 张注意力图,其中E s k i j ( x ) E_{s}^{k_{ij}}(x) E s k i j ( x ) 表示第( i , j ) (i,j) ( i , j ) 处的值。η s \eta_{s} η s 是用来学习source中第k k k 张特征图的权重,w s k w_{s}^{k} w s k ,其主要通过全局平均池化和全局最大池化得到,η s ( x ) = σ ( ∑ k w s k ∑ i j E s k i j ( x ) ) \eta_{s}(x)=\sigma(\sum_{k} w_{s}^{k}\sum_{ij}E_{s}^{k_{ij}}(x)) η s ( x ) = σ ( ∑ k w s k ∑ i j E s k i j ( x ) ) 。通过w s k w_{s}^{k} w s k 便能求注意力特征图a s ( x ) = w s ∗ E s ( x ) = { w s k ∗ E s k ( x ) ∣ 1 ≤ k ≤ n } a_{s}(x)=w_{s}*E_{s}(x)=\{w_{s}^{k}*E_{s}^{k}(x)|1\le k\le n \} a s ( x ) = w s ∗ E s ( x ) = { w s k ∗ E s k ( x ) ∣ 1 ≤ k ≤ n } ,其中n n n 是编码器中特征图的数量。因此,translation model G s → t G_{s \to t} G s → t 就等同于 G s ( a s ( x ) ) G_{s}(a_{s}(x)) G s ( a s ( x ) ) 。对于AdaLIN函数则设置为:A d a L I N ( α , β , γ ) = γ ⋅ ( ρ ⋅ α I ^ + ( 1 − ρ ) ⋅ α L ^ + β , α I ^ = α − μ I σ I 2 + ϵ , α L ^ = α − μ L σ L 2 + ϵ (1)
AdaLIN(\alpha,\beta,\gamma)=\gamma\cdot(\rho\cdot\hat{\alpha_{I}}+(1-\rho)\cdot\hat{\alpha_{L}}+\beta,\\ \hat{\alpha_{I}}=\frac{\alpha-\mu_{I}}{\sqrt{\sigma_{I}^2+\epsilon}},\hat{\alpha_{L}}=\frac{\alpha-\mu_{L}}{\sqrt{\sigma_{L}^2+\epsilon}} \tag{1}
A d a L I N ( α , β , γ ) = γ ⋅ ( ρ ⋅ α I ^ + ( 1 − ρ ) ⋅ α L ^ + β , α I ^ = σ I 2 + ϵ α − μ I , α L ^ = σ L 2 + ϵ α − μ L ( 1 ) ρ ← c l i p [ 0 , 1 ] ( ρ − τ Δ ρ )
\rho\leftarrow clip_{[0,1]}( \rho-\tau\Delta\rho)
ρ ← c l i p [ 0 , 1 ] ( ρ − τ Δ ρ )
其中,μ I , μ L \mu_{I},\mu_{L} μ I , μ L 和σ I , σ L \sigma_{I},\sigma_{L} σ I , σ L 代表通道和层的均值和标准差。 β , γ \beta,\gamma β , γ 是通过全连接层生成的,τ \tau τ 是学习率,ρ \rho ρ 的值被限制在0到1之间,当其值更接近于1时,说明实例归一化(IN)更重要,反之,则是层归一化更重要。ρ \rho ρ 的值通过网络之间学习来进行调节。对于解码器的residual blocks,ρ \rho ρ 的初值设置为1,而对于其up-sampling blocks则设置为0。
Discriminator
x ∈ { X t , G s → t ( X s ) } x \in \{X_{t},G_{s \to t}(X_{s})\} x ∈ { X t , G s → t ( X s ) } 代表来自target和source通过生成器生成的样本。同生成器一样,其中model D t D_{t} D t 由编码器E D t E_{D_{t}} E D t 、分类码器C D t C_{D_{t}} C D t 以及一个辅助分类器η D t \eta_{D_{t}} η D t 组成,不同于生成器的是η D t ( x ) \eta_{D_{t}}(x) η D t ( x ) 和D t ( x ) D_{t}(x) D t ( x ) 是被训练用来辨别 x x x 是来自于X t X_{t} X t 还是 G s → t ( X s ) G_{s \to t}(X_{s}) G s → t ( X s ) 。对于一个样本x x x ,D t D_{t} D t 用η D t ( x ) \eta_{D_{t}}(x) η D t ( x ) 训练出来的编码特征图E D t ( x ) E_{D_{t}}(x) E D t ( x ) 中的 w D t w_{D_{t}} w D t 得到的注意力特征图 a D t ( x ) = w D t ∗ E D t ( x ) a_{D_{t}}(x)=w_{D_{t}}*E_{D_{t}}(x) a D t ( x ) = w D t ∗ E D t ( x ) 。然后,discriminator D t D_{t} D t 就等同于 C D t ( a D t ( x ) ) C_{D_{t}}(a_{D_{t}}(x)) C D t ( a D t ( x ) ) 。
LOSS FUNCTION
Loss 分为四部分Adversarial loss 是转换后的图片与target图片分布差异的lossL l s g a n s → t = ( E x ∼ X t [ ( D t ( x ) ) 2 ] + E x ∼ X s [ ( 1 − D t ( G s → t ( x ) ) ) 2 ] ) (2)
L_{lsgan}^{s \to t}=(\mathbb{E}_{x \sim X_{t}}[(D_{t}(x))^2]+\mathbb{E}_{x \sim X_{s}}[(1-D_{t}(G_{s \to t}(x)))^2]) \tag{2}
L l s g a n s → t = ( E x ∼ X t [ ( D t ( x ) ) 2 ] + E x ∼ X s [ ( 1 − D t ( G s → t ( x ) ) ) 2 ] ) ( 2 ) Cycle loss 为了缓解模式坍塌的问题,使用 cycle consistency 来对生成器进行限制,考虑图片x ∈ X s x \in X_{s} x ∈ X s 经过一系列的转换使得 x x x 从 X s X_{s} X s 到 X t X_{t} X t ,又从 X t X_{t} X t 到 X s X_{s} X s ,最后图片是可以成功转换回原域的L c y c l e s → t = E x ∼ X s [ ∣ x − G t → s ( G s → t ( x ) ) ∣ 1 ] (3)
L_{cycle}^{s \to t}=\mathbb{E}_{x \sim X_{s}}[|x-G_{t \to s}(G_{s \to t}(x))|_{1}] \tag{3}
L c y c l e s → t = E x ∼ X s [ ∣ x − G t → s ( G s → t ( x ) ) ∣ 1 ] ( 3 ) Identity loss 确保输入的颜色分布和输出的颜色分布相近,使用 identity consistency 对生成器进行限制,考虑图片x ∈ X s x \in X_{s} x ∈ X s ,使用 G s → t ( x ) G_{s \to t}(x) G s → t ( x ) 进行转换后不应该发生改变L i d e n t i t y s → t = E x ∼ X t [ ∣ x − G s → t ( x ) ∣ 1 ] (4)
L_{identity}^{s \to t}=\mathbb{E}_{x \sim X_{t}}[|x-G_{s \to t}(x)|_{1}] \tag{4}
L i d e n t i t y s → t = E x ∼ X t [ ∣ x − G s → t ( x ) ∣ 1 ] ( 4 ) CAM loss 挖掘来自辅助分类器 η s \eta_{s} η s 和 η D t \eta_{D_{t}} η D t 的信息。考虑图片x ∈ { X s , X t } x\in\{X_{s},X_{t}\} x ∈ { X s , X t } ,G s → t ( x ) G_{s \to t}(x) G s → t ( x ) 和 D t D_{t} D t 经过CAM知道什么地方需要改善以及目前两个domains之间最大的差别在什么地方L c a m s → t = − ( E x ∼ X s [ l o g ( η s ( x ) ) ] + E x ∼ X t [ 1 − l o g ( η s ( x ) ) ] ) (5)
L_{cam}^{s \to t}=-(\mathbb{E}_{x \sim X_{s}}[log(\eta_{s}(x))]+\mathbb{E}_{x \sim X_{t}}[1-log(\eta_{s}(x))]) \tag{5}
L c a m s → t = − ( E x ∼ X s [ l o g ( η s ( x ) ) ] + E x ∼ X t [ 1 − l o g ( η s ( x ) ) ] ) ( 5 ) L c a m D t = E x ∼ X t [ ( η D t ( x ) ) 2 ] + E x ∼ X s [ 1 − η D t ( G s → t ( x ) ) ) 2 ] (6)
L_{cam}^{D_{t}}=\mathbb{E}_{x \sim X_{t}}[(\eta_{D_{t}}(x))^2]+\mathbb{E}_{x \sim X_{s}}[1-\eta_{D_{t}}(G_{s \to t}(x)))^2] \tag{6}
L c a m D t = E x ∼ X t [ ( η D t ( x ) ) 2 ] + E x ∼ X s [ 1 − η D t ( G s → t ( x ) ) ) 2 ] ( 6 ) Full objective 是encoders, decoders, discriminators, and auxiliary classifiers的loss总和m i n G s → t , G t → s , η s , η t m a x D s , D t , η D s , η D t λ 1 L l s g a n + λ 2 L c y c l e + λ 3 L i d e n t i t y + λ 4 L c a m (7)
\mathop{min}\limits_{G_{s \to t},G_{t \to s},\eta_{s},\eta_{t}}\mathop{max}\limits_{D_{s},D_{t},\eta_{D_{s}},\eta_{D_{t}}} \lambda_{1} L_{lsgan}+ \lambda_{2} L_{cycle}+ \lambda_{3} L_{identity}+ \lambda_{4} L_{cam} \tag{7}
G s → t , G t → s , η s , η t min D s , D t , η D s , η D t ma x λ 1 L l s g a n + λ 2 L c y c l e + λ 3 L i d e n t i t y + λ 4 L c a m ( 7 )
其中λ 1 , λ 2 , λ 3 , λ 4 \lambda_{1},\lambda_{2},\lambda_{3},\lambda_{4} λ 1 , λ 2 , λ 3 , λ 4 分别为1,10,100,1000。其中L l s g a n = L l s g a n s → t + L l s g a n t → s L_{lsgan}=L_{lsgan}^{s \to t}+L_{lsgan}^{t \to s} L l s g a n = L l s g a n s → t + L l s g a n t → s ,其余几个也是同样的定义。
EXPERIMENTAL RESULTS
The detail of architecture
generator architecture
local discriminator
global discriminator
Some results
其中(a)是原图片,(b)-(d)分别来自生成器、Local 和 global 判别器的注意力图,(e)是文章实验的结果,(f)-(j)是其他模型生成的图片。
以及不同评价指标下U-GAT-IT的表现,可以看出来都是非常优秀的。
CAM analysis
上图中(a)是原图片,(b)-(d)分别来自生成器、Local 和 global 判别器的注意力图,(e)是进行使用了CAM,而(f)没有使用CAM。
如图(b)注意力特征图帮助生成器关注了原图片domain中与目标图片domain中差异更大的区域比如眼睛、嘴之类的。并且通过local和global判别器的注意力图可视化可以看出这些往往是判断目标图片是真是假的重要依据。比如图(f)眼睛和其他部分风格就未进行转换。
AdaLIN analysis
上图中,a)是原图片,b)是文章的结果, c)是只在带有CAM的decoder中使用IN,d)是只在带有CAM的decoder中使用LN,e)是只在带有CAM的decoder中使用AdaLIN,f)是只在带有CAM的decoder中使用GN。
如图c)只用IN进行归一化,原图片的特征是进行了很好地保存,但是目标图片的风格未进行到充分的转换,d)只用LN进行归一化,则起到相反的作用。反观文章的结果使用 ρ \rho ρ 来对IN和LN进行综合,形成自适应的调整,得到更好的效果。