本发明属于运动检测技术领域,更具体地,涉及一种用于运动检测的三轴加速度数据的均值滤波方法。
背景技术:
三轴加速度传感器,是一个基于加速度的基本原理去实现空间加速度传感的工具。目前的三轴加速度传感器大多采用压阻式、压电式和电容式工作原理,产生的加速度正比于电阻、电压和电容的变化,通过相应的放大和滤波电路进行采集。
工间操是一种不受场地限制的微运动。由于其缓解疲劳、调节情绪和锻炼身体的优点而日益受到人们的重视,工间操可以即时卸载身体的负荷,保持健康的体魄,高效的工作。传统的做法是,办公室人员模仿图片或视频里的工间操活动,但是无法知道姿势是否标准,如果姿势不标准,则达不到良好的运动效果。基于穿戴于人体肢体的智能设备或智能手机中的三轴加速度传感器可以利用三轴加速度传感数据监测工间操中对应的人类肢体运动轨迹进行监测并进一步判定工间操的姿势是否标准。
人类肢体运动的加速度信号主要为低频信号,要求加速度传感器有较高的灵敏度。但是加速度信号在激励、检测和传输过程中会不同程度地受到环境高频噪声的污染,同时肢体的抖动也会引入高频噪声,因此需要对人类肢体运动加速度信号进行滤波去噪。
技术实现要素:
针对现有技术的以上缺陷或改进需求,本发明提供了一种用于运动检测的三轴加速度数据的均值滤波方法,其目的在于在运动检测中利用三轴加速度传感器进行数据采集时,根据训练模板的闲置轴向来开关相应轴向的滤波功能,并利用各缓冲器和滤波器对各轴向数据进行均值滤波,实现了运动检测过程中在较低系统资源消耗的情况下对低频运动信号中的高频噪声的有效滤除,由此解决了现有技术中无法有效滤除运动信号噪声以及系统资源消耗较高的技术问题。
为实现上述目的,本发明提供了一种用于运动检测的三轴加速度数据的均值滤波方法,包括:
(1)当接收到开始三轴加速度数据滤波指令时,转入步骤(2)清空各类型数据缓冲器;
(2)清空x轴邻域数据环形缓冲器、y轴邻域数据环形缓冲器和z轴邻域数据环形缓冲器,并清空x轴数据缓存器、y轴数据缓存器和z轴数据缓存器;
(3)获取当前训练模板的闲置轴向并分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令;
(4)所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器分别根据各自收到的数据滤波开关控制指令开启或关闭自身的滤波功能;
(5)通过加速度传感数据采集器获取三轴加速度传感器的加速度采样点数据;
(6)判断三轴加速度数据滤波是否被外部事件中断,如果是则转步骤(10),如果否则转步骤(7);
(7)将采样点数据的x轴、y轴和z轴的加速度分量分别分发给所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器;
(8)分别判断所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器的滤波功能是否开启,如果开启则由相应轴向均值滤波器对相应的轴向加速度分量进行均值滤波处理,并将均值滤波处理后的相应轴向加速度分量数值存入相应轴向数据缓存器;如果关闭则直接将所述采样点数据的相应轴向原始加速度分量直接存入相应轴向数据缓存器;
(9)判断是否接收到停止三轴加速度数据滤波指令,如果是则转步骤(10),如果否则转步骤(5)继续进行运动传感数据采集。
(10)所述加速度传感数据采集器停止数据采集,或注销所述三轴加速度传感器,停止三轴加速度数据滤波。
本发明的一个实施例中,所述步骤(8)具体为:
如果所述x轴均值滤波器的滤波功能开启,则所述x轴均值滤波器对x轴加速度分量进行均值滤波处理,并将均值滤波处理后的x轴加速度分量数值存入x轴数据缓存器,否则直接将所述采样点数据的x轴原始加速度分量直接存入x轴数据缓存器;如果所述y轴均值滤波器的滤波功能开启,则所述y轴均值滤波器对y轴加速度分量进行均值滤波处理,并将均值滤波处理后的y轴加速度分量数值存入y轴数据缓存器,否则直接将所述采样点数据的y轴原始加速度分量直接存入y轴数据缓存器;如果所述z轴均值滤波器的滤波功能开启,则所述z轴均值滤波器对z轴加速度分量进行均值滤波处理,并将均值滤波处理后的z轴加速度分量数值存入z轴数据缓存器,否则直接将所述采样点数据的z轴原始加速度分量直接存入z轴数据缓存器。
本发明的一个实施例中,所述相应轴向均值滤波器对相应的轴向加速度分量进行均值滤波处理,具体为:
由所述相应轴向均值滤波器根据所述采样点数据的相应轴向加速度分量更新相应轴向邻域环形缓冲器;
所述相应轴向均值滤波器从相应轴向邻域环形缓冲器中获取更新后的相应轴向邻域数据集;
由所述相应轴向均值滤波器对所述相应轴向邻域数据集中的数据进行均值计算求取平均值,将求取的平均值作为均值滤波处理后的相应轴向加速度分量数值。
本发明的一个实施例中,
所述步骤(2)中还包括:将历史训练模板闲置轴向设为空;
所述步骤(3)具体为:当历史训练模板闲置轴向为空时,获取当前训练模板的闲置轴向并分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令,保存当前训练模板的闲置轴向作为历史训练模板闲置轴向,并转步骤(4);
当历史训练模板闲置轴向不为空时,获取当前训练模板的闲置轴向,将当前训练模板的闲置轴向与历史训练模板闲置轴向对比,如果相同则转步骤(5),如果不同则根据当前训练模板的闲置轴向分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令,保存当前训练模板的闲置轴向作为历史训练模板闲置轴向,并转步骤(4);
所述步骤(9)为:判断是否接收到停止运动检测指令,如果是则转步骤(10),如果否则转步骤(3)继续进行运动传感数据采集。
本发明的一个实施例中,所述均值计算为算术平均,或者几何平均,或者调和平均,或者加权平均,或者平方平均,或者指数平均,或者中位数平均。
本发明的一个实施例中,在所述步骤(5)之前还包括:判断所述三轴加速度传感器是否开启,如果否则开启所述三轴加速度传感器。
本发明的一个实施例中,所述x轴邻域数据环形缓冲器、y轴邻域数据环形缓冲器和z轴邻域数据环形缓冲器的长度根据所述加速度传感数据采集器的当前采样频率与噪声特性确定。
本发明的一个实施例中,所述步骤(6)中判断是否被外部事件中断,具体为:当接收到来电请求、视频或话音通话请求、视频或语音或文本消息或者智能手持设备的任何用户界面操作行为中的一个或多个,或者切换到其他应用程序界面,则确定三轴加速度数据滤波被外部事件中断。
本发明的一个实施例中,所述x轴数据缓存器、y轴数据缓存器和z轴数据缓存器的长度根据三轴加速度传感器的采样频率与智能手持设备的剩余运行内存容量确定。
本发明的一个实施例中,所述x轴数据缓存器、y轴数据缓存器和z轴数据缓存器的长度大于200。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)本发明提供的用于运动检测的三轴加速度数据的均值滤波方法,通过在运动检测中利用三轴加速度传感器进行数据采集时,根据训练模板的闲置轴向来开关相应轴向的滤波功能,并利用各缓冲器和滤波器对各轴向数据进行均值滤波,实现了运动检测过程中在较低系统资源消耗的情况下对低频运动信号中的高频噪声的有效滤除;
(2)本发明提供的用于运动检测的三轴加速度数据的均值滤波方法,利用邻域数据环形缓冲器缓存三轴加速度原始数据用于后续的均值计算,从而不需要在均值计算过程中发生内存数据的拷贝,并且利用求平均值来平滑信号中的高频噪声可以获得极小的运算部件的占用,滤波方法的速度较高,系统资源消耗较小;
(3)本发明提供的用于运动检测的三轴加速度数据的均值滤波方法,通过获取当前训练模板的闲置轴向,可以对闲置轴向(例如水平或垂直方向)的肢体运动数据不作滤波运算,大幅度降低了本发明方法的运算负载,从而在水平和垂直方向的肢体运动加速度数据的滤波中具有更小的运算部件占用;
(4)本发明提供的用于运动检测的三轴加速度数据的均值滤波方法,在工间操运动检测被其他智能手机应用中断时可以通过及时停止或注销三轴加速度传感器设备资源来停止三轴加速度传感器的采集或滤波操作降低对智能手机的计算资源占用,从而可以随时释放计算资源保证操作系统或其他应用程序对计算资源的需求,保证用户的良好体验。
附图说明
图1是本发明实施例中一种用于运动检测的三轴加速度数据的均值滤波方法的流程示意图;
图2是本发明实施例中各轴向滤波方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
由于人类肢体运动的加速度信号主要为低频信号,要求加速度传感器有较高的灵敏度。但是加速度信号在激励、检测和传输过程中会不同程度地受到环境高频噪声的污染,同时肢体的抖动也会引入高频噪声,因此需要对人类肢体运动加速度信号进行滤波去噪。
为了解决上述技术问题,如图1所示,本发明提供了一种用于运动检测的三轴加速度数据的均值滤波方法,包括:
(1)当接收到开始三轴加速度数据滤波指令时,转入步骤(2)清空各类型数据缓冲器;
本发明方法为了对三轴加速度数据进行滤波,需要对三轴加速度传感器采集的原始数据进行缓存,对计算过程中的数据进行缓存,以及对滤波结果进行缓存。因此本发明方法中,设计了各个轴向的邻域数据环形缓冲器,用于存储相应轴向的采样点数据的x轴、y轴和z轴的加速度分量,环形缓冲器是为了当前数据和多个历史数据以进行均值计算实现滤波;并且设计了各个轴向的数据缓存器,用于存储相应轴向的数据结果;
当开始进行新的运动检测,或者从暂停状态恢复运动检测,从此可通过运动检测应用程序下达一个开始三轴加速度数据滤波的指令,即表明需要开始采集数据并进行均值滤波,此时转入步骤(2);
(2)清空x轴邻域数据环形缓冲器、y轴邻域数据环形缓冲器和z轴邻域数据环形缓冲器,并清空x轴数据缓存器、y轴数据缓存器和z轴数据缓存器;
由于各缓冲器中可能还存在着历史数据,所以在滤波开始前需要清空各缓冲器中的历史数据;
(3)获取当前训练模板的闲置轴向并分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令;
另外由于人类肢体运动的加速度信号主要由移动手持终端的硬件完成处理,所以需要以较低的系统资源占用来实现。同时人类肢体运动中存在许多水平和垂直方向的规则运动,这些运动类型中的运动平面的垂直方向加速度传感数据具有很小的波动性。在运动检测时,只需要使用这一方向加速度数据的波动性衡量结果即可判定运动的标准程度,所以不需要对这一方向的数据进行滤波处理。
所以在滤波过程中,可以关闭闲置轴向的滤波功能;闲置轴向是指在运动过程中波动辐动较小的轴向;在工间操的姿势检测中是通过将采集的实际运动姿态将预先存储的训练模板相比对,判断运动姿态是否标准。在此,可以在训练模板中保存每个阶段(阶段可大可小,例如可以通过姿态的变化大小来设定)的闲置轴向;
例如,当上肢水平运动时,此时z轴方向的波动基本上为零,而只需获得xy轴方向的数据进行姿态比对即可,此时则可不对z轴的数据进行滤波处理而仅对xy轴的数据进行滤波处理;则在该动作的训练模板中可设置z轴为闲置轴向;
具体的实现方式可以为,在训练模块中包含一个三维矢量[x,y,z],用该三维矢量表示相应轴向是否闲置,例如用1表示非闲置用0表示闲置,反之也可以,当然还可能用其他数字或符号表示闲置或非闲置;例如矢量[1,0,1]表示y轴闲置;
滤波控制器从所述运动模板数据库中获取当前训练模板的闲置轴向,并根据所述闲置轴分别向所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令;例如闲置轴向的矢量为[1,0,1],则向y轴均值滤波器发送数据滤波关闭的控制指令,以关闭y轴均值滤波器的滤波功能;
(4)所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器分别根据各自收到的数据滤波开关控制指令开启或关闭自身的滤波功能;
(5)通过加速度传感数据采集器获取三轴加速度传感器的加速度采样点数据;
如果所述三轴加速度传感器已开启,则直接采集数据;如果所述三轴加速度传感器未开启,则开启所述三轴加速度传感器。
(6)判断三轴加速度数据滤波是否被外部事件中断,如果是则转步骤(10),如果否则转步骤(7);
利用智能手机处理加速度传感数据情形下,工间操运动检测可能被电话、短信以及其他的智能手机业务打断。这时为了保证这些业务应用拥有足够的手机资源使用以良好持续,需要立即释放或降低滤波预处理活动所占用的系统资源。
所以需要在滤波过程中判断是否被外部事件中断,例如当接收到来电请求、视频或话音通话请求、视频或语音或文本消息或者智能手持设备的任何用户界面操作行为中的一个或多个,或者切换到其他应用程序界面,都可认为是三轴加速度数据滤波被外部事件中断。
(7)将采样点数据的x轴、y轴和z轴的加速度分量分别分发给所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器;
(8)分别判断所述x轴均值滤波器、y轴均值滤波器和z轴均值滤波器的滤波功能是否开启,如果开启则由相应轴向均值滤波器对相应的轴向加速度分量进行均值滤波处理,并将均值滤波处理后的相应轴向加速度分量数值存入相应轴向数据缓存器;如果关闭则直接将所述采样点数据的相应轴向原始加速度分量直接存入相应轴向数据缓存器;
具体地,如果所述x轴均值滤波器的滤波功能开启,则所述x轴均值滤波器对x轴加速度分量进行均值滤波处理,并将均值滤波处理后的x轴加速度分量数值存入x轴数据缓存器,否则直接将所述采样点数据的x轴原始加速度分量直接存入x轴数据缓存器;如果所述y轴均值滤波器的滤波功能开启,则所述y轴均值滤波器对y轴加速度分量进行均值滤波处理,并将均值滤波处理后的y轴加速度分量数值存入y轴数据缓存器,否则直接将所述采样点数据的y轴原始加速度分量直接存入y轴数据缓存器;如果所述z轴均值滤波器的滤波功能开启,则所述z轴均值滤波器对z轴加速度分量进行均值滤波处理,并将均值滤波处理后的z轴加速度分量数值存入z轴数据缓存器,否则直接将所述采样点数据的z轴原始加速度分量直接存入z轴数据缓存器。
所述x轴数据缓存器、y轴数据缓存器和z轴数据缓存器的长度一般可根据三轴加速度传感器的采样频率与智能手持设备的剩余运行内存容量确定。
各轴向数据缓存器是用来存储滤波(或者存储保存的原始数据)的数据结果的,该数据结果应用于后续的运动检测;
如果采样频率较高,则数据缓存器的长度可设置较长;如果采样频率较低,则数据缓存器的长度可设置稍短;
另外,数据缓存器的长度也与智能手持设备的剩余运行内存容量有关,如果剩余运行内存容量较大,则数据缓存器的长度可设置较长;如果剩余运行内存容量较小,则数据缓存器的长度可设置较短;
一般地,为了保证数据足够用于后续运动检测,各轴向数据缓存器的长度应大于200。例如优选可设置为500。
进一步地,对于各轴向的滤波操作,可以通过如下步骤实现:
(8.1)由所述相应轴向均值滤波器根据所述采样点数据的相应轴向加速度分量更新相应轴向邻域环形缓冲器;
其中所述环形缓冲器也称作圆形队列(circularqueue),循环缓冲区(cyclicbuffer),环形缓冲区(ringbuffer),是一种数据结构用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流。更新数据的方式是用新的数据覆盖最老的数据。由于在环形缓冲器只需要进行指针操作,而不需要进行数据的内存拷贝,所以数据存储速度较快,对于系统资源的消耗较小;
所述x轴邻域数据环形缓冲器、y轴邻域数据环形缓冲器和z轴邻域数据环形缓冲器的长度可以根据所述加速度传感数据采集器的当前采样频率与噪声特性确定。一般地可设置邻域数据环形缓冲器的长度为当前采样频率的3%至9%。例如,可以将长度设置为当前采样频率的7%,即当采样频率为100hz时,环形缓冲器的长度设置为7。
另外,如果噪声频率较高,则环形缓冲器的长度应稍长些;而噪声频率较低,则环形缓冲器的长度则可稍短些;
(8.2)所述相应轴向均值滤波器从相应轴向邻域环形缓冲器中获取更新后的相应轴向邻域数据集;
(8.3)由所述相应轴向均值滤波器对所述相应轴向邻域数据集中的数据进行均值计算求取平均值,将求取的平均值作为均值滤波处理后的相应轴向加速度分量数值;
具体地,上述均值计算可以为算术平均,或者几何平均,或者调和平均,或者加权平均,或者平方平均,或者指数平均,或者中位数平均,下面对各种均值计算做一一说明:
算术平均:算术平均数是指在一组数据中所有数据之和再除以数据的个数。它是反映数据集中趋势的一项指标。把n个数的总和除以n,所得的商叫做这n个数的算术平均数。
公式:
几何平均:n个观察值连乘积的n次方根就是几何平均数。
公式:
调和平均:调和平均数是指数值倒数的平均数的倒数,它是加权算术平均数的变形,附属于算术平均数,不能单独成立体系。且计算结果与加权算术平均数完全相等。主要是用来解决在无法掌握总体单位数(频数)的情况下,只有每组的变量值和相应的标志总量,而需要求得平均数的情况下使用的一种数据方法。
公式:
加权平均:加权平均数是不同比重数据的平均数,加权平均数就是把原始数据按照合理的比例来计算,若n个数中,x1出现f1次,x2出现f2次,…,xk出现fk次,那么:
平均数是加权平均数的一种特殊情况,即各项的权相等时,加权平均数就是算术平均数。
平方平均:平方平均数是n个数据的平方的算术平均数的算术平方根。
公式:
指数平均:指数平均数的构造原理是对股票收盘价进行算术平均,并根据计算结果来进行分析,用于判断价格未来走势得变动趋势。
中位数平均:中位数是刻划平均水平的统计量,设x1,x2,…,xn是来自总体的样本,将其从小到大排序为x(1),…,x(n),则中位数定义为:
n为奇数时:m0.5=x(n+1)/2);
n为偶数时:
(9)判断是否接收到停止三轴加速度数据滤波指令,如果是则转步骤(10),如果否则转步骤(5)继续进行运动传感数据采集。
当运动完成,或者用户主动需要停止或暂停运动时,可以通过运动检测应用程序下达一个停止三轴加速度数据滤波的指令,即表明需要停止采集数据并进行均值滤波;
(10)所述加速度传感数据采集器停止数据采集,或注销所述三轴加速度传感器,停止三轴加速度数据滤波。
在运动完成后,或者暂停运动检测时,一般应立即释放或降低滤波预处理活动所占用的系统资源,此时可让所述加速度传感数据采集器停止数据采集,或注销所述三轴加速度传感器。
进一步地,本发明另一实施例中还提供了一种用于运动检测的三轴加速度数据的均值滤波方法,在该方法中如果训练模板的闲置轴向不变化,则保持各轴向滤波器的滤波功能的开启或关闭状态;如果训练模板的闲置轴向有变化,则需要更新各轴向滤波器的滤波功能的开启或关闭状态。
具体地,与图1所示方法的区别在于:
所述步骤(2)中还包括:将历史训练模板闲置轴向设为空;
在本方法中,设置一个存储变量用于存储历史训练模板闲置轴向,即每次获得当前训练模板的闲置轴向后,将其保存到该存储变量中作为历史训练模板闲置轴向,用于下次滤波过程中的闲置轴向比对;
在本步骤中,由于该存储变量中还可能包含有历史数据,所以需要清空;
所述步骤(3)具体为:当历史训练模板闲置轴向为空时,获取当前训练模板的闲置轴向并分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令,保存当前训练模板的闲置轴向作为历史训练模板闲置轴向,并转步骤(4);
当历史训练模板闲置轴向不为空时,获取当前训练模板的闲置轴向,将当前训练模板的闲置轴向与历史训练模板闲置轴向对比,如果相同则转步骤(5),如果不同则根据当前训练模板的闲置轴向分别向x轴均值滤波器、y轴均值滤波器和z轴均值滤波器发送轴向数据滤波开关控制指令,保存当前训练模板的闲置轴向作为历史训练模板闲置轴向,并转步骤(4);
所述步骤(9)为:判断是否接收到停止运动检测指令,如果是则转步骤(10),如果否则转步骤(3)继续进行运动传感数据采集。
本发明提供的用于运动检测的三轴加速度数据的均值滤波方法,通过在运动检测中利用三轴加速度传感器进行数据采集时,根据训练模板的闲置轴向来开关相应轴向的滤波功能,并利用各缓冲器和滤波器对各轴向数据进行均值滤波,实现了运动检测过程中在较低系统资源消耗的情况下对低频运动信号中的高频噪声的有效滤除,由此解决了现有技术中无法有效滤除运动信号噪声以及系统资源消耗较高的技术问题。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。