[CVPR-24] HUGS: Human Gaussian Splats

  • 本文提出一种新的数字人表征Human Gaussian Splats (HUGS),可以实现新姿态和新视角生成;
  • 本文提出一种新的前向形变模块(forward deformation module),在标定空间基于Gaussians表征数字人,并基于LBS学习如何驱动数字人;
  • HUGS从50-100帧单目视频中创建数字人,经过30分钟训练,可在高分辨率下实现60FPS渲染;
  • HUGS在NeuMan、ZJU-Mocap数据集上实现sota重建质量。

方法

Prelimiaries

  • SMPL是一种人体先验模型,可实现人体形状和姿态控制。
  • 形式上,SMPL定义了静止姿态(例如,T-Pose)下的人体网格(\bar{T}, F)。其中,\bar{T} \in \mathbb{R}^{n_v \times 3}n_v个顶点,F \in \mathbb{N}^{n_t \times 3}n_t个具有固定拓扑关系的三角面片。给定形状系数\beta \in \mathbb{R}^{|\beta|}和姿态系数\theta \in \mathbb{R}^{3n_k + 3},SMPL在静止姿态下将顶点转换为某种形状下的坐标:T_S(\beta, \theta) = \bar{T} + B_S(\beta) + B_P(\theta)。其中,T_S(\beta, \theta)表示某种形状下的顶点坐标,B_S(\beta) \in \mathbb{R}^{n_v \times 3}B_P(\theta) \in \mathbb{R}^{n_v \times 3}表示形状和姿态导致的位移偏差。
  • SMPL使用n_k个预定义关节点和对应Linear Blend Skinning (LBS),驱动人体网格到特定姿态。LBS系数W \in \mathbb{R}^{n_k \times n_v}由SMPL定义。给定静止姿态下的第i个顶点p_i \in \mathbb{R}^3和关节点配置(世界坐标下的旋转和位移矩阵)G=[G_1, ..., G_{n_k}],其中G_k \in SE(3),根据姿态形变后的顶点坐标为v_i = (\sum^{n_k}_{k=1} W_{k, i}G_k)p_i,其中W_{k, i} \in \mathbb{R}表示第k个关节点对第i个顶点的LBS权重。

Human Gaussian Splats

给定T张图片和对应的相机位姿,HUGS首先使用4DHumans估计SMPL的姿态系数\theta_1, ..., \theta_T和形状系数\beta。本文通过3D Gaussians表征人体,并使用学习到的LBS系数驱动Gaussians。通过训练,本文输出Gaussian的位置、旋转、缩放、颜色和LBS系数。整体框架如下图所示:

HUGS通过一个triplane F \in \mathbb{R}^{3 \times h \times w \times d}和三个MLPs构造标定空间下的人体。

渲染

  • 首先根据第i个Human Gaussians的中心点坐标\mu_i,从triplane中插值得到特征f^i
  • 使用外观MLP D_A预测RGB颜色和不透明度;
  • 使用几何MLP D_G预测中心位置残差\Delta {\mu_i},旋转矩阵R_i和缩放系数S_i
  • 使用形变MLP D_D预测LBS权重W_i \in \mathbb{R}^{n_k}
  • 最终,基于WG变化Human Gaussians,与Scene Gaussians一起渲染为图片。

优化

  • 优化参数包括Gaussians中心位置\mu,triplane和三个MLPs。
  • 渲染图像和GT计算\mathcal{L}_1损失,SSIM损失\mathcal{L}_{ssim}和感知损失\mathcal{L}_{vgg}。本文同时渲染仅有人像的图片,并同样适用上述损失做监督。
  • 对学习到的LBS权重施加约束,让LBS权重与SMPL的原始LBS权重尽可能保持接近。具体来说,对任意Gaussians,本文检索其最近的k=6个SMPL顶点,使用距离为权重的加权平均得到监督LBS系数\hat{W}。约束损失为\mathcal{L}_{LBS} = ||W-\hat{W}||^2_F
  • HUGS的整体损失为:

  • 其中\lambda_1=0.8, \lambda_2=0.2, \lambda_3=1.0, \lambda_4=1000。使用Adam优化器,学习率为10^{-3}和cosing lr schedule

