改进PDR与RSSI融合的室内定位方法*

2023-12-13 12:12杨俊杰隋志成罗钦扬张露明
传感器与微系统 2023年12期
关键词:步数步长卷积

艾 青,杨俊杰,蒋 伟,隋志成,罗钦扬,张露明

(1.上海电力大学电子与信息工程学院,上海 201306;2.上海电机学院电子信息学院,上海 201306;3.上海艳灿电子科技有限公司,上海 201306)

0 引 言

如今,全球卫星导航定位系统(global positioning system,GPS)技术[1]与人们的生活息息相关,但卫星信号到达地面后强度减弱,无法满足人们对室内定位的需求,为此,基于测距[2]和非测距[3,4]的室内定位技术受到了广泛关注。文献[5]提出了一种将超参数自动调参技术应用于卷积神经网络(convolutional neural network,CNN)模型的方法来执行接收信号强度指示(received signal strength indication,RSSI)指纹匹配。文献[6]利用树莓派单元作为RSSI接收器,通过比较三边测量法和包括随机森林(random forest,RF)在内的5种指纹定位方法的定位误差。文献[7]采用支持向量机(support vector machine,SVM)算法将室内定位问题转化为分类问题,提出一种多信号位置加权的卡尔曼滤波(Kalman filtering,KF)算法,解决了步长时刻变化无法进行滤波的问题。文献[8]利用粒子群滤波将指纹信息和行人航位推算(pedestrian dead reckoning,PDR)数据进行融合,通过比较融合前后三者误差模型的均方根误差(root mean square error,RMSE)随步数增加的变化情况,建立了混合误差模型。虽然上述研究中的实验场景均在室内,但并没有结合场景自身特点有针对性地研究定位技术。

本文首次结合场景自身特点,提出了一种新的基于RSSI和PDR算法的室内人员定位方法---基于停留时长的PDR修正算法(modified PDR algorithm based on length of stay,LOS-MPDR);再通过扩展卡尔曼滤波(extended Kalman filtering,EKF)技术,将PDR 修正结果与RSSI 定位结果进行优化融合,从而生成最终的定位结果。

1 相关算法

1.1 基于RSSI的蓝牙定位CNN方法

本文将预处理后的RSSI 数据集转换为初始像素大小为[25,25,1]的仅具有黑色像素的图像[5],采用CNN 算法来获得RSSI定位结果。本文提出的基于RSSI的蓝牙定位CNN方法(以下简称CNN定位模型)具体流程为:

1)离线构建指纹库阶段

a.构建RSSI数据集:信号强度值,将各位置信息与对应的蓝牙5. 1 信标的信号强度值共同构建RSSI 数据集;b.构建RSSI定位灰度图集:将室内场景分割为多个正交的方格,并将RSSI 数据集中的每个测量值除以-200(小于-78 dBm的RSSI值统一表示)作为该位置所在方格的灰度值,其余方格均为黑色,以此构成一幅灰度图,通过遍历RSSI数据集的所有数据来生成对应的RSSI定位灰度图集。

2)构建CNN定位模型[9],在线定位匹配阶段

将RSSI定位灰度图集作为CNN定位模型的训练集进行训练,得到训练好的CNN 定位模型;将待预测的灰度图输入到训练好的CNN定位模型中,即可得到预测的行人位置坐标(xr,yr)。

CNN定位模型采用的CNN 由2 层卷积层、2 层池化层、1层平坦层和2 层全连接(fully connected,FC)层构成,如图1所示。

图1 CNN结构

其中,两层卷积层的卷积核大小分别为7 和5,卷积核子矩阵维度均为12,步幅均为1。每层卷积层都由若干卷积单元组成,每个卷积单元的参数通过反向传播(back propogation,BP)算法得到[10]。为增强卷积后输出模型的非线性表达能力,本文通过ReLU激活函数(式(1)),将输出张量中小于0 的部分均设置为0。此外,为使从输入数据中提取的局部特征的大小保持不变,每个卷积层都采用零填充来控制输出单元空间的大小[11]。两层池化层的卷积核大小和步幅均为2,这样输出的维度缩减为原来的50%,同时又不会出现过拟合的情况;池化标准均为MAX标准。平坦层将池化层的32 ×2 个二维输出转化为64 个一维输出,以便与FC层相连。最后,FC层将所有的局部特征变成全局特征来计算每一类得分。输出层的2代表预测的行人坐标(xr,yr)

