人工智能
解决人像合成中的“坏发型日”

自罗马雕像的黄金时代以来,描绘人类头发一直是一个棘手的挑战。平均每个人的头上有10万根头发,根据其颜色具有不同的折射率,并且在某种长度之后,会以只能通过复杂的物理模型模拟的方式移动和重塑 – 到目前为止,只有通过“传统”的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等价物从一个几乎致命的劣势开始,因为与NeRF不同,GAN的潜在空间并不天然地包含3D信息。因此,3D感知GAN面部图像合成已经成为图像生成研究中的一项热门追求,2019年的InterFaceGAN是其中的一项领先突破。
然而,即使InterFaceGAN的展示和精心挑选的结果也表明,神经头发一致性仍然是潜在VFX工作流程中的一项艰巨挑战:

InterFaceGAN中姿势转换时的“噼啪”头发。 来源:https://www.youtube.com/watch?v=uoftpl3Bj6w
随着通过潜在空间操纵alone实现一致视图生成的难度变得越来越明显,越来越多的论文开始将基于CGI的3D信息纳入GAN工作流程中,作为稳定和归一化的约束。
CGI元素可以用中间3D原语表示,例如Skinned Multi-Person Linear Model(SMPL),或者采用类似NeRF的3D推理技术,其中从源图像或视频中评估几何形状。
一项新的工作沿着这些线索,本周发布,是多视图一致生成对抗网络用于3D感知图像合成(MVCGAN),这是ReLER、AAII、悉尼科技大学、阿里巴巴集团的DAMO学院和浙江大学之间的合作。

MVCGAN在CELEBA-HQ数据集上生成的新颖和强健的面部姿势。 来源:https://arxiv.org/pdf/2204.06307.pdf
MVCGAN包含一个生成辐射场网络(GRAF),能够在生成对抗网络中提供几何约束,可能实现了GAN-based方法中最真实的摆姿能力。
然而,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张量中进行CNN处理。这些张量然后被复制回“实时”OpenGL纹理中,以便将其叠加到最终图像中。
实时系统在NVIDIA RTX 2080上运行,产生1024×1024像素的分辨率。
由于头发颜色值在网络获得的最终值中完全解耦,因此更改头发颜色是一项简单的任务,尽管渐变和条纹等效果仍然是一个未来挑战。

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











