一种基于神经网络辅助的行人室内定位方法

未命名 09-20 阅读:101 评论:0


1.本发明涉及行人室内定位技术领域,特别是一种基于神经网络辅助的行人室内定位方法。


背景技术:

2.行人导航系统可以在陌生环境中为行人提供导航定位信息。室外环境下的行人导航研究以卫星导航或者是卫星导航和惯性导航组合导航为主,近些年取得了较好的成果。而室内环境下导航研究,但是在高楼、森林等复杂环境中,卫星信号会严重衰退,无法满足导航需求。而惯性导航系统(inertial navigation+system,ins)具有隐蔽性高、抗干扰能力强等优势,因此行人惯性导航系统成为了主要研究方向。
3.然而惯性测量单元(inertial measurement unit,imu)存在误差,且导航误差会随时间迅速累积,导致ins长航时定位精度无法满足需求,手机低成本imu存在更大误差。研究人员采用了多种补偿方式解决此问题,常见的包括:主要基于室内uwb、zigbee、无线网络、wifi以及蓝牙等无线射频设备。但需要事先在室内布置诸如wifi路由器、信标基站等作为导航信息源,增加了成本,适用环境受局限无法满足特殊环境需求。行人航位推算pdr(pedestrian dead reckoning)是一种利用手机内嵌多种传感器采集的运动信息进行行人室内定位的技术。该技术通过利用行人初始的位置、行走的距离和方向信息,推算用户在任意时刻的位置信息,无需额外的设备支持。但由于人们行走的随意性、手握手机的方式多样性以及传感器测量的噪声,使得基于智能手机的定位技术存在误差累积、能量消耗等问题需要解决。


技术实现要素:

4.本发明的目的在于提供一种基于神经网络辅助的行人室内定位方法,从而有效地抑制惯性导航系统导航信息的累积误差,实现各种环境下人员的精确定位。
5.实现本发明目的的技术解决方案为:一种基于神经网络辅助的行人室内定位方法,行人持有智能手机,智能手机包括主导航模块,所述主导航模块包括陀螺仪、加速度计、磁强计和高度计,行人足部设置辅导航模块,辅导航模块包括imu单元,所述定位方法包括以下步骤:
6.步骤1、离线训练零速检测:将主导航模块的加速度计、陀螺仪信息作为输入数据,辅导航模块的imu单元是否为零速点作为标签数据,建立基于cnn的步伐点识别模型对辅导航模块的imu单元进行离线训练,识别行走的零速时刻,根据零速时刻确定行人手持手机时的步伐点;
7.步骤2、离线训练步长估计模型:步长估计模型包括tcn网络和降噪自动编码器,从智能手机中收集惯性传感器测量值作为训练数据,同时从安装在脚上的导航模块收集行人步行距离作为训练标签,对步长估计模型进行训练,并用于估计行人的步长;
8.步骤3、在线预测导航信息:使用智能手机的惯性传感器信息,结合训练后的步长
估计模型检测步伐点,通过扩展kalman滤波对行人导航信息进行误差修正,得到最终的行人导航信息。
9.本发明与现有技术相比,其显著优点为:(1)利用神经网络弥补惯性导航系统误差的积累,在这个过程中利用神经网络判断步伐点,并建立航向角、速度和位置误差模型和卡尔曼滤波方程,得到行人导航信息;(2)利用行人手机imu实现惯性定位,在不增加系统复杂性的基础上,通过神经网络提高步伐检测的准确性,提高行人导航系统稳定性;(3)根据imu信息训练行人步长模型,提高算法的定位精度,结合行人行走的步伐检测和距离预测,建立扩展kalman滤波方程,最终实现行人位置推算。
附图说明
10.图1为本发明的总体流程图。
11.图2为本发明的步伐检测的结构图。
12.图3为本发明的步长估计的结构图。
13.图4为本发明的本发明所述卡尔曼滤波误差修正图。
具体实施方式
14.本发明涉及一种基于神经网络辅助的步伐检测和步长算法。由于行人行走过程中的随意性运动对步数、步长估计影响,提出一种基于神经网络模型预测行人步伐检测和行走距离的方法。该算法利用行人手机imu实现惯性定位,在不增加系统复杂性的基础上,通过神经网络提高步伐检测的准确性,提高行人导航系统稳定性。并根据imu信息训练行人步长模型,提高算法的定位精度。结合行人行走的步伐检测和距离预测,,建立扩展kalman滤波方程,最终实现行人位置推算。
15.本发明一种基于神经网络辅助的行人室内定位方法,行人持有智能手机,智能手机包括主导航模块,所述主导航模块包括陀螺仪、加速度计、磁强计和高度计,行人足部设置辅导航模块,辅导航模块包括imu单元,所述定位方法包括以下步骤:
16.步骤1、离线训练零速检测:将主导航模块的加速度计、陀螺仪信息作为输入数据,辅导航模块的imu单元是否为零速点作为标签数据,建立基于cnn的步伐点识别模型对辅导航模块的imu单元进行离线训练,识别行走的零速时刻,根据零速时刻确定行人手持手机时的步伐点;
17.步骤2、离线训练步长估计模型:步长估计模型包括tcn网络和降噪自动编码器,从智能手机中收集惯性传感器测量值作为训练数据,同时从安装在脚上的导航模块收集行人步行距离作为训练标签,对步长估计模型进行训练,并用于估计行人的步长;
18.步骤3、在线预测导航信息:使用智能手机的惯性传感器信息,结合训练后的步长估计模型检测步伐点,通过扩展kalman滤波对行人导航信息进行误差修正,得到最终的行人导航信息。
19.作为一种具体示例,步骤1中,标签数据通过以下过程获得:
20.辅导航模块中imu单元的三轴加速度计,输出加速度信号分别在载体上3个正交轴上加速度的矢量化,如果加速度处于零速状态,则为人与地面应完全接触阶段,加速度矢量和为当地重力加速度;
21.根据设定的阈值,判定加速度矢量和是否在阈值内,数学模型表达式为:
[0022][0023][0024]
其中,|acc
(k)
|表示k时刻的加速度矢量和,a
x,k
、a
y,k
、a
z,k
分别为惯性元件测量的k时刻的加速度值在x、y、z这3个正交轴上的分量,acc_min和acc_max分别为设定阈值的最大值和最小值;c1为逻辑判断值,其中1代表检测为零速区间,0代表为运动状态;
[0025]
当处在零速状态时,脚底部全部与地面相接触,陀螺输出角速度信号和变化模值趋近于零;如果不在零速区间,角速度信号出现波动,通过辨识行走时的状态,判定角速度的阈值来检测零速区间,角速度模值公式为:
[0026][0027][0028]
其中,|w
(k)
|为角速度模值,w
x,k
、w
y,k
、w
z,k
分别为k时刻的角速度值在x、y、z这3个正交轴上的分量;c2(k)为角速度阈值检测的逻辑值,w
max
表示角速度模值阈值;由于角速度模值在零速区间为零,取角速度模值阈值为1;
[0029]
根据上述逻辑表达式,当同时满足两个条件时,认定为零速区间,表达为:
[0030]f(k)
=c1(k)&c2(k)
[0031]
将通过零速检测的零速区间作为标签数据。
[0032]
作为一种具体示例,步骤1中,步骤1中建立基于cnn的步伐点识别模型,具体过程如下:
[0033]
根据零速检测的原理分析,从imu单元的输出找到相关变量作为输入特征向量:
[0034]
n系下k时刻的速度是姿态转移矩阵陀螺仪的测量角速度值加速度计的增量输出δvk、陀螺仪的增量输出δθk这些变量的函数,其中δvk、δθk如下:
[0035][0036][0037]
其中,fb是加速度计的测量值,是陀螺仪的测量角速度值,速度的影响因子包括imu输出值和姿态转移矩阵;姿态转移矩阵由k时刻载体坐标系下的俯仰角、横滚角和航向角即当前时刻的三维姿态向量φk计算而得;
[0038]
假设f代表函数关系,由惯性导航系统计算出的速度表达式为:
[0039][0040]
其中,fb,φk这四个变量被选作输入特征向量;
[0041]
步伐点识别模型在训练过程中,先将过程变量数据编排成一个矩阵,该矩阵由釆样时间t内采集的12维过程变量组成,采样时间为1/125s;
[0042]
设步伐点识别模型的输入集合为x(t),输入特征向量包括t内矩阵中所有的数据;x(t)作为步伐点识别模型的输入来预测当前时刻是否为零速点。
[0043]
作为一种具体示例,步骤1中基于cnn的步伐点识别模型,包括输入层、卷积层、池化层、全连接层、输出层,计算过程如下:
[0044][0045]
其中,l表示第l个卷积层,i表示第i个卷积输出矩阵的某个值;j表示对应的输出矩阵的编号,从左往右依次表示为0到n,n为卷积输出矩阵的个数,表示样本在第l个卷积层第i个卷积输出矩阵里编号为j的矩阵的记忆信息,bj为偏置,表示上一时刻输入记忆信息的权重,表示当前输入值;
[0046]
f表示非线性函数,采用sigmoid函数,计算公式如下:
[0047][0048]
池化层采用局部求均值的方式进行降维,计算公式如下:
[0049][0050]
表示进行池化过程后局部的一个输出项,由上一层大小为n*n的局部小矩阵进行求均值所得;
[0051]
全连接层:将网络学习到的特征映射到样本的标记空间中,全连接层会把卷积输出的二维特征向量转化成一维的特征向量。
[0052]
作为一种具体示例,步骤1中,零速时刻的识别过程包括采用基于cnn的步伐点识别模型,对辅导航模块中imu单元的三轴数据进行并行处理,具体如下:
[0053]

