Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

GauHuman开源:基于Gaussian Splatting,高质量3D人体快速重建和实时渲染框架

南洋理工大学 - 商汤科技联合研究中心 S-Lab 团队提出了基于 Gaussian Splatting 的高质量 3D 人体快速重建 (1~2 分钟) 和实时渲染 (高达 189 帧每秒) 框架 GauHuman。GauHuman 可以基于用户输入的一段单目人体视频,以及相应的相机和人体动作体型(SMPL)参数,快速重建该 3D 人体,并实时渲染该 3D 人体。

图片

  • 论文名称:GauHuman: Articulated Gaussian Splatting from Monocular Human Videos
  • 论文下载地址:https://arxiv.org/abs/2312.02973
  • 项目主页:https://skhu101.github.io/GauHuman
  • 代码开源:https://github.com/skhu101/GauHuman
    图1 GauHuman可以快速重建(1~2分钟)和实时渲染(高达189帧每秒) 高质量3D人体。

    背景

    3D 数字人重建对于一系列应用场景,比如虚拟现实和辅助现实,有着非常大潜在性的影响。基于人体神经辐射场,现有方法可以从 sparse-view 的视频甚至单张图片中恢复出 3D 数字人。然而这些方法往往需要昂贵的计算时间(高达 10 小时)和资源去完成训练和渲染,极大限制了他们在现实场景中的应用。为了加速建模过程,可泛化三维人体建模方法采用预训练加微调(pretrain-finetune)的范式。这类方法通常需要几个小时的预训练去获取可泛化的 3D 人体表征,再对每一个 3D 数字人额外微调一个小时完成建模。由于这类方法依赖的输入图片只能提供有限的信息,3D 人体重建的质量还有待提升。另一类研究针对人体建模引入更加高效的 3D 人体表征,比如多精度的哈希表征(multi-resolution hash encoding)或者 neural volumetric primitives。多精度的哈希表征提升了训练收敛速度,但渲染速度限制了他们的实际应用;neural volumetric primitives 提升了渲染速度,但训练速度和最终渲染质量还有提升的空间。得益于 Gaussian Splatting 在静态和动态场景中的实时渲染特性,本方法针对单目人体视频提出基于 Gaussian Splatting 的快速训练(1~2 分钟)和实时渲染(高达 189 帧每秒)的 3D 人体建模框架。

    图片

    图2 基于一段单目人体视频,GauHuman可以快速训练(1~2分钟)和实时渲染(高达189帧每秒)高质量的3D人体。

    基本原理

    利用 Gaussian Splatting 对单目人体视频中的 articulated 3D 人体进行建模,我们需要解决两个难点问题:1)如何将单目人体视频中的 articulated 3D 人体信息引入 Gaussian Splatting 的框架;2)如何实现高效优化 articulated Gaussian Splatting。针对以上的问题,一个比较容易想到的方案是利用 Gaussian Splatting 对标准空间(canonical space)下的 3D 人体进行建模,并利用线性蒙皮算法(Linear Blend Skinning, LBS)将 3D 高斯球从标准空间转换到目标空间,从而渲染得到目标空间下的图像并构建损失函数。以上方案存在的一个问题是线性蒙皮算法定义的是3D人体顶点(vertex)的旋转和偏移,如何从人体先验比如SMPL中不准确的LBS系数和姿态(pose)信息中去学习标准空间中3D高斯球的旋转和偏移仍是一个难点问题。此外,现有的 Gaussian Splatting 方法利用 Structure-from-Motion(SFM)或随机初始化产生的点云去初始化 3D 高斯球的中心坐标。这一初始化方式主要是针对静态场景设计,忽略了人体的结构信息,不适用于快速人体建模。针对建模过程中出现的 over-reconstruction 和 under-reconstruction 现象,Gaussian Splatting 论文提出分裂(split)和克隆(clone)的操作来动态控制 3D 高斯球的数目。尽管以上操作可以显著提升重建的质量,它也产生了大量数目的 3D 高斯球,限制了优化的效率并占用了大量的硬盘空间(比如对一个静态场景需要 734MB 的存储空间)。另一个值得关注的点是,现有的Gaussian Splatting框架包含了大量冗余的3D高斯球,留给了我们进一步提升优化效率的空间。

    针对以上提到的一些难点问题,我们从建模框架和快速优化算法两个方面去考虑解决。【将单目人体视频中的 articulated 3D 人体信息引入 Gaussian Splatting 的框架】受到之前人体神经辐射场(Human NeRF)的启发,我们利用 Gaussian Splatting 对标准空间(canonical space)下的 3D 人体进行建模,并将 3D 高斯球从标准空间转换到目标空间。基于高斯函数的变换性质,我们可以通过 LBS 算法将 3D 高斯球从标准空间旋转和偏移变换到目标空间。以上变换涉及到如何估 LBS 系数的问题,直接用神经网络来估计 LBS 系数往往需要很长时间的优化,最后渲染得到的效果也是差强人意。为了快速得到较为准确的 LBS 系数,我们 1)基于 SMPL 的 LBS 系数,并利用神经网络来提供一个偏置值;2)对人体的姿态(pose)信息基于训练数据进行纠正。当渲染一张 1024p 的图片时,以上建模框只需要对有限数目(比如 13k)的 3D 高斯球进行滚雪球处理,然而之前的人体神经辐射场需要对整个 3D 空间内百万级的采样点就行体渲染操作。这极大降低了在训练和渲染中的计算资源耗费。【高效优化 articulated Gaussian Splatting】1)3D 高斯球初始化。我们利用 3D 人体先验比如 SMPL 对 3D 高斯球进行初始化,极大提升了优化的效率。2)分裂/克隆/合并。通过实验分析,我们发现分裂和克隆操作忽略了将3D高丝球之间距离作为度量指标。基于以上分析,我们引入3D高丝球的Kullback-Leibler (KL)散度去约束分裂和克隆操作。对于大量冗余的3D高斯球,我们提出了一个合并操作去有效减小这部分3D高斯球。3)剪枝。考虑到 3D 人体有着特定的结构,我们将远离 3D 人体的 3D 高斯球进行剪枝操作。基于以上的快速优化算法,我们可以用大约 13k 的 3D 高斯球(大约占用 3.5MB 的硬盘空间)在一到两分钟内完成对 3D 人体的建模。

    图片

    图3 GauHuman框架原理图。GauHuman首先基于人体先验SMPL去初始化3D高斯球位置,紧接着基于LBS系数偏差和人体姿态纠正模块去学习3D高斯球从标准空间转换到目标空间的转换矩阵。在后续优化过程中,GauHuman基于tile的可微分渲染器去快速渲染图片,并利用人体先验和KL散度去约束分裂,克隆,合并和剪枝操作,以达到有效控制3D高斯球数目的目的。

    结果比较

    本文在ZJU_MoCap和MonoCap两个单目人体数据集上进行了实验。该研究对比了对比了多个先进的3D人体重建方法:NB,AN, AS, HumanNeRF, DVA, InstantNVR, InstantAvatar, PixelNeRF和NHP,并在peak signal-to-noise ratio (PSNR),structural similarity index (SSIM),以及Learned Perceptual Image Patch Similarity (LPIPS)指标上进行了比较。如下图所示,GauHuman可以快速重建(1~2分钟)和实时渲染(高达189帧每秒) 3D人体,并在性能指标上超越了之前的方案。

    图片

    3D 人体 Novel View Synthesis 结果如下图所示:图4 ZJU_MoCap上Novel View Synthesis结果比较图 
    图5 MonoCap上Novel View Synthesis结果比较图

    应用前景

    在游戏电影制作,虚拟现实增强现实或者其他需要数字人建模的场景,用户可通过输入一段单目人体视频,以及该角度下相机的参数和相应的人体动作体形参数(SMPL),就可以达到重建该 3D 数字人的目的。

    结语

    本文提出一种基于 Gaussian Splatting 的高质量 3D 人体快速重建 (1~2 分钟) 和实时渲染 (高达 189 帧每秒) 框架 GauHuman。可以承认的是,本文依然存在一定的缺陷。首先,如何从 3D 高斯中提取人体 mesh 还有待进一步研究。其次,从单目人体视频中恢复 3D 人体细节,比如说衣服皱褶,依旧是一个很难的问题。一个可行的方案是在 3D 人体重建中引入衣物物理仿真模型。最后,我们的代码已经全部开源,欢迎大家下载玩耍!
产业Gaussian SplattingGauHuman
相关数据
商汤科技机构

作为人工智能软件公司,商汤科技以“坚持原创,让AI引领人类进步”为使命,“以人工智能实现物理世界和数字世界的连接,促进社会生产力可持续发展,并为人们带来更好的虚实结合生活体验”为愿景,旨在持续引领人工智能前沿研究,持续打造更具拓展性更普惠的人工智能软件平台,推动经济、社会和人类的发展,并持续吸引及培养顶尖人才,共同塑造未来。

http://www.sensetime.com
增强现实技术

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

虚拟现实技术

虚拟现实,简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以及时、没有限制地观察三维空间内的事物。用户进行位置移动时,电脑可以立即进行复杂的运算,将精确的三维世界视频传回产生临场感。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

推荐文章
暂无评论
暂无评论~