发布日期:2024-09-02 浏览次数:次
本公开涉及运动分析,尤其涉及一种运动分析方法及装置、穿戴设备、存储介质。背景技术:1、现如今,越来越多的人们为了自身的健康,提高了对运动的重视程度。游泳、跑步等运动作为一种非常有助于提高体能的运动形式,深受人们喜爱。通常,用户可以通过如穿戴设备获悉运动过程中的运动数据以及分析运动结果等,如何提高运动分析结果的准确性,亟待解决。技术实现思路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、在一些实施例中,所述运动数据包括加速度数据以及运动姿态数据;所述根据所述单次划水时长内的运动数据以及所述目标解算方程,确定所述用户在所述单次划水时长内游泳的航向角,包括:27、在所述单次划水时长内的加速度数据满足预设加速度条件的情况下,将所述加速度数据对应的时刻确定为目标时刻;28、利用所述目标解算方程,对所述目标时刻下的运动姿态数据进行处理,得到所述航向角。29、在一些实施例中,所述利用所述目标解算方程,对所述目标时刻下的运动姿态数据进行处理,得到所述航向角,包括:30、确定所述单次划水时长内所述目标时刻下的运动姿态数据、与相邻单次划水时长内所述目标时刻下的运动姿态数据之间的差异;31、在所述差异大于预设差异阈值的情况下,利用所述目标解算方程,对所述单次划水时长内所述目标时刻下的运动姿态数据进行处理,得到所述航向角。32、在一些实施例中,所述根据所述用户在所述各单次划水时长内游泳的航向角,确定所述用户是否转身,包括:33、根据所述各单次划水时长内游泳的航向角,确定航向角阈值;34、在相邻单次划水时长内的航向角之间的差异大于所述航向角阈值的情况下,确定所述用户转身;35、或,在相邻单次划水时长内的航向角之间的差异小于或等于所述航向角阈值的情况下,确定所述用户未转身。36、在一些实施例中,所述运动数据包括所述用户的不同身体部位的多个子运动数据;37、所述根据各时间窗口内的运动状态以及所述用户在所述预设时长内的运动数据,确定所述用户的运动分析结果,包括:38、针对所述多个时间窗口中的每一时间窗口,确定所述时间窗口内预设目标部位的子运动数据是否包括极值;在所述时间窗口内所述预设目标部位的子运动数据包括极值的情况下,根据所述时间窗口内的运动状态以及所述时间窗口内所述预设目标部位的子运动数据的极值,确定所述时间窗口内所述预设目标部位的第一子运动分析结果;39、在所述时间窗口内所述预设目标部位的子运动数据不包括所述极值的情况下,根据所述时间窗口内的运动状态以及所述时间窗口内所述预设目标部位之外的部位的子运动数据,确定所述时间窗口内所述预设目标部位之外的部位的第二子运动分析结果;40、根据各时间窗口对应的所述第一子运动分析结果或所述第二子运动分析结果,确定所述运动分析结果。41、在一些实施例中,所述运动包括游泳运动;所述根据所述时间窗口内的运动数据,确定所述用户在所述时间窗口内的运动状态,包括:42、利用游泳状态识别模型对所述时间窗口内的运动数据进行处理,得到所述用户在所述时间窗口内游泳的游泳状态,并将所述游泳状态确定为所述运动状态;其中,所述游泳状态识别模型是利用运动数据样本进行训练得到的。43、在一些实施例中,所述运动数据样本包括多趟次游泳过程中采集的运动数据样本;同一趟次中的运动数据样本对应有相同的趟次标识;44、所述方法还包括:45、针对所述多趟次中的每一趟次,基于相同趟次标识对应的运动数据样本和预设损失函数对初始模型进行训练,得到所述相同趟次标识对应的损失结果;46、根据各趟次标识对应的损失结果,调整所述初始模型的参数,得到所述游泳状态识别模型。47、在一些实施例中,所述运动分析结果还包括趟次的泳姿;所述时间窗口内的运动状态包括游泳对应的泳姿类型;所述根据各时间窗口内的运动状态以及所述用户在所述预设时长内的运动数据,确定所述用户的运动分析结果,包括:48、根据所述用户是否转身的判断结果,确定游泳的趟次;49、根据所述趟次,统计属于同一趟次的各单次划水时长内的泳姿类型的不同数量;50、将最大数量的泳姿类型确定为所述同一趟次的泳姿。51、根据本公开实施例的第二方面,提供一种运动分析装置,包括:52、获取模块,用于获取用户在预设时长内的运动数据;其中,所述预设时长内的运动数据包括多个时间窗口内的运动数据;53、第一确定模块,用于针对每一时间窗口,根据所述时间窗口内的运动数据,确定所述用户在所述时间窗口内的运动状态;54、第二确定模块,用于根据各时间窗口内的运动状态以及所述用户在所述预设时长内的运动数据,确定所述用户的运动分析结果。55、在一些实施例中,所述运动包括游泳运动;所述运动分析结果包括单次划水时长和/或转身;所述第二确定模块,用于确定所述预设时长内的运动数据的极值;根据所述各时间窗口内的运动状态以及所述运动数据的极值,确定所述单次划水时长;和/或,根据所述预设时长中各单次划水时长内的运动数据、以及所述各单次划水时长所属时间窗口内的运动状态,确定所述用户是否转身。56、在一些实施例中,所述时间窗口内的运动状态包括游泳或非游泳的状态;所述第二确定模块,用于根据所述运动数据的极值对所述预设时长进行划分,得到多个时间段;其中,每一时间段至少包括一个极值;将所述运动状态为游泳的时间窗口所对应的时间段作为目标时间段;根据各目标时间段内的运动数据的极值,确定所述单次划水时长。57、在一些实施例中,所述第二确定模块,用于针对所述各目标时间段中的每一目标时间段,确定所述目标时间段内的运动数据与相邻目标时间段内的运动数据之间的差异;在所述差异小于预设差异阈值的情况下,根据所述目标时间段内的运动数据的极值,确定所述单次划水时长。58、在一些实施例中,所述时间窗口内的运动状态包括游泳对应的泳姿类型;所述第二确定模块,用于针对每一单次划水时长,根据预设解算关系,确定与所述单次划水时长所属时间窗口内的泳姿类型对应的目标解算方程;其中,所述预设解算关系包括泳姿类型与解算方程之间的对应关系;根据所述单次划水时长内的运动数据以及所述目标解算方程,确定所述用户在所述单次划水时长内游泳的航向角;根据所述用户在所述各单次划水时长内游泳的航向角,确定所述用户是否转身。59、在一些实施例中,所述运动分析结果包括游泳趟次;所述装置还包括:60、获得模块,用于获取泳池的长度;61、所述第二确定模块,用于在确定所述用户转身的情况下,根据各时间窗口内的运动状态以及所述用户在所述预设时长内的运动数据,确定所述用户在所述泳池中的位置;根据所述位置以及所述泳池的长度,确定所述用户的所述游泳趟次。62、在一些实施例中,所述运动数据包括加速度数据以及运动姿态数据;所述第二确定模块,用于在所述单次划水时长内的加速度数据满足预设加速度条件的情况下,将所述加速度数据对应的时刻确定为目标时刻;利用所述目标解算方程,对所述目标时刻下的运动姿态数据进行处理,得到所述航向角。63、在一些实施例中,所述第二确定模块,用于确定所述单次划水时长内所述目标时刻下的运动姿态数据、与相邻单次划水时长内所述目标时刻下的运动姿态数据之间的差异;在所述差异大于预设差异阈值的情况下,利用所述目标解算方程,对所述单次划水时长内所述目标时刻下的运动姿态数据进行处理,得到所述航向角。64、在一些实施例中,所述第二确定模块,用于根据所述各单次划水时长内游泳的航向角,确定航向角阈值;在相邻单次划水时长内的航向角之间的差异大于所述航向角阈值的情况下,确定所述用户转身;或,在相邻单次划水时长内的航向角之间的差异小于或等于所述航向角阈值的情况下,确定所述用户未转身。65、在一些实施例中,所述运动数据包括所述用户的不同身体部位的多个子运动数据;所述第二确定模块,用于针对所述多个时间窗口中的每一时间窗口,确定所述时间窗口内预设目标部位的子运动数据是否包括极值;在所述时间窗口内所述预设目标部位的子运动数据包括极值的情况下,根据所述时间窗口内的运动状态以及所述时间窗口内所述预设目标部位的子运动数据的极值,确定所述时间窗口内所述预设目标部位的第一子运动分析结果;在所述时间窗口内所述预设目标部位的子运动数据不包括所述极值的情况下,根据所述时间窗口内的运动状态以及所述时间窗口内所述预设目标部位之外的部位的子运动数据,确定所述时间窗口内所述预设目标部位之外的部位的第二子运动分析结果;根据各时间窗口对应的所述第一子运动分析结果或所述第二子运动分析结果,确定所述运动分析结果。66、在一些实施例中,所述运动包括游泳运动;所述第一确定模块,用于利用游泳状态识别模型对所述时间窗口内的运动数据进行处理,得到所述用户在所述时间窗口内游泳的游泳状态,并将所述游泳状态确定为所述运动状态;其中,所述游泳状态识别模型是利用运动数据样本进行训练得到的。67、在一些实施例中,所述运动数据样本包括多趟次游泳过程中采集的运动数据样本;同一趟次中的运动数据样本对应有相同的趟次标识;所述装置还包括:68、训练模块,用于针对所述多趟次中的每一趟次,基于相同趟次标识对应的运动数据样本和预设损失函数对初始模型进行训练,得到所述相同趟次标识对应的损失结果;根据各趟次标识对应的损失结果,调整所述初始模型的参数,得到所述游泳状态识别模型。69、在一些实施例中,所述运动分析结果还包括趟次的泳姿;所述时间窗口内的运动状态包括游泳对应的泳姿类型;所述第二确定模块,用于根据所述用户是否转身的判断结果,确定游泳的趟次;根据所述趟次,统计属于同一趟次的各单次划水时长内的泳姿类型的不同数量;将最大数量的泳姿类型确定为所述同一趟次的泳姿。70、根据本公开实施例的第三方面,提供一种穿戴设备,包括:71、处理器;用于存储处理器可执行指令的存储器;72、其中,所述处理器被配置为执行如上述第一方面中所述的方法。73、根据本公开实施例的第四方面,提供一种存储介质,包括:74、当所述存储介质中的指令由穿戴设备的处理器执行时,使得所述穿戴设备能够执行如上述第一方面中所述的方法。75、本公开的实施例提供的技术方案可以包括以下有益效果:76、在本公开的实施例中,由于不同运动状态下的运动数据差异较大,本公开实施例根据各时间窗口内的运动数据,确定用户在各时间窗口内的运动状态;进而将各时间窗口内的运动状态与用户在预设时长内的运动数据相结合,共同确定用户的运动分析结果,可以提高确定运动分析结果的准确性。77、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。