基于深度卷积神经网络的手势动作识别

2019-06-25 09:59张朝柱顾晓婷张艺漫
无线电工程 2019年7期
关键词:电信号识别率权值

张朝柱,顾晓婷,张艺漫

(哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨150001)

0 引言

人体运动过程中,肌肉表面会产生一种电生理信号,通过表面电极可以得到这种电信号,所采集到的电信号就是表面肌电信号(surface Electromyography,sEMG)。所有肢体动作的完成都是通过肌肉收缩来实现的,通过对表面肌电信号处理分析可以得到不同运动的信息[1],进而可以控制假肢的动作,这对截肢者来说是一个福音。随着21世纪的到来,智能化假肢成为核心[2],手势动作识别更是其中的关键一步。同时,手势动作识别为人机交互提供了一种更快速、更简洁、更方便、更有效且更自然的方式,使其受到广泛关注并在现实生活中发挥了重要作用。文献[3]介绍了一些传统的例如支持向量机、人工神经网络等基于表面肌电信号的手势识别算法。但这些传统的手势识别需要的人工特征提取方法既费时又费力,而且为了提高识别的准确率,所需要提取的特征数量和质量要求很高,这对于传统的手势识别来说是一个瓶颈。针对此问题,提出了一种基于深度CNN的表面肌电信号的手势识别算法[4]。

1 卷积神经网络

CNN是神经网络的一种,它属于一种多层感知器(MLP)。近年来CNN以惊人的速度迅猛发展,是时下一项研究的热点。在20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时,发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了CNN[5]。如今,CNN广泛地应用在图像识别[6]、视频识别[7]和语音识别[8]等方面。对于肌电信号或者脑电信号等生物电信号的分类来说,很少有人用CNN去代替传统的识别分类方法。CNN的权值共享网络结构和局部感受野使其更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量[9]。当网络的输入样本多维时,CNN可以将其原始的特征空间直接作为输入,这样就避免了传统识别算法中复杂的特征提取和数据重建过程。因此,相比较于手工提取生物电信号的特征来说,CNN更加省时省力,而且在很大程度上解决了人工特征提取方法经验的问题。

CNN主要结构包含3层:输入层、隐藏层和输出层。其中,隐藏层又是由多层神经网络组成,主要包括卷积层和降采样层2种网络类型,卷积层和降采样层相互配合,逐层对特征进行提取,最后再通过全连接层进行分类。

1.1 卷积层

卷积层又被称为特征提取层,是CNN的核心部分。卷积层是通过卷积核以固定规则移动对输入的样本进行局部特征提取,局部连接是指卷积层上的每个神经元和前一层的局部区域的神经元进行连接,这个局部区域称为局部感受野。同一特征的神经元使用一组相同的权值与上一层进行局部连接,这样网络所训练的参数就会大量减少,这就是权值共享。卷积层每个神经元的输入来自前一层特征图中固定区域的神经元,区域的大小由卷积核大小决定。一个CNN,其卷积核的大小一般是固定的,但是卷积核的参数是通过训练样本训练得到的。

卷积核是卷积层的重要组成部分,它就像一个特征矩阵,在进行卷积时,卷积核在输入上一固定的步长进行移动,然后与局部感受野上的元素进行卷积运算,这样就得到了感受野的卷积值,移动完成后,得到了输入样本的特征矩阵,即特征图。卷积层主要参数包括卷积核的个数、大小以及偏置数。实际应用的卷积网络之中,一般采用多个卷积核,这样就可以获得多个特征。卷积层的数学表达式为:

(1)

式中,f(x)是激活函数;b是偏置;ωn,m是卷积核(n,m)位置对应的权值;N,M是卷积核的长和宽;u是上一层输出的特征。

激活函数就是对卷积层的输出进行非线性操作,来提取更多特征信息。在此,选用ReLU函数作为激活函数。ReLU函数数学表达式为:

f(x)=max(0,x)。

(2)

1.2 降采样层

