0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

3D人体生成模型HumanGaussian实现原理

OpenCV学堂 来源:机器之心 2023-12-20 16:37 次阅读

来源:公众号 机器之心 授权

在 3D 生成领域,根据文本提示创建高质量的 3D 人体外观和几何形状对虚拟试穿、沉浸式远程呈现等应用有深远的意义。传统方法需要经历一系列人工制作的过程,如 3D 人体模型回归、绑定、蒙皮、纹理贴图和驱动等。为了自动化 3D 内容生成,此前的一些典型工作(比如 DreamFusion [1] )提出了分数蒸馏采样 (Score Distillation Sampling),通过优化 3D 场景的神经表达参数,使其在各个视角下渲染的 2D 图片符合大规模预训练的文生图模型分布。然而,尽管这一类方法在单个物体上取得了不错的效果,我们还是很难对具有复杂关节的细粒度人体进行精确建模。

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

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

在最近的一项工作中,香港中文大学、腾讯 AI Lab、北京大学、香港大学、南洋理工大学团队推出最新有效且快速的 3D 人体生成模型 HumanGaussian,通过引入显式的人体结构引导与梯度规范化来辅助 3D 高斯的优化过程,能够生成多样且逼真的高质量 3D 人体模型。目前,代码与模型均已开源。

wKgaomWCqS-AdUR6AAMVxAky4pg142.png

核心方法

(1)Structure-Aware SDS

研究者基于 SMPL-X 网格形状初始化 3D 高斯中心位置:

1)以前的研究使用运动结构点(Structure-from-Motion)或 Shap-E [3] 和 Point-E [4] 等通用文本到点云先验。然而,此类方法通常在人体类别中存在点过于稀疏或身体结构不连贯等问题。

2)作为 SMPL 的扩展,SMPL-X 补充了人脸和手部的形状拓扑,有利于进行具有细粒度细节的复杂人体建模。基于这些观察,研究者提出了在 SMPL-X 网格表面均匀采样点作为 3DGS 初始化。他们对 3DGS 进行缩放和变换,使其达到合理的人体尺寸并位于 3D 空间的中心。

由于 SMPL-X 先验仅用作初始化,因此需要更全面的指导来促进 3DGS 训练。研究者提出使用一个同时捕获纹理和结构联合分布的 SDS 源模型,而不是从仅学习外观或几何形状的单一模态扩散模型中学习 3D 场景。他们使用结构专家分支扩展预训练的 Stable Diffusion 模型,以同时对图像 RGB 和深度图进行去噪:

wKgaomWCqS-AWH-yAAA3UFj8658631.png

借助这种方式,研究者获得了一个统一的模型,可以捕获外观的图像纹理和前景 / 背景关系的结构,该模型可以在 SDS 中用于促进 3DGS 学习。

通过生成空间对齐图像 RGB 和深度的扩展扩散模型,可以从结构和纹理方面同时指导 3DGS 优化过程:

wKgZomWCqS-AIbgBAABvYFoon-g455.png

这种结构正则化有助于减少几何失真,从而有利于具有稀疏梯度信息的 3DGS 优化。

(2)Annealed Negative Prompt Guidance

为了促进文本与 3D 生成内容之间的对齐,DreamFusion [1] 使用较大的无分类器引导尺度来更新 3D 场景优化的分数匹配差异项:

wKgaomWCqS-AOmLFAABbvHPwKtk199.png

在这个公式中,可以自然地将分数匹配差异分解为两部分,其中前一项是将图像推向更真实的流形的生成分数;后一项是将样本与隐式分类器对齐的分类器分数。然而,由于生成分数包含高方差的高斯噪声,它提供了损害训练稳定性的随机梯度信息。为了解决这个问题,DreamFusion 特地使用较大的无分类器引导尺度,使分类器分数主导优化,导致模式过度饱和。相反,研究者仅利用更清晰的分类器分数作为 SDS 损失。

在文生图和文生 3D 领域中,负文本被广泛用于避免生成不需要的属性。基于此,研究者提出增加负文本分类器分数以实现更好的 3DGS 学习。

根据经验,研究者发现负文本分类器分数会在小时间步长内损害质量,因此使用退火的负文本引导来结合两个分数进行监督:

wKgZomWCqS-AAVr4AAA7faGNukY739.png

实验结果

研究者与通用的文生 3D 和 3D 人体生成领域的模型进行对比。可以看到,HumanGaussian 取得了优越的性能,渲染出更真实的人体外观、更连贯的身体结构、更好的视图一致性、更细粒度的细节捕捉:

此外,研究者还通过消融实验验证了各个模块的有效性。可以看出,SMPL-X 提供的人体结构先验可以给 3DGS 优化提供初始化信息;负文本引导可以确保逼真的人体纹理外观;图像 RGB 与深度图双分支的 SDS 监督约束可以同时对人体的几何和纹理进行优化;最后根据高斯大小进行剪枝可以去除雾状的伪影:

更多样本请参考文章的项目主页以及 demo 视频

总结与未来工作

本文提出 HumanGaussian,一种有效且快速的框架用于生成具有细粒度几何形状和逼真外观的高质量 3D 人体。HumanGaussian 提出两点核心贡献:

(1)设计了结构感知的 SDS,可以显式地引入人体结构先验,并同时优化人体外观和几何形状;

(2)设计了退火的负文本引导,保证真实的结果而不会过度饱和并消除浮动伪影。总体来说,HumanGaussian 能够生成多样且逼真的高质量 3D 人体模型,渲染出更真实的人体外观、更连贯的身体结构、更好的视图一致性、更细粒度的细节捕捉。

未来工作:

由于现有的文生图模型对于手部和脚部生成的性能有限,研究者发现它有时无法高质量地渲染这些部分;

后背视图的渲染纹理可能看起来模糊,这是因为 2D 姿势条件模型大多是在人类正面视图上训练的,而人类后视图的先验知识很少。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2756

    浏览量

    106455
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41718
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47687

原文标题:HumanGaussian开源:基于Gaussian Splatting,高质量 3D 人体生成新框架

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ad19中3d模型不显示?

    封装库导入3d模型不显示,但导入3d模型后的封装库生成pcb文件时显示3d
    发表于 04-24 13:41

    LABVIEW如何驱动3D模型

    基于soildwork绘制的3D机器人模型,要求实际的机器人在运动时,将3D模型加载在LABVIEW中,与实际机器人同步动作,做运动演示。
    发表于 02-28 16:51

    Labview 3D模型

    新手求助……有没有哪位大神会利用labview显示3D模型(含装配体,需要转动不同的部位)吗?是用3D传感器映射啊?
    发表于 08-26 01:20

    3D 模型封装

    求PLCC封装3D模型,最好是完整的
    发表于 12-27 16:53

    Labview中如何导入3D模型

    Labview中如何导入3D模型,例如3Dmax生成模型。尝试过用.STL格式导入Labview。但是
    发表于 01-26 13:13

    3d模型问题

    最近在学3d模型,遇到些问题,请教大家。1.3D模型的格式。模型是用3dmax做的,为
    发表于 11-12 17:14

    如何创建3D模型

    怎么创建3D模型
    发表于 09-17 05:35

    分享贴片3D模型

    分享贴片3D模型
    发表于 12-18 21:08

    你没看错,浩辰3D软件中CAD图纸与3D模型高效转化这么好用!

    、角度、受力等等实现精准参数化管理。 (精准参数化管理)3、一键生成各类2D工程图浩辰3D为用户提供了多种工程图创建方式,可以通过新建直接选
    发表于 05-13 14:33

    如何制作逼真的3D PCB模型和进行3D设计检查

    Step Package Mapping的窗口中,对选择的封装和显示3D STEP模型效果的器件进行匹配。需要对各个参数进行设置调整,根据模型显示对比效果找到最佳的匹配效果。通过在View中可以变换
    发表于 07-06 16:26

    浩辰3D软件入门教程:如何比较3D模型

    :比较结果针对不同的应用需求,浩辰3D软件提供了多样化方式来查看比较结果,如在线查看、生成分析报告等。在线查看的方式,更适合个人用户进行快速查看。在右侧的预览窗口,通过「几何体比较」(如模型实体的区别
    发表于 12-15 13:45

    AD的3D模型绘制功能介绍

    `  首先,在封装库的编辑界面下,我们点击菜单栏目的Place-》3D Body,见图(1)。    图(1)3D模型打开步骤  打开后就会出现信息编辑界面,见图(2)。我们可以看到AD的3D
    发表于 01-14 16:48

    3D模型的基础介绍

    3D模型基础
    发表于 01-28 07:50

    AD软件3D模型

    本帖最后由 qing810124 于 2021-12-3 11:56 编辑 本人在工作当中积累的 AD软件 的3D模型,供大家参考
    发表于 12-03 11:55

    MCAD生成PCB 3D模型报错

    在AD 21.9.2里面通过MCAD插件将PCB发送到solidworks 2019 SP3.0。solidworks里面的MCAD插件不开启编译过孔就可以生成3D模型,开启编译过孔就报下图的错误,请问如何解决。
    发表于 07-08 11:07