行人步行轨迹检测方法、装置及系统与流程

文档序号:26186343发布日期:2021-08-06 18:37阅读:275来源:国知局
行人步行轨迹检测方法、装置及系统与流程

本发明涉及室内定位技术领域,具体涉及一种行人步行轨迹检测方法、装置及系统。



背景技术:

随着智能移动终端(手机,电脑,可穿戴设备等)的普及,以及移动互联网的发展,从而导致基于位置感知的应用激增,对于位置服务的需求也与日俱增。目前,基于gps的室外定位/导航技术已经非常成熟并被广泛应用。

传统的gps定位导航由于室内信号差,难以承担室内定位的角色,因此,目前室内定位/导航常采用有基于地磁、无线信号(蓝牙、wifi、移动通信信号等)指纹、惯性制导等技术的方法,这些技术通常存在精度太低或者设备昂贵等缺点,难以广泛应用。此外,部分定位技术除了需要智能手机以外,还需要依靠其它检测设备实现定位,通用性不强。

个人航位推测(pdr)是在已知初始时刻位置的条件下,通过加速度计、磁罗盘、陀螺仪等设备测量移动的距离和方位,推算下一时刻位置的方法。基于pdr技术可以解决现有的室内定位/导航技术中的缺陷,但是,加速度计和角速度计的输出信号存在较大的误差,尤其是随着时间会产生较大的零漂误差,由于没有合理的数学模型以及对pdr的有效误差校正,使得基于pdr技术计算得到的步行轨迹容易产生积累误差,导致定位精度下降。



技术实现要素:

针对现有技术中的缺陷,本发明提供的一种行人步行轨迹检测方法、装置及系统,提高了室内定位精度、降低了实现成本。

第一方面,本发明提供了一种行人步行轨迹检测方法,包括:

步骤s101,获取轨迹起始点的位置和方向;

步骤s102,根据纵向加速度数据得到跨步区间,并计算每个跨步区间对应的步长数据;

步骤s103,对每个所述跨步区间内的角速度信号进行积分,得到每个所述跨步区间内产生的偏转角度,其中,积分起点的角度取为零;

步骤s104,从所述轨迹起始点开始,根据每一跨步的偏转角度和步长数据计算步行轨迹。

本发明采用分段积分方式得到每一步的偏转角度,每个跨步对应的偏转角度的计算都是相互独立的,将偏转角度的误差限制在一步的偏转误差之内,防止偏转角度的误差累加,基于本实施得到的步行轨迹更加精准。

本发明的行人步行轨迹检测方法简单高效,不需要昂贵的硬件设备,不需要设立新的基础设施(如蓝牙wifi等),所有携带有加速度传感器、并配备有足够存储空间和具备一定计算能力的处理器的移动终端,都可以用来实施本实施例的方法。

优选地,所述步骤s104具体包括:

从所述轨迹起始点开始,以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,所述步骤s104具体包括:

从所述轨迹起始点开始,根据每一跨步的偏转角度判断每次跨步是直行还是拐弯;

若当前跨步是直行,则沿前一跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹;

若当前跨步是拐弯,则以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,还包括:

检测每一跨步是否是直行;

若存在连续n步跨步都是直行,则对这n步跨步的偏转角度进行累加,得到方向角累积偏移值;

将方向角累积偏移值除以这n步跨步的时间,得到加速度零漂值;

所述步骤s103具体包括:对每个所述跨步区间内的角速度信号作如下处理:对角速度信号减去所述角速度零漂值后的数据进行积分,得到所述跨步区间内产生的偏转角度。

优选地,还包括:

在绘制步行轨迹的过程中,获取用户所处位置的地图数据;

若检测到用户发生拐弯行为,则根据所述步行轨迹在所述地图数据中匹配拐弯点,根据匹配到的拐弯点修正所述步行轨迹。

优选地,还包括:

获取用户所处位置的地图数据,将所述步行轨迹与所述地图数据中的路线进行比较,若所述步行轨迹偏离了所述地图数据中的路线,则计算偏航角,根据所述偏航角将所述步行轨迹矫正回正确的方向和长度。

优选地,还包括:

在绘制步行轨迹的过程中,若未获取到纵向加速度数据和/或角速度信号,则确定一个预判方向,根据所述预判方向绘制步行轨迹。

优选地,所述步骤s102中,所述根据纵向加速度数据得到跨步区间,具体包括:

步骤s401,检测纵向加速度数据的峰值,将两个相邻峰值间的区域划分为一个跨步区间。

优选地,所述步骤s102中,所述计算每个跨步区间对应的步长数据,具体包括:

步骤s402,对一个跨步区间内的纵向加速度数据进行积分得到速度数据,其中,积分起点的速度值取为零;

步骤s403,对所述速度数据进行积分得到纵向位移;

