一种基于机器视觉的运动辅助方法及系统与流程

文档序号:11234417阅读:502来源:国知局
一种基于机器视觉的运动辅助方法及系统与流程

本申请涉及运动辅助系统技术领域,特别涉及一种基于机器视觉的运动辅助方法及系统。



背景技术:

瑜伽是一种达到身体、心灵与精神和谐统一的运动方式,运用古老而易于掌握的技巧,改善人们生理、心理、情感和精神方面的能力,包括调身的体位法、调息的呼吸法、调心的冥想法等,以达至身心的合一。练习瑜伽时有很多注意方式,例如体式、呼吸等,尤其对于没有专业教练指导的练习者来说,错误的练习方式反而会对身体造成伤害。

为了改善上述情况,目前出现了部分针对瑜伽练习的辅助设备,例如,中国专利申请cn201610255660.3公开了一种辅助练习瑜伽的方法及系统。该申请通过智能穿戴设备检测用户练习瑜伽动作时的用户数据;将所述用户数据与所述瑜伽动作的标准数据进行比较;若用户数据与标准数据不对应,发出提示信息。该申请解决了练习者在缺乏瑜伽教练指导下很难正确练习瑜伽的问题,但需要瑜伽练习者佩戴智能穿戴设备,使用很不方便,而且采取的数据容易受外界环境等一些客观因素的影响,不能准确的检测练习者练习姿势,在检测到练习者练习姿势不准确时,也不能给出标准的姿势供练习者参考,不能很好的达到辅助练习瑜伽的作用。

中国专利申请cn201610243003.7公开了一种电子教练实现方法及系统,该申请利用摄像机的动作识别技术将采集到的用户动作图像序列与标准动作图像序列相比对,以达到纠正用户动作的效果。另一中国专利申请cn201210138503.6公开了一种基于人体姿态识别的体育教学辅助系统和方法,该申请通过深度摄像装置获取包括用户跟随示范动作运动动作的用户动作深度图像序列,并存储标准动作模型和与标准动作模型对应的标准动作示范图像序列;在瑜伽练习时,向用户显示所述标准动作示范图像序列,将预定时间点或时间段的所述用户动作深度图像序列与对应时间点或时间段的标准动作模型进行比较,获取用户动作与标准动作模型的差异,并据所述差异向显示装置输出动作评价信息或动作纠正提示信息。上述两个专利申请仅采用简单的将人体抽象成点和线的组合,或者仅仅标注关键关节的方法进行建模,效果不佳而且依赖于人工标注特征;同时,所描述的用户动作与标准动作的比较仅仅停留在概念上,而没有提出具体的算法或者是技术手段。

深度学习应用在图像(视频)识别上具有准确率高、识别速度快的优势。但目前,采用深度学习的方法进行动作识别的瑜伽或其它运行项目的练习辅助系统还处于空白状态。



技术实现要素:

本申请提供了一种基于机器视觉的运动辅助方法及系统,旨在至少在一定程度上解决现有技术中的上述技术问题之一。

为了解决上述问题,本申请提供了如下技术方案:

一种基于机器视觉的运动辅助方法,包括:

步骤a:采集至少一个运动项目的至少一个体式的标准动作视频;

步骤b:采用深度学习算法根据所述标准动作视频构建张量递归神经网络模型;

步骤c:采集练习者的当前动作视频,将所述当前动作视频输入张量递归神经网络模型进行识别,并根据识别结果显示与所述当前动作视频对应的标准动作视频。

本申请实施例采取的技术方案还包括:所述步骤a还包括:将所述标准动作视频分割成只包含单个动作的短视频,以分割得到的短视频作为训练样本构建动作视频训练集。

本申请实施例采取的技术方案还包括:所述步骤a还包括:对所述动作视频训练集进行数据预处理;所述预处理包括:对所述动作视频训练集中的短视频进行向下采样处理,提取向下采样处理后的短视频中以人为中心的边界框,裁剪掉所述边界框之外的多余背景,并将剪裁后的短视频帧由rgb图转化为灰度图。

本申请实施例采取的技术方案还包括:在所述步骤b中,所述构建张量递归神经网络模型具体包括:设计张量卷积神经网络,自动学习所述动作视频训练集中每个短视频的时空特征;并通过所述张量卷积神经网络学习到的时空特征训练张量递归神经网络模型。

本申请实施例采取的技术方案还包括:所述张量递归神经网络模型包括输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层、张量递归层和输出层;所述输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层依次连接,所述张量递归层全连接到第三卷积层,所述输出层全连接到张量递归层。

本申请实施例采取的另一技术方案为:一种基于机器视觉的运动辅助系统,包括:

指导装置:用于采集至少一个运动项目的至少一个体式的标准动作视频,采用深度学习算法根据所述标准动作视频构建张量递归神经网络模型;并采集练习者的当前动作视频,将所述当前动作视频输入张量递归神经网络模型进行识别;

显示装置:用于根据识别结果显示与所述当前动作视频对应的标准动作视频。

