文章快速检索     高级检索
  重庆邮电大学学报(自然科学版)  2020, Vol. 32 Issue (3): 345-355  DOI: 10.3979/j.issn.1673-825X.2020.03.003
0

引用本文 

李新春, 王藜谚, 王浩童. 基于3DCNN的CSI-cluster室内指纹定位算法[J]. 重庆邮电大学学报(自然科学版), 2020, 32(3): 345-355.   DOI: 10.3979/j.issn.1673-825X.2020.03.003.
LI Xinchun, WANG Liyan, WANG Haotong. CSI-cluster indoor fingerprint localization algorithm based on 3DCNN[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2020, 32(3): 345-355.   DOI: 10.3979/j.issn.1673-825X.2020.03.003.

基金项目

国家自然科学基金(61372058)

Foundation item

The National Natural Science Foundation of China (61372058)

作者简介

李新春(1963-), 男, 辽宁喀左人, 高级工程师, 硕士生导师, 主要研究方向为无线传感器网络、图像处理与模式识别。E-mail:lixinchun@lntu.edu.cn; 王藜谚(1994-), 女, 辽宁沈阳人, 硕士研究生, 主要研究方向为无线室内定位与机器学习。E-mail:wangliyan9595@163.com; 王浩童(1993-), 男, 内蒙古人, 硕士研究生, 主要研究方向为图像处理与机器学习。E-mail:784840790@qq.com

通讯作者

李新春  lixinchun@lntu.edu.cn.

文章历史

收稿日期: 2018-11-28
修订日期: 2019-12-18
基于3DCNN的CSI-cluster室内指纹定位算法
李新春1, 王藜谚2, 王浩童2     
1. 辽宁工程技术大学 电子与信息工程学院, 辽宁 葫芦岛 125105;
2. 辽宁工程技术大学 研究生院, 辽宁 葫芦岛 125105
摘要: 针对室内环境中复杂的多径效应影响定位精度问题, 提出一种基于3维卷积神经网络(3 dimensional convolutional neural network, 3DCNN)多径程度划分的自校准指纹定位算法。该算法利用MeanShift方法分析定位区域内每一个采样点的信道状态信息数据分布特性, 得到其可代表多径效应程度的簇类数量, 结合阈值原则将指纹库划分为2种不同多径程度的子库, 从而减少多径程度差异较大的指纹点对后续定位影响利用3DCNN深度学习2类指纹子库。在定位阶段, 根据校准算法判断待测数据所属子库, 并采用相应的3DCNN模型估计位置。通过仿真实验验证, 该方法在保证指纹库构建合理性和高效性的同时, 在定位精度方面实现了明显的提升, 优于与之对比的相关算法。
关键词: 室内定位    信道状态信息    多径效应    指纹子库    3维卷积神经网络    
CSI-cluster indoor fingerprint localization algorithm based on 3DCNN
LI Xinchun1 , WANG Liyan2 , WANG Haotong2     
1. School of Electronics and Information Engineering, Liaoning Technical University, Huludao 125105, P. R. China;
2. Graduate School of Liaoning Technical University, Liaoning Technical University, Huludao 125105, P. R. China
Abstract: Aiming at the problem of location accuracy in the multi-path effect of indoor environment, this paper proposes a multi-path degree division with self-calibration fingerprint localization algorithm based on 3 dimensional convolutional neural network (3DCNN). The algorithm uses the MeanShift method to analyze the data distribution characteristics of the channel state information of each sampling point in the location area, and obtains the number of clusters that can represent the degree of multipath effect. The fingerprint library is divided into two sub-libraries with different multipath degrees by combining the threshold principle, thereby reducing the influence of fingerprint points with large differences in multipath degree on subsequent positioning, and using 3DCNN to deeply learn two types of fingerprint sub-libraries; in the positioning stage, judging the sub-library to which the data to be tested belongs according to the calibration algorithm, and adopting corresponding 3DCNN model estimates the location. The simulation experiment proves that this method can achieve a significant improvement in positioning accuracy while ensuring the rationality and high efficiency of the fingerprint database construction. This method is better than the related algorithms.
Keywords: indoor localization    channel state information    multi-path effect    fingerprint sub-libraries    3 dimensional convolutional neural    
0 引言

近些年,快速发展的移动设备和无线技术推动着基于位置服务(location based service,LBS)的研究,例如室内跟踪、工业机器人导航、健康感知和行为识别等。高精度的位置信息对于这些应用是必不可少的。目前,无线信号被广泛地运用到室内定位中,例如Wi-Fi、射频、超宽带和光信号等。因无线网络和设备具有广泛部署和价格低廉等特性,使得无需额外专用设备即可获取的Wi-Fi信号成为无线传感器捕获环境变化的理想选择。在众多无线室内定位技术中,除了要满足高精度要求外,基于Wi-Fi信号的指纹定位方法因其不需要添加额外的硬件设备以及普适性强等特点成为室内定位的研究热点[1-3]

在本研究领域中,部分研究者选用接收信号强度(received signal strength,RSS)作为指纹[4-7]。离线阶段,采集由多个选定的接入点(access point,AP)发送的RSS数据,全部参考节点(reference point,RP)的位置指纹信息存储在一个数据库中构成位置指纹空间,即指纹数据库。在线阶段,采用诸如K近邻算法[4-5]和概率贝叶斯算法[6]等方法在指纹库中搜索最匹配的指纹以进行位置估计。相关研究表明,RSS是一种高度不稳定的室内定位指标,它是复杂多变的平均单值,它的较高可变性会导致极大的位置误差,所以需要大量AP设备以及较复杂的主观数据预处理工作来弥补此缺点[8]

而相比之下,信道状态信息(channel state information,CSI)作为与位置相关稳定的细粒度信息,具有对噪声干扰的强大鲁棒性。文献[9]提出利用CSI在天线维度上的数据加权平均值代替RSS作为定位指纹,并验证其定位精度优于后者。为了更大程度地分析CSI在频域上的多样性,文献[10]提出一种基于支持向量机(support vector machine,SVM)的位置预测算法,利用空间聚类算法对信号进行去噪处理,并利用主成分分析(principal component analysis,PCA)算法提取数据主成分特征进而实现数据降维,有效地刻画了指纹与位置间非线性映射,但仍存在部分主观的数据预处理与特征选择。文献[11-12]提出小区域定位概念,将空间区域分成多个小单元,将每个单元内所包含的RP集合构成一个指纹子库,虽然通过位置划分指纹库在一定程度上改善了定位性能,但是此类文献缺少对定位环境中受多径效应影响的CSI数据空间特性的分析。最近将深度学习应用到无线定位中成为了研究趋势。文献[13]提出利用深度自动编码器(RBM)学习CSI数据特征。将深度网络的权重代替RP的指纹信息,并利用贪心学习算法训练模型来降低计算复杂度。在定位阶段使用概率方法实现在线位置估算。但由于网络层数与复杂度成正相关,若同时权衡二者,模型的性能会受到限制。为了在控制复杂度的前提下增加网络深度,文献[14]提出一种基于卷积神经网络(convolutional neural network, CNN)的室内定位方法。利用卷积核深度提取数据特征,并有效地避免了主观数据处理。在防止过拟合的同时,显著地提升了定位系统的性能。然而2维卷积仅在空间维度上计算特征,CSI深度上信息被完全压缩。基于对现有文献的分析与研究,本文提出了以下设想。

1) 传统基于CSI的室内定位方法由于受限于高维数据的处理性能,所以需要对数据进行压缩和主观地特征提取,导致其限制了定位精度的提升空间。本文考虑是否可以在避免主观特征选择的同时,充分地分析时间、子载波、天线3个维度的数据特征从而提高预测位置精度。

