一种基于卷积神经网络的CSI指纹室内定位方法

2021-11-17 08:54王旭东
工程科学学报 2021年11期
关键词:参考点幅度数据包

刘 帅,王旭东,吴 楠

大连海事大学信息科学技术学院, 大连 116033

随着智能移动设备的快速发展,人们对于定位服务的需求日益强烈[1−3],例如室内导航和位置追踪等[4−5]. 室外定位凭借全球卫星导航系统(Global navigation satellite system,GNSS)已经可以满足日常生活的定位需求. 然而对于室内定位,由于存在严重的阴影衰落和多径传播,致使卫星信号在室内环境中无法实现有效定位[6]. 目前存在的室内定位技术主要有蓝牙、Wi-Fi、超带宽、射频识别和可见光等[7−10],其中由于Wi-Fi成本低、部署方便、覆盖范围广等特点,在室内定位中得到了广泛的应用[11−12].

许多Wi-Fi指纹室内定位系统采用接收信号强度(Received signal strength,RSS)作为指纹,利用了RSS获取简单,对硬件复杂度要求较低的特点[13−14]. 文献 [15]提出了 RADAR 系统,是第一个采用RSS作为指纹的室内定位系统,通过将模拟测量与信号传播模型相结合起来确定用户位置,并取得了一定的定位精度. 为了进一步提高定位精度,文献[16]提出了Horus系统,该系统提供了一种联合聚类技术来用于位置估计,定位时使用了概率方法,每个候选位置坐标被视为一个类别,较RADAR获得了更好的定位效果. 上述文献所采用的定位方法均为传统的匹配算法. 与此同时,深度学习技术的发展,为利用神经网络提取指纹信息提供了有效途径. 文献[17]将运动轨迹与RSS结合,通过长短期记忆网络(Long short-term memory,LSTM)提取运动轨迹中RSS的变化特征,取得了0.75 m的平均误差,但需要利用6个接入点(Access Point,AP)进行数据接收. 采用 RSS作为指纹虽然有获取简单的优点,但无法进一步提高定位的精准度. 一方面是由于RSS在复杂的室内环境中波动起伏较为严重,通常对于连续的接收数据包,RSS是不稳定的. 另一方面,RSS对于每个AP只能提供一个粗略的信号强度值[18].

近年来,得益于 Wi-Fi无线网卡 Intel 5300[19]和Atheros AR9580[20]的驱动开源,使得提取信道状态信息(Channel state information,CSI)成为可能. 和RSS相比,CSI具备以下优点:(1)对于一个接收数据包,CSI可以得到无线信道中30个子载波的信道频率响应(Channel frequency response,CFR),即CSI是一种细粒度的信息;(2)CSI对于环境变动更加敏感,作为位置指纹来分辨位置特征更加有效;(3)对于固定位置,CSI的分组接收数据包比RSS更加稳定[21]. 文献[22]首次采用CSI进行室内定位,通过对提取出的CSI进行预处理来消除一定的多径效应,然后采用CSI幅度的平均值来实现定位,与RSS相比,取得了更好的定位精度.文献[23]提出了DeepFi系统,通过提取3个天线90个子载波的幅度信息作为指纹,然后利用受限玻尔兹曼机(Restricted Boltzmann machine,RBM)来为每个参考点训练指纹特征,定位时采用基于径向基函数(Radial basic function,RBF)的概率算法来估计位置坐标. DeepFi系统只采用了CSI的幅度信息作为指纹,且需要为每个参考位置单独训练一组权重,因此在定位精准度和计算复杂度上都有待改进. 文献[24]通过将磁场强度和CSI幅度信息作为指纹,利用补零来构建训练数据,通过 卷 积 神 经 网 络 (Convolutional neutral networks,CNN)进行指纹训练,取得了平均误差为1.2 m的定位效果,上述两种方法仅考虑CSI的幅度信息,且文献[24]虽然联合了磁场强度和CSI幅度共同作为指纹,但磁场强度在室内环境中依然不够稳定. 文献[25]提出了 CiFi系统,通过提取 5 GHz频段3个天线的相位信息,计算相邻天线的相位差并估计到达角度(Arrival of angle,AOA),将 AOA重构为60×60的图片来作为指纹数据,利用CNN来进行训练,取得了比DeepFi更好的定位效果,但是CiFi没有充分利用CSI的幅度信息,60×60的指纹构成方法在实时定位的时效性上有待提高. 文献[26]在CiFi的基础上联合CSI的相位差和幅度信息作为指纹,将指纹构建为三维度矩阵,前两个维度用相位差填充,第三个维度采用114个数据包的幅度填充,同样在定位的时效性上有待提高.