输入样本在经过卷积层后得到的特征维数较大,若直接使用这些特征值进行分类,会造成计算量大、过于复杂等后果。因此,在利用所提取的特征训练分类器之前,需要对卷积层得到的特征进行降维。这时就需要降采样层进行处理,降采样层又称为特征映射层或池化层。它通过对上一层输出的特征图上的不重叠部分进行函数变换来得到不变特征[10]。降采样层是对卷积层输出的特征图进行聚合,降低特征维度,同时,它还对比例缩放、倾斜、平移或其他变形形式有高度不变性。一般来说,常用的降采样的方法包括最大池化法(Max Pooling)和平均池化法(Mean Pooling)2种。

1.3 全连接层

通常,卷积层会使用多种卷积核,相应的输出就会有多个相同的并列特征图,全连接层的存在就是为了把这些特征图融合起来分类,这样也可以增强网络的非线性映射能力。全连接层一般连接在最后一层降采样层和分类器之间,可以感知全局的信息,将经过卷积层和降采样层学习得到的局部特征进行整合,得到全局特征。全连接层的每一个神经元都与前一层的所有神经元进行连接,同一层的神经元互不连接。全连接层的表达式为:

y=σ(Wh+b1),

(3)

式中,σ(·)表示分类函数;W表示连接权值;h表示隐藏输出;b1表示偏置。分类函数选择Softmax函数,Softmax分类器属于逻辑回归推广的多分类器的一种,经过Softmax分类后得到在(0,1)区间的输出值,这些值加起来和是1。输出值代表每个输入样本所对应的类别标签,于是网络的输出就是最大输出值所对应的类别标签。它应用在全连接层之后,会得到属于每一类别样本的概率分布[11]。Softmax分类器表达式为:

(4)

式中,N为矢量x的长度。

1.4 CNN训练

一个CNN计算过程包括预测和训练2部分。第1部分预测过程是通过前向计算得到网络的输出值;第2部分训练过程是通过反向传播计算对权值系数进行调整及更新,损失函数指此时模型的输出值与真实目标值的差距[12],当损失函数达到极小值时,网络的权值系数停止更新。

在此选用的训练方法为Adam算法,一种学习率自适应的梯度下降算法[13],具体操作步骤是:

Require:步长ε

Require:矩估计的指数衰减率,ρ1和ρ2在区间[0,1)内

Require:用于数值稳定的小常数δ

Require:初始参数θ

初始化一阶和二阶矩变量s=0,r=0

初始化时间步t=0

while 没有达到停止时间准则 do

从训练样本集中采包含m个样本{x(1),…,x(m)}的小批量,对应目标为y(i)

L(·)为损失函数

t←t+1

更新有偏一阶矩估计:s←ρ1s+(1-ρ1)g

更新有偏二阶矩估计:r←ρ2r+(1-ρ2)g⊙g,⊙表示对应元素乘积

应用更新:θ←θ+Δθ

end while

1.5 批次归一化

批次归一化[15](Batch Normalization)是指将数据按一定批次进行归一化处理。使用批次归一化可以让网络模型训练速度加快,提高网络精准度和模型的泛华能力。批次归一化的具体操作过程如下:

输入:批处理(mini-batch)输入x:B={x1,…,m}

输出:规范化后的网络响应{yi=BNγ,β(xi)}

⑤ 返回学习参数γ和β

2 表面肌电信号数据处理

本文所使用的数据来源于Ninapro数据库[16],该数据库中有7个数据集,本文选取了DB2健康个体数据集。DB2数据集使用其中9个个体,数据集包含50种手势动作,其中一种为休息动作,17种基础手势动作,23种手腕部动作以及9种手指动作。本文分别对9种手指动作以及所有49种手势动作进行识别。数据集中每种动作的采样频率是2 kHz,采用12通道表面电极进行采集,其中8个电极均匀地分布在前臂肱骨关节,2个电极置于指浅屈肌和指浅伸肌的主要活动点上,最后2个电极放置在肱二头肌和肱三头肌主要活动点,每种动作重复6次,完成一次动作需要5 s,休息3 s,而且利用Hampel滤波器去除了所收集到的表面肌电信号的50 Hz工频干扰。

对DB2数据集的样本数据提取均方根值特征,均方根值广泛应用在EMG信号的特征提取之中,起初是用来计算正弦信号的电压值及功率,应用在EMG信号上反映信号功率,衡量信号能量,可以体现各组织在肢体运动过程中的贡献值。

