多传感器数据融合的复杂人体活动识别
宋欣瑞, 张宪琦, 张展, 陈新昊, 刘宏伟    
哈尔滨工业大学 计算机科学与技术学院, 哈尔滨 150001
摘要:基于传感器的人体活动识别被广泛应用到各个领域,但利用多种异构传感器识别日常的复杂人体活动,仍然存在很多问题。对多个异构传感器数据进行数据融合时,存在兼容性问题,导致对并发复杂活动识别准确率较低。该文提出基于多传感器决策级数据融合的多任务深度学习模型。该模型利用深度学习自动地从每个传感器原始数据中进行特征提取。利用多任务学习的联合训练方法将并发复杂活动分为多个子任务,多个子任务共享网络结构,相互促进学习,提高模型的泛化性能。实验表明:该模型对周期性活动的识别准确率可达到94.6%,非周期性活动可达到93.4%,并发复杂活动可达到92.8%。该模型比3个基线模型的识别准确率平均高出8%。
关键词复杂人体活动识别    多传感器数据融合    深度学习    多任务学习    
Multi-sensor data fusion for complex human activity recognition
SONG Xinrui, ZHANG Xianqi, ZHANG Zhan, CHEN Xinhao, LIU Hongwei    
School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China
Abstract: Human activity recognition based on wearable sensors has been widely used in various fields, but complex human activity recognition based on multiple wearable sensors still has many problems. These problems include the incompatibility of many signals from multiple sensors and the low classification accuracy of complex activities. This paper presents a multi-sensor decision-level data fusion model using multi-task deep learning for complex activity recognition. The model uses deep learning to automatically extract the features of the original sensor data. In addition, the concurrent complex activities are divided into multiple sub-tasks using a multi-task learning method. Each sub-task shares the network structure and promotes mutual learning, which improves the generalization performance of the model. Tests show that the model can achieve a 94.6% recognition accuracy rate for cyclical activities, 93.4% for non-cyclical activities, and 92.8% for concurrent complex activities. The recognition accuracy rate is on average 8% higher than those of three baseline models.
Key words: complex human activity recognition    multi-sensor data fusion    deep learning    multi-task learning    

近年来,随着传感器技术的发展和成本的降低,各种传感器被广泛应用到人体活动识别中。通过对多种传感器采集的数据进行处理与分析,可以识别出人体活动,例如走、坐、站等[1-2]。对于多传感器数据融合的人体活动识别,研究者们提出了很多数据融合策略,这些策略可分为3个级别[3],分别是数据级融合、特征级融合和决策级融合。特征级融合是将多个不同传感器的数据特征级联到一起,之后送入机器学习算法模型中进行活动识别[4-5];但特征级融合策略对于异构传感器的不同采样频率产生的数据,级联起来并不方便,而且可能忽略一些传感器对识别结果的贡献。决策级融合是将多个分类器的决策结果组合到一起,得到最终的决策[6]。文[7]利用了投票和加权平均法将多个分类器的决策结果进行融合,得到最终的识别结果。决策级融合策略比利用单个模型分类,可以减少不确定性和模糊性,达到更好的分类效果。

目前越来越多的研究开始利用深度学习方法研究数据融合策略,其中利用较多的是卷积神经网络(convolutional neural network, CNN)和循环神经网络(recurrent neural network, RNN)。CNN可以直接从传感器的原始数据中自动提取特征[8],并且可以提取更深层次的抽象特征。文[9-10]利用CNN对手机加速计传感器数据进行活动识别。RNN可以用于对具有时间依赖关系的数据进行建模[11]。文[12]将CNN与长短期记忆(long short-term memory,LSTM)网络结合,先利用CNN进行特征提取,之后利用LSTM捕获传感器数据随时间变化的依赖关系;但是, LSTM的参数较多,计算量大。参数较少的门控循环单元(gated recurrent unit, GRU)也被应用到人体活动识别中,并且文[13]表明,GRU在传感器人体活动识别中的性能和计算时间都优于LSTM。

