Expressive Body Capture: 3D Hands, Face, and Body from a Single Image

富有表现力的身体捕捉:从单个图像中获取三维手、脸和身体

摘要

为了便于分析人类的行为,互动和情感,我们从单眼单眼图像中计算出人体姿势,手势和面部表情的3D模型。为了实现这一目标,我们使用了数千次的三维扫描来训练一个新的、统一的、hu-man身体的三维模型SMPL-X,它用完全关节化的手和表情丰富的脸来扩展SMPL。没有成对图像和三维ground truth直接从图像中回归SMPL-X的参数是一个挑战。所以,我们采用SMPLify方法,先对二维特征进行估计,然后对模型参数进行优化以拟合特征。我们从以下几个方面改进SMPLify:
(1)我们检测与脸、手和脚相对应的二维特征,并将完整的SMPL-X模型拟合到这些
(2)利用大型MoCap数据集训练一种新的神经网络位姿先验
(3)我们定义了一种新的快速准确的互穿惩罚
(4)我们自动检测性别和合适的身体模型(男性、女性或中性);
(5)我们的Pythorch实现比Chumpy快8倍以上。
我们使用新的方法SMPLify-X,将SMPL-X拟合到控制图像和野生图像。我们评估了一个新的压缩数据集的三维准确性,该数据集包含100幅具有伪地面真值的图像。这是朝着从单目RGB数据自动显示人类捕获迈出的一步。模型、代码和数据可用于研究目的:项目地址

1.介绍

