guodong's blog

master@zhejiang university
   

论文阅读(7)Exploiting temporal information for 3D human pose estimation

论文地址:https://arxiv.org/pdf/1711.08585v3.pdf

摘要:在这项工作中,我们从一系列2D人体姿势中解决了3D人体姿势估计的问题。尽管最近深度网络的成功引领了许多最先进的3D姿态估计方法,使用训练深度网络端到端直接从图像进行预测,但是表现最好的方法已经证明了划分任务是有效的。 3D姿态估计分为两个步骤:使用最先进的2D姿势估计器从图像估计2D姿势,然后将它们映射到3D空间。他们还表明,像一组关节的2D位置这样的低维表示可以足够有辨别力地以高精度估计3D姿势。然而,由于每帧中的独立误差导致抖动,因此针对各个帧的3D姿势的估计导致时间上不相干的估计。因此,在这项工作中,我们利用一系列2D关节位置的时间信息来估计3D姿势的序列。我们设计了一个由层标准化LSTM单元组成的序列到序列网络,其中快捷连接将输入连接到解码器侧的输出,并在训练期间施加时间平滑约束。我们发现时间一致性的知识将人类3.6M数据集的最佳报告结果提高了大约12.2%,并且有助于我们的网络在一系列图像上恢复时间上一致的3D姿势,即使2D姿势检测器失效也是如此。

1 Introduction

从像单目图像或视频这样的2D表示来估计3D人体姿势的任务是计算机视觉和图形社区长期存在的一个开放的研究问题。了解人体姿势和肢体关节对于高级计算机视觉任务非常重要,例如人类行为或活动识别,运动分析,增强和虚拟现实。人体姿势的2D表示被认为更容易估计,可用于这些任务。然而,由于遮挡和缩短,2D姿势可能是模糊的。另外,完全不同的姿势在2D中可能看起来相似,因为它们的投影方式如图1所示。人体姿势的3D表示中的深度信息使其免于这种模糊,因此可以提高更高级别任务的性能。此外,3D姿势在计算机动画中非常有用,其中3D中人物的关节姿势可用于精确地模拟人体姿势和运动。然而,3D姿态估计是一个不适定的问题,因为将对象的2D视图反向投影到维持其结构的3D空间的固有模糊性。由于人的3D姿势可以在2D平面上以无限多种方式投影,因此从2D姿势到3D的映射不是唯一的。此外,获得3D姿势的数据集是困难且昂贵的。与2D姿势数据集不同,用户可以通过鼠标点击手动标记关键点,3D姿势数据集需要使用动作捕捉传感器和摄像头进行复杂的实验室设置。因此,野外图像缺乏运动捕捉数据集。

多年来,已经使用不同的技术来解决3D姿态估计的问题。早期的方法主要用于提取特征,对图像中的背景场景,光照和肤色等因素不变,并将它们映射到3D人体姿势[2,3,4,5]。随着深度网络的成功,最近的方法倾向于专注于端到端训练深度卷积神经网络(CNN)直接从图像估计3D姿势[6,7,8,9,10,11,12,13,14,15,16]。一些方法将3D姿势估计任务划分为首先使用2D姿势估计器预测2D中的关节位置[17,18]然后反投影它们以估计3D关节位置[19,20,21,22,23,24] 。 Martinez等人[24]通过建立一个具有快捷连接的简单完全连接网络,从3D姿态估计任务中获得了最先进的结果,该快速连接根据2D关节位置的噪声估计来预测3D姿态。他们的结果表明解耦3D姿态估计任务的有效性,其中2D姿态估计器抽象图像中的复杂性。在本文中,我们采用解耦方法进行三维姿态估计。但是,单独预测每个帧的3D姿势会导致视频抖动,因为每个帧中的错误与其他帧无关。因此,我们设计了一个序列到序列网络[1],在解码器端[25]具有快捷连接,在给定一系列2D姿势的情况下预测一系列时间上一致的3D姿势。我们网络的每个单元都是长短期记忆(LSTM)[26]单元,具有层标准化[27]和循环丢失[28]。我们还在训练期间对预测的3D姿势施加时间平滑约束,以确保我们的预测在序列上是平滑的。

