[23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians

本文主要是介绍[23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[paper | proj]

  • 给定FLAME,基于每个三角面片中心初始化一个3D Gaussian(3DGS);当FLAME mesh被驱动时,3DGS根据它的父亲三角面片,做平移、旋转和缩放变化;
  • 3DGS可以视作mesh上的辐射场;
  • 为实现高保真的avatar,本文提出一种蒙皮(binding)继承策略,在优化过程中,保持蒙皮对3DGS的控制;
  • 本文贡献如下:
    • 提出GaussianAvatars,通过将3DGS绑定至FLAME模型,实现可驱动的head avatars;
    • 设计了一种蒙皮继承策略,使得在保持蒙皮控制的情况下,3DGS的新增和移除。

近期工作

静态场景表征

  • NeRF用神经网络,以辐射场的形式存储场景;
  • 后续工作将场景表征为voxel grids、使用voxel hashing、或使用tensor decomposition,加速渲染;
  • PointNeRF使用点云表征场景;
  • 3D Gaussian Splatting使用各向异性3D Gaussian,实现实时渲染和优异的视觉效果;
  • Mixture of Volumetric Primitives使用surface-aligned volumes实现高视觉保真度的快速渲染;

动态场景表征

  • Basic Design:基于NeRF的方法,输入4D坐标(x, y, z, t),输出密度和颜色。例如:K-Plane、4K4D等。这类方法虽然效果不错,但是无法显式控制内容;
  • Deformation MLP:学习静态标定空间,通过MLP将其他时间下的空间映射回标准空间;
  • Proxy geometry:
  • Liu等人 [25] 基于SMPL移动后的最近三角面片,将观察空间中的点warp回标定空间;
  • Peng等人 [34] 基于SMPL的骨架和神经蒙皮系数(neural blending weights)变形点;
  • 前向变形(forward deformation)[13, 18, 20, 23, 48] 和cage-based deformation [54];
  • 不同于上述方法,本文将3DGS附着在三角面片上,并显式地移动他们,避免使用标定空间,并可使用mesh finetuning。

头像重建与驱动

  • Thies等人 [41] 实现了数字人的实时人脸跟踪和面部重现(face reenactment);
  • Gafni等人 [8] 从单目视频中以表情系数作为控制信号,学习NeRF;
  • Grassal等人 [10] 向FLAME中添加偏移量,增强几何,通过基于表情控制的纹理域,实现动态纹理;
  • IMavatar [51] 基于神经隐式方程学习3D可形变数字人,通过iterative root-finding实现标定空间到观察空间的映射;
  • HeadNeRF [11] 学习一个基于NeRF的参数化头模;
  • INSTA [55] 通过寻找FLAME上最近三角面片,将查询点映射回标定空间;
  • Zheng [52] 探索了基于点的表征和可导的点渲染方法,在标定空间中定义点集,学习受FLAME表情系数控制的形变场,以驱动数字人;
  • AvatarMAV [46] 定义了标定辐射场和运动场;
  • 不同于INSTA,本文在3DGS和三角面片间建立一致性关联。

方法

  • 根据给定的多视角图片和相机参数,估计每帧图片中的FLAME参数;
  • 建立三角面片和3DGS的关系;
  • 可导渲染得到图片与GT图片算损失,用于训练模型;
  • 在训练过程中,通过蒙皮继承策略(binding inheritance strategy)控制3DGS增删后与三角面片的对应关系。

绑定3DGS与三角面片

给定三角面片,本文计算:

  • 均值位置T:给定三角面片的三条边,计算对应的均值位置;
  • 构造旋转矩阵R:1)三角面片的某条边;2)三角面片的法向向量;3)与前两者垂直的第三边;
  • 放缩变量k:通过三角形中一条边及其垂线的平均长度来计算标量k,以描述三角面片缩放;

对于对应的3DGS,在局部空间定义其位置\mu,旋转矩阵r,各向异性缩放系数s

  • 初始化时,\mu为局部零点位置,r为单位旋转矩阵,s为单位矢量。
  • 渲染时,将其从局部空间转换为全局空间:

本文将三角面片的缩放系数s,嵌入到公式5和6中,使得3DGS的局部位置和缩放与三角面片的缩放相关。这使得全局定义的学习率可以适用于局部。

蒙皮继承策略

  • 稠密:对于具有较大view-space positional gradient的3DGS,如果该点较大则拆分为两个,如果较小则复制一个新的;确保新3DGS和旧的足够近,这样可以将新点绑定至旧点对应的三角面片;
  • 剪枝:在3DGS原有剪枝的技术上,确保每个三角面片具有至少一个3DGS。有些脸部区域(眼球)常被遮挡,很有可能由于剪枝,导致眼球部分的3DGS被去掉。

优化和正则

  • 渲染图像损失如下,可以保证对已有场景有不错效果,但是对新表情和位置效果不佳(存在spike和blob伪影)

具有阈值的位置损失(Position loss with threshold)

在蒙皮继承策略中,本文通过拆分和复制增加新的3DGS。理想情况下,新增的3DGS应该与面片相邻。但是经过优化后,无法保证他们相邻。为解决该问题,本文引入了位置正则项:

\epsilon_{position}=1,确保3DGS和它的父亲三角面片足够近。

具有阈值的放缩损失(Scaling loss with threshold)

如果某个3DGS相较于它的父亲三角面片更大,三角面片的小角度旋转,会在3DGS上被放大,导致伪影。为解决该问题,本文引入了放缩正则项:

\epsilon_{scaling}=0.6,确保3DGS不会太大。

最终损失

其中,\lambda_{position}=0.01\lambda_{scaling}=1。这两项确保常被遮挡的区域(眼球、牙齿)可以被保留。

实现细节

  • Adam,位置学习率为5e-3,放缩学习率为1.7e-2;
  • 除了3DGS,FLAME的translation、joint rotation和表情系数也会fine-tune,学习率分别为:1e-6,1e-5和1e-3。
  • 训练600k iters,从10k iters之后,每2k iters执行3DGS的更新和蒙皮继承策略,每60k iters,重新设置3DGS的不透明度。

实验

  • 数据集:NeRSemble数据集上的9个目标,每个目标包含10种表情和16个视角。
  • 测试:1)新视角生成(novel-view synthesis);2)自重演(self-reenactment);3)跨ID重演(cross-identity reenactment)。

数字人重建

消融实验

这篇关于[23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511246

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用,模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇,同时也伴随着一系列需要克服的挑战,如何看待企业引进增材制造,小编为您全面分析。 机遇篇: 加速产品创新:3D打印技术如同一把钥匙,为模具企业解锁了快速迭代产品设计的可能。企业能够迅速将创意转化为实体模型,缩短产品从设计到市场的周期,抢占市场先机。 强化定制化服务:面

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

ElasticSearch 6.1.1 通过Head插件,新建索引,添加文档,及其查询数据

ElasticSearch 6.1.1 通过Head插件,新建索引,添加文档,及其查询; 一、首先启动相关服务: 二、新建一个film索引: 三、建立映射: 1、通过Head插件: POST http://192.168.1.111:9200/film/_mapping/dongzuo/ {"properties": {"title": {"type":

Windows环境下ElasticSearch6.1.1版本安装Head插件

安装Head插件步骤如下: 1、下载node.js ,网址:https://nodejs.org/en/ 安装node到D盘。如D:\nodejs。 把NODE_HOME设置到环境变量里(安装包也可以自动加入PATH环境变量)。测试一下node是否生效: 2、安装grunt grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.0里的head插件就是通过grunt

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相