【论文翻译】Fake it till you make it: face analysis in the wild using synthetic data alone

【Abstract】

我们证明了仅使用合成数据就可以实现与自然界人脸相关的计算机视觉任务。长期以来,研究者们一直享受着用图形合成训练数据的好处,但真实数据和合成数据之间的域差距仍然是一个问题,特别是对于人脸。研究人员试图通过数据混合、域自适应和不同域之间的对抗训练来缩小这一差距,我们证明了一个表现优异的合成数据集可以实现,用合成数据集训练模型,并将其迁移到自然真实的数据集。
我们描述了如何结合一个参数化的3D人脸模型生成模块和一个全面的特征库(包括各种各样的发型、耳朵、眼睛等),实现无比真实和多样性的渲染训练图像数据集。我们训练了一些与人脸相关的机器学习模型去验证实验,例如五官标记和人脸解析等。实验结果表明,合成数据既能在模型精确度上与真实数据匹配,也为人工标记无法实现的领域开辟了新途径。

【Introduction】

当面对机器学习问题时,最困难的挑战往往不是选择正确的机器学习模型,而是找到正确的数据。这在与人类相关(伦理)的计算机视觉领域尤其困难,因为模型的公平性和部署的伦理是最重要的。比起收集和标记真实数据,缓慢、昂贵且容易产生偏差,使用计算机图形学合成训练数据是一种更好的方法。使用合成数据,可以产生没有注释噪声的完美标签,生成人工无法标记的丰富标签,并完全控制数据集中的变化和多样性。
渲染可信的人是计算机图形学中最难的问题之一。电影和电子游戏已经表明,现实的数字人类是可能的,但是每个角色的产生都需要艺术家的不懈努力。虽然可以用一些最近的自我监督方法[27]生成无穷无尽的新面孔图像,但其生成的相关标签难以用在监督学习中的。因此,之前的工作都是通过一种简化的方式来合成面部训练数据,结果与现实相去甚远。已经有一些工作,通过精炼合成图像使其看起来真实,使用域适应方法[60]来缩小域差异,以及通过域对抗训练[13],鼓励机器学习模型忽略合成域和实域之间的差异,但从本质上试图提高合成数据本身质量的工作却很少。合成真实的人脸数据一直被认为是很困难的,以至于我们产生了这样的假设,即合成数据不能完全替代自然界中产生的真实数据。
在这篇论文中,我们证明了合成数据的可能性比以前认识到的要广泛得多,而且是可以实现的。我们提出了一种获取人脸训练数据的新方法,绘制出具有前所未有的真实感和多样性的3D人脸模型。有一个足够好的合成框架,用其创建原始训练数据是有可能的,这些数据可以用来训练一个针对自然状态下真实人脸的模型,而不需要使用任何真实数据。

开发一个具有最小域(domain gap)不一致性的的数据合成框架需要相当多的专业知识和投资。但是一旦实现,就可以用最小的成本生成各种各样的训练数据。让我们考虑一些例子;假设你花了很多时间在面部图像上添加标注。然而,您突然需要在每个图像中添加额外的标签,重新贴标签和验证将需要很长时间,但使用合成材料,您可以立即重新生成干净和一致的标签。或者,假设你正在为一种新的相机开发计算机视觉算法,例如手机上的红外人脸识别相模型。几乎没有硬件原型存在,如果有的话马,也很难收集数据集。合成器可以让你从一个模拟设备渲染人脸,以开发算法,甚至指导硬件设计本身。

我们通过将参数化的人脸模型与大量高质量的艺术家创建的资产(包括纹理、头发和服装)相结合的程序来合成人脸图像。有了这些数据,我们训练模型来完成常见的人脸相关任务:人脸解析和人脸轮廓点定位。我们的实验表明,使用单一通用合成数据集训练的模型可以与使用特定任务的真实数据集训练的模型一样准确,获得符合最新水平的结果。这为其他与面部相关的任务打开了大门,这些任务可以自信地用合成数据而不是真实数据来解决。
我们的贡献如下。首先,我们描述了如何合成真实和多样化的自然真实的训练数据进行人脸相关任务,并取得符合当前最优水平的模型结果。其次,我们提出消融实验,以验证实现照片现实主义的步骤。第三是合成数据集本身,可以从我们的项目页:https://microsoft.github.io/FaceSynthetics获得

