基于多模态瑜伽动作姿态检测的设计研究

2021-10-15 05:17
体育研究与教育 2021年4期
关键词:关节点骨骼瑜伽

万 益

1 前言

公元前3000年,由梵语学者和印度医师帕坦伽利撰写的《瑜伽经》中发现了对瑜伽体式动作的描述[3]。这种源自于印度古国的运动,因其动作缓慢、优雅、讲究身心的平衡,近10几年已成为全世界最流行的健康风潮[7]。许多练习过瑜伽的人都能不同程度地体会到,通过瑜伽呼吸法、体位法、冥想和松弛功的练习,可达到舒展筋骨、轻松身心、健美形体、通畅经络的独特效果[8]。研究显示:瑜伽可以减轻焦虑和抑郁,可以改善包括心理和疼痛综合征、肌肉骨骼和神经系统疾病、自身免疫和免疫综合征等多种症状。[4]随之,这项时尚健身运动也开始在各大高校体育选修课中广泛开展,深受学生的喜欢。近几年的教育现代化的变革,开启了中国大规模的在线课程平台—MOOC,即在“互联网+”时代,基于移动通信设备、网络学习环境将视频教学资源和学习活动序列相结合,将教学资源面向社会,面向大众。国内在线课程平台的迅速发展,将许多高质量课程纷纷推上了学习平台[10]。据中国大学MOOC平台的开课统计,关于瑜伽的课程共有10门次,单期选课人次达17万人次。如此庞大的受众量伴随不断激增的需求,也出现了一些弊端,对瑜伽的教学提出了新的挑战。一是传统的授课模式中,老师能直观地评判学生的动作,并且实时做出纠正,而线上课程学生只能通过图片上传、视频上传等方式等待老师的点评和指导,无法实现即刻的交流和沟通,往往会造成错误动作的形成;二是传统授课模式中,师生比通常为(1∶30),而在线课程由于受众广泛性及较高的师生比(1∶10 000),在动作的纠正、指导与动作的评价方面增加了授课教师极大的工作量和难度。

随着人工智能技术的快速发展,许多新兴前沿技术在日常生活中大量普及与应用,人体姿态识别、人体动作识别、人体动作检测等技术在人体运动行为分析、医疗康复训练、体育教学等方面都有广阔的应用前景[9]。在当前大学体育MOOC线上教学广泛发展的情况下,为了科学评价在线瑜伽教学中学生的动作姿态,笔者提出基于多模态的瑜伽动作姿态检测算法设计,旨在为体育教学领域师生提供更为生动的交互方式。

2 瑜伽动作姿态检测研究现状

人体姿态估计(Human Pose Estimation)是计算机视觉中的一个重要任务,也是计算机理解人类动作、行为必不可少的步骤。近年来,使用深度学习进行人体姿态估计的方法陆续被提出,且达到了远超传统方法的表现[11]。

瑜伽体式动作相对静止,且动作对人体骨骼的正位有一定要求,因此在计算机视觉中,通过对人体骨骼点的检测能够对动作的正确性进行初步判断。关于人体骨骼点检测,Toshev等人提出了Deep Pose作为早期的人体骨骼关节点检测的算法。他将人体骨骼关节点估计问题由原本的图像处理和模板匹配问题转化为CNN图像特征提取和关键点坐标回归,并使用了一些回归准则来估计被遮挡或者未出现的人体关节节点。但是该方法的鲁棒性较差,而且人体的动作复杂多变,因此该方法应用性不强[12]。GRMI是Google提出的多人体态估计方法。他们首先使用FAST-RCNN做人物检测,然后将检测到的人物分割出来,再利用残差网络做高斯HeatMap和坐标偏置,最后通过融合高斯HeatMap和坐标偏置预测出关节点的精确位置。对于拍摄的瑜伽动作姿态的彩色图像虽然信息非常丰富,但是冗余信息也很多,在不同地点、不同光亮强度以及穿不同瑜伽服下拍摄的瑜伽动作对识别模型都有一定的影响。Li等人[1]综合利用了Kinect提供的深度数据、骨架数据,通过人体测量学知识和反向传播神经网络,有效提高了姿态识别的实时性和鲁棒性。视觉传感器采集的视频、图像,还可以通过深度学习等人工智能的方法对人体肢体、关节进行识别提取[2]。人体骨骼图像,可以避免光照变化的影响,也可以免去外部场景、背景环境等因素的干扰,因此利用骨骼图像和RGB图像结合识别瑜伽动作以及标准从而提高模型的鲁棒性。

