发明内容
有鉴于上述问题,本发明提出一种适用于配带智能手机行人的步态检测方法,以实现对行人步态的精准判断。该方法利用智能手机自带的MEMS加速度计所采集的加速度计信息对行人的步态进行检测,利用加速度信息的自相关特性进行自适应实时动态判断,在保证步态检测准确性的同时,有效地克服了不同人行走方式的差异性所带来的不利影响,显著地提高了系统的适用性,稳定性和应用范围。
为了实现上述目的,本发明的技术方案是:
一种适用于配带智能手机行人的步态检测方法,所述方法包括判断智能手机是否处于运动状态步骤和步态检测步骤;
所述智能手机是否处于运动状态步骤包括:
第一步:连续获取智能手机的三轴加速度信息,根据获取的三轴加速度信息依次计算三轴合加速度;
第二步:根据计算三轴合加速度结果判断三轴合加速度是否满足第一条件,以及判断在满足第一条件之前是否满足第二条件;所述第一条件是智能手机出现运动现象,所述第二条件是智能手机是否处于静止状态,如果不满足第一条件和第二条件则返回第一步,如果满足则执行步态检测步骤;
所述满足第一条件是必须满足公式1和公式2的条件,
abs(A(k)-g)≥0.5 (1)
abs(A(k-1)-g)≥0.5 (2)
g=9.8是重力加速度;
abs代表绝对值;
A(k)代表当前时刻三轴合加速度;
A(k-1)代表当前时刻之前一个的三轴合加速度;
所述满足静止状态的第二条件是:由公式3计算当前时刻前30个三轴合加速度分别减去重力加速度的平均值必须小于0.5,并且当前时刻前10个三轴合加速度值小于或等于0.5,
Atest_1={abs(A(k-30)-g),…,abs(A(k)-g)} (3)
A(k-30)代表当前时刻之前第30个三轴合加速度;
所述步态检测步骤是:
第一步:将当前时刻作为步行第一步的起脚点时刻,连续获取一个时间周期的三轴加速度信息,根据一个时间周期的三轴加速度信息确定第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列,记录步数,所述一步是左右脚的一个周期步;
第二步:根据公式3判断是否出现静止状态,如果出现静止状态则停止步态检测,否则进入第三步;
第三步:以上一步的落脚点时刻作为当前新一步的起脚点时刻,继续获取所述时间周期的三轴加速度信息,将三轴加速度信息与上一步加速度序列比对找出与上一步三轴加速度序列最接近的三轴加速度序列,将最接近的三轴加速度序列定义为新的三轴加速度序列,并由新的三轴加速度序列确定新的落脚点时刻,记录步数,返回第二步。
方案进一步是:所述确定第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列的方法是:利用三轴加速度信号归一化自相关算法和多维数据自适应权重算法公式,将三轴加速度信号代入获取第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列;
所述三轴加速度信号归一化自相关算法是:
X轴的加速度信号归一化自相关算法:
Y轴的加速度信号归一化自相关算法:
Z轴的加速度信号归一化自相关算法:
其中:
μa(t,τ)代表序列{a(t),a(t+1),…,a(t+τ-1)}的均值;
μa(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ-1)}的均值;
σa(t,τ)代表序列{a(t),a(t+1),…,a(t+τ)}的标准差;
σa(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ)}的标准差;
μb(t,τ)代表序列{b(t),b(t+1),…,b(t+τ-1)}的均值;
μb(t+τ,τ)代表序列{b(t+τ),b(t+τ+1),…,b(t+2τ-1)}的均值;
σb(t,τ)代表序列{b(t),b(t+1),…,b(t+τ-1)}的标准差;
σb(t+τ,τ)代表序列{b(t+τ),b(t+τ+1),…,b(t+2τ-1)}的标准差;
μc(t,τ)代表序列{c(t),c(t+1),…,c(t+τ-1)}的均值;
μc(t+τ,τ)代表序列{c(t+τ),c(t+τ+1),…,c(t+2τ-1)}的均值;
σc(t,τ)代表序列{c(t),c(t+1),…,c(t+τ-1)}的标准差;
σc(t+τ,τ)代表序列{c(t+τ),c(t+τ+1),…,c(t+2τ-1)}的标准差;
所述多维数据自适应权重算法公式是:
λ(t,τ)=ρa(t,τ)λa(t,τ)+ρb(t,τ)λb(t,τ)+ρc(t,τ)λc(t,τ) (7)
其中:
ρ
a(t,τ),ρ
b(t,τ),ρ
c(t,τ)分别为对应的自适应权重,计算方式为:
X轴的自适应权重;
χa(t,τ)代表序列{abs(a(t)),abs(a(t+1)),…,abs(a(t+2τ-1))}的均值;
χb(t,τ)代表序列{abs(b(t)),abs(b(t+1)),…,abs(b(t+2τ-1))}的均值;
χc(t,τ)代表序列{abs(c(t)),abs(c(t+1)),…,abs(c(t+2τ-1))}的均值;
abs(·)代表计算对应数据的绝对值;
将三轴加速度中X轴的加速度信号{AX(i)}i=1,2,…替换上述公式中的a(t);
将三轴加速度中Y轴的加速度信号{AY(i)}i=1,2,…替换上述公式中的b(t);
将三轴加速度中Z轴的加速度信号{AZ(i)}i=1,2,…替换上述公式中的c(t);
将上述公式中的时刻t设置为起脚点时刻Tfirst_start,延迟τ从0.5秒递进至2.2秒,分别计算在不同延迟τ下的λ(Tfirst_start,τ),确定其中的最大值以及使得λ(Tfirst_start,τ)取得最大值的τ,将最大值的τ定义为第一步时长τbest。则τbest对应为首步的步长,即认为首步的落脚点时刻为Tfirst_start+τbest;
当延迟τ为τbest时:
X轴加速度序列则为:
{AX(Tfirst_start),…,AX(Tfirst_start+τbest-1)};
Y轴加速度序列为:
{AY(Tfirst_start),…,AY(Tfirst_start+τbest-1)};
Z轴加速度序列为:
{AZ(Tfirst_start),…,AZ(Tfirst_start+τbest-1)}。
方案进一步是:所述将三轴加速度信息与上一步加速度序列与比对找出与上一步三轴加速度序列最接近的三轴加速度序列的方法是:
在三轴加速度信息中构建下一步中的三轴加速度序列,分别是由公式8代表的X轴的加速度序列,由公式9代表的Y轴的加速度序列和由公式10代表的Z轴的加速度序列;
AX_detect={AX(Tfirst_start+τbest),…,AX(Tfirst_start+τbest+τ-1)} (8),
AY_detect={AY(Tfirst_start+τbest),…,AY(Tfirst_start+τbest+τ-1)} (9),
AZ_detect={AZ(Tfirst_start+τbest),…,AZ(Tfirst_start+τbest+τ-1)} (10),
将下一步的X轴的加速度序列、Y轴的加速度序列以及Z轴的加速度序列与上一步的X轴的加速度序列、Y轴的加速度序列以及Z轴的加速度序列通过公式11进行距离计算:
distτ=DTW(AX_detect,AX_step)+DTW(AY_detect,AY_step)+DTW(AZ_detect,AZ_step) (11)
其中:
将延迟τ从0.5秒递进至2.2秒,分别计算在不同延迟τ下的distτ,确定其distτ最小值的三轴加速度序列为最接近的三轴加速度序列,以及使得distτ取得最小值的τ定义为:τstance,并将τstance定义为当前步的步长,当前步的落脚点时刻为Tfirst_start+τbest+τstance。
与现有技术相比,本发明方法不再对携带模式进行判断,不依赖于任何先验信息和任何其他设备,也不再采用检测阈值的方式进行步态检测,而是利用加速度信息的自相关特性进行自适应实时动态判断,在保证步态检测准确性的同时,有效地克服了不同人行走方式的差异性所带来的不利影响,显著地提高了系统的适用性,稳定性和应用范围。
有益效果包括:
(1)本发明解决了传统的行人步态检测算法中,对于检测阈值设定敏感、在不合理的检测阈值的设定条件下步态检测算法性能较差的问题,实现了无需设置检测阈值条件下的室内行人步态检测。
(2)本发明仅依赖于智能手机自带的MEMS加速度计信息,无需在室内场景布放相关支撑设备或者采集室内场景的地理信息(如室内地图,室内地磁图等),且不需要任何先验信息支撑,系统简便易行且硬件成本较低。
(3)本发明所设计的自回溯步态检测算法,利用行人相邻步态之间具有的相似性对行人步态进行自适应检测,与现有方法相比,不再依赖于预先设定的检测阈值和携带模态判断,具有较强的自适应能力,有效地克服了不同人行走方式的差异性所带来的不利影响,显著地提高了算法的适用性和应用范围。
(4)本发明所设计的多维数据自适应权重归一化自相关算法,是一种可以定量描述多维数据自相关性强弱的方法。该算法可以对多维数据的自相关性进行计算,同时结合自适应权重归一化方法,凸显重要数据在自相关算法的作用,弱化偶然误差对于算法准确性的影响。
(5)本发明所设计的运动状态检测算法,是一种可以判断当前智能手机处于运动或是静止的检测方法。该方法实现了由静止状态转换为运动状态时快速灵敏,在最短时间内给出智能手机处于运动状态的指令,确保不会遗漏任何运动信息;由运动状态转换为静止状态时稳健可靠,在信息足够充分的情况下才能做出处于静止状态的指令,最大程度上防止出现误检测。
下面结合附图和实施例对本发明进行详细描述。
具体实施方式
本实施例不再利用阈值信息作为步态检测的依据,而是利用行人行走时步态具有的自相关性进行步态检测与判断:具体做法为是利用MAWNA算法判断行人首步的起脚时刻和落脚时刻,利用DTW算法实现步态的循环检测,整套方案不再依赖于预先设定的检测阈值和携带模态判断的准确性,在保证检测步态检测准确性的基础上,具有更强的适用性和稳定性,其过程是:
一种适用于配带智能手机行人的步态检测方法,包括判断智能手机是否处于运动状态步骤和步态检测步骤;
所述智能手机是否处于运动状态步骤包括:
第一步:以智能手机采样频率为速率,或者以自定义的采样速率、连续获取智能手机的三轴加速度信息,根据获取的三轴加速度信息依次计算三轴合加速度;
第二步:根据计算三轴合加速度结果判断三轴合加速度是否满足第一条件,以及判断在满足第一条件之前是否满足第二条件;所述第一条件是智能手机出现运动现象,所述第二条件是智能手机是否处于静止状态,如果不满足第一条件和第二条件则返回第一步,如果满足则执行步态检测步骤;
所述满足第一条件是必须满足公式1和公式2的条件,
abs(A(k)-g)≥0.5 (公式1)
abs(A(k-1)-g)≥0.5 (公式2)
g=9.8是重力加速度;
abs代表绝对值;
A(k)代表当前时刻三轴合加速度;
A(k-1)代表当前时刻之前一个的三轴合加速度;
所述满足静止状态的第二条件是:由公式3计算当前时刻前30个三轴合加速度分别减去重力加速度的平均值必须小于0.5,并且当前时刻前10个三轴合加速度值小于或等于0.5,既满足:
abs(A(k)-g)≤0.5,…,abs(A(k-10)-g)≤0.5
Atest_1={abs(A(k-30)-g),…,abs(A(k)-g)} (公式3)
A(k-10)代表当前时刻之前第10个三轴合加速度
A(k-30)代表当前时刻之前第30个三轴合加速度;
所述步态检测步骤是:
第一步:将当前时刻作为步行第一步的起脚点时刻,连续获取一个步长时间周期的三轴加速度信息,根据一个步长时间周期的三轴加速度信息确定第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列,记录步数,所述一步是左右脚的一个周期步;一个步长的时长不超出2.2秒;
第二步:根据公式3判断是否出现静止状态,如果出现静止状态则停止步态检测,否则进入第三步;
第三步:以上一步的落脚点时刻作为当前新一步的起脚点时刻,继续获取所述时间周期的三轴加速度信息,将三轴加速度信息与上一步三轴加速度序列比对找出与上一步三轴加速度序列最接近的三轴加速度序列,将最接近的三轴加速度序列定义为新的三轴加速度序列,并由新的三轴加速度序列确定新的落脚点时刻,记录步数,返回第二步。
方法中:所述确定第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列的方法是:利用三轴加速度信号归一化自相关算法和多维数据自适应权重算法公式,将三轴加速度信号代入获取第一步的落脚点时刻、第一步时长、以及针对第一步时长的加速度序列;
所述三轴加速度信号归一化自相关算法是公式4、5、6:
X轴的加速度信号归一化自相关算法:
Y轴的加速度信号归一化自相关算法:
Z轴的加速度信号归一化自相关算法:
其中:
μa(t,τ)代表序列{a(t),a(t+1),…,a(t+τ-1)}的均值;
μa(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ-1)}的均值;
σa(t,τ)代表序列{a(t),a(t+1),…,a(t+τ)}的标准差;
σa(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ)}的标准差;
μb(t,τ)代表序列{b(t),b(t+1),…,b(t+τ-1)}的均值;
μb(t+τ,τ)代表序列{b(t+τ),b(t+τ+1),…,b(t+2τ-1)}的均值;
σb(t,τ)代表序列{b(t),b(t+1),…,b(t+τ-1)}的标准差;
σb(t+τ,τ)代表序列{b(t+τ),b(t+τ+1),…,b(t+2τ-1)}的标准差;
μc(t,τ)代表序列{c(t),c(t+1),…,c(t+τ-1)}的均值;
μc(t+τ,τ)代表序列{c(t+τ),c(t+τ+1),…,c(t+2τ-1)}的均值;
σc(t,τ)代表序列{c(t),c(t+1),…,c(t+τ-1)}的标准差;
σc(t+τ,τ)代表序列{c(t+τ),c(t+τ+1),…,c(t+2τ-1)}的标准差;
所述多维数据自适应权重算法公式是公式7:
λ(t,τ)=ρa(t,τ)λa(t,τ)+ρb(t,τ)λb(t,τ)+ρc(t,τ)λc(t,τ) (公式7)
其中:
ρa(t,τ),ρb(t,τ),ρc(t,τ)分别为对应的自适应权重,计算方式为:
χa(t,τ)代表序列{abs(a(t)),abs(a(t+1)),…,abs(a(t+2τ-1))}的均值;
χb(t,τ)代表序列{abs(b(t)),abs(b(t+1)),…,abs(b(t+2τ-1))}的均值;
χc(t,τ)代表序列{abs(c(t)),abs(c(t+1)),…,abs(c(t+2τ-1))}的均值;
abs(·)代表计算对应数据的绝对值;
将三轴加速度中X轴的加速度信号{AX(i)}i=1,2,…替换上述公式中的a(t);
将三轴加速度中Y轴的加速度信号{AY(i)}i=1,2,…替换上述公式中的b(t);
将三轴加速度中Z轴的加速度信号{AZ(i)}i=1,2,…替换上述公式中的c(t);
将上述公式中的时刻t设置为起脚点时刻Tfirst_start,延迟τ从0.5秒递进至2.2秒,分别计算在不同延迟τ下的λ(Tfirst_start,τ),确定其中的最大值以及使得λ(Tfirst_start,τ)取得最大值的τ,将最大值的τ定义为第一步时长τbest。则τbest对应为首步的步长,即认为首步的落脚点时刻为Tfirst_start+τbest;
当延迟τ为τbest时:
X轴加速度序列则为:
{AX(Tfirst_start),…,AX(Tfirst_start+τbest-1)};
Y轴加速度序列为:
{AY(Tfirst_start),…,AY(Tfirst_start+τbest-1)};
Z轴加速度序列为:
{AZ(Tfirst_start),…,AZ(Tfirst_start+τbest-1)}。
实施例中:所述将三轴加速度信息与上一步加速度序列与比对找出与上一步三轴加速度序列最接近的三轴加速度序列的方法是:
在三轴加速度信息中构建下一步中的三轴加速度序列,分别是由公式8代表的X轴的加速度序列,由公式9代表的Y轴的加速度序列和由公式10代表的Z轴的加速度序列;
AX_detect={AX(Tfirst_start+τbest),…,AX(Tfirst_start+τbest+τ-1)} (公式8),
AY_detect={AY(Tfirst_start+τbest),…,AY(Tfirst_start+τbest+τ-1)} (公式9),
AZ_detect={AZ(Tfirst_start+τbest),…,AZ(Tfirst_start+τbest+τ-1)} (公式10),
将下一步的X轴的加速度序列、Y轴的加速度序列以及Z轴的加速度序列与上一步的X轴的加速度序列、Y轴的加速度序列以及Z轴的加速度序列通过公式11进行距离计算:
distτ=DTW(AX_detect,AX_step)+DTW(AY_detect,AY_step)+DTW(AZ_detect,AZ_step) (公式11)
其中:
将延迟τ从0.5秒递进至2.2秒,分别计算在不同延迟τ下的distτ,确定其distτ最小值的三轴加速度序列为最接近的三轴加速度序列,以及使得distτ取得最小值的τ定义为:τstance,并将τstance定义为当前步的步长,当前步的落脚点时刻为Tfirst_start+τbest+τstance。
本实施例利用行人行走过程中加速度信息具有自相关特性进行步态检测;当检测到智能手机处于运动状态时,首先利用MAWNA算法对行人首步的起脚时刻和落脚时刻进行搜索检测,确定首步的起脚时刻与落脚时刻,进而确定出首步的加速度波形;利用DTW算法按照首步的加速度波形(以首步加速度波形作为模板)对下一步的加速度波形进行搜索匹配,得到最优的(DTW距离最短)的加速度波形,从而判断出下一步的起脚时刻与落脚时刻,重复上述操作,对行人的步态持续进行检测和输出,直至检测到智能手机处于静止状态(停止运动)。
下面结合附图对本实施例进行更进一步详细的说明:方法整体流程如图1所示。
具体流程包括以下步骤:
步骤1:根据智能手机的MEMS加速度计所提供的三轴加速度信息,计算智能手机的合加速度;利用合加速度信息结合运动检测算法,确定智能手机当前是否处于运动状态,如果确定当前处于运动状态,执行步骤2,否则继续执行步骤1。运动检测的主要功能在于判断当前时刻智能手机处于静止状态还是运动状态,从而决定是否进行行人步态检测。对于行人步态检测而言,运动检测算法的核心要求为:由静止状态转换为运动状态要快速灵敏,在最短时间内给出智能手机处于运动状态的指令,从而确保不会遗漏任何运动信息;由运动状态转换为静止状态要稳健准确,必须在信息足够充分的情况下才能做出处于静止状态的指令,最大程度上防止出现误检测。为实现上述两点要求,本算法采用如下的检测方式来确保检测的准确性和实时性。定义智能手机MEMS加速度计所提供的三轴加速度信息依序为:
{AX(i)}i=1,2,...,{AY(i)}i=1,2,…,{AZ(i)}i=1,2,…,
合加速度信息为{A(i)}
i=1,2,…,
运动检测算法流程如图2所示。具体运算流程如下:
以下的介绍说明中,均假定智能手机MEMS加速度计的采样频率为20Hz。步态检测系统开机时,默认智能手机处于静止状态,此时进行运动检测,定义当前时刻为k,如果满足运动状态条件:abs(A(k)-g)≥0.5且abs(A(k-1)-g)≥0.5,则认为智能手机处于运动状态,其中:g为重力加速度,为9.8;abs(·)代表计算对应数据的绝对值。而当智能手机处于运动状态时,则进行静止检测,流程为:构建序列:
Atest_1={abs(A(k-30)-g),…,abs(A(k)-g)},
Atest_2={abs(A(k-10)-g),…,abs(A(k)-g)},
如果满足静止状态条件:mean(Atest_1)<0.5且Atest_2中的元素大于0.5的数量为0,则认为智能手机进入静止状态。
运动检测的实际检测结果如图3所示,可以看出,图3图中,中间方框线代表运动状态的检测结果,为0时,代表处于静止状态;为10时,代表处于运动状态。行人行走状态说明:从0s至9s的阶段,智能手机被放置在桌子上轻微晃动(为了验证算法是否对于这些微小晃动具有足够抗干扰能力);从9s开始至28s,手机被人拿起行走;从30s至最后,智能手机被平放在桌子上。
检测结果说明:由图3中可以看出,0s~9s和30s~最后,均认为处于静止状态,9s~28s可以被认为是处于运动状态;检测结果与行人运动情况基本一致。通过运动检测算法,可以确定出首步的起脚点时刻(开始运动时刻),将其定义为Tfirst_start。
步骤2:确认当前智能手机处于运动状态后,首先进行首步时长计算,确定出首步的起脚点和落脚点。首步时长的计算采用MAWNA算法。该算法由两部分构成,第一部分为归一化自相关算法(Normalization Auto-correlation,NA),第二部分为多维数据自适应权重算法(Multi-dimensional Adaptive Weighted,MAW)。NA算法的计算流程如下,对于给定的数组{a(i)}i=1,2,…,在时刻为t,延迟为τ的情况下,其归一化自相关值λa(t,τ)为:
其中,
μ(t,τ)代表序列{a(t),a(t+1),…,a(t+τ-1)}的均值,
μ(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ-1)}的均值;
σ(t,τ)代表序列{a(t),a(t+1),…,a(t+τ)}的标准差,
σ(t+τ,τ)代表序列{a(t+τ),a(t+τ+1),…,a(t+2τ)}的标准差。
归一化自相关算法可以准确计算序列{a(t),a(t+1),…,a(t+τ-1)}与序列{a(t+τ),a(t+τ+1),…,a(t+2τ-1)}之间的相似程度,λa(t,τ)越接近1,则代表二个序列之间的相似性越强。
在NA算法的基础上,进一步介绍MAW算法。给定多维数组{a(i)}i=1,2,…,{b(i)}i=1,2,…,{c(i)}i=1,2,…(此处以三维数组为例,该算法可适用于更高维度的数组),依据NA算法可依序得到λa(t,τ),λb(t,τ),λc(t,τ),进而可得到三维数组的整体归一化自相关值λ(t,τ)(MAWNA算法的最终输出)为:
λ(t,τ)=ρa(t,τ)λa(t,τ)+ρb(t,τ)λb(t,τ)+ρc(t,τ)λc(t,τ)
其中,ρa(t,τ),ρb(t,τ),ρc(t,τ)分别为对应的X、Y、Z轴的自适应权重,计算方式为:
其中:
χa(t,τ)代表序列{abs(a(t)),abs(a(t+1)),…,abs(a(t+2τ-1))}的均值;
χb(t,τ)代表序列{abs(b(t)),abs(b(t+1)),…,abs(b(t+2τ-1))}的均值;
χc(t,τ)代表序列{abs(c(t)),abs(c(t+1)),…,abs(c(t+2τ-1))}的均值;
abs(·)代表计算对应数据的绝对值。
将MAWNA算法应用于行人首步时长检测的算法流程如下:
将三轴加速度信息{AX(i)}i=1,2,…,{AY(i)}i=1,2,…,{AZ(i)}i=1,2,…提供给MAWNA算法,将算法的时刻t设置为Tfirst_start,将延迟τ从0.5s以采样速率递进至2.2s(考虑人的行走习惯,一般人的步频周期均在此范围内),分别计算在不同延迟下的λ(Tfirst_start,τ),确定其中的最大值以及使得λ(Tfirst_start,τ)取得最大值的τ(定义为:τbest)。则τbest对应为首步的步长,即认为首步的落脚点时刻为Tfirst_start+τbest。
此处再对MAWNA算法的核心思想进行简要概述:由于同一个人的行走方式(体现在行人的步频,动作幅度等;对于传感器而言,体现为加速度信息的变化)具有相似性,也就是说智能手机敏感到的三轴加速度波形具有自相关性,该自相关性的周期,也就是行人一步的时长。而利用MAWNA算法,可以求解出当延迟为τbest时,加速度序列:
{AX(Tfirst_start),…,AX(Tfirst_start+τbest-1)},{AY(Tfirst_start),…,AY(Tfirst_start+τbest-1)},
{AZ(Tfirst_start),…,AZ(Tfirst_start+τbest-1)},
分别与加速度序列:
{AX(Tfirst_start+τbest),…,AX(Tfirst_start+2τbest-1)},{AY(Tfirst_start+τbest),…,AY(Tfirst_start+2τbest-1)},{AZ(Tfirst_start+τbest),…,AZ(Tfirst_start+2τbest-1)},
之间具有最高的相似性,相关程度最强,则根据行人行走模式的自相关特性,可以认为首步的起脚点时刻为Tfirst_start,而落脚点时刻为Tfirst_start+τbest。首步检测算法流程如图4所示,λ(Tfirst_start,τ)随τ而变化的波形如图5所示。
步骤3:在确定出首步时长的基础上,以首步的落脚时刻点的下一时刻作为下一步的起脚时刻点,利用行人行走特征的自相关性质判断下一步的落脚点。以首步的落脚点的下一时刻Tfirst_start+τbest+1作为下一步的起脚点,利用行人行走的特征的自相关特性判断下一步的落脚点。算法原理可直观理解为:在确定了上一步的加速度序列后,将其作为比对模板,在接下来的加速度序列中找寻与其契合度最高的加速度序列,该序列便被认为是下一步的加速度序列。检测算法具体计算流程如下:
在确定首步起脚点时刻Tfirst_start与落脚点时刻Tfirst_start+τbest后,可以得到初始步的三轴加速度序列:
AX_step={AX(Tfirst_start),AX(Tfirst_start+1),…,AX(Tfirst_start+τbest-1)},
AY_step={AY(Tfirst_start),AY(Tfirst_start+1),…,AY(Tfirst_start+τbest-1)},
AZ_step={AZ(Tfirst_start),AZ(Tfirst_start+1),…,AZ(Tfirst_start+τbest-1)},
以及下一步的起脚点时刻Tfirst_start+τbest+1,利用上述信息,结合DTW算法,可以进一步检测下一时刻的落脚点时刻。构建如下序列:
AX_detect={AX(Tfirst_start+τbest),…,AX(Tfirst_start+τbest+τ-1)},
AY_detect={AY(Tfirst_start+τbest),…,AY(Tfirst_start+τbest+τ-1)},
AZ_detect={AZ(Tfirst_start+τbest),…,AZ(Tfirst_start+τbest+τ-1)},
同时计算序列距离distτ:
distτ=DTW(AX_detect,AX_step)+DTW(AY_detect,AY_step)+DTW(AZ_detect,AZ_step)
其中,DTW()代表计算对应两组序列的DTW距离,其中DTW算法为业界通用的算法,此处不再详细介绍。将延迟τ从0.5s采样速率递进至2.2s,分别计算在不同延迟τ下的distτ,确定其中的最小值以及使得distτ取得最小值的τ(定义为:τstance)。则τstance对应为当前步的步长,即认为当前步的落脚点时刻为Tfirst_start+τbest+τstance。检测算法流程如图6所示。
步骤4:重复步骤3中的步态检测方法,持续输出每一步的起脚点和落脚点,同时进行运动终止检测,当检测到智能手机处于静止状态时,结束本次行人步态检测。行人步态检测系统的步态检测实例结果如图7、图8所示。