通过输入层输入三轴加速度计和陀螺仪采集到的原始数据;
[0054]

通过卷积层进行数据处理:使用128个卷积滤波器进行并行学习,创建数据特征表示,其中每个滤波器的大小为1
×
12,卷积的步长为1,随机失活率为0.15;
[0055]

将sigmoid函数应用于生成的100个特征表示,使用1
×
4大小的最大池化层进行4倍降维;
[0056]

特征向量随后被传递到全连接层,进行特征标记分类;
[0057]

通过输出层输出是否为零速时刻。
[0058]
作为一种具体示例,步骤2中的降噪自动编码器,具体如下:
[0059]
降噪自动编码器包括两个部分:编码网络和解码网络;在隐含层神经元数量小于输入层和输出层时,编码网络把输入样本映射至低维特征空间,得到数据的特征表达;解码网络则是将这种特征表达重新映射回原始的特征空间,并最小化输入和输出的均方根误差,实现数据重构;
[0060]
输入记为x={x1,x2,x3,
···
,xn},n表示输入的样本数量,则编码过程为:
[0061]an
=f
θ
(xn)=s(w
(1)
xn+b
(1)
)
[0062]
其中,θ={w
(1)
,b
(1)
}表示编码网络的权重与偏置,an表示隐含层所得到的特征映
射,s()表示激活函数,解码过程得到的结果是输入xn的重构形式如下:
[0063][0064]
其中,θ

