Anderson 视角
解决“坏发型日”在人脸合成中的挑战

自罗马雕像的黄金时代以来,描绘人类头发一直是一个棘手的挑战。平均每个人的头上有100,000根头发,根据其颜色具有不同的折射率,而且在某种程度上,头发会移动和重塑,这只能通过复杂的物理模型来模拟——迄今为止,只有通过“传统”的CGI方法才能实现。

2017年迪士尼研究,一个基于物理的模型尝试在CGI工作流程中应用真实的头发运动。来源:https://www.youtube.com/watch?v=-6iF3mufDW0
现代流行的Deepfakes方法并不能很好地解决这个问题。多年来,领先的软件包DeepFaceLab就有一个“全头”模型,但只能捕捉僵硬的短发(通常是男性发型);最近,DFL的同伴软件FaceSwap(两个软件包都源自2017年的DeepFakes源代码)提供了BiseNet语义分割模型的实现,允许用户在Deepfakes输出中包含耳朵和头发。
即使描绘非常短的发型,结果也往往是质量很差,完整的头部出现在视频上,而不是融入其中。
GAN头发
人类模拟的两种主要竞争方法是神经辐射场(NeRF),它可以从多个视角捕捉一个场景,并将这些视角的3D表示封装在一个可探索的神经网络中;以及生成对抗网络(GANs),在人类图像合成方面更为先进(至少因为NeRF直到2020年才出现)。
NeRF推断的3D几何理解使其能够以很高的保真度和一致性复制一个场景,即使它目前对施加物理模型的能力很有限,甚至对改变摄像机视角以外的数据进行任何变换的能力也很有限。目前,NeRF在重现人类头发运动方面的能力非常有限。
基于GAN的等效方法与NeRF相比,从一个几乎致命的劣势开始,因为GAN的潜在空间不像NeRF那样天然地包含3D信息。因此,3D感知的GAN面部图像合成已经成为图像生成研究中一个热门追求,2019年的InterFaceGAN是其中的一个主要突破。
然而,即使InterFaceGAN的展示和精心挑选的结果也表明,神经头发的一致性仍然是一个艰巨的挑战,尤其是在时间一致性方面,对于潜在的VFX工作流程来说是一个挑战:

InterFaceGAN的姿势变换中“噼啪”头发。来源:https://www.youtube.com/watch?v=uoftpl3Bj6w
随着仅通过潜在空间操作来实现一致的视图生成的难度变得越来越明显,越来越多的论文将基于CGI的3D信息纳入GAN工作流程中,作为一种稳定和归一化的约束。
CGI元素可以通过中间的3D基元来表示,例如皮肤多人线性模型(SMPL),或通过类似于NeRF的方式采用3D推理技术,从源图像或视频中评估几何形状。
一项新研究,本周发布,是多视图一致生成对抗网络用于3D感知图像合成(MVCGAN),这是瑞典查尔默斯理工大学、澳大利亚人工智能研究所、悉尼科技大学、阿里巴巴集团的DAMO学院和浙江大学之间的合作成果。

MVCGAN在CELEBA-HQ数据集上生成的新颖和强健的面部姿势。来源:https://arxiv.org/pdf/2204.06307.pdf
MVCGAN包含一个生成辐射场网络(GRAF),能够在GAN中提供几何约束,可能实现了最真实的摆姿能力的GAN基于方法之一。
然而,MVCGAN的补充材料显示,通过基于外部3D几何的约束来获得头发体积、一致性、放置和行为的一致性是一个不容易解决的问题。

MVCGAN的面部姿势合成代表了当前状态的显著进步,但时间头发一致性仍然是一个问题。
由于“直接”的CGI工作流程仍然难以解决时间头发重建的问题,因此没有理由相信传统的基于几何的方法能够很快将一致的头发合成带入潜在空间。
使用卷积神经网络稳定头发
然而,来自瑞典查尔默斯理工大学的三位研究人员的一篇即将发表的论文可能会在神经头发模拟方面提供额外的进展。

左边是CNN稳定的头发表示,右边是真实图像。请参阅文章末尾的嵌入视频以获取更高分辨率和更多示例。来源:https://www.youtube.com/watch?v=AvnJkwCmsT4
这篇题为《使用卷积神经网络进行实时头发过滤》的论文将在五月初的i3D研讨会上发表。
该系统由一个基于自编码器的网络组成,能够实时评估头发分辨率,包括自阴影,并考虑到头发的厚度,基于OpenGL几何体的有限数量的随机样本。
该方法使用随机透明度渲染有限的样本,然后训练一个U-net来重构原始图像。

在MVCGAN中,CNN过滤随机采样的颜色因子、亮点、切线、深度和alpha值,将合成的结果组装成一个复合图像。
该网络使用PyTorch训练,收敛时间在6到12小时之间,取决于网络体积和输入特征的数量。训练后的参数(权重)然后用于系统的实时实现中。
训练数据是通过渲染几百张图像生成的,包括直发和卷发,使用随机距离和姿势,以及多种照明条件。

各种训练输入示例。
头发的半透明度在具有随机透明度的超采样分辨率下渲染的图像中进行平均。原始高分辨率数据被下采样以适应网络和硬件限制,然后在典型的自编码器工作流程中上采样。
实时推理应用(利用训练模型推导出的算法的“实时”软件)使用NVIDIA CUDA与cuDNN和OpenGL的混合。初始输入特征被转储到OpenGL多采样色缓冲区,然后被转移到cuDNN张量中进行处理。然后这些张量被复制回一个“实时”的OpenGL纹理中,以便将其融入最终图像中。
实时系统在NVIDIA RTX 2080上运行,产生1024×1024像素的分辨率。
由于头发颜色值在网络获得的最终值中是完全解耦的,因此改变头发颜色是一项简单的任务,尽管渐变和条纹等效果仍然是一个未来挑战。

作者已经在GitLab上发布了论文评估中使用的代码。请查看文章末尾的MVCGAN补充视频。
结论
在自编码器或GAN的潜在空间中导航仍然更像航行而不是精确驾驶。只有在最近,我们才开始看到简单几何形状(如面部)的姿势生成的可信结果,例如在NeRF、GANs和非Deepfakes(2017年)自编码器框架中。
人类头发的显著结构复杂性,加上需要将物理模型和其他特征纳入图像合成方法中,这些特征目前尚无预备,这表明头发合成不太可能在一般的面部合成中保持为一个集成组件,而是需要专用和独立的网络,这些网络需要一定的复杂性——即使这些网络最终可能会被纳入更广泛和更复杂的面部合成框架中。
首次发表于2022年4月15日。