本文在上述文献的研究基础上,提出了联合CSI幅度差信息和相位差信息共同作为指纹来进行室内定位的思想,利用CNN强大的特征提取能力对所有参考位置的指纹数据进行训练,并根据不同定位场景,选取最优权重组合来进行定位指纹数据的分配,同时结合一种改进的基于概率的指纹匹配算法获得了良好的定位效果. 在不同室内场景下的定位实验结果验证了本文提出方法的有效性.

1 CSI指纹构建

1.1 CSI 概念

1.2 幅度差信息

1.3 相位差信息

1.4 指纹构建

2 系统结构

对于指纹系统来说,主要分为离线阶段和在线阶段,提出的基于CNN的CSI指纹定位系统的结构如图1所示,图中,RP为定位参考点,N为定位参考点的总个数,M为在线测试阶段随机选择的定位参考点.

图1 系统结构Fig.1 System structure

2.1 离线训练

离线训练阶段首先需要对定位区域进行参考点的选取,参考点尽量均匀分布且覆盖整个待定位区域. 分别为每个参考点收集CSI数据并按照第2节的处理方法进行指纹构建,同时为了加速CNN的训练速度、提高训练的准确度,将每个参考点的指纹数据进行归一化处理.

由于CNN已被证明具有出色的图像特征提取能力,因此本文采用CNN并将CSI的幅度差信息和相位差信息联合应用构建为类似于“RGB”三通道的图片格式进行训练,所采用的CNN网络结构如图2所示.

图2 CNN 网络结构Fig.2 CNN network structure

CNN网络由输入层、4个2维卷积层、2个全连接(Fully connected, FC)层和输出层构成,同时为每个卷积层和全连接层都进行BatchNormalization加速误差收敛. 神经网络的输入为30×30×3的指纹数据,首先通过前两个卷积核为16的卷积层,由于所构建的指纹维度为30,同图像处理领域相比,维度相对较小. 因此前两层为了充分提取指纹特征,padding选择“same”,即保证卷积层输入输出数据维度相同;然后数据通过第三个卷积核为32的卷积层时,为了压缩输出数据的维度,padding选择“valid”,此时数据流的维度变为15;接着数据通过最后一个卷积核为32的卷积层,padding同样选择“same”;最后将数据展开并通过两个全连接层,以Softmax概率的形式输出,输出神经元的个数等于参考点的个数Nrp. 每层网络的具体参数如表1所示,表中参数Conv 2D表示所采用的卷积类型为2维卷积,fs表示卷积核的维度,s表示卷积运算的步长,K表示神经元个数,m表示训练数据的个数.

表1 CNN 网络参数Table 1 CNN network parameters

通过离线训练,当误差下降到几乎不变时,停止训练并保存CNN的网络模型,用于在线测试.

2.2 在线测试

在线测试阶段,将所有参考点都视为测试点,分别在每个测试点收集CSI数据并进行指纹构建与归一化,并没有将幅度差信息与相位差信息按同等比例作为测试数据,图3给出幅度信息与相位差信息在两种场景中每个参考点处的子载波方差之和. 由于幅度信息要大于相位差信息,因此为了公平比较,将两种信息进行归一化处理.

图3 两种实验场景下幅度与相位差的方差. (a)廊厅;(b)实验室Fig.3 Variance of the amplitude and phase difference in two experimental scenarios: (a) corridor; (b) laboratory

