APP下载

基于卷积神经网络与注意力模型的人体步态识别*

2019-08-14汪泓章张德祥

传感技术学报 2019年7期
关键词:角速度步态注意力

汪 涛,汪泓章,夏 懿,张德祥

(安徽大学电气工程与自动化学院)

步态是指人们行走时所表现的姿态,不同于人脸、指纹、虹膜等,步态是唯一可以在远距离非接触状态下获得的生物特征。每个人的步态都有一定的差异性,所以可以用作不同身份的识别。步态分析始于上世纪60年代[1],根据所依赖的传感器类型,目前步态识别主要分为以下三类:基于图像传感器、基于压力传感器以及基于加速度传感器。基于图像传感器的步态识别主要受到拍摄的角度、光照和遮挡等因素的影响,识别的难度较大[2]。压力传感器则需要被识别人在压力感知的场地上行走,或者穿上装有压力传感器的鞋,才能进行步态信息的采集,因此在实际生活中限制较大、成本较高[3]。而加速度传感器可以安放在人体的多个部位,数据采集简单而高效[4]。

过去的几十年里,步态识别领域开展了大量研究工作,已经取得了不少进展[5-8]。近年来,随着可穿戴技术的快速发展,通过携带方便的可穿戴传感器来进行步态信息的采集正受到越来越多研究者的重视。Mantyjarvi等人提出利用加速度数据进行步态识别,他们利用佩戴在皮带上的三轴加速度计来采集行走过程中的步态信息,然后通过简单的峰值检测方法进行步态周期提取,并为每个受试者建立步态模板[9]。Derawi等人在随后的研究中,首先使用时间插值和滤波对数据进行预处理,然后为了删除不规整的步态周期数据,他们利用动态时间归整DTW(Dynamic Time Warping)来计算所有步态周期数据之间的相互距离并删除与其他步态周期数据具有明显异常距离的步态周期数据[10]。Hoangt等人利用加速度传感器和磁力计来采集步态信息,他们提出将加速度传感器测量的数据转化到标准的坐标轴,以减少放置位置不稳定的影响[11]。Bieber等利用手机内置的加速度传感器和麦克风来同时采集加速度和声音信息,然后利用决策树来进行步态识别[12]。

前人的这些工作表明,利用机器学习来加工处理加速度、角速度信号中所体现的步态信息,从而实现身份识别是一个非常有意义的研究方向[13-14]。然而,由于智能手机等设备在行走过程的位置变化,以及传感器本身的信号漂移所带来的噪音以及异常点等问题,使得利用智能手机来进行步态识别的准确率,特别是在大规模数据集上的准确率仍然有很大的提升空间。近年来,以卷积神经网络CNN(Convolutional Neural Network)为代表的深度学习技术在信号特别是图像信号的特征提取和识别方面取得了巨大的成功。CNN本质上是一个模拟局部感受野的多层感知机,通过多次卷积和池化来提取数据在不同尺度上的特征,其成功的原因关键在于它所采用的局部连接和共享权值的方式,一方面减少了权值的数量使得网络易于优化,另一方面降低了过拟合的风险。注意力机制(attention)基于人类视觉注意机制,具体来说就是模拟人类观看一张图片时,总是聚焦图片的某些特定区域而不是整张图片[15]。注意力机制最早是在图像视觉领域提出来的,其代表性工作是Google的Deepmind团队所做的一项工作,他们在循环神经网络RNN(Recurrent Neural Network)模型上使用了注意力机制来进行图像分类[16]。本文提出一种基于深度学习的步态识别方法,该方法融合卷积神经网络和注意力机制。卷积神经网络具有捕捉局部特征的优势,而注意力机制可以对特征中的关键点进行进一步强化。实验表明,具有注意力机制的卷积神经网络可以更好的表达步态特征,从而取得更高的识别准确率。

1 步态识别过程

如图1所示,步态识别过程一般包括以下几个方面:预处理、特征提取、步态分类以及性能评估。步态识别的难点主要是如何有效且鲁棒的特征提取。本研究首先获取行走过程中的加速度、角速度信号,然后通过插值、去噪对数据进行预处理,最后通过基于注意力机制的卷积神经网络来学习步态特征。其主要流程如下图1所示:

