首页 / 专利库 / 解剖与生理 / 肩膀 / 一种基于深度图像的非接触式体能测试系统及测试方法

一种基于深度图像的非接触式体能测试系统及测试方法

阅读:668发布:2022-01-15

专利汇可以提供一种基于深度图像的非接触式体能测试系统及测试方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于 深度图 像 的非 接触 式体能测试系统及测试,由体能测试控 制模 块 、仰卧起坐测试模块、俯卧撑测试模块、 语音识别 模块和测试反馈模块组成。通过使用Kinect 体感交互 设备获取深度图像,利用有限状态机 框架 对被测人体运动计数,使用语音识别 算法 自动开始或结束体能测试同时为用户反馈相关测试结果。本发明融合了深度图像的捕捉与识别,在不让用户肢体携带任何仪器的前提下获得用户的肢体信息,进行精确的运动测试计数。此外,系统根据匹配用户语音 信号 可自动记录,检测过程不需其他人为干预,同时能根据检测数据反馈给用户相关测试结果,使用户能最大限度发挥自己的体 力 潜能,提高运动效率和效果,为非专业体育运动者提供了一种自我监测的平台。,下面是一种基于深度图像的非接触式体能测试系统及测试方法专利的具体信息内容。

1.一种基于深度图像的非接触式体能测试系统,其特征在于:包括体能测试控制模、仰卧起坐测试模块、俯卧撑测试模块、语音识别模块和测试反馈模块;
体能测试控制模块:启动Kinect体感交互设备的红外摄像头并通过Kinect体感交互设备自带SDK捕捉现实场景中的深度图像;根据设定的阈值将获取到的深度图像进行二值化处理,得到黑白二值图像;调用OpenCV自带轮廓检测算子提取黑白二值图像的边缘轮廓,获得被测人体轮廓;将被测人体轮廓区域储存起来作为仰卧起坐测试模块、俯卧撑测试模块判定区域;当体能测试控制模块中选择待测试项目为仰卧起坐时,调用仰卧起坐测试模块;
当体能测试模块中选择待测试项目为跪姿俯卧撑或标准俯卧撑时,调用俯卧撑测试模块;
同时开启语音识别模块,等待语音指令;
仰卧起坐测试模块:当体能测试控制模块中选择待测试的项目为仰卧起坐时,仰卧起坐测试模块启动;将有限状态机作为判定仰卧起坐的计算模型,定义仰卧起坐中被测人体的状态为有限状态,将被测人体在完成仰卧起坐过程中可能出现的状态定义为四种:“准备状态”、“中间状态”、“完成状态”以及“其他状态”,其中“准备状态”为被测人体屈膝仰卧于地面,双手扶于部;“中间状态”为被测人体完成一个仰卧起坐动作时,上半身从仰卧到坐起的前屈过程;“完成状态”为被测人体完成一个仰卧起坐动作时,前屈过程中双肘碰及膝盖瞬间;“其他状态”为以上“准备状态”、“中间状态”、“完成状态”三种状态以外的所有其他非仰卧起坐过程中出现的干扰动作,并且定义一个完整仰卧起坐动作的状态序列为一个连续且有序的状态转换过程:“准备状态”至“中间状态”再至“完成状态”,期间不出现“其他状态”;获取人体轮廓凹点和凸点,凹点为人体上半身与大腿之间的夹顶点,凸点为人体头顶点;计算凹点和凸点之间连线与平方向的夹角,也称为起身角度;当起身角度小于预设阈值时,认为被测人体处于“准备状态”,即屈膝平躺姿势;当被测人体已处于“准备状态”时,循环检测被测人体轮廓的凸包和凸缺陷状态,以判定被测人体是否处于“中间状态”或“完成状态”,所述凸缺陷是指轮廓与凸包之间的部分;当状态转换完成了一个完整的状态转移序列时,认为被测人体完成了一个完整的仰卧起坐,仰卧起坐测试模块计数加一;当仰卧起坐测试模块收到语音识别模块的传来的启动计数指令后,仰卧起坐测试模块开始检测被测人体所处的状态,并开始计数;当仰卧起坐测试模块收到语音识别模块传来的结束计数指令后,仰卧起坐测试模块结束计数,并将计数信息传递给测试反馈模块;
俯卧撑测试模块:当体能测试控制模块中选择待测试的项目为跪姿俯卧撑或标准俯卧撑时,俯卧撑测试模块被调用;将有限状态机作为判定俯卧撑的计算模型,定义俯卧撑中被测人体的状态为有限状态;将被测人体在完成跪姿俯卧撑或标准俯卧撑中可能出现的状态定义为四种:“准备状态”、“中间状态”、“完成状态”以及“其他状态”,其中,“准备状态”为双臂位于胸前,两手支撑地面,两手间距较肩膀稍宽,肘关节伸直,躯干成直线,两腿并拢,跪姿俯卧撑以双膝着地支撑,标准俯卧撑以脚趾点地支撑;“中间状态”为用户完成一个俯卧撑动作时,肩关节伸肘关节屈,躯干逐渐接近地面,以及还原过程中肩关节屈肘关节伸躯干远离地面的过程;“完成状态”为用户完成一个俯卧撑动作,还原到初始准备状态的瞬间;
“其他状态”为以上“准备状态”、“中间状态”、“完成状态”三种状态以外的所有其他非俯卧撑过程中出现的干扰动作;并且定义一个完整俯卧撑动作的状态序列为一个连续且有序的状态转换过程:“准备状态”至“中间状态”再至“完成状态”,期间不出现“其他状态”;根据体能测试控制模块中所获取的被测人体轮廓构建人体轮廓外接矩形,不同的矩形长宽比匹配不同的状态,计算当前被测人体外接矩阵的长宽比,将此比值与预先设定的阈值进行匹配;
当状态转换完成了一个完整的状态转移序列时,认为被测人体完成了一个完整的跪姿俯卧撑或标准俯卧撑,俯卧撑测试模块计数加一;当俯卧撑测试模块收到语音识别模块的传来的启动计数指令后,俯卧撑测试模块检测被测人体所处的状态,并开始计数;当俯卧撑测试模块收到语音识别模块的传来的结束计数指令后,俯卧撑测试模块结束计数,并将计数信息传递给测试反馈模块;
语音识别模块:用户第一次使用时,会提示用户记录下开始和结束的指令语音信息,用户发出语音指令后,利用Kinect体感交互设备的SDK语音包进行录音,并生成该录音音频的波形图,从而对语音信号进行预处理和特征提取,将提取到的音频信息存入语音识别模块中,实现对用户语音特征的学习,建立用户命令模型,作为该用户语音指令待匹配模板;当用户再次使用并发出指令时,首先采集用户的指令语音信号并提取语音信号中的相应特征,然后在之前存放的语音指令中寻找待匹配模版,如果找到,则认为匹配成功;如果用户发出语音指令与语音识别模块中的开始指令相匹配,则向仰卧起坐测试模块或俯卧撑测试模块传递启动计数指令,开始计数同时调用测试反馈模块开始计时;如果用户发出指令与语音识别模块中的结束指令相匹配,则向仰卧起坐测试模块或俯卧撑测试模块传递结束计数指令同时测试反馈模块停止计时;
测试反馈模块:接受到语音识别模块传递的启动计数指令后,开始计时;测试反馈模块收到语音识别模块传递的结束计数指令后,测试反馈模块停止计时,读取仰卧起坐测试或俯卧撑测试模块传递过来的计数信息,同时计算用户发出开始指令到发出结束指令之间的时间间隔作为用户该次运动的耗时,再根据设定的计算公式,以图形化界面向用户反馈该次测试完成动作个数,耗时,耗能以及体能测试分数。
2.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述仰卧起坐测试模块中,设定起身角度预设阈值为20。
3.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述仰卧起坐测试模块中,当被测人体已处于“准备状态”后,根据被测人体轮廓获得当前凸包,检测凸包中所有的凸缺陷;当单个凸缺陷的距离特征量大于设定阈值5.0时,将该凸缺陷视为待检测凸缺陷区域D。
4.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述仰卧起坐测试模块中,对凸缺陷状态的检测方法为,计算待检测凸缺陷区域D中,计算缺陷结束点与起始点连线的斜率,当斜率处于20-70之间时,当前状态置为“中间状态”,并匹配当前帧中的凸缺陷与上一帧中的凸缺陷集合,当两个凸缺陷匹配,并且该凸缺陷的深度特征小于之前深度特征三分之一时,当前状态置为“完成状态”,若无匹配或凸缺陷深度特征差值均大于三分之一时,状态置为“其他状态”。
5.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述俯卧撑测试模块中,阈值根据人体俯卧时所构成的外接矩形的宽高比通过实验测试数据经验设定给出;所述跪姿俯卧撑状态下人体外接矩形宽高比大于1.2,标准俯卧撑状态下人体外接矩形宽高比大于1.5,认为被测人体俯卧于地面。
6.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述俯卧撑测试模块中,当被测人体轮廓外接矩形宽高比在设定的阈值1.9-2.5时,设置当前状态为“准备状态”,在2.5-3.31范围时,设置当前状态为“中间状态”;当宽高比大于3.31时,设置当前状态为“完成状态”,当宽高比不处于以上任意区间时,设置当前状态为“其他状态”。
7.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述语音识别模块实现如下:
(1)第一次使用时,会提示用户记录下开始和结束的指令语音信息,在此使用时,根据体能测试控制模块控制,用户分别发出“开始”和“结束”语音指令后,利用Kinect体感交互设备的SDK语音包进行录音,并生成该录音音频的波形图,并进行以下处理:
(1.1)使用短时能量参数来进行语音端点检测,定义n时刻语音信号的短时平均能量为:
N为分帧语音窗长,m为帧序号;
求出所有帧中最大短时能量En_max,将0.03×En_max作为端点检测的阈值,同时,将0.01×En_max认为环境噪声作为在命令段内不计入运算的帧的阈值,这样将短时能量大于端点阈值的数据帧进行编号后计算出每帧的平均幅差函数;
(1.2)将计算得到的语音指令信号的平均幅差特征作为语音特征参数存储于模板中,进而建立用户命令模型,作为该用户语音指令待匹配模板;
(2)用户在体能测试控制模块中选择了需要测试的项目,包括仰卧起坐、跪姿俯卧撑或标准俯卧撑后,语音识别模块进入等待状态,调用Kinect体感交互设备的SDK打开内置麦克采集语音信号;
(3)对用户发出的语音信号提取完成后,将语音信号的特征参数与语音识别模块中的待匹配模板中的两个指令进行匹配,若与开始指令匹配,则仰卧起坐测试模块或俯卧撑测试模块开始检测计数同时测试反馈模块开始计时,若与结束指令匹配,则停止计数同时测试反馈模块结束计时,并将计数数据传递给运动测试反馈模块;若与开始指令和结束指令均不匹配,则不执行任何操作。
8.根据权利要求1所述的基于深度图像的非接触式体能测试系统,其特征在于:所述测试反馈模块中:
(1)对于仰卧起坐运动检测,运动所消耗的能量=10*(m/60)*动作个数,其中m为被测人体体重,单位kg,计算运动强度系数=完成仰卧起坐个数/耗时,单位为秒,根据运动强度系数将被测人体的运动状态进行分级,以帮助客观评估本次测试中的体能情况,以便后续进行针对性的训练,强度系数大于1为S级,0.7-1为A级,0.5-0.7为B级,0.3-0.5为C级,0.3以下为D级;
(2)对于俯卧撑运动检测,标准俯卧撑所消耗的能量=g*m*h,其中g为10N/kg,m为被测人体体重,单位kg;h为被测人体前臂的长度,单位为m;跪姿俯卧撑所消耗的能量=(2/3)*g*m*h,计算运动强度系数=完成俯卧撑个数/耗时,单位为秒;根据运动强度系数将该次被测人体的运动状态进行分级,以帮助客观评估本次测试中的体能情况,以便后续进行针对性的训练,强度系数大于0.8为S级,0.7-0.8为A级,0.4-0.7为B级,0.2-0.4为C级,0.2以下为D级。
9.一种基于深度图像的非接触式体能测试方法,其特征在于:所述方法实现步骤如下:
(1)当用户第一次使用时,引导用户对指令声音进行提取录入,用户录入指令包含两种:开始指令和结束指令;利用Kinect体感交互设备自带SDK打开内置麦克风进行录音,生成WAVE文件,并生成其波形图,从而对语音信号进行预处理和特征提取,生成用户指令模板;当用户再次使用系统时,会采集用户指令语音信号并提取信号中的特征参数,与预存用户指令模板;
(2)用户在运动测试控制模块中选择需要进行测试的动作后,初始化摄像机参数,启动Kinect体感交互设备的红外摄像头捕捉现实场景中的深度信息,对深度图像进行二值化处理,转化为黑白二值图像;根据黑白二值图像,获取被测人体轮廓;同时,Kinect体感交互设备内置麦克风打开等待获取语音信号;
(3)被测人体位于Kinect体感交互设备前1-2米处,做好仰卧起坐或俯卧撑测试准备,并发出语音指令,当获取到的语音信号与开始指令匹配时,根据步骤(2)中选择的项目,进行仰卧起坐或俯卧撑计数,同时进行测试反馈计时;在仰卧起坐测试中对人体轮廓凸包进行检测,在俯卧撑测试中对人体轮廓外接矩形进行长宽比判定,循环检测每一帧中被测人体所处的状态,当被测人体完成一次完整且有序的有限状态转换序列“准备状态”至“中间状态”再至“完成状态”时,被测人体动作计数加一;
(4)当用户希望结束当前运动时,发出结束语音指令,获取语音信号并与所存储的匹配模板进行匹配,当获取到的语音信号与结束指令匹配时,则结束计数;
(5)测试反馈过程停止计时后,从仰卧起坐测试或俯卧撑测试过程中读取计数信息,并计算用户发出开始指令和结束指令的时间间隔作为完成该次测试所消耗的时间,以图形化界面展示该次测试过程中完成动作个数,消耗的时间,运动过程中所消耗的能量以及该被测人体运动能强度评价。

