APP下载

基于改进OpenPose算法的篮球动作识别系统设计

2022-12-20林恒青

通化师范学院学报 2022年12期
关键词:关键点姿态卷积

林恒青

随着全民健身运动的普及和开展,越来越多的人加入到了各种体育运动当中.在众多体育运动中篮球运动在我国有广泛的群众基础,爱好者众多,但普通练习者学习篮球时一般不会聘请专业篮球教练进行一对一教学.随着视频教学的兴起,现阶段的锻炼者主要通过视频教学来学习篮球技术,由于缺乏专业的指导,仅跟随视频学习有时不但达不到相应的锻炼效果,甚至存在受伤的风险.为解决上述问题,帮助进行体育锻炼的人发现自己的不足并加以改进,可以对体育运动视频进行姿态分析,纠正不规范的姿势,从而达到相应的效果.虽然现阶段计算机视觉在体育运动中的应用已经开展了一些研究,例如童金茂[1]提出用机器视觉识别篮球投篮打手动作;杨菁菁[2]把动作识别技术应用到乒乓球运动中,但是把计算机视觉应用到篮球教学中的案例依然少之又少.对运动姿态进行分析需要大量带标注的体育视频,然而当前带人体标注的体育视频数据稀缺,要获得适用于体育视频领域的模型成本较高.此外,对于现有的大多数篮球教学视频来说,仅是提供标准的动作视频供用户学习,没有一个评价体系对用户的动作进行量化指导,在与用户进行交互方面还做得不够.针对上述问题,本文设计了一种基于改进OpenPose 算法的篮球动作识别系统,可以识别一些基本的篮球动作,将用户和教练的姿势进行比对,并给出相应的评分,帮助用户对动作进行矫正.

1 篮球动作识别系统整体设计

基于改进OpenPose 算法的篮球动作识别系统设计思路:工作过程为系统通过摄像头自动捕捉用户每个动作,然后对动作进行识别并根据标准动作进行打分.图1为该系统结构设计框图,整个系统可分为图像预处理、人体姿态估计、人体动作识别/评分三个部分.图像预处理模块可以处理已有的或采集到的视频信号,自动找到出现人物的视频图像,过滤掉无关背景的干扰;人体姿态估计模块可以检测人体骨架的关键点进行连接;人体动作识别/评分模块可以识别用户的篮球动作,并且通过比较用户姿态和标准姿态两者之间的相似程度对用户的篮球动作进行打分[3].

图1 基于改进的OpenPose 的篮球动作识别系统框架

摄像头采集到的是视频信号.视频信号是视觉处理过程中经常要处理的一类信号,是重要的视觉信息来源,视频信号可以看作由一系列图像组成的,这一系列图像被称为帧,它是以固定的时间间隔从视频信号中获取的最小影像单位.通常把在1 秒钟内传输的图片的帧数称为帧速率,其单位使用“帧/秒”表示,对应的英文为FPS(Frames Per Second).实际上,视频处理通常步骤是先从视频信号中提取出独立的帧,再使用图像处理的方法对其进行预处理,达到处理视频的目的[4].预处理模块主要实现对数据的获取和标准化的任务.因为动作识别和人体姿态联系紧密,人体姿态估计是系统的一个关键模块.所以在识别篮球动作前,先要对人体姿态进行估计,人体姿态估计模块以改进的OpenPose 算法为基础.动作识别/评分模块的输入是人体姿态的关键信息,包含人体骨架和关键点,这些是进行动作识别的基础,本文使用基于人体姿态估计的方法来识别篮球动作的类别.

2 算法设计

2.1 OpenPose 算法介绍

按照开始处理的级别(高级抽象或低级像素)不同,人体姿态估计可以分为自下而上(Bottom-Up)和自上而下(Top-down)两种不同的方法.Bottom-Up 方法的基本原理是先检测图像中人体所有的关键点,然后将这些关键点进行归纳总结从而对应到不同人身上.Top-down 方法是将人体和关键点的检测分开进行,第一步先找人,通过人体检测器识别出图像中的人,第二步再去找每个人身上的关键点得出相应的结果,缺点是速度较慢[5].OpenPose 算法属于自上而下(Bottom-Up)的方法,在OpenPose算法提出前,已有的“Bottom-Up”方法存在图片中其他人的身体关键点信息未得到利用,将关键点分配到不同的人物个体,算法复杂度太高的不足.OpenPose 算法提出“Part Affinity Fields(PAFs)”的概念较好地解决了上述问题,因此本文选用OpenPose 算法进行人体姿态识别.

