首页 / 一种辅助高尔夫运动训练的方法及计算机程序产品

一种辅助高尔夫运动训练的方法及计算机程序产品实质审查 发明

技术领域

[0001] 本发明涉及高尔夫运动技术领域,特别是涉及一种辅助高尔夫运动训练的方法及计算机程序产品。

相关背景技术

[0002] 随着高尔夫运动在全球的推广与普及,越来越多的人喜欢高尔夫运动,但是由于高尔夫运动场地的限制、高尔夫运动技术性强、动作规范性高及学习难度大,通常需要专职的教练,所以整个运动练习的费用比较高。目前,为了提高训练水平和降低训练费用,各种高尔夫模拟训练器应运而生,目前主流的一是通过特定的辅助器具来矫正动作;二是通过图像识别,记录学员的动作,再和标准的名人动作对比来矫正动作。
[0003] 但是,采用辅助器具存在的不足包括:与实际球场的运动场景不相符,例如,需要佩戴各种检测传感器,这将导致肢体运动不舒适。此外,目前的图像对比方法,所采用的标准参考模型通常是比较固定的,而且一般是参考知名球星的动作或是固定的标准动作。然而,不同的学员因为各自不同的身体素质和球技,很难完成球星的动作;这大大影响了学员的学习积极性;而且,同时勉强去模仿球星的动作也容易造成运动损伤。

具体实施方式