人的真实日常活动是复杂的,具有不确定性和多样性,是由一个或多个原子活动组成的,这些原子活动在一段时间内并发出现,例如坐着看电脑、站着洗澡或走路上楼梯。目前, 对并发复杂活动的识别准确率较低[14]

本文根据多传感器的数据特点,构建了基于决策级数据融合的深度学习网络模型,利用CNN从多个传感器的原始数据中自动提取有效的深度特征,并加入GRU,学习不同人体活动与时间的依赖关系,提高了复杂活动的识别准确率。通过引入多任务学习的方法将并发复杂活动划分为多个子任务,共享深度网络结构,相互促进学习,提高复杂活动识别的泛化性能。

1 整体结构设计

本文提出了基于多传感器决策级数据融合的多任务深度学习模型,整体结构如图 1所示。该模型首先采用决策级数据融合的思想,每个传感器数据经过各自独立的3层卷积网络,模型学习到每个传感器的深度特征。之后模型将每个传感器的深度特征图进行融合,得到一个大深度特征图,再经过3层卷积网络对合并后的大特征图进行卷积运算,学习传感器之间的关联特征,从而有效解决了不同传感器间的特征关联问题。为了学习到不同活动在时间序列数据上的依赖关系,采用参数较少的GRU网络模型。图 1中,从传感器数据输入到GRU是模型共享部分,后面是多任务学习部分,将并发复杂活动分为多个子任务进行学习。本文将并发复杂活动分为2个子任务:1)周期性活动识别,主要包括站、坐、躺、走等。2)非周期性活动识别,主要包括看电脑、做饭、洗澡、洗碗等。利用联合训练的方法为每个子任务设置1个分类器(softmax),根据2个子任务的神经网络预测值和标签(label)计算出各自的损失函数值,然后将两个损失函数值进行加和,得到总损失值。深度学习的目标就是通过降低总损失值,来降低子任务的损失值,经过多次迭代,不断更新网络模型的权重值来优化复杂活动识别模型。

图 1 深度学习模型的整体结构

2 模型的搭建与训练 2.1 模型搭建

本文模型的CNN由2部分构成:1)每个传感器采集到的数据对应3层的单独卷积子网络,即有k个传感器就有k个卷积子网络。卷积子网络的输入数据是经过滑动窗口得到的一段传感器时间序列数据X0k,每层卷积子网络都经过大小为(1, w)的2D卷积核来学习深层特征,依次得到特征图conv1k、conv2k和conv3k。之后将这k个深度特征图进行合并,得到大深度特征图。2)这个大特征图再经过3层卷积网络,每层利用大小为(1, 3, w)的3D卷积核来学习多种传感器特征之间的关联关系,依次得到fusion_conv1、fusion_conv2和fusion_conv3。卷积神经网络的每层都采用128个卷积核,每层卷积之后进行批量归一化(batch normalization,BN)以避免梯度消失,之后再采用relu激活函数进行非线性表示。

数据经过CNN进行特征提取之后,再经过2层GRU神经网络。每层GRU包含个128个神经单元,每层GRU之后都要经过dropout层进行正则化,避免过拟合。最后,分类输出层利用softmax函数进行活动分类。网络模型的正向传播具体过程如图 2所示。

图 2 网络模型正向传播算法过程

2.2 模型训练

利用多任务学习的联合训练方法对复杂活动进行识别,将复杂活动分为2个子任务进行学习。联合训练方法对相同的输入数据可能会有不同的输出结果,2个子任务有各自的分类层,即softmax层。然后,根据2个子任务各自预测的标签与实际标签进行误差计算,误差计算利用交叉熵损失函数,

$ {\mathop{\rm loss}\nolimits} = - \frac{1}{b}\sum\limits_{i = 1}^b {\left[ {{y^i}\ln {{\hat y}^i} + \left( {1 - {{\hat y}^i}} \right)\ln \left( {1 - {{\hat y}^i}} \right)} \right]} . $ (1)