【Related work】

不同的人脸数据集很难收集和标注。收集技术如网络爬行引起了重大的隐私和版权问题。手工注释很容易出错,经常会导致标签不一致。因此,研究界正越来越多地寻求用合成数据来增强或替代真实数据。
【合成人脸数据】计算机视觉领域已经将合成数据用于许多任务,包括目标识别[23,44,51,73]、场景理解[12,25,47,50]、眼动跟踪[63,68]、手动跟踪[40,61]和全身分析[41,59,65]等任务中。然而,由于建模人类头部的复杂性,以前很少有工作尝试使用计算机图形学来生成整张合成人脸。
一种常见的方法是使用3D形变模型(3DMM)(点和纹理的表示集合)[5],因为这些可以为不同的人脸提供一致的标签。之前的工作主要集中在面部的某些部位,如眼睛区域[62]或曲棍球面具[45,76]。Zeng et al. [76], Richardson et al.[46],和Sela et al.[58]使用3DMMs渲染训练数据以重建详细的面部几何特征。类似地,Wood等人[69]渲染了用于凝视估计的眼睛区域3DMM。然而,由于这些方法只呈现脸部的一部分,所生成的数据在考虑整个面部的任务中用途有限。
建立参数化模型是一项挑战,所以另一种选择是直接渲染3D扫描结果[4,55,62,68]。Jeni等人的[24]渲染了BU-4DFE数据集[74],用于密集的3D面部对齐,Kuhnke和Ostermann[30]渲染了商业可用的3D头部扫描,用于头部姿态估计。虽然这些方法通常是现实的,但它们受到扫描本身表达的多样性的限制,不能为机器学习提供丰富的语义标签。
操作2D图像可以替代使用3D图形管道。Zhu等人[79]将3DMM与人脸图像匹配,并将其扭曲以增加头部姿势。Nojavanasghari等人[42]将手部图像合成到人脸上,以改进人脸检测。这些方法只能对现有的图像进行微小的调整,限制了它们的使用。
【使用合成数据训练网络】虽然通常只依赖合成数据来完成全身任务[54,59],但合成数据很少单独用于与人脸相关的机器学习。相反,要么首先对其进行调整,使其看起来更像某个目标领域,要么与真实数据一起用于预训练[76]或正则化模型[16,29]。原因是域不一致性(domain gap),即真实数据和合成数据之间的分布差异,使泛化困难[25]。
学习的域自适应修改合成图像,以更好地匹配真实图像的外观。Shrivastava等人[60]使用对抗细化网络对人工眼睛图像进行正则化以保留标签。类似地,Bak等人[3]使用带有正则化项的CycleGAN[77]对合成数据进行调整,以保持恒等式。学习域自适应的一个限制是在自适应[15]过程中图像语义会发生变化,因此需要正则化[3,40,60]。因此,这些技术不适合细粒度注释,如逐像素标签或精确地标坐标。
与自适应数据不同,我们有可能学习能够抵抗域间差异的特征[13,57]。Wu等人[71]通过领域分类器将真实数据和合成数据混合,学习领域不变特征用于文本检测,Saleh等人[56]利用形状受领域间隙影响小于外观的观察结果进行场景语义分割。
在我们的工作中,我们不执行任何这些技术,而是通过生成高度真实的合成数据来最小化源的域不一致性。

【Synthesizing face images】

视觉效果(VFX)行业已经开发了许多技术来让观众相信3D人脸是真实的,我们的方法就是基于这些技术。然而,关键的区别在于规模:虽然视觉特效可能用于少数演员,但我们需要数千个合成个体的不同训练数据。为了解决这个问题,我们使用程序生成随机创建和渲染新的3D人脸,而不需要任何人工干预。
我们从一个生成的3D人脸模型开始,该模型捕获了人类人口的多样性。然后我们随机从大量的头发,衣服和配件资产的样本装扮每一张脸。所有的集合都是独立取样的,以创造出尽可能彼此不同的合成个体。本节描述了我们构建的技术框架,以便使资源集合能够以一种随机的、可信的方式在3D表面上混合和匹配。
【3D face model】我们生成的3D人脸模型捕捉了人脸形状在人群中的变化,以及在面部表情期间的变化。它是一个基于混合形状的人脸生成设备,类似于之前的工作[17,34],人脸由7,667个顶点和7,414个多边形组成的网格,以及K = 4个关节的最小骨架:头部、颈部和两只眼睛。