[0046] 为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
[0047] 现结合附图和具体实施方式对本发明进一步说明。
[0048] 实施例一:
[0049] 图1为本发明一实施例的辅助高尔夫运动训练的方法的流程示意图。如图1,该实施例的辅助高尔夫运动训练的方法包括如下步骤:
[0050] 数据采集:
[0051] 获取用户当次挥杆的视频及对应的模拟器数据,模拟器数据包括当次挥杆的击球及球飞行数据,视频使用视频采集设备获取,模拟器数据使用高尔夫球模拟器获取。
[0052] 数据采集包括通过视频采集设备对挥杆动作的视频数据采集和通过高尔夫球模拟器对击球和球飞行数据的采集。
[0053] 在具体实现中,挥杆动作的视频但不限于通过现场视频采集设备采集的视频数据,还包括预先采集好上传的视频文件、通过不同角度的高清摄像头拍摄的视频或通过智能终端如手机拍摄的视频。
[0054] 在使用PC端的情况下,可以通过连接1个或者多个摄像头(优选地,6个以内)和运动传感器、陀螺仪、深度相机进行挥杆数据采集;在使用移动设备的情况下,通过WIFI或者局域网,可以连接多个角度的摄像头、陀螺仪。其中,球杆数据、击球和球飞行的数据通过模拟器上的高速摄像头采集。
[0055] 数据分析:
[0056] 使用预先设定的、与挥杆动作相关的多个人体关键点,对视频中的挥杆动作进行分析,获得与当次挥杆中各挥杆阶段对应的图像帧序列,并进而获得各帧序列对应的人体关键点集序列;其中,每一帧图像对应一人体关键点集;其中,一次挥杆动作被设定为包含预定的多个挥杆阶段;一种具体实现中,将一次挥杆动作设定为包含5个挥杆阶段;在其它实现中,可以将一次挥杆动作设定为包含小于5个或多于5个的挥杆阶段;
[0057] 根据每一挥杆阶段所包含的人体关键点集序列中人体关键点之间的关系,确定当次挥杆动作对应的多项动作特征。
[0058] 一种具体实现中,在使用高清摄像头准确抓取用户的挥杆视频和通过模拟器采集击球和球飞行数据后,通过以下步骤对整个挥杆过程进行建模与分析。
[0059] (1)人体关键点提取
[0060] 在该具体实现中,对每一帧视频图像中的人体,标注了29个关键点,具体如图2所示。图2中,这29个关键点包括:位于鼻梁上的点0、位于左眼的点1、位于右眼的点2、位于左脸颊的点3、位于右脸颊的点4、位于左肩的点5、位于右肩的点6、位于左手肘的点7、位于右手肘的点8、位于左手腕的点9、位于右手腕的点10、位于左胯的点11、位于右胯的点12、位于左膝的点13、位于右膝的点14、位于左腿的点15、位于右腿的点16、位于左脚的点17、18和19、位于右脚的点20、21和22、位于右嘴角的点23、位于左嘴角的点24、位于左手大拇指的点
25、位于右手大拇指的点26、位于下巴上的点28。本领域的普通技术人员知晓,选择29个关键点仅为示例性的,在不付出创造性劳动的情况下,可以选择其它更多或更少在人体上的、与高尔夫挥杆动作相关的关键点。
[0061] 一种具体实现中,采用如YoloPose、HRNet、PPDetection等的人体和人体关键点检测模型进行训练,获得本发明实施例的人体关键点检测模型Mpose。使用模型Mpose对挥杆视频如视频V中各图像帧中的人体和人体关键点进行检测。具体地,将视频V经过解码提取出的每一帧或采样获得的第k帧Framek,使用模型Mpose进行推理运算和归一化运算Norm,获得如图2所示的图像中人体框Rectk和人体关键点集Pk={p0,…,p28},其中人体框如图2中的红色框所示,即:
[0062] Rectk,Pk=Norm(Mpose(Framek))。
[0063] Rectk,Pk包含了框所在图像的左上角坐标和宽度、高度,即[x,y,w,h]。关键点集Pk包含了29个关键点{p0,…,p28},如图2中的绿色圆点所示,每个关键点为点在图像中的坐标位置[x,y]。
[0064] 由于检测过程中可能出现遮挡、角度等问题,Mpose预测出的关键点值可能会出现异常值或离群点。为了解决这个问题,优选地,采用关键点滤波算法对Mpose预测出的关键点进行平滑处理。一种实现中,对于Mpose预测出的Rectk和Pk,使用低通滤波运算H(·)和Pk的2t个上下文信息进行滤波运算,得到与人体关键点集Pk对应的平滑的预测值即预测点集P′k,即:
[0065] P′k=H([Pk‑t,…,Pk+t])
[0066] (2)挥杆动作序列检测
[0067] 通过关键点提取步骤得到视频V的关键点序列后,为了能检测一个挥杆动作在视频中具体的位置,通过训练基于PoolFormer网络结构的序列检测网络,获得用于对一个挥杆动作进行检测的模型MpF。
[0068] 该例中,视频V中可能包含一个或多个完整的挥杆动作。
[0069] 针对通过关键点提取和滤波步骤得到的视频V的关键点集序列{P′0,…,P′n},该关键点集序列包含n帧图像对应的关键点集;利用MpF进行挥杆动作检测,得到包含多个挥杆动作的关键点序列片段{S1,…,Sm},Sk包含的信息为一个挥杆动作中的片段关键点集序列{P′q‑r,...,P′q‑1,P′q},即包含第q‑r帧到第q帧这r+1帧图像中的关键点集;q,r均为自然数;在此,k为变量,取值为1到m的自然数;不同的Si中包含的帧数可以或可能不同。在视频V仅包含一个挥杆动作时,MpF检测出的关键点序列片段只有S1。
[0070] (3)动作分解
[0071] 首先,为了便于后续更详细的动作比对与分析,优选地,对通过挥杆动作序列检测获得的一个挥杆动作包含的动作序列进行对齐和归一化处理。具体地,预先建立一个标准的完整挥杆序列Ss={Pi,...,Pi+z},该序列作为长度或帧数模板,用于标识一个标准的完整挥杆动作包含的帧数。该例中,示例性地,z=240,即以240帧为标准的动作帧数。为了将{S1,...,Sm}的每个元素Sk都对齐到数量为z的动作序列,该例中即每个元素对齐到240帧,预先训练了动作对齐网络Malign;通过使用Malign来将每个挥杆动作都对齐到相同长度,即:
[0072] S′k=Malign(Sk)。
[0073] 这样S′k也包含了240个关键点集
[0074] 该例中,将一个挥杆动作分解成包含如下5个挥杆阶段:上杆(Takeaway)→向后起杆Backswing)→下杆(Downswing)→随球动作(Follow‑Through)→收杆(Finish)。
[0075] 因此,将每个挥杆动作包含的关键点集 按照5个阶段[Takeaway、Backswing、Downswing、Follow‑Through、Finish]五种类型进行截取和分类,并结合PoolFormer‑tiny训练了动作分类模型MPFtiny。并利用经过训练的动作分类模型MPFtiny对S′k进行进一步检测与分类,得到各个阶段动作的关键点序列
其中 里的元素由S′k中包
含的片段关键点集组成。具体参照图3所示。如图3,一个挥杆完整动作的关键点序列经过动作分类后,输出相应阶段动作对应的关键点序列。
[0076] (4)特征空间变换与计算;
[0077] 优选地,为了提升挥杆动作在时空上下文中的比对效果,该实施例中根据上文提及的关键点属性和视频采集方式,训练了NeRF模型MVPN,使用该NeRF模型MVPN可以将多个帧序列映射到标准空间。利用NeRF模型MVPN将图像中检测到的{S1,...,Sm}或{S′1,...,S′m}换算成标准空间中{D1,...,Dm}或{D′1,...,D′m}。图4示出了特征空间的变换。
[0078] (5)动作特征提取
[0079] 通过计算 中每个阶段所包含序列关键点之间的关系,计算当次挥杆动作对应的多项动作特征;其中,上述多项动作特征包括:球员身高体宽比信息、头部位置、五官位置、左肩膀顶点位置、右肩膀顶点位置、左肘位置、右肘位置、左手腕位置、右手腕位置、左髋位置、右髋位置、左膝位置、右膝位置、左脚跟位置、右脚跟位置、左脚尖位置、右脚尖位置、人体骨架线、躯干的欧拉角、姿态倾斜角度、人体转速、选定人体关键点的轨迹、选定身体部位的轨迹、手腕挥杆轨迹和/或挥杆速度等;动作特征的选择根据用户和训练的实际需求来选择;
[0080] 示例性地,通过提取挥杆动作A中单个选定的关键点pj在挥杆动作A下的轨迹序列,可以获得单个关键点的轨迹 其中:
[0081]
[0082] 该例中,假定挥杆动作A包含n帧图像。
[0083] 根据用户的选择和展示的需求,可以获得选定的多个或所有关键点的轨迹;或选定的部位的轨迹;其中,选定部位的轨迹通过该部位上关键点的轨迹来标识。
[0084] 在其它实现中,如图2,获取关键点5即p5和关键点6即p6的中间点pm1,关键点11即p11和关键点12即p12的中间点pm2,连接pm1和pm2可以获得人体鱼骨线LF1,即:
[0085] LF1=Line(pm1,pm2)。
[0086] 在一种实现中,根据教练制定的计划和选择的关注区域或关注的指标,如关注的部位或关注的测量值,如速度、最大转角之类的。例如,在需要计算头部的转向角度变化时,可以计算如图2中的人体关键点5、6和27形成的欧拉角:{Yaw,Pitch,Roll}。
[0087] 因此,针对时刻k可以提取对应的动作特征集合:
[0088] Fk={fi|fi∈RN},N>40;
[0089] 示例性地,当选择超过40个的动作特征时,N大于40;在其它实现中,根据选择的动作特征数量,N可以小于或等于40。
[0090] 优选地,将上述分析获得的当次挥杆的动作特征作为当次挥杆过程的数据存储在与当次挥杆对应的记录中。
[0091] 进一步地,根据当次挥杆的数据,包括上述动作特征数据、通过模拟器获得的击球、球飞行数据、球杆数据等、当次挥杆的视频画面为当次挥杆建模,上述当次挥杆的数据作为该当次挥杆模型的记录中的数据存储在该记录中。进一步地,针对用户的每一个单次挥杆均可进行相应的建模,并将对应的数据作为模型对应的记录存储在模型库中。
[0092] (6)动作比对
[0093] 将当次挥杆的多项动作特征与针对用户预先设置的挥杆个人最优模型对应的多项动作特征在时间和空间上对齐后,对比当次挥杆的多项动作特征中的一项或多项与挥杆个人最优模型对应的多项动作特征中相应的一项或多项,获得当次挥杆与挥杆个人最优模型之间的动作差异;其中,挥杆个人最优模型从用户的历史挥杆动作中预先选择或为用户在教练的指导下设置的挥杆动作;
[0094] 将当次挥杆的击球和/或球飞行数据与挥杆个人最优模型对应的击球和/或球飞行数据进行对比,获得当次挥杆与挥杆个人最优模型之间的挥杆结果差异。
[0095] 具体地,由于拍摄角度差异,优选地,通过归一化方法将获取的动作特征归一化到与选定模型相同的尺度上。然后,对齐到相同的相位即在时间上与预定的上述挥杆长度即帧数模板F,及对齐到人体框的中心坐标。
[0096] FNk(对齐后的值))=Align(Normlize(Fk),F模板)
[0097] 一种具体实现中,对齐方法Align()采用最近邻方法,以使每一时刻采集到的动作能与模型对应的时刻进行匹配。
[0098] 最后,通过时间轴上和空间域的差异计算,获得比对结果;其中比对结果包括动作差异和挥杆结果;其中,动作差异包括:对应时刻选定人体关键点的平均距离、选定人体关键点或身体部位的轨迹相似度、选定向量的向量余弦距离、选定角的角度变化曲线、选定角的角度最大差异、选定速度的速度最大差异和/或姿态倾斜角的最大差异;挥杆结果包括:平均球速差异、最大球速差异、击球点平均距离、出球角差异、飞行距离差异和/或球旋转方向差异。
[0099] 本发明的实施例从动作特征在时间和空间上的变化来比对两个挥杆动作的差异。
[0100] 例如,可以比较两个挥动作A和B的关键点或部位轨迹相对度。具体地,
[0101] 通过提取单个选定的关键点pj在两个挥杆动作A和B下的轨迹序列,可以获得单个关键点的轨迹 和 其中:
[0102]
[0103] 和
[0104]
[0105] 计算,这两个轨迹之间的轨迹序列距离
[0106]
[0107] 的值越接近1的时候,表示A、B两个挥杆动作中的关键点pj在整个挥杆过程中相似度都高;反之,这意味着两个挥杆动作差别较大,针对当前挥杆与个人最优模型中的挥杆进行对比时,意味着当前挥杆的工作差得较多,需要调整。
[0108] 可以进一步计算挥杆动作A和挥杆动作B所包含的所有关键点的轨迹序列距离;还可以进一步计算挥杆动作A和挥杆动作B所包含的所有关键点的轨迹平均距离(MDPT,Mean Distance of Points Trace):
[0109]
[0110] 根据用户的选择,可以选择显示作为比对结果的两次挥杆动作之间的选定关键点的轨迹序列距离和上述所有关键点的轨迹平均距离。
[0111] (7)多视角比对呈现
[0112] 优选地,为了体现真实的差异,该实施例提供了从多视角展示用户挥杆动作和差异的功能。
[0113] 具体实现中,针对当次挥杆中各挥杆阶段对应的图像帧序列中的每一帧,使用经过训练的多视角扩散模型SMD生成多视角视频;其中多视角扩散模型(SMD,Stable MultiView Dffusion)使用通过视频采集设备预先采集的多视角动作画面和视频采集设备的参数、用于将人体区域进行分割处理的实例分割模型SegNet以及人体关节点预先进行训练;且当接收到指令后,从指定的视角进行挥杆动作的展示和/或播放。
[0114] 优选地,为了体现比对效果,本发明实施例利用预定的生成模型,根据挥杆动作包含的动作序列里每一时刻的动作模型如由动作特征表征的模型和用户的形体参数,生成了在透明背景里挥杆的半透明数字人。然后,利用SMD重建特定视角的数字人。最后,在播放过程中,通过指定特定的角度,将重建的半透明数字人叠加于重建的捕捉挥杆画面中。如图5所示,将重建的半透明数字人叠加于重建的捕捉挥杆画面中,可以将最真实的比对差异展现出来。
[0115] 优选地,本发明实施例的方法还包括:根据动作差异和/或挥杆结果差异,提供对当次挥杆的评估、诊断和/或修正建议;和/或根据用户的训练情况和/或考核情况更新挥杆个人最优模型。
[0116] 优选地,本发明实施例的方法还包括:根据挥杆结果的差异,按照预先设定的分档规则,将当次挥杆的动作进行分档;分档体现了当次挥杆的好坏。
[0117] 实施例二:
[0118] 图6为使用本发明一实施例的辅助高尔夫运动训练的方法进行训练和考核的流程示意图。
[0119] 该实施例中,用户在教练的指导下进行挥杆,将该用户自身的挥杆动作中满足预定挥杆质量的挥杆设定为用户自身的个人最优模型。根据该个人最优模型,教练可以为学员设置多个训练计划,学员在训练的过程中,通过比对自身的挥杆动作与当前的个人最优模型,来判断自身的训练情况。在训练计划完成后,可以设置考试;通过比对用户在考试时的挥杆动作与当前的个人最优模型,来评估用户是否通过考试。如果用户通过考试,则可以根据下一步的训练计划更新当前的个人最优模型。本发明实施例中,是基于用户在专业教练指导下制定的个人最优模型进行比对的;该技术方案充分考虑了用户的身体条件、技术水平和个人特点,为用户提供最符合自己实际情况的训练方案;能够实现安全、循序渐进的提升。
[0120] 如图6,使用本发明实施例的方法在辅助用户训练或考试时,针对学员当前的挥杆进行数据采集、数据分析和挥杆建模;并将针对当前的挥杆建立的模型与预先设置的个人最优模型进行比对。
[0121] 本发明实施例的挥杆建模包括:
[0122] a.根据用户提供的身高、体重、性别等基本信息,为用户生成一个基础的数字人模型;一种实现中,在用户注册并输入上述基本信息时,即可为用户生成上述作为基础的初始数字人模型;
[0123] b.初始的个人最优模型在教练指导下选取,具体可以从上传的多段个人初始最优挥杆视频中选择一个挥杆动作视频作为个人最优模型;后续根据训练的分析比对结果或者考试结果进行个人最优模型更新。
[0124] c.建模过程:根据实施例一中所提及的数据分析步骤获得的结果,提取当前挥杆视频动作中每一帧的挥杆数据,包括但不限于:人体在画面中的坐标位置、人体关键点位置、人体骨架线、躯干的欧拉角、人体转速、躯干角度、击球位置、出球速度、飞行角度等;
[0125] d.对数据进行归一化处理;
[0126] e.将根据当前挥杆数据更新的数据保存到模型库中。
[0127] f.利用SMD模型和更新的模型库数据,为用户更新多视角数字人。
[0128] 使用用户单次挥杆过程中的相关数据,如动作特征数据和与单次挥杆对应的击球及球飞行数据等对单次挥杆过程进行建模,并将单次挥杆过程对应的相关挥杆数据作为对应模型的记录存储在模型库中。具体地,模型库的每一条记录存储了与单次挥杆过程对应的挥杆数据,与单次挥杆过程对应的挥杆数据包含但不限于:完整挥杆动作画面、击球位置、出球角度、出球速度、飞行距离、旋转方向、旋转速度、球员身高体宽比信息、头部位置、五官位置、左肩膀顶点位置、右肩膀顶点位置、左肘位置、右肘位置、左手腕位置、右手腕位置、左髋位置、右髋位置、左膝位置、右膝位置、左脚跟位置、右脚跟位置左脚尖位置、右脚尖位置、球杆位置、人体骨架线、躯干的欧拉角、姿态倾斜角度、人体转速、手腕挥杆轨迹、杆头轨迹、人体转速和/或挥杆速度等。上述记录包含单次挥杆的动作特征和相应的击球及球飞行数据。
[0129] 其中,针对被选为个人最优模型的挥杆视频或挥杆过程,同样进行如实施例一中的数据分析,并获得上述与个人最优模型中的挥杆过程相关的上述数据作为个人最优模型的记录存储在模型库中。在进行两个挥杆动作的比对时,可以直接从模型库中提取相应的记录数据进行比对。进一步地,还可以使用记录中的数据计算出所需比对的其它数据以进行分析或比对。
[0130] 实施例三:
[0131] 本发明还提供一种辅助高尔夫运动训练的装置,该装置包括处理器和存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明上述方法实施例中的步骤。
[0132] 本发明实施例的方法可以实现为软件;该软件可以在移动终端或PC端上执行。
[0133] 实施例四:
[0134] 本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
[0135] 实施例五:
[0136] 本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的方法的步骤。
[0137] 尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

当前第1页 第1页 第2页 第3页
相关技术
程序产品相关技术
计算机程序相关技术
姚灿荣发明人的其他相关专利技术