guodong's blog

master@zhejiang university
   

论文阅读(9)Keep it SMPL: Automatic Estimation of 3D Human Pose and Shape from a Single Image

论文地址:https://arxiv.org/pdf/1607.08128.pdf

摘要:我们描述了第一种从单个无约束图像自动估计人体3D姿态及其3D形状的方法。我们估计一个完整的3D网格,并显示仅2D关节带有大量关于体形的信息。由于人体的复杂性,清晰度,遮挡,衣服,照明以及从2D推断3D的固有模糊性,这个问题具有挑战性。为了解决这个问题,我们首先使用最近发布的基于CNN的方法DeepCut来预测(自下而上)2D身体关节位置。然后,我们将最近发布的统计体形模型(称为SMPL)(自上而下)拟合到2D关节。我们通过最小化目标函数来实现这一点,该目标函数惩罚投影的3D模型关节和检测到的2D关节之间的误差。由于SMPL捕获了人口中人类形态的相关性,因此我们能够将其很好地适应非常少的数据。我们进一步利用3D模型来防止导致相互渗透的解决方案。我们在Leeds Sports,HumanEva和Human3.6M数据集上评估我们的方法SMPLify,显示出相对于现有技术的优异姿势准确性。

1 Introduction

从单个图像估计3D人体姿势是许多应用中长期存在的问题。 大多数先前的方法仅关注姿势并忽略3D人体形状。 在这里,我们提供全自动的解决方案,并估计从2D图像捕获姿势和形状的3D网格。 我们分两步解决问题。 首先,我们使用最近提出的称为DeepCut的卷积神经网络(CNN)来估计2D关节[36]。 到目前为止,CNN已经成功地估计了2D人体姿势[20,34,35,36,51],但没有成像来自一个图像的3D姿势和形状。 因此,我们添加了第二步,使用称为SMPL的3D生成模型从2D关节估计3D姿势和形状[30]。整体框架,我们称之为“SMPLify”,符合自下而上估算(CNN)的经典范式,然后是自上而下的验证(生成模型)。一些例子如图1所示。

关于从2D关节估计3D姿势的文献很长。与以前的方法不同,我们的方法利用高质量的3D人体模型,该模型通过数千次3D扫描进行训练,因此可以捕获人中形状变化的统计数据以及人们如何随姿势变形。这里我们使用SMPL人体模型[30]。关键的见解是,这样的模型可以适用于非常少的数据,因为它捕获了大量的人体形状信息

我们定义目标函数并直接优化姿势和形状,使得3D模型的投影关节接近CNN估计的2D关节。值得注意的是,仅拟合2D关节会产生合理的3D体形估计。我们使用合成数据执行定量评估,并发现2D关节位置包含惊人数量的3D形状信息。

除了捕获形状统计数据之外,使用生成3D模型还有第二个优势:它使我们能够推理相互渗透。以前在该领域的大多数工作都估计了2D关节的3D棒图。有了这样的模型,很容易找到不可能的姿势,因为身体部位会以3D相交。当从2D推断3D时,这种解决方案非常常见,因为深度信息的丢失使得解决方案模糊不清。

然而,计算诸如身体的复杂的,非凸的,铰接的物体的互穿是昂贵的。与以前的工作[14,15]不同,我们提供的互穿术语在身体形状和姿势方面是可区分的给定3D体形,我们定义了一组近似于体形的“胶囊”。至关重要的是,胶囊尺寸从模型形状参数线性回归。这种表示使我们能够有效地计算相互渗透。我们证明这个术语有助于防止不正确的姿势

SMPL是针对性别的;即它区分了女性和男性的形状空间。为了使我们的方法完全自动化,我们引入了一个性别中立的模型。如果我们不了解性别,我们会将此模型与图像相匹配。如果我们了解性别,那么我们会使用针对性别的模型来获得更好的结果。

为了处理姿势模糊,重要的是要有一个良好的姿势先验。许多最近的方法从CMU数据集[3]学习稀疏,过度完整的词典或学习数据集特定的先验。我们使用MoSh [29]从符合CMU mocap标记数据[3]的SMPL模型训练先前的过度姿势。这个因素从姿势变形,姿势表示为身体部位的相对旋转。然后我们在此之前学习一个通用的多模态姿势。

