发明内容
本发明实施例提供了一种计步方法、计步装置、计步芯片及移动终端,旨在解决当前包含有计步算法复杂影响相关移动终端能耗的问题。
本发明实施例提供了一种计步装置,所述方法包括:根据计步的预设条件存储阈值,所述阈值包括在周期内的最小有效波幅值、有效时间及平均值;根据预设的传感器侦测用户的行走数据,所述行走数据包括行走过程中三个方向轴上产生的加速度;将所述行走数据进行平滑处理;将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值;
当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况发生在所述有效时间内,所述侦测的行走数据增加为累积步数。
可选地,在将所述行走数据进行平滑处理后还包括以下步骤:当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。
可选地,根据计步的预设条件存储阈值还包括最小有效累积准备步数。
可选地,当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况未发生在所述有效时间内,所述侦测的行走数据重置最小有效累积准备步数。
可选地,根据计步的预设条件存储阈值可通过用户启动或周期性自动启动。
可选地,所述阈值根据至少一个用户收集到的所述行动数据通过约束的最小二乘法算法(Ridge Regression Least Squares)、 套索算法(Least Absolute Shrinkage andSelection Operator)(LASSO)、及弹性网络算法(Elastic Net)中的至少一种算法获取的。
可选地,所述预设的传感器可为加速度传感器和/或重力传感器。
本发明实施例还提供了一种计步装置,所述计步装置包括:预设单元,用于根据计步的预设条件存储阈值,所述阈值包括在周期内的最小有效波幅值、有效时间及平均值;侦测单元,用于根据所述移动终端预设的传感器侦测用户的行走数据,所述行走数据包括行走过程中三个方向轴上产生的加速度;平滑单元,用于将所述行走数据进行平滑处理;计算单元,用于将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值;处理单元,用于当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况发生在所述有效时间内,所述侦测的行走数据增加为累积步数。
可选地,所述计步装置还包括学习单元,用于当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。
本发明实施例还提供了一种计步芯片,所述计步芯片包括存储器及与所述存储器耦合的处理器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述计步芯片执行上述的计步方法。
本发明实施例还提供了一种移动终端,所述移动终端包括上述的计步装置,所述计步装置执行上述的计步方法进行计步。
从上述本发明实施例可知,通过将预设阀值放到嵌入式系统中,使得计步算法减少复杂的运算,从而使含有此计步方法及芯片的移动终端电能消耗较低,进一步提升用户的体验。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的实现进行详细描述:
图1示出了本发明实施例一提供的计步方法的实现流程,所述计步方法,详述如下:
在步骤S101中,根据计步的预设条件存储阈值,所述阈值包括在周期内的最小有效波幅值、有效时间及平均值。
在一些实施例中,所述预设条件可以根据所述预设传感器的不同而确定,从而涉及峰值、振幅、有效时间及平均值等。
在步骤S103中,根据预设的传感器侦测用户的行走数据,所述行走数据包括行走过程中三个方向轴上产生的加速度。
在一些实施例中,当用户在行走或者奔跑时,往往会根据不同的运行状态,而产生不同的加速度,在用户运动过程中加速度随时间的变化关系可以为所述的行走数据。所述加速度可以为空间矢量,因此所述行走数据可以包括相互正交的三个方向上的加速度数据。具体地,所述相互正交的三个方向可以分别为立体坐标系中的x轴方向、y轴方向以及z轴方向。所述三个方向的加速度数据可以通过预设的采样周期进行采样得到。因此,所述加速度数据往往为离散的各个采样点。
在步骤S105中,将所述行走数据进行平滑处理。
在一些实施例中,所述平滑处理是通过计算相邻至少两个加速度的平均值作为处理加速度。在实际应用中,常利用数字滤波器进行平滑处理,数字滤波器可利用至少两个寄存器,用以缓存上述计算得到的基准加速度,然后依次计算连续的至少两个基准加速度的平均值作为处理加速度,使得处理后的处理加速度的变化更加平滑。当然,可以使用更多寄存器以使处理加速度变化更加平滑,但是响应时间也会变长。实际应用中,可以根据实际响应时间需求和加速度平滑需求,选择两个寄存器用以缓存加速度,以使得平滑处理达到最好的效果。
在步骤S107中,将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值。在一些实施例中,为x轴方向上的加速度数据,为y轴方向上的加速度数据,方向上的加速度数据,n为各个方向加速度数据的长度。将、及进行比较,若>>),则为当前最大变化轴的值。
在步骤S109中,当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况发生在所述有效时间内,所述侦测的行走数据增加为累积步数。
在一些实施例中,最大变化轴的值若为,最小有效波幅值为A,根据所述平滑后的行走数据的最大值及最小值获取的平均值为B,所述有效时间为[T1,T2],若>A、)>B、<B,且时间在[T1,T2]内,则可以判断当前的行走数据为有效的步伐,在实际应用中,可以设计多个有效时间阈值,时间阈值[T1,T2]可以是将(0.2s,2s),则0.2s≤T1<T2≤2s。
图2示出了本发明实施例二提供的计步方法的实现流程,详述如下:
在将所述行走数据进行平滑处理后还包括以下步骤:
在S106步骤中,判断所述平滑后的行走数据是否满足周期数据的上限;
在S108步骤中,当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。
在一些实施例中,周期数据上限可以设定为一固定数值,也可以为任意数值,这个数值可由移动终端的生产厂商或用户自行设定的所述阈值包括:最小有效波幅值、有效时间、平均值及最小有效累积准备步数。
在一些实施例中,根据计步的预设条件存储阈值可通过用户启动或周期性自动启动。
在一些实施例中,当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况未发生在所述有效时间内,所述侦测的行走数据重置最小有效累积准备步数。
在一些实施例中,所述阈值根据至少一个用户收集到的所述行动数据通过约束的最小二乘法算法(Ridge Regression Least Squares)、 套索算法(Least AbsoluteShrinkage and Selection Operator)、及弹性网络算法(Elastic Net)中的至少一种算法获取的。
在一些实施例中,上述算法的实现,可以在运算能力较强的计算机上先获取阈值,然后嵌入到计步方法中。
在一些实施例中,用到的约束的最小二乘法算法(Ridge Regression LeastSquares),又称为岭回归算法,是一种改良的最小二乘法算法,其在数学上的定义:
是能够得到最少误差的阀值组合, 是上一个阀值组合,, 是所有可能的阀值组合,是的其中一个组合, 是数据库的数据,在一些实施例中,就每个参与实验者的步行的三轴数据, 是收集数据时的实际结果,在这个实验是实际步数,是计步算法得出的步数,只要把所有可能的都计算一次,就可以找出,但由于 可以大得惊人,所以要约束现象,利用可以跳相近的阀值组合,因此可以减少不必要的学习。
是一个学习过程中的速度调整参数,如果得出的结果愈大,会相应增大。
是可接收的误差, 是速度调整参数的上限,除了使用误差去调整速度。
还有其他数据学习算法,例如套索算法(Least Absolute Shrinkage andSelection Operator)、及弹性网络算法(Elastic Net)等都可以改进学习的速度和精准度。
在一些实施例中,应用的套索算法(Least Absolute Shrinkage and SelectionOperator)是一种压缩估计。它通过构造一个罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。套索算法(Least Absolute Shrinkage and Selection Operator)、的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0 的回归系数,得到可以解释的模型。
在一些实施例中,应用的弹性网络算法(Elastic Net)是一个叠代的算法。弹性网络最妙的地方是它永远可以产生有效解。由于它不会产生交叉的路径,所以产生的解都相当不错。
在一些实施例中,当所述平滑后的行走数据不满足周期数据的上限时,继续执行图一中S107步骤。
图3及图4示出了本发明实施例一及实施例二所提供的计步装置100的模块组成图,详述如下:
预设单元101,用于根据计步的预设条件存储阈值,所述阈值包括在周期内的最小有效波幅值、有效时间及平均值。
在一些实施例中,所述预设条件可以根据所述预设传感器的不同而确定,从而涉及峰值、振幅、有效时间及平均值等。
侦测单元103,用于根据预设的传感器侦测用户的行走数据,所述行走数据包括行走过程中三个方向轴上产生的加速度。
在一些实施例中,所述侦测单元103为传感器,所述传感器加速度传感器和/或重力传感器。所述传感器进行采集运动信号;当接收到该计步需求时,触发传感器采集运动信号,即触发传感器开始信号采集工作。用户在运动时可以将移动终端置于手腕上或腰间,移动终端会随着人运动过程中身体的晃动而晃动,移动终端中设置的传感器采集人体的运动信号。当用户在行走或者奔跑时,往往会根据不同的运行状态,而产生不同的加速度,在用户运动过程中加速度随时间的变化关系可以为所述的行走数据。所述加速度可以为空间矢量,因此所述行走数据可以包括相互正交的三个方向上的加速度数据。
平滑单元105,用于将所述行走数据进行平滑处理。
所述平滑单元105常利用数字滤波器进行平滑处理,数字滤波器可利用至少两个寄存器,用以缓存上述计算得到的基准加速度,然后依次计算连续的至少两个基准加速度的平均值作为处理加速度,使得处理后的处理加速度的变化更加平滑。当然,可以使用更多寄存器以使处理加速度变化更加平滑,但是响应时间也会变长。实际应用中,可以根据实际响应时间需求和加速度平滑需求,选择两个寄存器用以缓存加速度,以使得平滑处理达到最好的效果。
所述计步装置100还包括学习单元106,用于当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。
在一些实施例中,所述学习单元106,通过预设的多个普通人运动时收集到的传感器数据来更新阈值,越多不同的使用者,越能提高阀值组合的准确。所述学习单元106只有在当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。是通约束的最小二乘法算法(Ridge Regression Least Squares)、 套索算法(Least Absolute Shrinkage andSelection Operator)、及弹性网络算法(Elastic Net)中的至少一种算法获取所述阈值的。
在一些实施例中,上述算法的实现,可以在运算能力较强的计算机上先获取阈值,然后嵌入到计步装置中。
在一些实施例中,所述根据计步的预设条件阈值可通过用户启动或周期性自动启动。所述预设条件可以根据所述移动终端预设传感器的不同而确定。所述阈值包括在周期内的最小有效波幅值、有效时间、平均值及最小有效累积准备步数。
在一些实施例中,当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况未发生在所述有效时间内,所述侦测的行走数据重置最小有效累积准备步数。
计算单元107,用于将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值。
在一些实施例中,所述计算单元107具体用于:将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值。在一些实施例中,为x轴方向上的加速度数据,为y轴方向上的加速度数据,方向上的加速度数据,n为各个方向加速度数据的长度。将、及进行比较,若>>),则为当前最大变化轴的值。
处理单元109,当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况发生在所述有效时间内,所述侦测的行走数据增加为累积步数。
在一些实施例中,最大变化轴的值若为,最小有效波幅值为A,根据所述平滑后的行走数据的最大值及最小值获取的平均值为B,所述有效时间为[T1,T2],若>A、)>B、<B,且时间在[T1,T2]内,则可以判断当前的行走数据为有效的步伐,在实际应用中,可以设计多个有效时间阈值,时间阈值[T1,T2]可以是将(0.2s,2s),则0.2s≤T1<T2≤2s。
请参阅图5,图5是本发明实施例提供的计步芯片200的模块组成图。
所述计步芯片200包括存储器300及与所述存储器300耦合的至少一处理器500。
所述存储器300存储计算机执行指令;
所述至少一个处理器500执行所述存储器存储的计算机执行指令,使得所述计步芯片执行上述实施例中的计步方法。
在一些实施例中,所述存储器300可以包括具有闪存类型、硬盘类型、微型多媒体卡类型、卡式存储器(例如:SD或XD 存储器等)、RAM和ROM(EEPROM等)中的任何一种类型的存储介质。
在一些实施例中,所述处理器500可以为一个或多个处理器。所述处理器500为可执行任何种类的指令处理装置。例如,所述处理器500可以是通用处理器、各种复杂指令集计算(CISC) 处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW) 处理器中的任何处理器,可以是上述处理器的混合或者可以完全是其他类型的处理器。所述处理器500也可表示一个或多个处理器核。
在一些实施例中,所述处理器500配置可执行以下步骤:根据计步的预设条件存储阈值,所述阈值包括在周期内的最小有效波幅值、有效时间及平均值;根据预设的传感器侦测用户的行走数据,所述行走数据包括行走过程中三个方向轴上产生的加速度;将所述行走数据进行平滑处理;将所述行走数据三个方向轴上的加速度进行比较,获取最大变化轴的值与最大变化轴的上一个值;当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况发生在所述有效时间内,所述侦测的行走数据增加为累积步数。
所述处理器500用于执行以下步骤:当所述平滑后的行走数据满足周期数据的上限时,更新所述阈值。
所述处理器500根据计步的预设条件存储阈值还包括最小有效累积准备步数。
所述处理器500用于执行以下步骤:当所述最大变化轴的值大于所述最小有效波幅值、所述最大变化轴的上一个值比所述平均值大、所述最大变化轴的值比所述平均值小且上述情况未发生在所述有效时间内,所述侦测的行走数据重置最小有效累积准备步数。
所述处理器500根据计步的预设条件存储阈值可通过用户启动或周期性自动启动。
所述处理器500所述阈值根据至少一个用户收集到的所述行动数据通过约束的最小二乘法算法(Ridge Regression Least Squares)、 套索算法(Least AbsoluteShrinkage and Selection Operator)、及弹性网络算法(Elastic Net)中的至少一种算法获取的。
图6是本发明实施例提供的移动终端的模块组成图,详述如下:
所述移动终端10包括所述计步装置100,所述计步装置100执行在一些实施例中所述的计步方法进行计步。
计步装置100可采用本领域技术人员所知的各种封装形式中的一种,如球栅阵列(Ball Grid Array,BGA)封装、系统级封装(System In a Package,SIP)、小尺寸封装(Small Outline Package,SOP)、四侧引脚扁平封装(Quad Flat Package,QFP)、四侧无引脚扁平封装(Quad Flat Non-leaded package,QFN)等。
在一些实施例中,所述移动终端10可以为智能手机、平板电脑、智能穿戴设备等具备数据存储和数据处理功能的电子设备。例如,所述移动终端10可以苹果手机或安装了安卓系统的智能手机。在本实施方式中,所述预设传感器可以为加速度传感器、重力传感器及陀螺仪传感器中的至少一种,所述传感器可以由智能手机的协处理器执行,以获取用户的行走数据。
在本发明中,采用上述计步方法、计步装置及移动终端,不仅避免了使用复杂的浮点算法,同时还对行走数据进行了优化分析,从而在降低移动终端能耗的同时,还能获取精准的行走步数。
值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。