我们的网络在Human3.6M数据集上实现了最先进的结果,将之前的最佳结果提高了大约12.2%。我们还获得了Human3.6M数据集中每个动作类的最低误差[29]。此外,我们观察到我们的网络在Youtube视频上预测了有意义的3D姿势,即使来自2D姿势探测器的探测非常嘈杂或毫无意义。这显示了使用时间信息的有效性。简而言之,我们在这项工作中的贡献是:

  – 设计一个有效的序列到序列网络,实现Human3.6M数据集[29]的每个动作类的最新结果,并且可以非常快速地训练。

  – 利用序列到序列网络的能力来考虑过去的事件,以预测时间上一致的3D姿势。

  – 在训练期间有效地对预测的3D姿势施加时间一致性约束,使得预测中的误差在序列上平滑分布。

  – 仅使用先前的帧来了解时间上下文,以便可以在线和实时部署它。

我们将在接受后公开发布我们的代码。

2 Related Work

3D姿势的表示 过去已经使用了3D人体姿势的基于模型和无模型的表示。 最常见的基于模型的表示是由一组关节的运动树定义的骨架,通过每个关节相对于其父关节的偏移和旋转参数来参数化。 几种3D姿势方法使用了这种表示[30,31,22,10]。 其他人将3D姿势建模为基础姿势过度完整字典的稀疏线性组合[21,20,19]。 然而,我们选择了3D模型的无模型表示,其中3D姿势只是一组相对于根节点的3D关节位置,就像几种最近的方法[24,23,8,9]。 这种表示更简单,更低维。

估计来自2D关节的3D姿势 Lee和Chen [32]是第一个使用二元决策树在给定骨骼长度的情况下从2D投影推断3D关节位置,其中每个分支对应于关节相对于其父母的两种可能状态。 Jiang [33]使用2D联合位置使用泰勒算法[34]估计一组假设3D姿势,并使用它们查询运动捕获数据的大型数据库以找到最近邻居。古普塔等人 [35], Chen和Ramanan [36]也使用这种想法,即使用检测到的2D姿势来查询样本姿势的大型数据库,以找到最近的最近邻3D姿势。在给定2D姿势的情况下估计3D关节位置的另一种常见方法是将相机姿势可变性与人体的固有变形分开,后者通过从大型数据库中学习基础3D姿势的过度完整字典来建模。动作捕捉数据[19,20,22,21,37]。有效的3D姿势由基础的稀疏线性组合定义,并且通过使用表示相机外部参数的变换矩阵变换点来定义。 Moreno-Nouguer [23]使用2D关节的成对距离矩阵来学习3D关节的距离矩阵,他们发现这与基础真相3D的刚性相似变换是不变的,并且使用了多维尺度(MDS)摆脱先例以排除歧义。 Martinez等人[24]设计了一个简单的完全连接的网络,每两个线性层有快捷连接,以估计相机坐标空间中相对于根节点的3D关节位置,并获得最先进的结果。他们的工作促使我们分离3D姿态估计的任务并设计网络以将2D姿势检测映射到3D姿势。

基于深度网络的方法 随着深度网络的成功,许多人设计了可以端到端训练的网络,直接从图像中预测3D姿势[7,8,6,14,9,15,10,38,39,40]。李等人[8]和Park等人[14]设计了CNN来联合预测2D和3D姿势。Mehta等[9]和Sun等人[15]使用转移学习将为2D人体姿势估计学习的知识转移到3D姿势估计的任务。Pavlakos等[7]扩展了堆叠沙漏网络[18],最初设计用于预测每个关节的2D热图,使其预测3D体积热图。 Tome等人[40]还扩展了一个称为卷积姿势机(CPM)的二维姿态估计器[17],使其预测三维姿态。 Rogesz和Schmid [39]和Varol等人[38]用合成图像和训练的CNN增强训练数据,以从真实图像预测3D姿势。孙等人[15]设计了一个统一的网络,可以在给定图像的同时回归2D和3D姿势。因此,在训练期间,没有任何GT 3D姿势的野外图像可以与具有地面真实3D姿势的数据组合。Fang等人使用类似的想法来利用野外图像来学习姿势结构。 [41]。他们学会了一种姿势语法,可以编码可能的人体姿势配置。

