碎碎念:毕设打算做风格迁移的,然而没有接触过这方面,记录一下qwq
Abstract
基于现有的风格迁移框架处理高分辨率有以下缺点:
- 内存成本
- 笔触过小
针对上述两点问题,本文提出Ultra-Resolution Style Transfer(URST)框架
。
针对内存问题,URST
提出:
- 将图像划分为patch
- 提出
Thumbnail Instance Normalization(TIN)
执行基于patch的风格迁移。TIN
可提取缩略图特征的归一化统计信息,并应用于patch,保证了不同patch间的风格一致性
基于本文实验,总结URST
有以下优点:
- 将输入图像切割为patch,同时采用
TIN
技术,实现任意分辨率的风格迁移 - 得益于笔触感知损失
stroke perceptual loss
在扩大笔触URST
在超高分辨率上优于现有的SOTA
方法 URST
易于嵌入现有的风格迁移算法方法中,无需训练即可提高性能
Introduction
随着深度学习的发展,风格迁移已取得了显著的成功。然而这些工作极少涉及到高分辨率的风格迁移。在自然场景中,超高分辨率图像常出现在大型海报、摄影作品和超高清视频(例如8K)中。在设计超高分辨率图像时,主要有两个需要攻克的问题:
- 超高分辨率图像处理时的内存成本可能超过GPU内存
- 在超高分辨率的结果中,较小的笔触尺寸可能会导致不令人满意的纹理密度
针对内存问题,现有方法主要采用轻量级网络架构(Jing et al. 2020)
、模型修剪(An et al. 2020)
、知识蒸馏(Wang et al. 2020)
来降低内存成本。然而现有的方法大多治标不治本。
针对笔触较小的问题,现如今广泛的使用方法是增大笔触尺寸,现有方法大致分为两类:使用大型风格图像进行训练或推理(Jing et al. 2019; Li et al. 2017b; Zhang and Dana 2018)
,扩大风格迁移网络的感受野。然而这些方法大多需要额外的推理时间和内存,不适合超高分辨率的风格迁移。
本文提出针对超高分辨率的风格迁移框架(URST)
,步骤简述如下:
- 采用patch而非完整的图像作为输入,使得在有限的内存资源下处理任意高分辨率图像成为可能
- 用
TIN
代替original instance normalization (IN)
,以确保不同patch间的风格一致性 - 提出笔触感知损失作为神经风格迁移的辅助损失,激励风格迁移网络保持大笔触
Related Work
Neural Style Transfer
受卷积神经网络的启发,Gatys, Ecker, and Bethge 2016
首次提出基于CNN
的风格迁移算法。为加速神经风格迁移,Johnson, Alahi, and Fei-Fei 2016
和Ulyanov et al. 2016
采用训练前馈网络以学习特定的艺术风格。近年来,为提高风格迁移的效率,研究人员提出多种风格迁移(Chen et al. 2017; Dumoulin, Shlens, and Kudlur 2017; Li et al. 2017a; Zhang and Dana 2018)
和任意风格迁移(Guetal.2018;HuangandBelongie2017;Dengetal.2020;Luetal.2019;Shengetal.2018;Yaoetal.2019)
。目前神经风格迁移已取得很大的进展,但由于巨大的内存成本和较小的笔触尺寸,超高分辨率的风格迁移仍具有挑战性。
High-ResolutionNeuralStyleTransfer
限制高分辨率风格迁移的主要因素即是GPU内存。Anetal.2020
提出ArtNet
,即从GoogLeNet
修剪出的用于神经风格迁移的轻量级网络;Jingetal.2020
开发了一种基于MobileNet
的轻量级网络,与原有的VGG
编码器相比,降低了计算复杂性;Wangetal.2020
提出了基于蒸馏的方法,即使用预先训练的VGG19
作为老师,小型Encoder
作为学生,虽然减少了内存消耗,但在处理超高分辨率图像时仍会耗尽GPU内存。
Stroke Size Control in Neural Style Transfer
笔触尺寸是一个重要的感知因素,与风格迁移结果的质量高度相关。通常,带有大笔触的风格化结果往往比小笔触的风格化结果具有更好的外观。Gatysetal.2017
首次提出笔触尺寸与损失网络的感受野相关,此团队提出了由粗到细的方法,用大笔触生成风格化的结果。Wangetal.2017
提出分层网络来扩大笔触的大小,并用增加尺度的多次损失对其进行训练。Jingetal.2018
提出了具有多个笔触分支的特定风格网络MSG-Net
,通过缩放风格图像来控制笔触大小。然而这些笔触尺寸控制方法主要针对普通图像分辨率(例如1000*1000像素)下的风格迁移而设计的,难以应用于高分辨率图像。
Proposed Method
Overall Architecture
URST
由三个关键设计模块组成:
- 基于patch的风格迁移,将高成本的风格迁移任务划分为多个低成本的基于patch的风格迁移
TIN
可提取缩略图特征的归一化统计信息,并应用于patch,保证了不同patch间的风格一致性- 定义笔触感知损失
(stroke perceptual loss)
,激励风格迁移网络保持较大的笔触尺寸
URST
步骤简述如下:
以超高分辨率的内容图像
I
c
I_c
Ic作为输入,URST
可分为三个阶段:划分 dividing
、风格化stylization
、合成assembling
。
- 在划分阶段,首先为内容图像 I c I_c Ic生成一个缩略图 I t I_t It(下采样),然后将 I c I_c Ic划分为patch,即 { I p i ∣ i = 1 , 2 , … … , N } \{I^i_p|i=1,2,……,N \} {Ipi∣i=1,2,……,N}
- 在风格化阶段,
I
t
I_t
It首先送入风格迁移网络中手机归一化统计数据,然后利用这些归一化统计数据对patch进行风格化处理,得到风格化的patch,即
{
I
^
p
i
∣
i
=
1
,
2
,
…
…
,
N
}
\{\widehat{I}^i_p|i=1,2,……,N \}
{I
pi∣i=1,2,……,N}。注意,此处的风格迁移网络并不是特定的,现有的基于
IN
的方法都可作为风格迁移网络 - 在合成阶段,将所有风格化的patch合成一个超高分辨率的风格化图像 I ^ c \widehat{I}_c I c
由于风格化阶段使用的风格迁移网络不同,因而损失函数不同。为方便,本文统一将损失定义为原损失
L
o
\mathcal{L}_o
Lo。
在训练过程中,首先在风格化的缩略图上计算原损失
L
o
\mathcal{L}_o
Lo。此外,URST
还引入了辅助损失,即笔触感知损失stroke perceptual loss
,以提高超高分辨率风格迁移的质量。其核心思想是针对风格化patch,即
I
^
p
\widehat{I}_p
I
p,和上采样的patch,即
I
^
t
p
\widehat{I}_{tp}
I
tp(来源于风格化缩略图
I
^
t
\widehat{I}_t
I
t),之间的感知差异的惩罚。因此,
I
^
t
p
\widehat{I}_{tp}
I
tp的梯度流是分离的。
Patch-wise Style Transfer
为处理超高分辨率图像,本文提出基于patch的风格迁移。针对给定的超高分辨率的内容图像
I
c
I_c
Ic,本文使用一个步长为
S
S
S的
K
∗
K
K*K
K∗K的像素滑动窗口,将
I
c
I_c
Ic划分为多个重叠的patch,即
{
I
p
i
∣
i
=
1
,
2
,
…
…
,
N
}
\{I^i_p|i=1,2,……,N \}
{Ipi∣i=1,2,……,N}。考虑到GPU的内存资源有限,这些patch将分批送入网络中。经过风格化循环,可得到风格化patch,即
{
I
^
p
i
∣
i
=
1
,
2
,
…
…
,
N
}
\{\widehat{I}^i_p|i=1,2,……,N \}
{I
pi∣i=1,2,……,N}。最后,删去重叠区域合成完整的图像
I
^
c
\widehat{I}_c
I
c。
与现有的方法相比,基于patch的风格迁移可以灵活处理任意高分辨率图像,也可嵌入现有的风格迁移方法中,例如AdaIN
、WCT
和LinearWCT
。
然而由于每个patch计算的单个归一化统计数据,风格化后的patch其风格显然是不一致的。因此本文提出缩略图实例归一化TIN
解决此问题。
Thumbnail Instance Normalization
IN
是神经风格迁移中使用广泛的归一化。给定输入张量
x
∈
R
N
×
C
×
H
×
W
x\in \R^{N\times C \times H \times W}
x∈RN×C×H×W,IN
计算如下:
I
N
(
x
)
=
γ
(
x
−
μ
(
x
)
σ
(
x
)
)
+
β
IN(x)=\gamma\Big(\frac{x-\mu(x)}{\sigma(x)}\Big)+\beta
IN(x)=γ(σ(x)x−μ(x))+β
其中,
μ
(
x
)
,
σ
(
x
)
∈
R
N
×
C
\mu(x),\sigma(x) \in\R^{N\times C }
μ(x),σ(x)∈RN×C是channel-wise
统计,
γ
,
β
∈
R
C
\gamma,\beta \in\R^C
γ,β∈RC是可训练仿射参数。
然而,由于基于IN
的网络生成的风格化patch在风格上是不一致的,IN
并不适合基于patch的风格迁移。Figure 4
可说明该问题,即风格不一致的根本原因在于每个patch计算出的单个归一化统计量不同。
基于上述分析,本文提出基于IN
的简单变体,即缩略图实例归一化TIN
。针对给定的patch
x
∈
R
N
×
C
×
H
×
W
x\in \R^{N\times C \times H \times W}
x∈RN×C×H×W和缩略图
t
∈
R
N
×
C
×
H
t
×
W
t
t\in \R^{N\times C \times H_t \times W_t}
t∈RN×C×Ht×Wt,TIN
计算如下:
T
I
N
(
x
,
t
)
=
γ
(
x
−
μ
(
t
)
σ
(
t
)
)
+
β
TIN(x,t)=\gamma\Big(\frac{x-\mu(t)}{\sigma(t)}\Big)+\beta
TIN(x,t)=γ(σ(t)x−μ(t))+β
其中,
μ
(
t
)
,
σ
(
t
)
∈
R
N
×
C
\mu(t),\sigma(t) \in\R^{N\times C }
μ(t),σ(t)∈RN×C是输入缩略图
t
t
t的channel-wise
的均值和标准偏差。
通过此方式,TIN
可确保不同的patch其风格一致性。
同样,IW
是基于二阶统计量(即协方差矩阵)的标准化方法,被广泛用于神经风格迁移方法中。本文基于IW
也提出了TIW
,将在补充材料对此进行说明。
Stroke Perceptual Loss
基于所提出的TIN
,本文提出扩大笔触尺寸的辅助损失,称为笔触感知损失stroke perceptual loss
:
L
s
p
(
I
^
p
,
I
^
t
p
)
=
∥
F
l
(
I
^
p
)
−
F
l
(
I
^
t
p
)
∥
2
\mathcal{L}_{sp}(\widehat{I}_p,\widehat{I}_{tp})=\lVert \mathcal{F}_l(\widehat{I}_p)-\mathcal{F}_l(\widehat{I}_{tp}) \rVert^2
Lsp(I
p,I
tp)=∥Fl(I
p)−Fl(I
tp)∥2
其中,
F
l
\mathcal{F}_l
Fl是VGG
网络中该层的输出特征图;
I
^
p
\widehat{I}_p
I
p是小笔触的风格化patch,
I
^
t
p
\widehat{I}_{tp}
I
tp是风格化patch,采用大笔触,裁剪并上采样于风格化的缩略图
I
^
t
\widehat{I}_t
I
t。
由于TIN
,输入对
(
I
^
p
,
I
^
t
p
)
(\widehat{I}_p,\widehat{I}_{tp})
(I
p,I
tp)有相同的内容和风格,但是笔触尺寸不同。因此,
L
s
p
\mathcal{L}_{sp}
Lsp主要可以测量笔触感知差异,即优化此损失可激励风格迁移网络生成与目标
I
^
t
p
\widehat{I}_{tp}
I
tp等大的笔触。
Total Loss
总损失函数表现如下:
L
=
L
o
+
λ
L
s
p
\mathcal{L}=\mathcal{L}_o+\lambda\mathcal{L}_{sp}
L=Lo+λLsp
其中,
λ
\lambda
λ是平衡
L
o
\mathcal{L}_o
Lo和
L
s
p
\mathcal{L}_{sp}
Lsp的权重。在本文实验中,
λ
\lambda
λ默认为
1.0
1.0
1.0。