={w
(2)
,b
(2)
}表示解码网络的权重与偏置;
[0065]
训练过程则是通过重构输入数据,降低重构误差,计算重构误差的代价函数j如下:
[0066][0067]
当通过训练使得重构误差趋近于0时,即小于10-4
,若只看编码网络,则隐含层得到的输出为原始特征的低维表示,这一过程即为降噪过程。
[0068]
作为一种具体示例,步骤2中,tcn网络,具体如下:
[0069]
tcn网络包括扩张因果卷积模块,利用因果卷积限制滑动窗口来实现时间束缚,通过膨胀卷积扩大卷积的感受野学习到更大范围的信息,并通过增加残差链接防止网络层过高导致梯度消失来获取时间序列的信息特征;
[0070]
因果卷积:因果卷积使得tcn具备因果性质,当前时刻的信息只能依靠当前时刻之前的信息进行预测,即只能通过当前的时刻输入x
t
和之前的输入x1,x2,
···
,x
t-1
进行计算,在这之后信息不能用于预测,从左至右进行计算提取特征:
[0071][0072]
其中,p(x)表示卷积函数,t为时间序列的总时间,t为当前时间序列的时间;
[0073]
膨胀卷积:每隔设定的空洞数对文本序列进行采样计算,相当于在卷积核内部插入了d个0,d为空洞数,添加膨胀卷积以后的卷积核大小f
k_d
为:
[0074]fk_d
=(d-1)*(f
k-1)+fk[0075]
其中,fk为当前层的卷积核大小;
[0076]
残差链接:添加残差链接结构形成短路链接,通过对输入x和经过非线性变换以后的f(x)求和,使得时序卷积网络避免由网络层数增加引起的梯度消失:
[0077]
r=x+f(x)
[0078]
其中,r为残差链接的输出结果;
[0079]
在每一次进行扩张因果卷积计算conv()之后将参数层级归一化hi-norm(),然后采用relu激活函数进行非线性计算,将得到的结果与输入进行求和,实现残差链接,计算过程如下:
[0080]
ti=conv(wi*fj+bi)
[0081]
{t0,t1,
···
,tn}=hi-norm({t0,t1,
···
,tn})
[0082]
{t0,t1,
···
,tn}=relu({t0,t1,
···
,tn})
[0083]
其中,ti是i时刻卷积计算得到的状态值;wi为i时刻卷积计算的词的矩阵;fj为第j层的卷积核;bi为偏置矩阵;{t0,t1,
···
,tn}是序列经过一次完整的卷积计算后的编码;
[0084]
tcn网络通过堆叠多个扩张因果卷积层,扩大卷积的感受野,获取更完整的时间序列特征,从而提取到更深层次的信息特征。
[0085]
作为一种具体示例,步骤2中,对步长估计模型进行训练,并用于估计行人的步长,
具体如下:
[0086]
实际步长用于训练步长估计模型的回归层,该层学习每个步长期间去噪的特征向量与相应的实际步长之间的非线性关系;
[0087]
回归层的全局目标是使实际步长和估计值之间的误差损失函数j(d,g)最小化:
[0088][0089]
其中,yi是对应于输入d(
·
)的实际步幅长度,是来自回归层的步长估计,g(
·
)是最终步长模型中的预测值;
[0090]
通过rms(root mean square,均方根值)传播来实现误差损失函数j(d,g)最小化;训练完成,步长估计模型用于预测行人的步长sk:
[0091][0092][0093]
上式为pdr(pedestrian dead reckoning,行人航位推算)算法的递推公式,e和n分别为东向和北向位置的坐标,k为当前时刻,k-1为上一时刻,sk、θk分别为t
k-1
到tk时刻行人从上前东向和北向位置(e
k-1
,n
k-1
)到位置(ek,nk)的行走距离和方位角;ek为当前时刻的东向位置,nk为当前时刻的北向位置,e0为初始东向位置,n0为初始北向位置,si为i时刻行走距离,θi为i时刻方位角;
[0094]
pdr算法的东向和北向位置信息结合手机气压高度计得到的高度h,得到东北天坐标系下的位置信息
[0095][0096]
作为一种具体示例,步骤3中,通过扩展kalman滤波对行人导航信息进行误差修正,具体如下:
[0097]
系统在k时刻的15维误差状态量构成了卡尔曼滤波器的误差状态量δxk,如下式所示:
[0098][0099]
其中,为横滚角、俯仰角和航向角的三个姿态误差,δvk=[δv
kx δv
ky δv
kz
]
t
为东向、北向和天向的速度误差,为经度、纬度和高度位置误差,为陀螺仪误差在x、y、z三轴的分量,为加速度计误差在x、y、z三轴的分量;
[0100]
系统误差模型的离散线性化表示如下:
[0101][0102]
其中,δzk是量测向量,hk是量测矩阵,wk是过程噪声,vk是量测噪声,φ
k,k-1
是状态
转移矩阵;δx
k,k-1
为状态预测,δx
k-1,k-1
为量测预测误差;
[0103]
状态转移矩阵φ
k,k-1
的表达式如下式:
[0104][0105]
其中,δt是采样期间隔,是斜对称交叉积算子矩阵,是方向余弦矩阵,i3×3是3
×
3的单位矩阵;
[0106]
当行人的状态被确定为站立时速度被认为是零,对于零速度的速度观测方程如下式:
[0107][0108]
其中,为惯导解算在载体系下速度向量,δzv是量测速度误差向量;
[0109]
当用户有规律地向前行走时,身体坐标系中的横向和垂直速度为零,步行速度通过步长来估计,虚拟速度测量表示如下:
[0110][0111][0112]
其中,是手机在载体系下的虚拟速度,δt为每步的时间间隔,s为步长,δzv为速度量测误差,为基于惯导的东北天坐标系下速度,为旋转矩阵;
[0113]
结合pdr算法输出的位置信息和磁强计得到的姿态信息,建立完整的量测误差方程:
[0114][0115][0116][0117]
其中,δz
p
是量测位置误差向量,是量测姿态误差向量,δzk是导航信息量测误差向量,是磁强计测出的航向角,是惯导解算出的姿态,是惯导解算出的位置,是pdr计算出的位置;
[0118]
当观测值有效时,使用以下方法更新状态变量和相应的协方差:
[0119][0120][0121][0122]
其中,kk是待定的修正系数矩阵,是估计误差,是状态预测误差,δzk是量测误差,hk是量测矩阵,是状态预测值,pk是状态估计均方误差阵,p
k,k-1
是状态一步预
测均方误差阵,rk是量测噪声协方差阵。
[0123]
下面结合附图及具体实施例对本发明做进一步详细说明。
[0124]
实施例
[0125]
结合图1~图4,本发明基于神经网络辅助的行人室内定位方法,分为离线训练和在线预测阶段,离线训练阶段首先对步伐点进行检测训练,再对步长估计模型进行训练;在线预测阶段由各种传感器得到传感器量测信息,检测步伐点,通过传感器的量测信息得到卡尔曼滤波方程的航向角,速度和位置误差,对行人导航信息进行误差修正,得到最终的导航信息。
[0126]
本发明基于神经网络辅助的行人导航方法,行人手机包含导航模块,所述导航模块由陀螺仪,加速度计,磁强计和高度计组成,并且离线训练阶段包含足部惯导辅助确定训练标签,包括步骤如下:
[0127]
步骤1、将imu固定在人体足跟部,采集运动过程中的加速度和角速度信息,同时减少人体行走状态对imu的影响。通过离线训练安装于人体足部的惯性传感器,根据人体步态相位的分析,结合每个离散时刻足底加速度值、角速度值以及噪声特性设定静止区间的上、下阈值,将阈值内的零速点作为标签数据,手机imu的加速度值和角速度值作为输入数据,通过cnn网络训练识别行走的零速时刻,根据零速时刻确定行人手持手机时的步伐点;
[0128]
步骤2、为了提高步长估计的准确性,提出一种基于tcn的步长估计方法,用于解决复杂环境下的距离估计引起的pdr算法误差。在离线阶段训练模型,手机惯性传感器提供的加速度计和陀螺仪数据作为训练数据,利用足部惯导zupt算法得到的步长数据作为步长标签;在线预测阶段,用手机imu采集的传感器数据和前期训练好的模型预测一个步态周期的步长,通过航位推算得到位置信息;
[0129]
步骤3、当在行走过程中识别到步伐点,在该状态下更新航向角误差,速度误差和位置误差的观测量,航向角误差采用磁力计测量得到的三轴磁分量,通过坐标变换,得到行人的磁航向信息;速度误差即为步伐点的速度信息,根据步长可以计算得到;位置误差为由步长和航向通过pdr算法解算出位置信息。结合状态方程,建立卡尔曼滤波方程对行人导航系统进行误差修正,最后完成行人导航信息的输出。
[0130]
下面对本发明的整个过程进行详细说明:
[0131]
步骤1:离线训练零速检测,惯性传感器的加速度计和陀螺仪信息作为输入数据,足部惯导是否为零速点作为标签数据,建立cnn模型进行训练。
[0132]
(1.1)标签数据获得
[0133]
加速度矢量和阈值检测,通过惯性传感器三轴加速度计输出加速度信号分别在载体上的3个正交轴上加速度的矢量化,如果加速度处于零速状态时,人与地面应完全接触阶段,理论上加速度矢量和为当地重力加速度。根据设定的阈值,判定加速度矢量和是否在阈值内。其数学模型表达式为:
[0134][0135][0136]
其中,|acc
(k)
|表示k时刻的加速度矢量和,a
x,k
、a
y,k
、a
z,k
分别为惯性元件测量的k
时刻的加速度值,acc_min和acc_max分别为设定阈值的最大值和最小值,c1为逻辑判断值,其中“1”代表检测为零速区间,“0”代表为运动状态。
[0137]
角速度阈值检测,当处在零速区间时,脚底部全部与地面相接触,认为陀螺输出角速度信号和它的变化模值应该趋近于零。如果不在零速区间,角速度信号会出现较强的波动,通过辨识行走时的状态,就判定角速度的阈值来检测零速区间。根据角速度模值公式为:
[0138][0139][0140]
其中,|w
(k)
|为角速度模值,c2(k)为角速度阈值检测的逻辑值,w
max
表示角速度模值阈值。由于角速度模值在零速区间为零,那取角速度模值阈值为1。
[0141]
根据上述逻辑表达式,当同时满足两个条件时,可认定为零速区间,其表达为:
[0142]f(k)
=c1(k)&c2(k)
[0143]
根据以上提出的零速检测方式,按照零速检测算法进行处理,将通过上述零速检测零速区间作为标签数据。
[0144]
(1.2)步伐点识别模型建立
[0145]
根据零速检测的原理分析,可以从imu输出找到相关变量作为输入特征向量:
[0146]
n系下k时刻的速度是δv、δθ等变量的函数,其中δv、δθ是加速度计和陀螺仪的增量输出。
[0147][0148][0149]
其中fb是加速度计的测量值,是陀螺仪的测量角速度值。速度的主要影响因子是imu输出值和姿态转移矩阵。姿态转移矩阵可由k时刻载体坐标系下的俯仰角,横滚角和航向角计算而得,即当前时刻的三维姿态向量φk。
[0150]
因此,假设f代表函数关系,由惯性导航系统计算出的速度表达式可表现为:
[0151][0152]
这四个变量也被选作网络的输入特征向量。
[0153]
网络模型在训练过程中,先将过程变量数据编排成一个矩阵模式,该矩阵是由一定釆样时间t内采集的12维过程变量组成。采样时间为1/125s。设模型的输入集合为x(t),输入特征向量包括t内所有的imu和ins数据。x(t)作为网络模型的输入来预测当前时刻是否为零速点。为了保证输入数据的效能,对数据进行了归一化处理。
[0154]
本发明所采用的cnn模型,包括五层结构:输入层、卷积层、池化层、全连接层、输出层。计算过程如下:
[0155]
[0156]
其中的l表示第l个卷积层,i表示第i个卷积输出矩阵的某个值,j表示对应的输出矩阵的编号,从左往右依次表示为0到n,n为卷积输出矩阵的个数。f表示非线性函数,本文采用了影响函数核小的sigmoid函数。sigmoid函数计算公式如下:
[0157][0158]
池化层采用局部求均值的方式进行降维。计算公式如下:
[0159][0160]
式中,表示进行池化过程后局部的一个输出项,它是由上一层大小为n*n的局部小矩阵进行求均值所得到的。
[0161]
全连接层:将网络学习到的特征映射到样本的标记空间中,全连接层会把卷积输出的二维特征向量转化成一维的特征向量。
[0162]
本发明基于以上步骤构建了cnn模型结构,对三轴数据进行并行处理。首先通过输入层输入三轴加速度计和陀螺仪采集到的原始数据,然后通过卷积层进行数据处理:使用128个卷积滤波器进行并行学习,创建丰富的数据特征表示,其中每个滤波器的大小为1
×
12,卷积的步长为1。随机失活率为0.15。将sigmoid函数应用于生成的100个特征表示,使用1
×
4大小的最大池化层进行4倍降维。特征向量随后被传递到全连接层,进行特征标记分类,最后通过输出层输出是否为零速时刻,cnn训练流程如图3所示。
[0163]
步骤2:使用智能手机的低成本惯性传感器自动估计行人的步长。模型由tcn网络和降噪自动编码器组成。从智能手机中收集惯性传感器测量值作为训练数据,同时从安装在脚上的惯性导航系统模块中收集行人步行距离作为训练标签。
[0164]
本发明使用一种基于autoencoder-tcn的步长估计方法,结合autoencoder及tcn各自的优势。一方面,使用自动编码器对输入的数据进行降噪;另一方面,利用tcn网络挖掘长序列信息中不同时间步之间的信息,获取特征与步长的内在联系。
[0165]
(2.1)降噪自动编码器
[0166]
由于当前智能手机内置的传感器质量较差,加速度计和陀螺仪的原始传感器读数不可避免地包含噪声,需要去噪自动编码器降低噪声的影响。自动编码器可以分为两个部分:编码网络和解码网络。在隐含层神经元数量小于输入层和输出层时,编码网络会把输入样本映射至低维特征空间,得到数据的特征表达。解码网络则是将这种特征表达重新映射回原始的特征空间,并最小化输入和输出的均方根误差,实现数据重构。输入记为x={x1,x2,x3,
···
,xn},n表示输入的样本数量,则编码过程为:
[0167]an
=f
θ
(xn)=s(w
(1)
xn+b
(1)
)
[0168]
θ={w
(1)
,b
(1)
}表示编码网络的权重与偏置,an表示隐含层所得到的特征映射,s()表示激活函数。解码过程得到的结果是输入xn的重构形式如下:
[0169][0170]
θ