人类通常是图像和视频的中心元素。了解他们的姿势,他们交流的社交线索以及与世界的互动对于全面了解场景至关重要。最近的方法在二维人体主要关节、手关节和面部特征的估计方面取得了迅速的进展。但是,我们与世界的互动基本上是3D的,最近的工作在主要关节的3D估计以及直接从单个图像进行粗略3D姿势方面也取得了进展。然而,要了解人类的行为,我们需要的不仅仅是身体的主要关节——我们需要身体、手和脸的完整三维表面。由于缺乏合适的三维模型和丰富的三维训练数据等几个主要挑战,目前还没有一个系统能够做到这一点。 图1说明了这个问题。只有稀疏的二维信息或缺乏手部和面部细节的三维表现,很难对表达性和交际性图像进行交互处理。要解决这个问题,我们需要两件事。首先,我们需要一个身体的三维模型,它能够表示人脸、手和身体姿势的复杂性。其次,我们需要一种方法从一幅图像中提取出这样的模型。
神经网络的发展和人类标记图像的大数据集的出现,使得二维人体姿态估计技术得到了迅速的发展。“姿势”一词通常指身体的主要关节。这不足以理解图1所示的人类行为。OpenPose将其扩展到包括2D手关节和2D面部特征。虽然这捕捉到了更多关于沟通意图的信息,但它不支持关于面和人类与三维世界互动的推理。
三维身体模型的重点是捕捉身体的整体形状和姿势,不包括手和脸。关于3D建模手和脸部的文献也很多,但是与身体其余部分隔离。例如,Frank模型结合了简化版SMPLbody模型,由艺术家设计的手动钻机,以及FaceWarehouse 面部模型。 将这些不同的模型缝合在一起,导致模型不完全现实。
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image_第1张图片
图1:沟通和手势依赖于身体姿势、手部姿势和面部表情。人体的主要关节不足以代表这一点,而目前的三维模型也不够有表现力。与以往的工作相比,我们的方法从一幅图像中估计出一个更详细、更具表现力的三维模型。从左到右:RGB图像,主要关节,骨骼,SMPL(女性),SMPL-X(女性)。SMPL-X中的手和脸可以实现更全面和更具表现力的身体捕捉。
在这里,我们学习一个新的,整体的,身体模型与脸和手从一个大的三维扫描语料库。新的SMPL—X模型(SMPL expression)基于SMPL,并保留了该模型的优点:与图形软件兼容、参数化简单、体积小、高效、可区分等。我们将SMPL与FLAME headmodel和MANO hand model相结合,然后将该组合模型注册为55863d扫描我们保证质量。通过从数据中学习模型,我们捕获了身体,脸部和手的形状之间的自然相关性,并且生成的模型没有Frank看到的伪像。模型的表示性可以在图2中看到,其中我们将SMPL-X拟合到表示性RGB图像,以及在图4中我们将SMPL-X拟合到公共LSP数据集的图像。SMPL-X可免费用于研究目的。
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image_第2张图片
图2:我们学习了一种新的人体三维模型SMPL-X,它可以对人体、面部和手进行联合建模,我们将SMPLXModel与简单的 RGB图像进行拟合,显示它捕捉到了丰富多样的自然的三维人体姿势、手势和面部表情。
有几种方法使用深度学习从单个图像中回归SMPL的参数。然而,要用手和脸来估计一个3D身体,还没有合适的训练数据集。为了解决这个问题,我们遵循SMPLify的方法。首先,我们使用OpenPose来“自下而上”估计二维图像特征,OpenPose检测身体、手、脚和面部特征的关节。然后,我们将SMPL-X模型“自上而下”地与这些2D特征相匹配,方法称为SMPLify-X。为此,我们在SMPLify上进行了几项重大改进。具体来说,使用变分自动编码器从大型的运动捕获数据集中学习新的,性能更好的姿势。此先验至关重要,因为从二维要素到三维姿势的映射不明确。我们还定义了一个新的(自)互穿惩罚项,它比简单化中的近似方法更精确和有效;它仍然是可微的。我们训练性别检测仪,并使用它自动确定要使用的体型,无论是男性、女性还是中性。最后,训练直接回归方法来估计SMPL参数的一个动机是SMPLify是缓慢的。在这里,我们可以使用PyTorch实现来解决这个问题,该实现至少比相应的Chumpy实现快8倍,方法是利用现代gpu的计算能力。该SMPLify-X方法的示例如图2所示。
为了评估精度,我们需要用全身RGB图像和相应的三维地面真值来获得新的数据。为此,我们策划了一个新的评估数据集,其中包含一个对象执行各种姿势、手势和表情的图像。我们使用扫描系统捕捉三维人体形状,并将SMPL-X模型拟合到扫描区域。这种形式的ground_truth是精确到足以对身体、手和脸的模型进行定量评估。我们发现我们的模型和方法的性能明显优于相关的和较弱的模型,从而产生自然的和表达性的结果。
我们相信,这项工作是从单一的RGB图像中对身体、手和面部进行压力捕获的重要一步。我们提供了SMPL-X模型、SMPLify-X代码、经过训练的网络、模型拟合和评估数据集。点击这里可以查看

2.相关工作

3.技术方法

在下文中,我们描述了SMPL-X(第3.1节)和我们的方法(第3.2节),用于将SMPL-X拟合到单rgb图像。与SMPLify[10]相比,SMPLify-X使用了更好的姿势优先(第3.3节)、更详细的碰撞惩罚(第3.4节)、性别检测(第3.5节)和afaster PyTorch实现(第3.6节)。

3.1.统一模型:SMPL-X