说明书全文

一种基于深度图像的非接触式体能测试系统及测试方法

技术领域

[0001] 本发明涉及一种基于深度图像的非接触式体能测试系统,是一种用于无穿戴的体感交互体能测试系统,属于计算机应用技术领域。

背景技术

[0002] 随着生活品质的提高,人们越来越注重对身体素质的改善练习。其中,量训练类运动对于人体的减脂塑形有着极其重要的作用。目前,力量训练绝大部分是以穿戴设备为基础进行测量。这类器材中包括:电磁感应类型、GPS测量类型等。电磁感应器材是在测试者身上穿戴接收或发射装置,利用电脑等测量仪器发射或接收信号并通过信号的有无来进行计数。此类器材存在信号易受干扰、发射功率受限、测量范围过大不精确等弊端。GPS测量类型是以全球定位系统为基础,通过人体位移轨迹记录运动轨迹,只适合长跑类项目的低精确度测量,无法测量原地运动以及需要精确值的项目。
[0003] 随着体感交互技术与计算机视觉技术的发展,含有深度信息的图像能够在极大的程度上区分所监测区域的前景与背景信息,从而提高了身份识别、体感交互的精度硬件方面,由于Kinect体感交互设备能够提供深度图像数据,就为通过两者信息融合的方法来检测运动人体提供了前提条件。软件方面,OpenCV等视觉信息处理算法库也为图像的处理提供了极大的方便。
[0004] 目前国内对于力量训练类非接触式系统研究较少,已有的一些监测系统通常会对被测者所处的环境有所限制,如需要在颜色单一的环境中穿着特定颜色的衣服才能进行检测。这些限制使得体能检测不能随时随地为普通人所服务。Kinect体感交互设备能够通过红外摄像头获取被测图像中的深度信息,使得体能检测摆脱了已有方法对环境的限制。目前,基于Kinect体感交互设备的体能测试系统,通常直接使用Kinect体感交互设备自带的SDK对人体进行检测与识别,对站姿运动检测效果较好,而无法识别卧姿等非站立姿势。
[0005] 本发明可提供非接触式体能训练的自动监测,可为进行体能测试的团体或个人提供更科学、精确的测试数据,减少了人眼主观判定带来的误差,节省了人力资源,为体育训练提供了新的测量手段,为全民健身运动在科学指导与运动检测方面提供了新思路。