步骤s404,取所述跨步区间内纵向位移的极大值和极小值,极大值减去极小值得到纵向位移幅值;

步骤s405,根据所述纵向位移幅值,采用预设的步长计算模型得到所述跨步区间内用户的步长数据。

优选地,所述步骤s402具体包括:

根据所述速度数据计算中位速度;

对所述速度数据减去所述中位速度后的值进行积分得到纵向位移。

优选地,所述步骤s405具体包括:采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述步骤s405具体包括:

采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,h=k·h1,k为量程因子,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述步骤s401具体包括:

获取纵向加速度数据,并检测所述纵向加速度数据中的最大值;

当检测时间到一个达检测周期后,当前的最大值即为所述加速度数据的一个峰值,检测时间清零,最大值清零,进入下一个检测周期;

将两个相邻峰值间的区域划分为一个跨步区间。

优选地,所述用户腿长和所述用户脚长的获取方法包括:根据获取的用户的身体参数确定所述用户腿长和所述用户脚长。

优选地,所述身体参数包括用户的身高数值;

所述根据获取的用户的身体参数确定所述用户腿长和所述用户脚长,包括:将获取的用户的身高数值乘以第一系数得到所述用户腿长,将获取的用户的身高数值乘以第二系数得到所述用户脚长。

第二方面,本发明提供了一种行人步行轨迹检测装置,包括:

起始点获取模块,用于获取轨迹起始点的位置和方向;

跨步区间及步长计算模块,用于根据纵向加速度数据得到跨步区间,并计算每个跨步区间对应的步长数据;

偏转角度计算模块,用于对每个所述跨步区间内的角速度信号进行积分,得到每个所述跨步区间内产生的偏转角度,其中,积分起点的角度取为零;

步行轨迹计算模块,用于从所述轨迹起始点开始,根据每一跨步的偏转角度和步长数据计算步行轨迹。

优选地,所述步行轨迹计算模块具体用于:

从所述轨迹起始点开始,以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,所述步行轨迹计算模块具体用于:

从所述轨迹起始点开始,根据每一跨步的偏转角度判断每次跨步是直行还是拐弯;

若当前跨步是直行,则沿前一跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹;

若当前跨步是拐弯,则以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,还包括加速度零漂值计算模块,用于:

检测每一跨步是否是直行;

若存在连续n步跨步都是直行,则对这n步跨步的偏转角度进行累加,得到方向角累积偏移值;

将方向角累积偏移值除以这n步跨步的时间,得到加速度零漂值;

所述偏转角度计算模块具体用于:对每个所述跨步区间内的角速度信号作如下处理:对角速度信号减去所述角速度零漂值后的数据进行积分,得到所述跨步区间内产生的偏转角度。

优选地,还包括步行轨迹修正模块,用于:

在绘制步行轨迹的过程中,获取用户所处位置的地图数据;

若检测到用户发生拐弯行为,则根据所述步行轨迹在所述地图数据中匹配拐弯点,根据匹配到的拐弯点修正所述步行轨迹。

优选地,还包括步行轨迹修正模块,用于:获取用户所处位置的地图数据,将所述步行轨迹与所述地图数据中的路线进行比较,若所述步行轨迹偏离了所述地图数据中的路线,则计算偏航角,根据所述偏航角将所述步行轨迹矫正回正确的方向和长度。

优选地,所述步行轨迹计算模块还用于:在绘制步行轨迹的过程中,若未获取到纵向加速度数据和/或角速度信号,则确定一个预判方向,根据所述预判方向绘制步行轨迹。

优选地,所述跨步区间及步长计算模块包括峰值检测模块,用于检测纵向加速度数据的峰值,将两个相邻峰值间的区域划分为一个跨步区间。

优选地,所述跨步区间及步长计算模块还包括:

第一积分模块,用于对一个跨步区间内的纵向加速度数据进行积分得到速度数据,其中,积分起点的速度值取为零;

第二积分模块,用于对所述速度数据进行积分得到纵向位移;

纵向位移幅值计算模块,用于取所述跨步区间内纵向位移的极大值和极小值,极大值减去极小值得到纵向位移幅值;

步长计算模块,用于根据所述纵向位移幅值,采用预设的步长计算模型得到所述跨步区间内用户的步长数据。

优选地,所述第一积分模块具体用于:

根据所述速度数据计算中位速度;

对所述速度数据减去所述中位速度后的值进行积分得到纵向位移。

优选地,所述步长计算模块具体用于:采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述步长计算模块具体用于:

采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,h=k·h1,k为量程因子,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述峰值检测模块具体用于:

获取纵向加速度数据,并检测所述纵向加速度数据中的最大值;

当检测时间到一个达检测周期后,当前的最大值即为所述加速度数据的一个峰值,检测时间清零,最大值清零,进入下一个检测周期;