我们创建了一个统一的模型,称为SMPL-X,.即SMPL eXpressive,其形状参数为面、手和身体共同训练。SMPL-X使用标准的基于顶点的线性混合蒙皮和学习的校正混合形状,有N=10475个顶点和k=54个关节,其中包括颈部、下颌、眼球和鳍角的关节。SMPL-X 由一个方程所定义:M(θ,β,ψ):ℝ|θ|×|β|×|ψ|→ℝ3N,由θ∈ℝ3(K+1)参数化,其中K是除了用于全局旋转的关节之外的身体关节的数量。我们将姿势参数θ分解为:下颌关节的θf,手指关节的θh和其余身体关节的θb。关节体,脸和手的形状参数由β∈R|β|表示,面部表情参数由ψ∈R|ψ|表示。更正式一点:
在这里插入图片描述
式中,BS(β,S)=∑n=1|β|βnSn为形状混合变形函数,β为线性形状系数,|β|为其个数,Sn∈ℝ3N是顶点位移的正交主成分,捕获由于不同人的身份而引起的形状变化,并且[S1,…,S |β|]∈R3N×|β|为所有此类位移的三个分量。BP(θ;P) :R |θ|→r3是姿势混合形状函数,它向SMPL中的模板网格̄Tas添加校正的顶点位移:
在这里插入图片描述
其中R:R |θ|→R9K是将姿态矢量θ映射到由罗德里格斯公式计算的连接部分相对旋转矩阵矢量的函数,Rn(θ)是R(θ)的元素,θ∗是其余姿势的姿势向量,Pn∈R3N又是顶点位移的正交原理分量,并且P = [P1,…,P9K]∈R3N×9K是所有姿势混合形状的矩阵。BE(ψ; E)= ∑ |ψ| n =1ψnE是表情混合形状函数,其中ε是表示由面部表情引起的变化的主成分,而ψ是PCA系数。因为不同形状的物体之间的三维关节位置不同,它们是体形J(β) =J( ̄T+BS(β;S))的函数,其中J是一个稀疏的线性回归器,用于从网格顶点回归3D关节位置。标准线性混合蒙皮函数W(.)旋转由混合权重W∈RN×K平滑的估计关节J(β)周围的顶点ω∈ℝN×K。
我们从一个艺术家设计的3D模板开始,它的脸和手与FLAME[43]和MANO[68]的模板相匹配。我们将模板与四个三维人体扫描数据集进行拟合,以获得SMPL-X的三维校准数据。形状空间参数{S}在3800个A姿势校准上进行训练,以捕获不同身份的变化。人体姿态空间参数{W,P,J}在1786个不同姿态的姿态上进行训练。由于全身扫描对手部和面部的分辨率有限,我们利用了分别从1500次手部和3800次头部高分辨率扫描中获得的MANO和FLAME参数。更具体地说,我们将MANO的姿势空间和姿势校正混合形状用于手以及FLAME的表达空间ε。
手指有30个关节,对应于90个姿势参数(每关节3DoF作为轴角度旋转)。SMPL-X为手使用了较低维的PCA姿势空间,使得θh= ∑ | mh | n = 1mhnM,其中M为是捕获手指姿势变化的原理组件,mh是其具有相应的PCA系数。如上所述,我们使用MANO的PCA姿势空间,该空间是在3D多关节人类手的大型数据集上训练的。SMPL-X中的模型参数总数为119:75,用于全身旋转和{body,eyes,jaw}关节,24个用于低维手部姿势PCA空间,10个用于主体形状,10个用于面部表情。此外,还有单独的男性和女性模型,在知道性别时会使用它们,并且在性别未知时会使用两种性别构造一个形状空间。 SMPL-X逼真,富有表现力,可区分且易于适应数据。

3.2.SMPLify-X:来自单个图像的SMPL-X

