基于卷积神经网络的CSI步态信息研究(附源码地址)

研究报告目录

  • 摘要
  • 1 研究介绍
  • 2 数据采集
    • 2.1 CSI 简介
    • 2.2 CSI 采集
  • 3 数据分析
    • 3.1 数据处理
    • 3.2 网络训练
  • 4 讨论
  • 5 结论
  • 附录 Github源码地址

摘要

最近的十几年间,生物步态识别的研究进展迅速,无线感知的工作也取得了很多成功,人们对利用无线感知的方式进行生物识别的兴趣显著提高。在本文中,我们使用卷积神经网络这种数字图像处理研究中的典型方法,对无线感知领域中包含有人类步态信息的信道状态信息进行数据分析。在经典家庭客厅环境中收集了3个对象800余份数据,借鉴数字图像处理工具方法,最终得到了93.75%的分类精度。

1 研究介绍

步态,作为个人的行走方式,当前逐渐被认识到不仅仅是一种生命体征,还提供了个体独特的生物特征,是一种很有前景的生物识别方式。

步态中有数十个识别特征,因此模仿别人的步行姿态是极其困难的,有研究表明,把步态作为生物识别的特征,结果可能比人脸更加可靠。另外,步态识别不需要个体的任何积极配合,可被动地操作;基于WiFi定位的步态识别与传统的视频步态识别相比又具有对光照条件不敏感优势,家用智能设备的普及又使得其易于部署且成本低。以上种种特性都使得基于WiFi的步态识别对研究人员特别有吸引力。

传统的WiFi定位多使用RSSI信息(Received Signal Strength Indicator, 接收信号强度指示),尽管RSSI方便获取,而且此方向的研究也取得了很多成果,但是作为MAC层信息,RSSI是信号多径传播的叠加效果,在实际的室内传播环境下,受到多径效应的影响,RSSI不再随着距离的增加而单调衰减,稳定性也较差。为了刻画多径传播,我们采用了CSI(Channel Status Information,信道状态信息)。它从一个数据包中同时测量多个子载波的数据,而非全部子载波叠加后的总体幅度响应,在一定程度上刻画了多径传播,提供了更加细粒度的信息。

但是现有的CSI步态识别研究大多基于K临近算法、支持向量机等常规机器学习模型,不仅需要手动做特征工程,而且无法考察所有子载波的信息,甚至有些分类模型只使用了步行速度一个指标,这些问题都造成了不同程度的信息损失。另外,这些传统的机器学习模型对此类问题的分类能力及适用性也应存疑。

与这些以往的研究不同,我们的算法使用深度学习神经网络模型,可以将特征工程很大程度的交给模型自行完成,参数权重完全面向学习得到,不会因特征选择的失误影响模型效能。我们还把测量得到的幅度矩阵看作图像处理,不仅考虑到了所有子载波测得的数据结果,而且利用卷积神经网络适合处理图像的特点解决了模型适用性的问题。

为了应用深度神经网络,就必须解决一个关键问题——数据需要足够多以满足网络训练需要与为了满足后续开发实际应用只能测量小数据集之间的矛盾。除了进行一些物理意义上的数据扩增,我们还应用了卷积神经网络的数据增强。

我们在面积10.73平方米的典型矩形客厅内进行实验,四个月内收集了包含三个对象的863份CSI数据。最终对三个用户的分类精度达到了93.75%。

2 数据采集

2.1 CSI 简介

CSI全称为信道状态信息,是在采用OFDM调制方式时,CFR在不同子载波上的离散采样,而频域表示CFR与时域表示CIR互为傅里叶变换(FT)。在线性时不变的前提下,CIR 可以表示为:
在这里插入图片描述
式中每一项从时域上表示了一条传播路径的幅度、相位和时延。

每份解析后的CSI数据中包含了幅度和相位两种信息,都分别由子载波编号和时间戳构成数据矩阵的两个轴,如下图1所示:
基于卷积神经网络的CSI步态信息研究(附源码地址)_第1张图片

2.2 CSI 采集

我们使用一张AX210网卡作为发射端,一张AX200网卡作为接收端,借助PicoScenes工具,以每秒50个数据包的发包频率进行如下图2所示的数据采集。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第2张图片
最终总共收集了3个实验志愿者的863份数据,包含1号对象351份、2号162份和3号350份。

可视化收集的幅度数据,先比较静止状态下与有人经过时的区别(图3左,前后两端时间环境静止,中间一段时间有人走动),在比较不同的实验对象经过时收集到的数据的区别(图3右,上下两幅图分别来自两个不同的对象)。显然,区别都比较明显。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第3张图片

3 数据分析

3.1 数据处理

首先,对原始数据做一些简单的处理工作,统计每个幅度矩阵最小列数的分布情况,可以从下方饼图4看出,三个人的大部分数据矩阵都在500列以上,所以为了统一格式,我们直接删除了不足500列的数据,并把剩余的矩阵只保留前500列。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第4张图片
紧接着,处理异常值。根据统计,所有幅度数值的最小值为0,最大值为581.0034。可视化所有矩阵最大值的分布情况,发现大部分数据都在356以下,而且所有超过356的单值数量较少,故用356替换所有大于356的单值。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第5张图片
随后,我们简单构建了一个全连接网络,只包含了两个Dense层,四轮训练后,训练精度达到了43.92%。我们以此精度作为后续建模的基准,尝试击败这个结果。