2) 目前根据位置划分指纹库的方法,虽然能提高算法在定位阶段的匹配效率和精度,但忽略了对数据结构与其分布原因的分析,并且定位结果局限于采样点的分布,泛化性不高。因此,本文考虑是否可以通过分析数据来探索构建指纹子库的依据,进而提高划分的合理性以及对后续定位的贡献程度。

针对以上提出的问题与思考,本文提出一种基于3维卷积神经网络(3 dimensional convolutional neural network,3DCNN)的CSI-cluster室内定位方法。在离线阶段,将指纹库划分为多径程度不同的子库集合后,利用3DCNN对子库中指纹进行学习。在定位阶段,首先分析待测数据所属子库,并结合校准算法的纠正结果采用相应的网络模型实现定位。本文通过实验确定算法中可变参数从而优化算法模型,并在使用相同数据集的基础上与一些现有的算法进行比较,验证了本文算法对定位性能的改善。

1 信道状态信息

CSI是一种数据格式,用以表示基于OFDM技术的商用IEEE802.11a/g/n无线网卡从物理层获取的系统频带内子载波粒度的信道响应,即CSI表示各个子载波上的发送端和接收端之间的信道属性。在时域中,接收信号可以表示为[15]

$ r(t) = s(t) * h(t) + n(t) $ (1)