由图可知,相位差的子载波方差要小于幅度信息,表明相位差信息更加稳定. 因此本文在训练时采用同等比例的幅度与相位差数据,凭借CNN出色的特征提取能力,可以将一个参考位置的幅度和相位特征分别提取出来,但是由于CSI的幅度信息在复杂的室内环境中波动较大,如果将幅度与相位差信息按同等比例进行测试,反而会带来一定的误差,而采用幅相加权,令幅度差测试数据占较小权重,相位差测试数据占较大权重,既可以保留一定幅度差信息的定位效果,又不会较多地引入由幅度差信息所带来的误差.

传统基于Softmax函数定位算法采用所有测试数据包Softmax输出的概率平均值同参考位置坐标加权求和,这样做会引入一定的误差,因为Softmax输出的是预测点为某个参考点的概率,测试时,若部分测试数据包含较大误差,传统算法会将误差带入到坐标的预测计算中,从而增大定位误差. 本文采用了一种改进的基于概率的自适应定位算法,令测试时Softmax函数的输出表示如下式所示:

式中每一行都表示一个测试数据包的Softmax输出概率,Nrp为参考点个数. 假设有M个测试数据包,对于每个数据包中的Nrp个概率值进行搜索,获取最大值对应的索引,在此基础上搜索出现次数最多的索引值,定义为C值,表示如下:

其中,index(·)表示返回索引值运算,max(·)表示求取最大值,count(·)表示统计每个元素出现的次数.idi即为第i个测试数据所得到的概率值中最大概率的索引值,然后选取出现次数最多的索引值C所对应的概率值,记为Xout,并对其取列均值,得到概率P,如下式所示:

其中,mean(·)为取列均值计算. 则估计的位置坐标如下式所示:

3 实验分析

分别在两个代表性的场景种进行实验,两个场景分别为空旷的廊厅和放置了若干计算机以及隔断书桌的实验室,分别可以视为视距(Line of sight, LOS)与非视距(Non line of sight, NLOS)区域,相邻参考点之间的距离均为1.2 m,如图4、图5所示.

图4 廊厅场景. (a)实景图;(b)简化图Fig.4 Corridor: (a) real scenario; (b) simplified scenario

图5 实验室场景. (a)实景图;(b)简化图Fig.5 Laboratory: (a) real scenario; (b) simplified scenario

采用monitor模式接收Wi-Fi AP无线信道数据,用两台配备了Intel 5300网卡的笔记本电脑分别作为发射端和接收端,选择165号信道,即5 GHz频段,信道带宽为20 MHz,接收包间隔时间为1 ms.对于每个参考位置,在该位置的附近分别接收10次数据,每次数据收集9000个数据包,选择其中的5次数据作为训练数据,另外5次作为测试数据. 训练数据采用所有数据包,测试时由于不同方法指纹构成的不同,无法保证使用相同的数据包,但可以选择采用相同个数的测试数据,本文选择40个测试数据. 为了验证所提出方法的性能,将文献[15]和文献[17]的指纹定位方法分别用相同的训练数据和测试数据进行比较,从而保证实验结果的公平性.

实验1:幅度差定位性能比较.

为了比较采用幅度信息和幅度差信息的定位性能,在两个实验场景下分别采用幅度与幅度差作为指纹,其他参数均相同,利用神经网络进行训练,得到的平均定位误差如图6所示,其中Am 表示幅度,Am Diff表示幅度差. 由图可知,采用幅度差信息代替幅度信息作为指纹,可以降低定位误差,这是因为利用相邻子载波之间幅度的差值,可以降低幅度信息的浮动程度,从而加速神经网络的收敛速度,提高神经网络的学习能力.

图6 幅度与幅度差的平均定位误差Fig.6 Mean error of the amplitude and amplitude difference

实验2:神经网络收敛性比较.

采用GPU为NVIDIA 960m的笔记本电脑以及Keras框架,分别利用在两个实验场景所采集构建的指纹进行神经网络的训练,两个实验场景的训练误差如图7所示.

图7 不同场景下的误差收敛情况Fig.7 Error convergence in different scenarios

