基于空洞转置卷积神经网络的人体骨骼关键点检测算法研究

2022-05-23 08:18彭睿孜施惠尹
智能物联技术 2022年1期
关键词:关键点姿态卷积

彭睿孜,施惠尹,柳 毅

(杭州电子科技大学,浙江 杭州 310018)

0 引言

人体姿态估计是利用传感器(摄像头)捕获到的数据进行人体姿态分析的一种技术,可以辅助医生定量分析患者的动作数据,在康复训练和身体恢复等医学领域有着极高的应用价值。早期的人体姿态估计方法利用卷积神经网络(Convolutional Neural Network,CNN) 提取人体骨骼关键点特征来表征姿态信息,以端到端的特征表示并将关键点的空间位置关系隐式建模。 该类方法输入多为一张图像,输出为带有空间信息的张量,该张量的通道数为人体关键点个数。2014 年,A.Jain 等首次成功地引入CNN 来解决单人姿态估计问题[1]。 2016 年,卡内基梅隆大学Yaser Sheikh 研究组提出经典的Convolutional Pose Machine (CPM),利用端到端表示特征并对关键点的空间位置关系建模,CPM 利用热力图作为预测的关键点输出结果,对2D 姿态估计有很强的表征能力[2]。同年,姿态估计领域迎来了MPII 数据集,MPII 把数据量级提升到W 级别。2016 年7 月,密歇根大学Deng Jia 研究组[3]提出Hourgalss,其网络结构较CPM 更加简单优美,由重复堆叠的U 型沙漏结构组成,在MPII 数据集上的表现有明显提升。 2018 年,Yaser Sheikh 研究组提出基于卷积神经网络和监督学习的OpenPose 来实现人体动作、面部表情、手指运动等姿态估计。

随着姿态估计的研究不断深入,基于3D 检测的人体姿态估计方法被提出。 2017 年,Deva Ramanan 提出了3D Human Pose Matching, 先基于CPM 算法进行2D 人体姿态估计,然后基于k 近邻算法匹配最优数据, 其3D 匹配方法利用人体3D骨架投射到2D 空间并与训练数据对比。 同年,Pavlakos G 等人提出了Coarse-to-Fine Volumetric Prediction, 该研究受到2D 姿态估计中的Stacked Hourglass 结构启发, 将2D 姿态中的做法沿用到3D 中来。 Martinez J 等人[4]提出了A Simple Yet Effective Baseline, 直接使用基于Hourglass 的2D姿态并通过神经网络回归3D 姿态。 该方法基于获得的2D 骨架位置,后续接入两个全连接层直接回归3D 坐标点。 但上述方法主要存在以下不足:首先,由于单张2D 图像中缺乏空间纵深信息,往往仅在2D 人体姿态估计任务中表现良好, 在3D 人体姿态估计中则难以准确估计深度信息; 其次,由于LSTM 存在梯度消失或者梯度爆炸问题,难以在时间序列上有效捕捉长期信息,不利于时序信息到空间纵深信息的隐式建模; 最后,RNN(Recurrent Neural Network)和LSTM(Long Short-Term Memory)不能在时间序列上进行并行化加速,对图形处理器(Graphics Processing Unit,GPU)亲和性低于卷积运算操作。

因此,针对动作识别、医疗辅助和运动分析等实际应用场景,迫切需要设计一种既能有效地隐式建模视频时序信息与人体姿态的纵深信息,又能在GPU 平台上并行处理时序信息的人体姿态估计方法。本文研究基于空洞转置卷积神经网络的骨骼关键点检测方法,这个方法分为两大核心模块。第一,针对患者的2D 运动视频数据输入后进行3D 空间重构,并将其关键点进行逐帧标注,提出了Dilated and Transpose Convolution Hourglass (DTCH)算法。其中Dilated Convolution(DC)用于解决在时间序列上姿态信息提取感受野较小等问题; 而Transpose Convolution(TC)用于解决卷积过程中特征图过小、分辨率低等问题;再综合DC 和TC,训练Hourglass型的神经网络,加深网络结构,提高模型非线性表现能力。 第二,针对患者康复运动数据处理后对其动作的完成评价和改进意见的需求, 提出DTW(Dynamic Time Warping)算法。 通过卡尔曼滤波算法[5]和动态时间规整算法,解决患者康复运动姿态和标注数据库的视频匹配时时间上的不统一,提高患者运动时姿态匹配的准确性,并在得到匹配结果后分析患者骨骼关键点和标准动作骨骼关键点的距离差距,输出反馈结果。 如图1 所示为本文算法总体框架。