={w
(2)
,b
(2)
}表示解码网络的权重与偏置。训练过程则是通过重构输入数据,降低重构误差。计算重构误差的代价函数如下所示:
[0171][0172]
当通过训练使得重构误差非常小时,若只看编码网络,则隐含层得到的输出则为原始特征的低维表示,这一过程即为降噪过程,得到更低维度却不丢失信息的特征,提高泛化能力。
[0173]
(2.2)tcn网络
[0174]
tcn网络层利用因果卷积限制滑动窗口来实现严格的时间束缚,利用扩大扩张卷积结构感受野学习到更大范围的信息,并通过增加残差链接防止网络层过高导致梯度消失来获取时间序列的信息特征。
[0175]
因果卷积:因果卷积使得tcn具备很强的因果性质,当前时刻的信息只能依靠当前时刻之前的信息进行预测,即只能通过当前的时刻输入x
t
和之前的输入x1,x2,
···
,x
t-1
进行计算,在这之后信息不能用于预测,从左至右进行计算提取特征。
[0176][0177]
膨胀卷积:由于因果卷积对特征的提取被限定于卷积核的大小范围之内,添加扩张卷积可以弥补这一缺陷。每隔一定的空洞数对文本序列进行采样计算,相当于在卷积核内部插入了d个0(d为空洞数),添加扩张卷积以后的卷积核大小为:
[0178]fk_d
=(d-1)*(f
k-1)+fk[0179]
其中,fk为当前层的卷积核大小。
[0180]
残差链接:扩张卷积的添加需要增加网络层数、扩大网络层的感受野,而网络层数过深时,很容易出现梯度消失的现象。添加残差链接结构可以形成短路链接,通过对输入x和经过非线性变换以后的f(x)求和,使得时序卷积网络避免了由网络层数增加引起的梯度消失。
[0181]
r=x+f(x)
[0182]
本发明所采取的扩张因果卷积模块就是在每一次进行扩张因果卷积计算conv()之后将参数层级归一化hi-norm(),然后采用relu激活函数进行非线性计算,将得到的结果与输入进行求和,实现残差链接。计算过程如下:
[0183]
ti=conv(wi*fj+bi)
[0184]
{t0,t1,
···
,tn}=hi-norm({t0,t1,
···
,tn})
[0185]
{t0,t1,
···
,tn}=relu({t0,t1,
···
,tn})
[0186]
其中,ti是i时刻卷积计算得到的状态值;wi为i时刻卷积计算的词的矩阵;fj为第j层的卷积核;bi为偏置矩阵;{t0,t1,
···
,tn}是序列经过一次完整的卷积计算后的编码。
[0187]
tcn网络层通过堆叠多个扩张因果卷积层,扩大卷积的感受野,获取到更完整的时间序列特征,从而能提取到更深层次的信息特征。
[0188]
步幅长度估计的回归如图3的所示。一旦建立了dae,实际步幅长度就用于训练监督回归层,该层学习每个步幅期间去噪的特征向量与相应的实际步幅之间的非线性关系。回归层的全局目标是使实际步长和估计值之间的误差损失函数j(d,g)最小化。
[0189][0190]
其中yi是对应于输入d(
·
)的实际步幅长度,是来自回归层的步长估计,以及g(
·
)是最终回归模型中的回归模块。通过在神经网络的训练中经常使用的rms传播来实现最小化。
[0191]
(2.3)步长估计
[0192]
上述算法描述了所提出的步长估计方法的完整过程。该算法以一组具有相应实际步长的训练样本作为输入来训练网络。加速度计读数和陀螺仪读数按步进事件划分为多个部分。固定长度的步幅数据被送入dae-tcn网络,实际步长用于训练网络的回归层。一旦训练完成,dae-tcn模型将用于预测行人的步长sk。
[0193][0194][0195]
pdr算法的递推公式,e和n分别为东向和北向位置的坐标,sk、θk分别为t
k-1
到tk时刻行人从位置(e
k-1
,n
k-1
)到位置(ek,nk)的行走距离和方位角。
[0196]
pdr算法的东向和北向位置信息结合手机气压高度计得到的高度h,得到东北天坐标系下的位置信息:
[0197][0198]
步骤3:使用智能手机提供的低成本传感器信息结合神经网络的预测结果通过扩展kalman滤波对行人导航系统进行误差修正,最后完成行人导航信息的输出。
[0199]
ins机械编排算法的位置误差随时间呈二次增长,导航性能在很大程度上取决于传感器的精度。对于智能手机内置惯性传感器,惯性导航系统机械化方法的估计位置将在几秒钟内产生超过10米的误差,远远超过可接受范围。然而,行人运动特征可以用于构建虚拟观测,从而减缓位置误差的累积速度。使用扩展卡尔曼滤波器来融合来自行人运动和惯性导航的约束信息。
[0200]
系统在k时刻的15维误差状态量构成了卡尔曼滤波器的误差状态量δxk,如下式所示:
[0201][0202]
其中,为横滚角、俯仰角和航向角的三个姿态误差,δvk=[δv
kx δv
ky δv
kz
]
t
为东向、北向和天向的速度误差,δpk=[δp
kx δp
ky δp
kz
]
t
为经度、纬度和高度位置误差,为陀螺仪误差在x、y、z三轴的分量,为加速度计误差在x、y、z三轴的分量;
[0203]
系统误差模型的离散线性化可以表示如下:
[0204]
[0205]
其中,δzk是量测向量,hk是量测矩阵,wk是过程噪声,vk是量测噪声,φ
k,k-1
是状态转移矩阵。
[0206]
状态转移矩阵φ
k,k-1
的表达式如下式:
[0207][0208]
其中,δt是采样期间隔,是斜对称交叉积算子矩阵,是方向余弦矩阵。
[0209]
当行人的状态被确定为站立时,速度可以被合理地认为是零。对于零速度,速度观测方程由下式给出:
[0210][0211]
其中,为惯导解算在载体系下速度向量,δzv是量测速度误差向量。
[0212]
当用户有规律地向前行走时,身体坐标系中的横向和垂直速度应为零,因为行人通常在平面上行走,很少侧向或向后行走。步行速度可以通过步长来估计。因此,虚拟速度测量表示如下:
[0213][0214][0215]
其中,是手机在载体系下的虚拟速度,δt为每步的时间间隔。
[0216]
再结合pdr输出的位置信息和磁强计得到的姿态信息,建立完整的量测误差方程:
[0217][0218][0219][0220]
其中,δz
p
是量测位置误差向量,是量测姿态误差向量,是磁强计测出的航向角,是惯导解算出的姿态,是惯导解算出的位置。
[0221]
当观测值有效时,使用以下方法更新状态变量和相应的协方差:
[0222][0223][0224][0225]
在预测阶段,通过神经网络识别出步伐点,结合惯导解算,神经网络模型估计的步长和磁航向,根据惯性导航系统误差,并给出了姿态、速度和位置误差在步伐区间的方程,建立扩展卡尔曼滤波方程对行人导航系统进行误差修正,最后完成行人导航信息的输出,有效地抑制了惯性导航系统导航信息的累积误差,实现室内环境下的精确定位。