本申请实施例采取的技术方案还包括:所述指导装置还包括第一数据预处理模块,所述第一数据预处理模块用于将所述标准动作视频分割成只包含单个动作的短视频,以分割得到的短视频作为训练样本构建动作视频训练集。

本申请实施例采取的技术方案还包括:所述指导装置还包括第二数据预处理模块,所述第二数据预处理模块用于对所述动作视频训练集中的短视频进行向下采样处理,提取向下采样处理后的短视频中以人为中心的边界框,裁剪掉所述边界框之外的多余背景,并将剪裁后的短视频帧由rgb图转化为灰度图。

本申请实施例采取的技术方案还包括:所述指导装置还包括模型构建模块,所述模型构建模块用于设计张量卷积神经网络,自动学习所述动作视频训练集中每个短视频的时空特征;并通过所述张量卷积神经网络学习到的时空特征训练张量递归神经网络模型。

本申请实施例采取的技术方案还包括:所述张量递归神经网络模型包括输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层、张量递归层和输出层;所述输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层依次连接,所述张量递归层全连接到第三卷积层,所述输出层全连接到张量递归层。

相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的基于机器视觉的运动辅助方法及系统通过深度学习算法构建张量递归神经网络模型,在运动过程中,将练习者的动作视频输入张量递归神经网络模型进行识别与分类后,显示对应的标准动作视频供练习者参考。与现有技术相比,本申请具有以下有益效果:

1、引入深度学习算法,且不需要复杂的预处理或者人工标注,使动作识别的精度更高;

2、利用已经训练好的张量递归神经网络模型来对动作视频进行直接识别,不需要再与标准动作进行对比就可以直接输出识别结果,具有更快的识别和检测速度;

3、通过视频的方式直接采集练习者的动作视频,而无需通过心率、血氧等间接数据获取,保证了源信息的完整性;

4、标准的动作视频也以动作图像的方式保存和表现,保证了作为标准对比信息的标准性;

5、不需要穿戴附加设备,优化了用户使用体验。

附图说明

图1是本申请实施例的模型训练阶段的模型训练方法流程图;

图2是本申请整个张量递归神经网络模型的结构图;

图3为本申请实施例的张量递归神经网络模型构建方法示意图;

图4是瑜伽动作特征二阶张量的张量秩一分解示意图;

图5为张量递归神经网络细胞整体结构示意图;

图6是忘记门层结构示意图;

图7为输入门层结构示意图;

图8为输入门层第二部分结构示意图;

图9为输出门层结构示意图;

图10为三阶张量的张量列分解示意图;

图11为二阶张量(矩阵)的张量列分解示意图;

图12是本申请实施例的动作识别阶段的动作识别方法的流程图;

图13是本申请实施例的基于机器视觉的运动辅助系统的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量的机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。作为一门科学学科,计算机视觉研究相关的理论和技术,试图创建能够从图像或者多维数据中获取“信息”的人工智能系统。这里所指的信息指香农定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。

机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。

本申请实施例的基于机器视觉的运动辅助方法及系统基于深度学习算法(机器学习算法的一种)构建张量递归神经网络模型,在运动过程中,通知指导装置实时采集练习者的动作视频,并通过张量递归神经网络模型对采集的动作视频进行识别分类后,通过显示装置显示分类结果对应的标准动作视频供练习者参考和调整,从而达到辅助练习的目的。本申请采用深度学习的方法进行动作视频的识别与分类,使用方便,不仅准确率高,而且对用户动作无任何干扰。在以下实施例中,本申请实施例仅以瑜伽练习辅导为例进行具体说明,可以理解,本申请同样适用于舞蹈、武术等动作相对简单且易于识别的运动项目的辅助练习。

具体地,以瑜伽练习辅导为例,本申请包括两个阶段,第一阶段为模型训练阶段,该阶段通过采集一定人数的受试者的标准瑜伽动作视频,采用深度学习算法根据采集的标准瑜伽动作视频构建张量递归神经网络模型。第二阶段为瑜伽动作识别阶段;该阶段通过实时采集瑜伽练习者的瑜伽动作视频,并通过张量递归神经网络模型对采集的瑜伽动作视频进行识别后分类后,显示出标准瑜伽动作视频供练习者参考练习。以下分别对模型训练阶段和瑜伽动作识别阶段的实现方式进行具体说明。

请参阅图1,是本申请实施例的模型训练阶段的模型训练方法流程图。本申请实施例的模型训练方法包括以下步骤:

步骤100:通过图像采集装置采集100个(具体人数不限)受试者一定数量的瑜伽体式的标准瑜伽动作视频;

在步骤100中,受试者优选为专业瑜伽教练,本申请以下实施例中仅以采集26个基本瑜伽体式的标准瑜伽动作视频为例进行具体说明,可以理解,实际应用中,采集的瑜伽体式数量不限。在采集时,所有受试者的标准瑜伽动作视频均在相似且同质的背景下进行采集,且每个受试者在视频中每个相同动作各重复4次,动作之间有短暂间隔(长度在8到30秒之间)。采集的视频每帧大小为120×160像素,视频帧数为每秒25帧。