OpenPose 是一个由卡内基梅隆大学开发的基于深度学习的人体姿态识别项目开源库,它以caffe 为框架,适用于面部表情、手势识别、人体动作等单人或多人的姿态估计等场景[6].图2为OpenPose 网络结构.输入的图像经过VGG19 网络前10 层处理后得到特征图F(Featuremaps)输入到后续的卷积神经网络中,后面的网络结构分成了两条支路,每条支路由多阶段的卷积神经网络构成,上分支为关键点置信度网络S,下分支为关键点亲和度向量场网络L,同时分别对应着热度图(Heatmap)和向量图(Vectormap),在每个阶段的后面,前端的F和两个分支的预测输出融合作为下个阶段的输入,最终得到整个网络的关节热度图(Heatmap)和关节部分关联域[7](Part Affinity Fields,PAFs).其中Part Affinity Fields(PAFs)是OpenPose 模型采用的一项新技术,用它可以学习将图中人物和其身体部位联系到一起.图中S=(S1,S2,…,Sj)表示热度图(Heatmap),j表示要检测的关节数.L=(L1,L2,…,Lc)表示向量图(Vectormap),c表示要检测的关节对数.

图2 OpenPose 网络结构

其中,ρ1和∅1代表第一阶段上下两分支的网络结构,第一阶段上下两支路网络结构各包含3 个3×3 卷积块和2 个1×1 卷积块,F经过第一阶段处理后分别输出S1=ρ1(F) 和L1=∅1(F),第二阶段开始后面各个阶段的网络均由5 个7×7 卷积核组成的卷积块和2 个1×1 的卷积块组成.

从第二阶段开始每个阶段网络的输入为:

损失函数是保证网络能收敛的重要的关键因素,每个阶段的每个分支都有对应的损失函数,公式如下:

式中:W为二值化mask 矩阵,当位置p存在标签时其值为1,否则值为0.损失函数采用空域加权操作后,对于未被标记的人物关节点W(p)=0,而被标记的人物关节点和非关节点W(p)=1,因此未被标记的人物关节点不会影响模型的学习过程,整个卷积神经网络架构的优化目标函数如下[8]:

2.2 改进的OpenPose 算法

OpenPose 网络结构较为复杂,参数较多,为了保证动作识别的实时性效果,本文借鉴MobileNets[9]中深度可分离卷积的思路,把原OpenPose 模型中特征提取网络VGG19 中的标准卷积结构进行分解,各层由一个深度卷积和一个采用1×1 卷积核的点卷积取代.采用新的卷积方式,可以达到减少参数数量和提升运算速度的目的.用在MobileNets 网络结构上进行调整后得到的12 层网络替代VGG19 的前10 层网络如表1所示.替换后的模型使网络参数量大为减少,有效地提高运算速度,满足检测过程的实时性要求[2].

表1 调整后的特征提取网络结构

其中网络除第一层是一个标准卷积(Conv)外,剩下11 层均由深度可分离卷积构成.所有卷积核的大小3×3,第一层、第三层、第五层卷积核的步幅都为2,其余层的步幅为1,此外随着层数的加深卷积核的数量增多.

2.3 COCO 数据集介绍

本文选用开源数据集MSCOCO 作为训练数据对人体姿态估计进行训练.COCO 数据集是由微软发布的一个大型的、丰富的对象检测、分割、人体关键点检测和字幕数据集,其中的图像分为训练集、验证集和测试集.COCO 数据集包含80 个对象类别,主要从复杂的日常场景中截取了总数超过33 万张图片,其中含有标注的为20 万张.

2.4 动作姿态匹配算法

如图3所示人体的不同特征部位可以归纳为18 个关键点,由这些关键点连接而成的人体骨架可反映某一时刻人体的姿态,Open-Pose 可以生成这些关键点的坐标文件.一个人动作的准确性可以依据特定关节间的角度值来判断,不会受到背景环境和其他无关因素的影响.通过关键点坐标数据计算关节间夹角角度值作为动作姿态匹配的依据,用来表征整体的动作特征.本文将利用这一特征进行动作对比和量化评价.

