文章目录
- Github项目地址
- Generating 3D People in Scenes without People CVPR 2020
- Abstract
- 1. Introduction
- 2. Related work
- Conclusion
-
Github项目地址
Generating 3D People in Scenes without People CVPR 2020
Abstract
我们提出一个全自动的系统(fully automatic system),采取一个三维场景,并产生合理的被自然摆在三维场景(posed naturally in that 3D scene)中的三维人体。给定一个没有人的3D场景,人类可以很容易地想象人们如何与场景和其中的对象进行交互(interact)。然而,对于计算机来说,这是一项具有挑战性的任务,因为解决它需要 (1)生成的人体在三维环境中语义上是合理的(例如,坐在沙发上或在炉子旁做饭的人),以及 (2)生成的人-场景交互在物理上是可行的,使得人体和场景不相互穿透,同时,身体-场景接触支持物理交互。为此,我们利用基于表面的三维人体模型SMPL-X,首先训练一个 条件变分自动编码器(conditional variational antoencoder) 来预测基于潜在场景表示的(conditioned on latent scene representations)语义上合理的三维人体姿态,然后利用场景约束进一步细化生成的三维体,以实现可行的物理交互。我们的研究表明,我们的方法能够合成真实感和表现力的三维人体,这些人体与三维环境自然交互。我们进行了大量的实验,证明我们的生成框架在定性和定量上都优于现有的方法。我们相信,我们的场景条件三维人体生成pipeline将用于多种应用,例如生成用于人体姿势估计的训练数据、视频游戏和VR/AR。我们的数据和代码项目页面可在以下位置查看:https://vlg.inf.ethz.ch/projects/PSI/ 。
1. Introduction
近年来,出现了许多高质量的三维室内场景数据集,如Matterport3D[3]、Replica[42]和Gibson[47],它们利用三维扫描和重建技术(3D scanning and reconstruction technologies)来创建数字三维环境。此外,虚拟机器人代理(virtual robotic agents )存在于3D环境中,如Gibson[47]和Habitat simulator[32]。这些技术被用来开发基于具体视图(embodied views)的场景理解方法,从而为室内机器人导航、AR/VR、计算机游戏等许多应用提供平台。尽管取得了这些进展,但这些环境的一个重要限制是它们不包含人。这样的世界不包含人的原因是没有自动工具来生成真实的人与三维场景进行真实的交互,而手动完成这项工作需要大量的努力(significant artist effort)。因此,我们的目标是在场景中自动生成自然逼真的三维人体。 生成的人体被期望在物理上是可信的(例如,既不是漂浮(floating)的也不是相互穿透(interpenetrate)的)、多样的,并且在场景中自然地摆出姿势。这是为高质量的3D场景和模拟器(例如Matterport3D[3]和Habitat[32])配备语义和物理上合理的3D人类(semantically and physically plausible 3D humans)的一步,对于许多应用程序(如创建合成数据集、VR/AR、计算机游戏等)是必不可少的。
我们的解决方案的灵感来自于人类如何推断与环境之间可能存在的相互作用。 根据[49]的研究,人类倾向于根据对象的结构和语义提出交互计划(interaction plans)。然后,为了实现交互方案,在保证人体既不会漂浮在空中,也不会碰撞到物体的前提下,应用物理规则来确定具体的人-物配置。因此,我们的方法有两个步骤:(1)利用条件变分自动编码器(CVAE)[39]框架提出了一个人机交互的生成模型。在给定场景深度和语义的前提下,我们可以从CVAE中提取不同的人体样本(huamn bodies)。(2) 接下来,我们将生成的三维人体转化为世界坐标系,并进行场景几何感知拟合(scene geometry-aware fitting),以细化(refine)人-场景交互,消除物理上不合理的配置(如漂浮和碰撞)。
我们认为,真实地模拟人-场景交互需要身体的真实模型。以往文献中关于场景启示推理(scene affordance inference)和人体合成(human body sunthesis)的研究,如[28,46,57],将人体描述为一个三维的棒状或粗体(3D stick figure or coarse volume)。这阻止了详细的推理接触(detailed resoning about contact ),如胳膊的表面是如何与沙发表面接触的。如果没有人体形状的模型,估计的人体姿势是否与合理的人体姿势相对应尚不清楚。为了克服这些问题,我们使用了SMPL-X模型[36],它采用了一组低维的身体姿势和形状参数,并输出了一个具有重要细节(如手指)的3D身体网格(3D body mesh)。由于SMPLX是可微的,它可以直接优化人与场景接触和碰撞预防[18]。此外,我们在方法中加入了身体形状的变化,因此我们生成的人体具有各种姿势和形状。
为了训练我们的方法,我们利用了PROX定性数据集[18],其中包括在3D场景中捕捉到的3D人物。我们通过渲染图像、场景深度和来自许多虚拟摄像机的场景语义分割来扩展这一点。我们进行了大量的实验来评估不同模型在场景感知(scene-aware)生成三维人体网格中的性能(evaluate the performance of different models for scene-aware 3D body mesh generation)。为了进行测试,我们从Matterport3D[3]数据集中提取了7个不同的房间,并在Habitat Simulator [32]中使用虚拟代理(virtual agent)从不同的视图捕捉场景深度和语义。在前人工作的基础上,如[28,46],我们提出了三个指标(metrics)来评估结果的多样性、物理合理性和语义合理性(diversity, the physical plausibility, and the semantic plausibility of our result)。实验结果表明,我们的解决方案能够有效地在场景中生成三维人体网格(3D body mesh),并优于最新的body generation method的改进版本[28]。我们将提供我们的数据集和评估指标,以建立基准(benchmark)。
我们训练有素的模型学习3D人与3D场景互动的方式。我们展示了如何以场景相关的身体姿势先验的形式利用这一点,并展示了如何使用它来改进从RGB图像的3D身体姿势估计。综上所述,我们的贡献如下:
- 提出了一种在场景中生成三维人体的解决方案,利用CVAE生成具有语义上合理姿态的人体网格。我们遵循这一点,场景几何感知拟合,以细化人类场景交互(We follow this with scene-geometry-aware fitting to refine the human-scene interaction. )。
- 我们扩展和修改了两个数据集,并提出了三个场景感知人体生成的评价指标。我们还修改了[28]的方法,以生成身体网格(generate body meshes)作为基线(baseline)(见第。4.1.2段)。实验结果表明,该方法的性能优于基线。
- 我们证明,我们的**人机交互先验(human-scene interaction prior)**可以改善从RGB图像的三维姿态估计。
2. Related work
多个研究侧重于将物体放在图像中,使它们看起来自然[11,27,29,34]。例如,[11,43,45]使用上下文信息(contextual information)来预测哪些对象可能出现在图像中的给定位置。Lin等人[29]将单应变换( homography transformations)应用于二维对象,以近似对象和背景的透视图(perspectives)。Tan等人[44]预测输入图像中人物的可能位置,并从数据库(database)中检索语义上符合场景的人。Ouyang等[34]使用GAN框架合成城市场景中的行人。Lee等人[27]学习如何在语义地图(semantic map)中放置对象或人物,然后确定相应对象的姿势和形状(pose and shape)。**然而,这些方法都局限于二维图像的合成或修复(2D image compositing or inpainting)。**此外,添加合成人(synthetic humans)的方法没有考虑到人类与世界之间的相互作用。
*要对人类对象或人类场景交互进行建模,了解与给定对象的哪些交互是可能的是有好处的。*这种互动的机会(opportunities for interactions)被称为启示(affordances)[14],计算机视觉领域的许多著作都利用了这一概念[7,8,15,17,21,25,24,28,38,46,56,57]。例如,[15,17,57]搜索三维场景中人体姿势的有效位置(valid positions)。Delataire等人[8] 学习物体和人体姿势之间的联系(associations),以提高物体识别能力。给出一个物体的三维模型,[21]预测与给定对象交互的人类姿势。给出一个物体的图像[56]学习一个知识库(knowleage base)来预测可能的人类姿势以及物体相对于姿势的大致相对位置。Savva等人[38]学习一个将人的姿势和物体在三维场景中的排列联系起来的模型,该模型可以生成物体交互的快照(snapshots),给定一组3D objects和 verb-noun pair。Monszpart等人[33]使用捕捉到的人体运动来推断场景中的对象及其排列(arrangement)。Sava等人[37]预测动作热图,突出场景中某个动作的可能性。最近,Chen等提出将场景解析(scene parsing)和三维姿态估计(3D pose estimation)结合起来,利用二者的耦合特性(coupled nature)来提高场景理解能力。Chao等[4] 提出训练多个控制器(controllers)模拟mocap中的简单运动,然后利用层次强化学习(hierarchical reinforcement learning)(RL)来实现更高层次的交互任务(higher-level interactive tasks)。Zanfir 等人的工作[50]首先估计图像中的地平面(ground plane),并需要前景人物图像(fore-ground person image)作为输入。上述方法没有使用真实的身体模型(realistic body model)来表示自然和详细的人与环境的相互作用(interactions)。
最近,Wang等人[46]发布了一个足够大的可供性数据集(affordance dataset),该数据集足以获得姿势概率的可靠估计,并训练神经网络进行可承受性预测(affordance prediction)。这些数据是从多部情景喜剧(sitcoms)中收集的,包含有人和没有人的场景图像。包含人类的图像包含了人类与各种物体相互作用的丰富行为。给定一个图像和一个位置作为输入,Wang等人首先从30个姿势中预测最有可能的姿势。此姿势将通过第二个网络进行变形和缩放,以使其适合场景。Li等人[28]将这项工作扩展到自动估计放置人的位置和预测三维姿势。为了获取3D训练数据,他们将2D姿势映射到3D姿势,并将其放置在SUNCG数据集的3D场景中[40,51]。这个合成的数据集是cleaned,因为其通过删除与三维场景相交所有预测或没有足够的支持身体(This synthesized dataset is cleaned by removal of all predictions intersecting with the 3D scene or without sufficient support for the body )。文献[28,46]中的方法由于需要大量的成对数据和手动清理位姿检测,因此其泛化能力有限。对于情景喜剧较少涉及的场景,或者3D场景数据集中[28]的场景,可能很难获取如此大量的数据。此外,这两种方法都只预测以棒状图形(stick figures)表示的姿势。这种表示很难从视觉上验证,缺乏细节,也不能直接用于生成人类与环境交互的真实合成数据。
Conclusion
在这项工作中,我们介绍了一个生成框架(generative framework)来产生在三维环境中自然放置的三维人体。我们的方法包括两个步骤:
- 提出一个场景上下文感知(scene context-aware)的人体生成器( human body generator),用于学习场景深度和语义条件下的三维人体姿势和形状分布(distribution);
- 使用几何感知(geometry-aware)拟合来增强人-场景交互的物理合理性。实验结果表明,自动合成的三维人体具有真实感和表现力,能够以语义和物理的方式与三维环境进行交互。