一种基于惯性的计步方法、装置设备及存储介质与流程

文档序号:21580587发布日期:2020-07-24 16:17阅读:283来源:国知局
一种基于惯性的计步方法、装置设备及存储介质与流程

本申请涉及人行定位技术领域,尤其涉及一种基于惯性的计步方法、装置设备及存储介质。



背景技术:

随着定位技术不断发展,定位信息变得越来越重要,因为基于位置的服务比如导航、导游、紧急救援等,这些服务都使得定位信息变得无比重要。室外环境下全球卫星导航系统(gnss)发展成熟,然而在室内,由于建筑物遮挡加上室内封闭的空间和性能显著下降,gnss无法在室内发挥出精准的定位效果。gnss的盲区定位成为亟待解决的技术问题。现有技术利用惯性传感器实现行人航位推算(pdr)来解决gnss盲区定位,pdr定位中步态检测和步数计数是重要的一个环节,步数的精度直接影响到pdr的结果。而现有技术通过一种自适应波峰检测方法来计算步数。将人的行走分为行走和跑动两种状态,计算步骤如下:1)计算整体加速度,利用20历元滑动窗口查找加速度潜在峰值(这里的历元是指采样点时间)限制加速度阈值进行初次判断,将状态划分成空闲和运动两类,峰值小于1.2g为空闲状态(g为重力加速度),不进行计步;峰值在区间[1.2g,2g],判断为行走;峰值大于2g;判断跑动,进行下一步判断。2)计算潜在峰值和前一峰值时间差,利用不同的时间阈值进行二次判断。时间差满足时间阈值[0.3s,0.8s]为正常态;满足时间阈值[0.2s,0.5s]为非正常态;进行下一步判断。3)根据运动状态改变领域窗口大小,将潜在波峰与邻域历元进行三次判断,去除假峰。正常态的前后邻域设置为10个历元,非正常态设置为5个历元,若潜在峰值为邻域内最大值则记一步,否则不做计步处理。

由于邻域框架根据运动状态只分了两种邻域窗口来去除假峰,10历元这个窗口长度如果在人高速跑动,且设备刷新频率低的情况下,极有可能丢失一个真峰,因此精准度会大大降低;每一个历元都要经历一次判断,这个计算时间累积起来是非常大的,这样会大大降低设备的工作效率。



技术实现要素:

本申请提供了一种基于惯性的计步方法、装置设备及存储介质,解决了现有技术中的由于邻域框架根据运动状态只分了两种邻域窗口来去除假峰,10历元这个窗口长度如果在人高速跑动,且设备刷新频率低的情况下,极有可能丢失一个真峰,因此精准度会大大降低;每一个历元都要经历一次判断,这个计算时间累积起来是非常大的,这样会大大降低设备的工作效率的技术问题。

本申请第一方面提供了一种基于惯性的计步方法,包括:

获取符合预设阈值的加速度数据,记录历元时间;所述历元时间为采样点时间;

获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围;

根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃长度;

计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置。

可选地,所述获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围还包括:若所述步行频率为所述待测者的首步,所述步行频率为2hz。

可选地,所述根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃程度包括:

根据第一公式计算获得在所述历元时间走一步所需要的时间:

其中,k表示k历元时间;nk为待测者在k历元的时间段内走一步所需要的时间;f采为设备的采样频率;为待测者的步行频率;

根据第二公式计算获得第一对比次数:

其中,表示k历元的加速度的对比次数为

根据第三公式计算获得跳跃长度:

其中,表示k历元的跳跃长度为

可选地,计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置具体包括:

对比所述历元时间的加速度大小和下一个历元时间的加速度大小,若是所述历元时间的加速度较大,则所述历元时间的加速度为对应波峰的峰值;若是所述下一个历元时间的加速度较大,则所述下一个历元时间的最大对比次数为

若是寻找出峰值位置,根据跳跃长度重新在所述峰值位置历元之后的历元搜索新的符合阈值的加速度。

本申请第二方面提供了一种基于惯性的计步装置,包括:

获取数据模块,获取符合预设阈值的加速度数据,记录历元时间;所述历元时间为采样点时间;

判断模块,获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围;

第一计算模块,根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃长度;

第二计算模块,计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置。

可选地,所述判断模块还用于若所述步行频率为所述待测者的首步,判定所述步行频率为2hz。

可选地,所述第一计算模块包括:

时间计算单元,用于根据第一公式计算获得在所述历元时间走一步所需要的时间:

其中,k表示k历元时间;nk为待测者在k历元的时间段内走一步所需要的时间;f采为设备的采样频率;为待测者的步行频率;

对比次数计算单元一,用于根据第二公式计算获得对比次数:

其中,表示将k历元的加速度的对比次数为

对比次数计算单元二,根据第三公式计算获得跳跃长度:

其中,表示k历元的跳跃长度为

可选地,所述第二计算模块具体用于:

对比所述历元时间的加速度大小和下一个历元时间的加速度大小,若是所述历元时间的加速度较大,则所述历元时间的加速度为对应波峰的峰值;若是所述下一个历元时间的加速度较大,则所述下一个历元时间的最大对比次数为

若是寻找出峰值位置,根据跳跃长度重新在所述峰值位置历元之后的历元搜索新的符合阈值的加速度。

本申请第三方面提供了一种基于惯性的计步设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行第一方面所述的一种基于惯性的计步方法。

本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于第一方面所述的一种基于惯性的计步方法。

从以上技术方案可以看出,本申请具有以下优点:

本申请中,提供了一种基于惯性的计步方法,包括:

获取符合预设阈值的加速度数据,记录历元时间;所述历元时间为采样点时间;

获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围;

根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃长度;

计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置。

本申请提供的基于惯性的计步方法,通过领域递进对比和跳跃假峰规避机制,可以自适应的调节对比的窗口大小,且所需要的对比次数并不需要达到窗口末端;跳跃规避机制与常规的窗口相比,可以自适应的调整窗口的大小,不需要通过计算对比就能直接跳开假峰。本申请解决了现有技术中的由于邻域框架根据运动状态只分了两种邻域窗口来去除假峰,10历元这个窗口长度如果在人高速跑动,且设备刷新频率低的情况下,极有可能丢失一个真峰,因此精准度会大大降低;每一个历元都要经历一次判断,这个计算时间累积起来是非常大的,这样会大大降低设备的工作效率的技术问题。

附图说明

图1为本申请提供的一种基于惯性的计步方法的一个实施例的流程示意图;

图2为本申请提供的一种基于惯性的计步装置的结构示意图;

图3为本申请提供的一种基于惯性的计步方法的垂直加速度波形图;

图4为本申请提供的一种基于惯性的计步方法的假峰示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请提供了一种基于惯性的计步方法、装置设备及存储介质,解决了现有技术中的由于邻域框架根据运动状态只分了两种邻域窗口来去除假峰,10历元这个窗口长度如果在人高速跑动,且设备刷新频率低的情况下,极有可能丢失一个真峰,因此精准度会大大降低;每一个历元都要经历一次判断,这个计算时间累积起来是非常大的,这样会大大降低设备的工作效率的技术问题。

为了便于理解,请参照图1、3和4,图1为本申请提供的一种基于惯性的计步方法的一个实施例的流程示意图;图3为本申请提供的一种基于惯性的计步方法的垂直加速度波形图;图4为本申请提供的一种基于惯性的计步方法的假峰示意图。

本申请实施例第一方面提供了一种基于惯性的计步方法,包括:

100,获取符合预设阈值的加速度数据,记录历元时间;所述历元时间为采样点时间;

200,获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围;

300,根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃长度;

400,计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置。

需要说明的是,本申请实施例提供的一种基于惯性的计步方法,从附图3和附图4可以观察出来,人在行走的时候,垂直加速度也会也会呈现一个规律的波形,每走一步垂直加速度呈现的波形都会经过峰底-封顶-峰底的规律,因此人以一个相对均匀的速度行走时,每一步的波形经历的历元就会减少,因为行走的频率变快了,因此每走一步的时间就会减少,因此历元会减少。

假峰的出现来源于人每走一步行走时所产生的主要震动的余震,而这个余震的垂直加速度也符合预置阈值,因此会出现假峰。为了准确计算人的行走步数,假峰是需要去除的。假设设备的采样频率为f采,在k历元且当前加速度ak符合预设的加速度阈值,其步行频率为便能得到第一公式:

其中,k表示k历元时间;nk为待测者在k历元的时间段内走一步所需要的时间;f采为设备的采样频率;为待测者的步行频率;

因为k历元的值只是符合我们设置的阈值,而不一定这一步的加速度的峰值,常规方法寻找第一判断的峰值每一次都要经历20历元,这样的判断很浪费计算时间,而采用领域递进对比获得的步行波形是波底-波峰-波底(上文中峰顶、峰底是描述一个历元,波峰、波底是描述一段历元)这样的规律,因此可以把k历元走一步需要的时间分成3个部分,波底,波峰,波底每部分为:

在k历元的加速度ak需要与历元的加速度邻域递进对比,规则是ak先与ak+1对比,如果ak+1较大,则继续拿ak+1与ak+2对比,如此在相邻的两个历元之间往后循环进行对比,如果过程中有前者比后者加速度大,则退出循环对比,并认为前者是当前波峰的峰值,同时将当前的峰值历元记录为j,并计算走了一步,这样整个判断流程最多对比次。为了规避峰值以下一段历元的假峰,使用跳跃假峰规避机制:

把波形分成两部分,峰底-峰顶,峰顶-峰底。接下来可以在历元开始搜索新的符合阈值加速度的一步,这样跳跃假峰规避机制不仅能去除假峰,还能减少了计算时间。

进一步地,获取待测者的步行频率,并判断步行频率是否符合预设频率范围还包括:若步行频率为待测者的首步,步行频率为2hz。

需要说明的是,搜索符合经验阈值1.12g的加速度,记录当前k历元的时间tk并进入下一步。人的步行频率一般为[0.5,5]hz,计算当前频率:

如果在[0.5,5]hz则进入下一步骤。如果是首步,由经验值可以认为第一步的频率为2hz。因为第一步的频率缺失前一刻的时间:

进一步地,

所述根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃程度包括:

根据第一公式计算获得在所述历元时间走一步所需要的时间:

其中,k表示k历元时间;nk为待测者在k历元的时间段内走一步所需要的时间;f采为设备的采样频率;为待测者的步行频率;

根据第二公式计算获得第一对比次数:

其中,表示k历元的加速度的对比次数为

根据第三公式计算获得跳跃长度:

其中,表示k历元的跳跃长度为

需要说明的是,计算判断峰值的窗口长度和跳跃假峰规避机制的跳跃长度。由垂直加速度波形可以看出来,人行走一步,都是有一个规律性波动,峰底-峰顶-峰底,所以分三个部分,波底、波峰、波底,所以判断峰值的窗口长度由公式(2)可得到峰值之后可能会出现人行走震动的余震,而这个余震也符合预设阈值,也就是假峰,因此可以通过跳跃假峰规避机制,只要让下次搜索从现在的峰顶跳到下一次新的波形波底,就可以完美的规避假峰了。所以可以把波形分为峰底-峰顶,峰顶-峰底,由公式(3)可得到跳跃的长度

进一步地,所述计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置具体包括:

对比所述历元时间的加速度大小和下一个历元时间的加速度大小,若是所述历元时间的加速度较大,则所述历元时间的加速度为对应波峰的峰值;若是所述下一个历元时间的加速度较大,则所述下一个历元时间的最大对比次数为

若是寻找出峰值位置,根据跳跃长度重新在所述峰值位置历元之后的历元搜索新的符合阈值的加速度。

需要说明的是,计算峰值的位置,并且跳去下一次搜索加速度的位置。首先用邻域递进对比得出峰值,就是k历元的加速度ak与k+1历元的ak+1对比,如果ak+1较大,则进入下一次对比,与ak+2对比,对比次数为如果前者比后者大,则认为前者就是这个波峰的峰值。这时峰值的历元是记录行走了一步,最后就是跳跃到新的波底,新的波底的位置是历元。

以上步骤就是人步行的计步方法。表1和表2为结果对比:测试了以200步作为测试,因为本申请是以正常人行频率测试,因此与2相比的结果的精准度差不多,但是如果本申请的设备刷新频率小于50hz,那么人行走频率在5hz的情况下,那么运用邻域前后5个历元来对比除假峰,那么这个长度5历元是可以包含前一个真峰在内的,因此就会去掉一个真峰了。在计算时间下,本申请提出的方法是可以节省时间的,能把计算时间大约降低29%。

表一:计步对比

表二:时间对比

为了便于理解,请参照图2,图2为本申请提供的一种基于惯性的计步装置的结构示意图;

本申请第二方面提供了一种基于惯性的计步装置,包括:

获取数据模块10,获取符合预设阈值的加速度数据,记录历元时间;所述历元时间为采样点时间;

判断模块20,获取待测者的步行频率,并判断所述步行频率是否符合预设频率范围;

第一计算模块30,根据所述步行频率数据计算加速度峰值的最大对比次数和跳跃假峰值的跳跃长度;

第二计算模块40,计算所述加速度峰值的位置,根据所述加速度峰值的最大对比次数和所述跳跃长度计算获得搜索加速度位置。

进一步地,判断模块20还用于若步行频率为待测者的首步,判定步行频率为2hz。

进一步地,第一计算模块30包括:

时间计算单元,用于根据第一公式计算获得在所述历元时间走一步所需要的时间:

其中,k表示k历元时间;nk为待测者在k历元的时间段内走一步所需要的时间;f采为设备的采样频率;为待测者的步行频率;

对比次数计算单元一,用于根据第二公式计算获得对比次数:

其中,表示将k历元的加速度的对比次数为

对比次数计算单元二,根据第三公式计算获得跳跃长度:

其中,表示k历元的跳跃长度为

进一步地,第二计算模块40具体用于:

对比所述历元时间的加速度大小和下一个历元时间的加速度大小,若是所述历元时间的加速度较大,则所述历元时间的加速度为对应波峰的峰值;若是所述下一个历元时间的加速度较大,则所述下一个历元时间的最大对比次数为

若是寻找出峰值位置,根据跳跃长度重新在所述峰值位置历元之后的历元搜索新的符合阈值的加速度。

本申请第三方面提供了一种基于惯性的计步设备,设备包括处理器以及存储器:

存储器用于存储程序代码,并将程序代码传输给处理器;

处理器用于根据程序代码中的指令执行上述实施例的一种基于惯性的计步方法。

本申请第四方面提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质用于存储程序代码,程序代码用于执行上述实施例的的一种基于惯性的计步方法。

本申请的说明书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1