《HumanGaussian: Text-Driven 3D Human Generation with Gaussian Splatting》

news2024/12/28 2:05:44

文章目录

    • 前置知识:
      • 一、正文:
      • 二、方法

前置知识:

\quad 1)SMPL(Skinned Multi-Person Linear)模型

\quad SMPL(Skinned Multi-Person Linear)模型是一种用于表示人体形状和姿势的三维模型。

\quad a. Skinned表示这个模型不仅仅是骨架点,其实有蒙皮的,其蒙皮通过3D mesh表示。3D mesh如下所示,指的是在立体空间里面用三个点表示一个面,可以视为是对真实几何的采样,其中采样的点越多,3D mesh就越密,建模的精确度就越高。
在这里插入图片描述

\quad b. Multi-person表示的是这个模型是可以表示不同的人的,是通用的。
\quad c. Linear表示人体的不同姿态或者不同身高,胖瘦(我们都称之为形状shape)是一个线性的过程,是可以控制和解释的。

\quad 在SMPL模型中,我们的目标是对于人体的形状(胖瘦高矮),和人体的动作姿态进行定义。

\quad 为了描述人体的动作,SMPL模型中定义了一个维度是 24 x 3 的姿态参数θ,去描述某个时刻人体的动作姿态。24指的是24个关节点,但是3并不是(x, y, z),而是该节点针对于其父节点的旋转角度的轴角式表达。

\quad 为了描述人体的形状,SMPL模型中定义了一个维度是 10 的形状参数β,每一个维度的值都可以解释为人体形状的某个指标,比如高矮,胖瘦等。

\quad 2)线性混合蒙皮(Linear Blend Skinning)

\quad 线性混合蒙皮(Linear Blend Skinning),也称为蒙皮权重插值,用于模拟三维模型的形变(skinning)和骨骼动画。蒙皮是指如何将模型的表面与其骨骼结构关联起来,以便在动画中实现形变。

\quad SMPL模型使用线性混合蒙皮作为其形变模型的基础。SMPL使用线性混合蒙皮来模拟人体的肌肉和骨骼的运动。

一、正文:

\quad 为了引入人体结构先验,最近的文本驱动 3D 人体生成研究将 SDS 与 SMPL 等模型结合起来。具体来说,一个常见的做法是将人体先验集成到网格(mesh)和神经辐射场(NeRF)等表示中,或者通过将身体形状作为网格 / 神经辐射场密度初始化,或者通过学习基于线性混合蒙皮(Linear Blend Skinning)的形变场。然而,它们大多在效率和质量之间进行权衡:基于 mesh 的方法很难对配饰和褶皱等精细拓扑进行建模;而基于 NeRF 的方法渲染高分辨率结果对时间和显存的开销非常大。如何高效地实现细粒度生成仍然是一个未解决的问题。

\quad 最近,3D Gaussian Splatting(3DGS)的显式神经表达为实时场景重建提供了新的视角。它支持多粒度、多尺度建模,对 3D 人体生成任务非常适用。然而,想要使用这种高效的表达仍有两个挑战:
\quad 1)3DGS 通过在每个视锥体中排序和 alpha - 混合各向异性的高斯来表征基于图块的光栅化,这仅会反向传播很少一部分的高置信度高斯。然而,正如 3D 表面 / 体积渲染的研究所证实的那样,稀疏的梯度可能会阻碍几何和外观的网络优化。因此,3DGS 需要结构引导,特别是对于需要层次化建模和可控生成的人体领域。
\quad 2)朴素的 SDS 需要一个large scale的无分类器指导(Classifier-Free Guidance)来进行图像文本对齐,例如,在 DreamFusion 中使用的 100。但它会因过度饱和而牺牲视觉质量,使真实的人类生成变得困难。此外,由于 SDS 损失的随机性,3DGS 中原始的gradient-based density control 会变得不稳定,导致模糊的结果和floating artifacts。

\quad 因此,我们提出了有效且快速的 3D 人体生成模型 HumanGaussian,通过引入显式的人体结构引导与梯度规范化来辅助 3D 高斯的优化过程,能够生成多样且逼真的高质量 3D 人体模型。我们的直觉在于,3DGS是一种具有周期性高斯收缩或增长的有效渲染器,这种自适应密度控制可以自然地由内在的人体结构引导。本文的关键在于,结合显式的结构指导和梯度正则化,以促进高斯优化。