步骤110:按照各个标准瑜伽动作视频之间的间隔将每个标准瑜伽动作视频分别分割成只包含单个动作的短视频,以分割得到的短视频作为训练样本构建瑜伽动作视频训练集;

在步骤110中,分割后的短视频的长度在2秒~7秒之间,分割后,即可得到包含了10400个(26×100×4)短视频的瑜伽动作视频训练集,再利用瑜伽动作视频训练集中的每个训练样本分别生成它们的垂直翻转和镜像版本,以增加示例数。

步骤120:对瑜伽动作视频训练集中的短视频进行预处理;

在步骤120中,对瑜伽动作视频训练集中的短视频进行预处理具体包括:

步骤1201:对瑜伽动作视频训练集中的短视频进行向下采样处理;

在步骤1201中,向下采样即模糊处理,向下采样后,短视频每帧分辨率由120×160变为60×80,从而减少内存占用空间,提高算法效率。

步骤1202:提取每个向下采样处理后的短视频中以人为中心的边界框,并裁剪掉边界框之外的多余背景;

在步骤1202中,完成后剪裁后的短视频每帧分辨率由60×80变成34×54,进一步减少内存占用空间。

步骤1203:将剪裁后的短视频帧由rgb图转化为灰度图,完成瑜伽动作视频训练集的数据预处理;

步骤130:根据预处理后的瑜伽动作视频训练集构建张量递归神经网络模型;

在步骤130中,张量递归神经网络模型的构建方式为:首先,设计张量卷积神经网络,自动学习瑜伽动作视频训练集中每个短视频的时空特征;然后,使用从张量卷积神经网络中学习到的瑜伽动作时空特征训练张量递归神经网络模型,通过张量递归神经网络模型根据26个瑜伽动作标签对标准瑜伽动作视频进行分类。由于本申请采集的原始视频输出是二维的,这就造成了cnn(卷积神经网络)在图像识别的应用比较单一,不能直接对原始视频进行处理,如果采用常规的cnn进行瑜伽动作分类,则只能对瑜伽动作的图像进行分类,而不是对整个瑜伽动作进行分类,效果不佳。因此,本申请通过设计张量卷积神经网络,可以直接接收原始瑜伽动作短视频的输入,而不需要对训练集数据进行复杂的预处理。

具体地,请一并参阅图2和图3,图2是本申请整个张量递归神经网络模型的结构图。整个张量递归神经网络模型包括输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层、张量递归层和输出层;输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层依次连接,张量递归层全连接到第三卷积层,所述输出层全连接到张量递归层。图3为本申请实施例的张量递归神经网络模型构建方法示意图(为了方便说明,实施例中代入一些参数举例,但具体实现不局限于具体参数)。本申请实施例的张量递归神经网络模型构建方法包括以下步骤:

步骤150a:输入层:输入为34×54×9的张量;

在步骤150a中,34×54×9的张量对应瑜伽动作视频训练集中短视频的9个连续的帧,每个帧的图像分辨率为34×54。

步骤150b:第一卷积层:采用7×7×5的卷积核,在34×54×9的张量上计算出瑜伽动作的7个特征;

在步骤150b中,经过第一卷积层卷积后,张量规模变为28×48×5;在第一卷积层中,激励函数采用tanh函数,即yc1=tanh(∑wc1xc1+bc1),其中yc1表示第一卷积层的输出,xc1表示第一卷积层的输入,xc1,yc1表示张量,wc1,bc1分别表示权重和偏置量。

步骤150c:第一校正层:由于在第一卷积层中采用的激励函数tanh存在负值,因此在第一卷积层后加入第一校正层,进行简单的取绝对值的操作,经过第一校正层后校正后张量的规模不变;

步骤150d:第一池化层:采用2×2的池化窗口对张量进行最大池化,以保证提取的瑜伽动作特征的平移不变性,经过第一池化层池化后,张量规模变为14×24×5;

步骤150e:第二卷积层:采用5×5×3的卷积核,在14×24×5的张量上算出瑜伽动作的35个特征;经过第二卷积层卷积后,张量规模变为10×20×3;第二卷积层中也采用tanh激励函数,即yc2=tanh(∑wc2xc2+bc2),其中yc2表示第二卷积层的输出,xc1表示第二卷积层的输入,xc2,yc2表示张量,wc2,bc2分别表示权重和偏置量;

步骤150f:第二校正层:同第一校正层,对第二卷积层激励函数取绝对值;

步骤150g:第二池化层:同第一池化层,采用2×2的池化窗口对张量进行最大池化,经过第二池化层池化后,张量规模变为5×10×3;

步骤150h:张量第三卷积层:采用3×3×3的卷积核,在5×10×3的张量上算出5个瑜伽动作特征;经过张量第三卷积层卷积后,张量规模变为3×8×1,再将张量转换成大小为120的向量(5×3×8×1);

