陈馨瑶, 张天荣, 朱雪芬, 莫路锋,
(1.浙江农林大学 信息工程学院,浙江 临安 311300; 2.浙江农林大学信息与教育技术中心,浙江 临安 311300)
基于可穿戴设备的人体行为识别技术在诸多领域发挥着巨大的作用,如在运动计数方面,识别人体行为动作并记录运动轨迹[1];在老人监护方面,当监护对象跌倒时能够及时识别出摔跤行为[2,3]。主要利用加速度传感器、惯导、气压传感器等进行人体行为动作的相关数据采集[4,5]。
目前在基于传感器的行为识别领域已做了大量的研究,如李锋等人用了隐马尔科夫模型对加速度数据进行分类实现了人体行为识别,结果表明基于马尔科夫模型分类器的行为识别率最高[6]。钱丽萍等人提出一种新型的分类方法,通过将加速度数据映射到三维空间中,通过提取物质特征并利用投票方法实现分类,实验结果表明该方法的识别率达到了94 %[7]。苏本跃等人提出一种基于末位匹配的传感器数据截取方法,通过分割训练数据样本,然后利用整体梯度向量的2范数累加作为匹配度量准则,最后根据投票策略得到行为识别结果[8]。Banos O等人针对数据截取窗口大小对识别率影响问题,通过研究不同滑动窗口大小对行为识别率的影响,确定最佳窗口值,从而提高了行为识别率[9]。目前在行为识别领域还存在某些难点,如特征提取不全面、分类算法未考虑行为动作在时间序列上的前后关联性等,这导致很难达到较高的识别率。
本文研究一种深度学习的融合模型,首先将时间序列的加速度数据转换为二维张量形式,然后利用卷积神经网络(convolutional neural network,CNN)[10,11]模型进行特征提取,最后将特征值输入到长短期记忆网络(long short-term memory,LSTM)[12,13]模型中进行行为分类。由于CNN在特征提取方面的优势和LSTM模型在处理时间序列相关性较强方面的优势,使得融合后的模型能够集两种模型的特点,从而达到较好的分类效果。
基于加速度传感器对走路、慢跑、上楼梯、下楼梯、坐着和站立六种行为动作进行识别,为验证算法的有效性,采用WISDM数据集进行实验分析,该数据集中六种行为动作数据量分别占了38.6 %,31.2 %,11.2 %,9.1 %,5.5 %,4.4 %。
该数据集提供的加速度计三轴数据在时间上连续,但在提取加速度数据的波形特征时会导致特征失真,从而影响行为识别率。由于深度学习中CNN模型能够非常有效的提取张量特征,结合CNN的特点将时间序列上的加速度数据转换为二维张量。数据转换过程如图1所示,其转换函数如式(1)所示。将时间序列上一维的加速度数据波形转换为二维张量的形式,后期利用卷积神经网络CNN来提取张量特征。
图1 张量转换过程
(1)
式中ax,i,ay,i,az,i分别为加速度传感器采集一次得到的x,y,z轴的加速度分量,1≤i≤m,m为加速度传感器采集的次数,f为映射函数,将数据映射到张量长、宽值,Xi为张量横坐标,Yi为张量纵坐标,datai表示在坐标(Xi,Yi)处的值。将走路、慢跑、上楼梯、下楼梯、坐着和站立六种行为动作的加速度数据转换为张量后,以图片呈现的结果如图2所示。
图2 六种行为动作张量图
从图2中可以看出同一种行为动作的张量图案基本相同,这也就说明同一种行为加速度数据点之间是存在较强关联的,这些关联性决定了加速度数据转换为张量后,构成形状相似的图案;而不同行为动作的张量图案差别较大,这就为行为分类提供了依据。
将时间序列数据转换为张量格式后,实际上是将时间序列数据转换为空间数据,能够增强数据点之间的空间关系,有利于提取更丰富的加速度数据特征值。张量内没有被赋值的位置默认数值为0。
CNN最常见是用在图像识别领域,且随着卷积的层数增加,能够提取的特征更具有代表性。CNN中较浅的卷积层一般提取的张量的边缘特征,越深的卷积层提取的特征越抽象,如图3所示。图中加速度数据张量经过若干卷积操作后,得到特征1,2,3,…,n。
图3 特征提取图
构建的CNN结构如图4所示,包括4层卷积层和4层池化层,各层之间通过交替方式连接,最后连接一层全连接层。该网络输入和输出层都为16通道。
图4 CNN结构
然而文中并非直接利用卷积神经网络进行行为识别,而是将其作用在加速度张量特征提取步骤,因为该模型仅能根据特征值进行分类,而并不能考虑行为动作在时间上的前后关联性。当CNN进行特征提取时,需要利用训练数据进行大量的训练,才能得到有效的卷积核,因此在将CNN模型与其它模型进行融合前,需要得到成熟的卷积核,融合模型才能够进行特征提取,卷积核提取方法有:1)首先根据第一章的方法将加速度数据转换为张量数据;2)然后利用加速度张量训练集训练CNN(见图4),当CNN的识别率达到一定值且稳定后,结束训练。此时CNN的卷积层得到了成熟的卷积核,并保存该卷积核;3)将保存的卷积核赋值给融合模型,使得融合模型具有特征提取的能力。
人体行为活动在时间序列上具有较强的关联性,如现在正在走路,那么当前行为动作的前几个动作和后几个动作具有非常高的概率也是走路行为。因此在进行行为识别时,不仅仅应该根据加速度数据的特征值进行行为分类,更重要的是结合前后行为动作进行预测推断。循环神经网络(RNN)是一种比较优秀的记忆类型网络,该网络能够保留短期的记忆,该模型的输出结果依赖于当前特征值的输入和上一时刻的状态,如一系列的行为动作表示为A={a1,a2,…,at,…,aT},at表示第t个时刻的行为动作,T表示行为动作的数量。则RNN隐藏层的输出ht为
ht=σh(wxhat+whhht-1+bh)
(2)
式中wxh为输入层和隐含层1之间的权重张量,whh为两个相邻隐含层之间的权重张量,ht-1为RNN上一时刻的状态,bh为偏置,σ为模型的激活函数。RNN的输入层输出结果为
yt=σy(whoht+bo)
(3)
式中σy为输出层激活函数,who为隐含层4和输出层之间的权重张量,ht为隐含层输出状态,bo为相关偏置。
虽然RNN能够考虑前后动作的关联性,但记忆不长久,且随着循环网络的增加,存在梯度消失问题,因此在实际过程中效果并不理想。LSTM模型是对RNN的改进,该模型通过改变RNN模型的单元结构,能够实现长期记忆功能。该神经元结构主要在神经元内加入了输入门it、遗忘门ft以及输出门ot,信息流的输入和输出通过输入门和输出门控制,遗忘门用于控制前一时刻的状态,该神经元通过三种门之间协作实现了长期记忆,LSTM结构中的参数为
(4)
式中ct为t时刻的细胞状态,ht为隐含层的输出,bf,bi,bo,bc为偏置。wxf,whf,wcf,wxi,whi,wci,wxo,who,wco,wxc,whc为权重值。
LSTM模型能够存在长期的记忆功能,因此能够记录一系列行为动作的前后关联性,且该模型同时能够根据特征值进行行为识别,理论上具有更好的行为识别率。
本文结合两种模型各自的优势,从而使得融合后的模型更好,且更适宜与人体行为识别研究,CNN融合双向LSTM(BLSTM)后的模型为CNN-BLSTM,如图5所示。
图5 CNN-BLSTM模型结构
在模型输入层输入行为动作的张量数据(a1,a2,…,aT),然后利用CNN模型的卷积层和池化层进行特征的提取,接着输入到BLSTM模型中,最后通过输出层输出识别结果。
双向的LSTM在实际上是由两个单向的LSTM模型逆向组合而成,因此其隐含层输出ht可用公(5)表示,该模型的预测结果输出为
(5)
yt=σ(ht)
(6)
式中yt为模型预测结果,σ为SoftMax函数。
实验利用Tensorflow深度学习平台构建CNN-BLSTM融合模型,利用WISDM数据集构建训练数据集和测试数据集,分别包含60 000条加速度数据和40 000条加速度数据。实验针对走路、慢跑、上楼梯、下楼梯、坐着和站立六种行为动作展开。公共数据集WISDM采样频率为20 Hz,经过分析,完成走路、慢跑、上楼梯、下楼梯需要采集的加速度数据次数分别为17.3,15.1,21.2,16.5次。而由于站立和坐着行为没有明显的行为周期,因此用变量n表示。如果使用小于21.2个数据的滑动窗口截取数据流,则上楼梯行为的数据截取不完全,会影响上楼梯行为动作的识别。因此必须保证滑动窗口截取的数据长度大于21.2,后续实验中将滑动窗口大小设置为23,并将滑动窗口截取的23个数据转换为20×20的张量。
实验验证不同深度的卷积层提取的特征输入到BLSTM模型中对六种行为动作的平均识别率。卷积层使用3×3的卷积核,卷积核在卷积过程中移动的步长为1,实验中对比了传统特征值的提取,包括均值、离散系数、加速度传感器三轴相关性、方差、能量和熵,以及使用原始数据进行预测的实验结果。通过对WISDM公共数据集中的六种行为动作进行1 000次独立重复测试,得到算法对六种行为动作的平均识别率。
实验结果表明使用第一层卷积层Conv1提取的特征进行行为识别的识别率仅为54.76 %,使用第二层卷积层Conv2提取的特征进行行为识别的识别率为73.13 %,使用第三层卷积层Conv3的特征进行行为识别的识别率为96.95 %,而使用第四层卷积层Conv4的特征进行行为识别的识别率反而下降到了91.48 %。随着卷积层数的加深,提取的特征由原来的张量边缘信息变为更抽象、语义更高的数据点之间关系的特征,提取的特征值逐渐排除了干扰因素,使得特征值更具有代表性,但到第四层卷积层后,特征提取过度导致某些重要的特征被排除,因此识别率范围会降低。提取原始的特征值输入到BLSTM模型中的识别率仅为78.16 %,而直接将原始加速度数据输入到模型中,识别率仅为71.72 %,因为无论是传统特征值提取还是原始数据,输入到识别模型中的数据都存在大量的噪声,导致识别结果不准确。
分析提出的融合模型(CNN-BLSTM)对六种行为动作的识别情况,实验结果如图6所示,纵坐标表示实际的行为动作,横坐标表示识别的行为动作。
图6 CNN-BLSTM识别率
实验结果表明提出的识别算法对走路、慢跑、上楼梯、下楼梯、坐着和站立六种行为动作的识别率分别为96.8 %,97.3 %,96.4 %,95.1 %,98.3 %,97.8 %,因此对坐着行为的识别率是最高的,对下楼梯行为的识别率最低。根据实验结果表明走路行为最容易被识别为上楼梯行为,慢跑行为最容易被识别为下楼梯行为,上楼梯行为最容易被识别为走路行为,下楼梯行为最容易被识别为上楼梯行为,坐着和站立两种行为容易识别错误,但识别错误的概率非常低,且总体上对六种行为动作的平均识别率达到了96.95 %,因此本文提出的行为识别方法具有较高的识别率。
基于加速度传感器的人体行为识别传统的方式是提取数据的时域和频域特征值,包括均值、方差、加速度传感器x,y,z三轴相关性、熵和能量等,然后将提取的特征舒服到分类器中进行行为分类,常用的分类器包括SVM、J48决策树、BP神经网络、CNN等。本次实验将提出的CNN-BLSTM融合模型与传统的分类方法(CNN,SVM和J48)进行对比,其中SVM和J48输入的特征值是传统的时域和频域特征值,而CNN和CNN-BLSTM模型输入的是基于本文方法的加速度张量数据,实验结果如图7所示,横坐标表示六种行为动作,纵坐标表示识别率。
图7 行为识别率对比
从图7结果表明提出的CNN-BLSTM模型对六种行为动作的识别率都比较高且比较均衡,其次是CNN模型,因为CNN-BLSTM从当前行为动作前后关联性和特征分类两个方面对行为识别进行预测,因此实际识别效果较好,而CNN模型仅依靠特征进行分类。J48分类器对六种行为动作的分类结果不太理想,其对慢跑、坐着和站立三种行为的识别率比较高,而对另外三种行为动作的识别效果较差。SVM分类算法对走路、站立和坐着三种行为的识别率较高,而对其他另外三种方法的识别效果较差。
针对目前行为识别方法为在特征提取方面的不足以及并未考虑行为动作前后关联性对识别的影响,提出一种将CNN和BLSTM融合的复合型模型,该模型能够结合两种模型的优势,在特征提取和识别关联性方面都具有较好的性能,使行为识别不再单纯依赖数据特征。实验结果表明:该方法能够有效地提高行为识别率,且对多种行为动作的识别都比较均衡。