Neural Style Transfer Review II

Neural Style Transfer Review II

快速图像重建

  • 提出的原因:解决慢速图像重建效率过低的问题,只需一次前向传播即可完成风格的转换。
  • 问题的目标:在训练集 $I_c$ (内容图片),$I_s$ (风格图片,一种风格或者多种风格)上训练网络 $g$,找到参数 $\theta$:

Parametric Per-Style-Per-Model

Perceptual losses for realtime style transfer and super-resolution & Texture networks: Feed-forward synthesis of textures and stylized images

两者的想法相似,都是基于 Gatys 的方法,将其改为一个网络,测试时可以通过一次前向传播得到结果,只不过两者的网络结构不同。

  • 训练目标:训练 Generator Network 中的参数(卷积核参数等);
  • 输入:内容图像 $y$;
  • 输出:Generator Network 的 output;
  • 训练手段:$y$ 加上一些随机噪声,经过 Generator Network 之后得到的输出和 style image (不作为显示输入,但计算 loss 的时候需要用到,需要指定) 以及 $y$ 本身(作为 content image)计算 loss,之后 SGD 训练;
  • 训练集:part of ImageNet ILSVRC 2012.

Generator Network 使用 multi-scale 的结果。

  • 训练目标:和上面类似,$f_W$ 里面的参数;
  • 输入:$x$;
  • 输出:$\hat{y}$;
  • $x = y_c$;
  • 计算损失并反向传播。

Image Transform Net 结构使用了 resnet.

  • 优点:速度有明显提升;
  • 缺点:有 Gatys 类方法本身存在的缺陷。

Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis

想法:使用 Instance Normalization 代替 Batch Normalization 即 batch size = 1.

实验发现这样做收敛更快,并且视觉效果更好。一个可能的解释是之前也提到过均值和方差某种意义上也可以代表风格,使用 BN 可能会使得不同的输入图像之间相互干扰,使用 IN 可以更好地消除掉该图像的风格特征,方便学习 style 风格图像的特征。

Non-parametric Per-Style-Per-Model

Precomputed real-time texture synthesis with markovian generative adversarial networks

基于 MRF Patch-base 匹配策略,使用 GAN.

由于使用 patch 匹配,空间连续性和观感较好,但对于图像语义的理解有欠缺。

Multiple-Style-Per-Model

想法:PSPM 每个模型只适用于一种风格,灵活性不够,所以之后提出了 MSPM,一个模型可以完成多种风格的迁移。大致思路有两种:

  • 为每个 style 绑定一部分参数,训练时对每个特定的 style 只需改变它所对应的参数,测试时根据想要生成哪种风格的图片决定使用哪种参数,只需输入内容图片并选择参数即可;
  • 无需设置绑定,风格图像和内容图像同时作为输入。

每个 style 绑定一部分参数

A learned representation for artistic style

想法:结合之前的工作以及实验发现,将图像进行不同的仿射变换就可以达到不同的风格效果,于是他们将 IN 层变为 CIN (Conditional Instance Normalization),即:

其中,$s$ 是想要变换的风格在风格集中的序号,每个风格变换需要额外学习 $\gamma, \beta$ 这两个参数。

网络结构:U-Net

StyleBank: An Explicit Representation for Neural Image Style Transfer

想法:将 style 和 content 的训练部分解耦,使用不同的网络部分分别训练这两部分,content 部分由所有风格共享,style 部分根据风格不同划分为不同的子部分,对应不同的风格。

网络结构:

Style bank 层本质上是一个卷积层,对每个不同风格学习一个不同的卷积参数。loss 还是和 Gatys 用的损失函数一样。

上述两种方法确实能够更灵活地转换多种风格,但随着风格数量的增多,网络也将不可避免地变大。

风格图像和内容图像同时作为输入

Diversified texture synthesis with feed-forward networks

想法:只用同一个网络结构,style 和 image 同时输入。

对支持的 style 进行 one-hot 编码,style 部分的网络将对应的 style 加上一个随机噪声之后经过卷积等操作得到 style encoding,再结合上面的 content 部分子网络最后得到输出图片。

PS:diversity loss 是在保证 style 大致类似的情况下做一些变化,避免完全重复。

Multi-style generative network for realtime transfer

想法:和上面类似。

通过 VGG 网络提取到的风格特征与风格化网络中的多个尺度的中间层的 feature map 通过提出的 Inspiration Layer 结合在一起,相当于将风格特征作为信号输入到网络中来决定要风格化成哪一个风格。