1 基于DTCH 的人体姿态估计方法

DTCH 方法利用Dilated Convolution 空洞卷积操作,卷积算子作为特征提取器[6],下采样提取时序信息,随后利用转置卷积上采样去除时序信息的噪声,在时间维度上充分提取长程信息,以便得到稳定的3D 姿态估计结果。如在图2 的Hourglass 信息流结构中,其中DC 代表Dilated Convolution。 该图以时间维度上感受野为例,从时间维度上提取稳定的特征信息后, 将2D 姿态的3D 姿态可行解限制到5 种,并进一步利用时间信息提取特征,将解空间限制至1 种,即得到中间层的预测结果。

随后将初步的回归结果送入Transpose Convolution(TC)层,由于前面得到的解空间为1 种,但是有较大误差,因此各TC 层则是尝试将之前的信息还原,以便提供更多的中间层监督。 DTCH 网络结构如图3 所示。 其中图3 中所示的参数ks 代表kernel size 卷积核尺寸;d 代表dilation 卷积核的空洞率。图中左边浅灰色的层为Dilation Convolution,右边深灰色的层为Transpose Convolution, 各层在执行卷积操作后还使用了BatchNorm 批标准化和Swish 激活函数。

图4 展示的是DTCH 方法的一个实例, 对于输入的2D 姿态总共17 个关键点, 将输入看作是1D长度为34 的关键点序列,即34=17×2。 在时间维度上堆叠后形成一张1×34×243 的特征图,其特征图通道数为1。 模型的输入数据为Channel=2 (depth),Joints=17(height),Receptive field= 243 (width)。 将时序上各关键点视作一张2×17×243 的特征图,DTCH 利用该特征图预测3D 姿态的信息。经过多个DTCH 方法计算后得到输入2D 姿态序列在中间时刻的3D 姿态的信息。 DTCH 方法的伪代码见表1。

表1 DTCH 方法伪代码Table 1 DTCH Method pseudocode

2 基于DTW 算法的姿态校准评价

2.1 基于卡尔曼滤波算法的降噪处理

通过DTCH 方法获得时间序列的关键点检测数据后,由于各种噪声,这些数据不一定准确[7]。 因此,本文采用卡尔曼滤波算法来进行降噪,减少由于噪声产生的关键点识别错误, 从而实现稳定跟踪,保证后续动作评价的准确性。 卡尔曼滤波算法假设模型是一个由白噪声所激发的线性、离散和有限维动态(可以时变)系统,它可以用递归的方法解决线性滤波问题。 只需要当前k 时刻的测量值(这里设定k 为离散时间值,例如k=1ms,2ms,…)数据和前一个采样周期的估计值就能够进行状态估计,可以通过整合k-1 时刻的最优估计值以及k 时刻的检测值进行动态调整,以此来达到减少数据误差的目的。 卡尔曼滤波算法的核心公式为:

2.2 DTW 算法实现标准数据库与用户上传视频动作匹配

在患者上肢康复运动完成后,通过技术手段自动将提取的动作数据与存储在数据库中的专家标准动作数据进行匹配。由于患者各部位肢体尺寸因人而异, 而且完成整套动作的时间也很难保持一致,故直接采用传统的欧氏距离模板匹配法很难实现动作评价。 因此,本文采用能对两个数据进行拉伸和收缩以进行最佳匹配的动态时间规整(Dynamic Time Warping,DTW)算法进行患者各部位肢体数据与标准动作之间的匹配。 动态时间规整DTW 算法的基本步骤为: 首先计算两个序列各个点之间的距离矩阵M, 然后寻找一条从矩阵左上角到右下角的路径,使得路径上的元素和最小。

如图5 所示, 例如对于同一时间轴,standard代表标准答案的数据流特征,test1 代表用户的肢体数据流,虽然时间上产生了偏移,但是其体现出的特征大体符合标准答案的要求;test2 代表一组完全随机的肢体动作特征。使用欧氏距离模板计算数据,算出test1 与标准答案的偏差为4.98,test2 的偏差是3.37; 采用DTW 算法得出test1 的偏差为4.53,test2 的偏差为10.24, 这证明DTW 算法动作识别匹配的有效性。 本技术将检测到的患者17 个关键点的三维坐标作为DTW 算法匹配的基础数据,通过对17 个骨骼关键点的DTW 距离值进行累加,从而得到全身的DTW 距离值,用于后续的评价反馈。