之后将2个子任务的损失值进行加和,得到总损失值。利用总损失值进行梯度下降学习,更新神经网络中的权重值W。训练过程中经过MaxEpoch次迭代,不断优化模型的参数值,最终得到可以识别复杂活动的网络模型。网络模型训练算法过程如图 3所示。

图 3 网络模型训练算法过程

3 实验与分析 3.1 数据集介绍

本文利用的数据集是美国加州大学公开的数据集Extrasensory Dataset[14]。该数据集是在不受任何约束的条件下采集的完全真实生活中的动作,并且该数据集数据量大,包括通过智能手机和智能手表传感器从60名受试者中收集的超过30万min的标记数据,可以有效验证人体活动识别模型的有效性。

该数据集是通过多种传感器采集数据的,总共包括7种传感器,分别是加速计、陀螺仪、磁力仪、手表加速计、GPS、音频和手机状态。不同传感器采集数据产生的数据量如表 1所示。

表 1 传感器数据量统计表[14]
传感器类型 数据量 采样频率/Hz
全部传感器 37 7346
加速计 30 8306 40
陀螺仪 29 1883 40
磁力仪 28 2527 40
手表加速计 21 0716 25
GPS 27 3737 位置变化
音频 30 2177 13 MFCC
手机状态 30 8320

该数据集的标签是具有上下文信息的复杂活动标签,包括多种活动的组合,例如{坐着,看电脑}、{坐着,开车}、{站着,洗澡}、{走路,上下楼梯}等。它包括14种原子活动组成的21种复杂活动[14],具体复杂活动见表 2

表 2 复杂活动列表
坐着看电脑
站着清洁
站着洗澡
在车上站着
走路购物
在车上坐着
躺着看电脑
站着做饭
走路上下楼梯
坐着清洁
骑车
站着看电脑
走路漫步
跑步上下楼梯
站着漫步
坐着做饭

本文将14种原子活动分为2组:1)周期性活动,2)非周期性活动。具体的活动类别和各活动占总数据量的比例如表 3所示。

表 3 活动类型与各活动占总数据量的比例
周期性活动 分布/% 非周期性活动 分布/%
33.90 看电脑 21.00
44.70 开车 4.10
7.20 清洁 1.60
12.30 洗澡 0.68
0.36 做饭 0.54
骑车 1.64 购物 1.30
散步 0.20
上下楼梯 0.29

3.2 数据预处理

该数据集是在完全真实的生活状态中采集的数据,存在大量的不完整、不一致、不平衡、噪声值、异常值的数据,需要先对数据进行预处理。数据预处理主要包括数据规范化、缺失值处理、不平衡数据处理、数据划分等。

3.2.1 数据规范化

异构传感器采集的数据由于各传感器有着不同的测量范围,数值间的差别较大。数据规范化主要是将所有数据都按照比例进行缩放,使其数值落在一个特定的区域内。这对后面深度学习模型的训练有重要作用,可以加快梯度下降,能够使网络更快收敛,达到最优值。数据规范化的方法主要有:最小-最大规范化、零-均值规范化、小数定标规范化。本文采用零-均值规范化,见式(2)。其中:x为原始数据的均值,σ为原始数据的标准差。经过零-均值规范化后,得到的数据的均值为0,标准差为1。

$ {x^*} = \frac{{x - \bar x}}{\sigma }. $ (2)
3.2.2 缺失值处理

缺失值的处理方法包括删除记录、数据插补和不处理。本文首先对没有标签的数据进行删除,减少不确定性。然后,对缺少的传感器数据进行插补,采用的插补方法是均值插补法,根据属性的类型,用该属性的均值进行插补。

3.2.3 不平衡数据处理

