[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与三角面片
给定三角面片,本文计算:
- 均值位置
:给定三角面片的三条边,计算对应的均值位置;
- 构造旋转矩阵
:1)三角面片的某条边;2)三角面片的法向向量;3)与前两者垂直的第三边;
- 放缩变量
:通过三角形中一条边及其垂线的平均长度来计算标量
,以描述三角面片缩放;
对于对应的3DGS,在局部空间定义其位置,旋转矩阵
,各向异性缩放系数
。
- 初始化时,
为局部零点位置,
为单位旋转矩阵,
为单位矢量。
- 渲染时,将其从局部空间转换为全局空间:

本文将三角面片的缩放系数,嵌入到公式5和6中,使得3DGS的局部位置和缩放与三角面片的缩放相关。这使得全局定义的学习率可以适用于局部。
蒙皮继承策略
- 稠密:对于具有较大view-space positional gradient的3DGS,如果该点较大则拆分为两个,如果较小则复制一个新的;确保新3DGS和旧的足够近,这样可以将新点绑定至旧点对应的三角面片;
- 剪枝:在3DGS原有剪枝的技术上,确保每个三角面片具有至少一个3DGS。有些脸部区域(眼球)常被遮挡,很有可能由于剪枝,导致眼球部分的3DGS被去掉。
优化和正则
- 渲染图像损失如下,可以保证对已有场景有不错效果,但是对新表情和位置效果不佳(存在spike和blob伪影)
![]()
具有阈值的位置损失(Position loss with threshold)
在蒙皮继承策略中,本文通过拆分和复制增加新的3DGS。理想情况下,新增的3DGS应该与面片相邻。但是经过优化后,无法保证他们相邻。为解决该问题,本文引入了位置正则项:
![]()
,确保3DGS和它的父亲三角面片足够近。
具有阈值的放缩损失(Scaling loss with threshold)
如果某个3DGS相较于它的父亲三角面片更大,三角面片的小角度旋转,会在3DGS上被放大,导致伪影。为解决该问题,本文引入了放缩正则项:
![]()
,确保3DGS不会太大。
最终损失
![]()
其中,和
。这两项确保常被遮挡的区域(眼球、牙齿)可以被保留。
实现细节
- 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
[paper | proj] 给定FLAME,基于每个三角面片中心初始化一个3D Gaussian(3DGS);当FLAME mesh被驱动时,3DGS根据它的父亲三角面片,做平移、旋转和缩放变化;3DGS可以视作mesh上的辐射场࿱…...
JSON Ajax
1. JSON概念 JSON,全称JavaScript Object Notation,即JavaScript对象表示法,是一种轻量级的数据交换格式。它基于JavaScript的子集,易于人阅读和编写,同时也易于机器解析和生成。 JSON的诞生,是为了解决电…...
ElasticSearch与HBase的分布式存储设计
本文内容覆盖如今两大非结构化数据库之间的区别 详情介绍 从各个角度详细对比 1. 官方定位 HBase 是 Hadoop 数据库,是一个分布式、可扩展的大数据存储。 当您需要对大数据进行随机、实时的读/写访问时,请使用 Apache HBase™。 这个项目的目标是在商用硬件集群上托管非常大…...
回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图)
回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图) 目录 回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图)效果一览基本介绍…...
Bezier 曲线 2D
Bezier 曲线于 1962 年由法国雪铁龙汽车公司的工程师 Bezier 所发表,主要应用于汽车的外形设计。虽然 Bezier 曲线早在 1959 年便由法国雷诺汽车公司的 De Casteljau 运用递推算法开发成功,但是 Bezier 却给出了曲线的详细的曲线计算公式。所以ÿ…...
Linux静态ip
Linux静态ip Ⅰ、修改静态ip Ⅰ、修改静态ip 修改静态ip必须是root用户 su root //切换root用户 ip a //查看修改前的动态ipvi /etc/sysconfig/network-scripts/ifcfg-ens33 //打开网卡配置文件,修改一处,新增四处 BOOTPROTO&quo…...
一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读
A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结: 论文标题:A VIDEO ANOMALY DETECTION FRA…...
Netty—NIO万字详解
文章目录 NIO基本介绍同步、异步、阻塞、非阻塞IO的分类NIO 和 BIO 的比较NIO 三大核心原理示意图NIO的多路复用说明 核心一:缓存区 (Buffer)Buffer类及其子类Buffer缓冲区的分类MappedByteBuffer类说明: 核心二:通道 (Channel)Channel类及其…...
面试经典150题(32-37)
leetcode 150道题 计划花两个月时候刷完,今天(第十五天)完成了6道(32-37)150: 今天刚好有点没精神的感觉,然后碰到的题也不难。。天意!!! 32.(289. 生命游戏࿰…...
手撕分布式缓存---HTTP Client搭建
经过上个章节的学习,我们已经实现了一致性哈希算法,这个算法保证我们可以在节点发生变动时,最少的key请求受到影响,并返回这个节点的名称;这很大程度上避免了哈希雪崩和哈希穿透的问题。这个章节我们要基于此实现完整的…...
word如何快速制作简易代码块
先上解决方案。 方式一(全自动): typora编辑,导出选择word文档即可。内网环境,故放弃。 方式二(全手动): 在修改文档时,左侧会有“段落布局”按钮,点击该按…...
Linux常用网络指令
网络参数设定使用的指令 手动/自动设定与启动/关闭 IP 参数:ifconfig, ifup, ifdown ifconfig ifconfig常用于修改网络配置以及查看网络参数的指令 [rootwww ~]# ifconfig {interface} {up|down} < 观察与启动接口 [rootwww ~]# ifconfig interface {options…...
Spark on Yarn 安装配置实验(3.1.1)
子任务二: Spark on Yarn 安装配置 本任务需要使用 root 用户完成相关配置, 已安装 Hadoop 及需要配置前置环境,具体要求如下: 1 、从宿主机 /opt 目录下将文件 spark-3.1.1-bin-hadoop3.2.tgz 复制到容器 Master 中的 /opt/software (若 路径不存在,则需新…...
详解YOLOv5网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署
一、本文介绍 本文给大家带来的教程是利用YOLOv5训练自己的数据集,以及有关YOLOv5的网络结构讲解/数据集获取/环境搭建/训练/推理/验证/导出/部署相关的教程,同时通过示例的方式让大家来了解具体的操作流程,过程中还分享给大家一些好用的资源…...
ansible(不能交互)
1、定义 基于python开发的一个配置管理和应用部署工具,在自动化运维中异军突起,类似于xshell一键输入的工具,不需要每次都切换主机进行操作,只要有一台ansible的固定主机,就可以实现所有节点的操作。不需要agent客户端…...
黑马点评06分布式锁 2Redisson
实战篇-17.分布式锁-Redisson功能介绍_哔哩哔哩_bilibili 1.还存在的问题 直接实现很麻烦,借鉴已有的框架。 2.Redisson用法 3.Redisson可重入原理 在获取锁的时候,看看申请的线程和拿锁的线程是否一致,然后计算该线程获取锁的次数。一个方法…...
深度剖析知识图谱:方法、工具与实战案例
💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 知识图谱作为一种强大的知识表示和关联技术&am…...
Oracle中的dblink简介
Oracle中的dblink简介 是一种用于在不同数据库之间进行通信和数据传输的工具。它允许用户在一个数据库中访问另一个数据库中的对象,而无需在本地数据库中创建这些对象。 使用dblink,用户可以在一个数据库中执行SQL语句,然后访问另一个数据库中…...
ubuntu安装显卡驱动过程中遇到的错误,及解决办法!
ubuntu安装显卡驱动的过程中,可能会遇到以下问题,可以参考解决办法! 问题1: ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details. …...
【程序】STM32 读取光栅_编码器_光栅传感器_7针OLED
文章目录 源代码工程编码器基础程序参考资料 源代码工程 源代码工程打开获取: http://dt2.8tupian.net/2/28880a55b6666.pg3这里做了四倍细分,在屏幕上显示 速度、路程、方向。 接线方法: 单片机--------------串口模块 单片机的5V-------…...
企业级AI绘图中台搭建实录:如何将Midjourney API无缝集成至Django/Node.js微服务架构(含OAuth2.0代理网关设计)
更多请点击: https://intelliparadigm.com 第一章:企业级AI绘图中台架构全景概览 企业级AI绘图中台并非单一模型服务的简单堆叠,而是一个融合模型管理、资源调度、安全治理与业务编排的多层协同系统。其核心目标是在保障合规性、可审计性与…...
Geckodriver终极指南:快速安装Firefox自动化测试工具
Geckodriver终极指南:快速安装Firefox自动化测试工具 【免费下载链接】geckodriver WebDriver Classic proxy for automating Firefox through Marionette 项目地址: https://gitcode.com/gh_mirrors/ge/geckodriver Geckodriver是连接W3C WebDriver客户端与…...
CH340系列Linux驱动编译与内核适配实战
1. CH340驱动在Linux环境下的特殊挑战 第一次在Ubuntu 22.04上折腾CH340驱动时,我遇到了一个让人哭笑不得的情况——官方提供的驱动源码居然编译不过!这让我意识到,随着Linux内核版本的快速迭代,很多老牌硬件设备的驱动都需要手动…...
终极指南:如何用免费AI转PSD工具实现矢量图层无损转换?
终极指南:如何用免费AI转PSD工具实现矢量图层无损转换? 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 你是否在Adobe…...
避坑指南:在CentOS 7虚拟机里用Cadence Virtuoso做仿真,这两个模型库配置细节千万别忽略
避坑指南:在CentOS 7虚拟机里用Cadence Virtuoso做仿真,这两个模型库配置细节千万别忽略 在IC设计领域,Cadence Virtuoso作为行业标准工具链的核心组件,其稳定性和功能完整性直接影响设计效率。然而,当这一专业工具运…...
ARM GICD_CTLR寄存器详解与中断控制实践
1. GICD_CTLR寄存器概述GICD_CTLR是ARM通用中断控制器(GIC)中Distributor模块的核心控制寄存器,作为中断系统的"总开关",它直接决定了整个中断控制器的行为模式。在GICv3/v4架构中,这个32位寄存器主要实现三大核心功能:…...
ServerPackCreator:3分钟搞定Minecraft服务器包配置的智能自动化工具
ServerPackCreator:3分钟搞定Minecraft服务器包配置的智能自动化工具 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/Server…...
智能体的核心能力到底是什么?看完彻底刷新认知
文章目录前言一、智能体的本质:从“回答问题”到“解决问题”的范式跃迁二、智能体的四大核心能力,少一个都是伪智能体2.1 自主规划能力:把复杂目标拆成可执行步骤2.2 工具调用与编排能力:按需组合工具,而不是只会调用…...
需求驱动设计:构建可追溯、高质量的FPGA/ASIC开发流程
1. 项目概述:为什么我们需要一场关于“需求驱动设计”的讨论?如果你是一名FPGA或ASIC的设计工程师、项目经理,或者正在向这个领域迈进,那么“项目延期”、“功能bug在流片前夜才被发现”、“需求变更导致架构推倒重来”这些场景&a…...
情感化导航系统:基于上下文感知与自然语言生成的智能交互实践
1. 项目概述:一个能“夸夸”的导航技能最近在GitHub上看到一个挺有意思的项目,叫“kuakua-navigator-skills”。光看名字,你可能会有点摸不着头脑——“kuakua”是什么?导航技能又是什么?这俩词放一起,感觉…...