\quad 具体地,我们首先提出了一个 Structure-Aware SDS 联合学习人体外观和几何。不想先前的工作《Text-to-3d using gaussian splatting》、《3d gaussian splatting for real-time radiance field rendering》、《Gaussian dreamer: Fast generation from text to 3d gaussian splatting with point cloud priors》那样利用一般的先验,比如SfM和Point-E模型,我们将高斯初始化在SMPL-X mesh上。这样,后续的densification和pruning过程就会关注人体表面周围的区域,可以有效地捕捉几何变换,比如accessories和wrinkles。
此外,我们扩展了SD,使同时降噪RGB和Depth。这种双分支设计提取了两个空间对齐目标(即RGB和深度)的联合分布,在结构引导和纹理真实性下提高了高斯收敛性。

\quad 为了进一步改善自然外观的渲染,我们还设计了一个Annealed Negative Prompt Guidance。特别地,我们将SDS解耦为a noisier generative score和a cleaner classifier score,后者配备了一个decreasing negative prompt guidance来促进在正常CFG尺度(7.5)时的真是生成,这一点已经在当前的 text-to-3d 研究中被证实《Noise-free score distillation》《Text-to-3d with classifier score distillation》。通过这种方式,我们设法避免过饱和模式通过使用适当的CFG尺度,从而很好地平衡样本质量和多样性。此外,由于SDS损失的高方差,直接依靠梯度信息来控制密度,会导致模糊的几何。相反,我们建议在 prune-only 阶段消除基于高斯大小的浮动伪影。

二、方法

2.1. Preliminaries
\quad SMPL-X模型:是一个三维参数的人体模型,定义了身体,手,和脸的形状拓扑。它包含10475个顶点,和54个关键点。它可以被如下公式定义:
在这里插入图片描述
\quad T ˉ \bar{T} Tˉ是平均模板形状。Bs, Bp, Be分别是shape,pose,expression的blend shape functions。T(β,θ,φ)表示来自 T ˉ \bar{T} Tˉ的非刚性变形。LBS(·)是linear blend skinning函数,将T(β,θ,φ)转换为目标姿态θ,骨骼关节点 J(β),以及在每个顶点上定义的混合权值W。

\quad 方法的总览如下图所示。比较直观地看出来,先用SMPL-L网格初始化3DG,然后用dual-branch SDS对其进行优化,最后进行Prunning。
在这里插入图片描述
2.2 Structure-Aware SDS
\quad 这一部分的优化目标如下所示:
在这里插入图片描述
在这里插入图片描述

2.3. Annealed Negative Prompt Guidance
\quad 首先将SDS解耦为两项,前一项是将图像推向更真实的流形的生成分数,后一项是将样本与隐式分类器对齐的分类器分数。
在这里插入图片描述
\quad 在文生图和文生 3D 领域中,负文本被广泛用于避免生成不需要的属性。根据经验,研究者发现负文本分类器分数会在小时间步长内损害质量,因此使用退火的负文本引导来结合两个分数进行监督:
在这里插入图片描述

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

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

相关文章

TikTok与虚拟现实的完美交融:全新娱乐时代的开启

TikTok,这个风靡全球的短视频平台,与虚拟现实(VR)技术的深度结合,为用户呈现了一场全新的娱乐盛宴。虚拟现实技术为TikTok带来了更丰富、更沉浸的用户体验,标志着全新娱乐时代的开启。本文将深入探讨TikTok…

matlab信号分选系统算法-完整算法结构

matlab信号分选系统算法 针对得到的脉冲流PDW进行信号分选,包括重频恒定、重频抖动、重频参差和重频滑变四种脉间调制类型。   这里我们先进行数据的仿真,后续边仿真边分享思路:首先根据信号类型,分别产生重频恒定、重频抖动、重…

陪玩系统最新上线!APP小程序H5三端源码交付,支持二开!开发者必看!

首先,陪玩系统需要提供实时匹配功能。用户输入自己的游戏信息和陪玩需求后,系统需要根据这些信息实时匹配合适的陪玩者。匹配算法应该考虑到游戏类型、玩家水平、价格等因素,以确保匹配结果符合用户期望。 其次,陪玩系统需要提供…

常见的计算机图片格式

左rgb (光源色彩) 右cmyk (印刷色彩) 缺点,不能保存,储存空间太大

专为中小培训机构精心打造的教务管理系统