日常生活中不同活动所占的时间比例是不同的,由表 3也可以发现,一般人是坐和躺的时间较长,跑步的时间很短。这会导致识别所占比例低的活动准确率很低,可能会把跑步、骑车都识别为坐或躺。针对此问题,本文采用的解决方案是数据增强。为了防止过拟合现象发生,先对占比例高的活动进行欠采样处理,随机删除一些数据,之后对占比例低的活动进行过采样处理,使各个活动所占比例相同。过采样利用合成少数过采样技术(synthetic minority oversampling technique, SMOTE),通过计算少数样本的K近邻,从K近邻中随机选择若干样本,然后对每一个选出来的样本通过式(3)进行重建,得到新的样本,最后插入到数据集中。

$ {x_{{\rm{new }}}} = x + {\mathop{\rm rand}\nolimits} \;(0, 1)\; \cdot \;|x - nx|. $ (3)
3.2.4 数据划分

利用滑动时间窗口对传感器时间数据进行分割。定义TSC分别为滑动窗口的长度、滑动步长和传感器的通道数。不同传感器的采样频率不同,假设传感器的采样频率为f,那么T的大小为2fS的大小为f,有50%的重叠部分。对于惯性传感器,通道数C=3。这样得到一个时间序列数据。

训练深度学习模型时,需要将数据集划分为训练集、验证集和测试集3部分。划分时要确保训练集、验证集和测试集中的样本属于相同分布,即每个类别在数据集中所占的比例相同。相同分布可以保证在后期优化深度学习模型时快速确定问题所在,提高优化效率。本文训练集、验证集和测试集的划分比例分别是90%、10%和10%。

3.3 实验与对比分析

在Tensorflow中实现了本文的深度神经网络。模型的训练和分类在NVIDIA RTX 20系列GPU上运行,该GPU有4 352个CUDA核心,主频为14 000 MHz,显存容量为11 GB。

3.3.1 超参数评估

神经网络的超参数设置有大量的组合。不同的超参数组合对神经网络的性能有很大影响。本文对神经网络的5个超参数进行了评估,分别测试了卷积层数(1~5层)、学习率(10-1~10-6)、卷积核大小(3~7)、卷积核个数(4~1 024)、dropout比率(0.1~0.9)。实验测试结果如图 4所示。经过实验对比分析,卷积层数为3层时神经网络达到较好效果,每个卷积层利用128个卷积核,每个卷积核的大小设置为(1, 3),dropout比率设为0.5,学习率为10-4

图 4 (网络版彩图)神经网络的超参数评估

3.3.2 CNN+GRUCNN+LSTM对比

为了验证本文提出的CNN+GRU模型的有效性,与CNN+LSTM模型进行了对比,分别对比了两个模型在训练时的收敛速度、识别准确率和参数个数,结果如图 5所示。根据图 5b可以发现,CNN+LSTM和CNN+GRU两个模型经过20 000次迭代后对活动识别的平均准确率几乎相等,而且损失值下降的速度与大小也几乎相等。在迭代2 000次的图 5a中可以发现,CNN+GRU比CNN+LSTM稍微快一点。进一步对比了两个模型的参数个数,由于每个LSTM单元包括3个门控单元和1个状态单元,而GRU去掉了状态单元,只有2个门控单元。CNN+LSTM和CNN+GRU两个模型的参数个数对比如表 4所示,表中的最后参数nc为不同任务中需要分类的活动个数,例如,本文中两个任务需要分类的活动个数分别为6和8。经过参数计算,CNN+GRU的参数个数明显比CNN+LSTM的参数个数少,因此CNN+GRU的计算时间更少。根据上面的比较,CNN+GRU与CNN+LSTM对活动识别的效果几乎相同,而CNN+GRU的参数个数更少,计算时间更短,可见CNN+GRU的活动识别性能更好。

图 5 (网络版彩图)CNN+LSTM与CNN+GRU深度神经网络模型的损失值和准确率

