如何使用RepNet进行3D人体姿态估计
2019-06-11编辑部编译
编辑部编译
人体姿态估计是当前计算机视觉领域的热门研究问题。最近,汉诺威莱布尼兹大学的教授提出了RepNet,一种用于3D人体姿态估计的对抗重投影网络的弱监督训练方法。这种方法具有良好的性能表现,可以很好地进行单幅图像中的3D人体姿态估计。
本文研究了单幅图像中的3D人体姿态估计问题。长期以来,人类骨骼都是通过满足重投影误差(reprojection error)进行参数化和适合性观察的,但是现在研究人员直接使用神经网络从观察结果中推断出3D姿态。然而,这些方法大多忽略了必须满足重投影约束的事实,并且对过度拟合非常敏感。我们通过忽略2D到3D的对应关系来解决过度拟合问题。这有效地避免了对训练数据的简单记忆并且使得我们能够进行弱监督训练。我们所提出的重投影网络(RepNet)的一部分使用对抗训练方法来学习从2D姿态分布到3D姿态分布的映射,而该网络的另一部分对摄相机中的结果进行估计。这使得我们能够定义一个网络层,该网络层将已估计的3D姿态重投影到2D网络层,从而产生一个重投影损失函数。
实验表明,RepNet可以很好地泛化到未知数据中,并且当应用于未知数据时,其性能表现要优于当前最先进的方法。此外,这种实施在标准台式PC上就可以实时运行。
介绍
基于单眼图像(monocular images)的人体姿态估计是计算机视觉领域中的热门研究领域,在电影、医学、监控或人机交互等领域中有着广泛的应用。当前的一些研究方法能够从高质量的单眼图像中推断出3D人体姿态。但是这些方法大多数使用的是一种通过严格分配,从输入到输出数据进行直接训练的神经网络。这导致对于相似的数据而言性能表现良好,但通常不能够很好地泛化到未知的运动和摄相机位置中。本文提出使用一种通过弱监督对抗性学习方法进行训练的神经网络来解决该问题。我们训练一个广泛用于生成对抗网络(GAN)的鉴别器网络来学习3D人体姿态分布,从而缓和了训练数据中每个图像都具有一个特定3D姿态的假设。第二个神经网络学习从检测到的2D关键点分布到3D关键点分布的映射,其中,根据鉴别器网络的鉴别结果,所述3D关键点都是有效的3D人体姿态。从生成对抗网络的角度来看,可以将其看做生成器网络。为了使生成器网络生成与2D观测结果相匹配的3D姿态,我们建议添加第三个神经网络,该网络能够根据输入数据预测出摄像机参数。推断出的摄相机参数用于将估计的3D姿态重新投影回2D,因此将该框架命名为重投影网络(RepNet)。图2展示了该网络的概观。此外,受Wandt等人提出的运动链空间(Kinematic chain space,KCS)的启发,为了进一步加强运动学约束(kinematic constraints),我们建议采用一种易于计算和实现的描述符来描述关节长度和角度。
与其他研究相比,我们提出的方法对特定数据集的过度拟合具有很强的鲁棒性。我们的实验加强了这种说法,因为该网络甚至可以推断出不在训练集中的人体姿态和摄像机位置。即使有强烈的变形或不寻常的摄相机姿态,我们的网络也能取得良好的性能表现,如图1中所展示的攀岩图像。这使得我们得出一个结论:鉴别器网络并没有记住训练集中所有的姿态,但是学会了各种有意义的、可能的人类姿态。正如我们将展示的那样,将KCS作为一层包含在鉴别器网络中,对于鉴别器的质量起着至关重要的作用。
我们在三个数据集Human3.6M、MPI INF-3DHP和Leeds Sports Pose(LSP)上对该方法进行评估。在所有数据集上,我们的方法都获得了当前最先进的性能表现,甚至优于大多数监督方法。此外,我们所提出的网络可以在标准硬件上以小于0.1毫秒的时间预测人体姿态,这使得我们能够将其与最先进的2D关节检测器(例如OpenPose)组合构建实时姿态估计系统。总而言之,我们主要的成果就是:
·提出一种对抗训练方法,用于训练基于2D重投影的3D人体姿态估计神经网络(RepNet)。
·在没有2D-3D对应关系和未知摄像机的情况下进行弱监督训练。
·同时进行3D骨骼关键点和摄像机姿态估计。
·使用一种神经网络层对包括骨骼长度和关节角度信息的运动链表征进行编码。
·提出一种姿态回归网络,它可以很好地泛化到未知人体姿态和摄像机中。
相关研究
与我们的研究最相关的方法大致可分为两类。第一类包括基于优化的方法,其中3D人体模型变形使其满足重投影误差。第二类包含尝试直接从图像或检测到的关键点中估计3D姿态的最新方法。
重投影误差优化
早期关于单个图像的人体姿态估计的研究可以追溯到1985年Lee和Chen的相关研究。他们使用已知的骨骼长度和二叉决策树(a binary decision tree)来重建人体姿态。一些学者提出在大型姿态数据库中搜索那些能够最好地解释2D观测结果的3D姿态。为了压缩这些数据库中的知识,一种广泛应用的方法是使用主成分分析(Principal Component Analysis,PCA)或另一种字典学习方法,来学习3D人类姿态的过完备字典(overcomplete dictionary)。通常,通过主成分分析获得的最佳基的线性组合是经过优化了的。为了约束优化,我们提出了几个先验条件,例如关节角度限制、物理合理性或人体测量正则化。其他的研究是在视频序列中加强实现时间一致性或使用附加的传感器。
使用神经网络的直接推断
最近,许多研究人员专注于使用深度神经网络直接从图像数据或2D检测中回归3D姿态。一些研究试图构建一个可以从图像数据中提取3D姿态的端到端系统。Moreno-Noguer学习了一个从2D到3D距离矩阵的映射。Martinez等人在2D关节检测上训练了一个深度神经网络从而直接推断出3D人体姿态,训练后的网络在基准数据集Human3.6M上取得了非常优异的性能表现。但是该网络的参数要远远多于Human3.6M训练集中的姿态数,这表明训练集中的记忆非常简单。虽然我们所提出的姿态估计网络具有相似数量的参数,但实验表明,我们的对抗训练方法可以避免过度拟合。Hossain等人通过对人类姿态序列使用循环神经网络对该方法進行了扩展。
方法
该方法的基本思想是通过学习一个从输入分布(2D姿态)到输出分布(3D姿态)的映射,从2D观察结果中回归3D姿态。
在标准GAN训练中,生成器网络学习一个从输入分布到输出分布的映射,且该映射由另一个称为鉴别器网络的神经网络进行评定。鉴别器经过训练能够区分数据库中的真实样本和生成器网络创建的样本。当对生成器进行训练,以创建可以让鉴别器预测为真实样本的样本时,鉴别器的参数是固定的。由于生成器和鉴别器相互竞争,所以对它们进行交替训练,直到它们都收敛到最小值。
在标准GAN训练中,输入是从高斯或均匀分布中进行采样的。在这里,我们假设输入来自于人体姿态的2D观察分布。采用Wasserstein GAN命名,我们将其称之为鉴别器批评家。在没有关于摄像机投影知识的情况下,该网络可以生成随机但可行的人类3D姿态。但是这些3D姿态很可能是输入2D观察结果中不正确的3D重构。为了获得相匹配的2D和3D姿态,我们提出了一种基于重投影层的摄像机估计网络,如图2所示,该网络由三部分组成:(1)姿态和摄像机估计网络、(2)在对抗训练中使用的批评家,以及(3)重投影部分。如上所述,批评家和完整的对抗模型进行交替训练。
实验
我们在Human3.6M、MPI INF-3DHP和LSP这三个数据集进行了实验。Human3.6M是最大的基准数据集,包含与2D和3D对应关系在时间上对齐的图像。除非另有说明,我们使用Human3.6M的训练集对网络进行训练。为了显示未知数据的定量结果,我们在MPIINF-3DHP上对我们的方法进行评估。对于不常见的姿态和摄像机角度,可将主观结果显示在LSP上。在大多数实验中,为了匹配大多数可比较的方法,我们使用叠加沙漏网络(stacked hourglass networks)对输入图像进行2D联合估计。
Human3.6M上的定量评估
在以往的研究中,Human3.6M数据集上有两个主要的评估方案,对受试者1、5、6、7、8进行训练,对受试者9、11进行测试。两种协议都计算每个关节的平均定位误差(MPJPE),即重构和真实关节坐标之间的平均欧氏距离(euclidean distance)。Protocol-I直接计算MPJPE,而Protocol-II首先在姿态之间采用一个刚性对齐。对于一个序列,将MPJPE求和并除以帧数。
表1显示了采用Protocol-I(没有采用刚性对齐)的重构结果。可以利用相机回归网络估计的相机矩阵,直接计算出姿态相对于摄像机的旋转。在数据集的整个框架中对重构的姿态进行旋转从而给出最终的3D姿态。表2显示了在计算误差之前使用刚性对齐的Protocol-II的重构结果。RepNet-noKCS这行在不使用KCS层的情况下显示出误差。可以看出,鉴别器中的附加KCS层显著地改善了姿态估计。我们意识到这样一个事实,即我们的方法在Human3.6M上的性能表现并没有胜过监督方法。相反,我们展示了即使我们忽略2D-3D对应关系,并对网络进行弱监督,我们也可以获得与最先进的监督方法相媲美的结果,甚至要比大多数方法更好。与弱监督方法相比,我们在Protocol-II上的表现优于最佳方法约30%。对于主观评估,图4展示了每个运动的第1500帧。为了可比性,我们从相同视角的每个运动序列中显示相同的帧。即使是很难的姿态,例如盘腿坐着,也能进行很好的重构。
在我们看来,虽然在Human3.6M应用广泛,但欧氏距离并不是评估人体姿态估计系统性能表现的唯一指标。由于有一些单帧不能进行很好的重构,并且可以被视为异常值,所以我们还计算了MPJPE在所有帧上的中值。此外,我们对表3中所定义的正确定位关键点(PCK3D)的百分比进行了计算。
MPI-INF-3DHP上的定量评估
我们的主要贡献是提出一种神经网络,它可以在保持着一个有意义的3D姿态的同时推断出未知的人体姿态。我们将该方法与几种最先进的方法进行了比较,表4显示了在不同指标下的评估结果。没有在这个特定数据集上对我们的模型进行训练的情况下,我们的模型的性能表现要明显优于其他所有方法,甚至要优于一些在MPI-INF-3DHP训练集上训练过的方法,这显示出我们的网络具有良好的泛化能力。RepNet 3DHP这行展示的是在MPI-INF-3DHP训练集上进行训练的结果。与在Human3.6M上进行训练的网络相比,3DPCK和AUC的性能表现只有微小的改进,甚至,MPJPE的性能表现还存在微小退化。这表明批评家网络收敛于两种训练集中可行的人体姿态的类似分布。
结论
本文介绍了RepNet,一种用于3D人体姿态估计的神经网络的弱监督训练方法,该方法通过单个图像中的2D特征点检测来推断3D姿态。我们提出使用一个附加的摄像机估计网络和全新的重投影层,从而将估计的3D姿态投影回2D。通过利用神经网络研究中最先进的技术,如改进的Wasserstein GAN和运动链空间,我们能够开发出一种不需要2D到3D对应关系的弱监督训练程序。该方法不仅优于先前的弱监督方法,而且还避免了网络对有限数量训练数据的过度拟合。我们在基准数据集Human3.6M上实现了当前最先进的性能表现,即使是与大多数监督方法相比也是如此。使用在Human3.6M上训练过的网络来预测MPI INF-3DHP数据集中未知数据的3D姿态,显示出对所有其他方法的改进。我们还在LSP数据集进行了一个主观评估,结果显示,即使是对于那些具有不常见姿态和视角的图像来说,我们也实现了良好的重構效果。