0.论文的基本信息
被引用:2次(截止到2023年6月15日)
哈佛大学作者
1.论文解决的问题
- 将视觉逼真度定义为一种新风格传递的评价标准,提出了一种基于矢量量化的高视觉逼真度风格迁移算法
- 设计了一个基于离散和连续两种风格传递架构的框架,允许用户灵活地控制风格相似性、内容保存和风格化结果的视觉逼真度。
2.目前工作存在的不足
3.论文的亮点
3.1、给出了风格迁移中三个比较重要的指标
(1) 风格保真度
通过计生成图像和风格图像之间的Gram矩阵
(2)内容的逼真度
通常计算感知距离或者LPIPS距离评测
(3)视觉的逼真度
本文是将所有真实的艺术作品都属于一个分布T,生成图像越接近分布T,保真度越高,上图第三列常见的神经风格迁移方法,保存了风格图像的纹理,所有较低的保证度
4.pipline
(1)训练阶段一
训练encoder和deocoder
encoder和decoder的网络采用的是两层的卷积层,目标是重建任务,恢复原始的图像。不同于传统vgg网络和resnet网络。两层的卷积层只能够提取到浅层次的图像的信息特征,对于图像的风格特征并不能更好的去探索(之前有篇文章已经解释了)
训练loss包括两个,一个是重建loss,还有一个是对抗loss
L
A
E
(
E
C
,
D
C
)
=
∣
∣
c
r
e
c
−
c
∣
∣
+
L
a
d
v
(
E
C
,
D
C
,
D
C
)
\mathcal{L}_{AE}(E_C,D_C)=||c_{rec}-c||+\mathcal{L}_{adv}(E_C,D_C,\mathbb{D}_C)
LAE(EC,DC)=∣∣crec−c∣∣+Ladv(EC,DC,DC)
L
a
d
v
(
E
C
,
D
C
,
D
C
)
=
log
D
C
(
c
)
+
log
(
1
−
D
C
(
c
r
e
c
)
)
\mathcal{L}_{adv}(E_C,D_C,\mathbb{D}_C)=\log\mathbb{D}_C(c)+\log(1-\mathbb{D}_C(c_{rec}))
Ladv(EC,DC,DC)=logDC(c)+log(1−DC(crec))
训练codebook
提取特征
z
c
=
E
^
C
(
c
)
,
z
s
=
E
^
S
(
s
)
.
z_c=\hat{E}_C(c),\quad z_s=\hat{E}_S(s).
zc=E^C(c),zs=E^S(s).
然后计算矢量特征
z
^
c
\hat{z}_c
z^c和
z
^
s
\hat{z}_s
z^s
Q
Z
(
z
)
:
=
arg
z
k
∈
Z
∣
∣
z
−
z
k
∣
∣
,
Q_{\mathcal{Z}}(z):=\operatorname{arg}\limits_{\mathbf{z}_k\in\mathcal{Z}}||z-\mathbf{z}_k||,
QZ(z):=argzk∈Z∣∣z−zk∣∣,
计算矢量特征,然后再通过decoder进行进行显示
z
^
c
=
Q
z
p
h
o
t
o
(
z
c
)
,
z
^
s
=
Q
Z
a
r
t
(
z
s
)
,
\hat{z}_{c}=Q_{z_{photo}}(z_{c}),\quad\hat{z}_{s}=Q_{\mathcal{Z}_{art}}(z_{s}),
z^c=Qzphoto(zc),z^s=QZart(zs),
loss计算,其中sg操作是不使用梯度下降的方法
L
A
E
^
(
E
˚
C
,
D
˚
C
,
Z
p
h
o
t
o
)
=
L
A
E
(
E
^
C
,
D
^
C
)
+
(
8
)
∣
∣
s
g
[
z
c
]
−
z
^
c
]
∣
∣
+
∣
∣
s
g
[
z
^
c
]
−
z
c
]
∣
∣
,
\begin{aligned} \mathcal{L}_{\hat{A E}}(\mathring{E}_{C},\mathring{D}_{C},\mathcal{Z}_{p h o t o})& =\mathcal{L}_{AE}(\hat{E}_C,\hat{D}_C)+\quad(8) \\ &||\mathsf{s g}[z_{c}]-\hat{z}_{c}]||+||\mathsf{s g}[\hat{z}_{c}]-z_{c}]||, \end{aligned}
LAE^(E˚C,D˚C,Zphoto)=LAE(E^C,D^C)+(8)∣∣sg[zc]−z^c]∣∣+∣∣sg[z^c]−zc]∣∣,
(2)训练阶段2,训练SGA
SGA模块是由三部分组成,Resnet弄块,两个attention模块。具体计算方式,其中
z
~
=
R
e
s
N
e
t
(
z
c
)
\tilde{z}=ResNet(z_c)
z~=ResNet(zc)
z
y
=
SGA
(
z
c
,
z
s
)
=
Attn
(
Attn
(
z
~
c
,
z
~
c
,
z
~
c
)
,
z
s
,
z
s
)
.
z_y=\text{SGA}(z_c,z_s)=\text{Attn}(\text{Attn}(\tilde{z}_c,\tilde{z}_c,\tilde{z}_c),z_s,z_s).
zy=SGA(zc,zs)=Attn(Attn(z~c,z~c,z~c),zs,zs).
该种计算方式能够更好的保存内容信息,同时SGA模型进行M次,获得了更好的效果。损失函数分为内容损失,风格损失和对抗训练损失
L
c
o
n
t
e
n
t
=
∣
∣
z
y
−
z
c
∣
∣
,
\mathcal{L}_{c o n t e n t}=||z_y-z_c||,
Lcontent=∣∣zy−zc∣∣,
L
s
t
y
l
e
=
∣
∣
μ
(
z
y
)
−
μ
(
z
s
)
∣
∣
+
∣
∣
σ
(
z
y
)
−
σ
(
z
s
)
∣
∣
\mathcal{L}_{s t y l e}=||\mu(z_{y})-\mu(z_{s})||+||\sigma(z_{y})-\sigma(z_{s})||
Lstyle=∣∣μ(zy)−μ(zs)∣∣+∣∣σ(zy)−σ(zs)∣∣
L
f
e
a
t
a
d
v
=
log
D
S
G
A
(
z
s
)
+
log
(
1
−
D
S
G
A
(
z
y
)
)
\mathcal{L}_{featadv}=\log\mathbb{D}_{SGA}(z_s)+\log(1-\mathbb{D}_{SGA}(z_y))
Lfeatadv=logDSGA(zs)+log(1−DSGA(zy))
另外SGA的优化目标
L
S
G
A
^
=
L
S
G
A
+
∣
∣
s
g
[
z
^
y
]
−
z
y
]
∣
∣
\mathcal{L}_{S\hat{GA}}=\mathcal{L}_{SGA}+||\mathrm{sg}[\hat{z}_y]-z_y]||
LSGA^=LSGA+∣∣sg[z^y]−zy]∣∣
(3)引号流程
5、总结
个人愚见:这篇文章能够取得比较好的效果,使用少量卷积层提取特征(相对于VGG和ResNet),因为这能够保存图片大量的图片信息,曾有篇文章指出为什么在我们的风格迁移中,总是使用VGG提取特征。