【Expression】我们将随机表情应用于每一张脸,这样我们的下游机器学习模型对面部运动具有鲁棒性。面部表情有两种来源。我们的主要来源是一个包含27,000个表达式参数的库,该库是通过将一个3D人脸模型拟合到一个带有标注人脸轮廓点的2D图像语料中而建立的。然而,由于标注的地标是稀疏的,仅从这些地标恢复所有类型的表情是不可能的,例如面颊肿胀。因此,我们从一个手动动画序列中额外采样表达式,该序列被设计来填补我们的表达式库中的空白,以现实但极端的方式丰富我们的面部表情的库。下图显示了来自表达式集合的示例。除了面部表情,我们将随机的眼睛注视方向层放在表情样本的上面,并使用程序逻辑来相应地设置眼睑的姿势。

【Texture】即使在非常近的距离下,例如通过头戴式设备上的眼球追踪摄像头,人造脸也应该看起来很逼真。为了实现这一点,从我们的面部扫描结果中选取了200组高分辨率(8192×8192 px)的纹理。对于每次扫描,我们提取一个皮肤颜色的反照率纹理和两个置换贴图(见图7)。粗糙的贴图编码我们的顶点识别模型的稀疏性质没有捕捉到这些扫描几何。中观贴图近似皮肤毛孔级别的细节,是通过高通滤波反照率纹理建立的,假设暗像素对应于皮肤的轻微凹进部分。
与之前的工作[45,76]不同,我们没有建立纹理的生成模型,因为这些模型很难真实地生成皱纹和毛孔等高频细节。相反,我们简单地从每次扫描中选择一组相应的反照率和置换纹理。纹理结合在一个基于物理的皮肤材料具有地下散射[9]。最后,我们可以选择使用化妆效果来模拟眼影、眼线笔和睫毛膏。

【Hair】与其他用纹理或粗糙几何来近似头发的工作相比[17,55],我们将头发表示为独立的3D线条的组合,一个完整的头发由超过100,000根头发组成。在头发层次上建模可以让我们捕捉到真实的多路径照明效果。如图8所示,我们的头发库包括512种头皮发型、162种眉毛、142种胡须和42组睫毛。每一项资产都是由一位专门制作数字头发的新郎艺术家创作的。在渲染时,我们随机组合头皮、眉毛、胡须和睫毛。
我们使用一个基于物理程序的头发着色器来精确建模头发[8]的复杂材质属性。这个着色器允许我们用黑色素[38]和灰色参数来控制头发的颜色,甚至让我们染或漂白头发,以达到不太常见的发型。

【Clothing】脸的图像通常包括一个人的穿着,所以我们给我们的脸穿上3D服装。我们的数字衣柜包含30套上半身服装,这些服装是用服装设计和模拟软件[10]手工创建的。如图9所示,这些服装包括正式服装、休闲服装和运动服。除了上半身服装,我们还穿戴了头饰(36件)、面罩(7件)和眼镜(11件),包括头盔、头巾、口罩和眼镜。所有的衣服都被放在一个裸露的身体网格上,以一个放松的姿势,以平均男性或女性的身体比例[37]。我们用非刚性的基于笼形的变形技术[2]来变形衣服,使它们紧贴在不同形状的面孔周围。眼镜与骨架结合在一起,用逆运动学的方法摆好姿势,这样太阳穴和鼻梁就会固定在脸部的相应部位。

【Rendering】我们用Cycles渲染脸部图像,一个逼真的ray追踪渲染器[6]。我们随机在头部周围放置一个摄像头,并将它指向脸部。焦距和景深是不同的,以模拟不同的相机和镜头。我们使用基于图像的照明[11]和高动态范围图像(HDRI)来照亮脸部并提供背景(见图10)。对于每个图像,我们从448个HDRI(不同的光照和背景)中随机选取,这些HDRI包括一系列不同的环境[75]。请参见图11,以查看使用我们的框架渲染的脸的示例。除了渲染彩色图像,我们还生成了ground truth标签(见图12)。虽然我们在第4节的实验重点是轮廓点检测和分割注释,但人工合成技术可以让我们轻松创建各种丰富而准确的标签,从而实现新的与面部相关的任务(见第4.5小节)。