(1) 式中:s(t)是由已知训练序列组成的发射信号;n(t是随机噪声;h(t是描述大规模衰落的信道脉冲响应(channel impulse response,CIR)。频域中的信道响应如(2)式,可以通过将输出信号与已知的输入序列做除法运算来估计由复值组成的信道矩阵Ĥ,信道矩阵也称为CSI[10-15]

$ \mathit{\boldsymbol{\hat H}} = \mathit{\boldsymbol{R}}/\mathit{\boldsymbol{S}} $ (2)

基于802.11n协议支持在发射端和接收端分别使用多个发射天线和接收天线的MIMO技术,每个CSI测量值的天线结构维度为NTx×NRx,其中,NTxNRx分别代表发射和接收天线的数量,其矩阵表示为

$ \mathit{\boldsymbol{CSI}} = \left[ {\begin{array}{*{20}{c}} {\mathit{\boldsymbol{CS}}{\mathit{\boldsymbol{I}}_{11}}}& \cdots &{\mathit{\boldsymbol{CS}}{\mathit{\boldsymbol{I}}_{1T}}}\\ \vdots &{}& \vdots \\ {\mathit{\boldsymbol{CS}}{\mathit{\boldsymbol{I}}_{R1}}}& \cdots &{\mathit{\boldsymbol{CS}}{\mathit{\boldsymbol{I}}_{RT}}} \end{array}} \right] $ (3)

(3) 式矩阵中每个元素CSI ij={csiij, n}n=1, 2, …, N可以看作是描述发送端中第i个天线与接收端中第j个天线构成的天线对之间的N个复元素矢量,其中,N是子载波的个数。在一些商用网络接口卡中,例如Intel NIC 5300,它实现了具有56个子载波的OFDM系统,其中30个子载波可以使用文献[16]中提供的工具采集CSI信息。其中,第n个子载波的信道频率响应csiij, n定义为

$ cs{i_{ij, n}} = |cs{i_{ij, n}}|{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm{exp}}\{ {\rm{j}}\angle csi{ _{ij, n}}\} $ (4)

(4) 式中,|csiij, n|和∠csiij, n分别代表第n个子载波的幅度响应和相位响应。根据文献[11-14]可知,CSI的相位易产生噪声和随机衰落,因此,在将其用作特征之前需要复杂的预处理。为了避免相关预处理,本文仅考虑CSI的幅度响应。为了分析CSI数据与位置间可能存在的映射关系,本文分别对相同位置和不同位置的数据进行对比分析,发现其具有以下特点。

1) 对于同一位置,连续数据帧的CSI幅值呈现明显的稳定性,并且不同T-R天线对对应的数据存在明显差异。

以1×3的天线结构为例,图 1为单个位置的1 000个连续数据帧在30个子载波上的CSI幅值,其中将3个T-R天线对的数据分别绘制。从图 1可以看出,CSI数据在各个维度上看似随机,但实际上随着时间的推移呈现出明显的相似结构,并且数据在子载波、天线对的维度上呈现出不同的特性。本文旨在利用数据的稳定性和差异性在时间、载波、天线3个维度上深度并全面地分析CSI数据特征。

图 1 单个位置的CSI幅度值 Fig.1 Amplitudes of CSI measured at single location

2) 不同位置的CSI幅度值区别显著。为了方便观察,本文参照文献[14]提出的CSI特征图,将数据转变为RGB格式,其中RGB通道代表天线对,行和列中的像素分别对应时间和子载波的CSI幅值,图 2为其灰度图像。从图 2可以看出,随机选择的4个不同位置的数据具有明显的差异,这表明利用CSI幅值作为区分位置信息的依据是可行的。

图 2 4个位置上的CSI特征灰度图 Fig.2 CSI feature grayscale images of four different locations

3) 由于室内环境中存在复杂的多径效应,不同位置的数据分布结构具有相应的异同特性。

由于CSI幅值反映具有丰富的多径分量和信道衰落的信道频率响应,数据的分布结构是传播效应引起的衰落的结果,所以每个采样点CSI数据的簇类数量即代表该位置遭受多径效应的程度[13]图 3绘制了36个不同位置的数据簇类数量的2D等高线图,其中XY轴构成位置坐标,在等高线上标注该坐标对应数据簇的数量。从图 3可发现,即使位置坐标相近,由于它们受多径影响程度不同,其对应数据簇的数量不同。一些位置由于具有较少的反射和扩散仅有2个簇,而一些具有多于10个簇的位置可能遭受严重的多径效应。

图 3 在36个位置上CSI幅值簇数的等高线图 Fig.3 Contour of the number of clusters of CSI amplitude values at 36 different locations
2 基于3DCNN的CSI-cluster室内指纹定位算法

本文算法结构如图 4。在离线阶段,首先利用CSI-cluster算法分析定位区域内每个采样点数据的簇类数量(即代表该点受多径效应程度),并在簇类结果中选取划分阈值将定位区域分为多径效应多和少2类子区域,其中每个子区域内所有参考点的指纹信息构成相应的指纹子库;然后对2类指纹子库分别利用相同网络结构的3DCNN模型进行训练,实现深度分析数据的同时避免主观数据预处理。

图 4 算法结构 Fig.4 Algorithm structure

在定位阶段,为了避免由于误判所属子库导致影响定位精度,针对本文算法结构提出一种校准算法来增强算法的合理性和全面性。首先通过分析待测样本的簇类数量,从而判断该点所属指纹子库,然后结合校准算法结果利用相应模型估算位置。

2.1 CSI-cluster算法

对于指纹定位方法,庞大的指纹库既可提高定位精度,但也会加大全局搜索的匹配工作,从而影响指纹定位的性能。指纹库的预稀疏化处理可依据一定规则划分空间区域,通过缩小匹配搜索范围并精细化分析,从而可有效地提高定位算法的性能[17-18]。而传统对指纹库的划分方法按照RP的位置相似度将空间区域划分多个子区域,忽略了指纹数据的空间特性,对提升后续定位性能贡献较小。

针对上述问题,本文提出以定位区域内每个参考点受多径影响的程度为划分子库依据的CSI-cluster算法。利用无需任何先验条件的MeanShift聚类算法[19]逐一分析单个RP的CSI数据分布结构,得到每一个RP可代表多径程度的簇类数量。在簇类结果中选取阈值,根据RP的簇数是否大于阈值将整体定位区域划分为2种多径程度的子区域。

假设某个RP的采集样本为{CSI1, CSI2, …, CSIn},其中n代表采集数据帧的个数,每个CSIi是由Nt-r个含有Nsub个子载波的天线对组成的Nt-r×Nsub维数据。首先在数据集中任选一帧数据CSIi作为中心center,关于中心点的概率密度函数定义为

$ {\hat f_{h, K}}({\rm{ }}center{\rm{ }}) = \frac{{{c_{k, d}}}}{{N{h^d}}}\sum\limits_{i = 1}^N k \left( {{{\left\| {\frac{{CS{I_i} - {\rm{ }}center}}{h}} \right\|}^2}} \right) $ (5)