使用时间信息 由于单独估计每个帧的姿势导致对序列的不连贯和抖动的预测,许多方法试图利用时间信息[42,43,20,44,11]。 Andriluka等[42]使用逐个检测来分别关联在每个帧中检测到的2D姿势,并使用它们来检索3D姿势。特金等人[43]使用CNN首先对齐连续帧的边界框,以便图像中的人总是位于框的中心,然后在时空体积上密集地提取3D HOG特征,从中回归3D姿势中央框架。 Mehta等[11]实现了用于3D姿态估计的实时系统,其应用来自先前帧的2D和3D姿势的时间滤波以预测时间上一致的3D姿势。林等人[13]使用LSTM执行多阶段顺序细化以使用先前预测的2D姿势表示和3D姿势来预测3D姿势序列。我们专注于通过使用序列到序列网络的形式学习序列的时间上下文来预测时间上一致的3D姿势。与林等人不同。 [13]我们的方法不需要多个细化阶段。它更简单,需要更少的参数进行训练,从而大大提高了性能。

3 Our Approach

网络设计 我们在解码器侧设计了具有LSTM单元和残余连接的序列到序列网络,以在给定一系列2D关节位置的情况下预测3D姿势的时间相干序列。图2显示了我们网络的架构。 使用序列到序列网络的动机来自其在Sutskever等人的神经机器翻译(NMT)任务中的应用[1],他们的模型将一种语言的句子翻译成另一种语言的句子,例如英语到法语。在语言翻译模型中,输入和输出句子可以具有不同的长度。虽然我们的情况类似于NMT,但输入和输出序列总是具有相同的长度,而编码器和解码器的输入矢量具有不同的尺寸

我们网络的编码器侧采用一系列2D姿势,并在其最终LSTM单元的隐藏状态下将它们编码为固定大小的高维矢量。由于LSTM在记忆过去的事件和信息方面非常出色,因此编码矢量存储所有帧的2D姿势信息。解码器的初始状态由编码器的最终状态初始化。 hST ARTi令牌作为初始输入传递给解码器,在我们的例子中是一个1的向量,告诉它开始解码。给定在时间步骤t的3D姿势估计yt,每个解码器单元预测下一时间步骤yt + 1的3D姿势。请注意,输入序列的顺序与Sutskever等人推荐的相反[1]。解码器侧的快捷连接使得每个解码器单元估计来自前一帧的3D姿势中的扰动量,而不是必须估计每帧的实际3D姿势。正如He等人所建议的那样[25],这种映射更容易为网络学习。

我们使用层规范化[27]和循环丢失[28]来规范我们的网络。 Ba等人[27]提出了层标准化的想法,它在单个训练样例上估计从隐藏层的总计输入到神经元的归一化统计(平均值和标准偏差),以规范RNN单位。同样,Zaremba等人[28]提出了仅在具有一定概率p的网络的非循环连接上应用丢失的想法,同时始终保持循环连接的完整性,因为它们是循环单元记住过去信息所必需的。

损失函数 给定一系列2D关节位置作为输入,我们的网络预测相对于根节点(中央臀部)的3D关节位置序列。 我们预测相机坐标空间中的每个3D姿势,而不是像Martinez等人所建议的那样在任意全局帧中预测它们[24], 虽然更容易回归相机坐标空间中关节的3D坐标。

我们对预测的3D关节位置施加时间平滑约束,以确保一帧中每个关节的预测与其先前帧的差异不会太大。因此,我们在训练期间将关于时间的一阶导数的L2范数与时间相关联地添加到我们的损失函数中

