-
近年来, 随着智能化移动设备的普及, 以位置服务为核心的各类室内应用得到了迅猛发展。由于全球定位系统在室内环境中不可用[1], 导致传统的室外定位技术难以为室内应用提供可靠的服务。为了解决该问题, 围绕室内定位技术, 学者们展开了广泛的研究, 其中包括基于超宽带的定位方法[2]、激光扫描定位方法[3]、射频识别技术[4]以及基于WiFi的技术[5]等。然而, 这些方法往往需要依赖特定的基础设施, 人力成本和时间成本较高。因此, 如何以低成本的方式获取稳定、便捷、连续的室内位置服务仍然是一个具有挑战性的难题。
作为一种低花费、持续性好的室内定位手段[6-7], 基于智能手机的行人航迹推算技术(pedestrian dead reckoning, PDR)[8]得到了越来越多的关注。由于PDR容易产生累积误差, 使用WiFi来辅助纠正轨迹是一种常用的手段[9], 如陈国良等[10]使用无迹卡尔曼滤波技术融合PDR与WiFi来提高室内定位的精度。除此之外, 室内地图的限制性也可以用于修正轨迹误差, 如Leppäkoski等[11]提出了一种融合PDR、WiFi和地图信息来实现室内行人追踪的方法, 但该方法需要预先收集WiFi信号的强度数据; Li等[12]则利用基于地图的粒子滤波模型, 将用户位置、步长大小和方向等作为状态值输入来实现定位, 但该方法计算较为复杂。为降低计算复杂度, Xiao等[13]尝试引入随机森林法并结合地图信息和传感器状态观测信息来实现室内位置追踪, 但该方法未对手机传感器所富含的信息进行充分挖掘以改善结果精度。使用地磁信息来修正PDR轨迹也得到了一些研究, 如宋镖等[14]使用手机内置的磁力计收集磁场数据, 采用磁力匹配与PDR组合的模式来获取室内位置信息; 马明等[15]则提出了利用地磁辅助航向校准的方法来提高行人定位精度。
事实上, 智能手机中的传感器不仅可以提供位置信息, 还可以感知用户的室内移动行为信息。通过人类活动识别技术(human activity recognition, HAR)可以识别用户的室内移动行为(如上下楼梯、行走、转弯等), 与相应的地标相匹配, 可以修正室内行人的推算轨迹。相关研究中, Wang等[16]根据加速计的特征值来识别站立、行走、上下楼梯、乘电梯等用户行为, 并得到了相应的地标, 对室内行人位置进行校正; 周宝定等[17]通过感知室内特殊位置, 并结合室内路网拓扑来减少PDR的累积误差; Chen等[18]使用卡尔曼滤波融合WiFi、PDR来进行定位, 并通过分析用户行为识别的地标来提高定位精度; Constandache等[19]在室外环境中使用手机内置的加速计和磁力计来记录行人的行为活动模式, 并与地图相匹配; Zhou等[20]从众源数据中得到了用户的活动地标, 通过聚类技术得到了稳定的室内地标节点, 以此为基础构建室内地图。
在多用户情形下, 不同用户之间的相遇信息也可以作为虚拟地标来修正用户轨迹, 如果其中一个用户的位置已知, 其他用户的位置能够被推断或限定[21-22]。一些特殊的环境信息也可以作为地标的辅助, 例如环境中的声音、光照和颜色等[23]。
尽管众多室内轨迹追踪方法得到了探索, 但仅依靠智能手机平台获取准确的室内轨迹仍然存在难点。本文提取门点、楼梯起止点和拐点作为地标点, 使用HAR和方向传感器识别行人的室内行为, 与提取的地标相匹配, 从而减少PDR的累积误差。此外, 为了解决用户初始位置未知的问题, 使用顾及室内环境特征的隐式马尔科夫模型(hidden Markov model, HMM)来确定用户轨迹。
HTML
-
基于智能手机的PDR系统使用手机内置的惯性传感器来对行人的轨迹进行推测, 其主要步骤包括步数检测、步长估算和方向估计[12]。
-
常用的步数检测方法包括峰值检测[24]和过零检测[25], 本文结合这两种方法来进行步数检测。对三轴加速计获得的数据进行合成处理, 其计算公式为:
式中, a(t)表示合成加速度t时刻的数值; ax(t)、ay(t)和az(t)分别表示加速计t时刻在X轴、Y轴和Z轴的加速度值; g表示地球的重力加速度。
同时, 通过低通滤波对得到的数据进行平滑和去噪处理, 并根据以下条件得到步数检测结果:
1) a(t)是局部最大值, 且大于给定阈值σthr。
2) 两个峰值检测之间的时间间隔大于最小时间间隔Δt。
3) 根据行人的行走姿态, 可以判断一步的起始点为峰值的前一个过零点。
依据以上条件, 给出了一段行人行走的步数检测结果, 如图 1所示, 图 1中红色的点表示峰值点, 蓝色的点表示每一步的起止点。
-
影响行人步长的因素包括自身特点(身高、体重及年龄等)以及当前状态(行走速度和行走频率)。尽管如此, 可以根据行走过程中每一步的加速度值来估计步长[26]。经过验证的非线性步长模型[27]如下:
式中, lk表示估算的步长; amax(k)和amin(k)分别表示第k步的最大和最小合成加速度; μ为步长参数, 根据不同的行人而变化。
-
方向估计是基于手机PDR的一个难点, 通常通过陀螺仪和磁力计来估计行人的行走方向。然而磁力计容易受到外部环境的干扰, 导致短时间的方向误差。陀螺仪虽然不受外部环境的影响, 但是随着时间的增加容易产生累积误差。为了克服它们各自的缺点, 本文结合陀螺仪和磁力计来进行方向估计[28], 即:
式中, θkmag和θkgyro分别为磁力计和陀螺仪检测到的第k步角度变化值; ωmag和ωgyro分别是对应的权重参数, 其值会根据磁力计和陀螺仪的角度变化相关性而改变。
-
根据室内地标以及行人在室内行走的特点, 将基于地标的轨迹纠正分为两种方法:一种是基于到达点地标的轨迹纠正, 另一种是基于转弯点地标的轨迹修正。如图 2所示, 蓝色的线表示原始轨迹, 红色的点表示地标点。基于到达点地标的轨迹修正方法步骤为:①分别计算地标点与估计点之间的坐标值之差(Δx, Δy); ②根据轨迹段的步数n, 计算得到每步的坐标修正值(Δx/n, Δy/n); ③绘制修正后的轨迹, 如图 2(a)所示。转弯点地标则以轨迹的切边为依据, 同样得到每一步的修正值, 从而对轨迹进行修正, 如图 2(b)所示。
1.1. 步数检测
1.2. 步长估算
1.3. 方向估计
1.4. 基于地标的轨迹纠正
-
室内行人移动行为识别的主要步骤包括预处理、特征提取以及训练与分类[29]。此外, 智能手机中的磁力计和气压计可以提供方向信息和高度信息, 这些信息有助于提高行人移动行为识别的准确度。
-
预处理的主要目的是去噪并得到便于使用的数据, 其过程包括数据获取与窗口分割。与PDR中使用的数据相同, HAR使用经过低通滤波处理的三轴加速计合成数据。由于基于滑动窗口的数据分割在行为转换过程中容易产生错误, 本文使用基于单步事件的窗口分割。如果在一段时间内没有检测到步数变化, 则使用50%重叠的2 s滑动窗口对该部分数据进行分割。
预处理之后, 对每个分割窗口中的数据进行特征提取, 特征数据的类型主要可以分为两类:时域特征和频域特征。本文选择两个简单高效的时域特征数据, 即平均数和标准差。
-
监督分类方法是一种常见的移动行为识别方法, 需要先进行数据的训练, 训练数据集可以表示为:
式中, xi表示训练样本集, 在本文中为加速度数据的标准差组成的集合; yi是其对应的分类类别, 即为用户的行为类别; N为训练样本大小。
k-近邻算法(k-nearest neighbor, kNN)是一种简单高效的分类算法, 其流程如下:①计算样本(xj)与每一个训练数据集(xi)之间的距离; ②按距离排序, 选择距离最小的k个值; ③返回这k个点中出现频率最高的预测值作为该样本的预测分类(yj)。本文使用kNN算法来识别4种行为:站立、行走、上下楼和开门。
-
为了进一步提高分类的准确性, 气压计用于判断上楼还是下楼行为。预先使用气压计收集楼层的气压数据, 进而通过当前的气压计数值判断用户所在的楼层。磁力计则用于辅助识别开门行为, 虽然不同的开门方式在磁力计上有不同的反应模式, 但它们仍然表现出相似的特征, 并可以通过活动窗口中的峰值改变来进行判断。如图 3所示, 当一个用户开门时, 磁力计读数在短时间内发生较大的变化, 并很快恢复到之前相似的数值。根据这个特征, 开门动作可以被高效地识别。
2.1. 预处理与特征提取
2.2. 训练与分类
2.3. 气压计和磁力计辅助
-
在用户初始位置未知的情况下, 使用HMM来匹配用户的运动序列与室内地标可以确定用户的轨迹。PDR和HAR也可以提供相应的信息来提高轨迹的匹配效率以及进行初始位置的估算。HMM的基本组成包括两个状态集(N, M)和3个概率集(A, B, π)。根据室内环境的特征, HMM的参数含义为:①N代表隐含状态, 指代室内环境中的地标, 例如门、楼梯和转弯点等; ②M表示可观察状态, 包括东、南、西、北等方向信息以及由HAR得到的行为信息; ③转移概率A和发射概率B被结合为概率集C, [Ce, Cs, Cw, Cn]分别表示东、南、西、北方向的转移概率; ④π表示初始概率分布。
维特比(Viterbi)算法使用递归方法找到最可能的隐藏状态序列。本文将PDR的距离信息和HAR的行为信息与Viterbi算法相融合, 用来提高算法的效率以及结果的准确性。其算法的主要步骤为:①收集数据, 包括:HMM状态序列 < N, M, C, π>; HAR识别结果H; PDR距离信息D; 初始磁力计数据O; 初始气压计数据F。②初始化信息, 利用磁力计数据和气压计数据判断用户的初始方向和所在楼层。③可观察状态迭代, 每一次迭代, 判断地标之间的距离与PDR估算的距离是否相符, 从而获取满足要求的轨迹序列。④移动行为信息匹配, 从步骤③得到的轨迹序列中获取相应的移动行为信息, 与HAR的行为序列相匹配, 得到满足条件的轨迹序列及相应的概率。⑤返回最大概率轨迹。
-
选择实验场地的25条轨迹作为训练集, 每条轨迹中, 用户从门口出发, 到达2楼的一个房间。如果这个房间有多个门, 则每个门对应1条轨迹。为收集站立行为, 实验者被要求在采集每条轨迹开始和结束时分别站立一段时间。
-
在训练集构建完成后, KNN分类方法被用于识别用户的行为特征, 其中1条轨迹的识别结果如图 4所示。
为了评价HAR的分类效果, 本文使用10折交叉验证的方法[29], 即将数据集分为10份, 其中9份用于训练, 1份用于测试。除此之外, 将KNN与常用的监督分类方法进行比较, 如决策树(decision tree, DT)、支持向量机(support vector machine, SVM)。表 1给出了基于单步事件窗口与基于滑动窗口的分类结果。结果显示, 基于单步事件窗口的分类精度在每种分类方法中都有一定的提高。由于基于单步事件窗口的分类方法更便于感知用户行为的变化, 且在实验中的步数检测错误率极低, 为0.19% (总测试步数为3 092, 错误检测步数为6), 因而能够满足高精度用户行为识别的需求。
分类方法 基于滑动窗口 基于单步事件窗口 DT 98.62 98.69 SVM 96.55 97.73 KNN 98.83 98.95 Table 1. Classification Accuracy/%
混淆矩阵是一种常用的评价手段, 精度、准确度、回归值和F值都能够通过该矩阵进行表达。表 2给出了kNN分类方法的混淆矩阵。结果显示, 在行走和上下楼行为的分类中, 本文方法取得了很高的精度(99%以上), 而在开门和站立行为中产生了一定的错误。通过检测站立和开门过程中磁力计的变化特征, 可以很容易区分这两种行为。表 2括号中的数字则表示通过磁力计辅助下的行为分类结果。
行为类别 预测类别 分类精度/% 站立 行走 上下楼 开门 站立 284 (294) 0 0 10 (0) 96.60 (100) 行走 0 1981 3 0 99.85 上下楼 0 4 787 0 99.49 开门 3 (0) 0 0 56 (59) 94.92 (100) Table 2. Confusion Matrix of kNN
-
根据HAR识别的行为信息, 感知用户行走过程中周围的地标信息, 并进行位置修正, 同时根据不同的室内行为(如行走与上下楼)调整步长参数, 进而获得用户的室内轨迹。图 5给出了用户从入口到房间108的真实轨迹(绿色的线)、PDR原始轨迹(蓝色的点)以及通过本文方法修正后的轨迹(红色的点)。在该条轨迹修正过程中, 只有4个地标点被用到, 即楼梯地标S0和S1、转弯地标U0以及门地标R8。图 6显示了从入口到房间201的PDR估计轨迹与修正后的轨迹。
当初始位置未知时, 图 7(a)为通过PDR得到的原始轨迹状态, 分析其相应的传感器数据, 可以得到HMM的输入序列集为:可观察状态集M={南, 东, 北, 西, 北, 东, 北, 西}, 行为序列A={站立, 开门, 行走, 开门, 行走, 站立}以及PDR距离信息集D。通过这些信息, 使用改进的Viterbi算法可以得到如图 7(b)所示的结果。
-
分析轨迹108(图 5)的位置精度, 如图 8所示, 其中蓝色的线表示原始PDR位置误差, 橘红色的线表示通过地标修正后的位置误差。
为了验证实验中地标匹配的有效性, 图 9给出了部分轨迹的地标匹配结果。图 9中, 从楼梯地标点到门地标点之间的轨迹段, 其中红色的点T0为转弯地标, 绿色的点(D0~D11)为门地标。所有的轨迹首先在转弯点处进行修正, 然后使用PDR推断下一段轨迹; 蓝色的点表示检测到开门活动时的轨迹估计位置, 根据最短距离原则, 与门坐标进行匹配。匹配结果显示, 尽管有些轨迹的误差较大, 但仍然能够正确匹配。
图 10显示了测试的25条轨迹的累积误差分布, 结果表明, 本文方法能够有效地对PDR的累计误差进行修正, 与只使用PDR的方法相比, 本文方法更加稳定, 测试的平均误差从1.79 m降到0.52 m, 可以满足室内定位的精度要求。
-
将两种同样不需要额外设备支持的方法(Zee[30]、UnLoc[16])与本文方法进行比较, 结果如表 3所示。可以看出, 每种方法都有各自的优势, Zee方法在无需用户参与的前提下得到了室内轨迹, 并且同时收集了WiFi指纹强度数据, 可以用于后续更为准确的定位服务; UnLoc方法仅需要一个位置点作为基础数据来检测室内各种地标, 并推断室内行人位置。相比于这两种方法, 虽然本文方法需要更多的基础数据, 但也因此获得了更好的精度(小于1 m)。
4.1. HAR识别结果与分析
4.2. 轨迹追踪
4.3. 误差分析
4.4. 综合比较
-
本文通过融合PDR、HAR和地标匹配等实现了室内行人轨迹连续追踪。其中, PDR用来推算行人的位置信息, 而HAR则用来感知用户室内移动行为中的特定地标, 利用这些地标信息进行地图匹配, 可有效辅助修正PDR轨迹中产生的累积误差。此外, 本文还提出了一种顾及室内特征环境的HMM方法, 有效解决了用户初始位置未知的问题。通过系列实验对本文方法进行了验证, 结果表明, 该方法在提高用户轨迹追踪效率的同时, 有效改善了室内行人移动行为识别和定位精度。下一步的研究中将考虑更复杂的实验环境, 包括多种手机携带方式和各种类型的用户, 并考虑更多室内移动行为的识别。