发明内容

[0006] 本发明技术解决问题:克服现有技术的不足,提供一种基于深度图像的非接触式体能测试系统及测试方法,能够让用户通过不在身上绑各种仪器而进行的体能测试,提高测试的准确度。
[0007] 本发明技术解决方案:一种基于深度图像的非接触式体能测试系统,包括:体能测试控制模、仰卧起坐测试模块、俯卧撑测试模块、语音识别模块和测试反馈模块;
[0008] 体能测试控制模块:启动Kinect体感交互设备的红外摄像头并通过Kinect体感交互设备自带SDK捕捉现实场景中的深度图像;根据设定的阈值将获取到的深度图像进行二值化处理,得到黑白二值图像;调用OpenCV自带轮廓检测算子提取黑白二值图像的边缘轮廓,获得被测人体轮廓;将被测人体轮廓区域储存起来作为仰卧起坐测试模块、俯卧撑测试模块判定区域;当体能测试控制模块中选择待测试项目为仰卧起坐时,调用仰卧起坐测试模块;当体能测试模块中选测待测试项目为跪姿俯卧撑或标准俯卧撑时,调用俯卧撑测试模块;同时开启语音识别模块,等待语音指令;
[0009] 仰卧起坐测试模块:当体能测试控制模块中选择待测试的项目为仰卧起坐时,仰卧起坐测试模块启动;将有限状态机作为判定仰卧起坐的计算模型,定义仰卧起坐中被测人体的状态为有限状态,将被测人体在完成仰卧起坐过程中可能出现的状态定义为四种:“准备状态”、“中间状态”、“完成状态”以及“其他状态”,其中“准备状态”为被测人体屈膝仰卧于地面,双手扶于部;“中间状态”为被测人体完成一个仰卧起坐动作时,上半身从仰卧到坐起的前屈过程;“完成状态”为被测人体完成一个仰卧起坐动作时,前屈过程中双肘碰及膝盖瞬间;“其他状态”为以上“准备状态”、“中间状态”、“完成状态”三种状态以外的所有其他非仰卧起坐过程中出现的干扰动作,并且定义一个完整仰卧起坐动作的状态序列为一个连续且有序的状态转换过程:“准备状态”至“中间状态”再至“完成状态”,期间不出现“其他状态”;获取人体轮廓凹点和凸点,凹点为人体上半身与大腿之间的夹顶点,凸点为人体头顶点;计算凹点和凸点之间连线与平方向的夹角,也称为起身角度;当起身角度小于预设阈值时,认为被测人体处于“准备状态”,即屈膝平躺姿势;当被测人体已处于“准备状态”时,循环检测被测人体轮廓的凸包和凸缺陷状态,以判定被测人体是否处于“中间状态”或“完成状态”,所述凸缺陷是指轮廓与凸包之间的部分;当状态转换完成了一个完整的状态转移序列时,认为被测人体完成了一个完整的仰卧起坐,仰卧起坐测试模块计数加一;
当仰卧起坐测试模块收到语音识别模块的传来的启动计数指令后,仰卧起坐测试模块开始检测被测人体所处的状态,并开始计数;当仰卧起坐测试模块收到语音识别模块传来的结束计数指令后,仰卧起坐测试模块结束计数,并将计数信息传递给测试反馈模块;
[0010] 俯卧撑测试模块:当体能测试控制模块中选择待测试的项目为跪姿俯卧撑或标准俯卧撑时,俯卧撑测试模块被调用;将有限状态机作为判定俯卧撑的计算模型,定义俯卧撑中被测人体的状态为有限状态;将被测人体在完成跪姿俯卧撑或标准俯卧撑中可能出现的状态定义为四种:“准备状态”、“中间状态”、“完成状态”以及“其他状态”,其中,“准备状态”为双臂位于胸前,两手支撑地面,两手间距较肩膀稍宽,肘关节伸直,躯干成直线,两腿并拢,跪姿俯卧撑以双膝着地支撑,标准俯卧撑以脚趾点地支撑;“中间状态”为用户完成一个俯卧撑动作时,肩关节伸肘关节屈,躯干逐渐接近地面,以及还原过程中肩关节屈肘关节伸躯干远离地面的过程;“完成状态”为用户完成一个俯卧撑动作,还原到初始准备状态的瞬间;“其他状态”为以上“准备状态”、“中间状态”、“完成状态”三种状态以外的所有其他非俯卧撑过程中出现的干扰动作;并且定义一个完整俯卧撑动作的状态序列为一个连续且有序的状态转换过程:“准备状态”至“中间状态”再至“完成状态”,期间不出现“其他状态”;根据体能测试控制模块中所获取的被测人体轮廓构建人体轮廓外接矩形,不同的矩形长宽比匹配不同的状态,计算当前被测人体外接矩阵的长宽比,将此比值与预先设定的阈值进行匹配;当状态转换完成了一个完整的状态转移序列时,认为被测人体完成了一个完整的跪姿俯卧撑或标准俯卧撑,俯卧撑测试模块计数加一;当俯卧撑测试模块收到语音识别模块的传来的启动计数指令后,俯卧撑测试模块检测被测人体所处的状态,并开始计数;当俯卧撑测试模块收到语音识别模块的传来的结束计数指令后,俯卧撑测试模块结束计数,并将计数信息传递给测试反馈模块;
[0011] 语音识别模块:用户第一次使用时,会提示用户记录下开始和结束的指令语音信息,用户发出语音指令后,利用Kinect体感交互设备的SDK语音包进行录音,并生成该录音音频的波形图,从而对语音信号进行预处理和特征提取,将提取到的音频信息存入语音识别模块中,实现对用户语音特征的学习,建立用户命令模型,作为该用户语音指令待匹配模板;当用户再次使用并发出指令时,首先采集用户的指令语音信号并提取语音信号中的相应特征,然后在之前存放的语音指令中寻找待匹配模版,如果找到,则认为匹配成功;如果用户发出语音指令与语音识别模块中的开始指令相匹配,则向仰卧起坐测试模块或俯卧撑测试模块传递启动计数指令,开始计数同时调用测试反馈模块开始计时;如果用户发出指令与语音识别模块中的结束指令相匹配,则向仰卧起坐测试模块或俯卧撑测试模块传递结束计数指令同时测试反馈模块停止计时;
[0012] 测试反馈模块:接受到语音识别模块传递的启动计数指令后,开始计时;测试反馈模块收到语音识别模块传递的结束计数指令后,测试反馈模块停止计时,读取仰卧起坐测试或俯卧撑测试模块传递过来的计数信息,同时计算用户发出开始指令到发出结束指令之间的时间间隔作为用户该次运动的耗时,再根据设定的计算公式,以图形化界面向用户反馈该次测试完成动作个数,耗时,耗能以及体能测试分数。
[0013] 所述仰卧起坐测试模块中,设定起身角度预设阈值为20。
[0014] 所述仰卧起坐测试模块中,当被测人体已处于“准备状态”后,根据被测人体轮廓获得当前凸包,检测凸包中所有的凸缺陷;当单个凸缺陷的距离特征量大于设定阈值5.0时,将该凸缺陷视为待检测凸缺陷区域D。
[0015] 所述仰卧起坐测试模块中,对凸缺陷状态的检测方法为,计算待检测凸缺陷区域D中,计算缺陷结束点与起始点连线的斜率,当斜率处于20-70之间时,当前状态置为“中间状态”,并匹配当前帧中的凸缺陷与上一帧中的凸缺陷集合,当两个凸缺陷匹配,并且该凸缺陷的深度特征小于之前深度特征三分之一时,当前状态置为“完成状态”,若无匹配或凸缺陷深度特征差值均大于三分之一时,状态置为“其他状态”。
[0016] 所述俯卧撑测试模块中,阈值根据人体俯卧时所构成的外接矩形的宽高比通过实验测试数据经验设定给出;所述跪姿俯卧撑状态下人体外接矩形宽高比大于1.2,标准俯卧撑状态下人体外接矩形宽高比大于1.5,认为被测人体俯卧于地面。
[0017] 所述俯卧撑测试模块中,当被测人体轮廓外接矩形宽高比在设定的阈值1.9-2.5时,设置当前状态为“准备状态”,在2.5-3.31范围时,设置当前状态为“中间状态”;当宽高比大于3.31时,设置当前状态为“完成状态”,当宽高比不处于以上任意区间时,设置当前状态为“其他状态”。
[0018] 所述语音识别模块实现如下:
[0019] (1)第一次使用时,会提示用户记录下开始和结束的指令语音信息,在此使用时,根据体能测试控制模块控制,用户分别发出“开始”和“结束”语音指令后,利用Kinect体感交互设备的SDK语音包进行录音,并生成该录音音频的波形图,并进行以下处理:
[0020] (1.1)使用短时能量参数来进行语音端点检测,定义n时刻语音信号的短时平均能量为:
[0021]
[0022] N为分帧语音窗长,m为帧序号。
[0023] 求出所有帧中最大短时能量En_max,将0.03×En_max作为端点检测的阈值,同时,将0.01×En_max认为环境噪声作为在命令段内不计入运算的帧的阈值,这样将短时能量大于端点阈值的数据帧进行编号后计算出每帧的平均幅差函数;
[0024] (1.2)将计算得到的语音指令信号的平均幅差特征作为语音特征参数存储于模板中,进而建立用户命令模型,作为该用户语音指令待匹配模板;
[0025] (2)用户在体能测试控制模块中选择了需要测试的项目,包括仰卧起坐、跪姿俯卧撑或标准俯卧撑后,语音识别模块进入等待状态,调用Kinect体感交互设备的SDK打开内置麦克采集语音信号;
[0026] (3)对用户发出的语音信号提取完成后,将语音信号的特征参数与语音识别模块中的待匹配模板中的两个指令进行匹配,若与开始指令匹配,则仰卧起坐测试模块或俯卧撑测试模块开始检测计数同时测试反馈模块开始计时,若与结束指令匹配,则停止计数同时测试反馈模块结束计时,并将计数数据传递给运动测试反馈模块;若与开始指令和结束指令均不匹配,则不执行任何操作。
[0027] 所述测试反馈模块中:
[0028] (1)对于仰卧起坐运动检测,运动所消耗的能量=10*(m/60)*动作个数,其中m为被测人体体重,单位kg,计算运动强度系数=完成仰卧起坐个数/耗时,单位为秒,根据运动强度系数将被测人体的运动状态进行分级,以帮助客观评估本次测试中的体能情况,以便后续进行针对性的训练,强度系数大于1为S级,0.7-1为A级,0.5-0.7为B级,0.3-0.5为C级,0.3以下为D级;
[0029] (2)对于俯卧撑运动检测,标准俯卧撑所消耗的能量=g*m*h,其中g为10N/kg,m为被测人体体重,单位kg,h为被测人体前臂的长度,单位为m,跪姿俯卧撑所消耗的能量=(2/3)*g*m*h,计算运动强度系数=完成俯卧撑个数/耗时,单位为秒;根据运动强度系数将该次被测人体的运动状态进行分级,以帮助客观评估本次测试中的体能情况,以便后续进行针对性的训练,强度系数大于0.8为S级,0.7-0.8为A级,0.4-0.7为B级,0.2-0.4为C级,0.2以下为D级。
[0030] 一种基于深度图像的非接触式体能测试方法,所述实现步骤如下:
[0031] (1)当用户第一次使用时,引导用户对指令声音进行提取录入,用户录入指令包含两种:开始指令和结束指令;利用Kinect体感交互设备自带SDK打开内置麦克风进行录音,生成WAVE文件,并生成其波形图,从而对语音信号进行预处理和特征提取,生成用户指令模板;当用户再次使用系统时,会采集用户指令语音信号并提取信号中的特征参数,与预存用户指令模板;
[0032] (2)用户在运动测试控制模块中选择需要进行测试的动作后,初始化摄像机参数,启动Kinect体感交互设备的红外摄像头捕捉现实场景中的深度信息,对深度图像进行二值化处理,转化为黑白二值图像;根据黑白二值图像,获取被测人体轮廓;同时,Kinect体感交互设备内置麦克风打开等待获取语音信号;
[0033] (3)被测人体位于Kinect体感交互设备前1-2米处,做好仰卧起坐或俯卧撑测试准备,并发出语音指令,当获取到的语音信号与开始指令匹配时,根据步骤(2)中选择的项目,进行仰卧起坐或俯卧撑计数,同时进行测试反馈计时;在仰卧起坐测试中对人体轮廓凸包进行检测,在俯卧撑测试中对人体轮廓外接矩形进行长宽比判定,循环检测每一帧中被测人体所处的状态,当被测人体完成一次完整且有序的有限状态转换序列“准备状态”至“中间状态”再至“完成状态”时,被测人体动作计数加一;
[0034] (4)当用户希望结束当前运动时,发出结束语音指令,获取语音信号并与所存储的匹配模板进行匹配,当获取到的语音信号与结束指令匹配时,则结束计数;
[0035] (5)测试反馈过程停止计时后,从仰卧起坐测试或俯卧撑测试过程中读取计数信息,并计算用户发出开始指令和结束指令的时间间隔作为完成该次测试所消耗的时间,以图形化界面展示该次测试过程中完成动作个数,消耗的时间,运动过程中所消耗的能量以及该被测人体运动能力强度评价。
[0036] 本发明与现有技术相比的优点在于:
[0037] (1)用户无需穿戴任何仪器即可获得体能训练的相关数据,减少了穿戴仪器对用户体能训练带来的干扰;基于图像的处理方式可获取用户信息更为全面和丰富,为进一步的挖掘提供了更好的数据基础。
[0038] (2)相较于现有的非穿戴式体能测试系统对于环境背景的限制,本发明通过使用Kinect体感交互设备对于深度图像进行判读,能够在极大程度上减少训练过程中对于环境的依赖。
[0039] (3)通过使用有限状态机算法模型,运动检测过程中对于运动数据的测量准确,对于所测试动作以外的其他干扰动作具有较好的容错性。
[0040] (4)由于该系统提供了体能测试控制与测试反馈图形化界面,一方面把平台的可维护性和可移植性提高了;另外一方面为产品的批量生产提供了便利。附图说明
[0041] 图1为本发明系统的结构组成框图
[0042] 图2为本发明中的有限状态机状态转换示意图。