将两个相邻峰值间的区域划分为一个跨步区间。

优选地,还包括参数获取模块,用于:根据获取的用户的身体参数确定所述用户腿长和所述用户脚长。

优选地,所述身体参数包括用户的身高数值;

所述参数获取模块具体用于:将获取的用户的身高数值乘以第一系数得到所述用户腿长,将获取的用户的身高数值乘以第二系数得到所述用户脚长。

第三方面,本发明提供了一种行人步行轨迹检测系统,包括:加速度计,角速度计、处理器和存储器;

所述加速度计用于采集行人步行过程中的加速度数据,并发送给所述处理器;

所述角速度及用于采集行人步行过程中的角速度信号,并发送给所述处理器;

所述处理器用于运行所述存储器中的程序以执行第一方面中任一所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。

附图说明

图1为本发明实施例所提供的行人步行轨迹检测方法的流程示意图;

图2为了人体行走模型的示意图;

图3为采用本发明实施例所提供的行人步行轨迹检测方法得到的步行轨迹;

图4为基于现有pdr技术得到的步行轨迹;

图5为根据本发明实施例所提供的行人步长检测方法积分得到的速度数据;

图6为基于现有零速检测方法积分得到的速度数据。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

如图1所示,本实施提供了一种行人步行轨迹检测方法,包括:

步骤s101,获取轨迹起始点的位置和方向。

其中,轨迹起始点即用户开始行进时所在位置,这个位置可以通过gnss、wifi蓝牙、电子罗盘、地图匹配等技术手段获得。

步骤s102,根据纵向加速度数据得到跨步区间,并计算每个跨步区间对应的步长数据。

其中,纵向加速度数据来自于加速度计,纵向加速度数据描述的是用户行走过程中在重力方向上的加速度随时间的变化。

其中,跨步区间为用户跨过一步所对应的时间段。步长数据为用户跨过一步的距离。计算每一跨步的跨步区间和步长数据可以通过现有的步长检测技术实现,本发明不做具体限定,其均在本发明的保护范围之内。

步骤s103,对每个所述跨步区间内的角速度信号进行积分,得到每个所述跨步区间内产生的偏转角度,其中,积分起点的角度取为零。

其中,偏转角度a=∫ω·dt,ω为角速度信号,积分起点为t1,积分终点为t2,跨步区间即时刻t1至时刻t2的时间段,a(t1)=0。偏转角度a为一次跨步使人体在方向上偏转过的角度。

其中,角速度信号为水平旋转角速度由角速度计输出,角速度计包括但不限于陀螺仪。角速度信号和纵向加速度数据的时间轴是一致的。

步骤s104,从所述轨迹起始点开始,根据每一跨步的偏转角度和步长数据计算步行轨迹。

现有技术的轨迹检测方案是对整个行进过程的角速度信号进行连续积分,得到的是相对轨迹起始点的总的角度偏转,由于陀螺仪输出的角速度信号存在零漂,现有的计算方式容易累积零漂误差。本实施例中,每一跨步都从零开始积分(即每一跨步积分起点处的偏转角度都为零),计算得到的偏转角度是本次跨步前后用户相对转过的角度,这样每一步的偏转角度产生的误差都能够得到控制,避免误差累积。因此,本实施例采用分段积分方式得到每一步的偏转角度,每个跨步对应的偏转角度的计算都是相互独立的,将偏转角度的误差限制在一步的偏转误差之内,防止偏转角度的误差累加,基于本实施得到的步行轨迹更加精准。

图3为采用本实施例所提供的行人步行轨迹检测方法得到的步行轨迹。图4为基于现有pdr技术得到的步行轨迹。图3和图4是基于同一条轨迹的计算结果,p0点为步行轨迹起始点,p1为步行轨迹中的某一点,q点为步行轨迹的终点,实际用户行走路径为闭合回路。由于现有的步行轨迹计算方法存在严重的零漂,使得每一步都会累积零漂误差,最终导致步行轨迹的方向发生严重的偏离,从图4可以看出,从p0点为步行p1点的航向与用户实际行走方向发生了重大偏离,这种误差累积最终导致图4中的轨迹终点q无法回到起始点p0位置。图3中步行轨迹的终点与p0点几乎重合,p0到p1这段路径几乎保持直行,没有受到系统零漂的干扰,与用户实际行走轨迹几乎重合。通过图3和图4的对比可以看出,本实施例提供的方法相比现有技术能够很好地消除零漂误差,提高步行轨迹的航向稳定性。

步骤s104的优选实施例方式包括:从所述轨迹起始点开始,以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

步骤s104的另一优选实施例方式:

步骤s201,从所述轨迹起始点开始,根据每一跨步的偏转角度判断每次跨步是直行还是拐弯。