步骤150i:张量递归层:采用一定数量的(本申请以50个为例)张量递归神经网络细胞,全连接到第三卷积层;本申请在第三卷积层的输出与张量递归层之间引入张量秩一分解,对第三卷积层输入到张量递归层的瑜伽动作特征张量序列的分量进行张量秩一分解,并以分解后的形式进行存储,也就是将瑜伽动作特征进行张量秩一分解后,输入张量递归层;其中,秩一张量(rank-onetensor)为:数学上,若一个n阶张量能够表示成n个向量的外积,则该张量称为秩一张量。张量秩一分解(tensorrank-onedecomposition)为:在数学上,张量秩一分解,是将一个张量分解成一系列秩一张量的线性组合。张量秩一分解能够获得张量对象更加紧凑和更有意义的表示。如n阶张量长度为r的张量秩一分解为

在公式(1)中,为张量秩一分解第r个分量,对应第n阶的向量,表示张量外积积运算。如果r=1,则张量为秩一张量,如果r为的张量秩一分解的最小秩一张量个数,则r为张量的秩。

如图4所示,为瑜伽动作特征二阶张量的张量秩一分解示意图。其中,i1=4、i2=6分别二阶张量各个阶的维数,a第一阶,b第二阶,第k分量表示第k重要的成分(k=1,2,...r),最右边的两个矩阵为张量的因子矩阵,数量等于张量的阶数。张量秩一分解的物理意义为提取二维瑜伽动作特征的主成分。

步骤150j:输出层:输出层全连接到张量递归层,输出26个瑜伽动作标签;输出层采用softmax激励函数,公式为:

yi=softmax(∑jwi,jxj+bi),(2)

在公式(2)中,yi表示属于瑜伽动作i的概率,wi,j代表权重,bi代表瑜伽动作i的偏置量,xj表示输出层输入,j代表张量递归层节点j,即张量递归层的节点索引。

张量递归神经网络可以学习时间序列相关信息,适合于处理视频等与时间序列有关的信息,因此本申请实施例在张量卷积神经网络之后引入张量递归层,使得瑜伽动作视频能够更好地被分类。

具体如图5所示,为张量递归神经网络细胞整体结构示意图(本图中包含3个时序的张量递归神经网络细胞)。本申请实施例中采用的张量递归神经网络细胞主要包括3层门结构(门是一种让信息选择式通过的方法,由于门结构,张量递归神经网络能够学习到瑜伽动作视频中的长期依赖信息,从而在对练习者进行的瑜伽动作进行分类时精度更高。),通过3层门结构去除或者增加信息到张量递归神经网络细胞状态的能力,即瑜伽动作视频的时空信息可以通过3层门结构被有选择地遗忘或保存。所述3层门分别为忘记门层、输入门层、输出门层,结构具体如下:

1、忘记门层(forgetgate):用于控制张量递归神经网络细胞对上一时序瑜伽动作时空特征的遗忘程度(即控制着上一时间点的瑜伽动作特征有多少被保留)。忘记门层结构如图6所示。该门读取上一时序的lstm细胞输出ht-1和本时序输入xt,经过sigmoid激励函数输出一个在0到1之间的数值ft给细胞状态ct-1。忘记门层公式如下:

ft=σ(wf·[ht-1,xt]+bf)(3)

2、输入门层(inputgate):用于控制张量递归神经网络细胞本时序有关瑜伽动作时空特征的细胞状态ct(即控制当前时间点输入多少新的瑜伽动作特征)。具体如图7所示,为输入门层结构示意图。输入门层包含两个部分,其中:

第一部分:通过一个sigmoid门决定输入值更新程度it;然后一个tanh门创建一个新的细胞状态的候选值向量;请一并参阅图7,是输入门层第一部分结构示意图。输入门层第一部分公式如下:

it=σ(wi·[ht-1,xt]+bi)(4)

第二部分:通过输入值更新程度it和新细胞状态的候选值向量更新细胞状态ct(即控制向下一个时间点输出多少当前时间点的瑜伽动作特征)。一个乘法门把旧状态ct-1与遗忘程度ft相乘,接着加上更新程度产生新的候选值即本时序的细胞状态ct。具体请参阅图8,为输入门层第二部分结构示意图。输入门层第二部分公式如下:

3、输入门层(outputgate):用于确定本时序张量递归神经网络细胞输出值ht,在本申请实施例中指本时序学习到的瑜伽动作时空特征对下一时序张量递归神经网络细胞的影响,该输出值基于细胞状态ct。首先,一个sigmoid门来确定细胞状态输出程度ot,接着,细胞状态通过tanh门进行处理,得到一个在-1到1之间的值tanh(ct),并再通过一个乘法门将它和sigmoid的输出ot相乘,最终得到输出值ht。具体请参阅图9,为输出门层结构示意图。输出门层公式如下:

ot=σ(wo[ht-1,xt]+bo)(7)

ht=ot*tanh(ct)(8)

