[论文解析] HeadNeRF: A Realtime NeRF-based Parametric Head Model

news2024/11/18 23:25:06

在这里插入图片描述
code link: https://github.com/CrisHY1995/headnerf

相关连接:

https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/124874717

  • 来自中科大张举勇教授课题组提出了 HeadNeRF,一种基于 NeRF 的高效全息人脸头部参数化模型,该工作发表于 CVPR 2022,相关代码已开源。
  • HeadNeRF 可以实时地渲染高清图像级别的人脸头部,且支持直接编辑调整渲染结果的多种语义属性,如身份、表情以及颜色外观等。得益于 NeRF 结构的引入,HeadNeRF 也支持直接编辑调整渲染对象的渲染视角,同时不同视角的渲染结果具有优秀的渲染一致性。

https://www.zhihu.com/question/517340666/answer/2556591098?utm_id=0

  • 由于不同身份的人物对象,其脸部形状以及五官分布往往是相似的,因此人脸本身是适合嵌入到低维参数化空间,从而进行参数化建模表示的。然而,现有的基于传统几何表示的人脸/人头语义参数化模型常面临表达能力有限以及几何训练数据收集困难的问题。
  • 中国科学技术大学GCL实验室提出一种全新的参数化人脸头部表示——HeadNeRF,相关工作已被CVPR 2022接收,相关代码也已开源。
  • HeadNeRF直接将NeRF 本身看作一种三维表示。针对渲染任务,NeRF 一定程度上可以等价甚至优于传统的纹理材质网格。且由于 NeRF 是完全基于神经网络的,因此 NeRF 的渲染过程是天然可微的,而其他传统的几何表示,如三维网格,点云,体素等则往往需要各种近似策略来缓解相关表示的渲染不可微问题,与之对应的参数化表示工作往往则需要收集并处理大量的三维扫描数据。相对的,HeadNeRF 的构建过程则只需要使用二维人脸图片即可。效果上,HeadNeRF 可以实时地渲染图像级别的人脸头部,且支持直接编辑调整渲染结果的多种语义属性,如身份、表情以及颜色外观等。得益于 NeRF 结构的引入,HeadNeRF 也支持直接编辑调整渲染对象的渲染视角,同时不同视角的渲染结果具有优秀的渲染一致性。

文章目录

  • 相关连接:
    • https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/124874717
    • https://www.zhihu.com/question/517340666/answer/2556591098?utm_id=0
  • 内容概述
  • abstract
  • introduction
    • contributions
    • Framework
  • Methods
    • HeadNeRF的模型表示R:
    • 网络结构:
    • Latent Codes and Canonical Coordinate
    • Datasets and Preprocessing
    • loss function
      • Photometric Loss (光度损失)
      • Perceptual Loss (感知损失)
      • Disentangled Loss (分离损失)
      • 总体损失
  • Evaluations
    • Disentangled Control
      • pose控制
      • 属性编辑
    • 感知损失的消融研究
    • Ablation Study on 2D Neural Rendering
    • FFHQ数据集的重要性
  • Comparisons
  • 4.4. Application: Expression Transfer
  • 5. Limitation and Future Work
  • Conclusion

内容概述

在这里插入图片描述

abstract

在本文中,我们提出了一种新的基于nerf的参数化头部模型HeadNeRF,它将神经辐射场集成到头部的参数表示中。
它可以在GPU上实时渲染高保真的头部图像,支持直接控制生成的图像的渲染姿态和各种语义属性。

与现有的相关参数化模型不同,HeadNeRF采用神经辐射场代替传统的三维纹理网格作为新的三维代理,使得HeadNeRF能够生成高保真图像。

克服的困难:原始NeRF的渲染过程计算量大,阻碍了参数NeRF模型的构建。
针对这一问题,我们采用了将2D神经渲染与NeRF渲染过程相结合的策略,并设计了新的损失项。

取得的效果:
因此HeadNeRF的渲染速度可以明显加快,一帧的渲染时间从5s减少到25ms。
设计良好的损失项也提高了渲染精度,HeadNeRF可以表示和合成人类头部的细微细节,如牙齿之间的缝隙,皱纹和胡子。

