发明内容
为了克服现有基于Kinect的人体行为检测方法实用性差的不足,本发明提供一种基于Kinect的无接触式学生体质测评方法。该方法通过Kinect配备的彩色和红外摄像头获取人体姿态,并在界面上实时显示。利用推测出的骨骼节点记录人体各个关节位置,并通过比对人体做各项运动时各关节节点的位置变化来推测出人的行为,并与预置的标准数据匹配,检测人体的动作是否标准,最终将结果反馈到界面中。相对于背景技术方法,摆脱了在被测人体上增加额外设备的束缚,便于对大量的体测对象集中测试;后台数据库系统在测试完成后,自动获取体质监测数据,便于分析和管理学生的体质状况;对于体测项目的测量结果平均误差均小于2%,且不易受人为主观因素的影响。
本发明解决其技术问题所采用的技术方案:一种基于Kinect的无接触式学生体质测评方法,其特点是包括以下步骤:
(a)通过读卡器对学生进行身份识别,使用三脚架支撑Kinect传感器对运动场景进行数据采集,根据所设置的采样频率获得实时的彩色图像数据流和景深图像数据流。
(b)通过事件模式访问身体帧引用获取人体帧数据流,程序每30秒刷新一次身体帧数据,循环步骤(b)呈现完整连续的人体;
(c)通过坐标映射,以捕获的彩色数据信息作为背景,将规定位置的骨骼关节点绘制在相应位置的彩色图像上。
(d)人体姿势采用节点三角形法和节点交叉法确定,构建适用于不同测试项目的标准姿势库。
(e)测试人员通过学生体质测评系统,分别对学生进行坐位体前屈、立定跳远、引体向上、仰卧起坐和身高测试。
(f)测试完成后,学生通过学生权限登录查阅,管理者通过管理者权限登录后台数据库管理系统查阅或是完成修改操作。
作为优选,步骤(a)中,所述的传感器采用KinectforWindowsV2传感器,其对外提供三类数据流,即通过彩色摄像头捕获的彩色图像数据流、通过景深数据流器捕获的景深数据流、以及从景深信息中提取的人体骨骼数据流。其中:
骨骼流数据用于在体育测试过程中对被测对象实际体态进行识别,通过与预置的标准体态进行动态比对分析,判断当前被测对象的动作是是否达到标准,对于正确的体态进一步计数和测距,对于错误的体态进行告警或者扣分;
景深数据流用于测量对被测对象的移动距离,根据移动距离对相应的动作赋分;
彩色图像数据提供体测过程的实时视频监控和录像,对出现的质疑、身份的确认以及异常情况保存视频证据,同时为高层应用提供远程监控功能。
作为优选,步骤(d)中,从景深图的背景中提取人体关键骨骼点信息,根据人体骨骼间的相对关系,匹配预置的标准动作数据库,从而判断当前测试中的人体动作是否标准。
作为优选,步骤(e)中,所述的学生体质测评系统,参照《大学生体质健康标准》测试具体项目与方法,包含引体向上、仰卧起坐、身高测试、立定跳远以及坐位体前屈五个测试项目。其中:
作为优选,所述的引体向上测试,通过判别人体姿势是否符合标准来进行计数。引体向上的判断过程分为两步,人体上升过程和人体下降过程,在上升过程中判断上颌是否超过横杠,下降后是否还原为自然状态,同时确保整个过程中人体无明显的摆动。若此过程中动作指标规范,则进行一次计数,计量单位精确到个位。
作为优选,所述的仰卧起坐测试,判断过程分为两步,即人体仰卧过程和人体坐起过程。仰卧过程初始时,受试者双膝弯曲呈90度角左右,背部呈一条直线仰卧于垫上,两肩胛骨必须触垫,两手处于抱头姿态。坐起时两肘触及或超过双膝为完成一次。否则该次不计次数,计量单位精确到个位。
作为优选,所述的身高测试采用启用姿势来固定身高值,双手举平开始测量身高,举起双手清除身高数据。
作为优选,所述的立定跳远测试,根据ToF测距原理获取从景深摄像头到该物体表面的距离,每一个像素为16-bit,单位为毫米,测距范围在0.5到8米之间。学生跳远前将双手举平由系统进行姿势判断,记录此时待测者距机器距离,待测者起跳后通过检测脚的高度变化来推断跳远者是否跳远结束,并记录跳远终止时待测者距离机器的距离,根据起始位置减去终止位置计算跳远距离。
作为优选,所述的坐位体前屈测试,学生两腿伸直平坐在垫子上,用两手中指尖缓慢向前推动,坐位体前屈的距离通过测量手指距离Kinect传感器的距离,使用自定义的初始位置值与此距离做差值得到。
作为优选,步骤(f)中,所述的后台数据库管理系统,采用C#语言编程,使用SQL2014进行管理界面的开发和数据管理,包括登陆验证、用户及用户权限管理、日志管理、一卡通刷卡、学生档案和成绩的增删改查、学生健康档案生成。
本发明的有益效果是:该方法通过Kinect配备的彩色和红外摄像头获取人体姿态,并在界面上实时显示。利用推测出的骨骼节点记录人体各个关节位置,并通过比对人体做各项运动时各关节节点的位置变化来推测出人的行为,并与预置的标准数据匹配,检测人体的动作是否标准,最终将结果反馈到界面中。相对于背景技术方法,摆脱了在被测人体上增加额外设备的束缚,便于对大量的体测对象集中测试;后台数据库系统在测试完成后,自动获取体质监测数据,便于分析和管理学生的体质状况;对于体测项目的测量结果平均误差均小于2%,且不易受人为主观因素的影响。
下面结合附图和具体实施方式对本发明作详细说明。
具体实施方式
参照图1-9。本发明基于Kinect的无接触式学生体质测评方法具体步骤如下:
按照立定跳远、仰卧起坐、引体向上、坐位体前屈和身高测试项目的不同,标准体测室划分为若干间独立的测试房间,分别为Room1、Room2、Room3、Room4、Room5,每个房间在固定的位置安装一台Kinect体感识别设备、一台RFID读卡器以及手持终端。当被测对象进入体测室时,通过随身携带的一卡通对被测对象的身份进行识别和比对。
所有测试房间的体测设备由设备监控平台统一管理和初始化,各个房间的终端可以进行远程的查看和部分参数的修改。当被测对象身份验证之后即可进行一系列标准测试,每个测试房间内配置一台手持终端,能够实时的查看体测过程数据,包括三类数据流,各项技术指标以及被测对象的历史数据。每台手持设备通过无线与设备运行监控平台进行通讯,设备监控平台和本地数据库都运行在后台X86服务器上,并通过网络远程登录访问。
当测评引体向上时,首先确保捕获到的人体骨骼处于追踪状态,当人体跳起双手握杆,身体呈直臂悬垂姿势开始计数;当下颌超过横杠上缘时,人体还原,呈直臂悬垂姿势为完成一次标准动作。根据标准判断人体在完成整个引体向上的上升及下降过程中,身体成笔直状态,且腿部无明显的摆动。作为优选,该过程采用节点交叉法,通过判断肢体关节在X轴以及Z轴方向上的相对位置,用以判断肢体是否垂直。
由于人体在完成引体向上的上升动作时,会出现下颌在横杠边缘抖动的情况,计数器误以为完成多次引体向上动作,对导致计数器的判断造成影响。本发明采用双阈值滤波方法,通过设计两个不同阈值,当人体上升到上颌距离超过横杠距离,认为人体完成上升动作,将标志位isUp的值置为真;当人体下降到低于下阈值的位置,认为人体完成下降动作,改变标志位isUp的值为假。
当测评身高时,采用深度结合三角推导的方法,通过遍历比较人体部位的像素点,结合Kinect的视场角来计算,身高单位为毫米,计算公式为:
b=2d×tan(35)
式中,d为人体实际到Kinect的距离,b为人体实际位于Kinect视角场的横截面宽度,Hd表示人体在景深图中的高度,Fd表示每帧景深图的宽度,Hr表示人体实际高度。
双手举平开始测量身高,举起双手清除身高数据,姿势库的构建。作为优选,关节角度的计算采用节点三角形法,根据余弦定理求出夹角。当夹角在规定的阈值范围内,则判断为有效姿势。选取一个关节点作为整个坐标系统的中心或者零点,以其为基准点,然后在同一个水平的X轴上任选一点,和另一辅助关节点三点组成一个三角形。关节角度的约束条件为:
LA={J1,J2,θ,τ}
式中,J1为基准关节点,J2为辅助关节点,θ为关节角度,τ为阈值。
人体的姿势需要多个动作的联合判别,规定完成一个上肢姿势的判断需要依次遍历四个角度,约束条件集合为:
△=(θ1,θ2,θ3,θ4)
式中,θ1为左肩与左手肘的关节角度,θ2为右肩与右手肘的关节角度,θ3为左手肘与左腕骨的关节角度,θ4为右手肘与右腕骨的关节角度。
当测评立定跳远时,将Kinect放置在距离起跳点L的位置上,L为自定义的初始位置值,用户完成跳远后将双手举平,由系统进行姿势判断。然后根据获得身体骨骼点的位置信息,来判断人体左右脚的位置,锁定离Kinect较远的脚的距离为D,也就是实际跳远的落地点在后方的脚,定义变量footFar来接收距离传感器较大的值。最后用L与D做差值便可得到实际的跳远距离,记录以米为单位,保留两位小数。
本发明所述方法的坐位体前屈模块的设计,通过测量手指距离Kinect传感器的距离,使用自定义的初始位置值L与此距离做差值得到,系统接收距离传感器较大的值。由于需要实时更新人体指尖向前触摸的距离,本发明定义另一个临时变量tag来存放当前前伸的最大距离,每次刷新都与最大值进行一次比较,记录以厘米为单位,保留两位小数。
仰卧起坐模块的判断过程主要分为两步,即人体仰卧过程和人体坐起过程。在仰卧过程中需关注三项指标:计算关节角度判断双膝是否弯曲成90度;根据关节交叉法判断双手是否置于脑后;判断两肩胛骨的Y值是否与地面平齐,即是否触地。若满足以上要求,表示人体已做好预备姿势,则开始仰卧起坐的计数过程。在人体坐起过程中,双膝所成角度需要90度左右范围,双手不可脱离头部,坐起后,再根据关节交叉法判断肘部是否触及双膝,若此过程中动作指标规范为完成一次计数。
作为优选,判断抱头姿势以及坐起姿势采用节点交叉法。判断腿部角度时,需要用到空间向量法来求解。对于膝关节角度的计算,使用空间向量的夹角得出,计算公式为:
式中,F(Fx,Fy,Fz)为踝关节三维坐标,K(Kx,Ky,Kz)为膝关节三维坐标,H(Hx,Hy,Hz)为髋关节三维坐标。
其后台数据库包含4张表:
1.T_Stu是学生表,包括学生编号,一卡通编号,姓名,学号,年级以及民族。主键是学生的学号。学生的基本信息从学校数据库获得。
2.T_Stuscore是学生的体侧信息表,包括学号,引体向上测试结果,坐位体前屈,测试结果,身高测试结果、测试时间和测试人信息,主键是学号。
3.T_users是用户表,包含用户名和密码,主键是用户名。
4.T_log是日志表,包含登录用户和登录离开时间。
用户登录时通过用户名查询T_users表检测密码是否正确。登录成功后,系统把登录的用户和登录时间存入T_log,等测试完成并离开系统内时把退出时间存入T_log。学生刷卡时通过学号查询T_Stu表并把信息显示到界面,当测试完成时,根据学号查询并更新T_Stuscore表,把学生的测试档案放入数据库。
具体方法归纳如下:
(a)学生通过读卡器进行身份识别,使用三脚架支撑Kinect传感器对运动场景进行数据采集,根据所设置的采样频率获得实时的彩色图像数据流和景深图像数据流。
(b)通过事件模式访问身体帧引用来获取人体帧数据流,程序每30秒刷新一次身体帧数据,循环此过程来呈现完整连续的人体;
(c)通过坐标映射,以捕获的彩色数据信息作为背景,将规定位置的骨骼关节点绘制在相应位置的彩色图像上。
(d)人体姿势主要采用节点三角形法和节点交叉法来确定,然后以此构建适用于不同测试项目的标准姿势库。
(e)测试人员通过所述学生体质测评系统,分别对学生进行坐位体前屈、立定跳远、引体向上、仰卧起坐和身高测试。
(f)测试完成后,学生通过学生权限登录查阅,管理者通过管理者权限登录后台数据库管理系统查阅或是完成修改操作。
作为优选,步骤(a)中,所述的传感器采用KinectforWindowsV2传感器,其对外提供三类数据流,即通过彩色摄像头捕获的彩色图像数据流、通过景深数据流器捕获的景深数据流、以及从景深信息中提取的人体骨骼数据流。其中:
骨骼流数据用于在体育测试过程中对被测对象实际体态的识别,通过与预置的标准体态进行动态比对分析,判断当前被测对象的动作是是否达到标准,对于正确的姿势进一步计数和测距,对于错误的体态进行告警或者扣分;
景深数据流主要用于测量对被测对象的移动距离,如立定跳远和坐位体前屈。根据移动距离对相应的动作赋分;
彩色图像数据主要提供体测过程的实时视频监控和录像,对出现的质疑,如成绩的复查,身份的确认以及异常情况保存视频证据,同时也为高层应用提供远程监控功能。
作为优选,步骤(d)中,从景深图的背景中提取人体关键骨骼点信息,根据人体骨骼间的相对关系,如尺骨桡骨与肱骨间的夹角,掌骨与锁骨高度差信息,匹配预置的标准动作数据库,从而判断当前测试中的人体动作是否标准,保证了测试项目的统一标准。
作为优选,步骤(e)中,所述的学生体质测评系统,参照《大学生体质健康标准》测试具体项目与方法,开发了包含引体向上、仰卧起坐、身高测试、立定跳远以及坐位体前屈五个测试项目的测评系统。其中:
作为优选,所述的引体向上测试,通过判别人体姿势是否符合标准来进行计数。引体向上模块的判断过程主要分为两步,人体上升过程和人体下降过程,即在上升过程中判断上颌是否超过横杠,下降后是否还原为自然状态,同时确保整个过程中人体无明显的摆动。若此过程中动作指标规范,则进行一次计数,计量单位精确到个位。
作为优选,所述的仰卧起坐测试,判断过程主要分为两步,即人体仰卧过程和人体坐起过程。仰卧过程初始时,受试者双膝弯曲呈90度角左右,背部呈一条直线仰卧于垫上,两肩胛骨必须触垫,两手处于抱头姿态。坐起时两肘触及或超过双膝为完成一次。否则该次不计次数,计量单位精确到个位。
作为优选,所述的身高测试,由于Kinect按每秒30帧的速率传输数据,若直接显示计算得到的身高数据会连续的跳变,因此需采用启用姿势来固定身高值。本发明所采用的系统规定,双手举平开始测量身高,举起双手清除身高数据。
作为优选,所述的立定跳远测试,根据ToF测距原理获取从景深摄像头到该物体表面的距离,每一个像素为16-bit,单位为毫米,测距范围在0.5到8米之间。学生跳远前将双手举平由系统进行姿势判断,记录此时待测者距机器距离,待测者起跳后通过检测脚的高度变化来推断跳远者是否跳远结束,并记录跳远终止时待测者距离机器的距离,根据起始位置减去终止位置计算跳远距离。TOF测距方法属于双向测距技术,利用信号在两个异步收发机之间往返的飞行时间来测量节点间的距离。
作为优选,所述的坐位体前屈测试,学生两腿伸直平坐在垫子上,用两手中指尖缓慢向前推动,与立定跳远测试模块的原理类似,坐位体前屈的距离通过测量手指距离Kinect传感器的距离,使用自定义的初始位置值与此距离做差值得到。
作为优选,步骤(f)中,所述的后台数据库管理系统,采用C#语言编程,使用SQL2014进行管理界面的开发和数据管理,包括登陆验证、用户及用户权限管理、日志管理、一卡通刷卡、学生档案和成绩的增删改查、学生健康档案生成。SQL是一种结构化的数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。