其中,通过将每一跨步的偏转角度与拐弯临界值进行比较,若大于拐弯临界值,则用户发生了拐弯行为,否则为直行。

步骤s202,若当前跨步是直行,则沿前一跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

步骤s203,若当前跨步是拐弯,则以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

上述优选实施方式根据每一跨步的偏转角度对用户行进方向进行判断,例如,一个跨步的偏转角度在0.2弧度以内就可以认为用户是直行,若偏转角度在0.5弧度以上即可算为转弯。当然,判断用户是直行还是拐弯的临界值可以根据实际情况进行设定。例如,现在的实验中发生转弯的情况通常偏转角度达到0.7-0.8弧度甚至超过1弧度,则可以将拐弯的临界值设备0.7弧度,当一次跨步的偏转角度大于0.7弧度时,认为用户发生了拐弯行为。

用户在行走过程中会因为各种原因产生一些微小的偏转,例如,躲避障碍物导致偏转、用户行走步态导致偏转、移动终端的传感器系统的误差导致产生偏转角度,但综合多个跨步来看步行轨迹是直线。这种情况下将上述的微小偏转体现在步行轨迹中,无形中增大了计算量,同时绘制的步行轨迹不够简洁美观。另外,现有技术中,依靠连续积分的方式没有办法获取每个跨步相对转过的偏转角度,也就没有办法对微小偏转进行修正。因此,本优选实施方式的优势在于,基于分段积分计算偏转角度的方法,实现了对每个跨步的偏转角度进行修正,使得计算得到的步行轨迹更加符合实际步行轨迹。

基于上述任一方法实施例,行人步行轨迹检测方法的另一实施方式还包括:

步骤s301,检测每一跨步是否是直行。

其中,检测每一跨步是否是直行的具体方法可参考步骤s201的操作,在此不再重复赘述。

步骤s302,若存在连续n步跨步都是直行,则对这n步跨步的偏转角度进行累加,得到方向角累积偏移值。

步骤s303,将方向角累积偏移值除以这n步跨步的时间,得到加速度零漂值。

相应的,步骤s103具体包括:对每个所述跨步区间内的角速度信号作如下处理:对角速度信号减去所述角速度零漂值后的数据进行积分,得到所述跨步区间内产生的偏转角度。

例如,如果检测判断连续n步(例如,20步或50步)跨步都是直线行走,则认为其行走方向应该是直线的,同时对这n步期间内的偏转角进行累加,得到角速度计的方向角累积偏移值。将方向角累积偏移值除以这n步的时间,即可得到角速度零漂值。在执行步骤s103对每个跨步区间内的角速度信号进行积分计算一个跨步的偏转角度的过程中,先让角速度信号减去角速度零漂值再行积分。通过上述优选实施方式,可以消除角速度计的系统零漂。

用户初始步行的方向(即轨迹起始点的方向)在开始的时候可能计算不准确,可以在走出两三步后,根据后续的数据对前面的数据进行修正,重新设定初始步行的方向,以提高后续轨迹绘制的准确性。

基于上述任一方法实施例,行人步行轨迹检测方法的另一实施方式还包括:在绘制步行轨迹的过程中,获取用户所处位置的地图数据;若检测到用户发生拐弯行为,则根据所述步行轨迹在所述地图数据中匹配拐弯点,根据匹配到的拐弯点修正所述步行轨迹。通过地图数据对步行轨迹进行修正,可以提高步行轨迹的精度。根据用户步行轨迹的轨迹起始点获取地图数据,例如,用户的轨迹起始点为a商场入口处,则获取a商场内部的地图数据,在行进过程中,也可以根据用户位置的变化,更新地图数据,以提高匹配精度。

基于上述任一方法实施例,行人步行轨迹检测方法的另一实施方式还包括:在绘制步行轨迹的过程中,获取用户所处位置的地图数据,地图数据中包括所有可能的线路,将所述步行轨迹与所述地图数据中的路线进行比较;若所述步行轨迹偏离了所述地图数据中的路线,则计算偏航角,根据所述偏航角将所述步行轨迹矫正回正确的方向和长度,比如偏航一度走了十米,计算位置的误差,根据偏航角将用户的步行轨迹矫正回正常方向和长度。通过上述优选方式,可以根据地图数据纠正步行轨迹发生的航偏。

基于上述任一方法实施例,行人步行轨迹检测方法的另一实施方式还包括:在绘制步行轨迹的过程中,若未获取到纵向加速度数据和/或角速度信号,则确定一个预判方向,设个预判方式是一个估计的大致方向,如以信号丢失前的轨迹方向作为当前的轨迹方向;根据预判方向绘制步行轨迹;再根据用户所处位置的地图数据对步行轨迹进行矫正。通过上述优选方式,可以在设备受到信号干扰或号丢失的情况下,依旧能够得到比较准确的步行轨迹。

