在传统计算机图像学里,渲染一张真实的人脸需要对人脸进行几何建模的同时,还需获得复杂的环境光照条件和人脸皮肤表面的反射材质,因而通过以图像渲染结果与真实图片之间的误差来优化可变形的人脸模型的过程中会进行繁琐的求导和不稳定的优化过程,而简单的利用卷积神经网络的回归特性来学习人脸模型和图片直接的转换过程会丧失比较多的生成细节,从而难以通过该方式比较高效地从拍摄图片获得人脸 3D 模型。
商汤科技与香港中文大学多媒体实验室(MMLab)在 CVPR 2021 发表了一篇 Oral 文章,提出一种基于风格化生成网络的渲染技术,并利用该技术进行单目摄像机的重建人脸 3D 模型算法。该算法在利用生成网络高逼真性能的同时,给予网络在几何上的强约束,生成与 3D 模型匹配的人脸图像,并可以通过反向传播算法来优化图像进行 3D 模型求解。
- 论文链接: https://arxiv.org/pdf/2105.02431.pdf
- 代码链接: https://github.com/WestlyPark/StyleRenderer
- 项目主页: https://westlypark.github.io/index.html
该算法核心是提出一个更真实的生成式渲染器(GAR)与一种反向渲染以实现人脸重建的方法。生成式渲染器(GAR)比传统的基于图形学的渲染器有更加真实的渲染效果,从而减小渲染图片与真实图片之间的差异。而反向渲染技术可以充分利用生成式渲染器的优势,以生成与给定图像相似的图片为目标,反推出输入的人脸形状与纹理。
该算法不但在点云的平均误差上达到目前人脸重建领域的最优效果,在几何的相似度和精细度上也大大超越已有方法。
背景
如何将 3D 模型与生成图片进行相互转换一直以来是人们非常关注的问题。在人脸方面通过可变形的人脸模型的先验,根据单目图片求解人脸 3D 模型是比较成熟的应用。许多现有重建算法采用自监督的方式,将重建得到的三维模型利用传统图形学方法,配合漫反射和球协光照假设渲染成图片,计算其与输入图像之间的偏差作为优化目标。可微分渲染器的提出进一步推动了这类方法的应用。
图 1 生成模型渲染与图形学渲染器效果对比,以及控制生成的 3D 模型
然而,基于图形学的可微分渲染器简化了真实世界中光照、反射等的真实机制,因而难以生成足够真实的图像,导致真实图像空间与图形学渲染空间存在明显差异。这给优化或训练过程带来了大量的噪声, 如图 1 所示。
与此同时,基于卷积的生成网络可以生成真实图像,但对于生成物体 3D 上的几何控制更多的是由隐变量粗略控制,无法精确控制人脸每个区域生成不同的人脸几何形状,因而限制了其在可微分求解 3D 模型中的应用。
生成式渲染器(GAR)
针对渲染效果不真实的问题,该论文提出了一个更真实的生成式渲染器(GAR)。生成式渲染器(GAR)的输入在几何部分与传统渲染器相同,由位姿和 3D 网格控制人脸位置和状态,但在生成渲染结果方面并没有根据固定的纹理贴图来显示计算光照和反射照度,而是利用风格化的卷积网络把基于网格得到的法向信息转换成颜色。一方面,保持了在基于物理光照的渲染模型中每个像素在幕布上的颜色由法向量控制的物理含义,另一方面,把复杂的人脸纹理交由生成器根据训练集分布找出压缩后的表示模式进行转换。在模型以外的部分,例如头发、牙齿等交由生成器进行生成,避免了为了渲染真实效果而对这些部位更进一步的复杂建模。
图 2 GAR 的网络结构
具体实现上,该生成式渲染器(GAR)输入三个控制变量,其中法向图 n 由人脸形状、表情、位姿等系数生成得到,用于控制人脸几何、隐编码 z 用于控制皮肤纹理、头发配饰、背景等要素、噪声ɛ用于增加多样性。如图 2 和图 3 所示,该结构参考了 StyleGan2 的设计,其中 M 模块将隐编码 z 投影到ω的参数空间,A 模块对应仿射变换,B 模块用于噪声传播,N 则用于将法向图与每个渲染模块中的特征图进行尺寸对齐。
图 3 渲染模块网络结构
渲染模块的设计如图所示,仿射变换的输出用于调制卷积核,尺寸对齐后的法向图会用于调制卷积层输出的特征。在这里为了使得最后输出的图片其颜色的特征分布与法向量近似一致,NIM 模块会把由法向量卷积得到的特征调制在图像长宽维度上,使得图片的整体结构与法向量图保持一致。而噪声输出则用会直接加到调制后的特征上,来表征法向量图没有覆盖到的部分和人脸上可能有的装饰(如眼镜等)。
由于在训练集中只包含多样的人脸图片,而我们很难获取它们对应的真实 3D 模型,因此为了保证训练的一致性,即将与纹理和光照相关的信息与人脸几何上的信息分解开(图 5,图 6),研究人员采用训练对解耦的方式进行训练。具体来讲,每个训练批次包含一对不同人脸法向量图片 n1, n2 和随机变量 z1, z2,分别进行组合 (z1,n1), (z2,n2), (z1,n2), (z2,n1) 后,对由同一法向量生成图片的结果进行基于人脸关键点检测的监督保证人脸形状不变,对由同一隐编码生成的图片利用人脸识别网络提取的特征进行监督,该研究认为在不同姿态下同一纹理变量会生成同一个人的皮肤和毛发等特征,如图 4 所示。
图 4 解耦损失
图 5. 相同法向量图片输入不同隐变量编码
图 6 不同法向量和相同隐变量的渲染效果
基于反向渲染的人脸重建技术
由人脸 3D 模型到生成图片的渲染过程是通过一个网络实现的,因此可以通过微分反向传播的方式进行模型参数和隐变量的更新,进而进行人脸模型的重建工作。对于文章提出的渲染网络来说,在图片上的结构信息会经由卷积反向传播到法向量图片对应参数上,进而直接对人脸模型的 3D 几何产生影响,而不必经由一个不确定的纹理颜色来进行优化。尽管如此,该方法在法向量未存在的位置的微分和对投影产生的整体覆盖区域的变化仍需要利用可微渲染技术进行矫正。因此一个适合的算法是在给定经由简单的网络回归或利用关键点模型进行人脸 3D 模型初始化后再进行进一步的基于损失的梯度下降来调整顶点的位置。
色彩方面,与其他求解生成模型隐变量的方式相同,通过给予注入不同层级的隐变量不同的自由度进行整体优化,可以得到完全的图片重建效果。为了保证更多的自由度不会影响法向量的估计,文章先使用一个简单的回归网络寻找真实图片对应的隐编码的初始位置后再进行进一步的优化。
由于在该方法下渲染图像与真实图像之间的域偏移之间的偏差较小,因此渲染图片与目标图片之间的距离可以更好反映渲染器的法向输入与真实 3D 几何之间的差异,从而使该方法获得了比之前方法更精准的人脸重建结果。
总结
该论文突破性地提出基于 3D 模型的生成式渲染器,该渲染器不仅可以进行更细致 3D 模型控制下的图像生成,而且可以利用图像生成的结果进行 3D 模型的重建优化。尽管在模型的训练和反向渲染优化的过程中使用了针对人脸的特定先验进行一定程度简化,但针对通用物体的图片生成和重建可以利用类似的思路更好地实现。
引用文献
[13] Baris Gecer, Stylianos Ploumpis, Irene Kotsia, and Stefanos Zafeiriou. Ganfifit: Generative adversarial network fifitting for high fifidelity 3d face reconstruction. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1155–1164, 2019.[40] Ayush Tewari, Michael Zollhofer, Pablo Garrido, Florian Bernard, Hyeongwoo Kim, Patrick Perez, and Christian Theobalt. Self-supervised multi-level face model learning for monocular reconstruction at over 250 hz. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2549–2559, 2018. [44] Anh Tuan Tran, Tal Hassner, Iacopo Masi, and Gerard Medioni. Regressing robust and discriminative 3d morphable models with a very deep neural network. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 5163–5172, 2017. [43] Luan Tran and Xiaoming Liu. Nonlinear 3d face morphable model. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 7346–7355, 2018.