当前位置:   article > 正文

【论文阅读】基于深度神经网络的人体运动姿态估计与识别_神经网络 人体姿态识别

神经网络 人体姿态识别

阅读文献:王芫. 基于深度神经网络的人体运动姿态估计与识别[D].电子科技大学,2020.
来源:知网

研究内容:本文以估计与识别羽毛球运动员运动姿态为背景,设计了一套人体姿态评估系统,用于羽毛球运动员运动过程中人体姿态的估计和识别,并根据人体标准姿态库给出评估结果。
关键词:人体姿态估计与识别,羽毛球,深度神经网络,局部评估,相似度

一、绪论

1、研究背景

运动过程中,标准的运动姿态不仅可以决定运动的效果,也可以最大限度保护运动员不受伤害。
早期的人体动作识别都需要借助外接设备的辅助,非常不方便,随着机器学习和深度学习的发展,使计算机可以仅通过摄像头等设备就能够感知人体动作。
在人体动作识别中,首先最关键的是人体姿态估计,基于人体姿态估计所得到的一系列特征与一些标准动作进行对比,就可以对人们运动中的运动姿态做出知道。

2、相关介绍

人体动作识别领域研究主要分为两个方向:

  • 人体姿态估计
    基于图像处理、机器学习和深度学习等方法,对给定的图像序列进行人体姿态检测,并给出人体模型的热点图,主要针对单帧图像中人体位姿的估计,并不考虑连续时间下位姿变化形成的动作含义,将人体姿态估计定义为人体关键点的定位问题。
    人体姿态估计方法有:自上而下 / 自下而上
  • 人体动作识别
    一个人体动作由多个连续时间序列下的人体姿态组成,是一个连续的过程,在时间维度有很重要的特征信息,因此在视频中的进行人体动作识别涉及高层抽象,需要在时间维度中寻找人体动作特征。

3、研究内容

首先USB3.0摄像头作为输入;然后用新的神经网络模型进行运动员运动姿态的估计,输出是以一组图像像素坐标下骨骼点的二维坐标;最后采用新的运动员运动姿态评估算法,与标准人体姿态裤进行对比,得到评估结果。

二、人体姿态评估系统理论研究

1、姿态估计和动作估计

  • 姿态估计
    姿态指的是某个时刻人体的关节、肢体和躯干形成的固定姿势,这种姿势是静态的。因此姿态估计指通过观测某个时刻的人体图像,重建该时刻人体的关节和肢体在空间中的位姿;
  • 动作估计
    动作是由连续多个时刻的人体姿态组成的动态过程,能够表达出动作的含义。因此动作估计是指通过观测连续时间序列的人体姿态,判断这个时间序列所反映的动作含义。

2、人体姿态坐标集

在人体姿态估计中,肢体间的协作配合量化到数据层面就是人体在空间中各个关节点的坐标,将这些关节点坐标的集合称为人体姿态坐标集。

(1)估计三维空间坐标集

单个摄像头采集的图像是在图像像素坐标系,从图像像素坐标系转换到世界坐标系需要内参矩阵和外参矩阵,其中,外参矩阵的获得需要借助外部方法(标定、移动视角等)。

思路

  • 双目视觉系统
  • 单目视觉系统+深度相机(Kinect)
  • 通过深度神经网络的训练实现
(2)估计二维空间坐标集

如果在二维空间下估计人体姿态坐标集,因为只有单目视觉系统,则该坐标集的坐标系即为相机坐标系。但是可能会存在图像畸变、复杂环境导致图像质量差、遮挡阴影等问题导致存在误差等情况。

思路

  • 通过传统的图像处理,寻找边缘以提取人体姿态,缺点是没有考虑肢体与骨骼点的关系,导致精度较低;
  • 通过机器学习或深度学习,在图像层面学习人体姿态特征。

3、人体姿态估计模型

主要用途是估计某帧图像中人体姿态在图像像素坐标系下的一组关键点的二维坐标。本文重点在于骨骼点的二维坐标估计,目的是利用骨骼点坐标进行姿态评估。

传统人体姿态模型:骨骼点共18个
在这里插入图片描述
复现的三个模型

  • CPN
  • Deep-Pose
  • Open-Pose
(1)CPN(级联金字塔网络)

自上而下估计人体姿态。

模型结构

在这里插入图片描述
训练过程

  1. 通过给定的最优人体框检测器生成人体,对每个检测到的人体进行下面的模型估计;
  2. GlobalNet基于特征金字塔网络,获取浅层特征和深层特征;(主要用于识别简单的关键点)
  3. RefineNet接收GlobalNet的所有特征信息,着重对困难点进行处理。

