[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模型,实现脸部区域的深度损失:

最终损失为:

 

实验

实验结果

消融实验

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

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

相关文章

vue3+vite 搭建项目

第一步 npm init vitelatest 当然,我在建项目的时候输入这个命令行的时候,报错了,提示安装依赖,执行如下命令: npm install -g create-vite 全局安装 create-vite cd xxx npm install npm run dev 之后就 按照步…

C++ Qt开发:TabWidget实现多窗体功能

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidget标签组件的常用方法及灵活运用。 Q…

MVVM响应式

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介MVVM响应式1. 什么是MVVM模式?2. Vue中的响应式数据3. 数据绑定与视图更新⭐ 写在最后⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习…

NVIDIA GPU日志解读

目录 2023-12-20 21:39:14.437944: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2To …

IspSrver-DNS

2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 安装DNS服务器,根据题目创建必要正向区域和反向区域的DNS解析。把当前机器作为互联网根域服务器,创建test1.com~test100.com,并在所有正向区域中创建一条A记录,解析到本机地址。配置步骤 安装DNS服务器,根据题目创…

eclipse部分常用快捷键的使用

eclipse部分常用快捷键的使用 注释部分 Ctrl / :注释或取消当前行注释。Ctrl Shift / :多行注释。Ctrl Shift \ :取消多行注释。AltShiftJ:方法注释。 代码部分 Alt /:代码提示补全。Ctrl 1:快速…

Copilot的实战经验分享和案例分析

案例一:快速开发REST API 在开发一个新的REST API时,Copilot可以大大加快开发速度。例如,当你需要创建一个新的用户端接口来添加新用户时,你可以在你的Python Flask应用中开始输入如下代码: app.route(/users, methods…

3842充电器电路图大全

3842充电器电路图(一) UC3842组成的充电器电路 图1中C1、V1~V4、C2组成滤波整流电路,变压器T为高频变压器,V5、R2、C11组成功率开关管V7的保护电路,NF为供给IC电源的绕组。单端输出IC为UC3842,…

Nacos-服务发现与配置管理v1.0

Nacos - 服务发现和配置管理 教学目标 1)能够理解微服务架构的特点 2)能够理解服务发现的流程 3)能够说出Nacos的功能 4)掌握Nacos的安装方法 5)掌握RESTful服务发现开发方法 6)掌握Dubbo服务发现开…

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

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

信息论安全与概率论

目录 一. Markov不等式 二. 选择引理 三. Chebyshev不等式 四. Chernov上限 4.1 变量大于 4.2 变量小于 信息论安全中会用到很多概率论相关的上界,本文章将梳理几个论文中常用的定理,重点关注如何理解这些定理以及怎么用。 一. Markov不等式 假定…

备忘:python和 java graphql client连Sky walking Server查询数据的联通性

本文仅做备忘 Skywalking OAP 关于graphql的url http://localhost:8090/graphql python3.10 需要安装 GraphQLClient库 testGraphQL.py程序 from graphqlclient import GraphQLClient import json if __name__ __main__:clientGraphQLClient(http://localhost:8090/graphql…

仙女麻麻看过来~你想要的穿搭我都有

精选优质匈牙利白鸭绒填充绒朵大而蓬松,毫无异味整件格充绒工艺不跑绒 更加的保暖舒适版型优秀显瘦不臃肿 黑色经典好穿又好看!

获取请求体中json数据并解析到实体对象

目录 相关依赖 前端代码 后端代码 测试结果 相关依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version> </dependency> <dependency><groupId>comm…

在vue中,文件转base64示例

在Vue中&#xff0c;你可以使用FileReader对象将文件转换为Base64编码。以下是一个示例代码&#xff0c;演示了如何将文件转换为Base64编码&#xff1a; <template> <div> <input type"file" change"onFileChange"> <button clic…

【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载

列表下拉刷新、上拉加载更多&#xff0c;不管在web时代还是鸿蒙应用都是一个非常常用的功能&#xff0c;基于ArkUI中TS扩展的声明式开发范式实现一个下拉刷新&#xff0c;上拉加载。 上拉加载、下拉刷新 如果数据量过大&#xff0c;可以使用LazyForEach代替ForEach 高阶组件-…

golang:Excel写入mysql数据库

要将读取的每个Sheet中的数据分别写入不同的MySQL数据库&#xff0c;你需要使用Go语言的MySQL数据库驱动&#xff0c;以及合适的数据库连接和插入逻辑。在Go中&#xff0c;可以使用github.com/go-sql-driver/mysql和github.com/jmoiron/sqlx等库来处理MySQL数据库连接和操作。 …

Seata1.4.2分布式事务搭建部署【Spring cloud Alibaba】

包下载 https://github.com/apache/incubator-seata/releases下载并上传到服务器 //解压 tar -zxvf seata-server-1.4.2.tar.gz创建Seata的数据库及表&#xff0c;地址&#xff1a;https://github.com/seata/seata/tree/develop/script/server 根据数据类型复制相应的sql&…

【 USRP安装教程】MATLAB 2023B

步骤 matlabdocusrp驱动包 doc 安装包内容列表 双击“R2023b_Doc_Windows.iso” 打开cmd 查看盘符 切换盘符 因为是F盘&#xff0c;所以cmd输入&#xff1a;“F:” F:进入可安装界面 cd F:\bin\win64安装离线文档库 .\mpm install-doc --matlabroot"C:\MATLAB\R202…

Java 第14章 集合 本章作业

文章目录 试分析HashSet和TreeSet分别如何实现去重的HashSet重复加入问题比较ArrayList和Vector 试分析HashSet和TreeSet分别如何实现去重的 (1) HashSet的去重机制&#xff1a;hashCode() equals()&#xff0c;底层先通过存入对象,进行运算得到一个hash值&#xff0c;通过ha…