随着互联网的普及和线上教育的兴起,教育机构纷纷开发出自己的小程序管理系统,以满足广大学生和家长的需求。本文将详细介绍如何使用乔拓云平台,一键开发出自己的教育机构小程序管理系统。 一、进入乔拓云后台 在浏览器搜索乔拓云&#xff0c…

【数组Array】力扣-283 移动零

目录 题目描述 解题过程 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,…

Shell函数数组练习

1、编写函数,实现打印绿色OK和红色FAILED 判断是否有参数,存在为Ok,不存在为FAILED 2、编写函数,实现判断是否无位置参数,如无参数,提示错误 3、编写函数实现两个数字做为参数,返回最大值 4、…

GB28181学习(十八)——图像抓拍

前言 本文主要介绍图像抓拍功能,通过自研的sip库(mysipsdk.dll)对接真实设备,使用http方式实现图像数据传输,最终达到图像抓拍与保存的目的。 基本要求 图像格式宜使用JPEG;图像分辨率宜采用与主码流相同…

BSN实名DID服务发布会在北京召开

12月12日,由国家信息中心、公安部第一研究所联合主办,中国移动通信集团有限公司、区块链服务网络(BSN)发展联盟、中关村安信网络身份认证产业联盟(OIDAA)承办的“BSN实名DID服务发布会”在北京召开&#xf…

服务器被DDOS攻击如何用高防ip去防护?

什么是 DDoS 攻击?分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机…

CB400X即将停产?NX400上线,本田最新的外观设计直接就国产了?

NX500 之前米兰车展的时候给大家分享过本田对于500系列的升级,并且宣布NX500代替CB500X,采用了全新的外观设计,没有看过的小伙伴可以查阅下之前的文章内容,不过最新的工信部的信息,可以看到NX500的外观设计应用到了CB…

VPN 在网络安全中的应用

虚拟专用网络(Virtual Private Network,VPN)是指利用不安全的公共网络如 Internet 等作为传输媒介,通过一系列的安全技术处理,实现类似专用网络的安全性能,保证重要信息的安全传输的一种网络技术。 1&#…

sylar高性能服务器-配置(P12-p14)内容记录

文章目录 p12:复杂类型解析一、方法函数二、结果展示 p13:复杂类型解析完善一、方法函数二、结果展示 p14:自定义类型解析一、方法函数二、小结 p12:复杂类型解析 ​ 本节内容主要针对完了配置类中对于复杂类型的转换。之前只实现…

【UE 材质】角色触碰空气墙效果

效果 步骤 1. 新建一个工程,创建一个Basic关卡,添加一个第三人称游戏资源到内容浏览器 2. 新建一个材质参数集,这里命名为“MPC_Vector” 打开“MPC_Vector”,添加一个向量参数 3. 新建一个材质,这里命名为“M_Wall”…

【开源软件】最好的开源软件-2023-第23名 Apache Druid

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

LeetCode-旋转链表问题

1.旋转链表 题目描述: 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 思路: 这里向右移动k个位置,相当于从链表的倒数第k个节点处断开,之后再将断开的两个子链表按照相反顺序…

Java基础语法之继承

为什么要继承 会发现,狗和猫只有叫声不同,因为它们都是动物,会有相同的属性和行为,所以它们可以继承animla类 如何继承 用到extends关键字 这样就会简化好多 注意 1.Animal称为父类/超类/基类;dog,cat称…

多项目同时进行如何做好进度管理?

许多企业都面临着同时进行多个项目的情况,因此项目经理经常需要管理多个项目。多项目管理的难点不仅在于项目数量增加,还在于资源分配不均、难以监控多个项目进度以及复杂的沟通协作。 一、从项目经理的角度分析 首先,要把握高效项目管理的几…

Jmeter接口自动化测试 —— Jmeter变量的使用

​在使用jmeter进行接口测试时,我们难免会遇到需要从上下文中获取测试数据的情况,这个时候就需要引入变量了。 定义变量 添加->配置元件->用户自定义的变量 添加->配置元件->CSV 数据文件设置 变量的调用方式:${变量名} 变量的…

融了超24亿一分钱不花,放银行吃利息,这家存储创企厉害了

​引言:AI与大模型风起云涌,催生了这匹存储“黑马” 【全球存储观察 | 科技热点关注】 这家总部设在美国的存储初创公司,真的赶上AI与大模型时代的风口了。Vast Data公司最新再次获得E轮融资1.18亿美元,但是这个存储…