【Face analysis】

我们在两个常见的人脸分析任务上评估我们的合成数据:人脸解析和轮廓点定位。我们展示了在我们的合成数据上训练的模型展示了最先进的竞争性能。请注意,所有使用我们的模型的评估都是跨数据集的,我们纯粹在合成数据上训练,在真实数据上测试,而最新的技术在数据集内评估,允许模型了解数据中的潜在偏差。
【Training methodology】我们提供了一个单一的训练数据集,用于地标定位和人脸解析,包含10万张512x512分辨率的图像。使用150个NVIDIA M60 gpu渲染,耗时48小时。
在训练期间,我们执行数据增强,包括旋转、透视扭曲、模糊、调节亮度和对比度、添加噪声和转换为灰度。这种增强对于合成图像尤其重要,因为合成图像在其他方面没有缺陷(见第4.4节)。虽然其中一些可以在渲染时完成,但我们在训练时执行它们,以便在同一训练图像上随机应用不同的增强。我们使用PyTorch[43]实现神经网络,并使用Adam优化器[28]训练它们。

【Face parsing】人脸解析为图像中的每个像素分配一个类标签,例如皮肤、眼睛、嘴巴或鼻子。我们在两个人脸解析数据集上评估我们的合成训练数据1)Helen是文献中最著名的基准,它包含2000张训练图像、230张验证图像和100张测试图像,每个图像有11个类。由于原始数据集中的标签错误,我们使用Helen*,这是数据集的一个流行的修正版本,它具有修正后的训练标签,但不修改测试标签,以便进行公平的比较。2)LaPa是一个最近发布的数据集,它使用了与Helen相同的标签,但有更多的图像,并展示了更有挑战性的表情、姿势和遮挡。它包含18,176张训练图像,2,000张验证图像和2,000张测试图像。
通常,我们在处理前使用提供的2D地标来对齐人脸。我们缩放和裁剪每个图像,使地标集中在512*512像素的兴趣区域。预测中,我们撤销这个转换,以根据原始标签注释计算结果,而不需要调整大小或裁剪。
方法:将人脸解析视为图像到图像的转换。给定一个包含C类的输入彩色图像x,我们希望预测一个与地面真值标签图像y具有相同空间维度的C通道标签图像y。y中的像素用真值类的索引一次性编码。为此,我们使用带有ResNet-18编码器的UNet[49]。我们只用合成数据训练这个网络,最大限度地减少预测图像和地面真值标记图像之间的二进制交叉熵(BCE)损失。请注意,我们对架构或损失功能的选择并没有什么新奇之处,这是一种很好理解的方法。
标签适应:在人工合成标签和人工标注标签之间,必然会有微小的系统差异。例如,鼻子和脸部其他部分之间的界限到底在哪里?为了评估我们的合成数据,而不需要仔细调整针对特定真实数据集的合成标签生成过程,我们使用标签自适应。标签自适应将人脸解析网络(仅使用合成数据训练)预测的标签转换为更接近真实数据集中分布的标签(参见图13)。我们将标签自适应视为另一种图像到图像的转换任务,并使用带有ResNet18编码器的UNet[72]。为了确保这一阶段不能够作弊,它只对预测标签y和地面真标签y进行训练。它完全与人脸解析网络分开训练,从来没有看到任何真实的图像。

结果:请参见表1和表2,查看当前技术状态的比较,以及图14中的一些示例预测。尽管使用我们的通用合成数据训练的网络没有超过目前的技术水平,但值得注意的是,它们取得了与之前在特定任务数据集中训练的工作相似的结果。

与真实数据的比较:我们还在每个真实数据集的训练部分训练了一个网络,以将我们的训练方法与我们的合成数据分开,表1和表2中显示为Ours(真实)。可以看出,单独使用合成数据进行训练的结果与使用真实数据进行训练的结果具有可比性

