点击下载论文
代码地址
图1 我们将真实图像投影到StyleGAN生成器的潜空间,并在编码的潜码上实现连续的解纠缠属性编辑。从原始图像和投影图像中,我们可以连续编辑一系列属性,例如:“微笑”、“刘海”、“拱形眉毛”、“年龄”、“胡须”和“眼镜”。所有结果均以1024×1024的分辨率获得。
摘要
高质量的面部图像编辑是电影后期制作行业的一个挑战性问题,需要高度的控制和身份保护。以前试图解决这个问题的工作可能会遇到面部属性的纠缠和个人身份特征丢失的问题。此外,许多算法仅限于特定的任务。为了解决这些限制,我们提出通过训练专用的潜变换网络,并在损失函数中加入明确的解纠缠和身份保留项,通过StyleGAN生成器的潜空间编辑面部属性。我们进一步引入了一种将我们的面部编辑推广到视频的想法。即使在真实(即非合成)图像和视频这等具有挑战性的情况下,我们的模型也实现了一种解纠结、可控和保持身份的面部属性编辑。我们在图像和视频数据集上进行了大量的实验,实验结果表明我们的模型在视觉质量和定量评估方面优于目前最好的方法。
1、引言
面部属性编辑是照片修饰或电影后期制作行业的一项至关重要的任务。例如,许多演员为了美化或其他特殊化妆效果而被修饰。对于这样的任务,艺术家非常希望能够在不影响其他信息的情况下控制面部属性。因此,人脸编辑方法应该依赖于解纠缠的属性,并允许进行身份保护操作。
早期基于深度学习的工作侧重于基于编码器-解码器的架构[8,17]。尽管最近的结果的质量有所提高,但这些方法在分辨率上受到限制,并在高分辨率图像上产生明显的伪影。此外,这些方法很难控制,因为修改一个面部属性往往会修改其他属性。
最近,生成网络在高质量图像合成方面取得了令人印象深刻的进展[5,19,20,21]。研究表明,沿着生成模型的潜空间中的某些方向移动潜码会导致相应生成图像中视觉属性的变化[2,9,35,3,42]。这些假设对于二分属性,在潜空间中存在一个超平面,将数据分成两组。然而,这一假设有几个局限性。首先,成功的操纵只能在良好的解纠缠和线性化的潜空间中实现。虽然与图像空间相比,潜空间是解耦的,但我们在本文中表明,通过线性变换实现面部属性操作是一个非常强大且有限的假设。此外,由于这些方法是在合成图像(从潜空间中的随机点生成)上训练的,因此它们在真实图像(自然界的,“野外”照片)上的表现不太令人满意。这是一个经常被忽视但至关重要的问题。
在这项工作中,我们解决了在真实图像上编辑面部属性的问题。为了解决上述限制,我们提出了一个转换网络来导航生成模型的潜空间。我们将真实图像投影到最先进的图像生成器StyleGAN的潜空间上,并根据投影的潜码训练我们的模型。转换网络在真实图像上生成解纠缠、身份保留和可控的属性编辑结果。这些关键优势使我们能够将我们的方法扩展到视频的情况,其中稳定性和质量至关重要的。为此,我们介绍了一种在高分辨率视频上实现稳定和真实的面部属性编辑的思路。
我们的贡献总结如下:我们提出了一种用于面部属性编辑的潜变换网络,在具有良好身份保留的真实图像上实现了解纠缠和可控的操作。我们的方法可以对真实图像进行高效连续的属性编辑。我们引入了一种将人脸编辑推广到视频的思想,并在高分辨率视频上实现生成真实和稳定的操作。
本文的其余部分组织如下:在第2节中,我们总结了面部属性编辑、解纠缠表示和视频编辑方面的相关工作。第3节介绍了我们的潜变换网络和训练细节。在第4节中,我们介绍了在真实图像上解纠缠属性编辑的实验结果,并与目前最好的技术方法进行定性和定量比较。我们进一步介绍了在真实图像上进行一系列属性编辑的结果,并对损失成分的选择进行了消融研究。在第5节中,我们介绍了将面部属性编辑应用于视频的思想,并展示了在视频序列上的实验结果。我们在第6节中总结了本文。
2、相关工作
面部属性编辑
以前关于面部属性的工作非常广泛,主要集中在分辨率有限的图像上。Up church等人的一种基于优化的方法[38]表明,通过在预训练的特征空间中插入深度特征,可以实现语义转换,如老化或添加面部刘海。另一种方法为属性编辑任务训练前馈模型。Attribute2image[43]提出训练条件变化自编码器以生成条件属性的图像。随着生成网络在图像合成中的成功,许多研究[8,15,24,25,41]探索了使用对抗学习训练自动编码器的可能性。FaderNet[24]和StarGAN[8]提出将自编码器潜空间中的不同属性解纠缠,以目标属性为条件生成输出图像。AttGAN[15]和STGAN[25]通过放松对目标属性的严格约束,增强了属性的灵活转换,以提高图像质量。一些研究调查了处理高分辨率图像的不同可能性。CooGAN[7]提出了一种基于图像块的局部-全局框架来处理图像块中的HR图像。观察到生成网络在高质量图像合成中的巨大进步,Viazovetskyi等人[39]使用StyleGAN2[21]生成的合成图像训练了pix2pixHD模型[40]用于单属性编辑。
解纠缠表征。
在StyleGAN[20]的论文中,作者研究了混合生成图像上的两个潜码的影响(称为风格混合),并发现每个子集控制图像上有意义的高级属性。受此启发,一些研究试图探索在潜空间中的生成网络(特别是StyleGAN)的解纠缠表征。Image2StyleGAN++[2]一种基于优化的方法通过在StyleGAN的激活特征上应用掩码插值,对图像执行局部编辑和全局语义编辑。Collins等人[9]对StyleGAN的激活层进行了k均值聚类,并检测到语义对象的分离,这使得能够对生成的图像进行进一步的局部语义编辑。对于高级语义编辑,Ganalyze[13]在BigGAN[5]的潜空间中学习了一个流形,以生成不同记忆的图像。InterFaceGAN[35]提出在潜空间中学习二分类的超平面,可以使用该超平面通过简单的插值来操纵目标面部属性。在他们的工作之后,StyleSpace[42]对StyleGAN[21]的潜空间进行了定量研究,并实现了对视觉属性的高度局部化和解纠缠控制。StyleFlow[3]通过训练条件归一化流实现了对潜空间的条件探索。StyleRig[36]介绍了一种方法,通过3D可变形面部模型,对预训练和固定的StyleGAN提供类似面部操作的控制。Yao等人[44]提出以非线性方式导航StyleGAN的潜空间,以实现面部属性的分离操作。为了找到解纠缠的方向,一些研究试图使用主成分分析(PCA)来分析生成网络的潜空间。PCAAE[31]提出了一种PCA自编码器,其潜空间在训练期间逐渐增加,并导致将固有数据属性分离为不同的组件。GANSpace[18]在生成网络的潜空间中执行PCA,探索主要方向并发现可解释的控制。上述方法通常侧重于合成图像的处理,因为将真实图像投影到StyleGAN的潜空间仍然是一个挑战。Image2StyleGAN使用优化方法将真实图像投影到StyleGAN的扩展潜空间,但其特征与原始潜空间不同,因此不适合操作。最近的一些工作[27,32,34,46]试图将编码器与StyleGAN模型一起训练。尽管图像无法完美重建,但我们看到了使用StyleGAN潜空间的解纠缠特性对真实图像进行属性编辑的可能性。
基于视频的面部编辑
最近关于面部视频合成的工作主要解决两个问题:1)从草图视频或参考图像(通常称为面部再现)生成面部视频序列,2)视频上的面部属性编辑。Garrido等人[12]提出了一种基于图像的再现系统,以实现视频中的人脸替换。Face2Face[37]提出了一种使用非刚性基于模型的绑定来实时再现目标视频的方法。Averbuch Elor等人[4]提出了一种通过驾驶视频制作静态肖像动画的技术,但仅限于轻微的运动。Kim等人[22]提出将生成神经网络用于肖像视频的再动画化,这不仅可以转换面部表情,还可以转换整个上身和背景。这些方法中的大多数只处理低质量的视频拍摄。一个流行的开源deepfake系统DeepFaceLab[30]引起了广泛关注。结合了人工人脸检测和标志提取工具等生产力工具,他们的想法是在视频上生成高保真的人脸交换结果。为了直接在视频上实现面部属性编辑,Rav Acha等人[33]建议将视频帧转换为“展开马赛克”,将马赛克绘制并重新渲染为视频。尽管结果令人满意,但计算每个视频镜头的马赛克是一个漫长的过程,需要平滑的变化才能成功构建。Duong等人[10]提出了一种使用深度强化学习在视频序列中生成年龄渐进的面部图像方法。最近的许多工作使用深度学习技术在静止图像上进行面部属性编辑。然而,到目前为止,只有少数作品解决了基于视频的属性编辑问题[45]。
3、方法
在本节中,我们提出了一个框架,通过StyleGAN的潜空间编辑真实图像中的人脸和视频中的人脸。
3.1、概述
对于给定的真实图像I,我们假设可以计算与生成器G相关的潜在表征
w
∈
W
w∈\mathcal W
w∈W。我们训练了一种反演方法,使I≈G(w)。我们的目的是在空间中训练一个潜转换器T以编辑投射图像G(w)的单个属性。由T(w)合成的图像用G(T(w))表示。它与G(w)共享除了要操纵的目标属性之外的所有属性。
为了训练潜变换器,我们提出了一个训练框架,该框架仅计算潜空间
W
\mathcal W
W中的所有损失。设
a
1
,
a
2
,
…
,
a
N
{a_1,a_2,…,a_N}
a1,a2,…,aN是一组图像属性,其中N是所考虑的属性的总数。对于每个属性
a
k
a_k
ak,训练不同的
T
k
T_k
Tk。为了预测潜码的属性,我们使用潜分类器
C
:
W
→
{
0
,
1
}
N
C:\mathcal W→ \{0,1\}^N
C:W→{0,1}N。C是预先训练的,在训练
T
k
T_k
Tk的过程中冻结其权重。我们训练
T
k
T_k
Tk有以下三个目标:
- 为了确保 T k T_k Tk有效地操纵属性 a k a_k ak,我们最小化了二分类损失: L c l s = − y k l o g ( p k ) ) − ( 1 − y k ) l o g ( 1 − p k ) , ( 1 ) \mathcal L_{cls} = -y_k log (p_k) ) -(1-y_k) log (1- p_k), \quad\quad\quad\quad\quad(1) Lcls=−yklog(pk))−(1−yk)log(1−pk),(1)其中 p k = C ( T k ( w ) ) [ k ] p_k = C(T_k(w))[k] pk=C(Tk(w))[k]是目标属性的概率 y k ∈ 0 , 1 y_k ∈ {0, 1} yk∈0,1是期望标签。
- 为了确保其他属性 a i , i ≠ k a_i,i\not=k ai,i=k保持不变,我们应用了属性正则化项: L a t t r = ∑ i ≠ k ( 1 − γ i k ) E w , i [ ∣ ∣ p i − C ( w ) [ i ] ∣ ∣ 2 ] , ( 2 ) \mathcal L_{attr} =\sum_{i\not=k}(1- γ_{ik}) \Bbb E_{w,i}[||p_i - C(w)[i]||_2],\quad\quad\quad\quad\quad(2) Lattr=i=k∑(1−γik)Ew,i[∣∣pi−C(w)[i]∣∣2],(2)其中 γ i k γ_{ik} γik是 a i a_i ai和目标属性 a k a_k ak之间在训练数据集上测量的绝对相关值。该正则化项基于相关性进行加权,以防止与目标自然相关的属性受到过度约束,即“胖”和“双下巴”。
- 为了确保人的身份被保留,我们进一步应用潜码正则化: L r e c = E w [ ∣ ∣ T ( w ) − w ∣ ∣ 2 ] . ( 3 ) \mathcal L_{rec} = \Bbb E_w[||T(w) - w||_2]. \quad\quad\quad\quad\quad(3) Lrec=Ew[∣∣T(w)−w∣∣2].(3)目标总损失为: L = L c l s + λ a t t r L a t t r + λ r e c L r e c , ( 4 ) \mathcal L = \mathcal L_{cls} + λ_{attr}\mathcal L_{attr} + λ_{rec}\mathcal L_{rec}, \quad\quad\quad\quad\quad(4) L=Lcls+λattrLattr+λrecLrec,(4)其中 λ a t t r λ_{attr} λattr和 λ r e c λ_{rec} λrec是平衡每个损失的权重。
3.2、训练模型
为了在真实图像上实现属性编辑,我们首先需要计算StyleGAN的潜空间中对应的潜码。传统的生成网络将随机向量作为第一层的输入,StyleGAN与传统的生成网络不同,他具有不同的设计,生成器将常张量作为输入,而每个卷积层输出由样式代码通过自适应实例归一化层控制[16]。高斯随机潜码
z
∈
Z
z∈\mathcal Z
z∈Z首先通过映射网络得到中间潜码
w
∈
W
w∈\mathcal W
w∈W,该中间潜码通过学习仿射变换进一步专门化为风格码y。给定一个目标图像x,在
W
\mathcal W
W中找到相应的潜码仍然很困难,重建的质量也不是完全令人满意。Image2StyleGAN[1]进一步计算扩展潜空间
W
+
\mathcal W^+
W+中的潜码,而原始设置要求它们相同。因此,从
W
+
\mathcal W^+
W+中获得的潜码能更好地重建目标图像。
在我们的方法中,我们在潜空间
W
+
\mathcal W^+
W+中训练潜变换器T,这是专门为投射真实图像的潜码而设计的。为了准备训练数据,我们使用Richardson等人提出的预训练StyleGAN编码器,计算CelebA HQ数据集[19]中每个图像的
W
+
\mathcal W^+
W+潜码。[34]。结合每个图像的注解,我们获得“潜码标签”对作为我们的训练数据。
潜分类器
为了预测可操纵的潜码的属性,我们在“潜码-标签”对上训练属性分类器C。分类器由三个全连接层和ReLU激活层组成(ReLU激活层在三个全连接层中)。C在潜变换器的训练过程中是固定的。
潜变换器
给定潜码
w
∈
W
w∈\mathcal W
w∈W,潜变换器T生成单个属性修改的方向,其中变化量由缩放因子α控制。网络用单层线性变换f表示:
T
(
w
,
α
)
=
w
+
α
⋅
f
(
w
)
.
(
5
)
T(w, α) = w + α · f(w). \quad\quad\quad\quad\quad(5)
T(w,α)=w+α⋅f(w).(5)在训练期间,缩放因子α根据输入潜码的目标属性的概率p进行设置(p<0.5时为1 - p,p>0.5时为-p)。在测试时,α可以从[1,1]中采样,或者根据所需的变化量将其设置在此范围之外。
图2 视频操作流程。每个输入帧都被单独裁剪并与面部图像对齐。预训练的编码器[34]通常将面部图像编码到StyleGAN[21]的潜空间
W
+
\mathcal W^+
W+中。所获得的潜码由所提出的潜变换器T处理以实现属性编辑。StyleGAN进一步解码操纵的潜码以生成操纵的面部图像,这些图像与原始输入帧混合以获得输出帧。
3.3、视频操作
在本节中,我们提出了一种将图像编辑方法应用于视频的想法。编码过程确保两个连续帧的编码潜码彼此相似。因此,我们可以使用投影到StyleGAN的潜空间的帧来重建面部视频,这为下一个操作步骤提供了基础。由于我们提出的潜变换器的稳定性,操纵不会影响潜码之间的一致性,并在投影帧上生成稳定的编辑。图2显示了我们提出的流程的概况。该流程包括三个步骤:预处理、图像编辑和无缝克隆。
预处理
为了在StyleGAN的潜空间中编辑视频,我们首先根据StyleGAN设置从帧中提取面部图像。我们按照FFHQ数据集[20]的预处理步骤裁剪并对齐面部周围的每个帧,StyleGAN在该数据集上进行预处理。对于面部对齐,我们使用最先进的方法在每个帧上独立地检测标志[6]。为了避免抖动,我们进一步使用两个连续帧之间的光流和沿着整个序列的高斯滤波来处理标志。所有帧都被裁剪并对齐,以使眼睛位于中心,并将大小调整为1024×1024。
图片编辑
在这一步中,我们将我们的操纵方法应用于已处理的面部图像。使用预训练编码器[34]将每个帧编码到StyleGAN的潜空间。编码后的潜码由所提出的潜变换器处理以实现属性编辑。StyleGAN进一步解码操纵的潜码以生成操纵的面部图像。
无缝克隆
我们使用泊松图像编辑方法[29]将修改后的人脸与原始输入帧混合。为了仅混合面部区域,我们使用从检测到的面部标志获得的分割掩模。
3.4、实施细节
我们探索了在FFHQ数据集[20]上预训练的StyleGAN2[21]的潜空间中解纠缠的操纵。在本文中,我们使用最新的StyleGAN2进行了所有实验。为了简单起见,当我们提到StyleGAN时,它指的是最新版本StyleGAN2。为了准备训练数据,我们使用预训练编码器[34]将CelebA HQ[19]的图像投影到StyleGAN的潜空间
W
+
\mathcal W^+
W+,并获得相应的潜码。CelebA HQ包含30K张分辨率为
102
4
2
1024^2
10242的人脸图像,每张图像标注40个面部属性。我们为每个面部属性训练单独的潜变换器。
为了预测潜码上的属性,我们在“潜码-标签”对上训练一个潜分类器,这在潜变换器的训练过程中是固定的。该模型被设计为同时预测全部40个属性,并使用二进制交叉熵损失函数进行训练。
对于潜转换器的训练,我们将90%的准备数据作为训练集,并将模型训练100K次迭代,批量大小为32。平衡每个损失的权重设置为
λ
a
t
t
r
=
1
和
λ
r
e
c
=
10
λ_{attr}=1和λ_{rec}=10
λattr=1和λrec=10。我们使用Adam优化器[23],学习率为0.001,
β
1
=
0.9
,
β
2
=
0.999
β_1=0.9,β_2=0.999
β1=0.9,β2=0.999。
4、实验(略)
5、结论和未来工作
在本文中,我们提出了一种通过StyleGAN的潜空间在真实图像和视频中执行面部属性编辑的潜转换网络。与其他方法相比,我们的方法产生了更具现实感的操纵,具有更好的解纠缠和身份保护。我们已经将我们的方法扩展到视频的情况,实现了稳定和一致的修改。据我们所知,这是第一个在高分辨率视频上呈现稳定面部属性编辑的工作。未来的一些工作可以致力于提高该方法的适用性和视频性能。特别是,由于StyleGAN在生成侧姿态中的面部方面存在困难,因此该方法难以处理侧姿态。这可以通过将StyleGAN编码器与生成器联合训练,或者使用姿势多样的更好的图像训练改进的StyleGAN生成器来解决。