基于卷积神经网络-双向长短期记忆网络的人体活动识别方法
2022-02-28孙彦玺陈继斌武东辉
孙彦玺,陈继斌,武东辉
(郑州轻工业大学建筑环境工程学院,郑州 450002)
在过去的几十年里,人体活动识别(human activity recognition,HAR)因其在医疗康复、运动监测、智能看护和人机交互等诸多领域的突出应用,引起了模式识别、普适计算和人机交互等领域研究人员的广泛关注[1]。在早期的研究中,对人体活动识别的研究主要集中在计算机视觉领域,即研究人员通过对图像或视频采集设备采集到的图片集合或视频片段进行分析,以此实现对特定动作的识别和目标的侦测[2-3]。而伴随着传感器技术和无线通信技术的快速发展,体感网(body sensor network,BSN)和体域网(body area network,BAN)等人体监测技术也逐渐兴起[4-5],使得各种能够准确采集人体活动信息的加速度计、陀螺仪、磁力计等传感器可以被集成在智能可穿戴设备中成为现实,这些可穿戴设备具备体积小、功耗低、数据采集自由等优势,更加适合用于人体活动的长期记录、计算和移动过程中的持续交互[6],从而促进了基于可穿戴传感器的人体活动识别在现实社会的应用与发展。
人体活动识别可以被认为是一种典型的模型识别(pattern recognition, PR)问题,这类问题通常可以由支持向量机、K近邻分类器、决策树分类器和隐马尔科夫模型等传统的机器学习方法实现[7]。文献[8]使用了K近邻算法(K-nearest neighbor, KNN)来比较从加速度计信号中提取不同分类特征时对人体活动识别准确率的影响。文献[9]采用了支持向量机(support vector machine, SVM)对患者的运动及声音数据进行分类以求实现对病人和老年人跌倒行为的监测。文献[10]采用多特征隐马尔科夫模型(hidden markov model, HMM)融合的方法用于对复杂动态手势识别问题的研究。文献[11]采用决策树分类器(decision tree, DT)对提出的一种多传感器分布式活动识别系统进行识别准确率和计算执行时间的测试。尽管利用机器学习方法可以实现对人体活动的识别,但是这些方法需要依赖研究人员提前进行手工特征的提取,而人体执行的某种特定活动可能是较为复杂的运动机制,那么仅靠人为选择的特征来实现复杂活动的准确识别并非易事[12]。
近年来,深度学习技术得到快速发展,并在图像分类[13]和视频动作识别[3,14]等众多领域取得显著成绩,同时也为基于传感器的人体活动识别问题带来了新的解决方案。与机器学习方法不同,深度学习方法能够从原始低级传感器读数中自动学习到人体活动数据的高级抽象特征,这些特征能够很好表征原始的人体活动数据,有利于实现对人体活动的准确分类。文献[15]提出了一种一维卷积神经网络(1-dimensional convolutional neural network,1D-CNN)用于对基于惯性传感器的人体活动识别,并在公开的HAR数据集上使用准确率、精确率、召回率和F1等评价指标表明了该方法具有较好的活动识别性能。文献[16]提出了一种长短时记忆(long short term memory, LSTM)递归神经网络(recurrent neural network, RNN)来进行人体活动识别,该方法可以实现特征的自动提取和融合,分类效果较好。文献[17]提出了一种基于时间序列的双向长短时记忆网络(bidirectional LSTM, BiLSTM)用于对基于智能手机传感器的人体活动识别任务。文献[18]提出一种结合CNN强大的特征提取能力和LSTM优秀的时间序列处理能力的组合网络用于对跌倒行为的检测。
为进一步提高对基于传感器的人体活动识别的分类效果,同时又不依赖于手工设计的特征,提出了一种基于CNN-BiLSTM的人体活动识别方法,该方法结合了CNN可以自动提取人体活动数据的深层次有意义特征的能力和BiLSTM能够学习数据特征在前后两个方向上的长期依赖性的优点,在公开数据集上的实验结果表明了我们提出方法的有效性与稳定性。
1 人体活动识别模型
1.1 CNN-BiLSTM网络模型
基于CNN-BiLSTM的人体活动识别模型主要由输入层、CNN特征提取层、BiLSTM层、全连接层和softmax层构成,其模型结构示意图如图1所示。
图1 CNN-BiLSTM模型示意图
基于CNN-BiLSTM网络的人体活动识别方法的分类过程如下:首先,将输入的人体活动数据序列经过CNN层进行空域特征提取;然后,将得到的数据特征输入BiLSTM层进行时序特征筛选更新;其次,再经过全连接层将筛选后得到的人体活动特征通过权重矩阵映射至样本标记空间;最后通过softmax层进行分类计算,并选择具有最大预测概率的类别作为输入数据样本的预测类别。
1.1.1 基于CNN的特征提取
卷积神经网络(CNN)能够从信号中提取特征,并在图像识别[19]和目标检测[20]等方面取得了很好的效果。近年来,CNN也常被用于人体活动传感器数据的特征提取,并用于人体活动分类任务。考虑到CNN可以自动提取人体活动数据的深层次隐含特征,能够避免手工特征提取带来的诸多不利,因此将CNN作为所提CNN-BiLSTM网络模型的特征提取单元引入。
由图1所示,CNN-BiLSTM模型共包含3个CNN特征提取层(每层由卷积层、批归一化层、非线性激活层和最大池化层构成)。其中,卷积层(Convolution)可以实现对人体活动数据的特征提取,是CNN层的最为关键一层;批归一化层(Batch Normalization)可以对提取的特征进行归一化处理,加快模型的训练速度和降低对网络初始化的敏感性;非线性激活层(Leaky Relu)可以促进批归一化之后特征的映射;最大池化层(Maxpooling)则起到了压缩数据、降低维度的作用。
卷积层采用权值共享和局部连接对人体活动数据虚拟图像进行特征提取,其计算公式为
(1)
式(1)中:gm,n为卷积核的第m行和第n列的权值;m和n分别为卷积核的宽度和高度;xi+m,j+n为虚拟图像中第i+m行和第j+n列元素;gb为卷积核的偏置;Ti,j为卷积后得到的特征图的第i行和第j列元素;σ为激活函数。
选用Leaky Relu函数作为激活函数,其定义为
(2)
式(2)中:s为一个小于1的非负数,当s取0时,Leaky Relu激活函数退化为Relu函数;x为函数的输入。Leaky Relu激活函数可以解决当Relu激活函数的输入值为负时,其输出始终为零,导致的神经元“死亡”问题。
池化层常用的池化方式有最大池化和平均池化,即取池化区域内取值最大的元素或者所有元素的平均值作为新的样本数据以替代卷积后得到的特征图继续参与模型训练,从而起到压缩数据、降低维度的作用,选用最大池化方式,池化后特征图大小可表示为
W2=(W1-F+2P)/S+1
(3)
H2=(H1-F+2P)/S+1
(4)
式中:W1、W2、H1、H2分别为池化前后特征图的宽度(水平方向的长度)与高度(垂直方向的长度);F为同特征图对应方向上卷积核的宽度与高度;P为特征图边缘填充的数量;S为同特征图对应方向上步幅的长度。
CNN-BiLSTM模型的3个卷积层的卷积核的个数依次为32、64、128,卷积核大小分别为(1,9)、(1,7)、(1,5),步长均为(1,2),即垂直方向步长为1,水平方向步长为2,同时采用same模式进行padding操作;3个非线性激活层激活因子均为0.1;3个最大池化层的池化核大小均为(1,3),步长均为(1,2)。
1.1.2 基于BiLSTM的双向特征学习
LSTM是RNN的改进,于1997年由Hochreiter 等[21]提出。LSTM通过在RNN隐藏层上引入门函数(遗忘门、输入门、输出门)和记忆单元,实现了信息的有效筛选和更新,解决了RNN处理序列或时间序列数据时容易导致的梯度消失问题[22]。LSTM层单个LSTM细胞(cell)内部结构如图2所示。
图2 LSTM细胞内部结构
t时刻遗忘激活ft、输入激活it、候选单元gt、细胞状态ct、输出激活ot、隐藏状态输出ht的表达式分别为
ft=σ(Wf[ht-1,xt]+bf)
(5)
it=σ(Wi[ht-1,xt]+bi)
(6)
gt=tanh(Wg[ht-1,xt]+bg)
(7)
ct=ft⊙ct-1+it⊙gt
(8)
ot=σ(Wo[ht-1,xt]+bo)
(9)
ht=ot⊙tanh(ct)
应强化质量安全监管措施,建立公平有序的市场环境。在受到进口乳制品的强烈冲击下,国内乳制品行业的信任危机还未解除。随着消费者收入的提高,安全已经成为乳制品购买选择的关键词。因此要重塑消费者对国内乳制品行业的信心,应着力建立以乳制品安全为核心的法规体系,将乳制品的安全监控落实到生产的源头上,并严格监控生产过程,实时进行安全生产评估并及时消除可能存在的安全隐患。
(10)
式中:ht-1为上一时刻隐藏状态的输出信息;xt为当前时刻的输入信息;Wf、Wi、Wg、Wo和bf、bi、bg、bo分别为遗忘门、输入门、候选单元和输出门的权值向量和偏置项;⊙为Hadamard乘积(向量的元素相乘);tanh为双曲正切激活函数,经过其处理后将得到输出介于[-1,1]的值;σ为sigmoid状态激活函数,经过其处理后将得到输出介于[0,1]的值。
LSTM网络结构表明:遗忘激活ft越大,表明上一时刻细胞状态ct-1被写进当前时刻的信息越多;输入激活it越大,代表候选输入gt被写进当前时刻的信息越多,即遗忘激活ft和输入激活it共同决定了当前时刻细胞状态ct对不同输入信息的接收程度。输出激活ot则确定了当前时刻隐藏状态的输出ht。通过以上的各门限的控制便实现了人体活动传感器时序信息的选择性遗忘和保留。
双向长短时记忆网络(BiLSTM)是LSTM网络的改进,它由一个前向LSTM层和一个后向LSTM层构成[23]。相较于LSTM仅能在单个方向上进行特征学习,BiLSTM可以实现对数据的双向特征学习,能够更好的获取人体活动时序数据特征之间的相关性,因此将BiLSTM作为CNN-BiLSTM模型的特征学习单元引入。BiLSTM结构示意图如图3所示。
图3 BiLSTM模型结构
t时刻BiLSTM层隐藏状态输出yt可以定义为
(11)
1.1.3 全连接层和softmax分类层
CNN-BiLSTM模型的全连接层可以减少对所提取特征信息的损失,相对于CNN层和BiLSTM层是将原始人体活动数据映射至隐层特征空间进行特征提取和学习,全连接层则是将学习到的原始数据的特征表示映射到样本标记空间,起到了分类器的作用;softmax分类层最终实现对人体活动的分类计算,其计算公式为
(12)
softmax函数的分类结果表示输入样本被划分为每个类别时的所属概率,且所属概率和为1。
1.2 LSTM和BiLSTM网络模型
作为对比建立的仅具备时间特征学习的LSTM网络模型主要由序列输入层、flatten展开层、LSTM层、全连接层和softmax分类层构成。其中,输入层样本大小为(24,410,1),并使用flatten展开层将多维输入数据一维化,隐藏单元的数量设置为128,全连接层有13个隐藏节点,softmax分类层最终实现人体活动的分类。而BiLSTM模型与LSTM模型相比,只需将LSTM层替换为BiLSTM层,其他各项参数的设定则与LSTM模型一致,仅以LSTM为例,建立的人体活动识别分类模型示意图如图4所示。
图4 LSTM分类模型示意图
2 实验相关参数
2.1 实验环境
实验基于Windows10 专业版64位操作系统,处理器为Core i5-6500U CPU @3.20 GHz,内存为16 G,所有模型的训练和测试均采用Matlab2020b Deep Learning Toolbox深度学习工具箱实现。
2.2 实验数据集
实验采用公开的DaLiAc数据集[24]进行人体活动识别研究。数据采集过程由放置在参与者右臀部、胸部、右手腕和左脚踝的4个6轴惯性传感器节点完成,每个惯性传感器节点包含三轴加速度计和三轴陀螺仪。其中,加速度计的量程为±6g,手腕、胸部、臀部传感器节点的陀螺仪范围为±500(°)/s,踝关节传感器节点的陀螺仪范围为±2 000(°)/s,数据的采样频率为204.8 Hz。该实验有19名健康受试者参与(女性8名,男性11名,年龄26±8 岁,身高(177±11)cm,体重(75.2±14.2)kg,偏差mean ± std),共采集了13项人体活动。DaLiAc数据集包含的活动类别及对应标签如表1所示。
表1 活动及对应标签
2.3 实验参数设置
采用滑动窗口技术对原始人体活动数据进行样本分割以便送入模型进行训练,实验时取滑动窗口的长度为410(数据采样频率的2倍取整),且相邻窗口之间存在50%的数据重叠,因此输入模型的单个样本数据的大小为(24,410,1)(4个6轴传感器)。经过样本分割后数据集的总样本数为22 320个,实验时随机选择80%的(17 856个)样本作为训练集,剩余20%的(4 464个)样本作为测试集。所有模型的最小批尺寸设置为500,最大训练轮数设置为20,初始学习率设置为0.001,学习率下降因子设置为0.1,学习率下降期设置为10,优化器采用Adam,代价函数采用交叉熵。
3 实验结果与分析
3.1 模型收敛速度
LSTM模型、BiLSTM模型和CNN-BiLSTM模型是在训练集进行训练的。模型训练过程的准确率曲线如图5所示,横坐标为训练过程中的迭代次数,纵坐标为人体活动的识别准确率。同时这3个模型训练过程的损失函数曲线如图6所示。
图5 3种模型训练过程准确率曲线
图6 3种模型训练过程损失值曲线
从图5中可以看出,CNN-BiLSTM具有最快的速度使得训练集分类准确率达到稳定状态,而LSTM的准确率达到稳定状态所需要的时间是最长的,且随着迭代次数的增加CNN-BiLSTM模型的分类准确率逐渐上升至最高。
从图6中可以看出,CNN-BiLSTM具有最快的速度使得训练集损失函数值达到接近0的稳定状态,BiLSTM模型和LSTM模型分别次之,且随着迭代次数的增加CNN-BiLSTM模型的损失值逐渐降低至最小。综合图5和图6可以看出,在模型的收敛速度方面,性能依次降低的是CNN-BiLSTM模型、BiLSTM模型和LSTM模型。
3.2 模型准确性
LSTM、BiLSTM和CNN-BiLSTM模型在测试集上的预测分类混淆矩阵如图7所示。3个混淆矩阵的含义如下:分别为14行14列,下侧数字1~13表示真实待分类的13种人体活动类别,左侧数字1~13表示模型预测分类出的13种人体活动类别。最后一列(右下角除外)上面的百分比表示模型正确预测出该类别的正样本数占实际预测出该类别正样本数的比例,即精确率(precision)。最后一行(右下角除外)上面的百分比表示模型正确预测出该类别的正样本数占该类别总正样本数的比例,即召回率(recall)。右下角格子上面的百分比代表模型对13种人体活动做出正确分类的总体识别准确率。
图7 3种模型在测试集上的预测分类混淆矩阵
由3个混淆矩阵可以看出,提出的CNN-BiLSTM模型的总体准确率最高,达到了97.7%,相比较LSTM和BiLSTM模型的79.7%和81.5%,分别有18%和16.2%的提升。比较LSTM和BiLSTM的分类结果也可以发现,BiLSTM具有更好的人体活动识别性能,这是因为BiLSTM充分考虑了人体活动传感器时序数据的前后信息具有关联性的特点,其能够从前后两个方向学习人体活动时间序列数据的前后信息之间的长距离依赖性,而LSTM只能从单方向上学习人体活动数据的特征。
3.3 模型评价指标
为了更好地说明所提CNN-BiLSTM模型的有效性和稳定性,除上述模型的收敛速度和模型的准确性进行分析外,引入F1-score综合评价指标进行模型的评估。通过混淆矩阵可以得到各个活动类别下的精确率Precision和召回率Recall,然后在此基础上可以进一步计算出各个活动类别下的F1综合评价指标,精准率、召回率和F1评价指标的计算公式为
(13)
(14)
(15)
式中:TP为活动类别A被模型正确分类为A的样本数目;FP为非活动类别A被模型错误分类为A的样本数数目;FN为活动类别A被模型错误分类为其他类别的样本数目。
F1综合评价指标作为精确率和召回率的调和均值,其能够更加客观全面的对比分析3种模型对不同人体活动类别的分类效果。图8给出了3种模型在测试集上对13种人体活动类别的F1指标对比情况。可以看出,LSTM模型和BiLSTM模型的F1指标的值波动很大,说明了这两种模型对不同类别活动的识别结果具有较大差异;而CNN-BiLSTM模型的F1指标的值波动很小,且基本可以稳定在[0.95,1]区间,说明了CNN-BiLSTM模型对于不同类别人体活动的识别分类结果具有极佳的稳定性。
图8 3种模型F1指标对比
4 结论
基于可穿戴传感器来记录和跟踪人们的日常活动是实现医疗保健和运动辅助监测等许多现实应用的重要途径,因此构建识别率高、稳定性强的人体活动识别模型以提升对基于传感器的人体活动的识别能力是极具现实意义的。提出一种基于CNN-BiLSTM的人体活动识别方法,该方法结合了CNN可以从原始人体活动传感器时序数据中自动提取深层次时不变特征的能力和BiLSTM可以双向学习特征之间长期依赖关系的优点,并且在DaLiAc数据集上与LSTM模型和BiLSTM模型进行了仿真对比实验,通过比较3个模型训练过程的收敛速度、测试集上的预测分类性能和F1评价指标的情况,得出以下结论。
(1)BiLSTM网络能够实现特征的双向学习,其对不同人体活动的识别分类效果优于LSTM。
(2)所提CNN-BiLSTM模型对13种人体活动的整体分类准确率高达97.7%,优于仅具备时间特征学习的LSTM和BiLSTM。
(3)CNN-BiLSTM模型对具体每一类别活动分类的F1评价指标均高于0.95,展现了该模型用于人体活动识别时的有效性和可靠性。