现有技术中,通常采用零速检测的方式确定跨步区间,即检测速度为零的位置,以两个零速度位置之间作为跨步区间,但实际上这种检测方式确定的跨步区间的起点和终点并不准确,会给最终的步长检测结果带来很多误差。因此,在上述任一方法实施例的基础上,为了进一步提高步行轨迹的精度,步骤s102采用以下优选实施方式,以提高步长检测的精度,具体包括:

步骤s401,检测纵向加速度数据的峰值,将两个相邻峰值间的区域划分为一个跨步区间。

其中,两个相邻峰值中,在前的峰值对应了一次跨步的起始点,在后的峰值对应了这次跨步的结束点,为方便描述,起始点对应的时刻记为t1,结束点对应的时刻记为t2,跨步区间即时刻t1至时刻t2的时间段。峰值检测方法可采用现有技术中的任一种峰值检测方法,本发明不做具体限定,其均在本发明的保护范围之内。

然后根据步骤s401得到的跨步区间,计算每个跨步区间对应的步长数据。

上述优选实施方式中,无需检测零速位置,而采用检测加速度峰值的方法,将纵向加速度的两个相邻峰值之间设定为一个跨步区间,相比现有的零速检测方法,本实施例提供的步长检测方法,能够更加精准地确定跨步区间,基于划分的跨步区间计算步长数据,每一跨步的步长数据都是根据每个独立的跨步区间的数据得到的,避免误差累积,从而提高步长数据的检测精度,为室内导航、定位提供更加精准的基础数据。

在上述任一方法实施例的基础上,为了进一步提高步行轨迹的精度,步骤s102中,计算每个跨步区间对应的步长数据采用以下优选实施方式,以提高步长检测的精度,具体包括:

步骤s402,对一个跨步区间内的纵向加速度数据进行积分得到速度数据,其中,积分起点的速度值取为零。

假设纵向加速度数据为a,则速度数据v=∫a·dt,积分起点为时刻t1,积分终点为时刻t2。速度数据v描述了一个跨步区间内各个时刻用户在重力方向的速度值。

步骤s403,对速度数据进行积分得到纵向位移。

其中,纵向位移h=∫v·dt。积分起点为时刻t1,积分终点为时刻t2。纵向位移h是关于时间的函数,描述了一个跨步区间内各个时刻用户质心在重力方向的位移。其中,积分起点的纵向位移取为零。

步骤s404,取跨步区间内纵向位移的极大值和极小值,极大值减去极小值得到纵向位移幅值。

其中,纵向位移幅值为一个跨步区间内用户质心在重力方向的最大运动幅值,记为h1。

步骤s405,根据纵向位移幅值,采用预设的步长计算模型得到跨步区间内用户的步长数据。

其中,步长数据为用户一步跨过的距离。

速度曲线是一个周期函数,不妨在模型中近似为一个sin函数,而加速度的函数则可以近似为cos函数,这样可以假定在加速度曲线取到峰值的时候,就是速度曲线的过零点。因此,本实施例中,无需检测零速位置,而是在加速度峰值的位置将速度直接设置为零,即强制将积分起点的速度值取为零,降低了速度数据的积分误差,使得最终得到的步长数据更加精准。另外,每一个跨步开始的时候对应峰值处身体质心的纵向位移幅值应该为零,每一个跨步区间走完后,身体质心的纵向位移幅值应该回到零,可以利用这个假设消除误差。

图5为根据上述实施例所提供的行人步长检测方法积分得到的速度数据,图6为基于现有零速检测方法积分得到的速度数据,图5和图6是基于同一次加速度数据得到的积分结果。一般人在步行过程中,速度曲线应该是一个近似的周期函数。图6的速度曲线杂乱无章,其原因是零速检测方法无法精准地确定跨步区间,导致加速度积分的积分起点和终点并不对应着用户真实的跨步起始点和终点,因此,根据图6中的速度曲线再进行积分是无法得到准确步长的。

从图5的速度曲线可以看出,速度曲线基本为满足周期性,表明选择的跨步区间的起点和终点能很好地与用户真实的跨步起始点和终点重合。

由于加速度计存在零漂,造成不为零的中位速度的漂移,为了改善零漂导致的计算误差,在上述方法实施例的基础上,步骤s402的优选实施方式包括:

步骤s501,根据所述速度数据计算中位速度,具体计算公式为

步骤s502,对所述速度数据减去所述中位速度后的值进行积分得到纵向位移,h=∫(v-v中位)dt。

本实施例采用的基于运动模型的零速假设,相当于把中位速度强制归零,上述方法利用中位速度修正了速度数据,使得积分结束时纵向位移结果为0或接近0,保证一个跨步区间内总的纵向位移幅值为零,限制了积分过程中零漂的积累。