(5) 式中:h为高维度窗口区域的半径;N代表落在区域内的样本数量;ck, d为核函数k的标准化常数。为了更新区域中心,则要找到CSI样本最大分布密度,即通过分析函数${\hat f_{h, K}}$的梯度信息从而找到局部最优解。函数的梯度估计表示为

$ \begin{align} & \nabla \hat{\ }{{f}_{h, K}}(\text{ }center\text{ })=\frac{2{{c}_{k, d}}}{N{{h}^{(d+2)}}}\sum\limits_{i=1}^{N}{(}CS{{I}_{i}}- \\ & \text{ }center\text{ })\left[ -{{k}^{\prime }}\left( {{\left\| \frac{CS{{I}_{i}}-\text{ }center}{h} \right\|}^{2}} \right) \right] \\ \end{align} $ (6)

g(x)=-k′(x),那么(6)式可以表示为

$ \begin{align} & \nabla \hat{\ }{{f}_{h, K}}(\text{ }center\text{ })=\frac{2{{c}_{k, d}}}{N{{h}^{(d+2)}}}\left[ \sum\limits_{i=1}^{N}{g}\left( {{\left\| \frac{CS{{I}_{i}}-\text{ }center}{h} \right\|}^{2}} \right) \right] \\ & \ \ \ \ \ \ \ \ \ \ \left[ \frac{\sum\limits_{i=1}^{N}{C}S{{I}_{i}}g\left( {{\left\| \frac{CS{{I}_{i}}-\text{ }center}{h} \right\|}^{2}} \right)}{\sum\limits_{i=1}^{N}{g}\left( {{\left\| \frac{CS{{I}_{i}}-\text{ }center}{h} \right\|}^{2}} \right)}-center \right] \\ \end{align} $ (7)

通过(7)式可求出更新的中心点,分别为(8)式和(9)式。通过迭代方式找到最终的簇类中心。

$ \begin{array}{l} {M_{h, K}}({\rm{ }}center{\rm{ }}) = \frac{{\sum\limits_{i = 1}^N C S{I_i}g\left( {{{\left\| {\frac{{CS{I_i} - {\rm{ }}center}}{h}} \right\|}^2}} \right)}}{{\sum\limits_{i = 1}^N g \left( {{{\left\| {\frac{{CS{I_i} - {\rm{ }}center}}{h}} \right\|}^2}} \right)}} - \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} center \end{array} $ (8)
$ \begin{array}{l} cente{r_{{\rm{ new }}}} = {M_{h, K}}({\rm{ }}center{\rm{ }}) + {\rm{ }}center{\rm{ }} = \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \frac{{\sum\limits_{i = 1}^N C S{I_i}g\left( {{{\left\| {\frac{{CS{I_i} - {\rm{ }}center}}{h}} \right\|}^2}} \right)}}{{\sum\limits_{i = 1}^N g \left( {{{\left\| {\frac{{CS{I_i} - {\rm{ }}center}}{h}} \right\|}^2}} \right)}} \end{array} $ (9)

当满足|Mh, K(center)|≈0时,即代表中心漂移距离为极小值,则更新结束。当前更新的中心点位于局部密度最大值点,即为一个簇类的中心,并且在迭代过程中遍历的点都属于该簇类。当分析完每个样本所属的类别后统计簇类的数量,即可得到该数据集的簇类数量。

按照以上方法对定位区域内所有RP进行分析,得到代表每个RP受多径程度的簇类数量。通过结合后续实验结果,在簇类结果中选择最佳划分阈值threshold。若RP的簇类数量大于等于阈值,则代表该点属于多径效应多的子区域,反之则属于多径效应少的子区域,子区域中RP集合构成指纹子库。

CSI-cluster算法流程如下。

1) 从某个RP的数据集中随机选取一帧数据CSIi作为初始中心center

2) 根据(8)式计算以center为中心的h为半径的窗口区域内数据的MeanShift向量Mh, K(center);

3) 利用(9)式得到更新中心centernew,并以该点为下一个窗口区域的中心center

4) 重复步骤2, 3。若满足|Mh, K(center)|≈0迭代结束,并簇类数量Cnum=Cnum+1;

5) 重复步骤1-4,直到该RP点的所有数据都完成遍历,记录该RP的簇类数量Cnum

6) 重复步骤1)~5),直到完成所有RP的簇类数量的计算;

7) 从所有RP的簇类结果中选取一值作为阈值threshold

8) 若某RP满足Cnumthreshold,则该RP的指纹数据属于指纹子库1,反之则属于指纹子库2;

9) 重复步骤8,直到完成所有RP所属指纹子库的分析。

2.2 基于3DCNN的位置预测算法

卷积神经网络[14, 20]是一种专门处理具有类似网格结构数据的神经网络,例如时间序列数据和图像数据。由于它的参数共享和稀疏交互的特征,在存储需求和统计效率方面极大地优于稠密矩阵的乘法运算。CNN旨在通过最少的预处理直接在原始数据上操作,通过自动优选特征避免由主观数据预处理影响整体模型的性能。3DCNN的网络结构与2DCNN相似,但相比之下,前者可以通过3D卷积核更好地建模于深度上的信息,提取特征能力更强[21]图 5说明了二者的差异。当应用于分析CSI数据特征时,期望更好地捕获时间、子载波及天线3个维度的特征信息。因此,本文在CNN的卷积阶段使用3D卷积。

