《黑客帝国: 觉醒》演示中的灵魂发问:当我们打造出的世界和我们自己的世界同等真实时,那现实到底意味着什么?
还记得去年 12 月,美国电子游戏与软件开发公司 Epic 发布的基于自家虚幻 5 打造的《黑客帝国: 觉醒》的演示吗?Demo 中所展示的主演人物的毛孔毛发级高真实感建模,着实让人惊叹 Epic 的强大技术能力。
据悉,以上演示 Demo 中的人物形象是由 Epic 名下的 MetaHuman Creator 创建生成,该应用可以让用户自由编辑调整目标数字形象的各种面部特征和皮肤细节,甚至于精确编辑调整发型、眼型、妆容等各个局部语义属性,且调整结果具有超逼真的显示渲染效果。
可以说,MetaHumane Creator 在高保真数字人创建与渲染效果方面确立了一个新的标杆。
不过略有瑕疵的是,尽管 MetaHuman 构建的虚拟数字人呈现了超逼真的成像渲染效果,但当我们刻意去观察其合成结果时,却总能发现结果有不够真实的地方。如下图所示。
上述所谈到的不真实感可能是由 MetaHuman 的渲染假设导致的。具体来说,随着图形相关研究技术的发展,该领域其实是在不断修正三维模型的光照渲染模型的,在该过程中也是提出多种三维光照类型,如朗伯光照模型,Phong 光照模型以及 BRDF 光照模型等。然而,由于真实世界的复杂性,这些假设的渲染模型仍是不可避免的会与真实物理世界的渲染存在差异,从而导致相关渲染结果不够真实。
近期,一种新的渲染模型,即最近广为关注的神经辐射场体渲染模型(Neural Radiance Field,缩写 NeRF),有打破上述各种假设枷锁的趋势,以下为一些 NeRF 相关工作的渲染效果。可以发现 NeRF 具有照片级的渲染精度,渲染结果亦具有 GAN 等二维生成模型所不具备的多视角一致性,更是能对玻璃、火焰、液体等进行统一表示。
NeRF 通过神经渲染与神经隐式表示来自适应地学习适合目标渲染对象的渲染方式,这使得 NeRF 相关的渲染假设少于上述传统的渲染方法,从而使得 NeRF 的渲染逻辑与真实世界的渲染更加贴合。
高保真人头参数化模型 HeadNeRF,可创建与编辑高保真数字人
基于上述观察,来自中科大张举勇教授课题组提出了 HeadNeRF,一种基于 NeRF 的高效全息人脸头部参数化模型,该工作发表于 CVPR 2022,相关代码已开源。
- 论文地址:https://arxiv.org/pdf/2112.05637.pdf
- 项目主页: https://crishy1995.github.io/HeadNeRF-Project/
- 代码链接: https://github.com/CrisHY1995/headnerf
HeadNeRF
效果上,HeadNeRF 可以实时地渲染高清图像级别的人脸头部,且支持直接编辑调整渲染结果的多种语义属性,如身份、表情以及颜色外观等。得益于 NeRF 结构的引入,HeadNeRF 也支持直接编辑调整渲染对象的渲染视角,同时不同视角的渲染结果具有优秀的渲染一致性。相关编辑效果如下所示:
HeadNeRF: 高帧率版
HeadNeRF: 高质量版
方法介绍
HeadNeRF 的 Motivation 在于,NeRF 本身可看作一种三维表示,尽管 NeRF 没有显式地重建目标场景的几何信息,但其本身通过预测场景的辐射场其实隐式地编码了目标场景的几何结构。进而使得,针对渲染任务,NeRF 一定程度上可以等价甚至优于传统的纹理材质网格。且由于 NeRF 是完全基于神经网络的,因此 NeRF 的渲染过程是天然可微的,而其他传统的几何表示,如三维网格,点云,体素等则往往需要各种近似策略来缓解相关表示的渲染不可微问题,与之对应的参数化表示工作往往则需要收集并处理大量的三维扫描数据。相对的,HeadNeRF 的构建过程只需要二维人脸图片。
HeadNeRF 的表示可概述如下:
这里P表示相机参数,z_{*}分别表示身份、表情、反照率和光照相关的语义向量。R表示HeadNeRF的渲染成像过程,I则为HeadNeRF根据上述输入参数渲染生成的人脸头部图片。HeadNeRF的算法流程图如下所示:
HeadNeRF-Pipeline
HeadNeRF 的表示过程整体上通过 conditional-NeRF 实现。训练方面,该研究则通过收集了三个大规模人脸头部图片数据集,并基于这些数据设计有效的 Loss 函数来使得 HeadNeRF 可以语义解耦地编辑渲染结果的各种语义属性。此外,该研究也将 NeRF 体渲染与 2D 神经渲染相结合,以加速 NeRF 渲染速度。
具体而言,代替直接渲染高分辨的人脸头部图片,HeadNeRF先是基于 NeRF 的体渲染管线生成低分辨率、高通道数的特征图(Feature Map),接着使用特殊设计的 2D 神经渲染网络层,逐步对上述特征图进行神经上采样,进而输出最终的预测结果。该 2D 神经渲染模块的引入大幅度提升了原始 NeRF 体渲染的渲染速度,且同时很好地保持了 NeRF 隐式编码的几何结构。如下图所示,针对给定的语义参数组合,连续地编辑调整 HeadNeRF 的渲染视角、相机距离以及相机视野(FoV),其相应地生成结果保持了优秀的渲染一致性,这进一步验证了 HeadNeRF 中 2D 神经渲染模块的有效性。
编辑渲染视角
编辑相机距离和 FoV
此外,2D 神经渲染模块的引入也有效改善了 NeRF 的渲染效率,从而让 HeadNeRF 可以在一般的显卡设备上单次前馈计算获得目标渲染图片的所有像素预测结果。因此,HeadNeRF在 NeRF 的 Photometric Loss 的基础上,额外地使用 Perceptual Loss来监督模型训练。如下图所示,Perceptual Loss 这种全局Instance类型的监督Loss有效提升了 HeadNeRF 渲染结果的渲染细节。
关于 Perceptual Loss 的消融实验
在训练 HeadNeRF 的过程中,该研究也借助 In-the-wild 的单视角数据集 (FFHQ) 来进一步增强 HeadNeRF 的表示能力和泛化能力。得益于所设计的训练策略,HeadNeRF 可以同时使用来自不同渠道、不同类型的人脸数据来训练参数化模型。其中,多人多表情 (多光照) 多视角的人脸头部数据使得 HeadNeRF 可以学习人脸头部的几何形状先验、视角一致先验以及语义解耦先验。另一方面,In-the-wild 的单视角数据则让 HeadNeRF 在训练过程中感知更多的身份、表情以及渲染风格类别,从而有效增强其表示、泛化能力。如下图所示,单视角数据集的引入有效提升了 HeadNeRF 的拟合能力,多人多表情多视角 (多光照) 数据集提供的相关先验则使 HeadNeRF 可以进一步解耦地编辑调整拟合结果的各个语义属性和渲染视角。
FFHQ 单视角数据的引入有效增强了 HeadNeRF 的泛化拟合能力
以下展示了 HeadNeRF 关于更多人脸头部图片的拟合结果,这些图片均来自 In-the-wild 的采集环境,且完全没有参与 HeadNeRF 模型的训练构建。可以发现 HeadNeRF 对于图中展示的多类型数据均可进行有效拟合。这一定程度也验证了 HeadNeRF 的表达能力和泛化能力。
得益于 HeadNeRF 高质量的渲染精度、优秀的解耦能力以及实时的渲染速度, 研究者可以基于 HeadNeRF 设计多种相关应用。如通过训练所获得的 HeadNeRF 模型,可提取输入视频的 HeadNeRF 表情参数序列以及目标图像的 HeadNeRF 表示参数,并进一步的将目标图像的表情参数替换为视频的表情参数,从而实现用视频中的表情来驱动目标图像。相关结果如下所示
更多结果和介绍,请参考 HeadNeRF 的项目主页与文章 。
该研究相信,基于 NeRF 的数字人技术还将进一步演化,在不远的将来,关于《黑客帝国: 觉醒》演示中的灵魂发问将变成现实。