风格迁移系列论文阅读 之 Texture Networks: Feed-forward Synthesis of Textures and Stylized Images ( Ulyanov, ICML 2016)
ICML 2016, 在JJohnson之前,IN和AIN算法之前 358 cited
本文创举:在Gatys之后首先提出了一个前馈网络能够实时生成风格及纹理图像
本文贡献:1. 提出一个基于GramLoss的生成式的纹理合成模型;2. 前馈网络使Gatys方法不再依赖迭代;3. 多尺度的模型结构 注意一个网络只能对应一种纹理/风格;可处理任意尺寸?
解决痛点:在Gatys之后首次提出利用训练好的前馈网络实时生成纹理与风格
本文算法:
设计了一个多尺度的网络结构,loss沿用Gatys.
先搭建了一个朴素的基础网络:噪声投影-卷积-激活-上采样
然后发现多尺度的网络结构有利于收敛且参数更少,从而得到最终的网络结构:
噪声就是feature map形状的,而不是由一维矢量投影得到。(为什么?)
Feature map的通道从8到40
训练管程:
在纹理合成任务下,就是输入一组噪声,得到Gram_loss,更新参数;
在风格迁移任务下,输入的将是增加了噪声通道的RGB图像,
细节:
1. 使用padding有利于边界的合成
2. 使用最近邻上采样而不是转置卷积来实现分辨率增加(实验证明后者效果不好)
3. 通过上采样使不同的尺度得以按通道相加,而Channel-wise加之前必须BN归一化
4. 输入网络的噪声包括不同的尺度,实际上是一组噪声; 进一步构成一组batch
5. LAP-GAN 2015也是多尺度的,但是每一层地来训练(?),没有做到end2end
6. 风格迁移任务时Content只取一层(relu4_2)
7. 风格迁移任务时,训练阶段已经定下了Lc与Ls的权重,但是测试阶段实际上可以通过
对输入噪声乘以缩放因子来调节风格与内容之间的权重(噪声越大,风格越强)
8. 如果多尺度的层数很小的话,即把较大尺度的噪声置零,结果将类似vgg只取底层来求style_loss的效果!这是因为如果已经有一个多尺度的训练管程的话,大分辨率噪声将对应零碎的细节纹理。
启示:
1. 参见细节第8条:网络认为噪声决定了最终的纹理模式:高层噪声将决定整个图像的模式,底层噪声将决定图像的局部模式。
2. 如果用JJohnson的网络来类似地做纹理合成任务的话,那么内容图像将是噪声,也就是在噪声图像上增加风格了(实际上可以类似地搞多尺度,小尺寸噪声通过)