[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

定量与定性分析

消融实验

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

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

相关文章

秘钥托管技术简介

目录 前言 一、秘钥托管是什么? 二、秘钥托管技术简介 1. Skipjack算法 2. LEAF产生过程示意图 3. 对加密通信的法律实施存取过程 总结 前言 1993年4月,美国政府为了满足其电信安全、公众安全和国家安全,提出了托管加密标准EES (escro…

Aria2下载安装使用

目录 下载Aria2 配置创建 aria2.conf 文件创建 aria2.session 文件 Aria2的使用基础使用多源下载多线程下载后台下载配置文件启动 AriaNg下载安装AriaNg配置AriaNg使用 Tracker 列表 aria2 是一款免费开源跨平台且不限速的多线程下载软件,其优点是速度快、体积小、资…

慧尔智联携纷享销客启动CRM项目 推进客户经营升级与内外高效协作

智慧农业领军企业慧尔智联携手纷享销客,启动CRM客户经营管理系统项目。双方将深入合作,全面落实慧尔智联发展策略,持续提升数字化经营管理水平,实现内部团队信息化高效协作,以快速响应市场需求,提升客户满意…

开源集运wms系统

集运WMS系统是一种专为集运业务设计的仓库管理系统,它能够高效地处理来自多个来源的货物,优化存储和发货流程。 经过长时间的开发和测试,推出了我的集运WMS系统。它不仅具备传统WMS系统的所有功能,还针对集运业务的特点进行了特别…

HNU-计算机体系结构-小班讨论-GoogleTPU的发展历程与思考

因为对GPU比较感兴趣,故选择这个作为汇报课题。

JEPaaS 低代码平台 accessToTeanantInfo SQL注入漏洞复现

0x01 产品简介 JEPaaS低代码开发平台开源版 旨在帮助企业快速实现信息化和数字化转型。该平台基于可视化开发环境,让软件开发人员和业务用户通过直观的可视化界面来构建应用程序 ,而不是传统的编写代码方式。 用户可以在开发平台灵活各个图形化控件,以构建业务流程、逻辑和…

智能合约革命:Web3引领智能化商业的未来

随着区块链技术的日益成熟和普及,智能合约作为其重要应用之一,正在逐渐改变着商业世界的面貌。Web3作为下一代互联网的代表,以其去中心化、加密安全的特性,为智能合约的发展提供了无限可能,将智能合约应用于商业领域的…

对简单工厂模式、工厂方法模式、抽象工厂模式的简单理解

简单工厂模式 三部分组成 抽象类一些抽象类的具体实现类工厂类 把创建对象的任务交给一个工厂类来实现,对业务进行封装。 优点:实现了任务分离,客户端不用关心业务的具体实现,交由工厂来“生产”。 缺点:违背开闭原…

使用控制台方式部署sentinel

1.下载控制台jar包 2.运行jar包 java -jar sentinel-dashboard-1.8.0.jar 也可以通过编写批处理文件指定端口、用户名、密码: 客户端添加依赖(后续整合springcloudalibaba时不需要此依赖) 如修改了sentinel端口,需要添加客户端运…

Springboot项目搭建 jdk1.8

1.idea创建项目 2.项目配置 maven 编辑项目编码 删除无用文件 修改配置文件后缀,设置数据库 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/honey2024?useSSLfalse&useUnicodetrue&characterEncodingUT…

力扣每日一题 5/29

2981.找出出现至少三次的最长特殊子字符串I 题目: 给你一个仅由小写英文字母组成的字符串 s 。 如果一个字符串仅由单一字符组成,那么它被称为 特殊 字符串。例如,字符串 "abc" 不是特殊字符串,而字符串 "ddd&q…

Android9禁止某个app启动

禁止某个app通过开机广播自启动,覆盖住Launcher 代码位置 : frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java具体修改如下 public final int startActivityAsUser(IApplicationThread caller, String callingPackage,Inte…

详解 Scala 的运算符

一、Scala运算符的本质 Scala 运算符的本质是对象的方法 object TestOperator {def main(args: Array[String]): Unit {val n1: Int 10val n2: Int 20// 当调用对象的方法时,点. 可以省略val result1: Int n1.(n2)val result2: Int n1 (n2)println(result1)pr…

[Git] 如何在fork仓 从 主仓 更新代码

直接上干货 Step 1 添加主仓库为新的远程仓库:在终端或命令提示符中切换到你的本地仓库目录,然后运行以下命令以添加主仓库作为一个新的远程地址(通常命名为upstream): git remote add upstream (主仓库的URL)Step 2 …

ABAP AS文件目录动态创建

项目上需要将附件上传得到ABAP AS的文件系统上,文件需要按照上传日期存放在 YYYY\MM对应的目录下,所以我们需要动态的创建文件夹,以应对不同月份的所需的新文件夹。以下便是使用ABAP在 AS上创建文件夹的code: class ZCL_FILE_SYSTEM_UTIL de…

spring aop 内部引用失效分析

背景 用了spring retry 发现在有些场景下失效,也让我想起了之前看spring 事务时会有一些场景下失效的这个问题 代码 接口public interface UserService {public void start() ;public void stop(); }实现类 Service public class UserServiceImpl implements User…

AI绘画Stable Diffusion XL 可商用模型!写实艺术时尚摄影级真实感大模型推荐(附模型下载)

大家好,我是设计师阿威 大家在使用AI绘画的时候,是不是遇到这种问题:收藏的模型确实很多,可商用的没几个,而今天阿威将给大家带来的这款写实艺术时尚摄影级真实感大模型-墨幽人造人XL, 对于个人来讲完全是…

Springboot事务控制中A方法调用B方法@Transactional生效与不生效情况实战总结

介绍 本篇对Springboot事务控制中A方法调用B方法Transactional生效与不生效情况进行实战总结,让容易忘记或者困扰初学者甚至老鸟的开发者,只需要看这一篇文章即可立马找到解决方案,这就是干货的价值。喜欢的朋友别忘记来个一键三连哈&#x…

【wiki知识库】03.前后端的初步交互(展现所有的电子书)

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、📂前端配置文件补充 三、🌏前端Vue的改造 四、💡总结 一、🔥今日目标 在上一篇文章当中,我已带大家把后端的一些基本工…

【算法】重建二叉树并进行后序遍历的Java实现

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…