我们使用完全相同的2D关节作为输入,将该方法与最近发布的方法[4,39,58]进行比较。我们定性地展示了该方法对具有挑战性的利兹运动姿态数据集(LSP)图像的稳健性[22](图1)。我们定量比较HumanEva-I [41]和Human3.6M [18]的方法,发现我们的方法比以前的方法更准确。

总之,我们的贡献是:1)第一种从2D关节估计3D体形和姿势的全自动方法; 2)在形状和姿势方面可区分的互穿术语; 3)一种新的目标函数,它将3D人体模型与2D关节相匹配; 4)为了研究目的,我们为论文中的所有例子提供了代码,2D关节和3D模型[1]。

2 Related Work

从2D恢复3D人体姿势基本上是模糊的,并且所有方法以不同方式处理这种模糊性。这些包括用户干预,使用丰富的图像功能,改进优化方法,以及最常见的,引入先验知识。该先验知识通常包括在对骨长度实施人体测量约束之前的“形状”和在有利于合理姿势和排除不可能的姿势之前的“姿势”。虽然有大量关于从多摄像机图像或视频序列估计身体姿势和形状的文献[6,13,19,45],但在这里我们关注的是静态图像方法。我们还专注于不需要背景图像进行背景减除的方法,而是从2D关节推断3D姿势。

大多数方法将问题表述为找到3D骨架,使得其3D关节投射到已知或估计的2D关节。请注意,之前的工作通常将特定姿势中的骨架称为“形状”。在这项工作中,我们形成了3D中人体姿势不变的表面,并将其与姿势区分开来,姿势是四肢的清晰姿势

2D关节的3D姿势。这些方法都假设2D关节和3D骨架之间已知的对应关系。方法对肢长变化的统计数据做出不同的假设。 Lee和Chen [26]假设已知肢体长度的一个棒图,而泰勒[48]假设肢长的比例是已知的。 Parameswaran和Chellappa [33]假设肢体长度在人与人之间是等距的,仅在全局缩放中有所不同。 Barron和Kakadiaris [7]建立了人体测量表中极端长度变化的统计模型。 Jiang [21]采用非参数方法,将CMU数据集[3]中的姿态视为范例。

最近的方法通常使用CMU数据集并从中学习肢体长度和姿势的统计模型。例如,两个[11,39]都学习了姿势字典,但在肢体长度上使用相当弱的人体测量模型。 Akhter和Black [4]采用了类似的方法,但在捕获姿势依赖关节角度限制之前添加了一个新颖的姿势。周等人[58]也学习了一个形状字典,但它们创建了一个稀疏的基础,也可以捕捉这些姿势从不同的摄像机视图中出现的方式。它们表明最终的优化问题更容易解决。 Pons-Moll [37]采取不同的方法:他们从mocap估计定性“姿势位”并将这些与3D姿势联系起来。

上述方法具有弱的或不存在的人形模型。相比之下,我们认为,从成千上万的人身上学到的更强大的身体形态模型可以捕捉到人口的人体测量限制。这样的模型有助于减少歧义,使问题更容易。此外,因为我们有3D形状,我们可以模拟穿透,避免不可能的姿势

3D姿势和形状。还有从单个图像估计3D体形的工作。这项工作通常假设有良好的轮廓。 Sigal等[42]假设给出轮廓,从中计算轮廓特征,然后使用专家的混合物从特征预测3D身体姿势和形状。像我们一样,他们将问题视为自下而上的判别方法和自上而下的生成方法的组合。在他们的情况下,生成模型(SCAPE [5])适合图像轮廓。他们声称这种方法是全自动的,只有在有轮廓的情况下才有效,而情况往往并非如此。它们使用完美的轮廓显示有限的结果,并且不评估姿势的准确性。