图7中,epoch为神经网络迭代的次数,loss为训练集误差,val loss为验证集误差. 两种场景下,训练集误差曲线在前5代快速收敛,训练过程中加入Dropout,防止网络过拟合. 此外采用学习率逐渐下降的训练方法,微调网络权重,从而避免网络陷入局部最优. 验证集误差在训练前期波动较大,但总体呈现下降趋势,表明神经网络正在学习指纹特征;当epoch为15时,训练集和验证集误差均趋于稳定,不再下降,验证集误差的收敛表明网络已经较好地学习到了每个位置的指纹特征.

实验3:不同定位方法性能比较.

将本文提出的方法命名为CNNFi,CNNFi与DeepFi和CiFi系统的定位误差累积分布函数(Cumulative distribution function, CDF)分别如图8、图9所示. 平均定位误差、标准差和执行时间如表2、表3所示.

图8 廊厅误差累计分布图Fig.8 Cumulative distribution of corridor error

图9 实验室误差累计分布图Fig.9 Cumulative distribution of laboratory error

表2 廊厅定位误差和执行时间Table 2 Corridor positioning error and execution time

表3 实验室定位误差和执行时间Table 3 Laboratory positioning error and execution time

图8和图9中对于DeepFi的定位方法,在神经网络方面,采用DNN代替受限玻尔兹曼机,从而避免为每个参考点单独训练一组权重,降低了计算复杂度. 和传统的定位测试方法(CNNFi single、DeepFi、CiFi)不同,考虑在实际定位中,人体是运动的,且CSI monitor收数模式收集数据包的速度是可调的,因此可以在短时内在参考点附近采样两次CSI,从而增加数据的多样性,即CNNFi combine,AP=1、2 分别表示采用单 AP、双AP进行室内定位.

由表2和图8可知,在廊厅区域,CNNFi在combine模式下可以达到 0.2473 m 和 0.5755 m 的平均误差和标准差,均优于其他定位方法,且定位执行时间在相同的测试数据个数下要优于CiFi,这是因为CNNFi兼顾了定位精度与测试时间,采用每30个接收数据包构成一个训练数据,而CiFi采用了60个数据包构成一个训练数据. 本文采用的方法在single模式下,大约80%的测试点的平均误差在1 m之内,定位性能要优于DeepFi和CiFi. 当采用combine模式时,大约95%的测试点的平均误差在1 m之内,定位性能相比于single模式要更加出色.

由表3和图9可知,在实验室区域,存在严重的多径效应,为了进一步提升实验室场景下的定位性能,考虑到如今室内通常配置了多个Wi-Fi接入点,因此在上述定位方法的基础上,采用双AP联合定位,即提取两个AP的CSI幅度差与相位差共同作为每个参考点的指纹进行训练. CNNFi在combine模式、双AP下可以达到0.4806 m和0.8566 m的平均误差和标准差,同样优于其他定位方法. 由于双AP下测试数据相较于单AP要增加一倍,所以CNNFi在定位时间上稍有增加,但也仅约为0.5 s,即采用双AP是能够在保证定位实时性的前提下实现高精度的. CNNFi在single模式、单AP下,大约70%的测试点的平均误差在2 m之内,在combine模式时,大约85%的测试点的平均误差在2 m之内. 采用双AP后,约85%的参考点平均误差在1 m以内,定位性能显著提升.

实验4:不同权重a的定位性能.

为了验证2.2节中的思想,令a作为幅度差信息所占权重,1−a为相位差信息所占权重,将权重a分别设置为 [0, 0.1, 0.2, 0.3, 0.4, 0.5],进行定位性能的比较,其中实验室采用的是单AP情况下的平均误差. 不同权重所对应的平均误差与标准差如图10~11所示. 可以发现,廊厅场景下,由于近似于LOS场景,因此随着权重a的增加,定位误差逐渐下降,当权重a=0.2时,平均误差同其他权重相差较小,而标准差最小. 实验室场景下,由于存在严重的多径效应,当权重a=0.2时,误差和标准差达到最小值,定位效果最优. 从而验证了上文中的思想. 在此基础上,后面的研究中,对于幅度与相位的混合指纹,可以将权重a设为0.2~0.3,能够达到较好的定位效果.