3 基于多模态瑜伽姿态检测算法设计

目前,随着计算机视觉技术的不断发展,多模态识别技术己经成为人体姿态检测中最常用的方法。笔者基于多模态思想设计了瑜伽姿态动作评分模型。首先利用RGB摄像头采集瑜伽的姿态动作图,即普通的RGB彩色图像,接着利用骨骼提取模型将RGB图像转换成骨骼图像,然后将RGB图像和骨骼图像输入联合模型中。联合模型将输出瑜伽动作的类别以及这种动作的评分。具体流程如图1所示。由于最后要得到瑜伽的动作类别和评分,这属于多任务的评分问题,因此笔者设计联合模型,不增加模型的数量直接得出瑜伽动作的最终类别和得分。

图1 基于多模态的瑜伽姿态动作分类评分流程图

骨骼提取模型是将普通的RGB人物图像转换成骨骼姿态图像。深度学习中的一些方法可以在普通二维摄像头采集的人物图像上直接获取骨骼关节点图像,因此我们可以在不增加任何设备的条件下,提取到人体的骨骼图像。骨骼提取模型是基于OpenPose模型设计得到的。Openpose模型是由美国卡耐基梅隆大学的研究人员提出的。该模型先将图片中人物的关节点检测出来,然后将检测出来的关节点进行聚类处理,最后将人体的关节点连接在一起。利用OpenPose模型提取瑜伽动作的骨骼数据流程如图2所示。首先将输入图片经过VGG19的前十层卷积操作,生成相应的卷积特征图(F),然后根据生成的卷积特征图送入多阶网络中用来预测关键点的热图(Heatmap)和描述关节点的连接的方向,最后使用二分图最大权匹配算法来对关键点进行组装,从而得到人体骨架。

图2 OpenPose模型的结构流程图

3.1 骨骼提取模型的设计

如图2所示,Openpose模型中多阶网络在生成人体的关节点热图后输出得到St=(S1,S2,…,SJ);在描述关节点的连接方向后得到Lt=(L1,L2,…,LC)。其中J是人体关节点的数量;C是关联区域的数量。关联区域是指手臂,腿部等。Sj∈Rw×h,即第j个关节点对应的热图,可以认为是概率值;Lc∈Ew×h×2,即第 c个关联区域对应的方向。

在预测关节点热图时,对于每个人的第j个关节点,令其位置为xj∈R2,则真实位置是以xj为中心的二维高斯分布,用表示。第j个关节点对应的真实位置为,p表示单个位置,即对一个人关节点的真实位置按像素点取最大值。在预测关节点的连接的方向时(如图3所示),对于第c个关联区域,也可以理解成连接关节点j1和j2的区域,真实方向用表示。如果位置p在这个关联区域上,否则为零向量。计算公式如式(1)所示:

图3 手臂方向预测图

这里v实际上是j1指向j2的单位向量。只要p满足在线段j1j2上或者距离线段j1j2在一个阈值范围内,就认为p在该关联区域上。最后对于某个关联区域的所有位置,将每个像素点采用平均处理的方式,即。这里nc(p)为p位置处非零向量的个数,也就是只有非零向量才参与均值计算。

当模型得到关节点热图后,采用非极大值抑制的方式为每个关节点部分找出一系列候选点。这些候选点之间互相组合能够产生大量可能的关联区域,因此需要定义两个关键点j1和j2之间组合的权值。如式(2)所示:

其中,p(u)=(1 - u)dj1+udj2,dj1,dj2分别表示 j1,j2的坐标。实际上就是对j1和j2间各点在j1j2上投影的积分。直观上说,如果线段上各点的方向与线段的方向越一致,E就越大,那么这两个关节点组成一个关联区域的可能性就越大。因此通过这种方式可以除去没有的关联区域。