introduction

HeadNeRF继承了NeRF的优秀特性,可以生成高保真度的头部图像,并保持显著的多视图一致性。此外,NeRF本身支持自由改变渲染所用的摄像机视角,因此HeadNeRF自然支持渲染图像的姿势编辑。

baseline: (对比的对象)
而传统的3D表示,如网格、点云、体素等,则需要设计各种近似方法[19,23,27,28,32]来缓解其渲染过程中的不可微问题。
与对比对象的优势:
因此,与以往需要捕获和处理大量高质量3D扫描数据的方法相比,HeadNeRF的构造只需要二维图像作为输入

我们收集并处理了三个大规模的人头图像数据集,并设计了新的损失项来解开这个参数表示。HeadNeRF通过良好设计的网络结构和损失函数,可以从语义上分离渲染图像的身份、表达和外观。

进一步将NeRF的体绘制与2D神经绘制相结合,实现实时绘制。 效果是:它可以在不牺牲渲染质量的情况下超过40fps (每秒50帧)。

HeadNeRF的应用:包括从单一面部图像进行新颖的视图合成、语义编辑面部属性,甚至将一个人的表情转移到另一个人的面部再现。

contributions

  • 我们提出了第一个基于nerf的参数化人头模型,该模型可以直接有效地控制渲染姿态、身份、表情和外观。
  • 我们提出了一种有效的训练策略,从一般的二维图像数据集中训练模型,训练后的模型可以生成高保真的渲染图像
  • 我们用HeadNeRF设计并实现了几个新的应用程序,结果验证了它的有效性。我们相信HeadNeRF可以开发出更多有趣的应用

Framework

在这里插入图片描述

  • 在给定语义潜码和摄像机参数的情况下,利用基于mlp的隐式函数hθ预测一条射线采样的三维点x的密度σ(x)特征向量F (x)
  • 执行体绘制生成低分辨率特征图 I F I_F IF
  • 特征图 I F I_F IF 进一步通过我们精心设计的2D神经渲染模块 π ψ π_ψ πψ

Methods

HeadNeRF的模型表示R:

在这里插入图片描述
其中:其中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 神经渲染模块

  • 主要由1x1 Conv2D和泄漏的ReLU[33]激活层组成,以缓解可能出现的多视图不一致工件[16]。
  • 与StyleNeRF[16]中使用的策略类似,通过一系列上采样层,IF的分辨率逐渐提高。上采样过程可以表述为:
    在这里插入图片描述
  • 其中,Rd→R4d是可学习的2层βζ,ζ表示可学习的权重,K是固定模糊核[62]。
  • 像GIRAFFE[38]一样,我们将每个特征张量映射到一个RGB图像,并将所有RGB的和作为最终的预测图像。不同的是,我们使用1x1卷积而不是3x3卷积来避免可能的多视图不一致[16]。
    在这里插入图片描述

Latent Codes and Canonical Coordinate

  • 为了有效地训练HeadNeRF,我们利用3DMM来初始化我们训练数据集的每一幅图像的潜代码 。 我们将HeadNeRF的潜在代码的维度设置为与3DMM[51]中相应代码的维度相同,并基于3DMM模型通过求解逆渲染优化[10,54]来初始化它们。
  • 为了稳定HeadNeRF的训练,我们需要在训练之前将每个图像的底层几何图形与类似的中心对齐。对于每幅图像,我们求解上述3DMM参数优化得到其相应的全局刚体变换T∈R4×4,该变换将3DMM几何从3DMM正则坐标转换到相机坐标。

Datasets and Preprocessing

  • FaceSEIP Dataset.
  • FaceScape Dataset.
  • FFHQ Dataset.

loss function

可学习变量包括每张图像的潜码体绘制神经绘制的共享网络参数。

Photometric Loss (光度损失)

对于每一幅图像,要求头部区域的渲染结果与对应的实像一致,此损失项表示为:
在这里插入图片描述

  • Mh is the head mask
  • Hadamard*(哈达玛积)乘积。 (对应位置想成)