图 5 2D卷积与3D卷积的区别 Fig.5 Difference between 2D convolution and 3D convolution

对于3DCNN模型的复杂度分析包括时间复杂度和空间复杂度,前者为衡量模型训练时间的参数,后者决定了模型的参数数量,同时也代表该模型计算量的量值, 若模型的参数越多则对训练数据的数量需求越大。时间复杂度和空间复杂度的表达式分别为

$ {\rm{Time}}:O(\sum\limits_{l = 1}^D {M_l^2} \times ({K_{lx}} \times {K_{ly}} \times {K_{lz}}) \times {C_{l - 1}} \times {C_l}) $ (10)
$ {\rm{Space}}:O(\sum\limits_{l = 1}^D {({K_{lx}} \times {K_{ly}} \times {K_{lz}})} \times {C_{l - 1}} \times {C_l}) $ (11)

(10)—(11)式中:D代表网络深度;l为卷积层的索引;MlCl分别代表第l个卷积层的输出特征图的边长和输出通道数;Klx, Kly, Klz即分别代表第l个卷积层的卷积核尺寸的长度,宽度与深度。

参考文献[14]提出的CSI特征图像概念,将CSI数据尺寸调整为Nt×Nsub×Nt-r,从左至右分别代表连续数据帧、子载波以及天线对的数量。为了避免采集数据时大量的时间开销以及训练数据量不足无法支撑网络训练,利用合适的窗口大小(等同于单个特征图像在时间维度上的长度),步长为1的滑动窗口方法在时间维度上滑动,扩大训练数据量。表 1为实现位置预测的网络结构及其复杂度。表 1中,时间复杂度M为显存占用指标,1M近似为106。除全连接层以外,都采用具有高计算速度的ReLU函数作为激活函数,这有利于克服梯度消失并产生具有良好的稀疏性的网络。模型的最后一层使用Softmax函数作为输出,将输出映射到[0, 1],神经元的输出总和为1。

表 1 3维卷积神经网络结构及复杂度 Tab.1 Structure and complexity of 3DCNN

输出层的神经元数量等于该模型所学习的指纹库中RP的数量。因此,神经元的输出可以被解释为待测点处于不同RP的概率,第j个神经元的输出p(j)表示为

$ {p^{(j)}} = \frac{{{{\rm{e}}^{{\omega _j}{T_x}(i)}}}}{{\sum\limits_{j = 1}^K {{{\rm{e}}^{{\omega _j}{T_x}(i)}}} }} $ (12)

(12) 式中:K是输出神经元的总数,即RP的数量;Tx(i)和ωj分别为该层的输入与连接权值。为了防止网络过拟合并提高模型的泛化性,本文使用交叉熵加上L2正则化作为损失函数,如(13)式。在训练过程中,使用随机梯度下降和反向传播算法来优化网络,直到相邻迭代之间的损失函数的下降值低于阈值,即得到最优解。

$ J(\omega ) = {L_{{\rm{cross\_ entropy}}{{\rm{ }}_{\rm{ - }}}{\rm{ loss }}}}(\omega ) + \frac{\lambda }{2}{\left\| {{\kern 1pt} \omega {\kern 1pt} } \right\|^2} $ (13)

在定位阶段,将待测目标的CSI数据输入模型中,模型的Softmax输出p(j)可以被解释为待测目标点位于第j个RP点的概率,使用概率加权方法来估计可能出现在定位区域内任何位置的待测目标的坐标,计算方法如(14)式,其中LRPi代表为第j个RP的坐标,S为训练该模型学习的指纹库中RP的集合。

$ \hat L = \frac{{\sum\limits_{j{\kern 1pt} \in {\kern 1pt} {\kern 1pt} S} {{p^{(j)}}} {L_{R{P_j}}}}}{{\sum\limits_{j{\kern 1pt} \in {\kern 1pt} {\kern 1pt} S} {{p^{(j)}}} }} $ (14)
2.3 校准算法

为了避免样本所属子库的误判导致增大定位误差,本文提出一种针对定位阶段数据分析与决策修正的校准算法。以2个模型中验证集输出的Softmax最小值{Ti, i=1, 2}为条件,判断在定位阶段可能出现的3种数据情况,分别为理想参考点、指纹库划分临界点以及非参考点。若待预测数据的Softmax输出值大于并等于Ti,即代表待测目标属于该模型的参考点,反之亦然。

图 6给出了3种数据情况的判断依据以及对应的校准修正方法。首先判断待测目标所属子库i,利用相对应训练好的网络模型预测目标位置。若其Softmax输出结果大于并等于Ti,则为理想参考点,无需修正;若小于Ti,则选用另一个模型j(ji)对目标进行预测。若模型j的输出大于并等于Tj,则目标属于第1次子库误判的划分临界点,即选用模型j预测该点位置;若模型j的输出仍小于Tj,即代表目标既不属于任意一类子库,则该点即为非参考点,对于此类数据选用所属子库训练的网络模型预测位置。

图 6 校准算法的流程图 Fig.6 Flow chart of calibration algorithm
3 实验与结果分析 3.1 实验配置

