当前位置: 代码迷 >> 综合 >> 【PaddlePaddle】【论文复现】U-GAT-IT
  详细解决方案

【PaddlePaddle】【论文复现】U-GAT-IT

热度:71   发布时间:2024-02-07 11:51:19.0

【PaddlePaddle】【论文复现】Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation

  • 论文阅读
    • ABSTRACT
    • INTRODUCTION
    • MODEL
      • Gengerator
      • Discriminator
    • LOSS FUNCTION
    • EXPERIMENTAL RESULTS
      • The detail of architecture
      • Some results

论文阅读

ABSTRACT

文章提供一种新的无监督图片翻译(风格迁移之类)的方法,主要应用了一种新的注意力单元和一种新的归一化函数:

  1. attention module ?与之前的注意力机制方法不同处理图片之间的geometric有所不同,论文使用辅助分类器得到的注意力特征图对图片需要整体的风格改变和large shape的改变都能起到较好的作用;
  2. 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

network architecture

文章的目标是训练一个函数 G s t G_{s \to t} ,仅使用从每个domain提取的不成对样本,将图像从源域(source domain) X s X_{s} 映射到目标域(target domain) X t X_{t} 的测试。文中的框架由两个生成器组成 G s t G_{s \to t} G t s G_{t \to s} 和两个鉴别器 D s D_{s} D t D_{t} 。文章将注意力模块集成到生成器和鉴别器中。鉴别器中的注意力模块引导生成器关注对生成真实图像至关重要的区域。生成器中的注意模块将注意力放在与其他域不同的区域。在这里,文中只详细介绍了 G s t G_{s \to t} G t s G_{t \to s} 反之亦然。

Gengerator

x { X s , X t } x\in\{X_{s},X_{t}\} 代表来自source和target的样本。其中model G s t G_{s \to t} 由编码器 E s E_{s} 、解码器 G t G_{t} 以及一个辅助分类器 η s \eta_{s} 组成, η s \eta_{s} 表示 x x 来自于 X s X_{s} 的概率。 E s k ( x ) E_{s}^{k}(x) 代表编码器中第 k k 张注意力图,其中 E s k i j ( x ) E_{s}^{k_{ij}}(x) 表示第 ( i , j ) (i,j) 处的值。 η s \eta_{s} 是用来学习source中第 k 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)) 。通过 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 \} ,其中 n n 是编码器中特征图的数量。因此,translation model G s t G_{s \to t} 就等同于 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} ρ c l i p [ 0 , 1 ] ( ρ ? τ Δ ρ ) \rho\leftarrow clip_{[0,1]}( \rho-\tau\Delta\rho)
其中, μ I , μ L \mu_{I},\mu_{L} σ I , σ L \sigma_{I},\sigma_{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})\} 代表来自target和source通过生成器生成的样本。同生成器一样,其中model D t D_{t} 由编码器 E D t E_{D_{t}} 、分类码器 C D t C_{D_{t}} 以及一个辅助分类器 η D t \eta_{D_{t}} 组成,不同于生成器的是 η D t ( x ) \eta_{D_{t}}(x) D t ( x ) D_{t}(x) 是被训练用来辨别 x x 是来自于 X t X_{t} 还是 G s t ( X s ) G_{s \to t}(X_{s}) 。对于一个样本 x x D t D_{t} η D t ( x ) \eta_{D_{t}}(x) 训练出来的编码特征图 E D t ( x ) E_{D_{t}}(x) 中的 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) 。然后,discriminator D t D_{t} 就等同于 C D t ( a D t ( x ) ) C_{D_{t}}(a_{D_{t}}(x))

LOSS FUNCTION

Loss 分为四部分
Adversarial loss 是转换后的图片与target图片分布差异的loss
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) 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}
Cycle loss 为了缓解模式坍塌的问题,使用 cycle consistency 来对生成器进行限制,考虑图片 x X s x \in X_{s} 经过一系列的转换使得 x x X s X_{s} X t X_{t} ,又从 X t X_{t} 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}
Identity loss 确保输入的颜色分布和输出的颜色分布相近,使用 identity consistency 对生成器进行限制,考虑图片 x X s x \in X_{s} ,使用 G s t ( x ) G_{s \to 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}
CAM loss 挖掘来自辅助分类器 η s \eta_{s} η D t \eta_{D_{t}} 的信息。考虑图片 x { X s , X t } x\in\{X_{s},X_{t}\} G s t ( x ) G_{s \to t}(x) 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 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}
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}
其中 λ 1 , λ 2 , λ 3 , λ 4 \lambda_{1},\lambda_{2},\lambda_{3},\lambda_{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} ,其余几个也是同样的定义。

EXPERIMENTAL RESULTS

The detail of architecture

generator architecture

local discriminator

在这里插入图片描述

global discriminator

Some results

在这里插入图片描述
在这里插入图片描述
其中(a)是原图片,(b)?(d)分别来自生成器、Local 和 global 判别器的注意力图,(e)是文章实验的结果。

以及不同评价指标下U-GAT-IT的表现,可以看出来都是非常优秀的。

在这里插入图片描述

  相关解决方案