【Landmark localization】地标定位是在二维空间中寻找人脸感兴趣点的位置。我们在300W[53]数据集上评估我们的方法,该数据集分为普通(554张图像)、挑战性(135张图像)和私有(600张图像)子集。
方法:使用均方误差损失的训练ResNet34[21]直接预测68个二维地标坐标。我们使用提供的边界框从每个图像中提取256×256像素感兴趣的区域。私有集没有边界框,所以我们在地标周围使用紧凑的剪裁。
标签自适应:使用一个两层感知器来处理合成和真实地标标签之间的系统差异(图15)。这个网络在训练过程中从未接触过任何真实的图像。

结果:评价指标为:眼外距离归一化平均误差[53];失败率低于10%的错误阈值(FR10%)。
对比真实数据训练的方法:我们将我们的训练方法(包括数据增强和标签自适应)应用于300W数据集的训练和验证部分,更直接地比较真实数据和合成数据。表3清楚地表明,使用合成数据进行训练可以获得更好的结果,即使是与使用真实数据进行训练并在数据集内进行评估的模型相比。

【Ablation studies】我们研究了合成数据集大小对地标精度的影响。图17显示,随着我们增加训练图像的数量,地标定位得到了改善,然后开始在100,000张图像上趋于稳定。

我们研究了在人工数据上训练模型时数据增强的重要性。我们训练模型有:1)不增加;2)外观增强(如颜色变化,亮度和对比度);3)完全增强,改变外观和几何形状(例如旋转和扭曲)。表3显示了增强的重要性,没有增强,合成数据的性能就无法胜过真实数据。
表3还显示了标签自适应在评价用合成数据训练的模型时的重要性,该模型使用标签自适应来提高标签一致性,减少误差。将标签自适应添加到基于真实数据训练的模型中,结果在性能上几乎没有变化,这表明它并没有从数据集内已经一致的标签中受益。
如果我们去掉衣服和头发,地标的准确性就会受到影响(表3)。这证实了我们的头发库和数字衣柜的重要性,这提高了我们数据的真实性。
附加的融合研究分析了渲染质量的影响,以及姿势、表达和身份的变化,可以在补充材料中找到。

【Other examples】除了上面的定量结果,本节定性地演示了如何使用我们的合成面框架解决其他问题。
眼球追踪是虚拟现实或增强现实设备的关键功能,但真正的训练数据很难获得[14]。由于我们的脸看起来很现实的近距离,这是很容易为我们建立一个合成的眼球跟踪相机和渲染不同的训练图像,以及地面真相。图18显示了此类摄像机的合成训练数据示例,以及语义分割的结果。

密集的地标。在第4.3小节中,我们给出了68个面部地标的定位结果。如果我们想预测十倍于此的地标呢?对一个人来说,一致而正确地注释这么多里程碑是不可能的。然而,我们的方法可以很容易地生成精确的密集地标标签。图19显示了修改路标网络以回归679坐标而不是68坐标的结果,并使用合成数据对其进行训练。

【Discussion】

我们已经证明,在训练过程中,不使用单一的真实图像,就可以实现与目前两个常见任务(人脸解析和路标定位)的性能相当的结果。这一点很重要,因为它为许多其他与面部相关的任务打开了大门,这些任务可以用合成数据代替真实数据来解决。限制依然存在。由于我们的参数化面部模型只包括头部和颈部,所以我们无法模拟低领口的服装。我们没有包括表情依赖的皱纹效应,所以在某些表情中,现实主义会受到影响。由于我们对模型的部分进行独立采样,有时会得到不同寻常(但并非不可能)的组合,比如有胡须的女性面孔。我们计划在未来的工作中解决这些限制。真实感渲染在计算上非常昂贵,因此必须考虑环境成本。为了生成本文使用的数据集,我们的GPU集群使用了大约3000千瓦时的电力,大约相当于1.37公吨二氧化碳,其中100%被我们的云计算供应商抵消。云计算提供商正在努力实现碳负化,并使用可再生能源,这缓解了这种影响[1,18,39]。此外,还需要考虑财务成本。假设M60 GPU每小时1美元(云计算供应商的平均价格),渲染10万张图像的成本为7200美元。虽然这看起来很昂贵,但实际的数据收集成本可能要高得多,尤其是考虑到注释时。