图2给出了人体行走模型,揭示了人体行走过程中的各物理量之间的几何关系图,h1为纵向位移幅值,l为用户腿长,s2为用户脚长,通过几何关系即可得到进而得到一个完整步长数据len=s1+s2。因此,步骤s405中,根据将所述纵向位移幅值,采用预设的步长计算模型得到跨步区间内用户的步长数据,包括:采用以下步长计算模型得到跨步区间内用户的步长数据:

其中,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

由于不同终端的传感器精度灵敏度不太一致,导致同一算法应用在不同终端上的效果差别很大,为解决该问题,在上述任一方法实施例的基础上,本实施例在计算过程中通过乘上量程因子修正纵向位移幅值,让不同终端不同传感器的采集数据处理结果趋同,使得本实施例的方法能够更好地应用于不同终端。具体的,步骤s405中所述根据将所述纵向位移幅值,采用预设的步长计算模型得到跨步区间内用户的步长数据,包括:

采用以下步长计算模型得到跨步区间内用户的步长数据:

其中,h=k·h1,k为量程因子,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。通过加入量程因子对每一跨步区间中的纵向位移幅值进行调整,使得计算得到的步长数据更加精准。

为了进一步提高测量精度,本实施例中,在用户使用移动终端进行步长检测的初期时,可以在计算步长的过程中自适应地调整量程因子k,综合初期调整的结果最终确定量程因子k,该量程因子k综合考虑了用户的行走特征和系统误差,所以能够对用户行走特征以及移动终端的加速度计系统误差进行调整,降低步长数据的计算误差。

自适应地调整量程因子k的优选实施方法包括以下两种:

(1)在能够获取用户行进过程中的实际位置时,通过已知确定距离对量程因子k自适应地调整。具体的,计算所述量程因子的步骤包括:获取用户在行进过程中的实际位置,根据实际位置得到两点间的实际距离;求取两点间所有步长数据之和得到估计距离;根据实际距离和估计距离计算量程因子。例如,在用户行进过程中能够获取到用户的实际位置a和b,则可以得到a、b间的真实距离;同时,通过步长检测方可以得到用户从a走到b这段区间内所有步长数据之和,作为为a、b间的估计距离;根据a、b间的真实距离和估计距离,反推量程因子。例如可以通过地磁或无线信号指纹等现有的室内定位技术获取用户行进过程中的实际位置。

(2)在无法获取用户行进过程中的实际位置时,可以用经验公式来反推量程因子k。具体的,计算量程因子的步骤包括:计算用户行进过程中纵向位移幅值的实测平均值;根据用户腿长、用户脚长及跨步角,利用三角关系得到估算步长;根据估算步长推算用户行进过程中纵向位移幅值;根据推算的纵向位移幅值和纵向位移幅值的实测平均值计算量程因子。例如,根据人体生理模型的假设,人的跨步角大约在14-18度,取合适的跨步角,然后根据用户腿l、用户脚长s2以及跨步角θ,利用如图2的三角关系得到估算步长为len=2lsinθ+s2,再根据估算步长来反推人体质心纵向位移幅值l(l-cosθ),可以用工程优化算法,略去h1平方的高阶,得到推算的纵向位移幅值为从而计算出量程因子其中,为纵向唯一幅值的实测平均值。一般跨步角可以选用16度或17度。

当然,也可以在实际应用中,通过机器学习统计等方式,对量程因子进行自适应。

步骤s401的优选实施方式有多种,基于上述任一方法实施例,为了保证检测到的峰值的真实性,步骤s401的优选实施方法包括:获取纵向加速度数据,并检测纵向加速度数据中的最大值;当检测时间到一个达检测周期后,当前的最大值即为加速度数据的一个峰值,检测时间清零,最大值清零,进入下一个检测周期;将两个相邻峰值间的区域划分为一个跨步区间。其中,人步行大约为0.5秒一步,则可以设定一个检测周期为0.25秒。对于纵向加速度数据的峰值检测,进行一个检测周期的延迟才认定一个检测周期内的最大值为真正的峰值,这样不会造成错检和漏检。确认峰值的时间滞后一个检测周期,待纵向加速度数据组成的波形中包含了真实的峰值点后时再进行峰值点确认,虽然这样的处理方式会带来半步的延迟,但这个延时在可接受的范围内,且上述处理方式能够保证检测到的峰值真实准确。

在上述任一方法实施例中,用户腿长和用户脚长的获取方法包括:根据获取的户的身体参数确定用户腿长和用户脚长。用户腿长、用户脚长等数据对于某个用户来说是一个常数,取值尽管不容易获得,但均可以通过根据用户输入的数据或者从其他软件调用的参数推算得到。

