guodong's blog

master@zhejiang university
   

论文阅读(6)End-to-end Recovery of Human Shape and Pose

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

摘要:我们描述了人体网格恢复(HMR),一种用于从单个RGB图像重建人体的完整3D网格的端到端框架。与计算2D或3D关节位置的大多数当前方法相比,我们生成更丰富且更有用的网格表示,其通过形状和3D关节角度参数化。主要目标是最小化关键点的重投影损失,这允许我们的模型使用仅具有GT 2D注释的野外图像进行训练然而,单独的重投影损失是非常不受约束的。在这项工作中,我们通过引入一个受过训练的对手来解决这个问题,该对手使用大型3D人体网格数据库来判断人体形状和姿势参数是否真实。我们表明HMR可以使用和不使用任何配对的2D-3D监督进行训练。我们不依赖于中间2D关键点检测并直接从图像像素推断3D姿势和形状参数。我们的模型在包含该人的边界框的情况下实时运行。我们展示了我们对各种图像的处理方法,并在以前的基于优化的方法中输出3D网格,并在3D关节位置估计和零件分割等任务上显示竞争结果。

1. Introduction

我们提出了一个端到端的框架,用于从单个RGB图像中恢复人体的完整3D网格。 我们使用生成人体模型SMPL [24],通过3D关节角度和低维线性形状空间对网格进行参数化。 如图1所示,估计3D网格为大量应用打开了大门,例如超出了简单骨架的实用范围的前景和部位分割。 输出网格可以由动画师立即使用,修改,测量,操纵和重新定位。 我们的输出也是整体的 – 即使在遮挡和截断的情况下,我们总是推断出完整的3D体。

请注意,单个图像对人体的3D分析有很多工作要做。然而,大多数方法都专注于恢复3D关节位置。我们认为这些关节本身并不完整。关节是稀疏的,而人体是由3D空间中的表面定义的。

另外,单独的关节位置不会限制每个关节处的完整DoF(自由度)。这意味着仅从3D关节位置估计身体的完整姿势是非常重要的。相反,我们输出运动树中每个关节的相对3D旋转矩阵,捕获有关3D头部和肢体方向的信息。预测旋转还可确保肢体对称且长度有效。我们的模型隐含地从三维人体模型的数据集中学习关节角度限制。

现在恢复3D人体网格的方法主要集中在多阶段方法[5,20]。首先,他们估计2D关节位置,并从中估计3D模型参数。这种逐步方法通常不是最优的,在这里我们提出了一种端到端的解决方案来学习从图像像素到模型参数的映射。

然而,在以端到端方式训练这种模型方面存在若干挑战。首先是对于野外图像缺乏大规模的GT 3D注释。具有精确3D注释的现有数据集在受约束的环境中被捕获。在这些数据集上训练的模型并不能很好地概括现实世界中丰富的图像。另一个挑战是单视图2D到3D映射中固有的模糊性。最众所周知的是深度模糊的问题,其中多个3D体配置解释相同的2D投影[42]。许多这些配置可能在人体测量学上不合理,例如不可能的关节角度或非常瘦的身体。此外,估计相机明确地在人的大小和相机距离之间引入了额外的比例模糊。

在本文中,我们提出了一种新的网格重建方法,可以解决这两个方面的挑战。一个关键的见解是,存在野外图像的大规模2D关键点注释以及具有各种姿势和形状的人的3D网格的单独的大规模数据集。我们的关键贡献是以条件生成对抗方式利用这些不成对的2D关键点注释和3D扫描。该想法是,给定图像,网络必须推断3D网格参数和相机,使得3D关键点在投影之后匹配注释的2D关键点。为了处理模糊,这些参数被发送到鉴别器网络,鉴别器网络的任务是确定3D参数是否对应于真实人体。因此,鼓励网络在人类歧管上输出参数,并且鉴别器充当弱监督。网络隐含地学习每个关节的角度限制,并且不鼓励人们形成不寻常的体形。

预测身体模型参数的另一个挑战是回归到旋转矩阵。 大多数方法通过将角度划分为区间来将旋转估计形成为分类问题[45]。 然而,相对于重投影损失的区分角度概率是非平凡的,并且离散化牺牲了精度。 相反,我们建议使用反馈以迭代方式直接回归这些值。 我们的框架如图2所示。

