一种基于智能手表的游泳运动分析方法和该智能手表 |
|||||||
申请号 | CN201710701918.2 | 申请日 | 2017-08-16 | 公开(公告)号 | CN107376247B | 公开(公告)日 | 2019-07-12 |
申请人 | 高驰运动科技(深圳)有限公司; | 发明人 | 戎海峰; 牛浩田; 杨钒沁; 王芳德; 夏啸夫; | ||||
摘要 | 本 发明 公开了一种基于智能 手表 的游泳运动分析方法和该智能手表,涉及智能穿戴设备领域。该游泳运动分析方法包括:从智能手表的 传感器 的每个坐标轴采集的动作 信号 中,获取多个峰值和谷值;对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值;根据所述有效峰值和所述有效谷值,进行动作周期匹配;根据匹配结果确定佩戴者的游泳状态。本发明对传感器采集到的动作信号进行了筛选,去掉不规范的信号,减小 基础 数据量,再根据信号本身的周期性自动判断佩戴者是否处于游泳状态,无需佩戴者手动开启游泳模式,与 现有技术 相比,不需要进行大量的模板匹配计算,降低智能手表的运算负荷,提高识别率。 | ||||||
权利要求 | 1.一种基于智能手表的游泳运动分析方法,其特征在于: |
||||||
说明书全文 | 一种基于智能手表的游泳运动分析方法和该智能手表技术领域[0001] 本发明涉及智能穿戴技术领域,尤其涉及一种基于智能手表的游泳运动分析方法和该智能手表。 背景技术[0002] 在人们越来越重视健康和运动的今天,游泳也成为大众热捧的有氧运动形式。随着智能手表防水技术的进步,将智能手表用于游泳运动的监测也在逐步实现。运动状态识别作为解决运动监测和运动状态提醒的技术基础,是智能手表算法的核心,也是难点之一。 [0003] 目前在智能手表领域,普遍采用的游泳监测方法是,佩戴者主动开启游泳模式,通过传感器采集佩戴者的动作信号,与预设的不同泳姿的动作模板进行匹配,从而判断佩戴者采用的泳姿,运算量庞大。通过计时和泳姿特点来估计计算佩戴者的卡路里消耗,数据粗糙,并且多数人对于卡路里没有足够的认知,相比实际的里程,卡路里不够直观。 发明内容[0004] 本发明的目的在于提出一种基于智能手表的游泳运动分析方法和该智能手表,能够通过智能手表采集到的动作信号自动识别佩戴者的游泳状态。 [0005] 为达此目的,本发明采用以下技术方案: [0006] 一方面,本发明提供一种基于智能手表的游泳运动分析方法,包括: [0007] 从智能手表的传感器的每个坐标轴采集的动作信号中,获取多个峰值和谷值; [0008] 对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值; [0009] 根据所述有效峰值和所述有效谷值,进行动作周期匹配; [0010] 根据匹配结果确定佩戴者的游泳状态。 [0011] 其中,对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值,包括: [0012] 按所述动作信号产生的时间顺序,选取一个峰值和所述峰值之后相邻的谷值,计算信号幅度差和时间差; [0013] 若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述峰值为有效峰值; [0014] 否则,丢弃所述谷值,并根据预设滤波规则选取与所述谷值相邻的两个峰值的其中一个进行丢弃。 [0015] 进一步的,对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值,还包括: [0016] 按所述动作信号产生的时间顺序,选取一个谷值和所述谷值之后相邻的峰值,计算信号幅度差和时间差; [0017] 若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述谷值为有效谷值; [0018] 否则,丢弃所述峰值,并根据预设滤波规则选取与所述峰值相邻的两个谷值的其中一个进行丢弃。 [0019] 其中,根据所述有效峰值和所述有效谷值,进行动作周期匹配,包括: [0020] 在多个所述有效峰值和所述有效谷值中,选取每个有效峰值和与所述有效峰值相邻的两个有效谷值为一个动作组,分别计算信号幅度差和时间差;或者 [0021] 在多个所述有效峰值和所述有效谷值中,选取每个有效谷值和与所述有效谷值相邻的两个有效峰值为一个动作组,分别计算信号幅度差和时间差; [0022] 根据所述信号幅度差和所述时间差,计算时间上相邻的两个动作组的相似度; [0023] 若所述相似度符合预设条件,则每个动作组记为一个动作周期; [0024] 每个动作周期记为一次划水次数。 [0025] 其中,根据匹配结果确定佩戴者的游泳状态,包括: [0026] 当划水次数达到预设次数,则确定佩戴者处于游泳状态。 [0027] 进一步的,确定佩戴者处于游泳状态之后,还包括: [0028] 根据一个动作周期的动作信号,采用决策树算法确定佩戴者的泳姿。 [0029] 进一步的,确定佩戴者处于游泳状态之后,还包括: [0030] 根据佩戴者的泳姿、所述动作信号、磁力计阈值、划水次数阈值和计圈时间阈值进行计圈。 [0031] 进一步的,根据所述有效峰值和所述有效谷值,进行动作周期匹配之后,还包括: [0032] 分别统计传感器的每个坐标轴匹配到的划水次数; [0033] 根据预设规则和所述划水次数,评价每个坐标轴的动作信号质量; [0034] 选择动作信号最优的坐标轴继续进行动作周期匹配。 [0035] 另一方面,本发明提供一种智能手表,包括九轴传感器和处理器; [0036] 所述九轴传感器用于采集佩戴者的动作信号; [0037] 所述处理器包括信号筛选模块、滤波模块、动作匹配模块和状态检测模块; [0038] 所述信号筛选模块用于获取所述动作信号的多个峰值和谷值; [0039] 所述滤波模块用于对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值; [0040] 所述动作匹配模块用于根据所述有效峰值和所述有效谷值,进行动作周期匹配; [0041] 所述状态检测模块用于根据匹配结果确定佩戴者的游泳状态。 [0042] 其中,所述滤波模块具体用于: [0043] 按所述动作信号产生的时间顺序,选取一个峰值和所述峰值之后相邻的谷值,计算信号幅度差和时间差; [0044] 若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述峰值为有效峰值; [0045] 否则,丢弃所述谷值,并根据预设滤波规则选取与所述谷值相邻的两个峰值的其中一个进行丢弃; [0046] 按所述动作信号产生的时间顺序,选取一个谷值和所述谷值之后相邻的峰值,计算信号幅度差和时间差; [0047] 若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述谷值为有效谷值; [0048] 否则,丢弃所述峰值,并根据预设滤波规则选取与所述峰值相邻的两个谷值的其中一个进行丢弃。 [0049] 其中,所述动作匹配模块具体用于: [0050] 在多个所述有效峰值和所述有效谷值中,选取每个有效峰值和与所述有效峰值相邻的两个有效谷值为一个动作组,分别计算信号幅度差和时间差;或者 [0051] 在多个所述有效峰值和所述有效谷值中,选取每个有效谷值和与所述有效谷值相邻的两个有效峰值为一个动作组,分别计算信号幅度差和时间差; [0052] 根据所述信号幅度差和所述时间差,计算时间上相邻的两个动作组的相似度; [0053] 若所述相似度符合预设条件,则每个动作组记为一个动作周期; [0054] 每个动作周期记为一次划水次数。 [0055] 其中,所述状态检测模块具体用于: [0056] 当划水次数达到预设次数,则确定佩戴者处于游泳状态。 [0057] 进一步的,所述状态检测模块还用于:确定佩戴者处于游泳状态之后,[0058] 根据一个动作周期的动作信号,采用决策树算法确定佩戴者的泳姿; [0059] 根据佩戴者的泳姿、所述动作信号、磁力计阈值、划水次数阈值和计圈时间阈值进行计圈。 [0060] 进一步的,所述动作匹配模块还用于:在根据所述有效峰值和所述有效谷值,进行动作周期匹配之后, [0061] 分别统计所述九轴传感器的每个坐标轴匹配到的划水次数; [0062] 根据预设规则和所述划水次数,评价每个坐标轴的动作信号质量; [0063] 选择动作信号最优的坐标轴继续进行动作周期匹配。 [0064] 本发明的有益效果为: [0065] 通过智能手表的传感器采集动作信号,进行滤波得到有效信号,再根据有效信号的特征进行动作周期匹配,从而确定佩戴者的游泳状态。本发明对传感器采集到的动作信号进行了筛选,去掉不规范的信号,减小基础数据量,再根据信号本身的周期性自动判断佩戴者是否处于游泳状态,无需佩戴者手动开启游泳模式,与现有技术相比,不需要进行大量的模板匹配计算,降低智能手表的运算负荷,提高识别率。附图说明 [0067] 图2是本发明实施例二提供的游泳运动分析方法的流程图; [0068] 图3是本发明实施例三提供的游泳运动分析方法的流程图; [0069] 图4是本发明实施例四提供的智能手表的结构示意图。 具体实施方式[0070] 为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。 [0071] 实施例一 [0072] 本实施例提供一种基于智能手表的游泳运动分析方法,适用于对智能手表的佩戴者进行运动监控的场景,可以识别佩戴者是否处于游泳状态。 [0073] 图1是本发明实施例一提供的游泳运动分析方法的流程图。如图1所示,所述游泳运动分析方法包括如下步骤: [0074] S11,从智能手表的传感器的每个坐标轴采集的动作信号中,获取多个峰值和谷值。 [0075] 智能手表的传感器一般采用九轴传感器,包括三轴加速度计、三轴陀螺仪和三轴磁力计,传感器采集数据的过程中,每个坐标轴都有其相应的运动信号产生,根据运动信号的信号幅度可绘制成波状曲线,根据信号幅度筛选出峰值和谷值,本实施例选取加速度计和陀螺仪的运动信号进行步骤S12的操作。 [0076] S12,对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值。 [0077] 按所述动作信号产生的时间顺序,选取一个峰值和所述峰值之后相邻的谷值,计算信号幅度差和时间差;若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述峰值为有效峰值;否则,丢弃所述谷值,并根据预设滤波规则选取与所述谷值相邻的两个峰值的其中一个进行丢弃。 [0078] 按所述动作信号产生的时间顺序,选取一个谷值和所述谷值之后相邻的峰值,计算信号幅度差和时间差;若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述谷值为有效谷值;否则,丢弃所述峰值,并根据预设滤波规则选取与所述峰值相邻的两个谷值的其中一个进行丢弃。 [0079] 按所述动作信号产生的时间顺序,峰值和谷值交错出现,因此,对峰值和谷值的滤波也是交替进行。 [0080] 为方便计算和判断,所述信号幅度差和所述时间差均取绝对值。为预设幅度阈值和预设时间阈值设置一个合理的初始值,并且在滤波的同时计算信号幅度差的平均值和时间差的平均值,分别根据两个平均值动态调节幅度阈值和时间阈值。 [0081] 例如,以p0,p1,p2,……表示峰值,以v0,v1,v2,……表示谷值,按照动作信号产生的时间顺序,可顺序获得峰值和谷值p0,v0,p1,v1,p2,v2,……,峰值和谷值出现的相应时间点为t0,t1,t2,t3,t4,t5,……;计算并判断:当信号幅度差|p0-v0|>预设幅度阈值,且时间差|t1-t0|>预设时间阈值时,则保留p0作为有效峰值,依次完成其他峰值和谷值的计算,得到有效峰值和有效谷值。 [0082] 假设出现|p1-v1|<预设幅度阈,或者|t3-t2|<预设时间阈值,则谷值v1不是有效谷值,应丢弃,丢弃标志位置1;为了保证峰值和谷值依次交错,应该相应的丢弃一个峰值;同理,如果已丢弃一个峰值,那么应该相应丢弃一个谷值。假设谷点(t3,v1)被丢弃,丢弃标志位置1,按照预设滤波规则,在峰点(t2,p1)与峰点(t4,p2)中选择一个进行丢弃。 [0083] 本实施例中,预设滤波规则为:首先按照上述滤波方法判断p1和p2是否为有效峰值,若其中一个不是有效峰值,则选择舍弃该值;若二者都是或都不是有效峰值,丢弃信号幅度差较小的一个,或者丢弃时间差较小的一个(具体策略可根据实际情况设计),同时丢弃标志位置0。 [0084] S13,根据所述有效峰值和所述有效谷值,进行动作周期匹配。 [0085] 在多个所述有效峰值和所述有效谷值中,选取每个有效峰值和与所述有效峰值相邻的两个有效谷值为一个动作组,分别计算信号幅度差和时间差;或者,在多个所述有效峰值和所述有效谷值中,选取每个有效谷值和与所述有效谷值相邻的两个有效峰值为一个动作组,分别计算信号幅度差和时间差;根据所述信号幅度差和所述时间差,计算时间上相邻的两个动作组的相似度;若所述相似度符合预设条件,则每个动作组记为一个动作周期;每个动作周期记为一次划水次数。 [0086] 为保证匹配的严格,前两个动作周期匹配时,幅度阈值和时间阈值都相对较高,往后的匹配中,为保证动作的连续性,可适当降低所述幅度阈值和所述时间阈值。 [0087] 假设经过步骤S12之后,获得有效峰值和有效谷值按照时间顺序排列为:p0,v0,p1,v1,p2,v2,……,那么,划分为(p0,v0,p1)、(p1,v1,p2,)、(p2,v2,p3)等多个动作组,或者划分为(v0,p1,v1)、(v1,p2,v2)等多个动作组,分别计算每个动作组中有效峰值和有效谷值之间的信号幅度差和时间差,并以此判断两个动作组之间的相似度,例如(p0,v0,p1)与(p1,v1,p2,)匹配,应对应的将(p0,v0)与(p1,v1)匹配、(v0,p1)与(v1,p2)匹配,两个阶段均匹配才能判定两个动作组匹配,出现连续3个以上的相似动作组,则每个动作组记为一个动作周期,每个动作周期记为一次划水次数,即3次划水。 [0088] S14,根据匹配结果确定佩戴者的游泳状态。 [0089] 当划水次数达到预设次数,则确定佩戴者处于游泳状态。 [0090] 本实施例对传感器采集到的动作信号进行了筛选,去掉不规范的信号,减小基础数据量,再根据信号本身的周期性自动判断佩戴者是否处于游泳状态,无需佩戴者手动开启游泳模式,与现有技术相比,不需要进行大量的模板匹配计算,降低智能手表的运算负荷,提高识别率。此方法对于使用常规滤波后伪峰谷点较多的问题起到了很好的抑制作用。 [0091] 实施例二 [0092] 本实施例在上述是实施例的基础上进行改进,能够衡量佩戴者的运动里程,数据直观。 [0093] 图2是本发明实施例二提供的游泳运动分析方法的流程图。如图2所示,该游泳运动分析方法包括如下步骤: [0094] S21,从智能手表的传感器的每个坐标轴采集的动作信号中,获取多个峰值和谷值。 [0095] S22,对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值。 [0096] S23,根据所述有效峰值和所述有效谷值,进行动作周期匹配。 [0097] S24,确定佩戴者处于游泳状态。 [0098] S25,根据一个动作周期的动作信号,采用决策树算法确定佩戴者的泳姿。 [0099] 首先采集大量的数据送入决策树算法,计算均值、方差、最大值、最小值等,得到一个判断泳姿的决策树;实际检测中,在佩戴者的运动状态稳定后,选取单个周期的6轴数据(3轴加速度计与3轴陀螺仪),根据决策树算法识别泳姿。 [0100] S26,根据佩戴者的泳姿、所述动作信号、磁力计阈值、划水次数阈值和计圈时间阈值进行计圈。 [0101] 在佩戴者泳姿不变的情况下,选取对应该泳姿的磁力计阈值,与九轴传感器中磁力计的动作信号进行比较,若佩戴者出现明显折返动作,可通过磁力计数据判断出来,记一次折返;再根据历史数据得到划水次数阈值和计圈时间阈值,对上述折返进行验证,若时间或划水次数与实际情况相比差距较大,为明显不能计圈的情况,则上述折返不计数。 [0102] 若佩戴者在折返时改变了泳姿,特别是从仰泳换为其他泳姿或者从其他泳姿换为仰泳的情况,则需要减小磁力计阈值,根据上一次折返的时间和划水次数设定划水次数阈值和计圈时间阈值来判断是否折返。 [0103] 进一步的,可通过每一次折返的划水次数和时间、泳姿、佩戴者身高等参数,估算泳池的长度,进而可计算出佩戴者的游泳里程。更进一步的通过泳池长度和折返时间计算佩戴者的游泳速度。 [0104] 本实施例在识别了游泳状态的基础上,对折返次数进行统计,避免了因佩戴者泳姿变化造成的折返不明显而没有计圈,向佩戴者展示计圈数和游泳里程,更直观的体现佩戴者的实际运动量。 [0105] 实施例三 [0107] 图3是本发明实施例三提供的游泳运动分析方法的流程图。如图3所示,该游泳运动的分析方法包括如下步骤: [0108] S31,从智能手表的传感器的每个坐标轴采集的动作信号中,获取多个峰值和谷值。 [0109] S32,对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值。 [0110] S33,根据所述有效峰值和所述有效谷值,进行动作周期匹配。 [0111] S34,分别统计传感器的每个坐标轴匹配到的划水次数。 [0112] 三轴加速度计和三轴陀螺仪均包括X、Y、Z三个坐标轴,分别统计每个坐标轴匹配到的划水次数。 [0113] S35,根据预设规则和所述划水次数,评价每个坐标轴的动作信号质量。 [0114] 根据每个坐标轴匹配到的划水次数,挑选划水次数较合理的坐标轴进行接下来的周期匹配。 [0115] 预设规则设定为:针对每个坐标轴均设置一个评价值,动作周期匹配开始前,采用历史的评价值来决定锁定哪个坐标轴进行周期匹配,或者每个坐标轴都进行周期匹配,根据匹配情况动态更新每个坐标轴的评价值,再由此决定锁定哪个坐标轴进行周期匹配。匹配到连续的划水次数越多,评价值越高,锁定该坐标轴的机率就越大。 [0116] S36,选择动作信号最优的坐标轴继续进行动作周期匹配。 [0117] 选择评价值较高的坐标轴进行接下来的动作匹配,要注意的是,当某个坐标轴的划水次数明显远大于其他两个轴时,有可能该坐标轴的数据是不合理的,此时在剩下两个坐标轴中选择较优的一个。 [0118] S37,根据匹配结果确定佩戴者的游泳状态。 [0119] 根据锁定的坐标轴匹配到的划水次数来判断佩戴者是否处于游泳状态,进一步的可以进行实施例二的里程统计。 [0120] 本实施例中,同一时间只有一个坐标轴是被选中的用于统计划水次数的,对于有些泳姿,可能出现某个坐标轴数据混乱的情况,本实施例可以挑选出信号质量高的坐标轴,忽略信号混乱的坐标轴,减少数据处理量。 [0121] 实施例四 [0123] 图4是本发明实施例四提供的智能手表的结构示意图。如图4所示,所述智能手表包括九轴传感器41和处理器42,所述九轴传感器41包括三轴加速度计、三轴陀螺仪和三轴磁力计。 [0124] 所述九轴传感器41用于采集佩戴者的动作信号。 [0125] 所述处理器42包括信号筛选模块421、滤波模块422、动作匹配模块423和状态检测模块424。 [0126] 所述信号筛选模块421用于获取所述动作信号中的多个峰值和谷值。 [0127] 所述滤波模块422用于对所述峰值和所述谷值进行滤波,得到有效峰值和有效谷值。 [0128] 所述动作匹配模块423用于根据所述有效峰值和所述有效谷值,进行动作周期匹配。 [0129] 所述状态检测模块424用于根据匹配结果确定佩戴者的游泳状态。 [0130] 其中,所述滤波模块422具体用于: [0131] 按所述动作信号产生的时间顺序,选取一个峰值和所述峰值之后相邻的谷值,计算信号幅度差和时间差;若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述峰值为有效峰值;否则,丢弃所述谷值,并选取与所述谷值相邻的两个峰值的其中一个进行丢弃。 [0132] 并且,按所述动作信号产生的时间顺序,选取一个谷值和所述谷值之后相邻的峰值,计算信号幅度差和时间差;若所述信号幅度差大于预设幅度阈值,且所述时间差大于预设时间阈值,则所述谷值为有效谷值;否则,丢弃所述峰值,并选取与所述峰值相邻的两个谷值的其中一个进行丢弃。 [0133] 其中,所述动作匹配模块423具体用于: [0134] 在多个所述有效峰值和所述有效谷值中,选取每个有效峰值和与所述有效峰值相邻的两个有效谷值为一个动作组,分别计算信号幅度差和时间差;或者,在多个所述有效峰值和所述有效谷值中,选取每个有效谷值和与所述有效谷值相邻的两个有效峰值为一个动作组,分别计算信号幅度差和时间差。 [0135] 根据所述信号幅度差和所述时间差,计算时间上相邻的两个动作组的相似度;若所述相似度符合预设条件,则每个动作组记为一个动作周期;每个动作周期记为一次划水次数。 [0136] 其中,所述状态检测模块424具体用于: [0137] 当划水次数达到预设次数,则确定佩戴者处于游泳状态。 [0138] 进一步的,所述状态检测模块424还用于: [0139] 在确定佩戴者处于游泳状态之后,根据一个动作周期的动作信号,采用决策树算法确定佩戴者的泳姿;根据佩戴者的泳姿、所述动作信号、磁力计阈值、划水次数阈值和计圈时间阈值进行计圈。 [0140] 进一步的,所述动作匹配模块423还用于: [0141] 在根据所述有效峰值和所述有效谷值,进行动作周期匹配之后,分别统计传感器的每个坐标轴匹配到的划水次数;根据预设规则和所述划水次数,评价每个坐标轴的动作信号质量;选择动作信号最优的坐标轴继续进行动作周期匹配。 [0142] 本实施例对传感器采集到的动作信号进行了筛选,去掉不规范的信号,减小基础数据量,对于使用常规滤波后伪峰谷点较多的问题起到了很好的抑制作用;再根据信号本身的周期性自动判断佩戴者是否处于游泳状态,无需佩戴者手动开启游泳模式,与现有技术相比,不需要进行大量的模板匹配计算,降低智能手表的运算负荷,提高识别率。在结合佩戴者的泳姿变化情况对折返次数进行统计,避免了因佩戴者泳姿变化造成的折返不明显而没有计圈,向佩戴者展示计圈数和游泳里程,更直观的体现佩戴者的实际运动量;还可以进一步的挑选出信号质量高坐标轴,忽略信号混乱的坐标轴,减少数据处理量。 [0143] 以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。 |