一种人体运动状态检测系统及检测方法技术领域
本发明涉及人体运动状态检测领域,具体涉及一种人体运动状态检测系统及检测方法。
背景技术
人体运动状态检测,是希望通过计算机收集、分析数据,智能地识别人体当前的运动状态,从而做到了智能识别、智能记录。现有一种人体运动状态检测方法,需要在实验室给人体固定多套设备,如加速度传感器、方向传感器等,组合成一个传感网络,通过收集加速度值和方向改变值,从而识别人体运动状态。另一种人体运动状态检测方法,需要在人的四肢以及头部固定有标志物,在有摄像头的前面进行活动,通过摄像头把画面输入计算机,在计算机内通过图像识别标志物的方法,达到识别人体运动状态的效果。
以上两种识别和检测方法,都有耗材繁琐,环境要求苛刻,不适宜大规模使用,不适宜在日常生活推广的弊端。
发明内容
为了解决现有识别和检测方法都有耗材繁琐,环境要求苛刻,不适宜大规模使用,不适宜在日常生活推广的弊端的技术问题,本发明提供一种人体运动状态检测系统及检测方法。
为实现上述目的,本发明的技术方案如下:
一种人体运动状态检测系统,其特征在于包括:系统数据接口,由对应的手机操作系统API提供,可以通过编程获取相应的数据;手机传感器模块;人体运动数据采集模块,所述人体运动数据采集模块,与系统数据接口和手机传感器模块连接的人体运动数据采集模块,用于获取人体的相关运动参数;数据处理模块,用于对人体运动数据采集模块获取到的数据进行插值,保证传感器获取到的加速度值和方向值存在唯一对应的时间点;数据归一化映射模块,用于通过三角函数关系式,把数据处理模块处理后加速度值和方向值映射到标准的三维坐标系上;运动状态匹配模块,与运动状态匹配模块连接的样本库训练模块和运动状态判别模块;用于对数据归一化映射模块中映射到标准的三维坐标系上的数据进行分析,通过与样本数据库对比,判断出人体当前的运动状态;
作为上述技术方案的进一步改进所述人体运动数据采集模块包括手机终端上的加速度传感器和方向传感器。
作为上述技术方案的进一步改进,所述数据处理模块包括:数据插值模块,利用插值算法估算人体运动状态的加速度参数和方向参数在相应时间点上的近似值,从而得到更为完整的运动参数;时间单元划分模块,根据预先设定的时间段长度划分时间单元。
作为上述技术方案的进一步改进,所述运动状态匹配模块包括:状态样本库训练模块,通过确定特定的运动状态,如跌倒、跑步等运动状态,对每一种特定的运动状态进行加速度序列采样,利用SVM算法对加速度序列进行分类和检测,从而训练出一个标准样本库;运动状态判别模块,将每一个特定时间段内的加速度序列输入样本库进行匹配,找出与原先运动状态最相似的运动状态,进一步判定当前时间段的运动状态。
作为上述技术方案的进一步改进,所述加速度传感器获取到的加速度数据包括x轴加速度值、y轴加速度值和z轴加速度值。
作为上述技术方案的进一步改进,所述方向传感器获取到的方向包括手机x轴与水平面的夹角、手机y轴与水平面的夹角和手机y轴水平面上的投影与正北方向的夹角。
除提供的系统外,本发明还提供一种人体运动状态检测系统方法,其特征在于包括:
步骤1,人体运动数据采集处理,通过手机传感器获取人体运动数据,当人体状态发生变化时,传感器就会自动记录加速度值和方向值;
步骤2,运动数据处理:对步骤1中获取到的数据进行插值使得数据均匀化,再利用三角函数关系式将各个方向的加速度数据映射到标准坐标系上,并以此作为状态判别的参数;
步骤3,训练状态样本库处理,对每一种特定的运动状态进行加速度序列采样,利用SVM算法对加速度序列进行分类和检测;
步骤4,运动状态判别处理,根据步骤2中得到的标准坐标系上的参数,与步骤3)中得到的样本库进行匹配,从而确定人体当前的运动状态。
作为上述技术方案的进一步改进,所述步骤2中对获取到的数据进行插值是利用插值算法估算人体运动状态的加速度参数和方向参数在相应时间点上的近似值,从而得到更为完整的运动参数。
作为上述技术方案的进一步改进,所述利用SVM算法对加速度序列进行分类是一个机器学习的过程,根据有限样本信息在学习精度和学习能力之间匹配最佳的分类。
实施本发明的一种人体运动状态检测系统及检测方法,具有以下有益效果:
1)本发明可以搭载在手机上面,携带方便,对使用环境无严苛,具有方便易用的特点;使得人体运动状态检测可以抛弃以前的实验室条件,真正做到可以在日程生活中使用,真正做到可以大规模推广和利用。
2)本发明基于手机现有的加速度传感器、方向传感器,不仅数据测量结果精密,检测结果准确度高;而且具备了手机的通信能力、移动能力,可继续开发的潜力大,应用场景广。
3)本发明在检测算法上,创造性地把人工智能学习算法SVM运用到对加速度值序列的分类上,分类准确度高,检测结果稳健高效。而且SVM算法处理高效的特点,使其在手机上的发挥具有速度快、耗电低的特点。
附图说明
图1为本发明中人体运动状态检测系统的整体模块框图;
图2为本发明中人体运动状态检测方法的操作流程图;
图3为本发明中人体运动状态检测方法的数据处理流程图;
图4为本发明中人体运动状态检测方法的样本库训练流程图。
具体实施方式:
随着智能手机的普及,以及在智能手机上的传感器等硬件技术的不断发展,通过结合智能手机上的各种传感器,运用模式识别等技术手段对从传感器中获得的数据进行处理、分析,成本变得越来越低,而且,这样的方法简单易行,对专用设备的要求低。不仅不会对用户的行为动作造成太大干扰,而且能实时、快速、精确地对用户的运动状态做出判断,并作出相应的处理,如检测到老年人跌倒,就会自动发送报警信息等。如附图1所示,本发明提供的一种人体运动状态检测系统,包括人体运动数据采集模块、数据处理模块、数据归一化映射模块、运动状态匹配模块;人体运动数据采集模块包括手机终端上的加速度传感器和方向传感器,用于获取人体的相关运动参数;数据处理模块用于对传感器获取到的数据进行插值,保证传感器获取到的加速度值和方向值存在唯一对应的时间点;数据归一化映射模块利用三角函数关系式,把已有的加速度值和方向值映射到标准的三维坐标系上;运动状态匹配模块对数据进行分析,通过与样本数据库对比,判断出人体当前的运动状态。数据处理模块包括数据插值模块、时间单元划分模块;数据插值模块利用插值算法估算人体运动状态的加速度参数和方向参数在相应时间点上的近似值,从而得到更为完整的运动参数;时间单元划分模块根据预先设定的时间段长度划分时间单元。数据归一化映射模块利用三角函数关系式,将各个方向上的加速度数据分解到预先设定的标准坐标系。运动状态匹配模块包括状态样本库训练模块、运动状态判别模块;状态样本库训练模块首先确定特定的运动状态,如跌倒、跑步等运动状态,对每一种特定的运动状态进行加速度序列采样,利用SVM算法对加速度序列进行分类和检测,从而训练出一个标准样本库;运动状态判别模块将每一个特定时间段内的加速度序列输入样本库进行匹配,找出与原先运动状态最相似的运动状态,进一步判定当前时间段的运动状态。加速度传感器获取到的加速度数据包括x轴加速度值、y轴加速度值和z轴加速度值;方向传感器获取到的方向包括手机x轴与水平面的夹角、手机y轴与水平面的夹角和手机y轴水平面上的投影与正北方向的夹角。其中插值算法必须对各个坐标轴上的加速度值都进行插值,同时必须对各个方向角上的角度值都进行插值,从而确保各个时间点上的加速度值与方向值对应。SVM算法进行分类是一个机器学习的过程,根据有限样本信息在学习精度和学习能力之间匹配最佳的分类。
其中数据处理处理模块,如附图2所示,主要是解决某些手机传感器获得的数据并非是均匀时间间隔的问题。例如,从Andoird SDK的API获取的传感器数据是时间非均匀的。获取数据的数量与传感器和CPU的当前性能息息相关。因此,每一秒获取的数据量是不一样的,而且一秒内的数据也是非均匀的。为了方便后续归一化的处理,我们需要将数据进行合并或者插值。若数据密度超过阀值(阀值通常为每秒50个采样点,时间间隔0.02),我们进行数据合并,若数据密度低于阀值,我们运用三次样条插值进行数据扩充。选择三次样条插值,是因为通过分段三次插值多项式可以获得光滑曲线,尽量使得误差值降到最低。每一次获取的传感器数据我们都会加上时间标签,并且通过这些时间标签进行等时间间隔插值。数据归一化映射模块,主要是将不同角度的加速度,归一到标准坐标系xyz三个方向的加速度值。通过以上步骤,我们已知了时间均匀的加速度和方向传感器的参数。随后通过立体几何的相关知识,我们对原手机的加速度向量进行坐标分解,将向量分解到标准坐标系并进行累加,即可得到标准坐标系X,Y,Z轴的加速度值(X轴:指向正北方,Y轴:指向正西方,Z轴:垂直于大地水平面向上)当手机相对于自身的加速度分别为x,y,z;方向角,倾斜角,旋转角分别为α,β,γ,则此时的X,Y,Z轴的加速度分别为:
X=x(cosγcosα-sinγsinβsinα)+ycosβsinα-z(sinγcosα+cosγsinβsinα)
Y=-x(cosγsinα+sinγsinβcosα)+ycosβcosα+z(sinγsinα-cosγsinβcosα)
Z=zcosγcosβ+xsinγcosβ+ysinβ
通过上述的一系列变换,则就将非归一,非均匀的传感器数据映射为归一,均匀的标准坐标系加速度值。
运动状态匹配模块需要用到libsvm开源库,该库是一个机器学习算法库,可以用于对有规律的数据进行分类。根据libsvm给出的接口,其中运动状态匹配模块库也分为样本库训练模块和运动状态判别模块,其中样本库训练模块在获得数据归一化映射的序列后,对已知的N种运动状态均记录M组序列,则可以获得N*M组加速度值序列,并将该序列输入都libsvm,将生成一个样本库。而运动状态判别模块是在任意时间段内,收集到一组加速度序列,经过处理和归一化后,与样本库进行对比,可以判断出该序列属于样本库的哪一种运动状态。
如图2所示,本发明提供的一种人体运动状态检测方法,包括以下步骤:
第一步,人体运动数据采集,用户带上装有上述人体运动状态检测系统的手机,比如一台装有我们软件的android手机,手机随用户散步、上楼等自然活动。打开传感器,手机就开始通过传感器收集即时的加速度和方向数据。
第二步,运动数据处理,如图3所示,人体运动会带来加速度的改变,判断相邻加速度值之间的时间间隔,若密度超过过阀值,直接合并,否则进行三次样条插值后合并,从而获得时间间隔相同的加速度序列,最后把这些不同方向的加速度序列通过归一化公式换算成标准坐标系的加速度序列。
第三步,训练状态样本库,如附图4所示,我们要建立的是M种常见运动状态的数据库,如跑步、散步、静止等。从第一种运动到第M种运动,每个运动,进行1~N次运动,并且按上面的方法收集标准的加速度序列。最后,将获得的M*N组样本输入svm进行建库。
第四步,运动状态判别,获得样本数据库后,可以开始正式检测,继续如图2所示,将某次随机运动检测到的加速度序列(处理后),输入到Libsvm中去,将得到样本库中与本次加速度序列最匹配的运动类型,从而可以认为,这次运动就是样本中的那种运动类型。
其中,数据处理处理模块,如附图2所示,主要是解决某些手机传感器获得的数据并非是均匀时间间隔的问题。例如,从Andoird SDK的API获取的传感器数据是时间非均匀的。获取数据的数量与传感器和CPU的当前性能息息相关。因此,每一秒获取的数据量是不一样的,而且一秒内的数据也是非均匀的。为了方便后续归一化的处理,我们需要将数据进行合并或者插值。若数据密度超过阀值(阀值通常为每秒50个采样点,时间间隔0.02),我们进行数据合并,若数据密度低于阀值,我们运用三次样条插值进行数据扩充。选择三次样条插值,是因为通过分段三次插值多项式可以获得获得光滑曲线,尽量使得误差值降到最低。每一次获取的传感器数据我们都会加上时间标签,并且通过这些时间标签进行等时间间隔插值。
其中,数据归一化映射模块,主要是将不同角度的加速度,归一到标准坐标系xyz三个方向的加速度值。通过以上步骤,我们已知了时间均匀的加速度和方向传感器的参数。随后通过立体几何的相关知识,我们对原手机的加速度向量进行坐标分解,将向量分解到标准坐标系并进行累加,即可得到标准坐标系X,Y,Z轴的加速度值(X轴:指向正北方,Y轴:指向正西方,Z轴:垂直于大地水平面向上)
当手机相对于自身的加速度分别为x,y,z;方向角,倾斜角,旋转角分别为α,β,γ,则此时的X,Y,Z轴的加速度分别为:
X=x(cosγcosα-sinγsinβsinα)+ycosβsinα-z(sinγcosα+cosγsinβsinα)
Y=-x(cosγsinα+sinγsinβcosα)+ycosβcosα+z(sinγsinα-cosγsinβcosα)
Z=zcosγcosβ+xsinγcosβ+ysinβ
通过上述的一系列变换,将非归一,非均匀的传感器数据映射为归一,均匀的标准坐标系加速度值。
运动状态匹配模块需要用到libsvm开源库,该库是一个机器学习算法库,可以用于对有规律的数据进行分类。根据libsvm给出的接口,我们的运动状态匹配模块库也分为两个子模块,样本库训练模块和运动状态判别模块。其中样本库训练模块,在获得数据归一化映射的序列后,对已知的N种运动状态均记录M组序列,则可以获得N*M组加速度值序列,把这些序列输入都libsvm,将生成一个样本库。而运动状态判别模块,是在任意时间段内,收集到一组加速度序列,经过处理和归一化后,与样本库进行对比,可以判断出该序列属于样本库的哪一种运动状态。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。