技术特征:
1.一种基于神经网络辅助的行人室内定位方法,其特征在于,行人持有智能手机,智能手机包括主导航模块,所述主导航模块包括陀螺仪、加速度计、磁强计和高度计,行人足部设置辅导航模块,辅导航模块包括imu单元,所述定位方法包括以下步骤:步骤1、离线训练零速检测:将主导航模块的加速度计、陀螺仪信息作为输入数据,辅导航模块的imu单元是否为零速点作为标签数据,建立基于cnn的步伐点识别模型对辅导航模块的imu单元进行离线训练,识别行走的零速时刻,根据零速时刻确定行人手持手机时的步伐点;步骤2、离线训练步长估计模型:步长估计模型包括tcn网络和降噪自动编码器,从智能手机中收集惯性传感器测量值作为训练数据,同时从安装在脚上的导航模块收集行人步行距离作为训练标签,对步长估计模型进行训练,并用于估计行人的步长;步骤3、在线预测导航信息:使用智能手机的惯性传感器信息,结合训练后的步长估计模型检测步伐点,通过扩展kalman滤波对行人导航信息进行误差修正,得到最终的行人导航信息。2.根据权利要求1所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤1中,标签数据通过以下过程获得:辅导航模块中imu单元的三轴加速度计,输出加速度信号分别在载体上3个正交轴上加速度的矢量化,如果加速度处于零速状态,则为人与地面应完全接触阶段,加速度矢量和为当地重力加速度;根据设定的阈值,判定加速度矢量和是否在阈值内,数学模型表达式为:根据设定的阈值,判定加速度矢量和是否在阈值内,数学模型表达式为:其中,|acc
(k)
|表示k时刻的加速度矢量和,a
x,k
、a
y,k
、a
z,k
分别为惯性元件测量的k时刻的加速度值在x、y、z这3个正交轴上的分量,acc_min和acc_max分别为设定阈值的最大值和最小值;c1为逻辑判断值,其中1代表检测为零速区间,0代表为运动状态;当处在零速状态时,脚底部全部与地面相接触,陀螺输出角速度信号和变化模值趋近于零;如果不在零速区间,角速度信号出现波动,通过辨识行走时的状态,判定角速度的阈值来检测零速区间,角速度模值公式为:值来检测零速区间,角速度模值公式为:其中,|w
(k)
|为角速度模值,w
x,k
、w
y,k
、w
z,k
分别为k时刻的角速度值在x、y、z这3个正交轴上的分量;c2(k)为角速度阈值检测的逻辑值,w
max
表示角速度模值阈值;由于角速度模值在零速区间为零,取角速度模值阈值为1;根据上述逻辑表达式,当同时满足两个条件时,认定为零速区间,表达为:f
(k)
=c1(k)&c2(k)将通过零速检测的零速区间作为标签数据。
3.根据权利要求2所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤1中,步骤1中建立基于cnn的步伐点识别模型,具体过程如下:根据零速检测的原理分析,从imu单元的输出找到相关变量作为输入特征向量:n系下k时刻的速度是姿态转移矩阵陀螺仪的测量角速度值加速度计的增量输出δv
k
、陀螺仪的增量输出δθ
k
这些变量的函数,其中δv
k
、δθ
k
如下:如下:其中,f
b
是加速度计的测量值,是陀螺仪的测量角速度值,速度的影响因子包括imu输出值和姿态转移矩阵;姿态转移矩阵由k时刻载体坐标系下的俯仰角、横滚角和航向角即当前时刻的三维姿态向量φ
k
计算而得;假设f代表函数关系,由惯性导航系统计算出的速度表达式为:其中,f
b

