前言

近几年人脸属性迁移的课题不再是单纯地做跨域迁移,还要考虑迁移后的多样性(mutil-modal),因此这个方向开始跟风格迁移相结合。结合我最近看过的几篇论文,发现它们都使用了同一个零部件——AdaIN,而且截止文本发布时间,据谷歌学术显示,该方法的文献被引用量达到517次,说明该方法受到了研究者们一定的关注。因此我觉得有必要记录一下这个思路的起点,以便以后查阅。

AdaIN

文献全称:Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
文献出处:[C]. international conference on computer vision, 2017: 1510-1519.
数据集: MS-COCO、WikiArt

论文贡献(亮点)

  • 提出了一种自适应实例归一化(AdaIN)层。

实验效果图
其中红框内为该方法的实验效果图。
【风格迁移】Adaptive Instance Normalization(AdaIN)
模型框架图
【风格迁移】Adaptive Instance Normalization(AdaIN)

回顾IN与CIN

Instance Normailization
假设输入图像的4D tensor 为:xRN×C×H×Wx\in {\Bbb R}^{N×C×H×W},IN会将每个通道的feature map的均值和标准差进行归一化:
IN(x)=γ(xμ(x)σ(x))+βIN(x)= \gamma(\frac {x-\mu(x)}{\sigma(x)})+\beta 其中γ\gammaβ\beta是可学习的仿射参数;μ(x)\mu(x)σ(x)\sigma(x)分别表示均值和标准差,在空间维度上计算得到,独立于通道和批次。
μnc(x)=1HWh=1Hw=1Wxnchw\mu_{nc}(x)=\frac {1}{HW}\sum_{h=1}^{H}\sum_{w=1}^Wx_{_{nchw}} σnc(x)=1HWh=1Hw=1W(xnchwμnc(x))2+ε\sigma_{nc}(x)=\sqrt{\frac {1}{HW}\sum_{h=1}^{H}\sum_{w=1}^W(x_{_{nchw}}-\mu_{_{nc}}(x))^2+\varepsilon}
Conditional Instance Normalization
IN是学习一个单一的仿射参数集(γ\gammaβ\beta),而CIN则是为每一种风格都学习一个仿射参数集(γs\gamma^sβs\beta^s):
CIN(x;s)=γs(xμ(x)σ(x))+βsCIN(x;s)=\gamma^s(\frac {x-\mu(x)}{\sigma(x)})+\beta^s 在生成网络中应用CIN层,使用相同的卷积层参数和不同的IN层仿射参数便可以生成不同风格的图像。
但这种方法存在一个弊端,每一对仿射参数(γ\gammaβ\beta)对应一层feature map,一种风格则需要2F个参数,F表示整个网络中的feature map总数。因为仿射参数量和风格数成线性关系,这种方法开销较大,很难扩展出大量的风格。

Adaptive Instance Normalization(AdaIN)

与上述方法不同,AdaIN中没有可学习的仿射参数,即仿射参数不是通过学习得到。AdaIN接收两个信息源:内容输入x\bf x和风格输入y\bf y,将x\bf x的通道级(channel-wise)均值和标准差匹配到y\bf y的通道级均值和标准差上:
AdaIN(x,y)=σ(y)(xμ(x)σ(x))+μ(y)AdaIN({\bf x},{\bf y})=\sigma({\bf y})(\frac {{\bf x}-\mu({\bf x})}{\sigma({\bf x})})+\mu({\bf y}) 简单地来讲,AdaIN在feature map层面上通过改变特征的数据分布来实现风格迁移,计算开销和存储开销都较小,且易实现。

网络结构

网络结构只是简单的自编码器结构,没有使用到GAN.
内容图像cc和任意风格图像ss送入编码器ff进行编码,然后通过AdaIN层进行整合:
t=AdaIN(f(c),f(s))t=AdaIN(f(c),f(s)) 然后通过解码器gg将整合编码tt映射会图像空间。
T(c,s)=g(t)T(c,s)=g(t) 为了保持AdaIN层风格迁移后的数据分布,解码器中不使用任何的归一化层。

损失函数

1.内容损失
Lc=f(g(t))2L_c=||f(g(t))||_{_2} 其中tt为AdaIN层的输出,这里计算目标特征和输出图像特征的欧氏距离。
2.风格损失
Ls=i=1Lμ(ϕi(g(t)))μ(ϕi(s))2+i=1Lσ(ϕi(g(t)))σ(ϕi(s))2L_s=\sum_{i=1}^L||\mu(\phi_i(g(t)))-\mu(\phi_i(s))||_{_2}+\sum_{i=1}^L||\sigma(\phi_i(g(t)))-\sigma(\phi_i(s))||_{_2} 其中ϕi\phi_i表示编码器网络中的第i层。

总损失函数
L=Lc+λLsL=L_c+\lambda L_s

总结

AdaIN是在feature map层面上改变数据分布,可以通过控制改变AdaIN层中的仿射参数来实现风格迁移的效果。因为AdaIN层与BN、IN类似,都是在网络内部改变feature map的分布,所以可以把风格迁移的任务交给AdaIN,在网络结构上实现其他的任务。

参考文献

1.Huang X, Belongie S. Arbitrary Style Transfer in Real-Time with Adaptive Instance Normalization[C]. international conference on computer vision, 2017: 1510-1519.

相关文章:

  • 2021-08-16
  • 2021-11-13
  • 2021-09-07
  • 2021-11-14
  • 2022-12-23
猜你喜欢
  • 2021-12-02
  • 2022-12-23
  • 2021-11-14
  • 2021-12-25
  • 2021-04-13
  • 2021-07-12
相关资源
相似解决方案