为了使SMPL-X适合单个RGB图像(SMPLify-X),我们遵循SMPLify,但要对其各个方面进行改进。将SMPL-X拟合到图像作为一个优化问题,其中我们寻求最小化目标函数
在这里插入图片描述
其中θb,θf和mh分别为身体、面部和双手共享姿势向量,θ是可优化的姿势参数的完整集合。人体姿势参数是一个函数θb(Z),其中Z∈r32是第3.3节中描述的较低维姿势空间。EJ(β,θ,K,Jest)是如下所述的数据项,其中Emh(mh)、Eθf(θf)、Eβ(β)和E(Ψ)是手部姿势、面部姿势、体形和面部表情的模拟变量,偏离中立状态的惩罚性偏差。由于SMPL-X的形状空间是按单位方差缩放的,因此类似于[68],Eβ(β)=“β” 2描述了SMPL-X的训练数据集中要优化的形状参数与形状分布之间的马氏距离。Eα(θb)= ∑i∈(肘,膝)exp(θi)遵循[10],这是仅对肘部和膝盖进行极限弯曲的先验惩罚。我们进一步采用Eθb(θb),它是基于VAE的身体姿势先验(第3.3节),最后,λ表示权重,这些权重可以控制方程式中每个项的影响,而EC(θb,h,f,β)是互穿惩罚(第3.4节)。我们凭经验发现用于λ的退火方案有助于优化(第3.6节)。对于数据项,我们使用重新投影损失来最小化估计的2D关节与对应的三维关节的2D投影之间的加权鲁棒距离,对于每个关节,SMPL-X的3D关节Rθ(J(β))iof,其中rθ(·)是根据姿势θ沿运动中心变换关节的函数。根据[10]的符号,数据项isEJ(β,θ,K,Jest)=
在这里插入图片描述
其中,∏k使用内置相机参数sk表示三维到二维投影。对于二维检测,我们依赖penpose库[15,70,77],它为每个人在一个im age中联合提供身体、手、脸和脚的关键点。为了解释检测中的噪声,数据项中每个关节的贡献由检测置信分数ωi加权,而γi则由每个关节的权重加权,如第3.6节所述。最后,ρ表示用于自身加权噪声检测的鲁棒Geman-mccluer误差函数[25]。

3.3.变位人体姿态先验

我们寻求一个身体姿势先验,惩罚不可能的姿势,同时允许可能的姿势。SMPLify使用了对基于MoCap数据训练的高斯混合模型的负对数的近似。虽然有效,但我们发现SMPLify先验并不足够强。因此,我们使用可变自动编码器来训练我们的身体姿势先验,VPoser[40],它学习人体姿势的潜在表示,并将当前代码的分布规律化为正态分布。我们在[50,51]发布的数据上训练我们的prioron,即在三个公开可用的人类运动捕捉数据集上应用MoSh[47]获得的姿势参数:CMU[17]、人类训练集3.6M[32]和PosePrior数据集[1]。我们的训练和测试数据分别由粗略的1M和65K姿势组成,以旋转矩阵表示。有关数据准备过程的详细信息,请参见Sup.Mat。
VAE的训练损失公式如下:
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image_第3张图片
公式(7)中的Kullback-Leibler项和公式(8)中的重构项遵循[40]中的VAE公式,它们的作用是鼓励在潜在空间上的正态分布,并生成一个高效的代码来高保真地构造输入。式(9)和(10)鼓励潜在空间编码有效的旋转矩阵。最后,式(11)通过鼓励较小的网络权重φ有助于防止过度拟合。实现细节可以在Sup.Mat中找到。
为了在优化中使用VPoser,而不是在等式4中直接对θb进行优化,我们使用二次惩罚优化了32维潜在空间的参数,并将其转换回关节角θb轴角表示。这类似于手的处理方式,只不过手的姿势θh被投影到线性PCA空间中,并且罚分在线性系数上。

3.4.碰撞惩罚器

当将一个模型与观测值拟合时,常常会发生物理上不可能发生的碰撞和几个身体部位的穿透。我们的方法受到了SMPLify的启发,它使用基于形状原语的底层碰撞模型(即胶囊集合)来惩罚穿透。尽管此模型在计算上是有效的,但它只是人体的粗略近似。
对于像SMPL-X这样的模型,该模型还可以对手指和面部细节进行建模,因此需要更精确的碰撞模型。为此,我们采用了[8,75]中基于碰撞的详细模型。我们首先利用包围体层次(BVH)[73]来检测碰撞的trian-glesc列表,并计算由三角形及其法线定义的局部二次曲线3D距离场Ψ。然后根据入侵深度对渗透进行惩罚,通过距离字段中的位置有效地计算出。对于两个碰撞的三角形fs和ft,侵入是双向的;垂直侵入体在距离场Ψfs中受到Ψfs(vt)的惩罚,反之亦然。因此,目标(等式4)中的碰撞术语定义为:
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image_第4张图片
有关Ψ的技术细节,以及有关具有永久性或频繁自接触的零件的碰撞碰撞的详细信息,我们将读者重定向至[8,75]和Sup.Mat.。为了提高计算效率,我们在[38]之后使用高度并行化的BVH实现,并在定制PyTorch运算符周围包裹了定制CUDA内核。