假设一个采样点数是n的EMG信号样本xi(i=0,1,2,…,n-1),均方根值RMS的具体计算公式为:

(5)

3 深度CNN模型

针对手势动作识别设计了一种CNN架构,如图1所示。网络输入的是经过时域特征均方根值提取后的信号,得到12*30的输入矩阵,也就是网络的输入层。接下来是2层卷积层,第1个卷积层的卷积核大小1*12,卷积核个数32,步长为1;第2个卷积层的卷积核大小3*3,卷积核个数32,步长也为1,2层卷积层可以提取底层特征。第2层卷积层经过步长为1,3*3的最大池化层。第3层卷积核大小5*5,输出维度64,其他同第2层一样。第4层和第5层为2个卷积层,卷积核大小分别为2*1和1*1,步长均为1。第6层为全连接层。最后一层为输出层,利用Softmax函数对手势动作进行分类,得到每种手势动作的识别概率。此外,每个隐藏层均包含一个批次归一化以及ReLU激活函数,并且在全连接层包含一个概率为0.5的Dropout,并且卷积层以及池化层均进行补零操作。

图1 本文提出的卷积神经网络结构框架

4 实验结果对比分析

首先对DB2数据集的每一种类别的手势动作进行均方根值提取,然后将处理后的数据分为训练数据组、验证数据组以及测试数据组,它们的比例为7∶1∶2。本文CNN使用的学习率(Learning Rate)设置为0.001,训练20 000次。CNN模型选择交叉熵损失函数作为优化目标。对9种手势和49种手势动作的训练结果如图2所示。

图2 9种手势和49种手势动作训练识别率曲线

由图2可知,该CNN模型对9种动作的识别准确度要高于49种手势动作识别准确度。在训练6 000步之前,训练9种手势动作数据的识别准确度上升速度要高于训练49种手势动作数据的识别准确度上升速度,但都达到了90%以上,在这之后,识别准确度缓慢地增加并逐渐趋于稳定。训练过程中的损失曲线图如图3所示,随着步长的逐渐增加,损失逐渐降低并趋于稳定。

图3 9种手势和49种手势动作测试识别率曲线

对9种手势和49种手势动作测试识别率曲线如图4所示。通过深度CNN模型对9种手势和49种手势动作识别结果如表1所示。

图4 9种手势和49种手势动作训练损失函数

表1 9种及49种手势动作识别结果

手势动作类别CNN算法识别结果/%999.104964.58

由图4可知,对9种手势的识别准确度要远远高于49种手势动作识别准确度。在训练2 000步之前,训练9种手势动作数据的识别准确度上升速度要高于训练49种手势动作数据的识别准确度上升速度,由表1可知,对于DB2健康个体数据集9种手势识别率是99.10%,对49种手势动作进行识别得到的准确率为64.58%,比9种手势识别率低了34.52%,这是由于手势动作类别的成倍增加,难免会有一些相似的动作,使得相似的手势动作所提取的特征相近,使用深度CNN识别时,较难分辨,因此实验结果较差。

5 结束语

近年来,不论是人机交互的提供方式还是康复医学或临床医学等领域,手势识别成为研究焦点。于是,针对健康个体的9种手势和49种手势动作,采用深度CNN模型进行识别。该模型结构使用不同尺寸卷积核对输入的表面肌电信号进行特征提取,来获取信息,经过降采样及全连接层处理后得到更深的识别信息,根据仿真测试结果可知,随着手势动作数量的增加,不同手势动作的特征相似性变大,识别率会有较明显的下降。在今后,为了提高49种手势动作识别率,对更多的个体进行测试,对深度CNN进一步优化。同时,本文主要针对的是健康个体,接下来可以对残疾个体进行手势动作测试,离实现智能假肢的控制更进一步。

猜你喜欢
电信号识别率权值
一种融合时间权值和用户行为序列的电影推荐模型
基于联合聚类分析的单通道腹部心电信号的胎心率提取
基于5G MR实现Massive MIMO权值智能寻优的技术方案研究
一种基于互连测试的综合优化算法∗
基于Code Composer Studio3.3完成对心电信号的去噪
基于随机森林的航天器电信号多分类识别方法
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展