我们的方法类似于3D解释器网络[33,50]使用重投影损失和更近期的对抗性反向图形网络[47]使用对抗性先验。我们以多种方式超越现有技术:

1.我们直接从图像特征推断3D网格参数,而先前的方法从2D关键点推断它们。这避免了对两阶段训练的需要,并且还避免丢失图像中的有价值信息,例如上下文。

2.超越骨架,我们输出网格,这些网格更复杂,更适合许多应用程序。同样,不需要额外的推理步骤。

3.我们的框架以端到端的方式进行培训。我们在3D关节误差和运行时间方面超出以前输出3D网格[5,20]的方法。

4.我们显示有和没有成对的2D到3D数据的结果。即使不使用任何配对的2D到3D监督,我们的方法也可以产生合理的3D重建。这是最令人兴奋的,因为它开辟了从大量2D数据中学习3D的可能性。

由于没有用于评估来自野外图像的人类3D网格重建的数据集,我们必须评估我们在标准3D关节位置估计任务上的方法。 我们的方法执行以前的方法,从2D关节估计SMPL参数,并且与仅输出3D骨架的方法竞争。我们还评估了我们关于人体分割的辅助任务的方法。我们定性评估我们在thewild挑战图像的方法,并显示在不同误差百分位数下采样的结果。 我们的模型和代码可用于研究目的,网址为https://akanazawa.github.io/hmr/。

2. Related Work

3D姿势估计: 许多论文将人体姿势估计表示为从图像,视频序列,单视图或多视图定位身体的主要3D关节的问题。 我们认为这种“姿势”的概念过于简单化,但它是该领域的主要范例。 这些方法分为两类:两阶段和直接估计

两阶段方法首先使用2D姿态检测器[30,49,54]或GT 2D姿势预测2D关节位置,然后通过回归[26,29]或模型拟合从2D关节预测3D关节位置,其中常见方法利用学习的3D骨骼词典[2,34,47,37,53,54]。为了约束2D到3D估计中的固有模糊性,这些方法使用了各种先验[42]。大多数方法对肢长或比例做出一些假设[4,21,32,34]。 Akhter和Black [2]先学习一种新颖的姿势,捕捉姿势依赖的关节角度限制。两阶段方法具有对域移位更稳健的益处,但是过多地依赖于2D关节检测并且可能在估计3D姿势时丢弃图像信息。

具有地面实况动作捕捉的视频数据集如HumanEva [38]和Human3.6M [16]定义了3D关节位置方面的问题。他们提供的训练数据可以将3D关节估计问题制定为标准的监督学习问题。因此,许多最近的方法在深度学习框架中直接从图像估计3D关节[33,43,44,51,52]。除了最近的Xiao等人的方法之外,主导方法是完全卷积的。 [40]使骨骼退化并在3D姿势基准上获得优异的效果。许多方法没有解决相机问题,而是估计相对于根的深度,并使用基于骨骼平均长度的预定义全局尺度[33,51,52]。最近Rogez等人。 [36]将人体检测与3D姿势预测相结合。这些直接估计方法的主要问题是在受控的MoCap环境中捕获具有准确的地面实况3D注释的图像。仅在这些图像上训练的模型不能很好地概括到现实世界。

弱监督3D:最近的工作解决了MoCap与端到端框架中的野外图像之间的领域差距问题。 Rogez和Schmid [35]使用MoCap数据人工地将3D注释赋予具有2D姿势注释的图像。 几种方法[27,28,51]共同训练野外和MoCap数据集。 还有一些人[27,28]使用预训练的2D姿势网络,并且还使用2D姿势预测作为辅助任务。当没有3D注释时,Zhou等人[51]从几何约束中获得弱监督,鼓励相对骨骼长度保持不变。在这项工作中,我们输出3D关节角度和3D形状,其中包含肢体应该对称的这些约束。我们通过训练对抗性事先采用更强大的弱监督形式