图3 COCO 数据集中的人体关键点

比较算法的步骤为:先通过计算欧氏距离得出两点之间的长度,然后由余弦定理计算得出反映人体动作的特定关节间夹角的角度值,以图4为例,假设A、B、C三个关键点的坐标值已知,θ角的具体求解公式如式(6)所示.接着使用这一方法对标准动作图片分别进行处理,得出该图片人体骨架的关节角度值,作为比对基准.之后输入需要进行评判的训练者动作图片,同样得出关节角度值.最后将两者角度值进行比较即可得出训练者动作是否达标,达到动作比对的效果.

图4 关键点组成三角形示意图

3 实验结果与分析

3.1 实验环境

本文的软硬件实验环境包括:Windows10操作系统,Intel(R)Core(TM)I5处理器3.2 GHz、8 GB 内存,GTX 1050 显卡.

3.2 数据预处理

鉴于目前还没有专门用于识别篮球动作的公开数据集,导致相关动作分析任务不易开展.为了更好地对本文设计的系统性能进行评判,本文收集自制了一个篮球视频数据集,并将其命名为Baskdataset,接下来用不同方法在该数据集上进行测试比较.数据集的制作过程为首先拍摄练习者的动作视频,然后对视频图像处理后得到几个动作的关键帧,包含运球、投篮、上篮等基本动作,最后用软件进行标注.

具体实现方式为把动作视频输入Open-Pose 实现对视频中人体骨骼关键点定位得到原始数据.视频是由视频帧构成的,对视频的处理可转化为对一张张图片的处理,预处理模块利用OpenCV 中的cv2.VideoCapture.read()函数来捕获帧信息,通过cv2.resize()函数把批量的图片处理成统一的h×w尺寸,首先处理标准动作的视频数据,对视频剪辑得到一个完整的篮球动作或姿势,作为对照数据使用[10].再将练习者的动作视频做相同处理,截取其同样动作的关键帧,用来与对照数据比对.表2从准确率和速度两方面展示了不同方法在BaskDataset 数据集上的实验结果.

表2 不同方法在BaskDataset 数据集上的实验结果

根据以上对比实验结果可知,本文算法在准确率上略低于AlphaPose 算法而高于Mask-RCNN 算法,但是AlphaPose 算法属于自上而下的方法,先要进行目标检测,对实时性要求较高的场合有一定的局限性.通过表2也可以看出速度方面改进的OpenPose 算法要优于其他两种算法,满足实时性的要求.

3.3 实验过程

实验过程是把要对比的练习者所拍摄的视频截取关键帧图像输入OpenPose 模型,标记出图片中人体18 个关键点坐标、还原骨架、对关节间角度值进行计算,得出最终用来判别动作规范度的关节角度数据,如图5所示.经过改进的OpenPose 模型处理,画面中的人体会标注出关键点并连接成骨架,如图6所示.之后,将输出的数据和标准动作数据进行对比,并给出量化评分,对比结果与标准动作数据越接近的量化评分越高,练习者据此可大致判断出动作是否规范,并对照修正.

图5 人体关键点的坐标和关节间角度值

图6 练习者运球骨架结构

4 结语

本文针对当前市场需求,设计了一套智能篮球动作识别系统,该系统可以自动分析用户学习打篮球动作时的姿态并提供量化评测用以纠正动作.系统包含图像预处理、人体姿态估计和动作识别/评分这三个模块,文章阐述了这几个模块的原理,验证了基于改进OpenPose 的姿态识别算法在篮球动作教学中的适用性和可靠性,并对量化评分提出了思路,具体的量化评分标准可由实施者按照一定的标准来执行.通过与其他传统方法比较,本文的方法在综合性能上更有优势,对于各种体育运动的教学、传承、推广具有很好的现实意义和实用价值.

猜你喜欢

关键点姿态卷积
聚焦金属关键点
肉兔育肥抓好七个关键点
基于3D-Winograd的快速卷积算法设计及FPGA实现
攀爬的姿态
卷积神经网络的分析与设计
从滤波器理解卷积
全新一代宋的新姿态
跑与走的姿态
基于傅里叶域卷积表示的目标跟踪算法
机械能守恒定律应用的关键点