对希望学习到的 $\hat{\mathcal{Y}}^{i}$:

进行一个 content feature 和 target style 进行近似:

$W$ 是需要学习的矩阵。

上面的两种方法在速度上有提升,并且提高了网络的灵活性,但还是只能指定固定的风格种类进行迁移,并且图像结构布局上的一致性有待提升。

Arbitrary-Style-Per-Model

由于上述模型还是存在局限性,这一类模型希望能够对任意的输入风格进行迁移,而不只局限于特定的几种风格。

Non-parametric ASPM with MRFs

Fast patch-based style transfer of arbitrary style

想法:使用 patch 匹配方法在风格图像中抽取特征。

通过 VGG 抽取 style image 和 content image 的 feature 之后对每个 content patch 与最相似的 style patch 交换,之后再进行图像重建。

基本实现了任意风格转换,但效果不是特别优秀。

Parametric ASPM

Arbitrary style transfer in real-time with adaptive instance normalization

基于 “A learned representation for artistic style” 的想法,使用 IN 可以拟合风格。

作者提出 AdaIN 来代替 CIN,根据输入风格图像的 feature 来确定 $\sigma, \mu$:

其中 $\mathcal{F}$ 来源于预训练 VGG,之后的 decode 部分通过生成图片来计算的损失来学习参数。

优点是基本实现了快速转换,缺点是在训练集没有见过的风格上的泛化能力较差,并且如果风格图片比较复杂,生成的效果较差,可能的原因是 AdaIN 结构相对来说太简单了,均值和方差不能完全描述复杂风格。

Dynamic Instance Normalization for Arbitrary Style Transfer

Yongcheng Jing et al. AAAI 2020.

作者针对 IN 层进行了一些改进,之前有 IN, CIN, AdaIN 三种 IN 类技术,对于 ASPM 使用的 AdaIN,如果希望表现比较好,需要如下条件:

  • content image 和 style image 必须通过同一个 encoder 提取特征;
  • encoder 的结构要比较复杂,例如使用 VGG,否则可能提取不到特征。

这样就导致在一些计算资源受限的场景下,AdaIN 无法很好地发挥作用,因此需要一种不需要很多计算资源也能有很好效果的模型,作者提出了 DIN (Dynamic Instance Normalization)。

DIN 实际上是 IN + Dynamic Convolution,先对 content feature 进行 IN,之后根据 style feature 生成卷积核参数,对 IN 之后的 content feature 进行卷积,并且支持多种卷积操作。

该方法的优点是速度较快,由于可以使用不同的的卷积操作,合成的图像质量还不错。

Universal Style Transfer via Feature Transforms

想法:如果使用学习的方法,那么能够支持的风格就和训练集中的风格明显相关,作者希望通过一系列特征变换来解决不能泛化的问题。

作者发现在 VGG 提取的特征上用 ZCA whitening transform 能够把一张图片的风格信息抹去,而保留原有高级语义信息,之后应用 coloring transform 将风格图的颜色进行迁移,即可重建出效果不错的风格化结果。

WTC 过程:

其中:$D$ 是协方差矩阵的对角矩阵、$E$ 协方差矩阵的正交矩阵。

上色过程(实际上是 WTC 的逆过程):

只需预训练重建的 decoder,之后对输入的图像和内容图片进行变换即可。

优点:泛化能力很强,细节方面(笔锋大小等)有待提升。

Avatar-Net Multi-scale Zero-shot Style Transfer by Feature Decoration

Sheng at el. CVPR 2018.

作者提出的也是基于 patch 匹配 + multi-scale 的迁移策略。之前的 style-swap 是基于 patch 匹配的实现,但是实验发现生成的图片太偏向与内容图片,在匹配的时候寻找的 patch 基本上都是风格图片中服从内容图片取值分布的 patch,所以在风格和内容图片差异很大时,效果不好,所以研究人员提出将两张图片变换到同样的特征空间中,在这个空间进行交换,并通过 multi-scale 网络进行重建。

主要步骤:

先将其都投影到相同的特征空间:

$W_c, W_s$ 是根据两者协方差矩阵计算出来的 whitening 算子,进行卷积操作之后能保留原本特征的同时服从均匀分布。

之后匹配并进行重组,和 style-swap 类似,这里变换为高效的卷积操作:

$\mathcal{B}$ 是对每个 content patch 的匹配结果进行 0-1 打分,取接近的 style patch 为 1,之后交换。

然后将其进行反变换:

网络结构:

其中,也用到了一些 AdaIN 的思想:

通过引入风格特征的统计数值来进一步提升效果。

观察发现图像的总体风格比较一致,但是细节方面可能有轻微形变,也就是 content 内容可能会丢失或改变。

Meta Networks for Neural Style Transfer

Shen at el. CVPR 2018.

作者在这里用到了 Meta Network 的想法,提出的背景还是基于 ASPM,以及希望减少模型大小。为了建立输出图片和输入图片之间的映射,作者使用了一个 Meta Network 直接预测这个映射的参数,对于每个新的风格,只需要使用 Meta Network 进行一次前向传播就可以得到一组映射参数,之后输入图片,使用这一组参数就可以得到结果 (存疑:这样可以减少模型的大小)

简介一下 Meta Network:

考虑如下优化问题,$f(x), h(x)$ 都是已经确定的函数映射,优化目标为:

根据 $a,b$ 是否固定可以分为三种情况:

  1. $a = a_0, b=b_0$ 固定,是一个凸优化问题,可以直接使用梯度下降法进行优化;
  2. $b=b_0$ 固定,$a$ 是变量,那么根据 1 可以知道,对每一个固定的 $a$,都有一个 $x$ 使函数达到最优,也就是存在 $\mathcal{N}: a | \rightarrow x$ 的映射,这个映射可以用一个网络拟合,记为 $\mathcal{N}(a;w)$,其中 $w$ 是参数,考虑 Empirical Risk Minimization 找到 $\underset{w}{\operatorname{argmin}} \sum_{a}|f(x)-f(a)|+\lambda\left|h(x)-h\left(b_{0}\right)\right| \text{where } x = \mathcal{N}(a;w)$;
  3. $a, b$ 均为变量,根据 2 可以知道,对每一个固定的 b,都能找到 $\mathcal{N}(a;w)$ 的参数 $w$ 使得优化目标最小,所以存在 $\operatorname{meta} \mathcal{N}: b | \rightarrow \mathcal{N}(\cdot ; w)$,可以通过对 $\theta$ 的优化得到函数最优值,即优化目标变为 $\underset{\theta}{\operatorname{argmin}} \sum_{b} \sum_{a}|f(x)-f(a)|+\lambda|h(x)-h(b)|$.

相同的思路,可以将风格转换的优化目标记为:

根据技术不同,可以和上面的讨论结合,分为:

  1. 固定内容和风格图片:$\min_I(\lambda_c\left|\mathbf{C P}\left(I ; w_f\right)-\mathbf{C} \mathbf{P}\left(I_c ; w_f\right)\right|_2^2+ \lambda_s\left|\mathbf{S P}\left(I ; w_f\right)-\mathbf{S} \mathbf{P}\left(I_s ; w_f\right)\right|_2^2 )$,这也就是 Gatys 的基于优化的方法;
  2. 不同内容和固定风格图片:
    • $\begin{aligned} \min _{w} \sum_{I_{c}}\left(\lambda_{c} | \mathbf{C}\right.&\left(I_{w} ; w_{f}\right)-\mathbf{C} \mathbf{P}\left(I_{c} ; w_{f}\right) |_{2}^{2}+\ &\left.\lambda_{s}\left|\mathbf{S} \mathbf{P}\left(I_{w} ; w_{f}\right)-\mathbf{S} \mathbf{P}\left(I_{s} ; w_{f}\right)\right|_{2}^{2}\right)\ \end{aligned}$
    • 其中 $I_w = \mathcal{N}(I_c;w)$,这就是 Johnson 提出的 PSPM 模型;
  3. 不同内容和不同风格图片:
    • $\min _{\theta} \sum_{I_{c}, I_{s}}\left(\lambda_{c}\left|\left(\mathbf{C} \mathbf{P}\left(I_{w_{\theta}} ; w_{f}\right)-\mathbf{C} \mathbf{P}\left(I_{c} ; w_{f}\right)\right)\right|_{2}^{2}+\right.$
      $\left.\lambda_{s}\left|\left(\mathbf{S} \mathbf{P}\left(I_{w_{\theta}} ; w_{f}\right)-\mathbf{S} \mathbf{P}\left(I_{s} ; w_{f}\right)\right)\right|_{2}^{2}\right)$;
    • 这里:$I_{w_\theta} = \mathcal{N}(I_c;w_\theta), w_{\theta} = \mathcal{MetaN}(I_s;\theta)$;
    • 这就是 ASPM 的任务,作者基于这个思路,使用找到最优的参数 $\theta$,以预测 $w$,之后这个网络一次前向传播就得到了输出图片。