其中,身体参数包括用户的身高数值。用户腿长和用户脚长的获取方法具体包括:将获取的用户的身高数值乘以第一系数得到用户腿长,将获取的用户的身高数值乘以第二系数得到用户脚长。比如,第一系数可取为0.5,而身高数值可以从用户输入或者其他软件的参数调用来取得。用户脚长也可以通过人体的生理模型来推算,例如设定用户脚长为用户身高的0.147倍,即第二系数取0.147,根据已有的研究数据显示,中国人的身高脚长比例是6.8:1,欧洲人的身高脚长比例是7:1,这些参数都可以用来估算用户脚长。

在无法获取用户的身体参数时,采用典型值作为用户腿长和用户脚长。用户的身高数值可以采用典型值如1.75米,基本可以覆盖1.6-1.9米的人群,误差在可容忍范围内,根据身高数据的典型值即可得到用户腿长的典型值,由于计算步长数据时,用户腿长的数值位于根号中,因此其对于s1的值的影响并不大,甚至还不如信号噪声影响大。用户脚长也可以由用户输入确定,但是这样会带来用户体验上的不便,而获得的收益并不明显,相对于每个跨步的长度而言,脚长的差距最多也只是几个厘米,因此,用户输入脚长并非是必要的一个操作,可以假定为一个用户腿长的典型值,例如26厘米。

人行走的频率大约是2赫兹,也就是通常一秒两步,每一步的变化都更新步长和方向角,本实施例采中,对加速度计输出数据的采样频率为50hz,保证每一跨步区间内数据的采集量能够满足处理精度的要求。

由于用户在行走过程中会发生晃动或做一些其他的动作,对加速度计和角速度计的输出信号产生扰动和噪音,同时,加速度计和角速度计的本身不可避免的存在噪声,因此,在使用加速度数据和角速度信号前,还可以对加速度数据和角速度信号进行降噪处理,具体实施时,可以采用低通滤波器等方式实现,本发明不做具体限定,其均在本发明的保护范围之内。

当然,加速度计和角速度计的输出信号在一个区段中的白噪声有正向也有负向,由于本实施例采用积分方式处理加速度数据和角速度信号,一定程度上可以去除掉数据包含的白噪声,相当于起到了卡尔曼滤波的效果,因此,可以省略降噪处理过程中的卡尔曼滤波过程,减少数据的预处理步骤。

利用本实施例计算得到的步行轨迹可以通过移动终端上的app呈现,并与地图等数据结合来为用户提供步行轨迹。

本实施例中的各个优选实施方式可以进行任意的组合。

本实施例的行人步行轨迹检测方法简单高效,不需要昂贵的硬件设备,不需要设立新的基础设施(如蓝牙wifi等),所有携带有加速度计、角速度计并配备有足够存储空间和具备一定计算能力的处理器的移动终端,都可以用来实施本实施例的方法。例如,用户出行时随身携带有移动智能终端,如智能手环、智能手机等,该移动智能终端中安装有加速度计和角速度计,加速度计会根据用户的动作感应产生加速度数据,角速度计会根据用户的动作感应产生角速度信号,本发明实施例需要使用其中重力方向(即纵向)的加速度数据和水平方向的角速度信号进行计算。由于加速度计直接输出的加速度数据是基于加速度计自身的载体坐标系产生的,因此,还需要将从加速度计获取的载体坐标系下的加速度数据转换为大地坐标系下的纵向加速度数据,同样的,采用坐标系转换的方法获取水平方向的角速度信号。坐标系转换方法可采用现有技术中的任一种坐标系转换方法,本发明不做具体限定,其均在本发明的保护范围之内。

本实施例中提供的任意方法实施例,不仅可以行人、室内导航,还可以代替硬件计步器,获得计步同时计算行走距离的能力,还可用于即时定位与地图构建,室内位置信号指纹库采集等等商业场合。

惯性制导的传感器(cep或者cer)在短距离内精度高,但精度会随时间扩散。gnss的短距离精度不高,但长时间内不会误差扩散。本实施例提供的方法,能够将惯导和gnss技术结合起来了,取长补短,提高短距离的定位导航精度、同时避免长时间的零漂误差,提高gnss在室外的精度、降低功耗(低频获取gnss等),本实施例提供的方法为室内、外的定位导航提供了一种高精度、低功耗的通用方案。

基于与上述行人步行轨迹检测方法相同的发明构思,本实施例提供了一种行人步行轨迹检测装置,包括:

起始点获取模块,用于获取轨迹起始点的位置和方向;

跨步区间及步长计算模块,用于根据纵向加速度数据得到跨步区间,并计算每个跨步区间对应的步长数据;

偏转角度计算模块,用于对每个所述跨步区间内的角速度信号进行积分,得到每个所述跨步区间内产生的偏转角度,其中,积分起点的角度取为零;