初始化

  • Gaussians中心\mu初始化在静止姿态下的SMPL顶点;
  • 预训练feature triplane和MLPs,让他们输出RGB颜色为[0.5, 0.5, 0.5],不透明度o=0.1,位置偏移量\Delta\mu=0,让旋转矩阵对齐顶点向量,放缩系数是平均变长,LBS权重与SMPL顶点权重一致。预训练需要5000轮(在3090Ti GPU上仅需1分钟)。
  • HUGS将SMPL上采样得到n_v=110,210个顶点和n_t = 220, 416个面片。
  • 优化过程中,每600iter基于梯度和不透明度做clone, split和prune。完整优化为12K轮,在3090Ti GPU上大约30分钟。
  • 最终每个数字人平均由200K个Gaussians表征。

实验

  • 数据集:NeuMan Dataset、ZJU-MoCap Dataset;
  • 比较方法:定性分析(Vid2Avatar、NeuMan),定量分析(NeRF-T、HyperNeRF、NeuMan、Vid2Avatar)
  • 量化指标:PSNR、SSIM和LPIPS

定量与定性分析

消融实验

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

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

相关文章

从 ASCII 到 UTF-8 - Unicode 码的诞生与实现

前言:最近我在整理过往笔记时,发现涉及到了 UTF-8、Unicode 的相关内容,相信大家中的很多人和之前的我一样,在过去的很长一段时间里,并没有搞清楚什么是 Unicode、什么是 UTF-8,于是就有了这篇文章&#xf…

SSL证书:守护个人信息安全的坚固盾牌

在数字化浪潮汹涌的今天,我们的个人信息如同一座座宝藏,吸引着不法分子的贪婪目光。数据泄露事件频发,让信息安全问题日益凸显。而在这个信息爆炸的时代,如何保护我们的个人信息安全,成为了一个亟待解决的问题。幸运的…

【第三节】类的构造和析构函数

目录 一、数据成员的初始化 二、构造函数 2.1 什么是构造函数 2.2 构造函数的注意事项 三、析构函数 四、带参数的构造函数 五、缺省构造函数 六、构造函数初始化列表 七、拷贝构造函数和调用规则 八、深拷贝和浅拷贝 九、总结 一、数据成员的初始化 定义普通变量&am…

java智慧工厂制造生产管理MES系统saas模式Java+ idea+ uniapp全套MES系统源码,多端展示

java智慧工厂制造生产管理MES系统saas模式Java idea uniapp全套MES系统源码,多端展示 MES 系统源码(生产制造执行系统)能够帮助企业实现全生产过程的可视化,数据分析智能化、构建高效智能工厂,MES系统通过控制指令、人…

大气污染溯源算法及其技术实现

污染溯源基础概念知识 大气污染溯源是指识别并追踪污染物的来源及其传输过程,以确定造成大气污染的根本原因和污染物传播路径的技术和方法。这对于制定有效的控制和减轻污染策略至关重要。大气污染的溯源主要涉及以下几个方面: 污染源识别:…

Facebook开户 | 如何检查公共主页的状态

想要了解你的Facebook公共主页的状态吗? Facebook公共主页是让广告主与粉丝互动、传播信息的绝佳平台,但是大家知道如何检查并维护自己的主页状态吗?别担心,Facebook提供了一系列简单易用的工具来帮助大家实现这一目标。 *Page Q…

RedHat9网络配置设计

目录 一、实验目的 二、实验过程 1、配置新网络接口 2、多网卡配置网络 3、网络接口的绑定,进行远程访问 4、配置网络接口的组合 一、实验目的 本次实验的目的是使用nmcli命令工具配置网络,ens160配置多个网卡,进行网络接口的绑定与组合…

一文搞懂Java8 Lambda表达式、方法引用