输出多于3D关节的方法:有多种方法适合参数体模型来手动提取轮廓[8]和一些手动提供的对应[12,14]。最近的工作试图使这项工作自动化。 Bogo等 [5]提出了SMPLify,这是一种基于优化的方法,用于从14个检测到的2D关节中恢复SMPL参数,这些关节利用了多个pr-ors。但是,由于优化步骤,该方法不是实时的,每个图像需要20-60秒。他们还对关节角度限制做出先验假设。拉斯纳等人 [20]从SMPLify中获取策划结果,训练91个关键点探测器,对应传统的身体关节和表面上的点。然后,他们优化SMPL模型参数以适合关键点[5]。他们还提出了一种随机森林回归方法来直接回归SMPL参数,从而以精度为代价减少运行时间。我们的方法优于两种方法,直接从图像中推断SMPL参数而不是检测到的2D关键点,并实时运行。

随着时间的推移,VNect [28]将拟合的骨架模型拟合到估计的2D和3D关节位置。虽然它们可以在优化后恢复每个关节的3D旋转,但我们可以直接从图像和曲面顶点输出旋转。同样周等人[52]直接回归固定运动树的联合旋转。我们输出形状以及相机比例,并在3D姿态估计中超越它们的方法。还有其他相关方法可以预测SMPL相关的输出:Varol等[48]使用渲染的SMPL体的合成数据集来学习深度和身体部分分割的完全卷积模型。DenseReg [13]同样为人体输出密集的对应图。两者都是底层3D体的2.5D投影。在这项工作中,我们恢复所有SMPL参数和摄像机,从中可以获得所有这些输出。

Kulkarni等 [19]使用概率编程框架的身体形状和姿势的生成模型来估计单个图像的身体姿势。它们处理视觉上简单的图像,不评估3D姿势的准确性。最近Tan等人[41]通过首先使用合成数据学习SMPL参数的轮廓解码器来推断SMPL参数,然后学习固定有解码器的图像编码器以最小化轮廓重投影损失。然而,对轮廓的依赖限制了他们对人的正面图像和图像的接近而没有任何遮挡。同时Tung等人[46]预测来自图像和一组2D关节热图的SMPL参数。该模型在合成数据集上预先训练,并在两个连续视频帧的测试时间进行微调,以最大限度地减少关键点,轮廓和光流的重投影损失。我们的方法可以在没有任何配对监督的情况下进行训练,不需要2D联合热图作为输入,我们在没有微调的情况下测试图像。此外,我们还展示了我们对野外人类图像的处理方法[22]杂乱和遮挡。

3. Model

我们建议直接从以人为中心以人为中心的单个RGB图像重建人体的完整3D网格。在训练期间,我们假设所有图像都使用GT 2D关节进行注释。我们还考虑了一些具有3D注释的情况。 此外,我们假设有一个不同形状和姿势的人体三维网格池。由于这些网格不一定具有相应的图像,因此我们将此数据称为未配对[55]。

图2显示了所提出的网络架构的概述,可以端到端地进行训练。图像的卷积特征被发送到迭代3D回归模块,其目的是推断3D人体和相机,使得其3D关节投射到带注释的2D关节上。推断的参数也被发送到对抗性鉴别器网络,其任务是确定3D参数是否是来自未配对数据的真实网格。这促使网络输出位于人体多层上的3D人体,并且作为对野外图像的弱监视而没有地面真相3D注释。由于3D网格模型的丰富表示,这种数据驱动的先验可以捕获关节角度限制,人体测量约束(例如身高,体重,骨骼比率),并包含仅预测3D关节位置的模型所使用的几何先验[34] ,40,51]。当有地面真相3D信息时,我们可以将其用作中间损失。总的来说,我们的总体目标是

3.1 3D Body Representation

我们使用蒙皮多人线性(SMPL)模型[24]对人体的3D网格进行编码。 SMPL是一种生成模型,它将人体的形状 – 个体的身高,体重,身体比例和姿势 – 如何随着关节变形而变形。 形状β∈R10由PCA形状空间的前10个系数参数化。 姿势θ∈R3K通过轴 – 角表示中K = 23个关节的相对3D旋转来建模。 SMPL是一个可微函数,输出一个三角网格,其中N = 6980个顶点,M(θ,β)∈R3×N,它是通过对β和θ条件下的模板体顶点进行整形得到的,然后根据 通过正向运动学进行关节旋转θ,最后通过线性混合蒙皮使表面变形。 用于重投影误差的3D关键点X(θ,β)∈R3×P是通过最终网格顶点的线性回归获得的。