图1 步态识别流程

2 数据预处理

2.1 数据插值与去噪

由于软件时钟的不准确性,智能手机对步态数据的采样是不均匀的,所得到的数据采样间隔不一致。为了处理的方便,首先对数据进行三次样条插值,实现每隔5 ms取一个数据,一个完整的步态周期大约需要1 s左右的时间,因此一个步态周期大约有200个数据点;然后利用低通有限脉冲响应FIR(Finite Impulse Response)滤波器对将插值之后的数据去噪并减少可能出现在较高频率的运动伪影,一般使用截止频率为f=40 Hz,汉宁窗口长度设为1 s。

2.2 步态周期提取

一个完整的步态周期是指行走时一侧足跟着地到该侧足跟再次着地的过程,它包含了步态的单步特征,是实现步态识别的重要基础。一般来说,同一个人的步态特征是稳定且唯一的,因此连续的步态周期应当具有高度的相关性。为了检测动态变化的步态周期,首先识别一个较容易区分的步态周期,并以此周期的步态信号作为模板,进而通过模板匹配的方式找寻与模板具有最大相关性的信号片段作为下一个步态周期,同时进行模板的迭代更新,从而使得下一个周期的检测更加准确[17]。步态周期检测过程中,所使用的步态信号主要是总加速度的幅度信号。对于每个样本i(i=1,2,…),其总加速度幅度信号计算如下:

设i′的幅度值amag(i′)是步态信号开始端的一个最小值,以i′为中心,提取200个加速度数据集,公式如下:

Z=(amag(i′-99),…,amag(i′),…,amag(i′+100))

(2)

式中:Z表示的是第一个周期内的加速度模板。设C(i)是下一个以i点为起始的连续数据片段,其长度N=200,也即:

C(i)=(amag(i),…,amag(i+N-1))

(3)

C(i)与模板的相关距离V(i)的计算如下:

(4)

(5)

图2 步态相关距离V(i)

图2显示的是所计算的对应不同点的相关距离,两个最大值之间所对应的就是一个步态周期。最大值所在位置可以通过简单的阈值法进行定位。根据图2显示,阈值设为0.5可以满足要求。通过第一个模板找到下一个紧邻的步态周期,也就是第二个周期Z′。其更新公式如下所示:

Z=0.9Z+0.1Z′

(7)

可以看出新的模板是旧模板Z和Z′的加权平均。上述过程一直进行到数据的最后一个步态周期为止。通过这种方法可以在每个新周期获得相对准确的模板。

2.3 方向投影

由于数据是通过裤子口袋中的手机来采集的,而手机的位置并没有固定,因此加速度和角速度会有轻微的方向偏移。为此,需要为所采集的数据建立一个新的方向不变坐标系。新坐标系中三个正交的坐标轴,其方向与智能手机的方向无关,并与重力和运动方向对齐[18]。设一个步态周期样本长度为N1,其每个样本的加速度、角速度表示如下:

A=[ax,ay,az]

(8)

K=[kx,ky,kz]

(9)

式中:x代表面向手机垂直屏幕的方向,y代表从手机左侧到右测的方向,z代表手机底端到顶端的方向,A表示加速度,K表示角速度,ax、ay和az代表着x、y和z方向上的加速度向量,kx、ky和kz代表着x、y和z方向上的角速度向量。

重力方向的加速度是加速度计数据中的主要低频分量,然而由于智能手机在行走过程中位置会出现一些变化,因此在智能手机(x,y,z)坐标系中,重力方向的加速度并不是一个常矢量。为此,我们利用一个步态周期内的加速度矢量均值来估计重力加速度矢量,其表示如下:

A1=A-f1×(ATf1)T

(12)

在水平面方向,我们将加速度数据变化最大的方向(也就是行进方向,方差最大)设为新坐标系的第二个坐标轴。为此,利用主成分分析PCA(Principal Component Analysis)来计算数据方差最大的方向。首先计算协方差矩阵,公式如下所示:

(13)

式中:1N1是长度为N1的全1向量。H1最大特征值对应的特征向量h1是数据中的最大方差方向,这样第二个坐标系方向计算如下:

由于以上两个方向正交,所以第三个方向可通过叉积获得:

f3=f1×f2

(15)

将原始的加速度、角速度数据投影到新的坐标空间,各个分量计算如下:

af1=ATf1;af2=ATf2;af3=ATf3

(16)

kf1=KTf1;kf2=KTf2;kf3=KTf3

(17)

于是得到坐标转换后的新的步态数据:

A′=(af1,af2,af3);K′=(kf1,kf2,kf3)

(18)

2.4 数据归一化

由于步行速度和步幅的变化,每个步态周期都有不同的持续时间,从而导致每一个步态周期的数据长度不一致,而深度学习模型通常需要输入数据的长度要一致,也即长度大小要固定。根据本文步态数据的特点,实验中通过插值再抽取的方式将数据长度统一为200。为了取得更好的训练和分类性能,对数据进行幅度归一化处理,以获得具有零均值和单位方差的向量。由于加速度、角速度各自有三个方向(x、y、z)的数据,加上所计算的总加速度和总角速度,故而针对每个步态周期共有八个长度为200的向量,它们共同组成本文实验中的输入信号。

3 基于注意力机制的卷积神经网络在步态识别中的应用

本文所提基于注意力机制的卷积神经网络其主要流程如图3所示。在图3所示的网络结构中,Acc代表加速度,Gry代表角速度,Con代表卷积核,Pool代表池化操作,⊕表示加速度与角速度分别通过卷积之后的特征融合(本文采用的是串接融合),Attention代表注意力机制模块,Output代表最后输出的分类特征,其维度为类别数35。

图3 DCCNN+attention算法结构图

3.1 双通道卷积神经网络

考虑到本文所使用的数据集同时包含加速度和角速度数据,因此设计了一个双通道的CNN结构,以下简称为DCCNN(Double-Channel CNN)。如图3所示,两个通道的CNN分别对步态的加速度和角速度信息进行特征提取,之后进行特征的串接融合。将加速度与角速度分别用CNN训练,可以分割不同模态数据的特征空间,有利于训练时得到最优的梯度下降,从而可以更好的提取加速度和角速度的特征信息。

3.2 注意力机制

注意力机制的结构如图4所示,其主要作用是强化学习步态信息中对特征表达比较重要的部分。

设f=(f1,f2,…,fi,…,fn)∈RM×N表示通过DCCNN所提取到的特征图(feature map),而fi∈RM×N是其中的一个特征向量,于是对应于fi的注意力αi,其计算公式如下:

图4 注意力模型

(20)

(21)

式中:βi是fi通过单层感知器所得到的隐变量,VT是参数矩阵,W1和b1是权重矩阵。式(21)对隐变量进行基于指数函数的非线性变换,从而得到每一个特征fi的注意力值αi,而αi的值越大,说明所分配的注意力越多,则该特征向量对步态分类具有更重要的作用[19]。计算注意力加权的特征向量公式如下所示。

在分类阶段,我们利用全连接层将高维特征ε压缩到与类别数相等的较低维度,进而通过分类器计算相应类别的概率,公式如下:

p=softmax(W2ε+b2)

(23)

式中:W2和b2是权重矩阵。整个网络的损失函数为分类交叉熵函数,其定义为:

式中:k代表训练样本的数目。训练过程中采用随机梯度下降算法[20]来对注意力卷积神经网络中的所有参数进行优化更新。

4 实验结果与分析