本文实验设备由2部分组成:一台TP-LINK 841N路由器(2天线)和一台配备了Intel 5300NIC的戴尔笔记本电脑,前者作为发送无线信号的接入点(AP);后者作为接收数据的移动终端。在移动设备上,运行版本为10.04LTS的32 bit Ubuntu Linux系统,以20 Hz的频率连续ping AP,并使用Halperin等开发的工具CSI TOOL采集数据。本文选择Python作为整体算法的编程语言,并且深度学习模型基于Keras与Tensorflow平台实现。

3.2 实验场景

本文在辽宁工程技术大学耘慧楼二楼的一个约90 m2的移动通信实验室中建立一个实验平台。这个实验室是一个杂乱的环境,桌椅、电脑和实验器材可阻挡部分信号传输路径,形成了复杂的无线传播环境(non light of sight,NLOS)。如图 7,在实验区域内均匀地部署了80个位置作为参考点(图中圆形标记),其中2个相邻的参考点之间的距离为1.2 m,并在终端移动过程中随机选取14个测试点(图中星形标记)。

图 7 实验区域布局 Fig.7 Layout of experimental area

在实验中仅使用一个接入点,并且该接入点位于房间的一端,用接收设备固定在同一高度的桌面上。在每个位置上采集430帧CSI数据信息,每一帧180维数据是由在天线维度上为2根发送天线和3根接收天线构成的6个T-R天线对,以及在载波维度上为30个子载波信息组成。

3.3 窗口区域半径对簇类结果的影响

在本文提出的CSI-cluster算法中,指纹库的划分依赖于簇类数量分析结果。窗口区域半径h是影响MeanShift聚类算法效率的主要因素,参数的选取会直接影响收敛速度和收敛结构[19]。若参数h过大,算法忽略数据分布的细节部分,导致聚类结果出现严重的欠分割现象,从而无法合理区分多径程度;若h过小,聚类算法对数据分布的分析过于灵敏,导致出现严重的过分割现象,影响后续选取划分阈值的效率与合理性。为了对比分析设置不同h的聚类效果,本文随机选取3~13作为参数设置值,并以箱线图的形式呈现不同h下聚类算法对指纹库中所有RP的聚类结果(簇类数量)分布情况,如图 8

图 8 不同半径h参数下聚类结果的箱线图 Fig.8 Box plot of clustering results at each h

h为3时,所有参考点的聚类结果为40个簇类,即代表定位区域内所有位置的多径效应一致,则与实际情况相悖。当半径h大于10时,聚类结果跨度范围较小,不但可选阈值范围较小,并且弱化原本不同RP间的多径差异性。相比之下,当参数选择在6到9之间时,结果分布相对集中,并且异常值对整体跨度的影响较小,有利于后续选取划分阈值。但是手动调试聚类算法中参数h不仅需要花费大量的时间和资源,并且存在很大的随机性和偶然性。所以,本文利用Estimate Bandwidth算法以自动搜索优化参数的方式来确定区域半径h

3.4 特征图像尺寸对网络模型性能的影响

根据本文实验设定,已知CSI数据在子载波维度和天线维度的长度分别为30和6,即CSI特征图像尺寸为Nt×30×6,其中Nt代表连续数据帧的数量。在相同CSI样本总数前提下,当Nt越大即代表构成单个CSI特征图像的帧数越多,而用于训练模型的数据(特征图像)总数越少。

为了防止过拟合的同时构造有效特征图像,本文通过设置不同参数Nt, 比较分析了不同特征图像尺寸的性能,实验结果总结在表 2中。从表 2可以看出,尺寸为30×30×6的CSI特征图像明显优于其他数据尺寸。这表明由30帧样本构成的特征图像适合于分析与位置信息相映射的CSI数据特性。这可能是因为15帧过短无法构造有效CSI特征图像,而45帧与60帧过长导致训练样本数量不足,使模型容易产生过拟合,并且帧的数量越多会造成单个训练样本的特征冗余,可能会提高模型的复杂度。

表 2 不同特征图像尺寸的模型性能对比 Tab.2 Comparison of model performance with different feature image sizes  
3.5 卷积核尺寸对网络模型性能的影响

由于不同卷积核提取特征能力不同,进而可能会对后续定位精度产生影响,故选取一些常用卷积核来对比分析不同尺寸卷积核的模型性能。实验结果如表 3。考虑到模型的输入数据尺寸,故卷积核的深度分别设定为1, 2, 3。经过多次实验验证,其中3×3×3的卷积核性能较佳,模型的识别精度可达98.92%。相比之下,当卷积核深度为3时,其性能优于同行列大小的卷积核。在相同深度尺寸的前提下,行列为3的卷积核精度优于其他尺寸。虽然较大尺寸的卷积核可缩短执行时间,但在卷积操作后所得特征较少,相应模型识别精度较低。较小尺寸的卷积核虽能实现较高的精度,但卷积计算量大,因而执行时间较长。

表 3 不同卷积核尺寸的模型性能对比 Tab.3 Comparison of model performance with different convolutional kernel sizes
3.6 划分阈值对定位性能的影响

由于不同的指纹库划分阈值会对指纹库构建的合理性和有效性产生一定影响,并且阈值过大或过小可能会导致指纹库划分失衡,并且降低后续定位的性能,所以本文通过实验确定合理的划分阈值,从而保证整体算法具有最优定位效果。划分阈值的选取范围由整体指纹库中簇类数量的最小值和最大值决定。通过上文所述方式确定聚类算法的半径h参数后,可得出所有参考点的簇类结果,如图 9