Guan等人[14,15]采用手工标记的2D关节,并首先使用经典方法估计棒图的3D姿势[26,48]。他们使用这个棒图的姿势来构建SCAPE模型,将模型投影到图像中并使用它来使用GrabCut对图像进行分割[40]。然后,它们适合SCAPE形状并呈现各种特征,包括轮廓,图像边缘和阴影线索。他们假设相机焦距已知或接近,照明大致初始化,并且人的身高已知。他们使用互穿术语,通过其凸包模拟每个身体部位。然后他们检查每个肢体,看看有多少其他身体点落入其中并定义惩罚穿透的惩罚函数。这不是个简单的优化。

在类似的工作中,Hasler等人[16]将参数化身体模型拟合到轮廓。通常,它们需要已知的分段和一些手动提供的对应关系。在具有简单背景的情况下,他们使用手和脚上的四个点击点来建立粗略的拟合,然后使用GrabCut来分割人。他们在一张图片上展示了这一点。周等人[57]还使用显着的手动干预将身体形状和姿势的参数模型拟合成干净分割的轮廓。陈等人[9]拟合身体形状和姿势的参数模型,以手动提取轮廓;他们不评估定量准确性。

据我们所知,以前的方法都没有直接从2D关节估计3D体形和姿势。先验,似乎不可能,但鉴于良好的统计模型,我们的方法效果出奇的好。这是通过我们使用SMPL [30]实现的,与SCAPE不同,它具有明确的3D关节;我们将它们的投影直接适合2D关节。 SMPL定义关节位置如何与身体的3D表面相关联,从而能够从关节推断形状。当然,这并不完美,因为一个人可以拥有完全相同的肢体长度和不同的重量。然而,SMPL并不代表解剖关节,而是将它们表示为表面顶点的函数。这在模型训练期间耦合关节和形状,并且意味着一起解决它们是重要的。

让它自动化。上述方法都不是自动的,大多数假设已知的对应关系,有些涉及重要的人工干预。然而,有一些方法试图解决从单个图像推断3D姿势的整个问题。

Simo-Serra等[43,44]考虑到2D部件检测是不可靠的并且形成概率模型,其一起估计3D姿势和与2D图像特征的匹配。王等人[52]使用肢体长度的弱模型[26],但利用图像中自动检测到的关节,并使用L1距离稳健地匹配它们。他们使用稀疏基础来表示姿势,就像在其他方法中一样。

周等人[56]运行2D姿势检测器[54],然后优化3D姿势,自动拒绝异常值。 Akhter和Black [4]运行不同的2D探测器[23]并在几张图像上显示他们的方法的结果。两种方法仅定性评估。亚辛等人[55]采用非参数方法,其中检测到的2D关节用于在mocap数据集中查找最近的3D姿势。 Kostrikov和Gall [24]结合回归森林和3D图像模型来回归3D关节。 Ionescu等人[17]通过首先预测身体部位标签来训练从图像预测3D姿势的方法;他们在Human3.6M上的结果很好但是他们没有在没有背景分割的复杂图像上进行测试。 Kulkarni等[25]使用身体形状和姿势的生成模型,以及概率编程框架来估计单个图像的身体姿势。它们处理视觉上简单的图像,其中人很好地居中和裁剪,并且不评估3D姿势准确性。

深度学习的最新进展正在产生准确估计2D关节位置的方法[36,53]。我们使用最近的DeepCut方法[36],它提供了非常好的2D检测。最近的工作[59]使用CNN来估计2D关节位置,然后使用单目视频序列将3D姿势拟合到这些位置。它们不显示单个图像的结果。

这些自动化方法都没有估计3D体形。在这里,我们演示了一个完整的系统,它使用2D关节检测,并从单个图像中拟合姿势和形状。

3 Method

图2显示了我们系统的概述。我们采用单个输入图像,并使用DeepCut CNN [36]来预测2D身体关节Jest。对于每个2D关节i,CNN提供置信度值wi。然后,我们拟合3D体模型,使得模型的投影关节最小化较大的加权误差项。在这项工作中,我们使用基于皮肤和顶点的模型SMPL [30],并将其获取2D图像并生成构图3D网格的系统叫做SMPLify

