这是我看的第一篇人脸生成相关的论文,对这个领域不熟悉,因此会更多关注该领域的问题,做法,套路。乍一看这个标题,可能是想把一张图里的风格(style)迁移到另一张图,把这些风格按层级划分,目的是解耦同一张图里的风格,这里的图指的是人脸,进一步你就能想到,人脸上有多种风格,解耦它们是为了可控地只迁移一种特定的风格,同时要维持其他风格不变。
image-to-image translation图到图迁移领域, 一般要解决两个问题:根据多种label转换图片——multi-label task,和生成多种风格的丰富的的图片——multi-style task。
对比SDIT, StarGANv2: SDIT的发色,眼镜,刘海共享一个编码空间,style code和目标label concat, 一起给到生成器去合成图片。StarGANv2学习混合的风格,再用目标label去索引style code, 它有一个多分支的mapping网络以latent code为输入,每个分支各输一个style code, 再根据目标label去索引用哪一个style code, 相应的,编码器,判别器都有多个分支。
他们认为过去的迁移方法经常带来不必要的修改,如把人换了,或者改变背景。此外还不能独立地学习如刘海,眼镜,发色的风格。这种不可控的迁移严重制约了实际使用。于是他们
从论文的图1看,他们把人脸图的原始label转化为层级的tags和attributes, 在标注上解耦了: 刘海,眼镜,发色的风格(他们用的CelebA-HQ数据集就只有这些标注)。
对于一张图,
x
i
,
j
x_{i,j}
xi,j表示它是带有tag i下属性j的图片.
s
i
,
j
s_{i,j}
si,j 表示该属性的style code。
他们的框架由以下模块组成
这些模块被独立优化,训练时随机采样tag i, 原始属性j, 目标属性
j
~
\tilde{j}
j~, 给定原始图片
x
i
,
j
x_{i,j}
xi,j, 该框架的训练阶段包括
该框架的损失函数包含
为了避免对图片进行全局的修改,希望修改只专注于表征风格的局部特征上,
测试时的流程如下, 先生成风格编码,代表你要给图片带来什么风格。style code可以来自latent code, 通过风格映射器M映射到style code的空间,得到很多随机的style code, 也可以从图片中使用风格提取器F抽取
随后流程都是一样的,编码 -> 修改 -> 生成,比如生成多个刘海图片,用刘海映射器M(i=刘海,j=有)生成很多风格编码喂给转换器T。要生成黑发棕发也只需把相应的风格编码喂给T。要生成带有不同tag的风格图像时,需要不同tag的风格编码,分别使用对应tag的风格转换器,分多次修改编码。
为了避免全局修改,使修改只作用在感兴趣的局部,而不改变背景光照等,比如戴眼镜只作用在眼睛部位,他们引入了基于特征的局部转换器(Feature-based Local Translator), Translator除了输出修改后的特征e外,还会输出同样大小的m,f, 其中m用于产生注意力的mask, f的作用尚不清楚,转换后的最终输出为
σ
(
m
)
⋅
e
+
(
1
−
σ
(
m
)
)
⋅
f
\sigma(m) \cdot e + (1-\sigma(m)) \cdot f
σ(m)⋅e+(1−σ(m))⋅f
另一方面,他们觉得在不同性别,年龄这些和tag无关的标签下,tag的属性是不平衡的,他们把这些和tag无关的标签作为判别器的参数,使判别器注意到这种不平衡,并激励转换器不要修改tag无关的条件(????不懂)
L
a
d
v
′
=
2
E
∗
i
,
j
,
x
[
log
(
D
∗
i
,
j
(
x
i
,
j
,
y
i
)
)
]
L'_{adv}=2\mathbb{E}*{i,j,x}[\log({D*{i,j}(x_{i,j},y_i)})]
Ladv′=2E∗i,j,x[log(D∗i,j(xi,j,yi))]
+
E
∗
i
,
j
,
x
,
j
~
,
z
[
log
(
1
−
D
∗
i
,
j
~
(
x
i
,
j
~
,
y
i
)
)
]
+\mathbb{E}*{i,j,x,\tilde{j},z}[\log(1-{D*{i,\tilde{j}}(x_{i,\tilde{j}},y_i)})]
+E∗i,j,x,j~,z[log(1−D∗i,j~(xi,j~,yi))]
+
E
∗
i
,
j
,
x
,
j
~
,
z
[
log
(
1
−
D
∗
i
,
j
(
x
~
i
,
j
′
′
′
,
y
i
)
)
]
+\mathbb{E}*{i,j,x,\tilde{j},z}[\log(1-{D*{i,j}(\tilde{x}'''_{i,j},y_i)})]
+E∗i,j,x,j~,z[log(1−D∗i,j(x~i,j′′′,yi))]
他们评价这个工作的好坏,考虑三个方面