Fake it till you make it: face analysis in the wild using synthetic data alone相关推荐

  1. TED+肢体语言塑造你自己+power+fake it till you make it

    TED+肢体语言塑造你自己+power+fake it till you make it AmyCuddy在TED的演讲-Your body language shapes who you are&l ...

  2. fake it till you become it

    fake it till you become it_你泛起山川烟波里的不是我._百度空间 fake it till you become it

  3. Inferring temporal motifs for travel pattern analysis using large scale smart card data

    1.概述 文章提出了一种基于拓扑的出行模式分析方法,该方法对数据集的要求较低,扩展性高. 2.数据集 数据的话理论上LBS数据都可以,但是实际上比较适用于知道每一次trip信息的数据,比如车牌识别数据 ...

  4. [CVPR‘23] Rodin: A Generative Model for Sculpting 3D Digital Avatars Using Diffusion

    paper: https://arxiv.org/abs/2212.06135 总结:提出一种基于扩散模型和tri-plain features的3D虚拟人像生成方法.该方法包含多个模型,需要多次训练 ...

  5. first season twenty-first episode,the fake Monica!!!

    [Scene: Monica and Rachel's, everyone is looking at papers.] Joey: How could someone get a hold of y ...

  6. 【论文翻译】Mean Shift: A Robust Approach toward Feature Space Analysis

    论文题目:Mean Shift: A Robust Approach toward Feature Space Analysis 论文来源: Mean Shift: A Robust Approach ...

  7. Hi-C data analysis tools and papers

    Hi-C data analysis tools and papers 全文链接如下: https://github.com/mdozmorov/HiC_tools Tools are sorted ...

  8. Linear Discriminant Analysis (LDA)

    去年上课的时候老师简要提到过,但是当时笔记太简略了orz https://scikit-learn.org/stable/auto_examples/classification/plot_lda_q ...

  9. 情感分析Sentiment Analysis 知识资料全集(入门/进阶/论文/综述/视频/专家,附查看

    情感分析 ( Sentiment Analysis ) 专知荟萃 入门学习 进阶论文 Tutorial 综述 代码 视频教程 领域专家 入门学习 斯坦福大学自然语言处理第七课"情感分析(Se ...

  10. 单细胞论文记录(part22)--Giotto: a toolbox for integrative analysis and visualization of spatial expression

    学习笔记,仅供参考,有错必纠 文章目录 Giotto: a toolbox for integrative analysis and visualization of spatial expressi ...

最新文章

  1. 安川g7接线端子图_ABB、KUKA、FANUC、安川四大家族机器人安全回路小结
  2. 充分条件反过来是必要条件吗_“充分必要条件”引发的现实思考
  3. idea构建spring源码环境
  4. rman命令学习-tina(上)
  5. Python raw_input()
  6. css的重置和原子类的使用
  7. Android 进程的五种生命周期学习
  8. Tapestry5杂谈
  9. linux终端怎么设置monaco,[Linux]Vim设置Monaco字体Vim颜色模板
  10. android切换输入法工具类
  11. 新零售“最强大脑”论剑,天猫推40余项新零售赋能计划
  12. Excel取消合并单元格时在每个单元格中保留内容,你会批量操作吗?
  13. python画球面投影_Python中球面投影图像的高程畸变
  14. 百度飞桨7日营——世界冠军带你从零实践强化学习总结
  15. 求解1+1/2+1/3+...1/99+1/100的和
  16. 导出Mysql数据库结构-word格式
  17. 网络唤醒的原理原来是这样的,GET!
  18. 这些Linux技能你会了,面试官:哎呦小伙子不错哦!
  19. go代码windows系统截屏
  20. 各大银行APP导出流水的操作过程整理出来了,建议收藏备用

热门文章

  1. 在excel中计算机和函数是,理解Excel函数
  2. 优秀!3位95后硕士一作发表Nature!
  3. 【Excel从头开始】-2 快速填充/快速分析
  4. kron matlab_Matlab运用kron()函数计算Kronecker乘法
  5. php表格行数怎么设置,表格怎么排版
  6. AutoCAD坐标与图像坐标
  7. 在当前目录下 打开cmd
  8. udp buffer 和reassemble buffer
  9. Dev c++中文乱码,codeblocks运行结果乱码解决办法
  10. “汇新杯”互联网产业模式专项赛介绍