面向弱标签传感器数据的人体活动识别与定位
2021-09-23宋秀秀胡昭华
宋秀秀,周 华,何 军,胡昭华
(南京信息工程大学 电子与信息工程学院,江苏 南京 210044)
0 引 言
随着物联网(IOU)和便携式移动设备的迅速发展,基于可穿戴传感器的人体活动识别研究已经成为智能辅助系统的一个核心课题。它通过对加速度、磁力计等运动型传感器获取的人体信号数据进行分析,理解人们在当前环境下的运动模式,在个人健身训练、智能家居[1]、健康监测[2]等方面有着广泛的应用。结合实际情况发现,人们在日常生活中通常不会一直保持固定的某种运动模式,而是多种运动状态的组合。与容易标注的图像或视频对象不同,很难从人体佩戴传感器获取的时间序列数据中精确分割出某种特定活动的时序边界。幸运的是,人们在记录传感器数据的过程中虽然没有明确标记出特定活动的起止位置,但是却知道数据中包含哪种类型的活动。在本文中,这种类型数据称为弱标签传感器数据。通常,数据集中活动的持续时间不同,活动的发生次数也不同,那么新的挑战在于是否能够利用弱标签传感器数据设计一个新模型,使它不仅能够识别弱标签传感器数据中的活动类型,而且还能确定活动的位置。
考虑到弱标签传感器数据是按时间先后顺序排列的一维时序信号,所以选用一维卷积网络学习序列数据的局部特征。通过对实验数据可视化的研究发现,特定活动区域和背景区域的信号值存在一定的差异。受注意力机制[3]的启发,可以把注意力集中在感兴趣的活动区域,快速提取序列中关键有用的信息。因此,将卷积神经网络和注意力机制相融合,加强对特定活动区域的关注,抑制无关的背景噪声信息,利用收集的弱标签数据训练网络模型,实现活动的分类和定位。
1 相关工作
活动识别过程主要分为特征和识别两大部分,其中,识别的结果取决于特征提取的质量好坏。传统的活动识别研究大多数是基于统计学习方法进行识别,这些方法需要手动设计特征,其特征主要包括时域[4]、频域和时频域特征。如文献[5]中通过收集加速度传感器数据计算滑动窗口内的均值、标准差、偏度、相关性等特征,并送到SVM分类器中去识别其活动,但是对于区分上下楼相似动作的识别性能较差。文献[6]中将从传感器活动数据中提取样本熵特征来提供给极限学习机(ELM)进行活动识别。Cheng等利用隐马尔可夫模型对每个活动类别建模,选择概率最高的作为分类结果[7]。随着传感器的应用范围变大,手工设计特征的不足也越来越明显。当传感器应用于不同的活动类型时,依赖于特定领域知识的浅层特征可能就不适用于其他类型的数据,导致后续分类器的泛化性能不高。
随着深度学习的兴起,构建的网络模型能从海量数据中自动学习更系统、更深层次、更具区分能力的信息,越来越多的神经网络被应用于活动识别。如Ronao等提出一种卷积神经网络Convnet,从原始序列中自动提取数据的鲁棒性特征,结果表明,网络可以较好地对数据分类,尤其是区分具有相似性的上下楼活动[8]。后来Hammerla在文献[9]中进行了评估DNN、CNN、LSTM三种模型在人体活动识别中的表现,结果表明,LSTM在大型基准数据集和短时长活动的识别性能优于其他两种方法,而CNN对于固定活动数据的识别性能较好。总结发现以上方法都是属于监督学习的范畴,需要大量精确标记时序边界的活动数据对模型进行训练。
2 主要工作
本文将活动识别问题转化为时序分类与定位任务,研究内容主要包括三个部分:
1)使用一维卷积神经网络提取输入数据的潜在特征。
2)在提取特征的基础上引入注意力机制,学习不同时间帧采样数据在时间维度上的位置权重。
3)用中值滤波方法对一维概率序列做平滑处理,找出局部最小值作为阈值门限,进而定位出特定活动的起始位置和结束位置。
2.1 网络结构
将一维卷积神经网络作为基本网络,由输入层、卷积层、池化层、全连接层、输出层组成。为了快速定位活动片段,在池化层和全连接层之间引入新的注意力层,整个模型框图如图1所示。因为卷积神经网络需要固定大小的输入,所以在数据做特征提取和分类之前,使用滑动窗技术对弱传感器数据进行采样,使每条样本序列中包含固定的时间帧片段。然后在每个采样间隔内存储加速度计x轴、y轴、z轴的数据。最后对样本集统一做标准化处理,使它们的信号值保持在一定范围。
图1 基于注意力机制的卷积神经网络模型
1)输入层
输入层中没有输入向量,只有输出向量。设输入向量矩阵的大小为M×N,M代表样本数,N代表每条样本的属性值。
2)卷积层
卷积核每沿时间轴滑动一次,卷积核的权值向量和样本的子序列值就做一次点乘求和。点积运算的值加上偏置得到的结果送入ReLU激活函数,得到下一层的卷积特征。卷积层的操作过程如下:
式中:αi,j是第i行第j列单元的输出值;F是滤波器的大小(宽度和高度相同);wm,n表示过滤器的第m行第n列的权重值。
3)池化层
在两层卷积层中间衔接一个池化层,池化层采用最大值采样方式,输出固定过滤区域中的最大值。这样既可以二次提取卷积特征图中重要的特征,也简化了网络计算的复杂度。
4)注意力层
数据特征经过卷积和池化交替处理之后,变成更具代表性的抽象特征表示。为了更好地突出采样数据之间的差异,将池化层输出的特征矩阵x输入到三层全连接网络中。网络输出经归一化函数给出一维的概率分布,计算过程如下所示:
式中:(w1,w2),(b1,b2)代表权值矩阵和偏置量;αt是t时间帧采样数据的权重值,也表示该时间帧是目标活动片段的可能性大小。经过注意力筛选之后,过滤了大部分噪声信息,使特征z中包含更多关于目标活动特征的重要信息。
5)全连接层
将加权后的特征向量z整合为一维特征,输入到全连接网络中。
6)输出层
为了给出最后分类的结果,使全连接层输出映射到样本序列的标记空间,并将输出层第k个神经元的激活函数定义为如下形式:
式中:k为活动的类别数;αk即当前特征属于不同活动类型的概率。
2.2 活动定位算法
经过注意力层输出的一维概率序列主要由两部分组成,其中,目标活动区域与背景区域交界处的两边权重值有较大的差异,可以将整个概率序列的包络看作是一条曲线,寻找其中的局部最小值。由于原始概率序列存在多个局部波峰和波谷,影响谷底的检测。所以在搜索局部最小值之前,对概率序列做中值滤波处理。对比概率序列的前后波形发现,序列中的大部分毛刺被消除,概率序列变的更加平滑,如图2所示。
图2 概率序列滤波前后的波形对比
中值滤波方法[10]定义了一个固定长度的窗口,对内部的信号值按升序排列,取中值作为窗口中心位置信号值作为输出。因为滤波过程中噪声数据在排序的时候被排到了左边或右边,所以能够有效地消除尖峰噪声。
在满足已知特征的条件下,经过多次试验证明,滑动窗口大小为5的时候滤波效果比较好。然后取局部最小值0.015作为最优阈值门限,高于门限设为1状态,低于门限设为0状态。将滤波后的概率序列转变成只有两种状态构成的数字信号波形,根据波形上升或下降趋势的突发转变点,完成对活动片段的定位,活动片段定位算法:
1.Input:数字信号序列S
2.Output:活动时序区间L
3.L=pd.DataFrame(columns=[′label′,′begin′,′end′])//创建表格存储活动的起点和终点
4.Begin
5.start=[],end=[] //初始化起始和结束
6.ifa[0]==1如果第一个采样点状态为1
then
start=[0] //把第一个坐标点作为活动的开始end if
7.if a[⁃1]==1 //如果最后一个采样点状态为1
Then
end=[len(a)⁃1] //把最后一个坐标点作为活动的结束
end if
8.diff=a[:⁃1]⁃a[1:] //对序列切片,得到两个序列片段两个片段相减得到一个差值区间
9.start=np.hstack((start,np.where(diff==⁃1)[0]+1))
//当差值=⁃1时,返回坐标点的索引并加1,把坐标点按水平方向堆叠,如[s1,s2,s3]表示活动的起始点
10.end=np.hstack((np.where(diff==1)[0],end))
//当差值=1时,返回坐标点的索引把坐标点按水平方向堆叠,如[e1,e2,e3]表示活动的结束点
11.L[′label′]=label //把活动类别添加到表格第1列
12.L[′begin′]=start.astype(′int′)//把起始区间添加到表格第2列
13.L[end′]=start.astype(′end′)//把结束区间添加到表格第3列
return L
end
学习注意力分布时,特征向量的初始长度为64。现在将活动区间内的数值增大32倍,映射到原始序列长度为2 048时间帧的片段中,实现对于弱标签传感器中活动片段的定位。活动片断定位结果如图3所示。
图3 活动片段的定位
3 实验结果与分析
首先在公开的人体活动UCI数据集上,验证本文提出的模型能否实现强监督模式下的人体活动识别,然后验证模型在弱标签数据集上的性能。
3.1 数据集介绍
数据集介绍如表1所示。
表1 数据集统计
1)UCI HAR数据集[11]
实验数据来源于三星手机内置的加速度、陀螺仪传感器,通过设置传感器的固定频率,以捕获人们运动时的信号数据。数据采集工作由30名不同年龄的用户完成,他们在腰上佩戴设备执行指定的活动,例如站立、坐、躺、上楼梯,下楼梯等活动。使用宽度为128的窗口和50%的覆盖率对原始序列采样得到10 411个样本序列,本次实验只对3个静态活动和3个动态活动的加速度数据进行分析。
2)弱标签传感器数据集[12]
实验数据来自弱标签传感器数据集,采集数据前把智能手机内置加速度传感器的采样频率设为50 Hz。采集过程中,10名志愿者把设备放在裤子口袋,分别收集四组数据。每组共完成五种活动,包括走路,跑步,跳跃,上楼梯与下楼梯。其中,“走路”代表背景活动,其余四种表示待识别和定位的活动。样本数据如图4所示,数据集共28 797个样本序列,70%作为训练集,30%作为测试集。为了测试模型的定位性能,对测试集中的数据样本做精细标注如图4所示。
图4 红色虚线框内表示的是标签“跑步”活动,其余背景部分属于“走路”活动
3.2 性能评价指标
因为每条样本序列中活动发生的次数以及持续间隔都是不固定的,所以本文用精确率(Precsion)和召回率(Recall)两个指标评价模型在弱标签数据集的定位性能。计算精确率和召回率需要活动预测框与真实标注框的重叠度大小。
计算公式如下:
式中:A表示活动位置的人工标注矩形框;B表示活动位置的预测矩形框。当序列中所有活动片段的重叠度阈值大于0.4时,即认为定位正确。precision表示预测结果中(预测活动正确定位的样本数)/(预测活动正确定位的样本数+预测活动定位错误的样本数),如式(8)所示:
式中:TP为预测框和标注框的重叠度>阈值;FP为预测框和标注框的重叠度<阈值。recall表示预测活动正确定位的样本数÷活动样本总数,如式(9)所示:
式中FN表示活动被漏检。
3.3 实验结果分析
实验在框架Tensorflow上运行,在模型训练过程中,每次选择64个样本,并设置学习率为0.000 1,使用Adam方法优化网络。使用Dropout机制对其进行正则化,防止网络发生过拟合。当迭代次数Epoch=25时,训练结束。本文采用CNN结构和Deepconvlstm结构作为基准模型作为对比,其中,CNN网络由卷积层、池化层、全连接层和输出层组成。Deepconvlstm使用文献[13]中的默认参数设置。
1)在HAR数据集上的实验结果,如表2所示。
表2 在UCIHAR数据集上的实验结果
由表2可以看出,三种模型都获得超过92%的准确率,表明本文提出的模型在强监督人体运动模式下也可以较好的识别。但是,和基准模型相比,本文模型并没有占到太多的优势,原因可能是CNN网络本身就有很强的特征提取能力,很难对其改进。
2)在弱标签数据集上的实验结果如表3所示。
表3 在弱标签数据集上的实验结果
由表3可以看出,本文提出的注意力模型在弱标签数据集上产生了明显的性能提升,准确率比CNN和DeepConvLSTM模型提高了3.64%和2.18%。虽然两个基准模型能够自动提取活动的特征并进行分类,但是它们无法检测序列中的活动片段。而本文提出的基于注意力机制的卷积网络模型不仅在分类性能上有了提升,而且还能对序列中活动的位置准确定位,如图5所示。
图5 活动多个片段的定位
4 结 语
针对强监督模式下人体活动识别需要大量精确标注样本的情况,本文提出一种基于可穿戴传感器的弱监督人体活动识别与定位方法。实验结果表明,引入注意力机制后,模型会选择感兴趣的区域,忽略无关的背景信息,从而提高了网络的定位精度。与基线模型相比,本文提出的模型更适合处理弱标签数据,既能够对弱标签传感器数据中的活动进行准确识别,又能够定位活动的具体时间位置。在未来的工作中,将收集更多具有多样性的人体活动数据集,改进模型以实现对弱标签传感器数据中多种标签活动的识别和定位。