根据经验,我们发现某些关节更难以准确估计,例如手腕,脚踝,肘部与其他人相比。为了解决这个问题,我们根据它们对整体误差的贡献将关节划分为三个不相交的躯干头肢体中部肢体终端我们观察到连接到躯干和头部的关节,例如与属于四肢的关节相比,臀部,肩部,颈部总是被高精度地预测,因此将它们放入固定的躯干头部。肢体的关节由于其高运动范围而总是更难以预测。根据我们的观察,肢体的末端关节,即手腕和脚踝比膝盖和肘部更难以准确预测。因此,我们将膝盖和肘部置于设定的肢体中间,并将终端关节置于设定的肢体末端。我们将每组关节的导数乘以不同的标量值,将最高值分配给终端关节集的导数以更多地惩罚它们

因此,我们的损失函数包括两个单独项的总和:N个不同3D关节位置序列的均方误差(MSE); 和N个3D关节位置序列的一阶导数的L2范数相对于时间的平均值,其中关节被分成三个不相交的集合。

4、 Experimental Evaluation

数据集和协议 我们对Human 3.6M [29]数据集和HumanEva数据集[45]进行定量评估。据我们所知,Human 3.6M是人类3D姿态估计的最大公开数据集。该数据集包含360万张7种不同专业演员的图像,这些演员可以进行15种日常活动,如散步,吃饭,坐着,打个电话。数据集由每个对应图像的2D和3D关节位置组成。使用4个不同的校准高分辨率相机捕获每个视频。除了2D和3D姿势地面实况之外,数据集还提供了边界框,相机参数,所有演员的身体比例以及每个演员的高分辨率身体扫描或网格的基础事实。另一方面,HumanEva是一个小得多的数据集。它主要用于衡量过去十年的前期工作。大多数方法报告两个不同动作和三个演员的结果。对于定性评估,我们使用了来自Youtube和Human3.6M数据集的一些视频。

我们遵循文献中使用的Human3.6M数据集的标准协议。我们使用对象1,5,6,7和8进行训练,对象9和11用于测试,并且在预测的3D姿势上评估误差而没有任何变换。我们将其称为协议#1。许多人用来评估他们的方法的另一种常用方法是使用刚体变换将预测的3D姿势与GT对齐,我们将此称为协议#2。 我们使用估计的和GT 3D姿势相对于根节点之间的每个关节的平均误差(以毫米为单位)作为误差度量。对于HumanEva数据集,我们按照先前方法使用的协议,在与地面实况数据进行严格对齐后,分别报告每个主题和操作的结果。

2D检测 我们微调了堆叠沙漏网络的模型[18],最初在MPII数据集[46](2D姿态估计的基准数据集)上训练,在人类3.6M数据集的图像上获得每个的2D姿态估计图片。我们使用随数据集提供的边界框信息首先计算图像中人物的中心,然后在人物上裁剪440×440区域并将其调整为256×256。我们对网络进行了250次迭代的微调。使用批量大小为3,学习率为2.5e – 4。

基线 由于以前的许多方法都是基于单帧预测,我们使用两个基线进行比较。为了表明我们的方法比天真的后处理好得多,我们在Martinez等人的3D姿势预测中应用了均值滤波器和中值滤波器[24]。 我们使用5帧的窗口大小和1的步长来应用滤波器。

数据预处理 我们通过减去平均值并除以标准偏差来标准化这三个:3D地面实况姿势,来自堆叠沙漏网络的噪声2D姿态估计和2D GT[18]。我们不预测根关节的3D位置,即中央髋关节,因此相对于根节点的全局位置将3D关节位置置于零中心。为了获得相机坐标空间中的3D构造的基本事实,使用给定的相机参数对全局坐标空间中的地面实况3D姿势应用逆刚体变换。为了生成训练和测试序列,我们将长度为T的滑动窗口翻译了一帧。因此,序列之间存在重叠。这为我们提供了更多的数据训练,这对于深度学习系统来说总是一个优势。在测试时间期间,我们最初预测序列的前T帧并将窗口滑动步长为1以使用先前帧预测下一帧。

