基于CNN和GRU的人体活动识别

2021-10-18 08:14黄梦华
现代计算机 2021年24期
关键词:卷积准确率神经网络

黄梦华

(华北理工大学,唐山063200)

0 引言

随着生活水平的提高,智能手机已经成为人们必不可少的工具,再加上手机传感器的发展,基于手机传感器识别人体活动[2-3]有着重要的意义,在运动追踪、生活日志记录、跌倒检测中有着广泛的应用。

传统的人类活动识别可以看作是模式识别,大多数方法依赖于人工手动提取浅层特征,这种方法通常受到人为领域知识的限制,会导致识别准确率低并且可泛化性低。由于这些原因,传统的模式识别方法在精度和泛化性上受到了一定的限制。

近年来,深度学习在各个领域都表现出优秀的能力。与传统的模式识别方法不同,深度学习可以极大的减轻设计特征的工作量,并且可以通过训练端到端的神经网络来学习更多高级和有意义的特征。此外,深层网络结构更适合无监督学习。所以在人类活动识别方法中应用深度学习是非常合适的。

1 研究现状

人类活动识别在人们的日常生活中有着重要的作用,它能够从原始的传感器信号中识别出关于人类的行为活动,在各个领域有着广泛的应用,如医疗保健、老年人护理、健身追踪等。随着智能手机[4-5]和智能穿戴的发展,越来越多的传感器应用到其中,这些传感器能够捕捉到丰富的人体运动数据,只要用户携带上手机或者智能穿戴设备,传感器就能记录大量的用户活动,通过分析其中的加速度和陀螺仪数据,就可以进行活动的识别,这一方面已经有了一定的研究。

对于连续的传感器信号数据,通常识别的过程为数据分割、特征提取、特征选择和分类器训练。其中最重要的步骤是特征提取,关系到分类器准确性的高低。传统的建模方法主要通过构建支持向量机、决策树、朴素贝叶斯等模型,但是这些模型在进行特征提取时需要手工进行设置,有一定的局限性,所以这些方法只能学习浅层特征,导致分类器的准确率和性能都会有一定的限制,模型的泛化性也比较弱,不能很便捷的应用到其他的数据集上。

近年来,深度学习在各个领域都有着优异的表现。与传统的识别方法不同,深度学习可以极大的减少设计特征提取的工作量,并且可以通过使用不同的深度学习模型训练提取出更高级、更精准的特征。所以在人类活动识别方法中应用深度学习是非常合适的。

卷积神经网络(convolutional neural network,CNN)[6]是一种包含卷积计算的前馈神经网络,能够自动提取传感器数据中的特征,将CNN应用到人类活动识别中,与传统模型比有两个优势:局部依赖和尺度不变性。局部依赖指的是在传感器信号中,相邻的信号可能是相似的;尺度不变性是指不同节奏或频率的尺度不变性。

门控循环单元(gated recurrent unit,GRU)[7]是长短期记忆人工神经网络(long short-term memory,LSTM)[8]的一种变体,是为了解决在循环神经网络(recurrent neural network,RNN)[9]中的梯度消失问题,在一定的条件下比LSTM的效果更好。

尽管CNN可以捕获传感器数据的空间特征,比如步行、慢跑和吃饭等简单的人类活动有较好的表现,但是无法捕获传感器时间序列信号的时间特征的复杂活动。RNN及其衍生结构适合处理序列化数据,这两者有着不同的处理偏好,因此,可以将CNN和GRU两者结合起来,对人类活动进行识别。

2 模型与实验

图1人类活动识别算法模型

当输入信号进入到卷积层,通过使用k个一定大小的卷积核,使用ReLU激活函数,初次提取信号之间的相关特征。其中hi,k表示卷积之后的结果,x(t)是时间序列,w(k)表示每个卷积核的权重,c(b)表示相关的偏置值。

进行卷积处理之后,数据将进一步经过池化处理,使用池化处理能够更好的将波动数据较大的信号保存下来,也就是能够提取到信号中更明显的特征,降低数据的维度。对于信号这种一维数据来说,一般在时间维度上进行池化,这样能够提取出每一种信号中比较明显的特征。