Perceptual Loss (感知损失)

与普通NeRF相比,HeadNeRF可以通过一个推断直接预测渲染图像中所有像素的颜色。因此,我们采用等式(6)中的感知损失[20]来进一步改善渲染结果的图像细节。
在这里插入图片描述

  • 其中φi(∗) 表示VGG16[46]网络中第i层的激活。 ???
  • Lper可以显著改善渲染结果的细节

Disentangled Loss (分离损失)

  • 为了实现对渲染结果的语义解纠缠控制,我们让同一被试的所有图像共享相同的身份潜伏码,让同一被试的相同表情在不同光照条件下、不同拍摄相机下的图像共享相同的表情潜伏码

  • 为了达到解纠缠表达的目的,表达相似的不同主体应当有相似的表达码。由于3DMM的引入,第3.3节的初始化方法生成的初始表达式代码满足了这一要求。因此,我们要求可学习的表达式代码不能远离初始表达式代码。

  • 由于3DMM主要对面部区域进行建模,没有头发、牙齿等,所以我们对这些非表情属性放宽了限制。
    在这里插入图片描述
    其中z *是可学习潜码,z0 *是来自3DMM模型的初始潜码

总体损失

在这里插入图片描述

Evaluations

Disentangled Control

pose控制

对于给定的潜码组合(zid, zexp, zalb, zill),我们可以直接调整相机参数来连续改变渲染视图或编辑相机的位置和FoV(视场)。这些渲染结果具有良好的多视图一致性,说明我们设计良好的2D神经渲染模块有效地保留了原始NeRF隐式编码的几何结构
在这里插入图片描述

在这里插入图片描述

属性编辑

如图所示,在编辑特定的属性时,HeadNeRF可以保持剩余的语义属性,验证了HeadNeRF有效地分离了不同的面部属性。
在这里插入图片描述

感知损失的消融研究

知觉丧失的消融研究。感知损失有效地增强了生成结果的精细级细节(红色区域有褶皱,绿色区域有胡须)。
在这里插入图片描述

Ablation Study on 2D Neural Rendering

如图8所示,HeadNeRF-vanilla的结果趋于模糊,这可能是由于其训练效率不高造成的。相比之下,由于神经渲染模块所赋予的有效性和效率,HeadNeRF可以在获得更好的渲染结果的同时使用更少的训练时间。HeadNeRF-vanilla渲染一帧图像需要约5秒的时间,而HeadNeRF可以实时渲染结果。
在这里插入图片描述

由于2D神经渲染模块所赋予的有效性和效率,HeadNeRF可以使用更少的训练时间,同时获得更好的渲染结果

FFHQ数据集的重要性

为了验证FFHQ数据集的重要性,我们训练了两个参数模型进行比较,其中一个只训练了FaceSEIP数据集,另一个训练了FaceSEIP和FFHQ数据集。

优化后潜码的渲染结果如图9所示。可以发现,FFHQ数据集的引入显著地促进了HeadNeRF的泛化能力。
在这里插入图片描述利用FFHQ数据集进行消融研究。FFHQ数据集的引入显著提高了HeadNeRF的泛化能力。基于HeadNeRF,我们可以只以一张图像作为输入,修改优化结果的指定属性,如调整渲染姿势,改变渲染结果的身份、表情和外观。

  • 我们在模型训练中使用的数据集是互补的,有效地提高了HeadNeRF的表示能力。

Comparisons

在这里插入图片描述

HeadNeRF可以有效地生成高保真图像,同时保持优秀的多视图一致性

在这里插入图片描述
pi-GAN的拟合结果在视觉上确实是最优的。然而,如果对拟合结果的渲染姿态进行编辑和改变,往往会使渲染结果变得模糊和损坏。
在这里插入图片描述

4.4. Application: Expression Transfer