步行轨迹计算模块,用于从所述轨迹起始点开始,根据每一跨步的偏转角度和步长数据计算步行轨迹。

优选地,所述步行轨迹计算模块具体用于:

从所述轨迹起始点开始,以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,所述步行轨迹计算模块具体用于:

从所述轨迹起始点开始,根据每一跨步的偏转角度判断每次跨步是直行还是拐弯;

若当前跨步是直行,则沿前一跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹;

若当前跨步是拐弯,则以前一跨步的轨迹方向加上当前跨步的偏转角度作为当前跨步的轨迹方向,沿当前跨步的轨迹方向、根据当前跨步的步长数据绘制步行轨迹。

优选地,还包括加速度零漂值计算模块,用于:

检测每一跨步是否是直行;

若存在连续n步跨步都是直行,则对这n步跨步的偏转角度进行累加,得到方向角累积偏移值;

将方向角累积偏移值除以这n步跨步的时间,得到加速度零漂值;

所述偏转角度计算模块具体用于:对每个所述跨步区间内的角速度信号作如下处理:对角速度信号减去所述角速度零漂值后的数据进行积分,得到所述跨步区间内产生的偏转角度。

优选地,还包括步行轨迹修正模块,用于:

在绘制步行轨迹的过程中,获取用户所处位置的地图数据;

若检测到用户发生拐弯行为,则根据所述步行轨迹在所述地图数据中匹配拐弯点,根据匹配到的拐弯点修正所述步行轨迹。

优选地,还包括步行轨迹修正模块,用于:获取用户所处位置的地图数据,将所述步行轨迹与所述地图数据中的路线进行比较,若所述步行轨迹偏离了所述地图数据中的路线,则计算偏航角,根据所述偏航角将所述步行轨迹矫正回正确的方向和长度。

优选地,所述步行轨迹计算模块还用于:在绘制步行轨迹的过程中,若未获取到纵向加速度数据和/或角速度信号,则确定一个预判方向,根据所述预判方向绘制步行轨迹。

优选地,所述跨步区间及步长计算模块包括峰值检测模块,用于检测纵向加速度数据的峰值,将两个相邻峰值间的区域划分为一个跨步区间。

优选地,所述跨步区间及步长计算模块还包括:

第一积分模块,用于对一个跨步区间内的纵向加速度数据进行积分得到速度数据,其中,积分起点的速度值取为零;

第二积分模块,用于对所述速度数据进行积分得到纵向位移,其中,积分起点的纵向位移取为零;

纵向位移幅值计算模块,用于取所述跨步区间内纵向位移的极大值和极小值,极大值减去极小值得到纵向位移幅值;

步长计算模块,用于根据所述纵向位移幅值,采用预设的步长计算模型得到所述跨步区间内用户的步长数据。

优选地,所述第一积分模块具体用于:

根据所述速度数据计算中位速度;

对所述速度数据减去所述中位速度后的值进行积分得到纵向位移。

优选地,所述步长计算模块具体用于:采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述步长计算模块具体用于:

采用以下步长计算模型得到所述跨步区间内用户的步长数据:

其中,h=k·h1,k为量程因子,len为步长数据,h1为纵向位移幅值,l为用户腿长,s2为用户脚长。

优选地,所述峰值检测模块具体用于:

获取纵向加速度数据,并检测所述纵向加速度数据中的最大值;

当检测时间到一个达检测周期后,当前的最大值即为所述加速度数据的一个峰值,检测时间清零,最大值清零,进入下一个检测周期;

将两个相邻峰值间的区域划分为一个跨步区间。

优选地,还包括参数获取模块,用于:根据获取的用户的身体参数确定所述用户腿长和所述用户脚长。

优选地,所述身体参数包括用户的身高数值;

所述参数获取模块具体用于:将获取的用户的身高数值乘以第一系数得到所述用户腿长,将获取的用户的身高数值乘以第二系数得到所述用户脚长。

本实施例提供的一种行人步行轨迹检测装置与上述行人步行轨迹检测方法出于相同的发明构思,具有相同的有益效果,此处不再赘述。

基于与上述行人步行轨迹检测方法相同的发明构思,本发明提供了一种行人步行轨迹检测系统,包括:加速度计,角速度计、处理器和存储器;所述加速度计用于采集行人步行过程中的加速度数据,并发送给所述处理器;所述角速度及用于采集行人步行过程中的角速度信号,并发送给所述处理器;所述处理器用于运行所述存储器中的程序以执行上述方法实施例中任一所述的方法。

本实施例提供的一种行人步行轨迹检测系统与上述行人步行轨迹检测方法出于相同的发明构思,具有相同的有益效果,此处不再赘述。

基于与上述行人步行轨迹检测方法相同的发明构思,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例中任一所述的方法。

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

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