code link: https://github.com/CrisHY1995/headnerf
在本文中,我们提出了一种新的基于nerf的参数化头部模型HeadNeRF,它将神经辐射场集成到头部的参数表示中。
它可以在GPU上实时渲染高保真的头部图像,支持直接控制生成的图像的渲染姿态和各种语义属性。
与现有的相关参数化模型不同,HeadNeRF采用神经辐射场代替传统的三维纹理网格作为新的三维代理,使得HeadNeRF能够生成高保真图像。
克服的困难:原始NeRF的渲染过程计算量大,阻碍了参数NeRF模型的构建。
针对这一问题,我们采用了将2D神经渲染与NeRF渲染过程相结合的策略,并设计了新的损失项。
取得的效果:
因此HeadNeRF的渲染速度可以明显加快,一帧的渲染时间从5s减少到25ms。
设计良好的损失项也提高了渲染精度,HeadNeRF可以表示和合成人类头部的细微细节,如牙齿之间的缝隙,皱纹和胡子。
HeadNeRF继承了NeRF的优秀特性,可以生成高保真度的头部图像,并保持显著的多视图一致性。此外,NeRF本身支持自由改变渲染所用的摄像机视角,因此HeadNeRF自然支持渲染图像的姿势编辑。
baseline: (对比的对象)
而传统的3D表示,如网格、点云、体素等,则需要设计各种近似方法[19,23,27,28,32]来缓解其渲染过程中的不可微问题。
与对比对象的优势:
因此,与以往需要捕获和处理大量高质量3D扫描数据的方法相比,HeadNeRF的构造只需要二维图像作为输入。
我们收集并处理了三个大规模的人头图像数据集,并设计了新的损失项来解开这个参数表示。HeadNeRF通过良好设计的网络结构和损失函数,可以从语义上分离渲染图像的身份、表达和外观。
进一步将NeRF的体绘制与2D神经绘制相结合,实现实时绘制。 效果是:它可以在不牺牲渲染质量的情况下超过40fps (每秒50帧)。
HeadNeRF的应用:包括从单一面部图像进行新颖的视图合成、语义编辑面部属性,甚至将一个人的表情转移到另一个人的面部再现。
其中:其中P为用于渲染的摄像机参数,包括外部矩阵和内部矩阵。Z *表示四个独立因素的潜在代码:身份zid,表情zexp,面部反照率 zalb和场景的照明zill。
基于mlp的NeRF隐函数hθ表示为:
与[16,38,63]一样,我们没有直接预测x的RGB,而是预测了三维采样点x的高维特征向量F (x)∈r256
hθ以γ(x)、zid、zexp的级联为输入,输出x的密度σ和一个中间特征,后者与zalb、zilli进一步预测F (x)。
因此,密度场的预测主要受身份码和表达式码的影响。
特征图 I F I_F IF 的计算,就是一个体绘制的过程。
2D 神经渲染模块
可学习变量包括每张图像的潜码和体绘制和神经绘制的共享网络参数。
对于每一幅图像,要求头部区域的渲染结果与对应的实像一致,此损失项表示为:
与普通NeRF相比,HeadNeRF可以通过一个推断直接预测渲染图像中所有像素的颜色。因此,我们采用等式(6)中的感知损失[20]来进一步改善渲染结果的图像细节。
为了实现对渲染结果的语义解纠缠控制,我们让同一被试的所有图像共享相同的身份潜伏码,让同一被试的相同表情在不同光照条件下、不同拍摄相机下的图像共享相同的表情潜伏码。
为了达到解纠缠表达的目的,表达相似的不同主体应当有相似的表达码。由于3DMM的引入,第3.3节的初始化方法生成的初始表达式代码满足了这一要求。因此,我们要求可学习的表达式代码不能远离初始表达式代码。
由于3DMM主要对面部区域进行建模,没有头发、牙齿等,所以我们对这些非表情属性放宽了限制。
其中z *是可学习潜码,z0 *是来自3DMM模型的初始潜码
对于给定的潜码组合(zid, zexp, zalb, zill),我们可以直接调整相机参数来连续改变渲染视图或编辑相机的位置和FoV(视场)。这些渲染结果具有良好的多视图一致性,说明我们设计良好的2D神经渲染模块有效地保留了原始NeRF隐式编码的几何结构
如图所示,在编辑特定的属性时,HeadNeRF可以保持剩余的语义属性,验证了HeadNeRF有效地分离了不同的面部属性。
知觉丧失的消融研究。感知损失有效地增强了生成结果的精细级细节(红色区域有褶皱,绿色区域有胡须)。
如图8所示,HeadNeRF-vanilla的结果趋于模糊,这可能是由于其训练效率不高造成的。相比之下,由于神经渲染模块所赋予的有效性和效率,HeadNeRF可以在获得更好的渲染结果的同时使用更少的训练时间。HeadNeRF-vanilla渲染一帧图像需要约5秒的时间,而HeadNeRF可以实时渲染结果。
由于2D神经渲染模块所赋予的有效性和效率,HeadNeRF可以使用更少的训练时间,同时获得更好的渲染结果
为了验证FFHQ数据集的重要性,我们训练了两个参数模型进行比较,其中一个只训练了FaceSEIP数据集,另一个训练了FaceSEIP和FFHQ数据集。
优化后潜码的渲染结果如图9所示。可以发现,FFHQ数据集的引入显著地促进了HeadNeRF的泛化能力。
利用FFHQ数据集进行消融研究。FFHQ数据集的引入显著提高了HeadNeRF的泛化能力。基于HeadNeRF,我们可以只以一张图像作为输入,修改优化结果的指定属性,如调整渲染姿势,改变渲染结果的身份、表情和外观。
HeadNeRF可以有效地生成高保真图像,同时保持优秀的多视图一致性
pi-GAN的拟合结果在视觉上确实是最优的。然而,如果对拟合结果的渲染姿态进行编辑和改变,往往会使渲染结果变得模糊和损坏。
由于HeadNeRF具有较强的表示能力,可以对渲染结果的各种属性进行分离,可以用于小说视图合成、样式混合等许多应用。在这一部分中,我们利用HeadNeRF来执行表达式传输,即将参考视频中的面部表情转移到目标图像中的人。为此,我们只需要从参考视频和目标图像中提取所有图像的潜码,用参考视频中的表情潜码替换目标图像的表情潜码。最后,利用经过训练的HeadNeRF生成所需的人脸图像序列,其中目标图像中的字符被驱动从参考视频中做出表情。定性结果如图12所示。
HeadNeRF仍然存在一些局限性。虽然加入了FFHQ数据集中的图像来增强HeadNeRF的表示能力,但目前的训练数据集仍然不足以覆盖各种情况。对于与我们训练数据相差很大的图像,HeadNeRF只能返回相似的拟合任务结果。如图13所示,由于我们的训练数据很少涉及到带头饰的图像,所以在HeadNeRF的拟合结果中很难渲染头饰的内容。未来,我们考虑使用大量的野外人脸图像数据,以自监督的方式进一步增强HeadNeRF的表示能力。
在我们的多视图数据集(FaceSEIP)中,目前的训练数据集只包含四种照明类型,不足以覆盖照明类型。
在本文中,我们提出了一种新的基于nerf的参数头模型HeadNeRF,该模型将神经辐射场与参数头表示相结合。得益于我们精心设计的网络模块和损耗项,HeadNeRF可以在现代gpu上实时渲染高保真的头部图像,并支持直接控制渲染图像的姿势,独立编辑生成的图像的身份、表情和外观。大量的实验结果表明,HeadNeRF优于最先进的相关模型。我们相信HeadNeRF已经向现实的数字人类迈出了重要的一步。