由于HeadNeRF具有较强的表示能力,可以对渲染结果的各种属性进行分离,可以用于小说视图合成、样式混合等许多应用。在这一部分中,我们利用HeadNeRF来执行表达式传输,即将参考视频中的面部表情转移到目标图像中的人。为此,我们只需要从参考视频和目标图像中提取所有图像的潜码,用参考视频中的表情潜码替换目标图像的表情潜码。最后,利用经过训练的HeadNeRF生成所需的人脸图像序列,其中目标图像中的字符被驱动从参考视频中做出表情。定性结果如图12所示。
在这里插入图片描述

5. Limitation and Future Work

HeadNeRF仍然存在一些局限性。虽然加入了FFHQ数据集中的图像来增强HeadNeRF的表示能力,但目前的训练数据集仍然不足以覆盖各种情况。对于与我们训练数据相差很大的图像,HeadNeRF只能返回相似的拟合任务结果。如图13所示,由于我们的训练数据很少涉及到带头饰的图像,所以在HeadNeRF的拟合结果中很难渲染头饰的内容。未来,我们考虑使用大量的野外人脸图像数据,以自监督的方式进一步增强HeadNeRF的表示能力。
在我们的多视图数据集(FaceSEIP)中,目前的训练数据集只包含四种照明类型,不足以覆盖照明类型。

Conclusion

在本文中,我们提出了一种新的基于nerf的参数头模型HeadNeRF,该模型将神经辐射场与参数头表示相结合。得益于我们精心设计的网络模块和损耗项,HeadNeRF可以在现代gpu上实时渲染高保真的头部图像,并支持直接控制渲染图像的姿势,独立编辑生成的图像的身份、表情和外观。大量的实验结果表明,HeadNeRF优于最先进的相关模型。我们相信HeadNeRF已经向现实的数字人类迈出了重要的一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里面试Redis最常问的三个问题:缓存穿透、缓存击穿、缓存雪崩(带答案)

一、缓存穿透 如上图,正常情况下,如果用户在redis缓存中没有查询到自己想要的数据,就会去mysql数据库中查询。如果mysql数据库中也没有,在没有任何措施下,用户一定会不断的去mysql数据库中查询,随着时间的推…

风控串行组合模型及其信用评估场景实践

在信贷风控中,数据建模好像是“家常便饭”那么普通且重要,而我们最终享用“饭菜”的美味程度,在数据“食材”较完备的情况下,完全取决于我们建模的方法。根据实际业务场景,采用合理且有效的建模思路,可以较…

诊断和响应故障_RMAN数据修复概念

1.RMAN数据修复概述 1.1.关于需要数据修复的问题 虽然有几种问题会中止Oracle数据库的正常操作或影响数据库I/O操作,只有以下几种情况要求DBA介入和数据修复:用户错误,应用程序错误和介质故障。 1.1.1.关…

[附源码]计算机毕业设计JAVA中达小区物业管理系统

[附源码]计算机毕业设计JAVA中达小区物业管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

【LeetCode】1775. 通过最少操作次数使数组的和相等

题目描述 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6&…

LaTeX行距以及字体大小