身体模型被定义为函数M(β,θ,γ),由形状β,姿势θ和平移γ参数化。函数的输出是三角形表面M,具有6890个顶点。形状参数β是从数千个登记扫描的训练集中学习的低维形状空间的系数。在这里,我们使用三种形状模型中的一种:男性,女性和性别中性。 SMPL仅定义男性和女性模型。对于全自动方法,我们使用大约2000个男性和2000个女性身体形状训练了一个新的性别中立模型,用于训练性别化的SMPL模型。如果知道性别,我们使用适当的模型。使用的模型由其颜色表示:性别特定的粉红色和性别中性的浅蓝色。

身体的姿势由具有23个关节的骨架钻机定义;姿势参数θ表示部件之间相对旋转的轴角表示。设J(β)是从体形预测3D骨骼关节位置的函数。在SMPL中,关节是表面顶点的稀疏线性组合,或者等效地是形状系数的函数。通过应用全局刚性变换,可以将关节置于任意姿势。在下文中,对于关节i,我们将构成的3D关节表示为Rθ(J(β)i),其中Rθ是由姿势θ引起的全局刚性变换。 SMPL定义了与姿势相关的变形;对于性别中立的形状模型,我们使用女性变形,这在实践中是足够通用的。请注意,SMPL模型和DeepCut骨架的关节略有不同。我们将DeepCut关节与最相似的SMPL关节相关联。为了将SMPL关节投影到图像中,我们使用由参数K定义的透视摄像机模型。

3.1 Approximating Bodies with Capsules

我们发现以前的方法产生的3D姿势由于身体部位之间的相互渗透而是不可能的。我们的3D形状模型的一个优点是它允许我们检测和防止这种情况。然而,对于像身体这样的复杂,非凸起的表面,计算互穿是昂贵的。在图形中,通常使用代理几何来有效地计算碰撞[10,50]。我们遵循这种方法并将身体表面近似为一组“胶囊”(图3)。每个胶囊具有半径和轴长度

我们从模型形状参数到胶囊参数(轴长度和半径)训练回归量,并根据Rθ(由运动链引起的旋转)构建胶囊。具体来说,我们首先将20个胶囊,每个身体部位一个,不包括手指和脚趾,到用于学习SMPL的未暴露训练体形状的体表[30]。从手动连接到模板中的身体关节的胶囊开始,我们对其半径和轴长度进行基于梯度的优化,以最小化胶囊和体表面之间的双向距离。然后,我们使用交叉验证的脊回归从体形系数β到胶囊的半径和轴长度学习线性回归量。一旦训练了回归量,就再次重复该过程,用回归量输出初始化胶囊。虽然以前的工作使用近似来检测相互穿透[38,46],但我们相信这种形状参数的回归是新颖的。

3.2 Objective Function

3.3 Optimization

我们假设相机翻译和身体方向未知;但是,我们需要知道相机焦距或其粗略估计。我们通过假设人站在与图像平面平行的位置来初始化相机平移(等效于γ)。具体而言,我们通过相似三角形的比率估计深度,由平均SMPL形状的躯干长度和预测的2D关节定义。由于这个假设并不总是正确的,我们通过在相机平移和身体取向方面单独使躯干关节上的EJ最小化来进一步改进这个估计。在此优化过程中,我们将β固定为平均形状。我们不优化焦距,因为问题太不受限制,无法与翻译一起优化。

估算相机平移后,我们通过最小化方程(1)来拟合我们的模型。我们观察到,从λθ和λβ的高值开始并在随后的优化阶段逐渐减小它们对于避免局部最小值是有效的。当在侧视图中捕获对象时,评估身体朝向哪个方向可能是模糊的。为了解决这个问题,我们尝试在CNN估计的2D肩关节之间的2D距离低于阈值时进行两次初始化:首先,如上所述估计身体方向,然后将该方向旋转180度。最后我们选择最低EJ的拟合。

我们最小化等式(1)使用Powell的狗腿法[31],使用OpenDR和Chumpy [2,28]。在普通台式机上,单个图像的优化时间不到1分钟。

4 后略




上一篇:
下一篇:

头像

guodong

说点什么

avatar
  Subscribe  
提醒