3.2 多模态联合模型设计

目前,通过将多个模态的识别结果进行融合来提高识别率己经成为人体姿态动作检测中最常用的方法。一般的多模态融合方法是先分别单独训练每个模态的数据获得识别向量,然后将每个模态的识别向量通过相乘的方式进行融合。这种方式准确率的提升有限,而且耗费大量的时间和资源。在本文中提出一种多模态联合模型,可以同时使用多模态数据,并且模型还可以输出多种结果。模型的结构如图4所示,其中,fc1和fc2表示全连接。

图4 多模态联合模型结构图

3.2.1 主干网络设计

瑜伽动作的姿态多种多样,不同人做每种动作时标准不一,尤其在网络授课提交的作业中,对教师评分带来了极大的困难。笔者基于细粒度瑜伽动作的类别和评分进行分类,并利用Xception模型来提取多模态数据的细粒度特征,并基于Xception网络设计联合识别模型,实现多模态数据的输入以及类别和评分的联合输出。

Xception模型是由谷歌研究院在Inception模型的基础上改进得到的。使用深度可分离卷积增加网络宽度,不仅提升了分类的正确率,也增强了网络对细微特征的学习能力,提供了Xception模型用在弱监督的细粒度图像分类的可行性。Xception和Inception的基本思想一样,都是将一个卷积核分解成一系列相互独立的操作,即模块首先通过跨通道相关性处理,然后通过一组1×1卷积,最后将输入通道映射到多个小于原始输入的不同空间。但是Xception模型中通道相关性和空间相关性是完全可分的。先进行1×1的通道相关性卷积,后续接的3×3卷积的个数与1×1卷积的输出通道数相同,如图5所示。

图5 Xception的模块结构

Xception中的深度可分离卷积将传统的卷积分解为一个深度卷积和一个1×1的卷积。首先对输入的每个通道分别进行深度卷积操作,并将结果进行拼接,然后对拼接后的结果进行1×1卷积操作。在Xception中加入的类似ResNet的残差连接机制也显著加快了Xception的收敛过程并获得了显著更高的准确率。

3.2.2 联合模型网络结构设计在检测瑜伽动作时,笔者使用了RGB数据和骨骼数据两种模态的数据。骨骼数据是将各个骨骼关节点的欧式距离组成矩阵,如式(3)所示。

其中,Jn代表第n个关节点的坐标;‖JnJ1‖代表第n个关节点到第一个关节点的欧式距离。由于分类时要识别出瑜伽的种类以及瑜伽动作的评分,因此在设计联合模型的数据输入时,需要设计成多阶模式。数据输入的格式如式(4)和式(5)所示:

其中,yn代表瑜伽动作的种类;S1,S2,S3分别代表优、良、中。数据D有两个标签,分别是类别标签和评分标签。如图4所示,最后主干网络连接两个全连接层,分别对应类别和评分,这样就可以利用一个网络训练解决两个分类问题。与其对应的模型有两个损失函数。由于瑜伽动作的分类和评分都是分类问题,因此都采用交叉熵损失函数。由于瑜伽动作的类别间的特征远远高于类内评分之间的特征,因此在制作数据集时最好将每个类别内中三个评分S1、S2和S3数量大致保持一致,同时多模态数据中的RGB数据和骨骼数据是一一对应的,因此在S1、S2和S3中的骨骼数据和RGB数据是相同的。在模型训练时,我们采取了一系列数据增强操作,包括:

(1)旋转操作:由于拍摄角度不同,人物图像可能会发生不同角度的旋转,因此在网络训练中对数据随机旋转操作。

(2)降噪操作:考虑到大多数手机摄像头都自带人物美颜功能,因此采集的人物RGB数据噪声较小。对训练数据随机加入各种降噪处理有利于提高模型的鲁棒性。

(3)亮度操作:不同人在拍摄照片时,所在的环境背景不同,拍摄的照片背景亮度存在很大差异。图片的亮度同样也会影响网络检测的准确率,因此在网络训练中对数据随机加入增加或者降低亮度操作。

(4)模糊操作:由于手机拍照曝光影响以及抖动的影响,高斯模糊和运动模糊会发生在使用环境中,因此对训练数据随机加入运动模糊和高斯模糊处理。