训练效果(准确率达90%以上)
在这里插入图片描述

(2)Deep-Pose

自下而上方法。将人体姿态估计定义为人体关节点回归的问题,每个关节点都用一整幅图进行回归。

模型结构
在这里插入图片描述
训练效果(准确率达90%以上)
在这里插入图片描述

(3)Open-Pose

多人姿态估计模型,自下而上方法。
模型结构
在这里插入图片描述
训练过程

  1. 经过VGG的前10层,通过其得到128个尺度的特征图F;
  2. 随后的网络分为t个阶段,每个阶段两个分支:一个分支用于估计关键点,主要对单张图像进行卷积生成关键点的热点图,峰值表示关键点位置;另一个分支用于像素点在骨架中的走向(关键点亲和场PAFs);
  3. 最后两分支结果融合,提取峰值,得到图像。

训练效果(准确率达90%以上)

在这里插入图片描述

(4)模型比较与分析
1)估计时间比较

从时间上看,CPN 模型的估计速度是最快的,其次是 DeepPose 模型,最后是 OpenPose 模型。

在这里插入图片描述

2)估计效果比较
模型效果原因
CPN正面图像估计效果极差,球网左侧正反手图像估计效果视情况定1、人体检测框定位效果不好,导致提取不到完整人体或提取其他图像像素过多 ;2、对ROI区域进行关键点提取时,人体和周围环境无明显区别,导致热点图有多个峰值,错误点的峰值高于真实点,出现骨骼点的估计错误
DeepPose正面图像估计效果极差,球网左侧正反手图像估计效果一般1、采集图像分辨率远大于模型要求输入图像分辨率,导致图像被压缩,当远距离拍摄时,人体在图像中占比下降,特征信息大幅减少 ;2、人体骨骼点被遮挡或与周围环境像素变化不明显,导致热点图存在多峰值,且未增加关节点约束,从而导致估计错误
OpenPose正面图像估计效果极差,球网左侧正反手图像估计效果优秀1、提出亲和场pafs,近距离侧面估计效果优于其他模型;2、加入对两个骨骼点形成的肢体的特征学习,并将约束的特征用置信图表示,从而提高估计精度

经过比较,选取OpenPose作为评估系统的基础模型,用于估计单帧图像中运动员的人体姿态坐标。在大量数据测试中,发现OpenPose仍存在不少问题:

  • 运动过快图像模糊,导致估计的骨骼点不全;
  • 估计时间在1.5-7秒左右,时间长;
  • 彩色图像效果好于灰度图;
  • 正面检测效果差

因此后期将对模型的估计速度进行优化。

三、人体姿态评估系统设计探究

采集羽毛球运动员图像资料(15 段视频,8256 帧)用作后续测试和模型训练。

1、摄像头相关问题

(1)摆放位置

通过理论分析和实验,最终确定摄像头摆放最佳位置为球网左侧
同时羽毛球运动是肢体运动,因此对传统人体姿态模型的骨骼点数量修正,去掉头部的5个骨骼点。
在这里插入图片描述

(2)摄像头自身参数

采用四种摄像头对比,主要考虑参数有如下五个:
在这里插入图片描述
最终选择的是摄像头2.

2、减少模型估计时间的方法

(1)图像压缩
1)使用原因及方法原理

原因
估计人体结构模型中的每个骨骼点时都针对于图像中的所有像素,因此图像的大小直接决定了模型的估计时间。人体姿态评估系统采用几何变换(后文称图像压缩)将图像的像素进行压缩,可以减轻模型估计时的计算压力。

图像压缩方法
最近邻法、双线性插值、双三次方插值、像素区域重采样等.

双线性插值方法

在这里插入图片描述

双线性插值的详细讲解
图像处理之双线性插值法
双线性插值算法及需要注意事项
三十分钟理解:线性插值,双线性插值Bilinear Interpolation算法

2)图像压缩流程及模型结果

在这里插入图片描述
图像分辨率为1960×1080,对每帧图像进行图像压缩后,压缩系数为 4时的模型估计时间对比:
在这里插入图片描述
三种模型在使用图像压缩之后,模型的估计时间均减少。

3)探讨图像压缩是否可用于模型

使用双线性插值进行图像压缩,会导致源图像的图像特征减少。因此有必要验证使用图像压缩对模型估计的精度影响,通过实验探究图像压缩操作是否能用于缩短估计模型估计时间。

a. 实验流程及公式