本文引入RMSE作为损失函数(l2_loss)来表示预测值与真实值之间的差距,定义如下

式中xi和yi分别为一个batch中第i个数据的实际x和y坐标,而xri和yri为其预测值,m为观测次数。

1.2 PDR定位模型

PDR 算法通过惯性测量单元(inertial measurement unit,IMU)测得的行走数据计算人的步长和方向,实现人员定位,从而推算出行人在建筑物内的踪迹。PDR 原理示意如图2所示,其中,4个小矩形代表固定在脚背上的IMU模块,坐标轴X,Y,Z分别代表侧向轴(垂直身体向右)、向前轴(垂直身体向前)、垂直轴(垂直身体向上)。由图2 可知,已知初始点位置坐标(x1,y1),推算下一位置坐标公式为x2=x1+s12cos θ1,y2=y1+s12sin θ1。可见,利用PDR 算法实现定位的关键在于行走位移s和方向角θ 的获取,而行走位移s等于步数n与步长ln的乘积,故只要测得步数、步长和方向角即可实现PDR算法,完成位置更新。

图2 PDR原理

具体步骤如下:

1)步数的获取:采用波峰波谷检测算法[12],检测到的波峰个数即为步数,计算步数的公式为

式中Npeak为波峰个数,Nvalley为波谷个数;peak为1表示此时的加速度数据为波峰,νzi为每个采样点第i时刻沿z轴方向的速度,λ为波峰波谷检测的阈值。

2)步长的计算:本文采用步长估计算法的非线性模型ln=s/n,n=min(Npeak,Nvalley)。

3)航向角的获取:本文采用的IMU数据是在东-北-天(east-north-up,ENU)坐标系下测得,因此,在计算航向角前先进行载体坐标系转换。本文采用四元数法[13],通过将旋转矩阵转换成姿态矩阵来获取方向角。

4)位置更新:行人在第n-1 步的前进方向θn-1后,经PDR算法在第n步时的位置坐标(xpn,ypn)计算公式为xpn=xpn-1+lncos θn-1,ypn=ypn-1+lnsin θn-1。

2 修正定位模型

2.1 LOS-MPDR

消费级别的IMU中的加速度计、陀螺仪和磁力计等传感器精度较低,使步长和航向角随步数的增加而产生累计误差[12],如图3中圆圈所示。

图3 PDR轨迹

考虑到在家庭场景中,每个房间进行的活动类型相对固定,因此,为改善PDR误差累积问题,本文根据不同房间从事活动类型和耗时不同的特点,将停留时间作为判断条件,对应房间位置定义为典型坐标,提出了LOS-MPDR 算法,对原始PDR定位结果进行修正。根据实验测试,各房间关于活动类型、停留时长及RSSI 值的参数情况如表1所示。

表1 各房间参数值

本文提出的LOS-MPDR算法流程具体过程如下:1)计算IMU数据的三轴加速度和角速度的停止更新时间t;2)判断其是否大于20 s,若否,说明不满足执行修正算法的条件,输出原PDR 定位结果,结束此流程,否则,将计算出的停止更新时间与表1进行活动及地点匹配;3)输出匹配到的房间名称的典型坐标;4)比较PDR定位结果与输出的典型坐标,若横纵坐标差值小于0.3 m,说明PDR定位结果可靠,输出PDR定位结果;否则,输出典型坐标作为修正后的PDR定位结果。

2.2 EKF融合定位

本文利用EKF技术通过将非线性的PDR 定位模型作泰勒级数展开,并省略二阶以上的项,将其转换成近似线性化模型,从而获得PDR 与RSSI 定位结果的融合定位。具体动态位置信息建模过程如下:

1)状态转移方程

式中r1为状态转移方程的非高斯分布的过程噪声;(xn,yn)为预测的第n步位置;θn为预测方向角;(xn-1,yn-1)为第n-1 步时的融合定位结果;ln-1,θn-1为第n-1 步时的步长和方向角,Δθ为方向角的估计增量。

2)观测方程为Yn=[xr,yr,sn,θn]T+r2,其中,r2为观测方程的测量噪声,(xr,yr)为RSSI定位结果。

3)本文的初始定位值为通过CNN 定位模型得出的RSSI定位结果(xr1,yr1),初始协方差矩阵为P1。则系统的先验估计为:X′n=FnXn-1,P′n=FnPn-1FTn+R1;其中,Fn为状态转移矩阵,R1为过程噪声r1的协方差矩阵。