训练细节 我们训练了我们的网络100个时期,每个时期完全通过整个人类3.6M数据集。我们使用Adam [47]优化器来训练网络,学习率为1e-5,每次迭代以指数方式衰减。 LSTM单元的权重由Xavier均匀初始化器[48]初始化。我们使用32的小批量批量,即32个序列。对于我们的大多数实验,我们使用序列长度为5,因为它允许更快的训练和高精度。我们尝试了不同的序列长度,发现序列长度为4,5和6,通常可以得到更好的结果,我们将在结果部分详细讨论。我们为所有动作类训练了一个模型。我们的代码在Tensorflow中实现。我们对训练集进行交叉验证,分别选择损失函数的超参数值α和β为1和5。类似地,使用交叉验证,时间一致性约束η,ρ和τ的三个超参数分别被设置为1,2.5和4。长度为5的序列的单个训练步骤大约仅需要34 ms,而NVIDIA Titan X GPU上的正向传递仅需要大约16 ms。因此,平均而言,我们的网络仅需约3.2毫秒来预测每帧的3D姿势。

4.1 Quantitative results

估计2D姿势的评估 如前所述,我们使用序列长度5来执行我们网络的定性和定量评估。协议#1下的Human3.6M数据集[29]的结果如表1所示。从表中我们观察到,我们的模型在协议#1下的每个动作类都达到了最低的误差,这与以前的许多最先进的方法不同。请注意,我们为所有动作类训练单个模型,这与为每个动作类训练模型的许多其他方法不同。我们的网络显着改善了Sun等人的最新成果[15]约12.1%(7.2毫米)。方案#2中的结果在计算误差之前使用刚体相似变换将预测与地面事实对齐,在表2中报告。我们的网络将报告的最新结果提高8.09%(通过3.7 mm)并且在协议#2中的每个动作也达到最低误差。从结果中,我们观察到跨多个序列利用时间信息的有效性。通过使用时间上下文的信息,我们的网络减少了估计3D关节位置的总体误差,尤其是在电话,照片,坐下和坐下等操作上,大多数先前的方法由于严重遮挡而无法很好地执行。我们还观察到,我们的方法在两个协议上都大大超过了两个基线。这表明我们的方法学习了序列的时间上下文并且预测了时间上一致的3D姿势,其中诸如时间平均和中值滤波器之类的朴素后处理技术未能进行帧式预测

像大多数以前的方法一样,我们在表5中的HumanEva [45]数据集的动作类Walking和Jogging上报告结果。我们在六个案例中的四个中获得了最低误差,并且两个动作的平均误差最低。 我们还获得了行动主题2的第二个最佳结果。 然而,HumanEva是一个比Human3.6M更小的数据集,同样的主题出现在训练和测试中。

二维基础事实的评估 正如Martinez等人所建议的那样[24],我们还发现2D关节位置越准确,3D姿势的估计越好。我们在GT 2D姿势上训练我们的模型,序列长度为5方案#1下的结果报告在表1中。从表中可以看出,我们的模型改善了Martinez等人的下限误差 [24]差不多有13.8%。

方案#2的地面实况2D联合输入的结果在表3中显示。当2D关节位置没有噪声时,我们的网络比Martinez等人的模型表现更好[24]和Moreno-Nouguer [23]。这些结果表明,即使检测无噪声,来自先前帧的时间一致性信息对于估计3D姿势的任务也是有价值的提示

