清华大学提出3D高斯飞溅OccGaussian,可6分钟完成训练,遮挡下产生160FPS高质量人体渲染
将训练和推理速度分别提高了250倍和800倍
(映维网Nweon 2024年10月24日)从单目视频中绘制动态3D人物对于虚拟现实和数字娱乐等各种应用至关重要。大多数方法假设人们处于无遮挡的场景中,而在现实场景中,各种物体可能会导致身体部位遮挡。
以前的方法利用NeRF进行表面渲染来恢复遮挡区域,但这需要一天以上的训练时间和一定的渲染时间,无法满足实时交互应用的要求。
为了解决所述问题,清华大学的一支团队提出了基于3D高斯飞溅的OccGaussian。据介绍,它可以在6分钟内完成训练,并在遮挡输入下产生高达160 FPS的高质量人体渲染。
OccGaussian在正则空间中初始化三维高斯分布,在被遮挡区域进行遮挡特征查询,提取聚合的像素对齐特征来补偿缺失的信息。然后,利用高斯特征MLP和遮挡感知损失函数对特征进行进一步处理,以更好地感知遮挡区域。
在模拟和现实世界中进行的大量实验表明,与最先进的方法相比,团队提出的方法实现了相当甚至更好的性能。将训练和推理速度分别提高了250倍和800倍。
渲染高质量的人体对于虚拟现实和数字娱乐等行业扮演着重要的角色,其造型效果直接影响着人们的视觉体验。由于人体复杂的拓扑结构,如何在现实场景中重建真实的人体依然是一个巨大的挑战。
随着NeRF及其变体的出现,人体渲染的进展越来越快,现在许多方法都能够渲染逼真的人体。然而,所述方法使用的数据集都是在理想的实验室环境中捕获,而在现实世界的场景中,并不能保证场景在捕获过程中完全没有遮挡。
另外,实验室环境允许我们捕获密集、同步的多视图数据,但这在现实场景中很难实现,因为我们只能从单一视图捕获。
由于遮挡区域缺乏ground truth值,且仅从一个视图获取的信息有限,以往的方法无法处理遮挡数据。
为了解决上述缺点,OccNeRF作为第一个针对遮挡环境的动态人类渲染方法脱颖而出。它引入了一种基于表面的渲染策略,用采样点的子区域替换点,以在遮挡区域中实现更好的调整。
尽管OccNeRF在遮挡区域取得了不错的渲染效果,但考虑到NeRF的固有局限性,它需要在渲染过程中对每个像素进行数百次MLP的前向预测,所以OccNeRF需要至少一天的训练,对GPU内存的要求很高。
和NeRF一样,OccNeRF同时需要一个大的MLP来进行推理,导致渲染缓慢。所述缺点限制了OccNeRF在现实场景中的应用。
基于点的渲染已经成为NeRF的有效替代方案。使用最近提出的3DGS模型,训练只需要几分钟,而渲染速度比最好的NeRF方法快几十倍,并能实现静态场景的最佳渲染质量。另外,随后将3DGS应用于人类渲染的研究表明,与NeRF相比,3DGS可以以更短的训练时间更快地渲染,同时保持有竞争力的渲染性能。
为了解决OccNeRF训练和渲染缓慢的问题,清华大学团队提出了OccGaussian来渲染单眼视频中的遮挡人。利用3DGS的能力,所述方法大大减少了训练和渲染的时间,减少了内存消耗,提高了渲染质量。
研究人员提出从最近的k个可见点中聚合像素对齐特征来替代遮挡点,从而更好地利用局部信息来补偿遮挡区域中缺乏的ground truth值。同时,更新每个点的权重,使高度可见区域的特征更占优势。
最后,由于人类渲染任务中使用的传统损失在遮挡设置中无效,团队设计了遮挡损失和一致性损失,以鼓励网络不要过度去除遮挡点,从而获得更完整的渲染结果。
实验表明,在单视图遮挡的人工渲染任务中,与最先进的OccNeRF方法相比,OccGaussian可以在几分钟内训练,比OccNeRF快250倍,渲染速度提高了800倍。所述方法保持了相当的渲染质量,甚至优于OccNeRF。
相关论文:OccGaussian: 3D Gaussian Splatting for Occluded Human Rendering
总的来说,团队提出了OccGaussian。以前的方法在训练和推理方面过于耗时,无法满足实时应用的要求,而所述解决方案可以实现快速训练(6 ~ 13分钟)和实时渲染(169 FPS)。具体来说,在遮挡区域进行特征查询,并将可见k最近点的聚合像素对齐特征输入到MLP中,学习不可见点的信息。
另外,团队针对遮挡区域设计了专门的损失函数,使渲染更加完整。实验中比较了OccGaussian和SOTA方法在模拟和真实遮挡下的效果。结果表明,OccGaussian算法在保持快速训练和实时渲染的同时达到了SOTA的性能