Mixed Reality Martial Arts Training using Real-time 3D Human Pose Forecasting with a RGB Camera(翻译二)
Implementation
本系统主要由两部分组成:单幅图像的三维姿态预测和虚拟现实中的模型拟合与碰撞检测。如图2所示,姿态预测由三个模块组成:二维姿态估计、二维姿态预测和三维姿态恢复。这三个模块在多线程计算的帮助下并行运行。
3D Pose Forecasting
二维姿态估计:二维人体姿态估计是单目三维姿态估计的中间步骤。首先使用边界盒跟踪器[22]将输入视频中的RGB帧裁剪到目标人。在那之后,框架被分成两个流。其中一个流是姿态估计网络,该网络由一个卷积残差网络组成,它对来自输入图片二维身体关节位置进行回归;另一种流是根据我们的算法计算出目标人周围的格点光流,并利用二维关节位置对关节光流进行平均,我们的算法将在下一节中介绍。将关节位置和关节光流传递到LSTM网络中进行预测,生成二维坐标对表示二维位姿。通过三维恢复网络,可以从二维关节位置获取深度属性,从而得到预测的三维关节位置。使用一个简单的骨架拟合技术,可以生成一个未来的三维模型,以供进一步使用。
我们参考了Dushyant等人的VNect的姿态估计系统,[22]来建立我们的姿态预测系统。他们使用定制的ResNet50[10]来允许卷积层回归2D关节数据,并在一个带注释的3D人体姿态数据集(如Human3.6M) 和mpi - info - 3dhp[21]数据集上进行训练。由于我们预测不需要三维节点,我们调整了网络来直接预测二维关节来代替生成位置图来进行深度估计;因此,**层与关节位置的数量呈线性回归关系。残余网络结构如图3左侧所示。
该网络的前一部分与ResNet50 步长为2 的前四层残差网络完全相同,具有以224×224大小的裁剪RGB图像为输入,经过一层池化后,将卷积的结果与线性回归完全连接,得到二维关节位置。在我们的方法中,我们只定义了17个人体的关键关节,不包括脚端和手端;因此,姿态估计的输出维数为17×2。输出的关节位置来自五个连续的帧(当前帧和前四个帧)然后结合计算光流数据一起传递到用于预测的LSTM层,这将在下一节中进行说明。
二维位姿预测:为了获得人体运动的丰富的时间特征,我们利用光流和关节位置数据在LSTMs上进行了回归。这种双流网络广泛应用于动作识别中,如由Feichtenhofer等人的TS-CNN[6]或Ma等人的TS-LSTM[19],在理解人类行为方面具有较高的准确性。然而,计算图像的完整光流并将其直接传递到LSTM网络中,即使图像的分辨率较低,也会导致较大的推断时间,这意味着在现有硬件条件下,使用双流LSTM很难实时估计姿态。
因此,我们开发了一种新型的稀疏光流,称为Keypoint Lattice-Optical Flow(KL-OF),它创建了几个点阵,并且只计算这些点阵(在我们的例子中是人类关节)关键点附近的光流。首先,我们确定每个点阵的空间距离d为224/d×224/d点阵的和,然后使用Lucas-Kanade算法[18]计算每个点的光流向量,将对应点(x,y)的向量定义为LK(x,y)。结果表明,与常规的稠密光流相比,光流的计算量至少减少了d2倍。由于二维关节估计是并行进行的,而且(在大多数情况下)比光流计算速度快,因此我们可以获得二维关节位置,并直接从它们之间的距离D j确定它们附近的晶格点。
在下面的方程中,(xj, yj)代表关节在2D图像中的位置,我们可以得到代表关节运动的平均光流Avg j如下:
其中LK(x i,y i)为具体的光矢量,d max为我们用来平均关节附近光流的最大距离。参数d和d max需要针对不同的应用进行调整,以获得更高的精度; 然而,更小的d和更大的d max会导致更多的计算。在我们的实验中,用裁剪过的大小为224*224的图像作为输入,我们使用d = 8和d max = 24,这意味着对于一个关节,最多有28个晶格光流向量被平均化,如图4所示。
3D姿态恢复:图3的后半部分是一个恢复二维关节位置到3D的残差线性网络。我们参考了Martinez等人的方法[20],他们提出了一种有效的三维姿态恢复网络。在LSTM网络输出预测的二维关节位置后,对输出坐标进行噪声滤波。即使我们尝试使用Kalman Filter [16]或Average Filter [23],噪声没有得到彻底的过滤,一些正确的节点也没有得到正确的过滤。经过观察数据,我们发现大部分的噪声都是基本误差,与正确的位置相比是完全错误的。因此,我们使用一个临界值过滤器,它只过滤那些远离身体中心超过70%高度的关节。过滤后的数据被传递到恢复网络进行3D构建。网络仅由两个线性层和两个残差块组成,即总共有六个线性层。图5显示了通过VNect[22]直接恢复估计的2D姿态的一些结果。模型使用Human3.6M [4, 13]数据集和CMU Panoptics VGA3D [14, 15]数据集来训练,2D关节从采用3D骨架的2D视频中捕获;正如Martinez等人在[20]研究中所提到的,该模型在实时定量上是有用的。
VR preparation
带着VR HMD的用户它可以显示原始的RGB视频和预测3D姿态然而,用户可能会对教练的位置感到困惑,因为2D视频总是显示在预测3D骨架的位置之后,而且很难判断是否发生打击因为原始的RGB视频只有2维。(如图9的中间图像所示)。
模型生成:为了让用户更好地理解虚拟环境中的位置并检测碰撞,我们决定建立一个从教练的实时三维姿态获得的网络的精确的教练的虚拟表示。最准确的方法是从不同的角度使用多个深度相机不断地构建点云,并根据点云创建模型。然而,这会产生大量的数据,很难实时处理。因此,我们决定使用三维模型来代表用户,并有一个相互碰撞的表面,这意味着一个高度精确的模型是必要的。在一场真实的体育比赛中测量一个特定的运动员是可能的,但是,由于计算时间的原因,很难实时测量。因此,我们建立了基于对应人的身体特征的三维人体模型,设计了一种从受试者RGB图像中提取所需特征的方法。我们的算法找到了身体轮廓,如图6第二部分所示,并计算了身体的参数。利用MakeHuman [2] API生成和调整模型,并在虚拟场景中实时更新。
碰撞检测:如果我们能够使用像素级的方式检测多个精确人体模型之间的碰撞,那将是最理想的的方式。然而,这实际上是不可能的正常使用,因为它需要较高的计算工作量。为了尽可能接近它,我们把我们的模型分成200多个部分,称为“hulls”,首先,每个hulls包含一个凸碰撞器,它几乎完美地匹配了它的部分。图7显示了如何将网格划分到hulls。从这里,它很容易检测两个hulls之间的碰撞,这基本上是凸多边形,但它不告诉确切的碰撞点。当碰撞发生时,所提供的唯一信息是哪个模型的hulls与另一个模型的hulls相撞。在本系统中,我们还生成了一个HMD模型来表示HMD,并且在虚拟环境中当教练的虚拟模型打击到HMD时,会检测到碰撞。
Experimentation
我们从两个不同的方面进行实验::定量评估和定性用户研究。在定量评估中,通过与包括我们在内的七种不同方法的比较,检验了该方法的实时性和预测精度。而定性用户研究则通过一些武术业余爱好者接受武术从业者的攻击来体验系统。
硬件:我们的网络模型是在TSUBAME 3.0超级计算机(Xeon E5-2680 v4 CPU x2, NVidia SXM2 P100 GPU x4)上使用Ten sorFlow进行训练的。所有的训练和实现都是使用tensorflow1.4.1、cuda 8.0和cudnn 5.1库。所有的实验都是在一台装有NVidia GeForce GTX 1060 6GB, Intel Core i7-7700HQ, and 8G内存的笔记本电脑上完成的。我们用来记录训练数据的摄像机是一台索尼DSC-QX10,用于实时实验的网络摄像头为Log- itech C270 720p 30fps。
数据集:我们使用了mpi - inf3d[21]和Human36M[4,13] 数据集用于预训练和验证。在姿态估计网络中,输入裁剪的原始图像和输出的三维关节位置按6:2:2的比例进行分割,分别用于训练、测试和验证。在我们的定量评价中,我们使用了10名(9男,1女)武术从业者和专业武术的来自互联网的拳击和踢的动作视频数据来评价系统的实际性能。这些数据也按8:2的比例分别进行微调和估计。
Quantitative Evaluation
实时性能:我们使用多线程程序处理图像(读取和裁剪)、姿态估计(包括预测)和可视化,这意味着我们的系统的计算时间只取决于计算量最大的部分,即姿态估计。
对于基线,因为之前很少有研究做原始RGB帧的实时姿态预测,我们首先将我们的方法与其他实时预测方法进行比较,例如Yuuki Horiuchi等人的五层神经网络[12]和正常卷积LSTM[29]。我们通过将位姿估计模型更改为VNect[10,22]或Kinect[24,31]来设计其他基线。此外,我们还添加了离线3DPF-Net[5]模型进行比较。
为了检验实时性,我们将系统中每张图像的平均推断/预测时间(以毫秒为单位)与其他方法进行了对比,如表2所示.。注意,Horiuchi等人的神经网络的输入维数为是10帧数据,是我们的系统和LSTM方法的两倍,他们也使用重心(COG)作为网络的输入。此外,尽管Kinect和VNect分别可以生成24和21个关节,但我们只使用与系统中相同的17个关节进行输入。
从结果中很容易看出离线网络3dpf-NET与其它方法相比,计算量要大2个数量级。与其他实时模型相比,使用Kinect的方法似乎有更好的性能,因为它使用了RGB-D相机用来姿态估计。卷积LSTM比Horiuchi等人的神经网络慢约20ms,而我们的方法性能接近平均水平。
然而,尽管Kinect有硬件依赖性,我们的方法并没有远远落后于使用VNect进行姿态估计的神经网络,帧速率约为17帧每秒,这在没有高端图形处理单元的笔记本上是可以接受的。
姿态预测准确性:为了进行姿态预测,我们使用不同的方法进行实验,预测未来姿态的不同时间步长。为了评估准确性,我们将我们的方法与所有离线方法和实时方法进行了比较。我们还导入了Chao等人设计的称为最近邻(Nearest Neighbor, NN)的基线,它使用最近的前一帧来表示预测帧的预测结果。我们使用实际的数据集对所有网络进行了微调,并使用剩下的数据进行估计。
表3为提前15帧的实际姿态预测精度测试实验结果。我们使用[email protected]评价[1]测量,它计算出使用50%的头段长度匹配阈值的正确关键点的百分比。这些视频中关节位置的地面真值是由作为公平比较的基础架构ResNet100[10]回归的2D热图计算得到的。计算均方根误差(RMSE)来显示预测数据的偏差。表1为提前15个时间步长的具体关节的RMSE(计算头、颈、胸、脊柱、肩、肘、腕、髋、膝、踝、躯干)。与3DPF-Net离线预测方法相比,除去我们的方法外,3DPF-Net离线法的准确率最高。
综上所述,我们发现我们的方法在PCK评估中远远优于其他实时方法,以及在拳击上有70.6%准确率的3DPF-Net离线方法和在特定关节位置的预测中,本系统的平均误差也低于3DPF-NET。特别是手腕和脚踝的位置比3DPF-Net要精确得多,这使得在武术运动中更为重要。
User Study
我们进行了一项用户研究,以探索我们的系统的可用性和提出的虚拟表示的性能参照与普通原始RGB视频中来说。通过用户研究,我们计划回答以下问题:
1. 用户会注意到我们的系统和基于深度相机的动作捕捉技术在姿态估计精度上的差异吗?
2. 用户将如何理解预测的姿势有或没有虚拟表示。
Method: 邀请武术爱好者10名(男7名,女3名)和一名从业者作为教练进行实验。所有的业余受试者都被告知要戴上VR头盔,并被教练随意拳打脚踢。一开始,研究对象观看的是来自相机的没有预测的原始RGB视频。然后,在原始视频中显示预测的骨架。最后,一切都变成了虚拟表示,而用户只能看到虚拟模型和教练的预测骨架。这三个步骤是做了两次使用两个不同的运动捕捉系统,我们的基于RGB相机的方法和Kinect V2摄像机动作捕捉系统,为了比较,并没有告诉受试者。总之,研究对象可分为三种可视化类型:正常RGB视图、带有预测视图的正常RGB和带有预测视图的虚拟视图;2 种运动捕捉方法:基于rgb和基于深度,意味着共6种不同情况。
在每一种情况下,受试者和教练都彼此相距1米,而距离在VR环境校准至0.5m,如图8所示。然后, 训练者被要求假装从远程攻击目标而不做任何佯攻,这意味着在实验对象看来,教练似乎击中了实验对象,因为他们比实际距离更近,实验对象被告知要尽快躲避攻击。这样就可以建立一个安全的训练系统,用户可以从碰撞检测系统中得到碰撞反馈,从而知道自己是否被击中。
Measurement: 我们从视频中记录了每次攻击的响应时间(从教练开始攻击到学生开始躲避的时间),并计算了三种可视化系统的平均响应时间。在所有的实验之后,用户首先被问及他/她是否注意到我们的系统和Kinect系统之间的准确性差异。之后,要求用户说出最适合进行武术训练的可视化系统,并完成一份6分的问卷(1 =非常不同意到6 =非常同意),共6个问题(如图10所示)来测量受试者的印象。
Result: 没有预测RGB视图的平均响应时间为0.62s (SD=0.151), 而带有预测和虚拟视图的RGB的响应时间分别为0.42s(SD = 0.120) 和0.41s (SD = 0.118)。并没有告诉我们使用的是哪种运动捕捉系统,10名受试者,5名认为两种系统的姿势没有区别;3人认为Kinect系统的准确率更高,2人选择了我们的系统。在可视化系统的选择上,6名被选择了具有预测功能的虚拟系统,4名被试选择了具有预测功能的RGB系统,但没有人认为只有RGB视图系统适合武术训练可视化。
问卷调查结果如图11所示,我们按照图10中的分类进行分析:
- 预测- Q1和Q4的平均得分显示出对被试的预测效果,而带预测的RGB和带预测和虚拟的RGB的得分明显高于正常RGB。当将这两种方法在预测方面相比较时,虚拟方法在预测攻击类型方面的得分平均较高。
- 3D 位置- Q2的均值表示受试者是否理解在虚拟中教练的三维位置,结果显示随着虚拟内容的增加,受试者对虚拟教练三维位置的理解逐渐增加。
- 可视化-武术训练的可视化可以从Q3和Q5中评估。而在Q3中,带有预测方法的虚拟机的性能明显优于其他两种方法,这意味着用户可以更好地理解虚拟机中的可视化。
Discussion
从定量评价实验中可以看出,我们的系统在推理时间上并没有落后于其他最先进的实时方法,与3DPF-Net等离线方法相比,具有同等甚至更好的准确性。用户研究还表明,用户没有注意到我们基于rgb的方法和基于Kinect深度相机的方法在姿态估计精度上的差异,这意味着我们基于rgb的方法有可能取代基于Kinect的姿态预测方法,因为它具有广泛的可用性。用户研究结果表明:本系统在武术训练可视化方面比常规的RGB可视化具有更强的适应性,预测可以帮助用户更快的躲开教练的攻击,特别是虚拟方法在预测教练攻击类型方面更有优势。虚拟方法也支持用户对对手三维位置的理解。总体而言,RGB预测方法和虚拟预测方法都为武术训练提供了良好的可视化效果,而虚拟方法在三维位置可视化和支持用户理解方面表现得更好。但是,我们的系统还有很多需要进一步改进的地方:
在这篇文章中,我们只做了拳击的实验,尽管有很多类型的武术。虽然收集数据集和邀请各类武术专业运动员比较困难,但我们会在今后的工作中尽量将数据集扩展到更多的武术领域,尽可能多的进行研究。
在定量评价中,我们主要侧重于不同算法的推理时间和准确性。如果我们能分析attice point optical flow的一些超参数比如d和噪声滤波器的阈值,我们的系统将会更好。
因为我们的3D构建方法是基于位置的,不考虑骨骼旋转,所以我们使用逆kinematic方法来控制模型。然而,很明显,位置数据是不够的武术估计。我们正在考虑建立一个基于方位的3D姿态估计通过将人体分成不同的部分,并学习骨骼的旋转,不仅与他们的母亲关节有关,而且与整个身体部分有关。
在用户研究中,我们发现普通RGB相机(30 fps)的帧率不足以捕捉一些高速运动,比如专业武术运动员的一脚。将摄像头调到高速是有可能的,但由于网络推理时间较慢,系统帧率不会明显提高。
目前,我们的系统只面向一个人。设计面向多人的网络是可行的,但会导致较大的计算量。我们也可以在他们之间放置两个摄像头,然后估计他们的姿势,但是在这种情况下,系统不能学习人之间的相互作用,这在武术中是非常重要的。因此,我们尝试使用一个全方位相机从各个方向来捕捉人类的姿态,将网络改为并行计算,这样就可以使用多个gpu来估计,我们也相信随着图形单元的发展,更快的硬件也可以解决这个问题。
Conclusions
在这篇论文中,我们提出了一种基于深度学习的RGB图像实时人体姿态预测混合现实武术训练系统。
我们的系统首先从原始的RGB帧中利用残差CNN网络估计教练的2D关节位置;然后将这些位置用作LSTM层的输入,以预测相应的未来2D位置。为了提高运动时间特性的学习量,采用一种特殊的点阵光流算法进行联合光流矢量估计。最后,我们利用一个简单的线性网络将二维位姿重建为三维位姿。骨架拟合后,根据原始RGB图像建立预测的三维模型用于虚拟可视化。因此,武术初学者可以佩戴VR HMD来查看教练姿势的3D预测。我们的大量实验表明,我们的方法是实时的,具有同等精度或优于一些离线方法和使用深度红外相机的方法。虽然一些进一步的研究,如精度和摄像机FPS问题有待完成,用户研究的结果表明,我们的方法作为武术训练支持系统的可能性。