在模型使用时,输入拍摄的RGB数据。首先骨骼提取模型会将RGB数据转换成骨骼数据,然后将两张图片输入到多模态联合模型中。输出的四个识别结果,分别是 Ar、As、Sr和 Ss,分别代表RGB数据的分类结果、骨骼数据的分类结果、RGB数据的得分结果和骨骼数据的得分结果。最终的分类结果和得分结果计算公式如下:

其中,α代表RGB数据权重系数;β代表骨骼数据权重系数。根据不同实验环境,可将α和β设置成不同的数值。多模态瑜伽动作分类评分模型只需输入一些普通的RGB数据,直接就能输出瑜伽动作的类别和评分。

4 实验分析

在多模态算法以及瑜伽动作类别和评分判定方法的基础上,对提出方法的有效性进行了对比实验分析和验证。实验中,根据MOOC的课程安排,采集了400个志愿者的瑜伽动作图片。目前使用了其中四组动作,每张图片都带有动作类别和得分等级标签。需要说明的是,为了消除个体差异,训练集和测试集中的被试者不同。为了方便瑜伽动作评判,并验证单模型和联合模型对瑜伽动作识别和评分的准确性,特制作了瑜伽动作数据集。实验所用台式电脑的 CPU型号为 Intel Core i5-4460m,主频为 3.2GHz,GPU 型号为 GXT 1060,内存为16GB,操作系统为Windows 10,Python版本号为3.6,使用 Pytorch框架。

4.1 数据集介绍

为了验证基于多模态瑜伽姿态检测算法的有效性,笔者验证4种瑜伽姿态,分别为山式、手杖式、幻椅式和仰卧上升腿式,并对每种动作的评价指标进行说明。为了使瑜伽姿态数据库更具有可靠性,本文的数据全部来自MOOC和网上教学的志愿者图片。选取符合要求的图片按照不同分类存放在数据库中。评价标准是根据三位老师评分的均分。采集的数据集如表1所示,其中评分是指瑜伽动作的评分等级,分为优、良、中三个级别;数量是指存在数据集中图片的数目。最后瑜伽姿态数据集中收集到4 800张有效图片,各个评分下的瑜伽姿态动作各400张图片。最后使用这些图片作为基于多模态瑜伽姿态检测算法的数据集。

表1 瑜伽姿态的数据集

对于各组瑜伽动作,按照以下要求分为优、良、中三个级别。

(1)山式:动作的优秀指标:双脚脚掌相靠,垂直向前,膝盖收紧上提,腹部收紧,尾骨下卷,双肩向外打开,双眼平视前方,头在双肩的正前方;动作的良好指标:双脚脚掌相靠(略微散开),垂直向前,膝盖收紧上提,腹部收紧,尾骨下卷,双肩向外打开,双眼平视前方,头在双肩的正前方;动作的中等指标:双脚脚掌相靠(略微散开),脚掌外八或者内八,膝盖松散无上提,腹部无收紧,尾骨无下卷,双肩内扣,双眼平视前方,头没有在双肩的正前方。

(2)手杖式:动作的优秀指标:将身体坐在垫子上,让重心落在坐骨,双腿向前伸直,双脚脚尖回勾,脚后跟蹬向远方。双手放臀部两侧的地面,掌心朝下,十指分开,指尖朝向正前方。收紧股四头肌并向腹股沟提拉,大腿压向地面,胸腔向上提,脊柱保持稳定,头、颈、臀保持在一条直线。双肩放松向下沉,保持均匀的呼吸。动作的良好指标:是指某些动作不符,例如膝盖微微弯曲,头、颈、臀大致保持在一条直线。动作的中等指标:主要是一些动作不符合规定,例如膝盖微微弯曲,脊柱保持不够稳定,头、颈、臀不能保持在一条直线上。