表 4 CNN+LSTM与CNN+GRU深度神经网络参数个数对比
CNN+LSTM CNN+GRU
每层参数计算 每层参数个数 每层参数计算 每层参数个数
CNN1 W:1×3×3×128
b: 128
1 280×7=8 960 W:1×3×3×128
b: 128
1 280×7=8 960
CNN2 W:1×3×128 512×7×2=7 168 W: 1×3×128 512×7×2=7 168
CNN3 b: 128 b: 128
CNN_fusion1 W: 3×1×3×128 1 280×3=3 840 W: 3×1×3×128 1 280×3=3 840
CNN_fusion2 b: 128 b: 128
CNN_fusion3
LSTM1(GRU1) W: 17 920×128×4
b: 128×4
9 175 552 W: 17 920×128×3
b: 128×3
6 881 664
LSTM2(GRU2) W: 128×128×4
b: 128×4
66 048 W: 128×128×3
b: 128×3
49 536
softmax W: 128×nc
b: nc
128×nc+nc W: 128×nc
b: nc
128×nc+nc
合计 9 261 568+128×nc+nc 6 951 168+128×nc+nc

3.3.3 基线模型对比与分析将

本文提出的模型与3个基线模型进行比较,考察各模型对每个活动的识别准确率以及对并发复杂活动的识别准确率,从数据融合方面与复杂活动识别方面对比模型的性能。3个基线模型分别是MLP(multilayer perceptron)模型、CNN+LSTM+early_fusion模型和CNN+late_fusion模型。

1) 基线模型1——MLP模型。文[15]提出了一种具有2层MLP的模型,每层MLP的隐藏层单元个数为16,对活动识别的准确率平均为77%。

2) 基线模型2——CNN+LSTM+early_fusion模型。进一步为了验证本文提出的数据融合方法对异构传感器数据的融合是有效的,以文[12]中的数据融合深度学习模型作为第2个基线模型。文[12]采用特征级数据融合方法,模型总共为6层,包括4层CNN网络和2层LSTM网络,输出层为softmax。每层的隐藏单元个数可表示为CNN(64) _ CNN(64) _ CNN(64) _ CNN(64)_ RNN(128) _ RNN(128) _softmax。

3) 基线模型3——CNN+late_fusion模型。文[8]中提到的CNN网络模型包括3个CNN层、1个全连接层和1个softmax输出层。该模型也是利用决策级融合方式,每个传感器对应单独的卷积神经网络。利用该模型可以验证本文加入循环神经网络GRU对人体活动识别的有效性。

图 6展示了本文提出的模型和3个基线模型对14种原子活动的识别准确率。可以发现,本文提出的模型的识别准确率普遍高于基线模型。尤其是对非周期性活动的识别,本文模型比基线模型1平均高出15%,比基线模型2高出8%,比基线模型3高出6%。将基线模型2与基线模型3进行对比可以发现,两个模型的平均识别准确率几乎相同,但对于不同活动的识别有所差别:基线模型2对动作幅度小的活动的识别准确率更高;基线模型3对动作幅度大的活动的识别准确率更高。对比这两个模型可以发现:1)利用决策级数据融合模型能够提取出更有效的特征,充分利用多传感器数据对动作幅度大的活动的关联作用;2)加入循环神经网络可以记录活动在时间上的依赖关系,增加了对前面动作的记忆功能,避免一些噪声数据对结果的影响。图 7展示了本文所提模型对21种并发复杂活动的识别准确率。可以看到,本文模型对并发复杂活动的识别准确率平均可达到92%以上,而且对每种活动的识别准确率差异不是很大,由此可以证明此模型对多传感器复杂活动识别具有合理性和有效性。本文模型提高了容易混淆的活动的识别准确率,表明利用多任务学习方法可以使不同的子任务相互促进学习,提高整体活动识别的准确率,减少异常值对模型的影响,提高模型的泛化性能。

图 6 (网络版彩图)本文模型与3个基线模型对14种原子活动的识别准确率比较

图 7 本文模型对并发复杂活动的识别准确率

4 结论