k
这四个变量被选作输入特征向量;步伐点识别模型在训练过程中,先将过程变量数据编排成一个矩阵,该矩阵由釆样时间t内采集的12维过程变量组成,采样时间为1/125s;设步伐点识别模型的输入集合为x(t),输入特征向量包括t内矩阵中所有的数据;x(t)作为步伐点识别模型的输入来预测当前时刻是否为零速点。4.根据权利要求3所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤1中基于cnn的步伐点识别模型,包括输入层、卷积层、池化层、全连接层、输出层,计算过程如下:其中,l表示第l个卷积层,i表示第i个卷积输出矩阵的某个值;j表示对应的输出矩阵的编号,从左往右依次表示为0到n,n为卷积输出矩阵的个数,表示样本在第l个卷积层第i个卷积输出矩阵里编号为j的矩阵的记忆信息,b
j
为偏置,表示上一时刻输入记忆信息的权重,表示当前输入值;f表示非线性函数,采用sigmoid函数,计算公式如下:池化层采用局部求均值的方式进行降维,计算公式如下:池化层采用局部求均值的方式进行降维,计算公式如下:表示进行池化过程后局部的一个输出项,由上一层大小为n*n的局部小矩阵进行求均值所得;
全连接层:将网络学习到的特征映射到样本的标记空间中,全连接层会把卷积输出的二维特征向量转化成一维的特征向量。5.根据权利要求4所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤1中,零速时刻的识别过程包括采用基于cnn的步伐点识别模型,对辅导航模块中imu单元的三轴数据进行并行处理,具体如下:

通过输入层输入三轴加速度计和陀螺仪采集到的原始数据;

通过卷积层进行数据处理:使用128个卷积滤波器进行并行学习,创建数据特征表示,其中每个滤波器的大小为1
×
12,卷积的步长为1,随机失活率为0.15;

将sigmoid函数应用于生成的100个特征表示,使用1
×
4大小的最大池化层进行4倍降维;

特征向量随后被传递到全连接层,进行特征标记分类;

通过输出层输出是否为零速时刻。6.根据权利要求5所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤2中的降噪自动编码器,具体如下:降噪自动编码器包括两个部分:编码网络和解码网络;在隐含层神经元数量小于输入层和输出层时,编码网络把输入样本映射至低维特征空间,得到数据的特征表达;解码网络则是将这种特征表达重新映射回原始的特征空间,并最小化输入和输出的均方根误差,实现数据重构;输入记为x={x1,x2,x3,
···
,x
n
},n表示输入的样本数量,则编码过程为:a
n
=f
θ
(x
n
)=s(w
(1)
x
n
+b
(1)
)其中,θ={w
(1)
,b
(1)
}表示编码网络的权重与偏置,a
n
表示隐含层所得到的特征映射,s()表示激活函数,解码过程得到的结果是输入x
n
的重构形式如下:其中,θ