我们采用弱视角相机模型并求解轴角表示中的全局旋转R∈R3×3,平移t∈R2和尺度s∈R。因此,表示人类三维重建的参数集体被表示为85维向量Θ= {θ,β,R,t,s}。 给定Θ,X(θ,β)的投影是

3.2. Iterative 3D Regression with Feedback

然而,一次性直接回归Θ是一项具有挑战性的任务,特别是因为Θ包括旋转参数。 在这项工作中,我们从以前的工作[7,9,31]中获取灵感,并在迭代误差反馈(IEF)循环中回归Θ,其中循环变化反复进行到当前估计。 具体地,3D回归模块将图像特征φ和当前参数Θt作为输入并输出残差ΔΘt。 通过将该残差加到当前估计Θt+ 1 =Θt+ΔΘt来更新参数。 初始估计Θ0被设置为平均值Θ。 在[7,31]中,估计被渲染到图像空间以与图像输入连接。 在这项工作中,我们将所有内容保存在潜在空间中,并简单地将特征[φ,Θ]连接为回归量的输入。 我们发现这很有效,并且当参数的可微差别渲染非常重要时是合适的。

当配对的地面实况3D数据可用时,可以采用附加的直接3D监督。 最常见的3D注释形式是3D关节。 当原始3D MoCap标记数据可用时,可以通过MoSh [23,48]获得关于SMPL参数[β,θ]的监督。 以下是3D损失的定义。 我们使用和不使用任何直接监督L3D显示结果。

[7,31]都使用“有界”校正目标来监督每次迭代的回归输出。 然而,这假设地面实况估计总是已知的,在我们的设置中并非如此,其中许多图像没有地面实况3D注释。 正如这些方法所指出的那样,用最终目标监督每次迭代会迫使回归过冲并陷入局部最小值。 因此,我们仅在最终估计ΘT上应用Lreproj和L3D,但是在每次迭代时对估计应用对抗性损失Θt迫使网络采取3D人体流形上的校正步骤。

3.3. Factorized Adversarial Prior

重投影损失促使网络产生解释2D关节位置的3D体,然而人体测量不可信的3D体或具有粗略自交的体也可以最小化重投影损失。为了规范这一点,我们使用经过训练的鉴别器网络D来判断SMPL参数是否对应于真实的身体。我们将此称为对抗先验,如[47]中所述,因为鉴别器充当引导3D推理的数据驱动先验。

采用像SMPL这样丰富,明确的3D表示的另一个好处是我们能够准确地知道潜在空间的含义。特别是SMPL具有分解形式,我们可以利用它来使对手更有效率和稳定地训练对手。更具体地说,我们镜像SMPL的形状和姿势分解,并独立训练形状和姿势的鉴别器。姿势基于运动树,因此我们进一步分解姿势鉴别器并为每个关节旋转训练一个。这相当于学习每个关节的角度限制。为了捕捉整个运动树的联合分布,我们还学习了一个接受所有旋转的鉴别器。由于每个鉴别器的输入是非常低的维度(对于β为10-D,对于每个关节为9-D,对于所有关节为9K-D),它们每个都可以是小网络,使得它们相当稳定以进行训练。所有姿势鉴别器共享旋转矩阵的共同特征空间,并且仅分别学习最终分类器。

与以前对关节界限做出先验假设的方法不同[5,52],我们不预定义运动骨架模型的自由度。相反,这是通过这种分解的对抗性先验以数据驱动的方式学习的。如果没有分解,网络就不会学会正确地调整姿势和形状,从而产生视觉上不愉快的结果。当没有配对的3D监督可用时,对抗性先验的重要性是至关重要的。如果没有对抗性,网络就会产生完全无约束的人体,如4.3节所示,虽然模式崩溃是GAN中的一个常见问题[10]但我们并没有真正受此影响,因为网络不仅要欺骗鉴别器,还必须尽量减少重投影错误。 图像包含所有模式,网络被强制匹配所有模式。 因子分解可以进一步有助于避免模式崩溃,因为它允许概括到看不见的体形并构成组合。

