1. 引言
随着智能穿戴技术与物联网的快速发展,对基于定位服务(Location-Based Services, LBS)的需求显著增长,特别是在人流密集的区域,如购物中心、停车场、医院、工业区和机场等。尽管在户外环境中,人们广泛使用全球卫星导航系统(Global Navigation Satellite Systems, GNSS)进行位置定位,但GNSS在室内环境中定位的信号易受阻碍、减弱或反射,变得不太可靠 [1] 。为了解决这一问题,许多学者进行了研究并提出了基于各种无线技术的室内定位系统,如射频识别(Radio Frequency Identification, RFID) [2] [3] 、超宽带(Ultra-Wideband, UWB) [4] [5] 、ZigBee [6] 、蓝牙(Bluetooth) [7] [8] 、可见光 [9] [10] 、WIFI [11] [12] 等。因为WIFI基础设施广泛分布和用户设备成本相对较低,基于WIFI的室内定位方法成为流行的室内定位技术。WIFI定位技术主要分为基于信号传播模型和基于RSSI指纹的方法。基于信号传播模型方法依赖于确定信号源的位置,但由于室内信号传播的复杂性,这种方法难以实现高精度定位 [13] 。与之相对,指纹识别定位方法因其简便性和较高的定位精度而成为研究焦点。为了获得令人满意的室内定位精度,机器学习方法逐渐被应用于室内定位。在文献 [14] 中,使用K最近邻(KNN)来匹配指纹数据库中位置的RSSI数据,但KNN对数据噪声很敏感,这使得定位结果容易出错。为了提高定位可靠性,在文献 [15] 中提出了一种解决室内定位问题的贝叶斯方法,但是室内RSSI数据的复杂分布使得贝叶斯方法无法很好地拟合RSSI数据。上述算法只是学习数据的浅层特征,复杂多样的室内环境使得室内WIFI信号数据非常复杂,导致机器学习方法无法从复杂的RSSI指纹中提取出所有可靠的特征。而深度学习由于在大量训练数据的情况下具有提取复杂的特征,所以人们将深度学习和室内定位结合起来。在文献 [16] 中,W. Zhang提出了一种使用深度神经网络(DNN)和WIFI结合进行室内定位的方法,该方法使用隐马尔可夫模型(HMM)基于深度神经网络获得先前位置提高了定位准确性。但因为基于深度学习的室内定位精度取决于全连接层数量,增加全连接层的数量可以提高定位精度,但它会导致计算复杂性增加。基于这个问题,在文献 [17] 中,song等人提出了一个基于CNN的WIFI指纹室内定位系统。通过堆叠自编码器(SAE)降低数据维度,利用CNN卷积取代深度神经网络中的一般矩阵乘法,从而降低计算复杂性。但是该方法的定位精度不够高,而且堆叠自编码器通过提取有意义的特征提高了定位精度。但是在反向传播过程中既耗时又计算复杂。
为了解决上述问题,本文提出了一种基于DS-ECA模块的WIFI指纹室内定位模型。ECA注意力模块与深度可分离卷积融合形成新的模块(DS-ECA)。在特征提取模块中,用DS-ECA模块代替普通的卷积层,在降低模型参数量的同时,极大的提高了模型的性能。在UJIIndoorLoc数据集 [18] 、Tampere数据集 [19] 的实验结果表明:与其他先进WIFI指纹室内定位方法相比,DS-ECA-CNN模型定位准确率更高、定位误差更小、模型参数量更少。
2. 模型设计
本文提出的DS-ECA-CNN室内定位模型,将特征提取模块中的卷积层换成深度可分离卷积,同时引入高效的通道注意力(ECA)模块,深度可分离卷积能够降低计算复杂性和优化参数利用率,通道注意力(ECA)模块的能力,在较少参数的情况下提升特征的表达力和区分度。这种架构使得模型能够在计算资源有限的环境中有效地执行关键特征的提取和分析。
2.1. 数据预处理
在图像处理领域,卷积神经网络(CNN) [20] 已证明其具有卓越的处理能力。包括高效的空间特征提取、强大的局部感知能力、对层次化特征的学习、对图像几何变换具有一定的不变性。鉴于这些优点,本文采用了一种将一维RSSI信号数据转换成包含空间位置信息的灰度图像的方法,这样做可以更充分地利用CNN在处理图像方面的优势。转换的详细流程如下:
(1) 格式转换:模型接收的输入是将相邻接入点的RSSI值转化为灰度图像形式(图1)。每个测量点收集来自520个接入点(AP)的信号。这些信号的RSSI原始数值介于−102 dBm和0 dBm之间,0代表极弱或无信号,而100代表信号最强。考虑到极强或极弱信号的情况非常罕见,因此将信号强度等于100的情况重新编码为0。
(2) 图像转换:以UJIIndoorLoc数据集为例明确转换过程。数据集的坐标采用的是UTM (Universal Transverse Mercator)坐标系统,含有21,049个测量点,每个采集点都会收集520个AP的RSSI值。首先UJIIndoorLoc数据集依据8:2比例进行分割。接下来,程序从CSV数据文件逐行提取数据,并将其处理成26 × 20尺寸的二维矩阵。然后,这些矩阵被进一步转换成灰度图像,每个图像以对应的UTM坐标为标签,同时移除不合格的图像。在图像保存过程中,系统会检查指定路径下是否存在特定文件夹,若不存在则创建新的文件夹,文件夹名称是根据建筑编号(0~2)与楼层编号(0~4)的组合,以及RSSI信号的地理位置信息命名的。最终,转换后的灰度图像分别保存到对应的文件夹中,一部分用于识别建筑和楼层,另一部分用于确定具体的地理坐标。表1为RSSI转换为灰度图像伪代码。
![](//html.hanspub.org/file/176-2571711x7_hanspub.png?20240606102012413)
Figure 1. RSSI to grayscale image conversion
图1. RSSI转换为灰度图像
2.2. 注意力机制
注意力机制(Attention Mechanism) [20] 是一种在深度学习中常用的技术,核心思想是模型能够专注于输入数据的某些部分,从而提高处理效率和性能。本文使用的ECA注意力模块属于通道注意力机制。ECA注意力模块的核心在于利用一个较小的一维卷积核来生成通道权重,避免了复杂的多步骤操作。该模块通过全局平均池化,得到通道级的统计特征,然后应用一维卷积以自适应地确定每个通道的重要性。与其他注意力机制相比,ECA的优势在于其简洁高效的设计,这使得它在提升模型关注重要特征的同时,避免了过多的计算开销。ECA注意力模块结构图如图2所示。
![](Images/Table_Tmp.jpg)
Table 1. Pseudo-codes for RSSI conversion to grayscale images
表1. RSSI转换为灰度图像伪代码
2.3. DS-ECA模块设计
DS-ECA模块是将深度可分离卷积 [21] 结合ECA注意力模块构成的高性能特征提取模块,相比普通卷积层,参数量更少,特征提取能力更强。其结构图如图3所示。
图中DS-ECA模块设计共有4步,开始于一个深度卷积(Depthwise Conv2d),它使用大小为3 × 3像素的卷积核,步长为1,填充为0。这种深度卷积结构的每个输入通道独立地与自己的滤波器(或称卷积核)进行卷积,这意味着如果输入有多个通道,每个通道都会使用不同的滤波器进行处理,而这些滤波器仅在其对应的单个通道上进行卷积操作,不会跨通道组合信息。这一步骤主要负责提取空间特征。在深度卷积之后,紧跟一个批量归一化层(Batch Normalization),然后是ReLU激活函数,保持h、w和dim不变。接下来,输出通过一个1 × 1卷积层(Pointwise Convolution),步长为1,逐点卷积可以看作是对深度卷积的输出通道进行全连接层的处理,它负责融合来自不同通道的信息,并可以调整输出的通道数。在1 × 1卷积层后接着引入一个ECA (Efficient Channel Attention)这是一种基于通道的注意力机制。ECA层通过捕捉通道间的依赖关系,有效提高模型对关键特征的聚焦能力。然后再次通过批量归一化层,最后是再次应用ReLU激活函数,确保了非线性的特征转换,增强了模块的表达能力。
2.4. DS-ECA-CNN模型设计
DS-ECA-CNN模型设计的网络结构如图4所示。
![](//html.hanspub.org/file/176-2571711x10_hanspub.png?20240606102012413)
Figure 4. DS-ECA-CNN model structure
图4. DS-ECA-CNN模型结构
将预处理好的大小为224 × 224像素,通道数为1的WIFI指纹灰度图像加载到网络。首先网络的第一部分是特征提取器,特征提取器的起始层是一个2D卷积层,配置为输入通道数为1 (考虑到灰度图像),输出通道数为32,卷积核大小为3 × 3,步长为1,无填充。紧随其后的是ReLU激活函数,增加非线性,以及一个2 × 2的最大池化层,步长为2,用于减少特征图的空间维度。接着是一系列的DS-ECA模块。第一个模块将输入通道数32转换为输出通道数64,使用3 × 3的卷积核,步长为1,无填充。其内部包括深度可分离卷积,后跟批量归一化和ReLU激活函数。紧接着是一个点卷积(1 × 1卷积)和ECA注意力模块,后面跟着批量归一化和ReLU激活函数。在每个DS-ECA模块后,均有一个2 × 2的最大池化层,步长为2。随后的DS-ECA模块依次将通道数增加到128和256,同时保持卷积核大小、步长和填充策略不变。在特征提取完毕后,模型采用自适应平均池化层,将特征图的空间维度进一步压缩。分类器部分开始于一个Dropout层,设定丢弃概率为0.5以减轻过拟合现象,接着的是一个ReLU激活函数和一个线性层,后者输出类别的个数,用于多类别分类任务。
3. 实验结果与分析
3.1. 数据集介绍和评价指标
本文所使用的数据集为UJIIndoorLoc和Tampere数据集。为了让研究人员能够比较不同室内定位文献中的方法,Joaqúın Torres-Sospedra等人首次创建了一个最大的开源数据集UJIIndoorLoc。该数据集涵盖了Jaume I大学的三座建筑,其中包括两座四层建筑和一座五层建筑,并且每座建筑物的形状和内部结构有很大不同。此外,数据集的数据是由20多人使用25种不同的设备来生成的,这种在密集的人员流动的环境中采集到的数据,也更加符合现实情况。UJIIndoorLoc数据集组成由图5所示。
![](//html.hanspub.org/file/176-2571711x11_hanspub.png?20240606102012413)
Figure 5. Class distribution of the UJIIndoorLoc dataset
图5. UJIIndoorLoc数据集类别分布
Tampere包含两个RSSI数据集。两个数据集都由训练和验证数据集组成,每个数据集中由多个csv文件构成,每个csv文件分别包含RSSI、楼层、经度、纬度等数据。和UJIIndoorLoc数据集不同,所以需要通过代码将重要的信息如RSSI和经度纬度对应起来,经过代码转换为灰度图像。
3.2. 评价指标
本文使用“准确率”和“平均误差(Mean)”作为评价指标。准确率是所有分类的总体准确率的百分比(%)。
(1)
其中,TP、FP分别是真阳性和伪阳性的数量,而TN、FN分别为真阴性和伪阴性的数量。
定位误差的测定依赖于将预测位置与实际位置的类别进行对比,通过测量预测UTM坐标与实际UTM坐标之间的欧氏距离,并对距离值进行平方后求和,来评估模型的平均预测误差。这个平均误差反映了估计位置和实际位置之间的平均偏差。计算平均误差采用以下公式:
(2)
其中,xi表示估计位置的坐标,yi表示真实位置的坐标,n表示分类的数量。
欧氏距离公式如下:
(3)
式中x,y为坐标。
混淆矩阵(CM):证集中每个类别的预测结果与实际标签的对比。混淆矩阵的行表示实际的类别(True Label)。混淆矩阵的列表示预测的类别(Predicted Label)。矩阵中的每个单元格的值表示实际类别和预测类别对应的样本数。例如,对于第i行和第j列的单元格,其值表示实际为类别i但被模型预测为类别j的样本数。
3.3. 实验测试与对比
实验主要在UJIIndoorLoc和Tampere数据集上进行,使用Pytorch框架。参数通过SGD优化器来更新,把初始学习率设置为0.001,学习率的衰减率为0.09,批量大小为32,epoch为50,损失函数为多分类交叉熵损失函数。
3.3.1. DS-ECA结构对模型的影响
较大的图像尺寸能提供更丰富的细节和特征,但同时增加了计算复杂度和内存需求;而较小的图像尺寸虽然降低了计算负担,但可能会丢失一些重要的细节信息。从表2中可以得知,DS-ECA-CNN模型,在输入尺寸为128 × 128大小的时候,验证集准确率最高,达到99.26%。
![](Images/Table_Tmp.jpg)
Table 2. Effect of different input image sizes on the model
表2. 不同输入图像尺寸对模型的影响
ECA注意力模块通过捕捉通道间的依赖关系,有效提高模型对关键特征的聚焦能力,提高网络精度。因此本文设计的不同的DS-ECA模块在UJIIndoorLoc数据集上进行实验,以验证加入ECA注意力模块的有效性。不同的DS-ECA模块结构见表3。
由表3可知,DS-ECA-A、B、C、D、E都加入了ECA模块,与没有加入ECA模块的DS和普通卷积层相比,模型性能都有所提升,特别是DS-ECA-D模块,ECA注意力模块插入到1 × 1卷积后面,相比普通卷积层,准确率提升了22.2%,主要原因是这种安排可以在关键的特征融合阶段有效地进行通道级注意力调整。这不仅增强了模型对重要特征的捕捉能力,还保持了网络的计算效率。因此,本模型选择DS-ECA-D模块进行实验。
![](Images/Table_Tmp.jpg)
Table 3. Performance of different DS-ECA modules
表3. 不同DS-ECA模块的性能
3.3.2. UJIIndoorLoc数据集上的结果
在图6中,展示了UJIIndoorLoc数据集上训练集和验证集的准确率(ACC)和损失值(LOSS),通过训练结果可以发现,训练集和验证集的准确率曲线拟合程度比较好,ACC值较高。并且训练集和验证集的损失值都很低,说明没有出现过拟合或者欠拟合的情况。图7展示了UJIIndoorLoc数据集上的混淆矩阵图,通过观察混淆矩阵图,可以发现大部分预测都比较准确。表4为UJIIndoorLoc数据集上本文模型定位性能与最新室内定位方法的比较,本文为了证明实验结果的优势和所使用方法的先进性,与使用相同数据集的各种方法进行比较,并且使用表格将其列出,其中基准论文CNNLOC中使用的是一维RSSI信号。结果显示,基于本章提出的模型,建筑定位的准确率为100%,与基准论文CNNLOC的模型的定位准确率一样;在楼层定位上的准确率为99.2%,与基准论文CNNLOC的模型相比,提高了3.17%的准确率。可以看出,相比使用一维RSSI信号直接使用卷积神经网络进行特征提取相比,将数据集转换为灰度图像之后,卷积神经网络能够更好提取图像的特征,定位准确率更高;其中定位误差为6.21 m,模型的参数量为50,038个。
![](//html.hanspub.org/file/176-2571711x15_hanspub.png?20240606102012413)
Figure 6. Accuracy and loss trend graph of the model on the UJIIndoorLoc dataset
图6. UJIIndoorLoc数据集上模型的准确率和损失变化趋势图
![](//html.hanspub.org/file/176-2571711x16_hanspub.png?20240606102012413)
Figure 7. Confusion matrix of the model trained on the UJIIndoorLoc dataset
图7. UJIIndoorLoc数据集上模型训练的混淆矩阵
![](Images/Table_Tmp.jpg)
Table 4. Comparison of localization performance between this paper’s model and state-of-the-art methods in the UJIIndoorLoc dataset (results not reported in the paper are marked with a dash “-“)
表4. UJIIndoorLoc数据集中本文模型和最新方法之间定位性能对比(论文里未报告的结果用破折号“-”标记)
3.3.3. Tampere数据集上的结果
图8展示了Tampere训练和验证集的准确率(ACC)和损失值(LOSS)。通过实验结果可以发现,训练集和验证集的准确率(ACC)曲线拟合程度比较好。训练集和验证集的损失值(LOSS)值显示都很低,说明实验过程中没有出现过拟合或者欠拟合的情况。图9展示了在Tampere数据集上的混淆矩阵图(CM)。表5为Tampere数据集上,本文模型实验结果和其他室内定位方法实验结果对比表格,可以看到,本文提出模型的楼层准确率为99.7%,和基准论文CNNLOC模型相比,提高了3.67%的准确率;参数量为49,001个。
![](//html.hanspub.org/file/176-2571711x17_hanspub.png?20240606102012413)
Figure 8. Accuracy and loss trend graph of the model on the Tampere dataset
图8. Tampere数据集上模型的准确率和损失变化趋势图
![](//html.hanspub.org/file/176-2571711x18_hanspub.png?20240606102012413)
Figure 9. Confusion matrix of the model trained on the Tampere dataset
图9. Tampere数据集上模型训练的混淆矩阵
![](Images/Table_Tmp.jpg)
Table 5. Comparison of localization performance between this paper’s model and state-of-the-art methods in the Tampere dataset (results not reported in the paper are marked with a dash “-”)
表5. Tampere数据集中本文模型和最新方法之间定位性能对比(论文里未报告的结果用破折号“-”标记)
4. 结语
本文提出了一种基于DS-ECA-CNN的WIFI指纹室内定位模型。模型包含特征提取模块和分类模块,特征提取模块由融合ECA注意力模块和深度可分离卷积(DS)的模块(DS-ECA)组成,DS-ECA模块能有效提升模型对空间位置信息的利用效率,使定位的准确率得到显著提高。分类模块通过自适应池化层固定输出大小,使用全连接层进行分类。本文还探讨了不同输入尺寸大小、DS-ECA模块结构对模型性能的影响。最后在数据集上的实验结果显示。UJIIndoorLoc数据集上的建筑定位准确率为100%,楼层定位准确率为99.2%,参数为50,038个;在Tampere数据集上的建筑定位准确率为100%,楼层定位准确率为99.7%,参数量为49,001。与现有的先进模型相比,DS-ECA-CNN模型定位精度更高、定位误差小、模型参数量少。
基金项目
国家自然科学基金(11774017)。