4)更新阶段,第n步时刻的卡尔曼增益为Kn=P-nHT(HPn-1HT+R2)-1,其中,H为观测矩阵,R2为测量噪声r2的协方差矩阵。

5)由观测变量Yn更新状态和协方差矩阵,系统的后验估计为Xn=X′n+Kn(Yn-Y′n),Pn=(I-KnH)P′n。这样循环更新至输出Xn的融合定位结果(xn,yn)。

3 实 验

3.1 数据收集

本文自主规划了一组实验路径进行数据采集。为避免偶然因素影响,本文采用多次采集取平均值的方法确定最终数据集,如表2所示。

表2 实验数据采集情况

本文实验路径:门-床-厕所(洗漱)-厨房(做早饭)-餐桌-厨房(洗碗)-卧室(换衣服)-书桌(看书)-客厅(看电视)-门(离家),耗时6.7 min。将8.85 m×8.03 m的会议室模拟为一间1 室1 厅的公寓作为家庭场景,如图4 所示。本文实验场景中共部署7个蓝牙5.1信标(图4矩形)作为信号发射器,RSSI探针和笔记本电脑作为信号接收装置,信标部署在距地面1 m高的位置[3]。本文信标发射功率为-20 dBm,覆盖范围大约5 m。在采集数据时,保证信号接收器和信标的接触时间不少于30 s。通过实际测试,将信号强度阈值设为-78 dBm,即大于-78 dBm 的数据方为有效数据。

图4 模拟家庭场景布局

3.2 数据预处理

本文将采集的原始RSSI 作为输入变量,利用一维KF对RSSI进行去噪处理,并且为避免测量时一些非固定因素影响,剔除了前30 s的RSSI 数据。当人在客厅时,采集到客厅信标的271个RSSI数据KF前后对比如图5所示。可见,经过KF后数据波动较小。

图5 RSSI数据KF前后对比

3.3 结果分析

由图6可看出,当batch_size大小为10时,迭代速度最快且误差最小。本文的CNN定位模型参数值如设置如下:epoch为100,batch_size 为10,l2_loss 为RMSE,优化器为Adam,激活函数为ReLU,训练集大小为1 748,测试集大小为437,学习率为0.001,Beta1为0.894。

图6 CNN定位模型准确率比较

图7与图3对比验证可得,本文提出的LOS-PDR算法较明显地抑制和改善了PDR算法存在的误差累积现象,具体表现为在某一房间时几乎没有跳动很大的位置点。

图7 LOS-MPDR和真实轨迹间的比较

家庭环境中各区域的面积偏小,通常为5 ~30 m2。本文将场景建筑特点作为误差考虑因素,尽可能将定位误差控制在30 cm(墙体厚度)以内,才能确保具有较高定位精度。由图8、图9和表3可以看出,本文定位误差最小的是经过EKF融合后的定位结果,仅为0.28 m。本文将定位误差与实验场景面积的大小相除作为误差率(error rate,Er)为Er=RMSE/(8.85 ×8.03)。

表3 实验所用各算法的误差比较

图8 CNN、EKF与真实轨迹间的比较

图9 误差比较

由表4可知,本文通过EKF算法将蓝牙、CNN和PDR技术融合的方法相比文献[3]单一采用蓝牙和PDR技术定位效果得到了明显改进,误差率由1.26%降低到0.39%;相比文献[14]采用的WiFi、CNN 和PDR 技术,定位误差由0.43 m降低到0.28 m,满足定位误差小于30 cm的高定位要求。

表4 不同算法的误差比较

4 结 论

通过实地勘测基于蓝牙5.1 信标的RSSI 数据集进行实验测试,证明本文提出的基于CNN的室内定位算法有效改善了信号干扰对定位精度造成的影响,其次,本文将停留时长作为判断条件,提出的LOS-MPDR 算法,有效解决了长时间停留某一位置时引起的位置跳变现象;最后,将场景建筑特点作为考虑因素,利用EKF将以上2 种方法进行融合,得到定位误差仅为0.28 m 的定位结果,相比已有研究具有更高的定位精度,更加符合家庭场景下的定位需求。

猜你喜欢
步数步长卷积
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
楚国的探索之旅
从滤波器理解卷积
微信运动步数识人指南
基于傅里叶域卷积表示的目标跟踪算法
国人运动偏爱健走
基于逐维改进的自适应步长布谷鸟搜索算法
一种新型光伏系统MPPT变步长滞环比较P&O法
一种基于卷积神经网络的性别识别方法