图 9 定位区域内所有参考点的簇类数量累积概率分布 Fig.9 CDF of number of clusters of all RPs in the location area

在实验区域内,多径效应最严重的位置具有9个簇类,受多径影响最小的位置具有2个簇类,并且簇数为4, 5的RP数量居多。所以本文在此范围内选择最佳指纹库划分阈值,实验结果如表 4

表 4 不同阈值的实验结果对比 Tab.4 Comparison of experimental results with different thresholds

从实验结果可以分析得出,当选择实验范围的最大值或最小值作为指纹库划分阈值时,即代表未对指纹库划分子库,整体算法的平均误差达到1.970 m,并非为实验结果中最佳定位精度,由此表明,与无指纹库划分的定位效果相比,根据多径效应程度合理地划分指纹库可有效地减少非同类(非相似多径程度)数据的干扰,从而降低定位误差。当阈值设置为8时,由于对用于训练2个模型的样本数量分配不合理,其中代表多径程度大的子库训练样本数量过少,而另一子库内多径程度跨度较大,相似度不高,其平均误差和第1次子库误判率分别为2.803 m和2.323%。当阈值为4和6时,虽然其精度有所提升,但是误判率较高导致增加定位执行时间。

综合考虑阈值对定位精度和定位效率的影响,本文选择5作为划分指纹库的最佳阈值。此时定位精度较理想,通过合理划分指纹库,可减少与待测点相比多径差异较大的采样点数据的影响。并且子库分配较均衡有利于减少匹配阶段的计算开销,第1次子库误判率低于其他大部分阈值的结果,可有效减少在线定位的执行时间,从而达到相对较优的定位效果。

3.7 定位实验

为了验证在定位阶段的校准算法对算法的贡献程度,本文在确定以上参数达到算法最优状态的基础上,将对有校准算法和无校准算法2种情况进行对比实验,实验结果如图 10。在定位阶段,若测试数据先经过校准算法纠正,可实现83%的测试数据的定位误差低于1.5 m,比未经校准算法修正的定位结果提高了7%,并且后者的最大定位误差高达7.3 m,而校准算法可将其修正减小到5.4 m。所以实验证明本文提出的校准算法可有效地修正定位偏差,并且完善算法的性能。

图 10 有无校准算法的累积概率分布对比 Fig.10 Comparison of CDF with calibration or without calibration

为了验证本文提出的算法的性能,在使用相同的数据集的基础上,将本文算法与Pinloc算法[12], Deepfi算法[13]和Confi算法[14]分别在定位精度和定位效率方面进行比较,其中Pinloc算法代表以位置为划分指纹库依据的定位算法,Deepfi算法与Confi算法为基于深度学习的定位方法。图 11为上述4种算法的平均定位误差的累积概率分布(CFD)。从图 11可以观察到,本文算法在1.5 m以内的定位精度达到83%,分别比Pinloc算法,Deepfi算法和Confi算法提高23%,13%和8%。此外本文算法可实现93%的数据定位误差低于2.5 m,而在相同的累积概率下,其他算法的误差为别为6 m,4.3 m和4 m。由此证明在使用相同数据集的前提下,深度网络具有较强泛化能力,并且3D卷积可较好地捕捉CSI在3个维度上的特征,通过充分分析指纹数据,并结合合理地划分指纹库可有效提高定位精度。

图 11 4种算法的累积概率分布对比 Fig.11 Comparison of CDF with 4 different algorithms

表 5对4种算法的复杂度做出了进一步说明。表 5中,4种算法中Pinloc算法平均执行时间最短,其余3种算法所需执行时间相近。这是因为Pinloc算法将指纹库划分为多个由小区域内采样点构成的指纹子库,较大程度地降低了匹配消耗,但其定位精度低于其他算法。在3种利用深度学习的算法中,采用卷积操作的2种算法不仅定位精度优于Deepfi算法,并且二者模型的复杂程度低于后者,所需执行时间小于后者。虽然本文算法利用3维卷积以参数存储消耗为代价提高定位精度,但通过划分指纹库提高了算法的匹配效率,其执行时间略高于Confi算法的执行时间,仅多于后者0.029 s。

表 5 4种算法的执行时间对比 Tab.5 Comparison of execution time with 4 different algorithms  
4 总结

为了提高复杂多径环境中的定位精度,本文提出一种基于3DCNN的CSI-cluster室内指纹定位方法。该方法利用MeanShift聚类算法分析CSI数据结构得到每个采样点可代表受多径影响程度的簇类数量,并通过实验验证选择最佳划分阈值将指纹库划分为多径效应多和少2类,利用相同结构的3维卷积神经网络对2类子库分别进行学习,从而得到与子库相对应的网络模型。在定位阶段,通过CSI-cluster算法分析待测位置所属子库,利用校准算法对可能出现的误判情况进行纠正,最后利用纠正结果指向的模型预测待测点的位置。实验表明,校准算法可有效地修正定位误差。对指纹库进行划分不仅可以避免多径程度差异较大的采样点对定位的影响,而且还可有效地弥补3维卷积产生较大的参数消耗,从而对降低算法的复杂度做出了一定贡献。本文利用深度网络模型充分学习CSI数据特征,使其在定位精度方面均优于Pinloc算法, Deepfi算法和Confi算法。但是当实验区域附近有人员走动时,定位结果会产生变化,所以下一步的工作要探寻其中原因并且研究提高定位精度的方法。