总之我们训练K + 2鉴别器。 每个鉴别器Di输出[0,1]之间的值,表示θ来自数据的概率。在实践中,我们使用最小二乘法[25]来确保其稳定性。 设E表示包括图像编码器和3D模块的编码器。 

3.4. Implementation Details

数据集:我们使用的2D关键点注释的野外图像数据集是LSP,LSP扩展[17] MPII [3]和MS COCO [22]。我们过滤的图像太小或者可见关键点少于6个,并且分别获得大小为1k,10k,20k和80k图像的训练集。我们使用这些数据集的标准训练/测试分割。使用地面实况边界框获得所有测试结果。

对于3D数据集,我们使用Human3.6M [16]和MPIINF-3DHP [28]。我们将训练MPI-INF-3DHP的主题8的序列留作调整超参数的验证集,并使用完整的训练集进行最终实验。两个数据集都在受控环境中捕获,并提供带有3D联合注释的150k训练图像。对于Human3.6M,我们还使用来自原始3D MoCap标记的MoSh [23]获得训练图像的地面实况SMPL参数。用于训练对抗性先前的未配对数据来自MoShing三个MoCap数据集:CMU [6],Human3.6M训练集[16]和PosePrior数据集[2],其中包含各种各样的极端姿势。它们分别包括390k,150k和180k样品。

所有图像都缩放到224×224,保留纵横比,使得紧密边界框的对角线大约为150px(见[17])。图像随机缩放,翻译和翻转。小批量大小为64.当采用配对3D监督时,每个小批量平衡,使得它由半个2D和半个3D样本组成。除非另有说明,否则所有实验都使用具有成对3D损失的所有数据集。

SMPL中K = 23关节的定义与这些数据集使用的常见关节定义不完全一致。我们遵循[5,20]并使用回归量从重建的网格获得人类3.6M的14个关节。此外,我们还结合了MS COCO数据集[22]中的5个面关键点。通过指定相应的顶点ID1,可以轻松地将新关键点与网格表示合并。总计,在P = 19个关键点上计算重投影误差。

架构:我们使用ResNet-50网络[15]对图像进行编码,预先训练在ImageNet分类任务[39]上。 ResNet输出是平均汇总,产生特征φ∈R2048.三维回归模块由两个完全连接的层组成,每个层有1024个神经元,每个神经元之间有一个dropout层,然后是最后一层85D神经元。我们对所有实验使用T = 3次迭代。形状的鉴别器是两个完全连接的层,具有10,5和1个神经元。对于姿势,首先通过罗德里格斯公式将θ转换为K个3×3旋转矩阵。每个旋转矩阵被发送到具有32个隐藏神经元的两个完全连接的层的公共嵌入网络。然后将输出发送到K = 23个输出1-D值的不同鉴别器。整体姿势分布的鉴别器通过另外两个完全连接的每层1024个神经元连接所有K * 32表示,最后输出1D值。除最后一层外,所有图层都使用ReLU激活。编码器和鉴别器网络的学习速率分别设置为1×10-5和1×10-4。我们使用亚当解算器[18]并训练55个时代。单个Titan 1080ti GPU上的训练大约需要5天。通过MPI-INF-3DHP数据集上的验证数据设置λs和其他超参数。实施在Tensorflow [1]

4. Experimental Results

尽管我们比3D骨架恢复得更多,但评估结果很困难,因为当前数据集不存在地面实况网格3D注释。 因此,我们定量评估标准3D联合估计任务。 我们还评估了身体部位分割的辅助任务。 在图1中,我们显示了来自MS COCO [22]的具有遮挡,杂波,截断和复杂姿势的挑战性图像的定性结果。注意我们的模型如何恢复头部和肢体方向。 在图3中,我们显示了在各种误差百分位数下Human3.6M,MPI-INF-3DHP,LSP和MS COCO的测试集的结果。即使在第95百分位误差,我们的方法也能恢复合理的重建。有关更多结果,请参阅项目网站2。 在所有图中,在具有和不具有成对的2D到3D监督的情况下训练的模型的结果分别以浅蓝色和浅粉色呈现。