本文提出了基于多传感器决策级数据融合的多任务深度学习模型进行人体复杂活动识别。在深度学习模型中利用决策级数据融合,从多种传感器数据中提取了有效的数据特征,并利用多任务学习的联合训练方法,提高了模型对复杂活动识别的准确率。

对完全来自于日常活动的数据集进行了分析,对存在的缺失值和类别不平衡的数据作了预处理,提高了识别准确率。实验结果表明,本文提出的模型对周期性活动的识别准确率为94.6%,非周期性活动为93.4%,并发复杂活动可达到92.8%;对比基线模型,识别准确率平均高出8%。可见,本文提出的模型和预处理数据的方法对提高复杂活动识别准确率是有效的。

参考文献
[1]
CORNACCHIA M, OZCAN K, ZHENG Y, et al. A survey on activity detection and classification using wearable sensors[J]. IEEE Sensors Journal, 2017, 17(2): 386-403. DOI:10.1109/JSEN.2016.2628346
[2]
SHOAIB M, BOSCH S, INCEL O D, et al. Complex human activity recognition using smartphone and wrist-worn motion sensors[J]. Sensors, 2016, 16(4): 426. DOI:10.3390/s16040426
[3]
GRAVINA R, ALINIA P, GHASEMZADEH H, et al. Multi-sensor fusion in body sensor networks:State-of-the-art and research challenges[J]. Information Fusion, 2017, 35: 68-80. DOI:10.1016/j.inffus.2016.09.005
[4]
CAPELA N A, LEMAIRE E D, BADDOUR N. Feature selection for wearable smartphone-based human activity recognition with able bodied, elderly, and stroke patients[J]. PLoS One, 2015, 10(4): e0124414. DOI:10.1371/journal.pone.0124414
[5]
BULLING A, BLANKE U, SCHIELE B. A tutorial on human activity recognition using body-worn inertial sensors[J]. ACM Computing Surveys (CSUR), 2014, 46(3): 33.
[6]
KUNCHEVA L I. Combining pattern classifiers: Methods and algorithms[M]. Hoboken, USA: John Wiley & Sons, 2004.
[7]
DIETTERICH T G. Ensemble methods in machine learning[C]//Proceedings of the First International Workshop on Multiple Classifier Systems. Cagliari, Italy, 2000: 1-15.
[8]
IGNATOV A. Real-time human activity recognition from accelerometer data using convolutional neural networks[J]. Applied Soft Computing, 2018, 62: 915-922. DOI:10.1016/j.asoc.2017.09.027
[9]
YANG J B, NHUT N M, SAN P P, et al. Deep convolutional neural networks on multichannel time series for human activity recognition[C]//Proceedings of the 24th International Joint Conference on Artificial Intelligence. Buenos Aires, Argentina, 2015.
[10]
LEE S M, YOON S M, CHO H. Human activity recognition from accelerometer data using convolutional neural network[C]//2017 IEEE International Conference on Big Data and Smart Computing (BigComp). Jeju, South Korea, 2017: 131-134.
[11]
KIM J C, CLEMENTS M A. Multimodal affect classification at various temporal lengths[J]. IEEE Transactions on Affective Computing, 2015, 6(4): 371-384. DOI:10.1109/TAFFC.2015.2411273
[12]
ORDÓÑEZ F, ROGGEN D. Deep convolutional and LSTM recurrent neural networks for multimodal wearable activity recognition[J]. Sensors, 2016, 16(1): 115.
[13]
CHUNG J, GULCEHRE C, CHO K H, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[Z]. arXiv preprint. arXiv: 1412.3555, 2014.
[14]
VAIZMAN Y, ELLIS K, LANCKRIET G. Recognizing detailed human context in the wild from smartphones and smartwatches[J]. IEEE Pervasive Computing, 2017, 16(4): 62-74. DOI:10.1109/MPRV.2017.3971131
[15]
VAIZMAN Y, WEIBEL N, LANCKRIET G. Context recognition in-the-wild:Unified model for multi-modal sensors and multi-label classification[J]. Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, 2017, 1(4): 168.