参考文献
[1]
陈锐志, 叶峰. 基于Wi-Fi信道状态信息的室内定位技术现状综述[J]. 武汉大学学报(信息科学版), 2018, 48(12): 1-7.
CHEN R Z, YE F. An Overview of Indoor Positioning Technology Based on Wi-Fi Channel State Information[J]. Geomatics and Information Science of Wuhan University, 2018, 48(12): 1-7.
[2]
WANG X Y. WiFi fingerprinting based indoor localization: when CSI tensor meets deep residual sharing learning[D]. Alabama, LISA: Auburn University, 2017.
[3]
DWIYASA F, LIM M H. A survey of problems and approaches in wireless-based indoor positioning[C]//International Conference on Indoor Positioning and Indoor Navigation. Alcala de Henares, Spain: IEEE, 2016: 1-7.
[4]
李华亮, 钱志鸿, 田洪亮. 基于核函数特征提取的室内定位算法研究[J]. 通信学报, 2017, 38(1): 158-167.
LI H L, QIAN Z H, TIAN H L. Research on Indoor Localization Algorithm Based on kernel principal component analysis[J]. Journal on Communications, 2017, 38(1): 158-167.
[5]
BAHL V, PADMANABHAN V. RADAR: An in-building RF-based user location and tracking system[C]//INFOCOM Nineteenth Joint Conference of the IEEE Computer & Communications Societies. New York: IEEE, 2000: 775-784
[6]
YOUSSEF M, AGRAWALA A. The horus wlan location determination system[J]. Wireless Networks, 2007, 14(3): 357-374.
[7]
郑倩, 胡久松, 刘宏立, 等. 基于压缩感知的室内定位系统的定位性能分析[J]. 重庆邮电大学学报(自然科学版), 2018, 30(6): 768-775.
ZHENG Q, HU J S, LIU H L, et al. Localization performance analysis of indoor positioning system based on compressive sensing[J]. Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition), 2018, 30(6): 768-775.
[8]
YANG Z, ZHOU Z M, LIU Y H. From RSSI to CSI:Indoor localization via channel response[J]. ACM Computing Surveys(CSUR), 2013, 46(2): 1-32.
[9]
XIAO J, WU K, YI Y, et al. FIFS: Fine-grained indoor fingerprinting system[C]//International Conference on Computer Communications & Networks. Munich, Germany: IEEE, 2012: 1-7.
[10]
ZHOU R, LU X, ZHAO P, et al. Device-free presence detection and localization with SVM and CSI Fingerprinting[J]. IEEE Sensors Journal, 2017, 17(23): 90-99.
[11]
刘朝玄.基于CSI的WIFI室内定位技术研究[D].成都: 电子科技大学, 2018.
LIU Z X. Research on csi-based WIFI indoor positioning technology[D]. Chendu: University of electronic science and technology of China, 2018.
[12]
SEN S, RADUNOVIC B, CHOUDHURY R R, et al. You are facing the Mona Lisa: spot localization using PHY layer information[C]//International Conference on Mobile Systems.[S.l.]: ACM, 2012: 1-6.
[13]
WANG X, GAO L, MAO S, et al. CSI-based fingerprinting for indoor localization:A deep learning approach[J]. IEEE Transactions on Vehicular Technology, 2017, 66(1): 763-776.
[14]
CHEN H, ZHANG Y F, LI W, et al. ConFi:Convolutional neural networks based indoor Wi-Fi localization using channel state information[J]. IEEE Access, 2017, PP(99): 66-74.
[15]
TSE D, VISWANATH P. Fundamentals of wireless communication[M]. Britain: Cambridge University Press, 2009: 60-73.
[16]
HALPERIN D, HU W, SHETH A, et al. Predictable 802.11 packet delivery from wireless channel measurements[J]. ACM SIGCOMM Computer Communication Review, 2010, 40(4): 159-170. DOI:10.1145/1851275.1851203
[17]
田家英, 张志华. 基于近邻法的WIFI室内定位改进算法研究[J]. 测绘工程, 2018, 27(12): 31-36.
TIAN J Y, ZHANG Z H. Improved algorithm of WIFI indoor location based on nearest neighbor method[J]. Engineering of Surveying and Mapping, 2018, 27(12): 31-36.
[18]
李方敏, 张韬, 刘凯, 等. 基于距离测量和位置指纹的室内定位方法研究[J]. 计算机学报, 2018, 41(95): 1-14.
LI F M, ZHANG T, LIU K, et al. An indoor localization method based on location fingerprint and range measurement[J]. Chinese Journal of Computers, 2018, 41(95): 1-14.
[19]
COMANICIU D, MEER P. Mean Shift:a robust approach toward feature space analysis, IEEE Trans[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2002, 24(5): 603-619.
[20]
甘俊英, 李山路, 翟懿奎, 等. 基于3D卷积神经网络的活体人脸检测[J]. 信号处理, 2017, 33(11): 15-22.
GAN J Y, LI S L, ZHAI Y K, et al. 3D convolutional neural network based on face anti-spoofing[J]. Journal of Signal Processing, 2017, 33(11): 15-22.
[21]
MOLCHANOV P, GUPTA S, KIM K, et al. Hand gesture recognition with 3D convolutional neural networks[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Boston MA, USA: IEEE, 2015: 1-6.