论文学习笔记:Learning to Estimate 3D Human Pose and Shape From a Single Color Image
-
解决的问题:从单个彩色图像估计人体的姿势和形状
- 一般方法:通过迭代优化
- 存在的问题:卷积网络缺少训练数据、3D预测时分辨率低 - 本篇论文的工作:提出一个基于卷积网络的高效的直接预测方法来解决上述问题
- 论文方法的核心:在端到端框架中结合SMPL模型解决问题
Introduction:
-
目标:
- 计算机视觉:从图像中估计人体全身的姿势和形状
- 3D人体分析:从单个彩色图像中估计人体姿势和形状
- 本文作者:通过提出一种高效且有效的直接预测方法,证明卷积网络确实能在此问题上提供一个好的解决方案,甚至优于迭代优化方法。 -
方法的关键:在端到端框架中结合SMPL模型(Figure1)
- 优点:参数少;有利于直接网络预测;训练是生成3D网格,并对其表面进行了优化;
Figure1:框架的示意图
a)输入一个彩色图像,使用2D姿势数据进行训练,预测出2D热图及轮廓;
b)两个网络使用参数模型的实例进行训练,用PosePrior、ShapePrior分别估计来自关键点的参数θ 及 来自轮廓的形状参数β;
c)将全身3D网格投影到图像,并优化投影与2D注释(keypoints and masks)的一致性,对框架进行端到端的训练。
Contributions:
- 提出了一种用于从单色图像进行三维人体姿态和形状估计的端到端框架;
- 在端到端的框架中引入SMPL模型——预测SMPL模型的参数、生成3D人体网格、投影3D网格
Related work
作者的工作:估计人体整个表面几何形状
主要分为以下几个方面:
- 估计人体形状(human shape estimation)
- 同时估计人体姿势与形状(Joint 3D human pose and shape estimation)
- 单个彩色图像的3D人体姿势和形状(3D human pose and shape from a single color image)
Human Body Shape Models
Statistical body shape models(SCAPE or SMPL):
它们的低维参数空间,非常适合直接网络预测,可以保证输出预测空间较小,却不会降低输出的质量。
本文作者采用了最新的SMPL模型:(the essential notation)
M(β, θ; Φ):a function ;
β: the shape parameters,
Φ: fixed parameters of the model.
direct output of this function: a body mesh P
Technical Approach
- 传统方法:基于神经网络,获取大量具有3D形状标注的彩色图像,并用这些输入输出对训练网络。——通常不可用
- 主要目标:构建一个有效的框架
(根据前期的研究成果,确定可从二维姿态估计中可靠地估计3D姿态,形状可以从轮廓测量中进行推断。)
问题可分解为:
A . 从彩色图像估计keypoints和masks;
B . 从2D evidence中预测姿势和形状
(这样就不需要用具有3D形状标注的信息的图像来训练框架)第一步:估计2D关键点和轮廓。
训练一个卷积网络human2D,它产生两个输出:
a . 关键点的输出采用热图的形式,使用MSE损失进行监督;
b. 轮廓输出有两个通道(人体及背景),用像素二进制交叉熵损失(pixelwise binary cross entropy loss)进行监督。第二步:从2D关键点和轮廓估计全身3D姿势和形状。
训练2个网络组件:
a)PosePrior:使用2D关键点位置作为输入,检测置信度,并估计姿态系数θ;它使用两个线性单元,输入是2D关键点位置和每个热图的最大响应,输出是72个SMPL姿势参数θ。
b)ShapePrior:使用轮廓作为输入,并估计形状系数β。它使用一个简单架构,有五个3×3的卷积层,每个层后都跟着maxpooling,最后一个双线性单元有10个输出,对应于SMPL形状参数β。
Figure 2,我们可以通过生成具有不同3D姿势和形状的SMPL模型的实例来生成大量训练数据:
(目的是学习从轮廓和关键点到模型参数的映射。)
图中,一个源利用MoCap数据来对姿势参数进行采样,另一个源利用人体扫描来对体形状参数进行采样。
对于输入,我们只需要将3D合成人体模型实例投影到图像平面,并计算轮廓和2D关键点位置以生成用于训练的输入-输出对。
-
Differentability Renderer
在并发工作中,使用解码器类型的网络来学习从SMPL参数到轮廓的映射。但是,当确定 这种映射是已知的,并且涉及3D网格到图像的投影,可以以微分的方式进行实现,而不需要训练网络。
更具体地说,我们采用近似可微分的渲染器OpenDR,它将网格和3D关节投影到图像空间,并实现反向传播。
投影操作产生:a)轮廓,其表示为64×64二进制图像; b)2D关节的投影。
可以使用L2损失监督。
这种监督的目的有两个:
a.可用于网络的端到端细化,仅使用具有2D keypoints、masks的图像进行训练。
b.在一个只有2D注释的新设置(e.g.新的数据集)之前,它可以适当地调整一个通用的姿势或形状。
Empirical evaluation
- 首先,提出了用于定量和定性评估的基准。
- 其次,提供了该方法的基本实现细节。
最后,在选定数据集上显示定量和定性结果。
评估基准:
UP-3D数据集(收集2D人类姿势基准的彩色图像)
SURREAL数据集(提供具有3D shape ground truth的合成图像示例)
Table 1:这是UP-3D和CMU在同一架构、迭代相同次数、不同监督形式的对比结果。
(数字表示平均变形误差/mm)
- 此外,使用Human3.6M数据集对3D姿势精度作进一步评估。
(Human3.6M:大型室内数据集)
Figure 3: 表示在UP-3D示例方法中,成功预测了3D姿态和形状。
-
评估结果:
对于UP-3D:本文提出的方法在很大程度上优于之前Lassner等人提出两种直接预测方法;
Table 2中是UP-3D的详细结果。数字表示每个顶点误差的平均值mm,除了“Ruduced”列中有91个错误,我们的方法优于表中的其他方法。
上图是UP-3D的示例,我们的方法(蓝)明显优于Lassner等人的直接预测方法(粉)。
对于SURREAL:本文使用CMU数据训练PosePrior,与基于迭代优化方法 和 基于直接预测的方法进行比较,发现这些数据比UP-3D更通用。
Table 3中是SURREAL的Human3.6M部分的结果。数字表示每个顶点误差的平均值(mm)。“GT形状”表示形状系数是已知的。
对于Human3.6M:
Table 4:这是Human3.6M的详细结果。数字是重建误差(mm)。
Boosting SMPLify
希望通过与迭代优化方法互补,使我们的方法具有更大的适用性。
首先,使用预测的姿势(而不是典型的均值姿势)作为初始化。此外,避免分层四步优化,只需最后一步即可限制整个过程。最后,我们在优化中增加了一个数据项:以避免偏离我们预测的anchor pose。
Table 5:通过在图像上投影3D形状估计来呈现不同SMPLify版本的分割准确度。
使用我们的直接预测可以改善 vanilla SMPLify,同时还可以实现3倍的加速。
Figure 5:当我们的直接预测用作迭代优化的初始化和anchor?时,每张图的右侧小图显示了改进的SMPLify拟合的LSP示例。
本文提出的方法在相关测试中获得了最先进的结果,优于之前提出的方法。
并且,此方法的运行时间比最先进的迭代优化方法**个数量级,对于其他直接预测方法,运行时间可能很短,但是端到端框架表现出了明显更好的性能。