LaTeX行距以及字体大小1、行距2、字体大小1、全局模式2、局部模式1、行距 一:改变全文行距 导言部分前加入\linespread{2.0}即可,代表全文两倍行距。 二:部分段落需要改变行距 \usepackage{setspace} \begin{spacing}{2.0}(内…

js_实现网页自动跳转

网页自动跳转实现网页定时自动跳转实现网页定时自动跳转 效果&#xff1a; 10秒后自动跳转到网易云音乐的页面 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.box{wi…

什么是 NFT 洗盘交易:洗盘交易背后的原理

2022年12月 CoinGecko 与 Footprint Analytics 联合报告 Data Source&#xff1a;Footprint Analytics 市场上有一种说法是&#xff0c;整个NFT 市场的交易本质是欺诈性的&#xff0c;并且是由洗盘交易者操纵出来的假象。我们经常看到许多 媒体头条 在推动这种说法。毕竟&…

HTML学生个人网站作业设计:宠物网站设计——萌宠有家(5页) HTML+CSS 简单DIV布局宠物介绍网页模板代码 DW学生个人网站制作成品下载

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

动态规划:01背包问题例题(leetcode+cpp实现)

文章目录分割等和子集最后一块石头的重量前情回顾&#xff1a; 动态规划(4)&#xff1a;01背包问题详解 分割等和子集 力扣传送门&#xff1a; https://leetcode.cn/problems/partition-equal-subset-sum/ 题目描述&#xff1a; 给你一个整数数组&#xff0c;将这个数组里的…

论文速读Backbone系列一:点云Transformer结合、PointNet++改进、点云卷积核设计

如有错误&#xff0c;恳请指出。 对一些经典论文进行快速思路整理&#xff0c;以下内容主要关注的是3d点云的backbone设计&#xff0c;包括transformer的应用&#xff0c;卷积核的设计&#xff0c;PointNet网络的改进。 文章目录一、Transformer改进1. 《PCT: Point Cloud Tran…

Wireshark高级特征

1&#xff0c;端点和网络会话 想要让网络通信正常进行&#xff0c;你必须至少拥有两台设备进行数据流的交互。端点&#xff08;endpoint&#xff09;就是指网络上能够发送或接收数据的一台设备。两个端点之间的通信被称之为会话&#xff08;conversation&#xff09;。Wiresha…

Python中如何选择Web开发框架?

Python开发中Web框架可谓是百花齐放,各式各样的web框架层出不穷,那么对于需要进行Python开发的我们来说,如何选择web框架也就变成了一门学问了。本篇文章主要是介绍目前一些比较有特点受欢迎的Web框架,我们可以根据各个Web框架的特性进行选择应用。 Django Django是市面上…

利用Astar算法实现飞行轨迹的三维路径规划(基于Matlab代码实现)

目录 1 概述 1.1研究背景 2 运行结果 3 Matlab代码实现 4 参考文献 1 概述 随着自动化技术的发展,现代航空技术水平有了前所未有的提高,促进了无人机在军事、民用领域的广泛应用。航迹规划技术作为无人机任务规划的关键技术,一直都是无人机领域的一大研究热点。无人机航迹规划是…

Synopsys Sentaurus TCAD系列教程之-- Svisual《一》看图工具

Svisual Svisual作为独立的模块&#xff0c;可以实现Inspect对于节点.plt曲线的查看&#xff0c;也可以实现TecplotSV的.tdr看图功能&#xff0c;还可以进行自动化操作。 当作看图工具使用 - 当作一维曲线看图工具&#xff08;.plt,Inspect) 1.1 打开&#xff1a;Sdevice模块…

[附源码]Python计算机毕业设计SSM基于自组网的空地一体化信息系统(程序+LW)

[附源码]Python计算机毕业设计SSM基于自组网的空地一体化信息系统&#xff08;程序LW) 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

F12抓包简单案例

F12抓包原理&#xff1a;在电脑访问互联网之前&#xff0c;进行包录制 1.谷歌开发者工具&#xff08;F12&#xff09; 元素&#xff08;Elements&#xff09;&#xff1a;页面元素查看分析&#xff0c;web自动化 控制台&#xff08;Console&#xff09;:查看日志 来源&#xf…

c语言---指针进阶(2)--玩转指针

今天内容不多&#xff0c;但都是精华。 1.数组参数和指针参数 2.函数指针 2.1笔试题 3.函数指针数组 1.数组参数和指针参数 例1&#xff1a;一维数组传参 void test(int arr[]) {} void test(int arr[10]) {} void test(int *arr) {}void test2(int *arr2[20]) {} void …

kotlin之声明变量的方式

让我们来看一下java声明变量的方式 Java声明变量方式 类型 变量名 等于 初始化值 String str "999999999"; kotlin声明变量方式 <关键字> <变量名称> : <类型> <初始化值> var sr : String "s…

[附源码]Python计算机毕业设计SSM计算机软考系统的设计与实现(程序+LW)

[附源码]Python计算机毕业设计SSM计算机软考系统的设计与实现&#xff08;程序LW) 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。…