Lambda表达式介绍 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。通过Lambda表达式,可以替代我们以前经常写的匿名内部类来实现接口。Lambda表达式本质是一个匿名函数; 体验Lambda表达式 我们通过一个小例子来体验下L…

单元测试框架Pytest的基本操作

Pytest基本操作 1. 详解1.1 命名规则:1.2 自定义查找规则:1.3 3种运行方式1.4 执行顺序2. 断言2.1 定义2.2 断言的规则3. mark3.1 mark的作用3.2 mark的标记方式3.3 注册标签名3.4 skip跳过标记4. pytest的参数化5. pytest的夹具(fixture测试夹具)5.1. 作用5.2. 夹具应用场…

Java网络编程:UDP通信篇

目录 UDP协议 Java中的UDP通信 DatagramSocket DatagramPacket UDP客户端-服务端代码实现 UDP协议 对于UDP协议,这里简单做一下介绍: 在TCP/IP协议簇中,用户数据报协议(UDP)是传输层的一个主要协议之一&#xf…

LeetCode hot100-57-G

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。不会,放IDEA里执行了一下大概理解了流程 …

《Ai企业知识库》-rasa-初步使用

根据上面的环境准备之后: 《Ai企业知识库》-模型实践-rasa开源学习框架-搭建简易机器人-环境准备(针对windows)-02-CSDN博客 基础的使用: rasa项目初始化: rasa init 首先进入目标文件夹 在dos窗口(目标文件夹下&#xff09…

10Django项目--用户管理系统--改

对应视频链接点击直达 10Django项目--用户管理系统--改 对应视频链接点击直达改a,本质b,修改(更新) 页面相关a,index页面新增操作按钮b,修改(更新)页面c,路由和函数 OVER,不会有人不会吧不会的加Q139400651…

pdf只要其中一页 pdf只要第一页怎么办 pdf只要前几页怎么弄

在现代办公环境中,PDF文件已经成为我们日常工作中不可或缺的一部分。然而,有时我们可能只需要PDF文件中的某一页,而不是整个文件。这时,我们该如何操作才能只获取所需的那一页呢?本文将详细操作方法,帮助大…

全面盘点多模态融合算法及应用场景

关注作者,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 多…

工控一体机10.1寸显示器电容触摸屏(YA1308101JK)产品规格说明书

如果您对工控一体机有任何疑问或需求,或者对如何集成工控一体机到您的业务感兴趣,可移步控芯捷科技。 一、硬件功能介绍 YA1308101JK产品介绍: YA1308101JK搭载 Android10 主流操作系统,具有系统版本更高、占用内存更低、运行效率…

LeetCode583:两个字符串的删除操作

题目描述 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 代码 解法1 /*dp[i][j]:以i-1为结尾的wrod1中有以j-1为尾的word2的个数为了让word1和word2相同,最少操作…

什么是老板和工程师都喜欢的FMEA?——FMEA软件

免费试用FMEA软件-免费版-SunFMEA 在企业管理与工程技术领域,FMEA(潜在失效模式与效应分析)早已不仅仅是一个概念或工具,它更是一种思维方式和团队协作的精髓。那么,究竟什么才是老板和工程师都喜欢的FMEA呢&#xff…

学习笔记——动态路由协议——OSPF(OSPF网络类型2)

2、OSPF网络类型 常见链路层协议对应的默认网络类型 网络类型 描述 常见链路层协议 Hello报文间隔 报文类型 有无DR、BDR选举 P2P 点对点网络 HDLC、PPP、LAPB 10s 以组播方式发送OSPF报文 有 P2MP 点对多点网络 无 30s 以组播方式发送Hello报文,单…

YOLOv10最详细全面讲解2- 目标检测-环境搭建、训练自己的数据集

YOLOv10没想到出来的如此之快,作为一名YOLO的爱好者,以YOLOv5和YOLOv8的经验,打算出一套从数据集装备->环境配置->训练->验证->目标追踪全系列教程。请大家多多点赞和收藏!!! 系列文章&#xf…