在张量递归神经网络的时序与时序之间的全连接中,本申请引入张量列分解/tt分解(tensortraindecomposition)。张量递归神经网络隐藏层的自连接属于向量到向量的全连接,将瑜伽动作特征矩阵与lstm((longshort-termmemory,长短时记忆网络)全连接的权值矩阵进行张量列分解,以tt-format表示,降低全连接参数的规模。假设全连接瑜伽动作特征的权值矩阵规模为50×50,采用的重构方案可为2×25和2×25,设置tt-rank为(1,r,1),将瑜伽动作特征的权值矩阵映射到(2×25)×(2×25)的矩阵(二阶张量),在进行张量列分解得到权值矩阵的tt-format表示,不同r值对应不同规模的tt-format表示,随着权值参数的规模与r值成正比,选择合适的r值能够减少张量递归层的空间复杂度及计算量,起到缩减网络参数规模的效果。

上述中,张量列分解(tensortraindecomposition,tt-decomposition)是一种张量分解模型,将张量的每一个元素都用若干个矩阵的乘积表示。假设存在d阶张量(ik表示第k阶的维数),张量的张量列分解为:

在公式(9)中,是张量第k阶级对应的核矩阵,规模为rk-1×rk,k=1,2,...d,ro=rd=1;(ro,r1,…rd)是d阶张量进行张量列时对应的tt-rank,实际上是规模为rk-1×ik×rk三阶张量,所以又叫核张量。具体如图10所示,为三阶张量的张量列分解示意图。

矩阵的张量列分解:

假设矩阵a∈rm×n,选择重构方案,如重构方案:选定重构方案后,瑜伽特征矩阵的张量列分解首先将瑜伽特征矩阵映射到d阶张量再对张量进行张量列分解,即具体如图11所示,为二阶张量(矩阵)的张量列分解示意图。

基于上述,本申请实施例在张量递归神经网络模型的训练阶段,以有标签的瑜伽动作短视频为输入,经过张量卷积层的卷积、校正、池化等过程进行处理,将每个三维的瑜伽动作短视频分别处理成为多个一维的瑜伽动作特征。一维瑜伽动作特征与张量递归神经网络层进行全连接,把瑜伽动作特征输入到张量递归神经网络层,并依次经过张量递归神经网络层的输入门层、遗忘门和输出门层之后,输出不同的瑜伽动作标签,由瑜伽动作标签值与真实值的差来构造损失函数,并通过梯度下降算法和反向传播算法来调节不同层的参数值。训练完成后,即可得到一个以短视频作为输入、并输出26个瑜伽动作标签的张量递归神经网络模型。本申请通过选用50个张量递归神经网络细胞作为张量递归层,并与张量卷积网络中的第三卷积层全连接,由于张量递归层的加入和张量分解的引入,张量递归神经网络模型对于瑜伽动作视频的分类准确率得到了较大提高。

请参阅图12,是本申请实施例的动作识别阶段的动作识别方法的流程图。本申请实施例的动作识别方法包括以下步骤:

步骤200:实时采集练习者的当前瑜伽动作视频;

在步骤200中,在开始练习前,练习者可以选择练习模式,例如自由练习模式、顺序练习模式、固定体式练习模式等,并在练习时根据需求进行选择。如果练习者选择自由练习模式,则需对当前瑜伽动作视频进行识别和分类后,通过显示装置显示与当前瑜伽动作视频对应的标准瑜伽动作视频供练习者参考。如果练习者选择顺序练习模式,则通过显示装置顺序显示26个瑜伽基本体式的标准瑜伽动作视频供练习者参考,而无需进行动作识别分类。如果练习者选择固定体式练习模式,则根据显示装置显示26个瑜伽基本体式列表,练习者选择需要练习的体式后,通过显示装置显示该体式对应的标准瑜伽动作视频供练习者参考。当前瑜伽动作视频的采集长度可根据练习需求进行设定。

步骤210:对当前瑜伽动作视频进行预处理;

在步骤210中,对当前瑜伽动作视频进行预处理具体包括:

步骤2101:对当前瑜伽动作视频进行向下采样处理;

步骤2102:提取当前瑜伽动作视频中以练习者为中心的边界框,并裁剪掉边界框之外的多余背景;

步骤2103:将剪裁后的当前瑜伽动作视频帧由rgb图转化为灰度图,完成当前瑜伽动作视频的数据预处理;

步骤220:将预处理后的当前瑜伽动作视频输入张量递归神经网络模型,通过张量递归神经网络模型将该瑜伽动作视频进行识别与分类后,输出对应的瑜伽动作标签,并根据瑜伽动作标签显示标准瑜伽动作视频。

在瑜伽动作识别阶段,本申请通过采集用户的瑜伽动作视频,相对于图像能够保留更多的特征信息,在数据预处理时无需依赖任何人工标注特征,直接将瑜伽动作视频作为原始输入,并利用已经训练好的张量递归神经网络模型对瑜伽动作视频进行识别分类,无需与标准瑜伽动作视频进行对比就可以直接输出分类结果,使得识别和分类的速度更快,并保证了识别的精度。同时,本申请可以根据分类结果显示标准瑜伽动作视频供练习者参考,从而达到辅助练习瑜伽的目的。

请参阅图13,是本申请实施例的基于机器视觉的运动辅助系统的结构示意图。本申请实施例的基于机器视觉的运动辅助系统包括指导装置和显示装置,指导装置和显示装置相互连接。指导装置用于采集一定人数的受试者的标准瑜伽动作视频,采用深度学习算法根据采集的标准瑜伽动作视频构建张量递归神经网络模型;并在练习者练习瑜伽过程中,实时采集练习者的当前瑜伽动作视频,通过张量递归神经网络模型对当前瑜伽动作视频进行识别与分类后,通过显示装置显示对应的标准瑜伽动作视频供练习者参考练习。

具体地,指导装置包括第一视频采集模块、第一数据预处理模块、第二数据预处理模块、模型构建模块、第二视频采集模块、第三数据预处理模块、视频识别与分类模块;

第一视频采集模块:用于在模型训练阶段采集100个受试者一定数量的瑜伽体式的标准瑜伽动作视频;第一视频采集模块优选为摄像头;在采集时,所有受试者的标准瑜伽动作视频均在相似且同质的背景下进行采集,且每个受试者在视频中每个相同动作各重复4次,动作之间有短暂间隔(长度在8到30秒之间)。采集的视频每帧大小为120×160像素,视频帧数为每秒25帧。

第一数据预处理模块:用于按照各个标准瑜伽动作视频之间的间隔将每个标准瑜伽动作视频分别分割成只包含单个动作的短视频,以分割得到的短视频作为训练样本构建瑜伽动作视频训练集;其中,分割后的短视频的长度在2秒~7秒之间,分割后,即可得到包含了10400个(26×100×4)短视频的瑜伽动作视频训练集,再利用瑜伽动作视频训练集中的每个训练样本分别生成它们的垂直翻转和镜像版本,以增加示例数。

第二数据预处理模块:用于对瑜伽动作视频训练集进行数据预处理;数据预处理具体包括:对瑜伽动作视频训练集中的短视频进行向下采样处理,提取每个向下采样处理后的短视频中以人为中心的边界框,并裁剪掉边界框之外的多余背景,并将剪裁后的短视频帧由rgb图转化为灰度图。

模型构建模块:用于根据预处理后的瑜伽动作视频训练集构建张量递归神经网络模型;其中,张量递归神经网络模型的构建具体包括:首先,设计张量卷积神经网络,自动学习瑜伽动作视频训练集中每个短视频的时空特征;然后,再使用从张量卷积神经网络中学习到的瑜伽动作时空特征训练张量递归神经网络模型,通过张量递归神经网络模型根据26个瑜伽动作标签对标准瑜伽动作视频进行分类;本申请通过设计张量卷积神经网络,可以直接接收原始瑜伽动作短视频的输入,而不需要对训练集数据进行复杂的预处理。

上述中,整个张量递归神经网络模型包括输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层、张量递归层和输出层;输入层、第一卷积层、第一校正层、第一池化层、第二卷积层、第二校正层、第二池化层、第三卷积层依次连接,张量递归层全连接到第三卷积层,输出层全连接到张量递归层。具体地:

输入层:输入为34×54×9的张量;34×54×9的张量对应瑜伽动作视频训练集中短视频的9个连续的帧,每个帧的图像分辨率为34×54。

第一卷积层:采用7×7×5的卷积核,在34×54×9的张量上计算出瑜伽动作的7个特征;经过第一卷积层卷积后,张量规模变为28×48×5;在第一卷积层中,激励函数采用tanh函数,即yc1=tanh(∑wc1xc1+bc1),其中yc1表示第一卷积层的输出,xc1表示第一卷积层的输入,xc1,yc1表示张量,wc1,bc1分别表示权重和偏置量。

第一校正层:由于在第一卷积层中采用的激励函数tanh存在负值,因此在第一卷积层后加入第一校正层,进行简单的取绝对值的操作,经过第一校正层后校正后张量的规模不变;

第一池化层:采用2×2的池化窗口对张量进行最大池化,以保证提取的瑜伽动作特征的平移不变性,经过第一池化层池化后,张量规模变为14×24×5;

第二卷积层:采用5×5×3的卷积核,在14×24×5的张量上算出瑜伽动作的35个特征;经过第二卷积层卷积后,张量规模变为10×20×3;第二卷积层中也采用tanh激励函数,即yc2=tanh(∑wc2xc2+bc2),其中yc2表示第二卷积层的输出,xc1表示第二卷积层的输入,xc2,yc2表示张量,wc2,bc2分别表示权重和偏置量;

第二校正层:同第一校正层,对第二卷积层激励函数取绝对值;

第二池化层:同第一池化层,采用2×2的池化窗口对张量进行最大池化,经过第二池化层池化后,张量规模变为5×10×3;

张量第三卷积层:采用3×3×3的卷积核,在5×10×3的张量上算出5个瑜伽动作特征;经过张量第三卷积层卷积后,张量规模变为3×8×1,再将张量转换成大小为120的向量(5×3×8×1);

张量递归层:采用一定数量的张量递归神经网络细胞,全连接到第三卷积层;本申请在第三卷积层的输出与张量递归层之间引入张量秩一分解,对第三卷积层输入到张量递归层的瑜伽动作特征张量序列的分量进行张量秩一分解,并以分解后的形式进行存储,也就是将瑜伽动作特征进行张量秩一分解后,输入张量递归层;其中,秩一张量(rank-onetensor)为:数学上,若一个n阶张量能够表示成n个向量的外积,则该张量称为秩一张量。张量秩一分解(tensorrank-onedecomposition)为:在数学上,张量秩一分解,是将一个张量分解成一系列秩一张量的线性组合。张量秩一分解能够获得张量对象更加紧凑和更有意义的表示。如n阶张量长度为r的张量秩一分解为

在公式(1)中,为张量秩一分解第r个分量,对应第n阶的向量,表示张量外积积运算。如果r=1,则张量为秩一张量,如果r为的张量秩一分解的最小秩一张量个数,则r为张量的秩。

如图4所示,为瑜伽动作特征二阶张量的张量秩一分解示意图。其中,i1=4、i2=6分别二阶张量各个阶的维数,a第一阶,b第二阶,第k分量表示第k重要的成分(k=1,2,...r),最右边的两个矩阵为张量的因子矩阵,数量等于张量的阶数。张量秩一分解的物理意义为提取二维瑜伽动作特征的主成分。

输出层:输出层全连接到张量递归层,输出26个瑜伽动作标签;输出层采用softmax激励函数,公式为:

yi=softmax(∑jwi,jxj+bi),(2)

在公式(2)中,yi表示属于瑜伽动作i的概率,wi,j代表权重,bi代表瑜伽动作i的偏置量,xj表示输出层输入,j代表张量递归层节点j,即张量递归层的节点索引。

张量递归神经网络可以学习时间序列相关信息,适合于处理视频等与时间序列有关的信息,因此本申请实施例在张量卷积神经网络之后引入张量递归层,使得瑜伽动作视频能够更好地被分类。

具体如图5所示,为张量递归神经网络细胞整体结构示意图(本图中包含3个时序的张量递归神经网络细胞)。本申请实施例中采用的张量递归神经网络细胞主要包括3层门结构,通过3层门结构去除或者增加信息到张量递归神经网络细胞状态的能力,即瑜伽动作视频的时空信息可以通过3层门结构被有选择地遗忘或保存。所述3层门分别为忘记门层、输入门层、输出门层,结构具体如下:

1、忘记门层(forgetgate):用于控制张量递归神经网络细胞对上一时序瑜伽动作时空特征的遗忘程度(即控制着上一时间点的瑜伽动作特征有多少被保留)。忘记门层结构如图6所示。该门读取上一时序的lstm细胞输出ht-1和本时序输入xt,经过sigmoid激励函数输出一个在0到1之间的数值ft给细胞状态ct-1。忘记门层公式如下:

ft=σ(wf·[ht-1,xt]+bf)(3)

2、输入门层(inputgate):用于控制张量递归神经网络细胞本时序有关瑜伽动作时空特征的细胞状态ct(即控制当前时间点输入多少新的瑜伽动作特征)。具体如图7所示,为输入门层结构示意图。输入门层包含两个部分,其中:

第一部分:通过一个sigmoid门决定输入值更新程度it;然后一个tanh门创建一个新的细胞状态的候选值向量;请一并参阅图7,是输入门层第一部分结构示意图。输入门层第一部分公式如下:

it=σ(wi·[ht-1,xt]+bi)(4)

第二部分:通过输入值更新程度it和新细胞状态的候选值向量更新细胞状态ct(即控制向下一个时间点输出多少当前时间点的瑜伽动作特征)。一个乘法门把旧状态ct-1与遗忘程度ft相乘,接着加上更新程度产生新的候选值即本时序的细胞状态ct。具体请参阅图8,为输入门层第二部分结构示意图。输入门层第二部分公式如下:

3、输入门层(outputgate):用于确定本时序张量递归神经网络细胞输出值ht,在本申请实施例中指本时序学习到的瑜伽动作时空特征对下一时序张量递归神经网络细胞的影响,该输出值基于细胞状态ct。首先,一个sigmoid门来确定细胞状态输出程度ot,接着,细胞状态通过tanh门进行处理,得到一个在-1到1之间的值tanh(ct),并再通过一个乘法门将它和sigmoid的输出ot相乘,最终得到输出值ht。具体请参阅图9,为输出门层结构示意图。输出门层公式如下:

ot=σ(wo[ht-1,xt]+bo)(7)

ht=ot*tanh(ct)(8)

在张量递归神经网络的时序与时序之间的全连接中,本申请引入张量列分解/tt分解(tensortraindecomposition)。张量递归神经网络隐藏层的自连接属于向量到向量的全连接,将瑜伽动作特征矩阵与lstm((longshort-termmemory,长短时记忆网络)全连接的权值矩阵进行张量列分解,以tt-format表示,降低全连接参数的规模。假设全连接瑜伽动作特征的权值矩阵规模为50×50,采用的重构方案可为2×25和2×25,设置tt-rank为(1,r,1),将瑜伽动作特征的权值矩阵映射到(2×25)×(2×25)的矩阵(二阶张量),在进行张量列分解得到权值矩阵的tt-format表示,不同r值对应不同规模的tt-format表示,随着权值参数的规模与r值成正比,选择合适的r值能够减少张量递归层的空间复杂度及计算量,起到缩减网络参数规模的效果。

上述中,张量列分解(tensortraindecomposition,tt-decomposition)是一种张量分解模型,将张量的每一个元素都用若干个矩阵的乘积表示。假设存在d阶张量(ik表示第k阶的维数),张量的张量列分解为:

在公式(9)中,是张量第k阶级对应的核矩阵,规模为rk-1×rk,k=1,2,...d,ro=rd=1;(r0,r1,…rd)是d阶张量进行张量列时对应的tt-rank,实际上是规模为rk-1×ik×rk三阶张量,所以又叫核张量。具体如图10所示,为三阶张量的张量列分解示意图。

矩阵的张量列分解:

假设矩阵a∈rm×n,选择重构方案,如重构方案:选定重构方案后,瑜伽特征矩阵的张量列分解首先将瑜伽特征矩阵映射到d阶张量再对张量进行张量列分解,即具体如图11所示,为二阶张量(矩阵)的张量列分解示意图。

基于上述,本申请实施例在张量递归神经网络模型的训练阶段,以有标签的瑜伽动作短视频为输入,经过张量卷积层的卷积、校正、池化等过程进行处理,将每个三维的瑜伽动作短视频分别处理成为多个一维的瑜伽动作特征。一维瑜伽动作特征与张量递归神经网络层进行全连接,把瑜伽动作特征输入到张量递归神经网络层,并依次经过张量递归神经网络层的输入门层、遗忘门和输出门层之后,输出不同的瑜伽动作标签,由瑜伽动作标签值与真实值的差来构造损失函数,并通过梯度下降算法和反向传播算法来调节不同层的参数值。训练完成后,即可得到一个以短视频作为输入、并输出26个瑜伽动作标签的张量递归神经网络模型。本申请通过选用50个张量递归神经网络细胞作为张量递归层,并与张量卷积网络中的第三卷积层全连接进行测试,由于张量递归层的加入和张量分解的引入,张量递归神经网络模型对于瑜伽动作视频的分类准确率得到了较大提高。

第二视频采集模块:用于在瑜伽动作识别阶段实时采集练习者的当前瑜伽动作视频;第二视频采集模块优选为摄像头;在开始练习前,练习者可以选择练习模式,例如自由练习模式、顺序练习模式、固定体式练习模式等,并在练习时根据需求进行选择。如果练习者选择自由练习模式,则需对当前瑜伽动作视频进行识别和分类后,通过显示装置显示与当前瑜伽动作视频对应的标准瑜伽动作视频供练习者参考。如果练习者选择顺序练习模式,则通过显示装置顺序显示26个瑜伽基本体式的标准瑜伽动作视频供练习者参考,而无需进行动作识别分类。如果练习者选择固定体式练习模式,则根据显示装置显示26个瑜伽基本体式列表,练习者选择需要练习的体式后,通过显示装置显示该体式对应的标准瑜伽动作视频供练习者参考。当前瑜伽动作视频的采集长度可根据练习需求进行设定。

第三数据预处理模块:用于对当前瑜伽动作视频进行数据预处理;数据预处理具体包括:对当前瑜伽动作视频进行向下采样处理后,提取当前瑜伽动作视频中以练习者为中心的边界框,裁剪掉边界框之外的多余背景,并将剪裁后的瑜伽动作视频帧由rgb图转化为灰度图。

视频识别与分类模块:用于将预处理后的当前瑜伽动作视频输入训练好的张量递归神经网络模型,通过张量递归神经网络模型将该瑜伽动作视频进行识别与分类后,输出对应的瑜伽动作标签,并通过显示装置根据瑜伽动作标签显示对应的标准瑜伽动作视频。

显示装置包括显示模块和人机交互模块;

显示模块用于显示运动项目列表、练习模式列表、体式列表等信息,练习者可根据显示信息进行选择;并根据练习者的选择或指导装置的分类结果显示标准瑜伽动作视频;

人机交互模块用于练习者与指导装置之间的信息交互,个人资料、个人偏好、时间设置等,以根据个人需求对指导装置进行相应的控制操作。

在本申请实施例中,指导装置为包括但不限于电视、pc、智能手机或pad等电子设备。

本申请实施例的基于机器视觉的运动辅助方法及系统通过深度学习算法构建张量递归神经网络模型,在运动过程中,将练习者的动作视频输入张量递归神经网络模型进行识别与分类后,显示对应的标准动作视频供练习者参考。与现有技术相比,本申请具有以下有益效果:

1、引入深度学习算法,且不需要复杂的预处理或者人工标注,使动作识别的精度更高;

2、利用已经训练好的张量递归神经网络模型来对动作视频进行直接识别,不需要再与标准动作进行对比就可以直接输出识别结果,具有更快的识别和检测速度;

3、通过视频的方式直接采集练习者的动作视频,而无需通过心率、血氧等间接数据获取,保证了源信息的完整性;

4、标准的动作视频也以动作图像的方式保存和表现,保证了作为标准对比信息的标准性;

5、不需要穿戴附加设备,优化了用户使用体验。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1