在这里插入图片描述
计算单帧的代表值的公式
(1点指脖子在图像像素坐标系下的二维坐标,人体姿态坐标集中,每个骨骼点到脖子点的欧式距离之和的平均值定义为该帧的代表值)

在这里插入图片描述

b. 数据分析

通过实验,观察到相同视频相同压缩系数下,压缩操作前后的代表值变化存在某种线性关系,因此设计一个线形神经网络 y=Wx+b 估计线形关系。期望通过该线性神经网络模型,估计出压缩操作前后由估计的骨骼点坐标计算出的代表值的变化规律

(x是压缩后代表值,y为压缩前代表值,W 是估计压缩系数,b 是估计误差)

网络的一些细节

  • 模型只有权重W和修正值b,属于线性神经网络;
  • 损失函数L2,目的是L2最小化,使结果t和正确结果y尽可能接近;
    在这里插入图片描述
  • 随机梯度下降法训练;

训练结果

  • 压缩系数 2
    在这里插入图片描述
  • 压缩系数 4
    在这里插入图片描述
  • 压缩系数 8
    在这里插入图片描述

结论

  • 压缩系数为2或4时,图像压缩操作对估计的骨骼点坐标影响是线形关系;
  • 压缩系数为8时,图像压缩操作对估计的骨骼点坐标的影响不存在明显关系,说明压缩系数过大会导致图像特征丢失严重,在压缩中是不可取的;
  • 因此,选择合适的压缩系数,可以使用图像压缩操作来减少估计模型估计时间。
(2)间隔采样
1)采样原理

间隔采样:主要指的是在时间维度上对摄像头采集到的连续图像进行间隔采样。

采样定理:在进行连续信号离散化的过程中,当采样频率大于信号中最高频率的 2 倍时,采样之后的离散信号可以完整保留原始信号中的信息。

本文采样原理:运动员的动作变换在10到20帧左右,而摄像头的采样帧率远高于此,因此,可以通过选用合适的帧率和采样间隔t,使采样频率大于人体运动频率的2倍以上,就可以完整保留信息。

2)间隔采样流程

在图像采集后,每隔t帧后保存一帧用于人体姿态评估。可以减轻计算压力。
在这里插入图片描述

注意:这篇文章中是通过人体姿态估计输出的二维骨骼点坐标集,来进行姿态的评估,最终目标是识别姿态是哪种运动姿态,因此可以采用间隔采样,不会影响最终的结果,但是如果需要对视频实时进行姿态识别(也就是每一帧都标记姿态),则不可取间隔采样的方法。

(3)优化模型结构
1)优化的模型结构

优化考虑因素

  • 运动的频率不同于一般的人体动作,因此需要保证估计模块和评估模块的总体消耗时间能实时跟踪运动员的运动姿态变化;
  • 头部区域的5个骨骼点对人体姿态评估没有影响,且加重计算压力,因此骨骼点选取13个即可;

优化后的模型结构
在这里插入图片描述
训练过程如下:

  • 输入层input有两部分:一部分是输入图像矩阵,从[高度 , 宽度 , 通道数]转换到[图片数量 , 高度 , 宽度 , 通道数];另一部分是掩膜,在制作数据集时提供了训练集中人体的ROI区域,以便后续每个stage与其比较计算损失;
  • 提取特征:VGG网络的前10层,输入image在128个维度上进行卷积,得到一组不同尺度空间下的图像特征;
  • stage1层:以VGG部分估计的图像特征作为输入,并行网络结构:分支1用于估计人体姿态模型的骨骼点之间的肢体特征置信图,分支2用于估计人体姿态模型的骨骼点热点图,结束时肢体特征置信图和骨骼点热点图分别进行掩膜处理。
  • stage i (i是2-4):以 stage i-1 层中的肢体特征置信图、骨骼点热点图和不同尺度下的图像特征(VGG 层)为输入,同样并行网络结构,结束时做掩膜处理。

掩膜的理解:https://blog.csdn.net/bitcarmanlee/article/details/79132017

2)优化模型的优势
  • 保留人体矢量倾合场结构,学习骨骼点之间的连接关系特征,同时在骨骼点估计时提供肢体特征置信图进行联合估计,能够保证优化模型的估计精确度;
  • 减少计算人体肢体置信图和骨骼点热点图的轮次,只有4层,减轻计算压力;
  • 减少5个无关骨骼点的检测,模型减少约30%计算量;
  • 在COCO数据集训练基础上,用采集的羽毛球运动员运动图像再次训练,保证优化模型的估计精度。