3.5.深层性别分类

男性和女性有不同的比例和形状,因此,使用合适的身体模型来拟合2D数据意味着我们应该应用合适的形状空间。我们知道以前没有一种方法能自动将性别因素考虑在内来拟合三维人体姿势。在这项工作中,我们训练了一个性别分类器,它以包含全身和开放式关节的image作为输入,并将性别标签指定给被检测的人。为此,我们首先通过Amazon Mechanical Turk注释来自LSP [33],LSP扩展[34],MPII [5],MS-COCO [45]和LIP数据集[44]的大型图像集。分为训练和测试集。最终的数据集包括50216个训练示例和16170个测试样本(请参见补充材料)。我们使用该数据集微调针对二进制性别分类的ResNet18 [28]。此外,我们通过使用类均衡的验证集对计算出的类概率进行阈值处理,以在丢弃的,正确的和错误的预测之间获得良好的折衷。选择可接受的预测类别的阈值0.9,可以在验证集上产生62.38%的正确预测和7.54%的不正确预测。在测试时,我们运行检测器并拟合适当的性别模型。当检测到的类别概率低于阈值时,我们拟合性别中立的身体模型。

3.6.优化

SMPLify使用Chumpy和OpenDR[49],这使得优化速度变慢。为了保持方程4的可压缩性,我们使用PyTorch和有限内存BFGSoptimizer(L-BFGS)[56]和强Wolfe线搜索。在Sup中可以找到实现的详细信息。
我们用多级方法优化方程4,类似于[10]。我们假设我们知道相机焦距的精确值或近似值。然后,我们首先估计未知的摄像机平移和整体人体定向(请参见[10])。然后,我们固定相机参数并优化身体形状β和姿势θ。根据经验,我们发现数据项EJ(Eq.5)中权重γ的退火方案有助于优化目标(Eq.4),以处理歧义和局部最优。这主要是因为像手和脸这样的小身体部位相对于它们的大小有许多关键点,并且在等式4中是烛光的,当初始估计远离解时,在局部最优中进行优化。
在下面,我们用γb表示对应于主体关键点的权重,γh表示手的权重,γf表示面部关键点的权重。然后,我们遵循三个步骤,从高正则化开始主要细化全局身体姿势,并逐渐增加手关键点的影响来细化手臂姿势。收敛到更好的姿势估计后,我们增加了手部和面部关键点的影响力来捕捉表现力。在上述所有步骤中,公式4中的权重λα,λβ,λE以高正则化开始,并逐渐降低以实现更好的拟合;唯一的例外是λC会逐渐增加,而在EJ中手的影响会越来越强,并且可能会发生更多的碰撞。

4. 实验

5.结论

在这项工作中,我们提出了一种新的模型SMPL-X,该模型将身体与面部和手结合在一起,我们还提出了SMPLify-X,一种将SMPL-X与单个RGB图像相匹配的方法和2D开放式关节检测。我们利用一种新的强有力的身体姿态先验和一种快速准确的检测和惩罚穿透的方法,对模糊情况下的拟合进行了正则化。我们提出了一系列使用野外图像的定性结果,展示了SMPL-X的表达能力和SMPLIFY-X的有效性。我们引入了一个具有伪地面真值的精确数据集来进行定量评估,显示了更多表达模型的重要性。在未来的工作中,我们将整理一个野生的SMPL-X拟合数据集,并学习一个回归器,直接从RGB图像回归SMPL-X参数。我们认为,这项工作是朝着从RGB图像表达身体,手部和脸部进行捕捉的重要一步。

你可能感兴趣的:(论文阅读翻译)