[CVPR-23] Instant Volumetric Head Avatars

[paper | code | proj] 

  • 本文提出INSTA。INSTA是一种backward mapping方法。该方法基于NeRF建立标准空间,形变空间(任意表情)通过映射回标准空间,实现渲染。
  • 为实现形变空间中任意点向标准空间的映射,对形变空间中的任意点:1)找到最近邻三角面片;2)通过该三角面片和对应标定空间中的三角面片计算形变梯度;3)通过形变梯度将该点映射回标准空间;
  • 给定一段单目RGB肖像视频,该视频记录了目标人物的不同表情和视角,实现对未见表情和视角的渲染。

快速可变形神经辐射场

  • 任务设置:给定单目视频I = \{I_i\}、相机内参K\in\mathbb{R}^{3\times3}、FLAME meshes M = \{M_i\}、FLAME表情系数E=\{E_i\}和FLAME相机位姿P=\{P_i\},生成基于神经辐射场(NeRF)表征的可控制头部虚拟人
  • 本文方法属于Backward Mapping。本文基于NeRF建立标准空间,为了渲染特定面部表情,将形变空间中采样的点,映射回标准空间中。相较而言,经典的Dynamic NeRF是将不同时间的点映射回标准空间。

体渲染

其中,是透明度,\sigma(t)是密度,c(t)p_t位置的颜色。任意点p_t,在预测其密度和颜色时,会受该帧对应的3DMM表情系数E_i \in \mathbb{R}^{16}影响。

标准空间

本文通过计算形变梯度(deformation gradient)F\in\mathbb{R}^{4\times4},将形变空间中点映射到标准空间中。

  • 给定第i个形变空间中的任意点,其FLAME最近邻三角面片(triangle)是T_{def} \in M_i,对应标准空间中的FLAME三角面片是T_{canon}\in M^{canon}
  • 通过三角面片切向量(tangent vector)、双切向量(bitangent vector)和法向量(normal vector),计算旋转矩阵\{R_{canon}, R_{def}\}\in\mathbb{R}^{3\times3}
  • 通过三角面片顶点可以计算位移\{t_{canon}, t_{def}\}\in\mathbb{R}^3
  • 通过旋转矩阵和位移矩阵,可以计算Frenet坐标系统帧L_{canon}L_{def},两者大小都是\mathbb{R}^{4\times4}

  • 考虑到三角面片在形变空间和标准空间中的差异,本文通过对应三角面片的面积比,计算各向同性的放缩变量\lambda\in\mathbb{R}\lambda=\frac{a_{def}}{a_{cannon}}
  • 最终,形变梯度F定义如下:

  • 为了避免变化的不连续性,本文额外执行了相邻面片转换的指数加权平均:

  • 其中,,A是T的相邻面片,其中心点为c_f
  • 值得一提的是,所有顶点的位置都以米为单位(FLAME的度量单位)

为了加速渲染,本文借助经典的bounding volume hierarchy (BVH),提高最近邻三角面片的搜索速度。同时,为了减缓FLAME中高度密集区域的三角面片搜索,本文简化了研究和眼睛区域;

训练目标

任意点颜色为:

其中,\delta_n = \frac{\sqrt{3}}{1024}

借助FLAME模型,实现脸部区域的深度损失:

最终损失为:

 

实验

实验结果

消融实验

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rk3568 bootLoader编译

Linux系统uboot、linux kernel、rootfs移植学习笔记(一)_uboot 删除环境变量-CSDN博客 板信息配置文件:device/rockchip/rk356x/BoardConfig-IAC-RK3568-MB-BETA-V1_00.mk uboot编译入口 Linux系统uboot、linux kernel、rootfs移植学习笔记&…

许久不见钱伯斯,他说大部分AI公司会失败,但值得一拼

前言:AI大饼是否还不够大,于是我也想多画一画 【科技明说 | 科技热点关注】 许多年不见钱伯斯,他发声指出大部分AI公司会失败,但值得一拼。 钱伯斯(John Chambers)以长期担任思科(Cisco)首席执行官的硅谷传奇人物而…

C++入门【12-C++ 数组】

C 数组 C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99&#xff0…

软协打卡---内网穿透实现