(3)幻椅式:动作的优秀指标:双脚脚掌并拢垂直向前,膝盖在不超过脚尖,臀部后坐,大腿和地面趋于平行。尾骨下卷,后背和头往天花板方向伸展,背部延伸,双手手臂上抬伸直,保持和背部相同方向。动作的良好指标:主要包括大腿和地面没有平行。尾骨下卷,后背和头往天花板方向伸展,背部延伸,双手手臂上抬伸直,保持和背部大致相同方向。动作的中等指标:双脚脚掌没有并拢,膝盖超过脚尖,臀部向后,大腿和地面没有平行,尾骨没有下卷,背部延伸不够。

(4)仰卧上升腿式:动作的优秀标准:仰卧姿态,后背完全贴向地面,双腿上抬离开地面呈90度,膝盖伸直,脚掌回勾。动作的良好指标:仰卧姿态,后背完全贴向地面,双腿上抬离开地面呈90度,膝盖伸直,脚掌没有回勾。动作的中等指标:仰卧姿态,后背不完全贴向地面,双腿上抬离开地面呈没有90度,膝盖没有伸直,脚掌没有回勾。

在数据集整理完成后,按照dataij={Actioni(Scorej)}标准进行分类,其中,Actioni指瑜伽动作i,Scorej指瑜伽动作Actioni得分 j。同时将这批数据按照4∶1分为训练集和测试集送入网络模型中去训练测试。

4.2 实验对比

为了验证多模态模型的效果,将训练的数据集送入骨骼提取模型中,提取出相应的骨骼姿态。此时训练数据分为RGB数据和骨骼数据。将RGB数据和骨骼数据按照相同比例进行数据处理,生成多模态数据。与RGB数据和骨骼数据的数据量相同。将这三类数据按照相同的方式送入联合模型中训练,训练过程中使用相同的数据增强方法,相同的学习率,相同的训练方式。最后利用训练好的模型分别用测试数据验证。测试的结果如表2所示。

表2 模型结果对比

根据表2数据可以观察到,利用多模态数据和RGB数据训练的模型能够100%的识别瑜伽类别,单独使用骨骼数据在识别瑜伽类别时平均准确率只有91%。主要是因为有些瑜伽动作需要观察侧面,身体有遮挡部分,关节点检测算法不能有效地提取全部关节点。对于瑜伽姿态评分,联合模型识别的准确率达到90.15%,RGB数据识别的准确率只有75.3%,骨骼数据识别的准确率是81.6%。为了更好地对比模型的效果,笔者设计了瑜伽姿态检测的综合评价指标W。W是根据瑜伽姿态类别的判定和评分的判定求得。每个模型W的计算公式如下:

其中,n代表瑜伽类别;Ai代表第i类瑜伽姿态的类别的准确率;Si代表第i类瑜伽姿态的得分的准确率。根据式(8)和表2求得各个模型的W,如图6所示。

图6 综合指标对比

根据实验结果可以看出,如何准确地判断出瑜伽动作的评分是我们的主要工作。虽然骨骼数据在判断动作类别时具有较大的优势,但是提取骨骼时,有些关节点可能采集不到,因此单独使用骨骼数据最终的识别效果并不能达到最优;RGB图像在区分动作类别时,具有较大的优势,但是在评价动作得分时,由于受到衣服环境的干扰,导致不能有效地评价出动作得分;而多模态数据在多模态联合模型中表现出较大的优势,集合了RGB数据和骨骼数据的优势,同时又利用一个模型完成识别任务,可以快速准确地完成瑜伽动作的分类和判分。

5 结论

人体姿态识别技术如果要在瑜伽线上教学发挥作用必须保证其准确性、鲁棒性和实时性都达到较高的水平。笔者在人体姿态检测研究的基础上,根据不同算法的优缺点将算法进行融合,使得融合结果在姿态识别数据集中的表现均优于单个算法,并设计研发了基于多模态的瑜伽动作姿态检测模型。因此,将该设计研究运用于今后体育线上教学中具有较大的优势。

猜你喜欢
关节点骨骼瑜伽
Hello White瑜伽馆
做家务的女性骨骼更强壮
三减三健全民行动——健康骨骼
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
重载机车网络重联TCN 故障节点识别方法研究*
关节点连接历史图与卷积神经网络结合的双人交互动作识别
迎接瑜伽日
禅逸瑜伽对瑜伽文化的创新
练瑜伽,悠着点
搞好新形势下军营美术活动需把握的关节点