[1] Lin T , Ma Z , Li F , et al. Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer[J]. 2021.
1、摘要
本文的拉普拉斯金字塔风格迁移网络LapStyle是一种新的前馈方法,通过拉普拉斯金字塔生成低分辨率的内容图和高分辨率的细节图,首先使用draft子网络迁移低分辨率的全局样式图案,然后通过revision自网络对局部细节进行高分辨率的修正,通过多个拉普拉斯金字塔叠加revision修订网络,轻松生成更高分辨率的细节,最终通过聚合所有金字塔级别的输出获得。
实验表明,该网络可以实时合成高质量的风格化图像。
2、介绍
画家画画都是先画草图,再勾勒细节,受此启发,本文提出了LapStyle网络。
首先,我们设计了一个draft子网络来迁移低分辨率的全局风格(因为我们发现处理低分辨率图像时作用域大,所以关注的局部细节少,因此可以更容易迁移全局风格)。
同时revision子网络通过堆叠金字塔方式,生成高分辨率细节,通过聚合所有金字塔输出得到最终风格迁移图,进一步我们采用shallow patch discriminators 来(一个GAN)训练局部风格迁移。
总之贡献如下:
- 介绍一种新颖的框架“draft and revision”,通过将风格迁移过程分解为全局风格图像draft和局部风格图案revision,模拟绘画创作机制。
- 我们提出了一种新的前馈风格转换方法LapStyle。它使用绘图网络以低分辨率传输全局样式模式,并根据内容图像的多级拉普拉斯滤波输出,采用更高分辨率的修订网络以金字塔方式修订局部样式模式。使用拉普拉斯残差图来revision局部特征
- 实验表明,我们的方法可以生成高分辨率和高质量的样式化结果,其中全局和局部样式模式都被有效地合成。此外,所提出的LapStyle非常有效,可以以110 fps的速度合成512 pix的高分辨率图像。
3、我们的方法
文中使用了拉普拉斯金字塔,为了方便描述,我们假设现在这个金字塔只有两层,如图2虚线框所示。
3.1、网络结构
首先假设定义:
在第一阶段,draft首先使用预训练神经网络去encodes
内容图和风格图的features,然后它利用多粒度的风格特征去调整内容特征,最终使用decoder生成风格化后的图像
x
‾
c
s
\overline{x}_{cs}
xcs 。
在第二阶段,revision首先上采样
x
‾
c
s
\overline{x}_{cs}
xcs得到
x
′
c
s
{x'}_{cs}
x′cs,然后将
x
c
s
′
x_{cs}^′
xcs′ 和
r
c
r_c
rc 连接(concatenates),作为输入然后生成风格化的细节图像
r
c
s
r_{cs}
rcs 。最终,通过聚集(aggregation)金字塔输出得到
x
c
s
x_{cs}
xcs:
x
‾
\overline{x}
x
A代表aggregation函数。
decoder
将统计意义(或者某种关系)的矩阵层层运算(卷积可以视为一种函数,该函数的作用是映射),最终生成(映射到)的数字矩阵有可视化效果
3.2、Drafting Network
drafting网络旨在以低分辨率合成全局样式图案。为什么是低分辨率?由于更大的感受野和更少的局部细节,全局图案可以在低分辨率时轻松迁移。为了实现单一样式的迁移,在之前就直接训练一个encoder-decoder模块,其中仅使用context图像作为输入。为了更好地结合style特征和context特征,我们采用了最近任意风格转换中的AdaIN模块。
如图3,整个Drafting网络包括1个encoder、几个AdaIN模块和1个decoder。
1)encoder是一个VGG19的预训练模型,在训练的时候不训练这个encoder。那么给定 x ‾ c \overline{x}_c xc和 x ‾ s \overline{x}_s xs,这个VGG encoder会从2_1、3_1、4_1抽取出feature。
2)然后,我们使用AdaIN模块去调整content和style从2_1、3_1、4_1抽取出feature。
3)最后,左侧每层的2个结果经AdaIN模块后生成1个结果,通过残差跳跃连接多层的每个结果,最终得到 x ‾ c s \overline{x}_{cs} xcs
3.3、Revision Network
修订网络旨在修订粗糙的风格化图像,最终得到生成残余细节图像 r c s r_{cs} rcs,而最终的风格化图像是由 r c s r_{cs} rcs 和粗糙的风格化图像 x ‾ c s \overline{x}_{cs} xcs combining生成的。该程序确保 x ‾ c s \overline{x}_{cs} xcs 中全局风格图案的分布得到妥善的保护(即在后续操作中不过分改变当前结果的全局分布)。同时,利用残留细节图像对局部样式模式进行修正,使修正网络更容易实现。
如图4所示,revision网络是一个简单有效的decoder结构,只有一个下采样和上采样 的层。此外还有一个判别器(PatchGAN其实指的是GAN的判别器),通过对抗学习来帮助revision来提炼捕获精细的纹理。我们定义了一个判别器D,D有5个卷积层和32个隐藏通道。为什么选择一个较浅的D:1)避免过拟合,因为只有一个Style图像;2)控制感受野确保只能捕获局部模式。
4、训练
在训练时,Drafting和Revision网络都会使用content和style loss进行优化,Revision同时还使用了adversarial loss。所以接下来我们先解释style and content losses,因为LapStyle时每个样式一个模型,所以只有1个 x s x_s xs 和从内容数据集得到的1组 x c x_c xc
4.1、Style Loss
我们将relaxed Earth Mover Distance(rEMD)Loss和常用的Mean-variance Loss结合起来,作为我们的style loss。
STROTSS:提出了rEMDLoss和self similarity Loss
EMD用于度量两个分布之间的距离,那么style的表征为均值和方差,就是分布。如果style image和Stylized image的EMD很小,说明风格可能相近
开始给一个image,我们使用预训练的VGG19网络作为的encoder去抽取一组feature向量记为
F
=
F
1
−
1
,
F
2
−
1
,
F
3
−
1
,
F
4
−
1
,
F
5
−
1
F={F^{1−1},F^{2−1},F^{3−1},F^{4−1},F^{5−1} }
F=F1−1,F2−1,F3−1,F4−1,F5−1(注意:F是一个向量)。这个rEMDLoss是用来度量风格图
x
s
x_s
xs 和风格化后的图
x
c
s
x_{cs}
xcs 两者特征分布的距离。现在我们省略代表层序号的上下标。假设
F
s
F_s
Fs 和
F
c
s
F_{cs}
Fcs 是
x
s
x_s
xs 和
x
c
s
x_{cs}
xcs 的feature,则他们的rEMDLoss可以被如下计算:
其中余弦距离项
C
i
j
C_{ij}
Cij定义为:
余弦相似度:计算两个向量间的夹角的余弦值
余弦距离:1减去余弦相似度(范围在[0,2],满足非负性)
余弦距离通常描述相似度;欧氏距离通常描述差异距离;
即风格图和风格化图在均值和方差上都接近,那么两者在
风格上就相似
为了保持特征向量的距离(分布的相似性),我们同样采用了常用的mean-variance Loss:
μ和σ分别代表特征向量的均值和协方差
4.2、Content Loss
对于content loss我们采用常用的normalized perceptual loss和self similarity loss来衡量
F
c
F_c
Fc 和
F
c
s
F_{cs}
Fcs 两个的content。注意
h
c
s
h_{cs}
hcs=
h
c
h_c
hc,
w
c
w_c
wc=
w
c
s
w_{cs}
wcs,因为
x
c
x_c
xc 和
x
c
s
x_{cs}
xcs 是相同的分辨率。这个perceptual loss定义如下:
norm代表F向量的通道级别normalization。这个self-similarity loss是为了保持content image和stylized image在内容上的相关性,它定义如下:
为什么通道级norm可以用来计算content距离?个人认为直观上我们对于内容的感知是关注在高频信息的即边缘等信息,那么如果两幅图在内容上有相似性,那么也即是边缘信息分布有相似性,像素值大的地方两者都大,像素值小的地方两者都小。在这里 F c F_c Fc 是固定的,当 F c s F_{cs} Fcs 的像素值分布和 F c F_c Fc 一样是,两者的L2距离才会最小,故可以用norm后的通道级特征图的L2距离直接表示内容相似性
4.3、Loss of Drafting Network
在绘图网络的训练阶段,采用低分辨率图像content和 style图作为网络输入,并分别计算内容Loss和风格Loss。Draft网络的整体train目标定义为:
4.4、Loss of Revision Network Revision网络的loss为 Drafting网络loss的基础上加上对抗loss。
在该阶段训练时,drafting子网络的参数固定,训练建立在
x
c
s
x_{cs}
xcs 上的loss。为了更好学习局部的细粒度纹理,除了base content和style的loss:
L
b
a
s
e
=
L
D
r
a
f
t
L_{base}=L_{Draft}
Lbase=LDraft 外,我们还引入了判别器和针对训练Revision Network的adversarial loss,总体优化目标定义为:
R
e
v
R_{ev}
Rev 代表Revision Network,D代表判别器,β控制base style的迁移loss和adversarial loss之间的平衡。
L
a
d
v
L_{adv}
Ladv 是adversarial的标准的train loss
5、结果
在MS-COCO数据集上测试,有41%的人认为本文的效果最好:
同时给出了推理时间对比:
部分效果图: