一种用于人体行为识别的CNN-BLSTM模型

2019-12-04 03:15邹小武盛蒙蒙毛家发盛伟国
小型微型计算机系统 2019年11期
关键词:张量识别率分类器

邹小武,盛蒙蒙,毛家发,盛伟国

1(浙江工业大学 计算机科学与技术学院,杭州 310023)2(杭州师范大学 信息科学与工程学院,杭州 311121)

1 引 言

人体行为识别技术被应用于生产生活中各个领域,如在老人监护方面,监测摔跤等险情;在健身方面,记录运动轨迹和步数;在生产方面,识别工人行为动作,防止不当行为等[1-4].行为识别研究主要有两种方法,一种方法是利用摄像头采集视频数据,然后提取视频中的人体特征完成行为识别,该方法需要处理大量的视频数据,且由于环境干扰,导致识别率较低[5].另一种方法是利用加速度计、惯导、气压计等传感器穿戴在识别对象身体上,通过提取数据特征并结合分类器实现行为动作的分类[6,7].该方法提取的特征一般为传感器数据的均值、方差、标准差、熵、波形相关性等,由于在这些传统的特征值提取过程中会丢失大量关键信息,因此会影响行为识别率.

目前基于可穿戴设备的行为识别研究已取得丰厚成果,如文献[8]采用了隐马尔科夫模型进行分类,并且与朴素贝叶斯分类器、判决树(J48)、NB Tree(Naive Bayes tree)等分类器进行对比,验证了方法的识别率.文献[9]采用支持向量机(SVM)分类器,实现动态行为和静态行为的分类识别.文献[10]采用Kalman滤波器与贝叶斯分类器相结合的方式对老人和青年人走路、上楼、下楼三种行为进行分类识别,实验证明该算法对老人和青年人都具有较高的识别率.文献[11]基于加速度计、陀螺仪和气压计多维数据融合并提取时域特征,实现行为识别,但平均识别率仅为94%.另外,为提高算法的自适应性和识别率,滑动窗口和增量学习等方法被重点研究,如文献[12,13]研究了滑动窗口大小对行为识别率的影响,并通过实验确定了最合适的滑动窗口大小.文献[14]提出了一种人机结合的增量学习方法,当分类器不能判断模糊行为时,可人工确认模糊行为,并告知算法进行增量学习,当分类器判断该行为具有较大概率属于某一种特定行为时,算法可主动进行增量学习.上述介绍的方法虽然能够达到一定的识别精度, 但未充分考虑行为动作前后的关联性和特征提取的有效性.

随着深度学习的发展,神经网络技术在各个领域突显优势.本文基于CNN[15]模型在特征提取方面的优势和BLSTM[16]在时间连续上识别的优势,将CNN和BLSTM融合,得到CNN-BLSTM模型用于行为识别,该模型能够提取丰富的特征,并对时间连续的行为动作具有较强的识别性,因此具有较高的识别率.

2 数据处理

本文以Lab 实验室公开的 Actitracker 数据集WISDM1http://www.cis.fordham.edu/wisdm/dataset.php为实验对象,该数据集包含走路、慢跑、上楼梯、下楼梯、坐着和站立6种行为动作,采样频率为20Hz,总共采集了36位实验员的1098207条加速度数据(加速度计x、y、z三轴数据),采集装置放置在口袋中,其中走路(Walking)占38.6%,慢跑(Jogging)占31.2%,上楼梯(Upstairs)占11.2%,下楼梯(Downstairs)占9.1%,坐着(Sitting)占5.5%,站立(Sitting)占4.4%,如图1所示.

图1 WISDM数据集分布图Fig.1 Distribution of WISDM data set

该数据集提供的加速度计三轴数据,在时间上连续,但提取加速度数据的波形特征会导致失真严重,从而影响行为识别率.本文利用CNN进行数据特征的提取,而CNN更擅长空间数据的特征提取,因此需要将时间序列上的加速度数据转换为空间数据(即将加速度波形数据转换为二维张量).数据转换过程如图2所示,其转换函数如公式(1)所示.

(1)

公式(1)中axi、ayi、azi为加速度计采集的x、y、z三轴数据,1≤i≤n,n为需要转换的加速度数据数量,f表示映射函数,其功能是将数值与二维张量的横纵坐标做映射,Xi表示张量横坐标,Yi表示张量纵坐标,datai表示张量(Xi,Yi)位置对应的值.

根据上述方法将加速度计x、y、z三轴的时间序列数据转换为空间属性的张量,在张量中用数据点的位置和该位置的值替代原来加速度序列数据,具有更强的表达性,且不会导致数据的失真.在转换结束后,张量中空白位置用0填充.

3 CNN-BLSTM模型

本章节介绍CNN和BLSTM模型融合进行行为识别的方法,首先我们介绍利用CNN模型进行加速度张量特征提取方法,然后介绍长短期记忆模型(LSTM)的结构以及利用该模型进行分类的优势,最后提出了CNN模型与双向长短期记忆模型(BLSTM)模型的融合方法.

3.1 CNN特征提取

卷积神经网络(CNN)在提取张量特征方面具有优秀的性能,如在图像处理领域,不同卷积层能够提取出不同层面的特征,如在CNN网络中,越靠前的卷积层,提取的一般是张量的边缘信息,越靠后的卷积层,提取的信息越抽象,更具有代表性,因此利用更深层次的卷积层的特征有利于行为识别率的提高.本文采用tensorflow平台构建卷积神经网络(CNN),每层的输入输出通道都为16,网络结构共5层,其中前4层为卷积层和池化层,第5层为全连接层FC,最后利用Softmax函数实现行为的分类,CNN网络结构如图3所示.

CNN在本文中的作用并非直接用于行为分类,而是进行加速度数据张量的特征提取.特征提取过程如下步骤所示:

1)利用WISDM数据集转换得到加速度数据张量,张量大小根据加速度计采样频率和行为动作周期来确定;

2)利用加速度数据张量训练图3所示的CNN网络,当该模型对六种行为动作的识别率大于阈值δ时,结束训练.训练结束后,得到了最适宜的卷积核和池化核,利用该卷积核能够有效的提取本研究中的加速度数据特征,提取后的所有特征映射到固定大小的数组,即保存在全连接层内;

3)将卷积核和池化核保存,后续模型利用该卷积核进行特征的提取.

3.2 LSTM结构

人的一系列行为动作前后是连贯的,具有较高的关联性,如当前动作为上楼梯,那么上一个动作和接下来的动作都具有极大概率是上楼梯.因此在进行人体行为动作识别过程中,单纯利用加速度数据特征进行分类是不充分的,应该充分考虑当前行为动作之前的动作.在深度学习中循环神经网络(RNN)能够较好的处理时间序列上的问题,RNN的输出由当前的特征输入和前一时刻的状态决定.假设一系列时间连续的行为动作可表示为x={x1,x2,…,xt,…,xT},xt表示第t个行为动作,T表示行为动作的数量.则RNN隐藏层的输出ht如公式(2)所示.

ht=σh(wxhxt+whhht-1+bh)

(2)

公式(2)中σh为激活函数,wxh为输入层与隐藏层之间的权重矩阵,whh为隐藏层与隐藏层之间的权重矩阵,ht-1表示RNN上一时刻的状态,bh表示偏置.RNN的输入层输出结果如公式(3)所示.

yt=σy(whoht+bo)

(3)

公式(3)中σy为激活函数,who为隐藏层与输出层的权重矩阵,ht为隐藏层输出,bo为输出层偏置.

由于RNN模型随着时间序列的加长,模型变深以后会存在梯度消失的情况,为解决该问题,引入LSTM模型,该模型是一种RNN的变种,能够长期存储记忆.其基本单元相同,如图4所示,该结构中包含输入门it,遗忘门ft和输出门ot,其中输入门和输出门用于控制信息流的输入和输出,遗忘门用于控制前一时刻的状态,该结构通过这三种门实现长期的记忆,LSTM结构中的参数如公式(4)所示.

图4 LSTM单元结构图Fig.4 Cell structure of LSTM

(4)

公式(4)中ct表示t时刻的记忆单元状态,ht表示隐藏层的输出,bf、bi、bo、bc表示偏置.wxf、whf、wcf、wxi、whi、wci、wxo、who、wco、wxc、whc表示权重值,通过训练得到.

通过构建LSTM模型,能够对一系列行为动作产生长期的影响,有利于模型根据当前输入和前一时刻的状态判断行为结果,因此理论上具有更高的识别率.

3.3 模型融合

虽然3.2小节介绍的LSTM模型能够长期的记忆行为动作,但当前行为不仅和输入特征、前一时刻状态有关,还与后一时刻的状态有关,因此本文构建一个双向的长短期记忆模型(BLSTM),通过前一时刻状态、后一时刻状态、当前输入特征三个方面综合判断当前的行为动作类别.CNN-BLSTM融合模型如图5所示.

BLSTM模型是一种双向的LSTM,任何一个方向都是一个单独的LSTM模型,因此其隐藏层输出ht可用公式(5)表示,该模型的预测结果输出如公式(6)所示.

(5)

yt=σ(ht)

(6)

公式(5)和公式(6)中htf表示t时刻正向LSTM模型的隐藏层输出,htb表示t时刻反向LSTM模型的隐藏层输出,α、β为常数,其值根据实验验证设置,α+β=1,σ为Softmax函数.

图5 CNN-BLSTM模型结构图Fig.5 Structure of CNN-BLSTM

CNN-BLSTM模型首先利用3.1小节保存下来的卷积核和池化核参数对行为动作张量进行特征提取,然后将提取的特征输入BLSTM中进行行为训练或识别.在进行识别前需要训练CNN-BLSTM模型,因为虽然3.1小节训练CNN得到了合适的卷积核与池化核等参数,但单独的BLSTM结构并没有进行训练,因此利用WISDM数据集转换得到的张量进行融合模型的训练,训练结束后才能使用该融合模型.

4 增量学习

本文识别的人体行为动作包括走路(Walking)、慢跑(Jogging)、上楼梯(Upstairs)、下楼梯(Downstairs)、坐着(Sitting)、站立(Sitting)六种,其中走路多种行为动作的相似性较高(如走路和上楼梯),区分相似行为动作的难度较高,算法很可能会混淆.我们知道在模型最后一层使用Softmax函数进行分类,该函数的作用实际是计算六种行为对应的概率是多少,如公式(7)所示.

(7)

公式(7)中a1~as表示输入Softmax的数据,本文识别六种行为动作,因此S=6.

假设Softmax计算出属于某种行为动作的概率P最高,如属于走路行为的概率最高,但P<γ,则认为该次判断的可信度不高,在这种情况下需要进行增量学习,γ为需要进行增量学习的阈值,根据经验确定.方法如下步骤所示:

1)算法自动保存该情况的原始张量;

2)人工方式为该张量打上实际行为动作的标签;

3)算法经过长期运行后积累可信度低的数据集,并重新训练BLSTM模型.

5 实验分析

本章基于WISDM数据集验证CNN-BLSTM模型在行为识别方面的性能,实验的硬件环境为GTX1080的GPU、8G内存的PC机,软件平台为tensorflow深度学习框架.实验过程中将数据集分为两部分:训练集和测试集,其中训练集包括70000条加速度数据,测试集包括30000条加速度数据.训练集和测试集中的数据都完整的包含走路(Walking)、慢跑(Jogging)、上楼梯(Upstairs)、下楼梯(Downstairs)、坐着(Sitting)和站立(Sitting)六种行为动作.

5.1 数据块划分

WISDM数据集的采样频率固定为20Hz,因此在单位时间内加速度计采集的数据量相同,而不同行为动作的一个完整行为周期的时间是不同的,因此对应的加速度数据数量是不同的.在进行行为识别前需要确定一个固定大小的数据块,该数据块大小不能小于六种行为动作对应的数据量的最大值.通过统计数据集中六种行为动作,发现每种行为动作的一个完整周期对应的加速度数据量如表1所示.

表1 完整行为周期加速度数据量表
Table 1 Acceleration data of full cycle behavior

行为动作平均加速度数据量走路(Walking)慢跑(Jogging)上楼梯(Upstairs)下楼梯(Downstairs)坐着(Sitting)站立(Standing)17.315.121.216.5nn

从数据统计结果表明,走路行为完成一个行为周期,加速度计采集了17.3个数据.慢跑行为完成一个周期,加速度计采集了15.1个数据.上楼梯行为对应21.2个数据,下楼梯行为对应16.5个数据.如果在加速度数据流中取数据的个数小于21.2个时,则上楼梯行为的数据会部分丢失,这会严重影响上楼梯行为的动作识别,因此在取数据时,必须大于21.2个数据.这里并不需要考虑坐着和站立行为,因为这类静止行为无论数据块的值取多,都不会影响其识别,所以n为任意值.本文针对WISDM数据集,将数据块的大小设定为23,并转换为20×20的张量.如果数据集改变,则需要重新统计数据块的大小.

5.2 特征提取对识别率影响

在CNN-BLSTM模型中,利用卷积方法提取加速度数据张量的特征.不同层次的卷积层提取的特征具有不同的特性,浅层的卷积层一般是提取张量的边缘信息,该特征不具备代表性,更深层次的卷积层提取的张量特征更抽象,更具有代表性.实验中提取不同的数据特征(包括不同深度的卷积层特征、传统特征)输入到BLSTM模型中,分析不同特征对应WISDM数据集中六种行为动作的平均识别率,其中卷积核大小为3×3,卷积步长为1.实验结果如表2所示,提取的传统特征包括加速度数据的均值、方差、离散系数、加速度x、y、z三轴相关性、熵,原始数据是没经过任何处理的数据,即加速度数据.

实验结果表明直接向BLSTM模型中输入原始数据,其识别率为71.72%.卷积层Conv1~Conv3的平均识别率快速提高,其中卷积层Conv3提取的特征可使识别率达到96.95%,卷积层Conv4提取的特征对应的识别率略微降低,而传统特征提取方法获得的识别率仅为78.16%.由于原始数据未经特征提取,数据中包含大量的无效信息(即识别干扰项),导致识别率较低.随着卷积层次加深,提取的特征更加的抽象,特征更具有代表性,能够较好的摒弃干扰信息,从而提高了平均识别率,而当卷积层太深以后(如Conv4),提取特征过程中丢弃的信息越来越多,不利于算法识别,因此平均识别率会逐渐略微下降.综上所述,针对数据量不大的行为识别问题,选择卷积层Conv3提取的特征作为BLSTM模型的输入是最合适的.

表2 不同特征对应的平均识别率
Table 2 Average recognition rate of different features

不同特征平均识别率(%)原始数据Conv1Conv2Conv3Conv4传统特征71.7254.7673.1396.9591.4878.16

5.3 CNN-BLSTM模型识别率分析

根据5.2小节的实验,利用卷积层Conv3提取的特征作为BLSTM模型输入,对测试数据集进行实验,分析模型对六种行为的识别率情况,实验结果如图6所示,纵坐标为实际行为动作,横坐标为被识别的行为动作.

图6 CNN-BLSTM识别率图Fig.6 Recognition rate of CNN-BLSTM

实验结果表明对坐着行为的识别率最高,达到了98.3%,对下楼梯行为的识别率最低,为95.1%.因为坐着和站立这类行为是静止状态,采集的加速度数据与其他行为动作具有较大区别,因此神经网络能较好的区分,而下楼梯行为与走路和上楼梯行为的相似度较高,而每个实验者完成这些行为动作习惯不同,因此下楼梯行为很容易被识别为走路或上楼梯行为,因此其识别率相对较低,但最低的识别率也达到了95.1%,因此本文提出的CNN-BLSTM模型具有较高的行为识别率.同时对相似行为动作的区分效果也较好,如上楼梯行为和走路行为比较相似,但仅有2.1%的上楼梯行为被识别为走路行为.

5.4 对比实验

目前可穿戴设备行为识别方面的研究一般是特征提取和分类器相结合的方法,传统的特征包括传感器数据的均值、方差、离散系数、加速度x、y、z三轴相关性、熵,主流的分类器包括决策树、SVM等.实验将本文提出的CNN-BLSTM方法与CNN、SVM、J48决策树进行对比,其中CNN模型结构如3.1小节的图3所示,SVM和J48都采用传统特征值作为分类依据,实验结果如图7所示,横坐标为行为动作,纵坐标为每种行为动作的识别率.不同方法的平均识别率如表3所示.

表3 不同方法平均行为识别率表
Table 3 Average recognition rate of different methods

行为识别方法平均识别率(%)CNN-BLSTMCNNSVMJ4896.9587.2364.7562.09

实验结果表明本文提出的CNN-BLSTM模型对六种行为的识别率都比较高,其次是CNN模型的识别率也比较均衡,但低于CNN-BLSTM模型,因为CNN-BLSTM不仅考虑了特征提取方法,而且考虑了行为动作在时间前后的相关性,而CNN模型仅依靠特征进行分类.接着SVM行为识别方法在上下楼梯方面的识别率较低,因为上下楼梯属于相似动作,性能不强的分类器很难区分.J48决策树在行为识别方面的效果最差.同时实验结果也表明了深度学习模型在行为识别方面的性能要高于传统的分类器.

图7 行为识别率对比图Fig.7 Comparison of activity recognition rate

6 总 结

针对传统基于可穿戴设备行为识别研究中特征提取不完善、传统分类器准确率差等问题,本文提出一种基于CNN-BLSTM模型的人体行为识别方法.该方法首先将时间序列的加速度数据转换为二维张量,然后提出CNN模型和BLSTM模型融合的CNN-BLSTM模型来提高行为识别率,该方法既能继承CNN模型对张量特征提取的性能,又能在模型预测阶段充分考虑前期和后期行为动作,使得行为分类不再单纯依靠数据特征.实验结果表明所提方法能够有效提高行为识别率.

猜你喜欢
张量识别率分类器
学贯中西(6):阐述ML分类器的工作流程
浅谈张量的通俗解释
2型糖尿病脑灌注及糖尿病视网膜氧张量的相关性
严格对角占优张量的子直和
基于朴素Bayes组合的简易集成分类器①
一类非负张量谱半径的上下界
一种自适应子融合集成多分类器方法
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别