={w
(2)
,b
(2)
}表示解码网络的权重与偏置;训练过程则是通过重构输入数据,降低重构误差,计算重构误差的代价函数j如下:当通过训练使得重构误差趋近于0时,即小于10-4
,若只看编码网络,则隐含层得到的输出为原始特征的低维表示,这一过程即为降噪过程。7.根据权利要求6所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤2中,tcn网络,具体如下:tcn网络包括扩张因果卷积模块,利用因果卷积限制滑动窗口来实现时间束缚,通过膨胀卷积扩大卷积的感受野学习到更大范围的信息,并通过增加残差链接防止网络层过高导致梯度消失来获取时间序列的信息特征;因果卷积:因果卷积使得tcn具备因果性质,当前时刻的信息只能依靠当前时刻之前的信息进行预测,即只能通过当前的时刻输入x
t
和之前的输入x1,x2,
···
,x
t-1
进行计算,在这之后信息不能用于预测,从左至右进行计算提取特征:
其中,p(x)表示卷积函数,t为时间序列的总时间,t为当前时间序列的时间;膨胀卷积:每隔设定的空洞数对文本序列进行采样计算,相当于在卷积核内部插入了d个0,d为空洞数,添加膨胀卷积以后的卷积核大小f
k_d
为:f
k_d
=(d-1)*(f
k-1)+f
k
其中,f
k
为当前层的卷积核大小;残差链接:添加残差链接结构形成短路链接,通过对输入x和经过非线性变换以后的f(x)求和,使得时序卷积网络避免由网络层数增加引起的梯度消失:r=x+f(x)其中,r为残差链接的输出结果;在每一次进行扩张因果卷积计算conv()之后将参数层级归一化hi-norm(),然后采用relu激活函数进行非线性计算,将得到的结果与输入进行求和,实现残差链接,计算过程如下:t
i
=conv(w
i
*f
j
+b
i
){t0,t1,
···
,t
n
}=hi-norm({t0,t1,
···
,t
n
}){t0,t1,
···
,t
n
}=relu({t0,t1,
···
,t
n
})其中,t
i
是i时刻卷积计算得到的状态值;w
i
为i时刻卷积计算的词的矩阵;f
j
为第j层的卷积核;b
i
为偏置矩阵;{t0,t1,
···
,t
n
}是序列经过一次完整的卷积计算后的编码;tcn网络通过堆叠多个扩张因果卷积层,扩大卷积的感受野,获取更完整的时间序列特征,从而提取到更深层次的信息特征。8.根据权利要求7所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤2中,对步长估计模型进行训练,并用于估计行人的步长,具体如下:实际步长用于训练步长估计模型的回归层,该层学习每个步长期间去噪的特征向量与相应的实际步长之间的非线性关系;回归层的全局目标是使实际步长和估计值之间的误差损失函数j(d,g)最小化:其中,y
i
是对应于输入d(
·
)的实际步幅长度,是来自回归层的步长估计,g(
·
)是最终步长模型中的预测值;通过rms传播来实现误差损失函数j(d,g)最小化;训练完成,步长估计模型用于预测行人的步长s
k
::上式为pdr算法的递推公式,e和n分别为东向和北向位置的坐标,k为当前时刻,k-1为上一时刻,s
k
、θ
k
分别为t
k-1
到t
k
时刻行人从上前东向和北向位置(e
k-1
,n
k-1
)到位置(e
k
,n
k
)的
行走距离和方位角;e
k
为当前时刻的东向位置,n
k
为当前时刻的北向位置,e0为初始东向位置,n0为初始北向位置,s
i
为i时刻行走距离,θ
i
为i时刻方位角;pdr算法的东向和北向位置信息结合手机气压高度计得到的高度h,得到东北天坐标系下的位置信息下的位置信息9.根据权利要求8所述的基于神经网络辅助的行人室内定位方法,其特征在于,步骤3中,通过扩展kalman滤波对行人导航信息进行误差修正,具体如下:系统在k时刻的15维误差状态量构成了卡尔曼滤波器的误差状态量δx
k
,如下式所示:其中,为横滚角、俯仰角和航向角的三个姿态误差,δv
k
=[δv
kx δv
ky δv
kz
]
t
为东向、北向和天向的速度误差,δp
k
=[δp
kx δp
ky δp
kz
]
t
为经度、纬度和高度位置误差,为陀螺仪误差在x、y、z三轴的分量,为加速度计误差在x、y、z三轴的分量;系统误差模型的离散线性化表示如下:其中,δz
k
是量测向量,h
k
是量测矩阵,w
k
是过程噪声,v
k
是量测噪声,φ
k,k-1
是状态转移矩阵;δx
k,k-1
为状态预测,δx
k-1,k-1
为量测预测误差;状态转移矩阵φ
k,k-1
的表达式如下式:其中,δt是采样期间隔,是斜对称交叉积算子矩阵,是方向余弦矩阵,i3×3是3
×
3的单位矩阵;当行人的状态被确定为站立时速度被认为是零,对于零速度的速度观测方程如下式:其中,为惯导解算在载体系下速度向量,δz
v
是量测速度误差向量;当用户有规律地向前行走时,身体坐标系中的横向和垂直速度为零,步行速度通过步长来估计,虚拟速度测量表示如下:长来估计,虚拟速度测量表示如下:其中,是手机在载体系下的虚拟速度,δt为每步的时间间隔,s为步长,δz
v
为速度量
测误差,为基于惯导的东北天坐标系下速度,为旋转矩阵;结合pdr算法输出的位置信息和磁强计得到的姿态信息,建立完整的量测误差方程:结合pdr算法输出的位置信息和磁强计得到的姿态信息,建立完整的量测误差方程:结合pdr算法输出的位置信息和磁强计得到的姿态信息,建立完整的量测误差方程:其中,δz
p
是量测位置误差向量,是量测姿态误差向量,δz
k
是导航信息量测误差向量,是磁强计测出的航向角,是惯导解算出的姿态,是惯导解算出的位置,是pdr计算出的位置;当观测值有效时,使用以下方法更新状态变量和相应的协方差:当观测值有效时,使用以下方法更新状态变量和相应的协方差:当观测值有效时,使用以下方法更新状态变量和相应的协方差:其中,k
k
是待定的修正系数矩阵,是估计误差,是状态预测误差,δz
k
是量测误差,h
k
是量测矩阵,是状态预测值,p
k
是状态估计均方误差阵,p
k,k-1
是状态一步预测均方误差阵,r
k
是量测噪声协方差阵。

技术总结
本发明公开了一种基于神经网络辅助的行人室内定位方法,该方法为:行人持有包括主导航模块的智能手机,行人足部设置包括IMU单元的辅导航模块;将主导航模块的加速度计、陀螺仪信息作为输入数据,IMU单元是否为零速点作为标签数据,建立基于CNN的步伐点识别模型对IMU单元进行离线训练,根据零速时刻确定行人手持手机时的步伐点;从智能手机中收集惯性传感器测量值作为训练数据,同时从辅导航模块收集行人步行距离作为训练标签,对步长估计模型进行训练;通过扩展Kalman滤波对行人导航信息进行误差修正,得到最终的行人导航信息。本发明有效地抑制了惯性导航系统导航信息的累积误差,实现了各种环境下人员的精确定位。实现了各种环境下人员的精确定位。实现了各种环境下人员的精确定位。


技术研发人员:陈帅 陈曦 程玉 侯志宽 徐川 陶银河 王一 薛超 楚飞黄 陆奕帆 石秋婷 全勋炎
受保护的技术使用者:南京理工大学
技术研发日:2023.06.29
技术公布日:2023/9/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