"); //-->
这个方法可以高效构建三维模型,精细程度很高。
高真实感且精确可控的三维人脸建模是数字人构建中的重要问题之一。目前,使用现有的基于网格的人脸建模方法需要专业的人员使用复杂的软件并投入大量的时间和精力,且实现逼真的人脸渲染结果较为困难。
虽然神经辐射场作为一种新的三维表示可以合成出逼真的结果,但如何对生成结果进行精确控制和修改,以实现高质量的三维人脸合成仍然是一个待解决的问题。
近期,研究人员提出了基于线稿的三维人脸神经辐射场生成和编辑方法 SketchFaceNeRF [1],相关技术论文发表在计算机图形学顶会 SIGGRAPH 2023,并被收录于图形学顶级期刊 ACM Transactions on Graphics。使用该系统,即使用户不会使用复杂的三维软件,也可以基于线稿自由创作三维人脸。先来看看使用 SketchFaceNeRF 创作的人脸效果:
图 1:使用线稿生成高真实感的三维人脸。
进一步,在给定三维人脸后,用户在任意角度添加编辑操作:
图 2 使用线稿在任意视角编辑三维人脸。
Part 1 背景
最近,AI 绘画非常火爆,基于 Stable Diffusion [2] 和 ControlNet [3] 等方法,通过指定文本可以生成高真实感的二维图像。但是,上述工作无法生成高质量的三维模型。同时,仅使用文本难以控制生成细节,尽管 ControlNet 已经支持线稿的控制,但如何对生成的结果的局部区域进行精准的修改仍然十分困难。
随着神经辐射场 [4] 和对抗式生成网络 [5] 的发展,已有方法,例如 EG3D [6],已经实现了三维人脸模型的高质量的生成和快速的渲染。但是,这些生成模型只支持人脸随机采样,而无法对生成结果进行控制。IDE-3D [7] 和 NeRFFaceEditing [8] 使用语义标记图编辑三维人脸,但是,该类方法难以实现更细节的控制,例如头发的结构细节和皱纹等。同时,用户很难从头绘制复杂的语义图,无法凭空生成三维人脸模型。
线稿作为一种更加友好的交互方式,一直被用于二维人脸图像的生成 [9] 和编辑 [10]。然而,将线稿用于三维人脸的生成存在下述的问题:首先,线稿风格多样且过于稀疏,生成二维图像已经不易,生成三维模型则更加困难;其次,针对三维人脸,用户往往会在任意视角添加编辑,如何生成有效的编辑结果,同时保持三维一致性,是需要解决的问题。
针对上述挑战,SketchFaceNeRF 利用了三平面的表示方法,基于线稿直接预测人脸三平面特征,投影至生成模型的隐空间,得到高质量的人脸 NeRF。多视角的三维人脸编辑问题则被建模为优化问题,通过三平面的局部融合及投影方法预测初值,并基于线稿约束和图像约束反向优化隐码,得到高质量的人脸 NeRF 编辑效果。
Part 2 SketchFaceNeRF 算法原理
图 3 SketchFaceNeRF 的网络架构图,生成流程。
人脸 NeRF 可控生成
给定单视角的手绘线稿后,直接投影到生成模型隐空间,合成的人脸存在对应性差、生成质量低等问题。这是因为二维稀疏线稿与三维人脸的差异过大,并且手绘的线稿风格多样。为解决上述问题,提出一种逐级升维的映射方法:由于输入线稿仅包含稀疏几何信息,但三维人脸具有不同的外观,所以首先使用自适应实例归一化 (AdaIN [11]),将输入的线稿转换到彩色特征图以注入颜色、光照和纹理信息。
进一步,由于二维输入缺乏 3D 信息,算法在体渲染的立体空间中构建 3D 特征体素,空间中的三维点被投影到 2D 特征图,检索得到对应的特征。最后,在 x,y,z 三个轴对三维体素进行形状变换,再基于 2D 卷积网络得到三平面特征图。为了生成高质量的人脸 NeRF,三平面被反投影到生成模型的隐空间,得到隐码表示的人脸 NeRF 模型。
训练过程分为两步:首先,使用 EG3D 构建多视角的训练数据。输入线稿预测三平面后,基于原本 EG3D 的渲染网络生成其他视角的图像,并使用真值作监督,完成线稿三平面预测网络的训练。然后,固定线稿三平面预测网络的权重,训练投影网络,将三平面特征投影至 EG3D 的隐空间。
图 4 SketchFaceNeRF 的网络架构图,编辑流程。
人脸 NeRF 精确编辑
为了支持任意视角的线稿人脸编辑,该工作提出一种三维一致的人脸线稿渲染方法,为 EG3D 添加额外的线稿生成分支,与图像生成分支共享相同的 StyleGAN 主干网络,但具有不同的****和超分辨率模块。训练过程则使用线稿真值作监督,并添加正则化项约束线稿视角一致性。
在生成的三维线稿基础上,用户对局部区域进行修改,绘制出新的线稿。由于单视角的线稿输入存在遮挡等问题,无法表示完整原本的三维信息,因此直接推理难以保持编辑前后的非编辑区域一致性。
为此,将人脸的 NeRF 的精细化编辑问题建模为优化问题。该工作先提出一种初值预测方法:使用与生成过程共享的线稿三平面预测网络,先直接预测得到线稿对应的三平面特征。为了保持非编辑区域的不变,进一步将线稿生成的三平面与原始的三平面特征进行融合,并使用与生成过程共享的编码网络,将三平面反投影至生成模型的隐空间,得到人脸的编辑的初值。
进一步,提出反向优化方法实现三维人脸的精细化编辑。具体而言,算法通过线稿生成分支渲染出合成线稿,在编辑区域与手绘线稿计算相似度。同时,在非编辑区域,图像生成分支渲染出人脸图像,与原始图像计算相似度。为了保证编辑前后的空间一致性,进一步约束非编辑区域的光线采样点特征相同。基于上述约束,反向优化隐码,实现人脸的精细化编辑。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。