图10 不同权重的平均误差Fig.10 Mean error at different weights

图11 不同权重的标准差Fig.11 Standard deviation at different weights

实验5:不同R值的定位性能.

R值即为神经网络训练数据的个数,分别将R值设为300、200、100和50,对神经网络进行训练,采用相同的测试数据进行定位测试,得到的定位误差如图12所示. 如图可知,两种场景下采用R=300的定位效果最优,虽然增加R值会增加在线训练时间,但一方面本文所采用的神经网络结构较为简单,可以适当降低训练时间;一方面,离线训练时间并不影响实时定位效果,因此本文选择R=300进行实验.

图12 不同 R 值的平均误差Fig.12 Mean error at different values of R

实验6:不同幅度相位差的定位性能.

为了比较幅度相位差个数对平均误差的影响,分别给出了两个实验场景下不同幅度相位差个数的平均误差,其中廊厅为单AP,实验室为双AP,如图13所示,Am-Ph Diff表示幅度相位差. 由图可知,在两种实验场景下,采用3个幅度相位差所达到的定位效果最优,增加训练数据虽然增加了离线训练的时间,但在线测试时由于仅采用了40个测试数据,因此并不会显著增加在线测试的时间,并且由于充分利用了3个天线之间的幅度差与相位差信息,可以增强定位结果的鲁棒性.

图13 不同幅度相位差的平均误差Fig.13 Mean error of different amplitudes and phase differences

实验7:不同定位算法的定位性能.

本文设计了一种高精度定位算法,与传统定位算法对Softmax输出取平均值不同,该算法可以将大部分预测点准确地估计为正确参考点,提出的定位算法与传统定位算法的定位误差如图14所示. 由图可知,与传统的定位算法相比,应用本文所提出的定位算法,可以有效的提高定位精度.该算法是在牺牲定位标准偏差的基础上换取高精度定位结果,考虑到实际场景,定位过程中可以不断收集CSI信息进行定位响应,因此该定位算法可以满足较高定位精度的需求.

图14 不同定位算法的平均误差Fig.14 Mean error of different position algorithms

实验8:定位效果可视化.

为了直观地观察定位测试效果,将参考测试点与预测点以二维坐标的形式用散点图表示.图15所示为多次实验的一次采样结果,以实验参考区域的左下角参考点为原点建立直角坐标系,x为横坐标,y为纵坐标. 规定定位误差低于各自定位场景的平均定位误差,视为预测正确. 统计多次实验结果可知:在空旷的廊厅,仅采用单AP就能够实现约平均90%的定位准确率. 实验室场景采用双AP后,也可以实现大约平均80%的定位准确率.

图15 坐标预测. (a)廊厅;(b)实验室Fig.15 Coordinate prediction: (a) corridor; (b) laboratory

4 结论

本文提出了一种基于CNN的CSI指纹室内定位方法. 在5 GHz频段下,离线阶段将CSI的幅度差和相位差信息联合作为指纹并采用CNN来提取特征,将训练结束后的CNN网络模型保存作为指纹数据库;在线阶段在测试点附近进行两次采样增加测试数据多样性,同时采用幅相加权与自适应概率算法进行位置坐标的估计. 针对特别复杂的室内场景,采用双AP来提高定位精度. 通过在两种场景(LOS,NLOS)下的定位测试实验,分别获得了24.7 cm和48.1 cm的平均定位误差,实验结果表明本文所采用的方法可以实现较好的定位效果.

猜你喜欢
参考点幅度数据包
单次止损幅度对组合盈亏的影响
FANUC数控系统机床一键回参考点的方法
参考点对WiFi位置指纹算法的影响
SmartSniff
微波超宽带高速数控幅度调节器研制
数控机床返回参考点故障维修
基于ANSYS的四连杆臂架系统全幅度应力分析
FANUC数控机床回参考点故障分析与排除
2014年中期预增(降)幅度最大的50家上市公司
视觉注意的数据包优先级排序策略研究