训练过程如下:

模型比较阶段,作者也和 AdaIN 以及 Johnson 的网络进行了比较,作者也提到了 AdaIN 效果的优秀很依赖于 VGG-19 的深层编码,实验发现如果使用了其他较浅的编码器那么 AdaIN 的效果会变差。这篇工作不需要很深的编码器,作者也比较了自己的模型比较小,但这里他并没有把自己预测参数的网络的大小算进去,所以得到自己模型显著小于其他人的结论还是存在疑问(预测参数的网络也是使用 VGG-19,所以肯定不会太小)。

对比阶段也只和 Gatys 以及 Johnson 的工作比了一下效果,中规中矩,没有更多的比较结果。

ZM-Net: Real-time Zero-shot Image Manipulation Network

Wang at el.

作者将风格迁移重新归纳为给定指导信号,根据该信号对图像重新变形的过程。这里的指导信号不局限于风格图片,还有可能是文本信号或者直方图信息等等,这使得任务适应的领域更加广泛。

作者提出了 P-Net + T-Net 的网络结构方式,T-Net 用来对图像进行变换,P-Net 用来生成 T-Net 中的一些跟指导信号有关的参数,这样来实现泛化(对任意风格都能进行变换)。

实际上,为了实现 T-Net 中动态根据不同指导信号生成风格,作者提出了 DIN 层,这里的 DIN 就是把之前的 CIN 里面与每个风格绑定的参数改为了由 P-Net 根据风格生成的参数。P-Net 的主要作用就是根据指导信号生成这些参数,方式可以是卷积或者线性投影等。主要的公式如下:

实验中使用了训练数据扩展,使用 Gatys 的模型,选取 300 张风格图片,若干内容图片输入到模型中得到输出,作为扩展的训练数据,据作者指出这样使得 Loss 减少了一半,并且能够提高在没有见过的风格中的表现 (但感觉有效的风格并没有增加,也能叫做扩展训练集中的风格吗?)

Word Embedding 作为指导信号。作者只训练了针对 noon, night 的模型,该模型的 P-Net 使用 word embedding 作为输入信号,并且 T-Net 和使用风格图片输入的模型中的 T-Net 不是相同的参数。训练数据就是一些带标签(noon, night)的图片,并且能够泛化到没见过的词语,如:morning, afternoon。不过感觉还是不成熟。

因为是根据输入风格预测的参数,虽然解决了 MSPM 中 CIN 不能泛化的问题,但是生成图像的质量堪忧,不过 guiding signal 中不仅限于风格图片的思路还是比较新,word embedding 这一类的任务有改进的空间。

Learning Linear Transformations for Fast Image and Video Style Transfer

Li at el. CVPR 2019.

针对之前 ASPM 模型中计算过于复杂或者过于简单(如 AdaIN,只考虑均值和方差,并没有考虑协方差),在某些情况下表现不好的问题,作者提出了 Linear Transformation 这种提高效率并加入协方差的方法。

作者的方法本质上是将 “Universal Style Transfer via Feature Transforms” 中 WCT 的矩阵分解变为一个全连接层预测矩阵分解的结果:

因为全连接比分解更快,所以效率更高。并且线性变换能够防止扭曲,在照片风格迁移中能发挥作用。并且作者发现,decoder 中过多的非线性层、协方差矩阵的秩过大和最高层的分辨率过大都是可能导致扭曲的原因,所以作者使用较浅的 encoder-decoder (相比 AdaIN 和 WCT),效率也因此更高。(AdaIN 和 WCT 在 encoder-decoder 较浅的时候表现不好)。

效率方面比 WCT 有很大提高,转换效果也说得过去,但因为是预测而不是真的矩阵分解,个人感觉还是 WCT 的效果好一些,并且观察感觉在图片风格迁移中有出现失真的情况。

一些拓展领域

一些应用主要从提高生产作品的观感体验或者迁移到其他领域对当前的方法进行拓展。

  • 提高观感效果;
  • 根据图像语义进行迁移;
  • 图片中特定物体风格迁移;
  • 根据涂鸦生成艺术画;
  • 场景迁移;
  • 肖像迁移;
  • 视频风格迁移;
  • 真实场景风格迁移;
  • 弱监督属性迁移;
  • 时尚风格迁移;
  • 音频风格迁移。

参考文献

[1] 图像风格化算法综述三部曲

[2] Neural Style Transfer: A Review

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2020 Bowen
  • Powered by Hexo Theme Ayer

请我喝杯咖啡吧~

支付宝
微信