[0031] 下面结合具体实施方式对本发明进行详细的说明。
[0032] 本发明提出一种地磁室内地图数据库的搭建的方法,并利用长短期记忆网络的提取出位置信息并进行定位,大致框架如图1所示。具体按照以下步骤实施。
[0033] 步骤1、地磁轨迹数据的采集
[0034] 地磁轨迹信号的采集沿室内道路的行人主要行走方向进行正向采集。采集过程中根据道路的宽度等比例分成几个路线,在这几个路线上利用手机传感器正向和反向采集地磁轨迹信号。地磁轨迹数据的采集根据不同的天数和不同的时间进行多次采集。采集的地磁信号表示为一个四维的向量,Mx,My和Mz是由手机的地磁传感器的三个方向轴所采集的信号值,M表示地磁强度,由Mx,My和Mz的二阶范数组成,具体公式如下:
[0035]
[0036] 地磁轨迹信号由连续的地磁信号组成。对于用于神经网络的训练,地磁轨迹信号有更多的地磁信号能带来更多的位置特征为室内定位带来更好的精度。地磁轨迹信号是一个四维长度不定的信号,由以下的公式表示:
[0037]
[0038] 其中横向代表地磁轨迹信号的四个维度,t表示地磁轨迹的长度。
[0039] 步骤2、搭建地磁室内数据库
[0040] 地磁室内数据库的搭建是对采集的地磁轨迹信号进行一定方法的划分。如图2所示,室内地图中划分为一个个的网格,在主要方向上相邻的网格是一种重叠的状态。每个网格会划分一个对应位置和网格长度相同的地磁轨迹信号,在每个网格的正中心分配位置标签。室内地图中由每个网格所对应的地磁轨迹信号和位置标签就组成了地磁室内的数据库。
[0041] 地磁信号在0.5米左右的强度变化很小,设置网格步长即相邻网格的间距为0.5米,然后以0.5米为间隔在6‑12米范围内划分不同长度的网格来搭建多个地磁数据库,网格长度满足室内路径的总长度和其的差值正好能被0.5整除。网格宽度同样选择为0.5米,如果室内路径宽度与0.5米有余数,该余数平均分配给两侧的网格,即最两侧的网格宽度在0.5米到0.75米之间(不包括0.75米)。
[0042] 步骤3、利用KNN和DTW混合的算法选择最合适的网格长度,确定相应的地磁数据集;
[0043] K最邻近算法(KNN)是一种较为成熟的机器学习算法,其原理是在特征空间中取k个与目标值最相似的样本,如果这k个样本中大多数的样本属于某个类别,那目标样本就属于这个类别。
[0044] 动态时间规划算法(DTW)是语音识别中一种较为经典的算法,主要用来解决发音长短不一的问题。地磁轨迹信号在采集过程中,人为采集会存在速度不一的现象,所以DTW同样可以用来解决这个问题。总的来说,在这个混合算法中,DTW会用来计算地磁轨迹信号之间的相似度。
[0045] KNN与DTW混合的算法中,利用DTW来计算目标值和地磁数据库中的地磁轨迹的相似度,从中取k个最相似的地磁轨迹数据所对应的位置标签,按照权重来计算估计位置,权重Wt和位置估计的公式如下:
[0046] Wt=1/DTW(q,pt) (3)
[0047]
[0048] 其中q表示目标值,pt表示地磁数据库中的地磁轨迹数据,loc表示估计的位置,loct表示为前k个最相似的地磁轨迹信号所以对应的位置标签。
[0049] 在实验中k设置为4,即选择最相似的前4个地磁轨迹信号的位置作平均值作为估计位置。分别测试在不同网格长度的地磁数据库下的定位误差,选取定位误差最小的网格长度作为最合适的网格长度。定位误差为地磁数据库中测试集在KNN和DTW混合的算法下计算出的估计位置和实际位置的绝对值差值的平均值。
[0050] 在最合适的网格长度对应的地磁数据库中选取80%的数据作为训练集,20%的数据作为测试集。
[0051] 步骤4、利用多层的长短期记忆网络训练确定好的地磁数据库
[0052] 长短期记忆网络由一个个门控记忆单元组成,门控记忆单元用来记忆不定时间长度的信息,控制遗忘过去不重要的信息,将滤波后的信息与现在的信息融合进行更新。门控记忆单元如图3所示,具体公式由以下几个部分组成:
[0053] (1)输入门it控制输入信息激活到记忆单元
[0054] (2)输出门ot控制记忆单元输出结果的数据
[0055] (3)遗忘门ft决定内部状态所需要遗忘的信息
[0056] (4)输入控制门gt提供输入到记忆单元
[0057] (5)内部状态It控制着单元的内部循环
[0058] (6)隐藏状态ht控制着过去样本所提高的一系列信息
[0059]
[0060]
[0061]
[0062]
[0063] It=ftIt‑1+gtIt (9)
[0064] ht=tanh(It)ot (10)
[0065] 其中σ表示的是激活函数,W1表示输入数据xt到输入门it的权重矩阵,W2表示前一时刻的隐藏状态ht‑1到输入门it的权重矩阵,b表示偏差向量。在长短期记忆网络训练过程中,主要训练的就是网络中各个记忆单元的内部状态以及最后的记忆单元的输出结果,具1 2
体来说,长短期记忆网络就是学习W,W和b的适合参数。
[0066] 多层的长短期记忆网络如图4所示,多层的网络结构能帮助不成熟的网路信息转化成更为抽象的表达形式。对于地磁室内定位,长短期记忆网络的输入信息为地磁轨迹信号,地磁轨迹信号的离散序列形式表示为(x1,x2,…,xT)。地磁轨迹信号会分别在时间t(t=1,2,…,T)的时刻下在多层长短期记忆网络的第一层作为输入信息。在初始时刻下,初始状态 和初始隐藏状态 的参数设置为零。多层长短期记忆网络的第一层的输出 包含了在t时刻的地磁信号xt,先前的内部隐藏状态 和先前的隐藏状态 组成,具体用以下公式表示:
[0067]
[0068] 除了第一层外,每一层的输入都是由前一层的输出作为输入。另l(l=1,2,…,L)l表示网络的层数。当l在2到L范围时,第l层的输入为上一层的输出 θ表示的是多层长短期记忆网络第l层记忆单元的参数,所以在层数为在2到L范围时,公式表示如下:
[0069]
[0070] 在每个时间时刻的输出为顶层的每个时间时刻的输出为 其中最顶层的最后时刻的输出 经过全连接层输出地磁轨迹信号的位置特征。最后的输出层为两位向量分别输出输入的地磁轨迹信号的估计位置坐标。其中损失函数为平方损失函数,具体公式如下:
[0071]
[0072] 其中(xi,yi)是地磁轨迹信号的实际位置坐标, 是地磁轨迹信号的估计位置坐标。在长短期网络记忆网络的训练过程中,通过反向传播算法最小化损失函数,求解出最合适的网络模型。