具体实施方式

[0043] 下面结合附图对本发明进行详细说明
[0044] 如图1所示,本发明基于深度图像的非接触式体能测试系统由体能测试控制模块、仰卧起坐测试模块、俯卧撑测试模块、语音识别模块和测试反馈模块构成。
[0045] 整个实现过程如下:
[0046] (1)当用户第一次使用时,引导用户对指令声音进行提取录入,用户录入指令包含两种:开始指令和结束指令;利用Kinect体感交互设备自带SDK打开内置麦克风进行录音,生成WAVE文件,并生成其波形图,从而对语音信号进行预处理和特征提取,生成用户指令模板;当用户再次使用系统时,会采集用户指令语音信号并提取信号中的特征参数,与预存用户指令模板;
[0047] (2)用户在运动测试控制模块中选择需要进行测试的动作后,初始化摄像机参数,启动Kinect体感交互设备的红外摄像头捕捉现实场景中的深度信息,对深度图像进行二值化处理,转化为黑白二值图像;根据黑白二值图像,获取被测人体轮廓;同时,Kinect体感交互设备内置麦克风打开等待获取语音信号;
[0048] (3)被测人体位于Kinect体感交互设备前1-2米处,做好仰卧起坐或俯卧撑测试准备,并发出语音指令,当获取到的语音信号与开始指令匹配时,根据步骤(2)中选择的项目,进行仰卧起坐或俯卧撑计数,同时进行测试反馈计时;在仰卧起坐测试中对人体轮廓凸包进行检测,在俯卧撑测试中对人体轮廓外接矩形进行长宽比判定,循环检测每一帧中被测人体所处的状态,当被测人体完成一次完整且有序的有限状态转换序列“准备状态”至“中间状态”再至“完成状态”时,被测人体动作计数加一;
[0049] (4)当用户希望结束当前运动时,发出结束语音指令,获取语音信号并与所存储的匹配模板进行匹配,当获取到的语音信号与结束指令匹配时,则结束计数;
[0050] (5)测试反馈过程停止计时后,从仰卧起坐测试或俯卧撑测试过程中读取计数信息,并计算用户发出开始指令和结束指令的时间间隔作为完成该次测试所消耗的时间,以图形化界面展示该次测试过程中完成动作个数,消耗的时间,运动过程中所消耗的能量以及该被测人体运动能力强度评价。
[0051] 各模块的具体实现过程如下:
[0052] 1.体能测试控制模块
[0053] (1)程序打开Kinect体感交互设备,并将其深度图像流储存在OpenCV的库包含的一个数据结构Mat中,通过显示图像函数(imshow)生成一个二值图像流。
[0054] (2)当Kinect体感交互设备的SDK检测到被测人体时,检测二值图像流中的被测人体轮廓。
[0055] (3)将被测人体轮廓区域储存起来作为仰卧起坐测试模块、俯卧撑测试模块判定区域。
[0056] (4)当体能测试控制模块中选择待测试项目为仰卧起坐时,调用仰卧起坐测试模块。
[0057] (5)当体能测试模块中选择待测试项目为跪姿俯卧撑或标准俯卧撑时,调用俯卧撑测试模块。
[0058] (6)开启语音识别模块,等待语音指令。
[0059] 2.仰卧起坐测试模块
[0060] (1)根据体能测试控制模块中获取到的被测图像轮廓,确定被测人体的凹点和被测人体凸点位置。计算当凹点与凸点间连线与水平轴正方向的夹角小于设定阈值(20)时,认定被测人体上身处于“准备状态”,即屈膝平躺姿势。
[0061] (2)循环对Kinect捕获到的视频帧进行检测,调用OpenCV函数检测凸包中的凸缺陷,并用cvPoint结构体记录这些凸缺陷的特征量(起始点,结束点,距离和最远点)根据被测图像的轮廓获得当前帧凸包,检测凸包中所有的凸缺陷。当单个凸缺陷的距离特征量大于设定阈值5.0时,将该凸缺视为待检测凸缺陷区域D。
[0062] (3)计算待检测凸缺陷区域D中,计算缺陷结束点与起始点连线的斜率。当斜率处于[20-70]之间时,当前状态置为“中间状态”并匹配当前帧中的凸缺陷与上一帧中的凸缺陷集合。当两个凸缺陷匹配,并且该凸缺陷的深度特征小于之前深度特征三分之一时,当前状态置为“完成状态”。若无匹配或凸缺陷深度特征差值均大于三分之一时,状态置为“其他状态”。
[0063] (4)状态转移条件如图2所示:Q0为起始状态,Q3状态出现视为一次完整的仰卧起坐动作,计数加1。当使用者动作满足该动作“准备状态”时,状态置为Q1;当使用者的动作处于“中间状态”时,状态置为Q2;当使用者动作处于“完成状态”时,状态置为Q3,计数+1;若使用者完成后保持状态,状态置为Q4,直到被测人体回到起始准备状态时状态置为Q1。若被测人体中途的动作使图像不满足以上4中判断,状态置为Q0,处于“其他状态”,直到被测人体达成“准备状态”,状态置为Q1。如果被测人体直接从“准备状态”变为“完成状态”,状态置为Q3,但是计数不会增加。
[0064] 3.俯卧撑测试模块
[0065] (1)根据模块1中获取到的被测人体轮廓,构建被测人体外接矩形。默认当前状态为“其他状态”。计算矩形的宽度与高度的比值,若大于预设阈值(跪姿俯卧撑为1.2,标准俯卧撑为1.5),则认为被测人体处于俯卧状态。
[0066] (2)在确认俯卧状态后,进一步判断外接矩形的宽高比,当其落与阈值范围[1.9-2.5]之间设置当前状态值为“准备状态”;落与[2.5-3.31]区间时设置当前状态为“中间状态”;当宽高比大于3.31时,设置当前状态为“完成状态”。当宽高比不处于以上任意区间时,设置当前状态为“其他状态”。
[0067] (3)状态转移条件如图2所示:Q0为起始状态,Q3状态出现视为一次完整的俯卧撑动作,计数加1。当被测人体动作满足该动作“准备状态”时,状态置为Q1;当被测人体的动作处于“中间状态”时,状态置为Q2;当使用者动作处于“完成状态”时,状态置为Q3,计数+1;若被测人体完成后保持状态,状态置为Q4,直到被测人体回到起始准备状态时状态置为Q1。若被测人体中途的动作使图像不满足以上4中判断,状态置为Q0,处于“其他状态”,直到被测人体达成“准备状态”,状态置为Q1。如果被测人体直接从“准备状态”变为“完成状态”,状态置为Q3,但是计数不会增加。
[0068] 4.语音识别模块
[0069] (1)用户第一次使用时,会提示用户记录下开始和结束的指令语音信息,在此使用时,根据体能测试控制模块控制,用户分别发出“开始”和“结束”语音指令后,利用Kinect的SDK语音包进行录音,并生成该录音音频的波形图。
[0070] (2)对录制的音频使用短时能量参数来进行语音端点检测,求出所有帧中最大短时能量En_max,将0.03×En_max作为端点检测的阈值,同时,将0.01×En_max认为环境噪声作为在命令段内不计入运算的帧的阈值,这样将短时能量大于端点阈值的数据帧进行编号后计算出每帧的平均幅差函数;
[0071] (3)将计算得到的语音指令信号的平均幅差特征作为语音特征参数存储于模板中,进而建立用户命令模型,作为该用户语音指令待匹配模板;
[0072] (4)用户在体能测试控制模块中选择了需要测试的项目,包括仰卧起坐、跪姿俯卧撑或标准俯卧撑后,语音识别模块进入等待状态,调用Kinect体感交互设备的SDK打开内置麦克风采集语音信号;
[0073] (5)对用户发出的语音信号提取完成后,将语音信号的特征参数与语音识别模块中的待匹配模板中的两个指令进行匹配,若与开始指令匹配,则仰卧起坐测试模块或俯卧撑测试模块开始检测计数同时测试反馈模块开始计时,若与结束指令匹配,则停止计数同时测试反馈模块结束计时,并将计数数据传递给运动测试反馈模块;若与开始指令和结束指令均不匹配,则不执行任何操作。
[0074] 5.测试反馈模块
[0075] (1)当用户发出开始指令时,测试反馈模块开始计时;当用户发出结束指令时,测试反馈模块停止计时,计算用户发出指令和结束指令的时间间隔,计算该次测试所消耗的时间。读取运动测试模块中所记录的用户完成动作个数。测试反馈模块以图形化界面展示该次测试过程中完成动作个数,消耗的时间,运动过程中所消耗的能量以及该被测人体运动能力强度评价。
[0076] (2)对于仰卧起坐运动检测,该次运动所消耗的能量=10*(m/60)*动作个数,其中m为被测人体体重(单位kg)。计算运动强度系数=完成仰卧起坐个数/耗时(单位:秒)。强度系数大于1为S级,0.7-1为A级,0.5-0.7为B级,0.3-0.5为C级,0.3以下为D级。
[0077] (3)对于俯卧撑运动检测,标准俯卧撑所消耗的能量=g*m*h。其中g为10N/kg,m为被测人体体重(单位为kg),h为被测人体前臂的长度(单位为m)。跪姿俯卧撑所消耗的能量=(2/3)*g*m*h。计算运动强度系数=完成俯卧撑个数/耗时(单位:秒)。强度系数大于0.8为S级,0.7-0.8为A级,0.4-0.7为B级,0.2-0.4为C级,0.2以下为D级。
[0078] 测试方法:
[0079] (1)本系统测试硬件环境为Kinect1.0以及硬件配置为内存容量为2G以上,硬盘容量为256G,软件环境为Opencv3.0,Windows 10,Kinect1.0,Visual Studio 2010以上版本。
[0080] (2)仰卧起坐测试方法为:被测人体仰卧于距离Kinect摄像头1-2米处。屈膝仰卧于地面,双手扶于耳部时即进入准备状态。用户根据自己预先存入系统中的语音指令,向系统发出语音提示信号,语音匹配成功后系统进入体能记录状态。
[0081] (3)俯卧撑测试方法为:被测人体俯卧于距离Kinect摄像头1-2米处。选择跪姿俯卧撑时,被测人体在双膝着地小腿抬起,髋关节与大腿呈一条直线,头部抬起,双手撑地时即进入准备状态。选择标准俯卧撑时,被测人体在双脚着地,背部与腿部呈一条直线,头部抬起,双手撑地时即进入准备状态。用户根据自己预先存入系统中的语音指令,向系统发出语音提示信号,语音匹配成功后系统进入体能记录状态。
[0082] (4)当用户希望结束本次训练或测试时,根据预先存入系统中的语音指令,向系统发出语音提示信号,语音匹配成功后系统结束体能记录,并向用户反馈体能测试结果。
[0083] 本发明未详细描述的部分属于本领域公知技术。
[0084] 以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