注意:仅为个人学习知识,其中理论知识不一定正确。 目录 1.前言 2.ip与域名的简单说明 ip与域名 公共ip和内网ip 内网穿透了解 为什么使用内网穿透 内网穿透是什么 3.PHPSTUDY了解 4.花生壳的使用 最终结果: (实际上大部…

Elasticsearch:什么是文本分类?

文本分类定义 - text classification 文本分类是一种机器学习,它将文本文档或句子分类为预定义的类或类别。 它分析文本的内容和含义,然后使用文本标签为其分配最合适的标签。 文本分类的实际应用包括情绪分析(确定评论中的正面或负面情绪&…

JavaGUI(但期末速成版)之容器和控件

点击返回标题->JavaGUI期末速成版-CSDN博客 前言 依旧先声明,本篇记录的JavaGUI编程都是十分精简的,内容只取常用的、套路的、应付期末考试的。 在学习本篇之前,很有必要先弄清楚Java基于swing包下的图形化编程的层次逻辑。 在前一篇中&a…

EasyUiAutotest 项目目录设置及说明

一、前置说明 清晰的项目目录结构非常重要的,它能够为项目提供结构化、易维护、易理解的环境。 二、目录设置及说明 项目目录结构如下: EasyUiAutotest ├───atme # me,供个人使用的目录,与整体项目无关,存…

指针---你真的会使用指针吗?

指针作为C语言中的一个部分,可以说指针是C语言的核心,那么它的难度肯定是不言而喻的,总是能把人给绕得找不到方向。 今天我就好好的说一说指针这个东西。 1、何为指针? 指针是C语言中用来存放地址的一个变量类型。我们可以将指针看…

[电子榨菜] js中的闭包closure

0.写在前面: 下学期就打算去实习了,这段时间要密集接收考试和面试的捶打,计网和软工就没有办法为大家继续贡献开源内容了,明年九月份之前的更新内容将会以前端,人工智能,和工程设计为基础, 很抱歉啦,不过我还是希望我这一年来的努力可以帮到一些人.虽然自己这一年过的浑浑噩噩…

more的详细用法

概要&#xff1a; Linux中more的功能是分页显示文件内容 空格键显示下一屏(页)&#xff0c;回车键Enter显示下一行&#xff0c;q键退出 本篇所用系统是Ubuntu22.04 一、more filename more后面跟的是文件名&#xff0c;分页显示文件内容 二、more < filename more从…

C语言—每日选择题—Day59

指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 以下关于 typedef 正确的描述是&#xff08;&#xff09;【多选】 A&#xff1a;用typedef可以定义各种类型别名&#xff0c;但不能定义变量…

收藏!可能是最完整的全球AI大模型名单

ChatGPT的出现在全球掀起了AI大模型的浪潮。 区块链是生产关系的重构&#xff0c;元宇宙是虚拟场景的重构&#xff0c;而互联网则解决了信息流通和生产效率的问题&#xff0c;但这些都是在生产关系范畴内&#xff0c;而ChatGPT的出现则大幅度提升了生产力&#xff0c;让人类可…

openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据

文章目录 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据168.1 操作场景168.2 操作步骤168.3 示例 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据 168.1 操作场景 gs_restore是…

Windows中安装nvm进行Node版本控制

1.nvm介绍 nvm英文全程也叫node.js version management&#xff0c;是一个node.js的版本管理工具。nvm和npm都是node.js版本管理工具&#xff0c;但是为了解决node各种不同之间版本存在不兼容的问题&#xff0c;因此可以通过nvm安装和切换不同版本的node。 2.nvm下载 可在点…

Linux基础(第三部分)

目录 一、查看文件显示命令 1、cat&#xff1a;查看文件内容&#xff1b;上下合并文件 2、标准输入与标准输出&#xff1a; 3、例题&#xff1a;如何合并两个文件 4、tac 就是反方向查看 5、rev 把一行倒过来 6、hexdump 查看硬件设备 7、more和less 8、查看文件内容…

ICC2:Less than minimum edge length和Concave convex edge enclosure

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 首先,要介绍一下这两种drc Less than minimum edge length对应的tf rule如下: 而Concave convex edge enclosure对应图示和tf 规则如下,可

【UML】第7篇 用例图(2/3)

目录 一、什么是用例&#xff08;Use Case&#xff09; 二、用例的识别 2.1 识别用例的思考方法 2.2 识别用例的注意事项 三、用例的命名 四、用例规约 五、用例的粒度处理 错误1&#xff1a;粒度过细 错误2&#xff1a;把步骤当用例 错误3&#xff1a;把活动当用例 …

关于RAP和ZIP之间的区别、关系和转换,看这篇就差不多了

RAR和ZIP文件都是流行的文件格式&#xff0c;允许你以压缩的方式存储文件。因此&#xff0c;文件占用的空间较小&#xff0c;并且可以在需要时快速传输。 当你有一些RAR文件已经被压缩时&#xff0c;由于各种原因&#xff0c;你可能仍然想将它们转换为ZIP文件。阅读本文了解如…

Axure RP 8 for Mac/win中文版:打造完美交互式原型设计体验

Axure RP 8&#xff0c;一款引领潮流的交互式原型设计工具&#xff0c;为设计师提供了无限的可能性&#xff0c;让他们能够创造出逼真的原型&#xff0c;从而更好地展示和测试他们的设计。 Axure RP 8拥有丰富的功能和工具&#xff0c;让设计师可以轻松地创建出复杂的交互式原…

hadoop集群的开启与关闭

背景 很久没完hadoopl,连怎么开启关闭都不会了qwq 1.进入安装hadoop的目录 我这里是已经进入了 2.开启集群 sbin/start-dfs.sh 3.关闭集群 sbin/stop-dfs.sh