3 算法实验

3.1 评分标准

本文采用国际通用的Brunnstrom 运动功能评定和Fugl-Meyer 评分指标,利用DTW 距离值对患者肢体康复动作的标准程度进行评估打分,从而面向患者进行信息反馈。 同时,医生可以基于该技术的评价分数对患者的康复状态进行有效评估,从而对患者进行下一阶段更为合适的康复运动训练。

Fugl-Meyer 评估(FMA)量表是评估中风患者感觉运动障碍的指标,1975 年由Axel Fugl-Meyer及其同事提出,用于量化康复策略的疗效,如表2所示为Fugl-Meyer 评估量表的部分内容。 该评价指标的出现推动了康复治疗领域的各种标准化评估方法, 在运动康复领域非常具有权威性。 而Brunnstrom 运动功能评定标准由瑞典理疗师Signe Brunnstrom 在1970 年提出, 用于评定患者的运动功能情况。

表2 Fugl-Meyer 评估量表部分内容Table 2 Part of Fugl-Meyer Assessment Scale

本文将根据相应关节连线的角度值和位置范围值对患者的运动数据进行实时评分。 数据采集方法中利用余弦公式计算相联系的3 个关节点连线的夹角。 同时,本技术内置运动数据库,患者依照技术指示进行康复训练, 根据医师需求, 可选Brunnstrom标准或Fugl-Meyer 标准对患者动作进行评分。 表3展示的是本文准备的部分动作数据情况。

表3 实验中部分动作数据情况Table 3 Part of the action data in experiment project

3.2 实验与分析

动作评估在捕捉数据集Human3.6M 上进行。Human3.6M 包含11 个主题、360 万个视频帧,其中7 个带有3D 姿势注释。 每个受试者执行15 个动作,这些动作使用四个同步摄像机以50 Hz 的频率记录下来。 在文献[8~14]研究的基础上,我们采用17 关节骨架,对五个主题(S1、S5、S6、S7 和S8)进行训练,并在两个主题(S9 和S11)进行测试。 表4是以毫米为单位的平均每个关节位置误差(Mean Per Joint Position Error,MPJPE), 它是预测关节位置和真实关节位置之间的平均欧氏距离。

表4 本实验与相关工作的MPJPE 对比[16]Table 4 Compare of MPJPE on Human3.6M[16]

上述实验有B=4 个块和两个评估协议的243个输入帧的感受野。该模型的平均误差低于两种协议下的所有其他方法,并且不依赖于其他数据。

如我们的模型优于文献[16]使用Ground-Truth Boxes 的最佳结果6 mm,相当于减少11%的误差。 在6 核12 线程8GB 的主机上对算法进行检验,490 帧训练数据所需的推理时间为1′45′′,渲染时间为1′15′′,1097 帧数据推理用时为16′34′′,渲染用时为1′25′′,相较于同等参数量和计算量的模型更占优势。

通过数据验证和比较, 证明本文中提出的DTHC 和DTW 方法的可行性以及优势,可以为提高和完善人体骨骼姿势估计的正确性研究提供参考。

4 结语

本文提出基于空洞转置卷积的沙漏结构模型骨骼关键点检测方法(Dilatd and Transpose Convolution Hourglass,DTCH)。 利用Dilated Convolution下采样操作卷积算子作为特征提取器获得时间序列的关键点检测数据,采用卡尔曼滤波算法进行降噪提高数据准确性, 然后采用动态时间规整(Dynamic Time Warping,DTW)算法对患者各部位肢体数据与评价指标—国际通用的Brunnstrom 运动功能评定和Fugl-Meyer 评分指标之间的匹配进行评估、打分以及反馈。 实验表明,DTCH 方法既能有效地隐式建模视频时序信息与人体姿态的纵深信息,又能在GPU 等运算平台上并行处理时序信息,可精确高效地实现3D 人体姿态估计。

猜你喜欢
关键点姿态卷积
论建筑工程管理关键点
肉兔育肥抓好七个关键点
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
建筑设计中的防火技术关键点
攀爬的姿态
从滤波器理解卷积
全新一代宋的新姿态
基于傅里叶域卷积表示的目标跟踪算法
另一种姿态