2)优化模型的结果
  • 骨骼点估计准确度对比
    在这里插入图片描述
  • 模型平均估计时间对比
    在这里插入图片描述
    可以看到,优化模型在估计时间上有所减少,起到了一定作用,但代价是修正人体姿态模型的各骨骼点的估计准确度略有降低。

3、人体姿态评估算法

在前面都在讲如何进行人体姿态的估计,下面将介绍估计出可靠的人体姿态骨骼点后,如何根据骨骼点识别人体姿态。

本算法是识别单帧图像中的人体姿态,输入是一组估计的骨骼点二维坐标,输出是识别结果和评估值。由于是单帧图像,缺少时间信息,所以主要与预设的标准人体姿态进行对比。

(1)算法主要关注问题
1)整体评估与局部评估

作者根据运动中主导肢体的不同,将运动分为四类:

  • 下肢运动,如足球等;
  • 上肢运动,如羽毛球、网球等;
  • 全身运动,如篮球等;
  • 情感运动,如点头、摇头等。

整体与局部评估

  • 整体评估:以求和平均值的方法保证每个骨骼点在该帧的人体姿态代表值中权重相同,然后再与标准姿态相似度比较,通用性强;
  • 局部评估:对骨骼点设定优先级,按优先级与标准姿态的各骨骼点相似度进行评估,能够放大重要骨骼点在评估中的作用,但不直观。
2)处理异常帧
  • 若为空白点(即图中所有的人体骨骼点都为(0,0),则不评估该帧;
  • 若为错误点(即图中有部分人体骨骼点为(0,0),则需要分两种情况:如果错误点为脖子点,则不评估该帧,其他则剔除错误点,使用剩余骨骼点进行整体评估;
3)衡量待测姿态与标准姿态

a. 坐标系变换

估计模型得到的人体姿态坐标集是在图像像素坐标系下的数据集,从图像像素坐标系变换到世界坐标系步骤:

  • 将图像像素坐标系下的理想图像去畸变得到真实图像;
  • 将图像像素坐标系转换为图像物理坐标系,即单位变换
  • 利用相机内参矩阵将图像物理坐标系转换到相机坐标系下,这是一个光学投影的过程;
  • 利用相机外参矩阵将相机坐标系转换到世界坐标系

b. 欧氏距离和余弦相似度

衡量个体差异的主要方法。
在这里插入图片描述

  • 欧式距离
    用向量空间中两个向量终点间的绝对距离衡量两个个体间差异大小。 用于比较同一个羽毛球运动员运动姿态的相似度或差异。

  • 余弦相似度
    用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异大小。用于羽毛球运动员运动姿态与标准姿态的相似度和差异,同时修正了羽毛球运动员之间由于体型等原因产生的度量标准不统一的问题。

由于余弦相似度角度范围是[0,180],而常规二维坐标系角度应为[0,360],所以进行修正,采用相似度进行姿态评估(涉及到坐标系变换,将图像像素坐标系平移到以脖子点为原点的直角坐标系下)。流程如下
在这里插入图片描述

(2)人体姿态评估方案
1)方案选择

设计了以下六种方案(方案流程图见论文):
在这里插入图片描述

因为局部评估是按优先级依次与标准姿态的各骨骼点进行比较的,并不以脖子点为原点,因此不涉及是否需要处理异常帧

实验比较结果如下:

在这里插入图片描述
可以看到,方案六(黄色线)的效果最好,准确率远高于其他方法。因此最终确定方案六为最佳方案——根据羽毛球运动的肢体特征从局部出发评估羽毛球运动员的人体姿态,同时用相似度反应人体姿态的相似程度。

2)算法设计

根据方案六,设计人体姿态评估流程如下:
在这里插入图片描述
具体步骤如下:

  • 通过模型得到某帧的人体姿态坐标集后,将坐标系平移到以脖子点为原点的直角坐标系;
  • 首先是右上肢区域(右肩、右肘、右手腕),依次计算三个骨骼点与脖子点之间的矢量与x轴正方向形成的夹角集,并将其作为上肢右区域的相似度集。依次计算与标准姿态的三个骨骼点的相似度的绝对值,根据预设误差筛选相似的标准姿态;
  • 其次是右下肢区域,计算同第二步;
  • 然后是左下肢区域,计算同第二步;
  • 最后经过上述过程筛选后得到的标准姿态即为评估结果,在这三个过程中累计比较产生的相似度即为评估值(累计误差反映了其与匹配的标准姿态的相似度,累计误差越低,相似度越高)