之后经过池化的数据输入到GRU层,该层是由多个简单的GRU cell构建而成的多层循环神经网络。该层的主要作用是用来捕获传感器序列中前后数据之间的依赖关系,该层可以从传感器序列数据中的时间维度学习到相关联的特征。经过卷积、池化后的数据,经过公式(2)的变换,输出当前状态的值。式中he(t')表示经过GRU单元之后输出t'时刻的结果,hc(t')表示t'时刻的输入,he(t'-1)表示t'-1时刻的输入。

经过GRU层之后,数据之间的相关性得到了增强,最后将所有的GRU单元全部展开,连接到全连接层中,将学到的特征映射到标记空间,得到一个一维数组。最后通过softmax函数,得到的输出的结果。式中c(i)表示全链接层的C个输出值,y*表示模型预测的结果。

3 实验

3.1 实验环境

实验采用Pycharm开发工具,使用的计算机硬件配置为Inter(R)Core i5 CPU、Nvidia GeForce GTX 1660Ti GPU。计算机操作系统为Windows10,编程环境使用Python3.6以及深度学习框架Tensorflow。

3.2 数据集

使用UCI数据集[10]进行检测和性能评估。UCI数据集是基于手机传感器信号采集的人体活动数据集,其中包含了30位年龄在19-48岁的志愿者,在腰上带着一部相同型号的智能手机,进行走路、上楼、下楼、坐、站、躺六种活动,通过以50HZ的恒定速率捕捉手机加速度计和陀螺仪的数据。传感器信号已经通过噪声滤波器进行预处理,传感器的加速度信号有重力和身体运动的组成部分,已经使用巴特沃斯滤波器过滤完成。

以下是从数据集中抽取出不同事件的加速度计的X轴数据,可以看到数据具有很明显的差异性。图2表示采集人员在走路,可以看出加速度计X轴数据波动的很剧烈,X轴的幅度很大并且波形很有规律,符合采集人员在携带智能手机移动过程中的情形。图3表示采集人员在站着的状态,可以看出X轴的波动幅度不大,偶尔才会出现一点波动,整体曲线几乎不动,说明采集人员处于一种静止的状态。

图2 走路状态下的X轴加速度时间序列

图3 站着状态下的X轴加速度时间序列

UCI数据集中每一条数据都是由128个时间步长窗口的样本构成的,其中有一半是重采样,所以要对数据进行处理,删除重复的观测值,进行数据统计。数据的分布具有高斯性质,所以可以对数据进行标准化变换,通过实验来确定数据标准化对结果的影响。

3.3 实验结果

实验使用准确率Precision来进行评估,具体的准确率计算公式为:

对数据的标准化进行实验,实验使用准确率来衡量模型的效果。通过使用相同的模型,对标准化前后的数据分别进行训练和预测,得出准确率结果,标准化前准确率为90.14%(+/-0.93%),标准化后准确率为91.27%(+/-0.64%)。可以看出标准化之后的数据集在模型上的准确率平均提升了1.13%,并且模型的标准偏差变小了,见箱型图4更直观地对比标准化前后实验的结果。

使用标准化之后的数据集做实验效果更好一点,对算法性能有小幅度的提升。所以为了之后的算法的效果有提升,之后的算法都会使用标准化后的数据集进行实验。

图4数据标准化对实验准确率的影响

表1人体活动识别对比实验结果

从表1中可以看出,相对于只使用LSTM和GRU的方法和CNN+LSTM的方法,本文提出的方法预测的准确率高于以上3种方法,使用多种类型不同的深度神经网络方法,取得的效果通常比单一的神经网络模型要好。对于传感器序列数据来说,单一的使用循环神经网络虽然能获得更多的数据之间的关系,但是经过卷积神经网络提取过后的数据,特征能够更加明显,具有更高的表示能力。而且在将模型部署到服务器之后,使用模型进行实时的结果预测,由于GRU的参数相对LSTM较少,降低了模型参数,加快了模型的识别速度,能够大幅降低识别时间,提高识别速度。

4 结语

根据人体活动行为的特点,提出一种基于CNN和GRU的人体活动识别模型,并且利用公开数据集得到了较好的结果,能够准确的识别人体活动的基本类型,验证了本文中提出的使用CNN进行时序序列的特征提取,并进一步使用GRU来保留长时间序列中重要的特征。

猜你喜欢
卷积准确率神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于深度卷积网络与空洞卷积融合的人群计数