为了使数据量满足网络训练的需要,我们做了物理意义上的数据增强。由于在物理层的理解上,500个时间序列的数据,从前向后和从后向前看的区别无非走路的方向有所不同,并不会影响步态信息本身。所以,我们把数据从中间分开,使每份数据变成两份,总数据量扩大了两倍。

最后,我们把幅度矩阵转换成RGB图像,并按照70%、15%、15%的比例分割成训练、验证和测试集分类保存。下图三幅图像分别来自三位被测试者,不难看出,即使用肉眼观察,区分度也相对较大。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第6张图片

3.2 网络训练

利用转换成的图像训练分类网络,先检查图像分组情况,如下表。

1号 2号 3号
训练集 478 226 460
验证集 102 49 98
测试集 102 49 98

搭建一个卷积神经网络,用Conv2D层和MaxPooling2D层堆叠,用Dense层分类,添加0.5的dropout正则化。

模型经过20个轮次的训练后,达到了77.49%的训练精度和77.91%的验证精度,并绘制了训练过程中的损失曲线和精度曲线。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第7张图片
图像中存在着许多离群点,考虑可能是训练数据不够多的原因。另外,虽然本次模型精度远超过作为基准的全连接网络的结果(43.92%),取得了比较大的推进,证明了卷积神经网络对此分类问题的适用性,但是我们对此结果仍然不满意。我们以此结果为基准,尝试改进模型提高验证精度。

我们使用了小数据集数字图像处理任务常用的数据增强方法,对训练集数据进行了包含平移、旋转、缩放和水平翻转等多种尝试,通过最后结果的提高或下降总结出了可用的数据增强规律——图像只能沿着水平方向变换,不能在垂直方向上有任何变化,竖直方向上的平移或是图像的小角度旋转都会带来精度下降。实验期间最严重的一次精度降低到了53%左右。考虑到竖直方向的原始数据轴是子载波序列,那么这种规律在物理层面上也是可以接受并解释的。

最后,我们选择只使用horizontal_flip一个参数,此参数的含义是随机将一半的图像水平翻转。

为了方便生成小批量的训练集和测试集,本次拟合舍去了十几幅图像,共计使用了1160个训练图像和240个验证图像。以20幅图像为一个批次,训练集每轮训练使用58个批次,恰好1160张图像,验证机同理每轮8个批次,训练20轮,最终对三个目标的分类达到了93.75%的验证精度。

改进后的网络如表,训练过程的损失曲线和精度曲线如图9。

Layer (type) Output Shape Param
conv2d_4 (Conv2D) (None, 55, 248, 32) 896
max_pooling2d_3 (MaxPooling2D) (None, 27, 124, 32) 0
conv2d_5 (Conv2D) (None, 25, 122, 64) 18496
max_pooling2d_4 (MaxPooling2D) (None, 12, 61, 64) 0
conv2d_6 (Conv2D) (None, 10, 59, 128) 73856
max_pooling2d_5 (MaxPooling2D) (None, 5, 29, 128) 0
conv2d_7 (Conv2D) (None, 3, 27, 128) 147584
flatten_1 (Flatten) (None, 10368) 0
dropout_1 (Dropout) (None, 10368) 0
dense_2 (Dense) (None, 256) 2654464
dense_3 (Dense) (None, 3) 771

基于卷积神经网络的CSI步态信息研究(附源码地址)_第8张图片
后续又多次以相同的方法重新构建并训练了卷积网络,分类精度大多都分布在93%~96%之间,模型效果相当稳定。

4 讨论

关于数据增强

前面提到,可以在水平方向上变换图像以达到数据增强的目的,但是在使用horizontal_flip参数之后,我却放弃了继续使用水平平移。这是因为我发现如果同时使用horizontal_flip和height_shift_range时,精度虽然会提高到98%左右,但是会导致验证集精度一直明显高于训练集(如图10),即使降低正则化也不起作用。

经分析得出,虽然数据增强方法符合数据科学规范,但是人造数据过多仍然会导致此问题,所有我们不仅放弃了使用水平方向平移的方式变换图像,还舍弃了之前计划用GAN或者VAE进行数据扩增的实验设计。
基于卷积神经网络的CSI步态信息研究(附源码地址)_第9张图片

5 结论

我们把数字图像处理领域的最佳解决方案,即卷积神经网络(CNN),应用到了信道状态信息(CSI)的数据挖掘工作中。它非常适合解决此类问题,并且带来了很多图像处理领域的独特方法。我们在真实环境下实验验证了它的性能,并对三个目标类型的不均衡分类达到了相当高的精度,为后续无线感知领域的工作提供了新的方向和思路。

附录 Github源码地址

https://github.com/SuneoPro/CSIwithCNN
包含了原始数据和源代码

你可能感兴趣的:(cnn,数据分析,卷积神经网络,其他)