这里需要补充的是:

  • 如根据每个区域对人体姿态的影响对相似度差值加权时,可能会出现耦合现象,因此算法最终采用直接输出匹配结束时的骨骼点、匹配的标准姿态序号和评估值;
  • 由于运动过程中右手持拍,左手大多根据根据自身需要调整以保持平衡的特点,因此在与标准姿态匹配的过程中,算法取消了左上肢区域的匹配,并且调整了其余三个区域的权重,即优先右上肢区域,随后右下肢、左
    下肢区域。

四、人体姿态评估系统实现

1、整体架构

(1)系统主要组成

系统由三个模块组成:

  • 摄像头采集模块
  • 预测模型模块
  • 人体姿态评估模块

输入是摄像头采集模块,输出是对于当前帧图像中人体姿态与标准姿态库的匹配结果(得到最接近的标准姿态)以及匹配损失(说明姿态与标准姿态的相似度)。

(2)系统硬件参数

在这里插入图片描述

(3)系统运行流程

在这里插入图片描述

2、估计模型模块

模型的结构参数参考原论文。网络训练步骤参照前面。
这里主要介绍一下训练的过程和结果。

(1)训练过程

训练的数据集
包括 COCO 数据集中含有人的图像和摄像头采集图像,资料来源于羽毛球运动视频;

优化模型结构参数
在这里插入图片描述
训练数据集的使用
先使用COCO数据集,保证优化模型对通用人体姿态的估计精确度,训练结束保存模型权重参数;
再读取第一次训练时的权重参数,在此基础上使用羽毛球运动员图像进行训练,保证优化模型对羽毛球运动员人体姿态的估计精度。

(2)估计效果

在这里插入图片描述

3、人体姿态评估模块

(1)算法流程

主要是三个步骤:(1)对输入的骨骼点坐标进行坐标变换;(2)与标准姿态库进行匹配;(3)匹配结果处理。

在这里插入图片描述
这里累计误差的理解:待测姿态模型在一个候选姿态集(姿态的标准库)中的姿态模型中各个骨骼点累计差值之和。

(2)坐标变换和匹配详细讲解

输入的骨骼点坐标的坐标系是以图像左上角为原点的图像像素坐标系,无法直接与标准姿态进行匹配,因此需要坐标变换。

1)坐标变换

步骤
(a)将坐标系从图像像素坐标系转换到以人体骨骼点中脖子点为原点的直角坐标系;(b)将坐标系从以脖子点为原点的直角坐标系转换到以脖子点为原点的极坐标系,并计算极坐标系下其余 12 个点与 x 轴正方向的夹角值,夹角范围 [0,360];

在这里插入图片描述
计算过程

在这里插入图片描述

2)匹配流程

分成了 9 个小阶段,分别匹配 0、1、2、6、7、8、9、10、11九个区域(3、4、5是左上肢,忽略)。
每个小区域的都是取待评估姿态和上一阶段的候选标准位姿的对应角度,计算二者差的绝对值,后续称为累计误差。如果累计误差小于等于该阶段的允许误差,则人体这个标准位姿符合这一阶段的评估并将该标准位姿放入这一阶段的候选标准位姿集。

(3)结果展示

用连续单帧图像进行匹配后,其中 138 和 139 帧没有匹配到标准姿态,140 至145 帧都匹配到了对应的姿态。
在这里插入图片描述

五、总结一下~

这篇论文中,作者设计了一个人体运动姿态评估系统,主要包括人体姿态估计模块和人体姿态评估模块。
人体姿态估计模块首先用三种姿态识别模型进行对比,通过实验确定本文的基础模型是OpenPose,然后考虑到本文的输入对象是视频,所以实时性也很重要,基础模型估计时间不能满足要求,因此进行模型的优化改进,通过图像压缩、间隔采样和优化模型结构(减少stage阶段数,减少需要估计的骨骼点数量)三种方法进行优化。最后也介绍了训练过程和效果。
人体姿态评估模块主要是基于估计模块输出的骨骼点坐标集,来对图像中人体的动作进行识别,通过将待预测姿态与标准姿态库中的姿态对比匹配,输出识别结果和匹配损失。在这一部分,采用局部评估+相似度的方法来进行匹配,只比较右上肢、右下肢、左下肢三个部分的骨骼点,将每个骨骼点的相似度与标准姿态的进行对比,计算累计误差,累计误差越小的,说明匹配度越高,从而得到和待预测姿态最接近的标准姿态。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/799939
推荐阅读
相关标签
  

闽ICP备14008679号