实验所使用的数据集由Gadaleta等人贡献[4],也即IDNet数据集。IDNet数据集由50个人的步态信息所组成。在采集过程中,测试者携带不同品牌的手机进行测试,每次测试大约5 min,由于测试者行走能力的差异,每个人的测试次数从几次到十几次不等。测试者以自己习惯的方式行走,以模仿真实的场景。采集所得到的加速度、角速度以及磁场信号通过A/D转换器进行数字化并保存到手机的存储卡上,同时自动上传到远端服务器上。IDNet数据集中有一部分数据因为数据量过少或其他原因无法使用,实验一共选取了其中35个人的步态数据用于训练和测试。为了证明算法的优越性,针对每一个人,取200个步态周期的数据,然后将所有的数据划分为训练集、测试集和验证集,它们两两之间互不交叉,并且随机均匀地从总的数据集中选取。具体来说每个人分别有60、100个数据作为训练和测试使用,其余的数据都用做验证集。算法所涉及到的一些重要超参数在实验中的取值如表1所示。

表1 超参数取值

为了测试加速度与角速度数据对步态识别的不同作用,试验中利用CNN先分别对加速度和角速度数据进行步态识别,然后再将两种数据融合在一起来进行步态识别,它们的试验结果如图5所示。单独使用加速度数据的准确率为95.3%,单独使用角速度数据的准确率为93.5%,但两种数据融合之后的结果为97.5%。

图5 利用加速度、角速度以及两者融合数据进行 基于CNN的步态识别的实验结果对比

在实验中为了证明注意力机制能够强化步态特征,我们将DCCNN与DCCNN+attention的实验结果进行比较,其结果如图6所示。图6中横坐标为迭代次数,纵坐标为测试数据的识别准确率,可以看出随着迭代次数的增加,准确率越来越高,直到迭代到一定的次数以后,结果基本趋于稳定。同时可以看出DCCNN与注意力机制的结合对DCCNN性能的提升具有一定的效果,其准确率提升了0.3%。

图6 注意力机制的实验结果对比

为了验证本文算法的有效性和优越性,实验中选取了一些常见模型进行对比研究。图7显示了各种算法损失值(所有比较算法均采用最小化分类交叉熵损失)的收敛情况。其中横坐标代表迭代次数,纵坐标表示损失函数值。由图7可知,实验中DCNN+attention的损失值下降比较快并且稳定时损失值最小,loss值为0.096,DCCNN的loss值为0.10,CNN的loss值为0.11,LSTM(Long Short-Term Memory)的loss值为0.20,BiLSTM(Bi-directional LSTM)的loss值为0.16。

图7 各个算法损失值

表2为实验中各个模型的准确率结果。可以看出CNN模型的准确率比LSTM模型高0.7%,这说明层数较深、特征图数量较多时,CNN能够提取到更加有利于分类的特征,从而表现出比LSTM更为优秀的分类性能。在文献[4]中,作者利用PCA对CNN提取的特征降维,再利用支持向量机SVM(Support Vector Machine)作为分类器,其实验结果比常规CNN提高了0.5%,达到了98%,这可能是由于降维有利于有效特征的表达,同时SVM所提供的分类能力通常比常规CNN中的softmax要强。针对同一数据集,利用本文所提的DCCNN,其准确率相对于CNN+SVM提高了0.7%,而利用DCCNN与attention结合的模型,准确率进一步提高了0.3%。

表2 各种模型的实验准确率对比

5 结束语

本文首先通过基于动态模板的方式提取基于加速度信号的步态周期,力求最大程度提取一个周期内的完整步态信息。针对每一个步态周期所代表的步态样本,本文利用卷积神经网络对其进行步态特征提取,然后再利用注意力机制对步态特征进行关键点加强,最后实现分类。实验表明,本文模型的准确率较其他深度学习模型具有更高的准确率。由于实验所使用的数据集相对较小,下一步我们将自行采集人数更多的步态数据集以进一步测试本文所提模型。

猜你喜欢

角速度步态注意力
基于步态参数分析的老年跌倒人群步态特征研究
让注意力“飞”回来
基于面部和步态识别的儿童走失寻回系统
基于Kinect的学步期幼儿自然步态提取
圆周运动角速度测量方法赏析
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
步态研究及其在踝关节不稳中的应用进展
半捷联雷达导引头视线角速度提取
基于构架点头角速度的轨道垂向长波不平顺在线检测