4.1. 3D Joint Location Estimation

我们评估Human3.6M上的3D关节误差,这是在实验室环境中捕获的标准3D姿势基准。我们还与最近的MPI-INF-3DHP [27]进行了比较,这是一个比人类3.6M更多的姿势和演员出现的数据集。虽然数据集更加多样化,但它仍然远离野外图像的复杂性和丰富性。

我们使用几个用于评估3D关节错误的错误指标进行报告。最常见的评估报告平均每个关节位置误差(MPJPE)和重建误差,即通过Procrustes Analysis [11]将预测与基础事实严格对齐后的MPJPE。重建错误消除了全局错位并评估了重建的3D骨架的质量。

Human3.6M:我们评估两种常见的协议。第一个,表示为P1,在5个对象(S1,S5,S6,S7,S8)上训练并在2上进行测试(S9,S11)。在之前的工作[33,36]之后,我们将所有视频从50fps下采样到10fps以减少冗余。第二个协议[5,44],P2使用相同的列车/测试装置,但仅在前置摄像头(摄像机3)上进行测试并报告重建错误。我们将表1中P2的方法(HMR)的结果与两种最近的方法[5,20]进行比较,这两种方法也从单个图像输出SMPL参数。两种方法都需要2D关键点检测作为输入,并且我们两者都大幅度地执行。我们在表2中显示P1的结果。这里我们也超过了Zhou等人最近的方法。 [52],它也输出运动树中的3D关节角度而不是关节位置。请注意,他们手动指定每个关节的DoF,而我们从数据中学习。当我们求解形状时,它们还假设骨骼长度固定。 HMR与最新的仅预测3D关节位置的方法相比具有竞争力。

我们注意到MPJPE似乎与结果的视觉质量没有很好的相关性。我们发现许多具有高MPJPE的结果看起来非常合理,如图3所示,其显示了各种误差百分位数的结果。

MPI-INF-3DHP: MPI-INF-3DHP的测试集由来自6个执行7个动作的对象的2929个有效帧组成。该数据集在室内和室外使用多摄像机标记的MoCap系统进行收集。因此,GT 3D注释会产生一些噪音。除MPJPE外,我们还报告了在150mm范围内阈值的正确关键点百分比(PCK)和在一系列PCK阈值范围内的曲线下面积(AUC)[27]。

结果如表3所示。所有方法均使用[27]的透视校正。 我们还使用公开的代码[28]报告HMR和VNect严格对齐后的指标。 我们报告VNect结果,而不进行后处理优化。 同样,我们与训练输出3D关节的方法竞争,并且我们在刚性对齐后改进了VNect。

4.3. Without Paired 3D Supervision

到目前为止,我们已经使用了成对的2D到3D监控,即只要可用的L3D。 在这里,我们评估一个没有任何配对3D监督的训练模型。 我们将此设置称为HMR未配对,并在所有表中报告数值结果。 报告3D关节估计任务结果的所有方法都依赖于直接3D监督,没有它就无法进行训练。 即使是基于重投影损失的方法[33,47,50]也需要成对的2D到3D训练数据。

鉴于这一具有挑战性的环境,结果令人惊讶请注意,在没有成对的2D到3D数据的情况下,对抗性先验对于训练至关重要。 图5显示,既没有配对3D监督也没有对抗性损失的模型产生具有极端形状和姿势的怪物。 无论增加2D数据量是否会显着提高3D精度,它仍然是开放的。

5. Conclusion

在本文中,我们提出了一个端到端的框架,用于从单个RGB图像中恢复人体的完整3D网格模型。 我们根据3D关节角度和低维线性形状空间对网格进行参数化,这具有多种实际应用。 在过去的几年中,在受控环境中捕获的图像上的单视图3D姿势预测已经取得了快速进展。 虽然这些基准测试的性能开始饱和,但在野外图像中3D人体重建的进展并不多。 我们的结果没有使用任何配对的3D数据是有希望的,因为他们建议我们可以继续改进我们的模型使用更多的图像与2D标签,这是相对容易获得,而不是地面真相3D,这是一个更具挑战性的收购自然环境。




上一篇:
下一篇:

头像

guodong

说点什么

avatar
  Subscribe  
提醒