对噪声的鲁棒性 我们通过训练我们的网络对2D GT 构成和测试不同级别的高斯噪声和来自堆叠的检测的输入,进行了一些实验来测试我们的模型对输入数据中不同噪声水平的容忍度-bourglass 2D姿势探测器[18]在MPII上预训练,以便我们可以与Martinez等人进行比较[24]。表3显示了我们的最终模型如何与Moreno-Nouguer [23]和Martinez等人的模型进行比较[24]。我们的网络比MorenoNouguer的模型更强大[23]。与Martinez等人进行比较时[24]当输入噪声水平较低时,我们的网络表现更好,即标准偏差小于或等于10。但是,对于更高水平的噪声和堆叠沙漏检测(平均误差为15像素)我们的网络表现稍差于Martinez等人[24]。我们希望将其原因归因于在训练期间施加的时间平滑性约束,其在整个序列上分配各个帧的误差。但是,它的有用性可以在定性结果中观察到(见图4和图5)。

烧蚀分析 为了显示每个组件的有用性和我们网络的设计决策,我们进行了烧蚀分析。我们遵循协议#1进行烧蚀分析,并为所有操作训练单个模型。结果报告在表4中。我们观察到结果的最大改进是由于解码器侧的残差连接,这与He等人的假设一致[25]。大量移除残余连接会使误差增加50.5 mm。当我们不在LSTM单元上应用层标准化时,误差增加9.2 mm。另一方面,当不执行压差时,误差会增加6.4 mm。当不使用层标准化和反复丢失时,结果会变差7.6毫米。虽然时间一致性约束似乎对我们网络的性能影响较小(仅0.8 mm),但它确保序列上的预测是平滑的和时间上一致的,这从我们的定性结果中可以看出,如图4图5。

不同序列长度的性能 到目前为止报告的结果是长度为5的输入和输出序列。我们进行了实验,以了解我们的网络如何针对2到10的不同序列长度执行。结果如图3所示。 可以看出,我们网络的性能对于不同长度的序列保持稳定。 即使序列长度为2,仅考虑前一帧和当前帧,我们的模型也会产生非常好的结果。 特别是对于长度4,5和6获得了最好的结果。然而,我们选择序列长度5来进行我们的实验,作为训练时间和准确度之间的折衷。

4.2 Qualitative Analysis

我们为Human3.6M和Youtube的一些视频提供定性结果。 我们将在Human3.6M数据集上训练的模型应用于从Youtube收集的一些视频,Youtube视频中每个人的边界框都是手动标记的,而对于Human3.6M,则使用GT边界框。 使用在Human3.6M数据上微调的堆叠沙漏模型检测2D姿势。 Youtube视频的定性结果显示在图4中,而human3.6M显示在图5中。在这些图中,在训练期间使用时间平滑约束的真正优势是显而易见的。对于图4,我们可以看到,即使2D姿态估计器中断或产生极其嘈杂的检测,我们的系统也可以通过利用时间一致性信息来恢复时间上相干的3D姿势。对于图5中的Human3.6M视频也可以找到类似的趋势,特别是对于坐标11的动作。我们在补充材料中提供了更多定性结果。

5 Conclusion

我们网络的定量和定性结果都显示了利用多个序列的时间信息来估计时间上平滑的3D姿势的有效性。到目前为止,我们的网络在Human3.6M数据集的所有15个动作类中都达到了最佳精度[29]。特别地,大多数先前的方法在具有高度遮挡的动作中挣扎,例如拍照,通电话,坐下和坐下。

我们的网络在这些行动上有明显更好的结果。此外,我们发现我们的网络对嘈杂的2D姿势非常稳健。虽然时间平滑约束的贡献在表4的烧蚀分析中并不明显,但其有效性在定性结果中清晰可见,特别是在挑战Youtube视频时(见图4)。我们的网络有效地展示了使用时间上下文信息的强大功能,这些信息是我们使用序列到序列网络实现的,可以在合理快速的时间内有效地进行训练。此外,我们的网络平均每帧3毫秒进行预测,这表明,鉴于2D姿态检测器是实时的,我们的网络可以应用于实时场景。

 

 




上一篇:
下一篇:

guodong

没有评论


你先离开吧:)



发表评论

电子邮件地址不会被公开。 必填项已用*标注