王增峥,洪昕
大连理工大学 生物医学工程学院,辽宁 大连 116000
手势是人类最早使用且极具表现力的交流方式之一。手势识别技术不仅在自然用户界面发展中有着十分重要的地位,在康复医疗[1-3]、假手控制[4]以及临床医疗[5-6]等领域都有着有广泛的应用。目前,手势识别依靠的技术方法多种多样,从最早的通过传感器获得关节弯曲角度来实现识别的数据手套[7],到当下主流的计算机视觉识别方法[8-11],此外还有依靠超声波的多普勒效应和飞行时间进行手势的方法[12],利用电磁波进行识别等。基于表面肌电信号的手势识别的方法以其受外界情况干扰小、信号超前于肌肉力、移动性好以及成本低廉等特点,在众多手势识别的方法中具有其独特的优势。
由于表面肌电信号具有较强的时序性,因此常用活动段分割的方式来截取表面肌电信号,并通过活动段内提取出的多种不同特征来表征原始表面肌电信号[13]。提取的特征通常选用时域特征(如积分肌电值、均方根值、过零点数和斜率变化数等)、频域特征(如平均功率频率和中位频率等)以及通过时频域分析(如Wingner-Ville变换及小波变换等)得到的特征。而后,将特征向量输入手势识别模型中进而得到识别结果。常用的手势识别方法有基于模板匹配的动态时间归整算法、基于神经网络的算法、基于统计学理论的支持向量机算法以及隐马尔科夫模型等等。而基于卷积神经网络的手势识别方法,区别于以上所有的方法,它不再依靠人工设计的方法来提取特征,可以直接利用原始的肌电信号,这不仅规避了复杂且计算量很大的信号预处理部分,也解决了特征选择具有的局限性的问题。但在实际的动态手势识别中,仅依靠表面肌电信号进行识别不能很好地表征手势在运动中的特征。因此,我们引入了能表征运动特征的加速度流以及陀螺仪流,并给出了适应情况的肌电流、加速度流以及陀螺仪流的三分支结构。
卷积神经网络作为图像识别领域内应用最为广泛的方法,在深度识别领域有着十分重要的地位。受哺乳动物视觉分级进行信息处理的方式启发,卷积神经网络同样具有多层结构,主要包含输入层、卷积层、池化层、全连接层以及输出层,其中卷积层与池化层是卷积神经网络用来获取特征和合并特征的特有结构。在一个卷积神经网络中,通常有多个卷积层与池化层逐级提取各个层次的特征,对它们的设计也通常决定了网络性能的优劣。
因要表征动态手势的不同要素,有多种不同的数据有待通过卷积神经网络进行识别,但不同数据之间是具有显著差异的。如果直接将各种数据合并在一起作为输入,那么在特征提取的过程中,各种数据间的变化将被突出,而每种数据的特征将被弱化。因此,我们尝试将多种数据分别进行特征提取。在我们动态手势识别的情境中,肌电信号、加速度信号以及陀螺仪信号都有较强的时序性,将多路信号并排构成二维信号,此时信号两个维度的含义是有差别的,一个是时间特征,另一个是空间特征。因此,二维卷积神经网络中二维的卷积核和特征图并不适合,我们选择更适合处理自然语言的一维卷积来提取特征。
实际实现时,我们将三路输入分别用卷基层提取特征,而后将三路输出进行融合,得到最终的类别结果。三路支流分别是肌电(Electromyogrphy,EMG)流、加速度(Acceleration,ACC)流和陀螺仪(Gyroscope,GYR)流,三路支流数据先分别多次经过卷积层提取特征以及池化层压缩特征;之后再将输出进行融合,并通过全连接层、dropout层以及softmax层,最终得到整个神经网络最终的类别判断的结果。优化的多流卷积神经网络的具体结构如图1所示。
图1 多流卷积神经网络结构图
数据输入后,首先经过卷积层进行特征提取。卷积层作为卷积神经网络的核心,通过用多个卷积核分别对输入信号进行卷积的方式获取输出。通常卷积核的大小远小于输入信号大小,仅与信号的局部感受野进行卷积,并通过窗口滑动的方式覆盖整个信号。具体计算时,如公式(1)所示:
在卷积层之后,我们采用池化层对输入的特征图进行特征选择以及信息过滤。与卷积层类似,池化层取一个局部区域进行特征提取,通常采用对这一区域取最大值(最大值池化)或是平均值(均值池化)的方式,且不受反向传播的作用。具体计算时,如公式(2)所示:
在卷积层与池化层之后,将三路输出平摊成一维向量合并后输入全连接层,对特征进行加权求和。并加入dropout层通过随机令一些神经元失效,以降低参数之间耦合的方式来规避过拟合。最终,采用softmax层实现多分类,将全连接层的输出映射到(0,1)区间,并以概率的方式给出最终的结果。
数据采集设备采用的是加拿大Thalmic Labs实验室推出的创新型臂环——MYO臂环[14],拥有八个通道的表面肌电信号传感器,每个通道等间距排列,具体如图2所示。
图2 MYO臂环轮廓
除了肌电信号传感器以外,MYO臂环还配有加速度传感器和陀螺仪传感器,并能将这三类信号通过低功率的蓝牙传出。MYO臂环不仅可以实现信号的无线传输,而且佩戴方便、有松紧扣,不同身体条件的使用者都可以舒适地佩戴MYO臂环。在手势识别这个项目中,使用者大概率会处在的长时间佩戴手语识别设备的状态,这样MYO臂环良好的移动性、不受环境影响、价格低廉和可调节的前臂围范围能适用于绝大多数人的特点具有一定优势。
选用的五个动态手语孤立词分别是,大家、高兴、进步、吃和加油,参考《中国手语》[15],具体如图3所示。
图3 选取的动态手语孤立词
每个手势采集了500组,每个表面肌电信号片段大小为100×16,加速度信号片段和陀螺仪信号片段大小为100×6。
实验使用TensorFlow框架来搭建卷积神经网络实现对动态手势数据的训练识别,采用python语言编程,并利用可视化工具tensorboard获取训练数据。
在实验中,我们设置了两种卷积神经网络结构。第一种为1.2中给出的多流卷积神经网络,每个数据流设置相同,具体如下:第一个卷积层的参数为outputcurves=48,kernelsize=3;第一个池化层采用最大池化scale=3;第二个卷积层参数为 outputcurves=128,kernelsize=3;第三个卷积层参数为outputcurves=152,kernelsize=3;第二个池化层采用最大池化scale=2。第二种采用常规卷积神经网络,其结构参数设置与第一种一致,不过将三种输入信号合并,即输入100×28的信号片段。两种网络结构我们设置相同的迭代次数numepochs=700。实验得到的结果如图4、图5所示。
图4 多流卷积神经网络结果
图5 常规卷积神经网络结果
观察图4可以发现,多流卷积神经网络训练集与测试集的准确率在200次训练之前迅速上升,在测试集准确率达到98%之后趋于稳定;而交叉熵损失与之对应同样在200次训练之前迅速降低,而后趋于平稳。我们可以认为多流卷积神经网络对动态手势有较好的识别效果。
观察图5可以发现,卷积神经网络训练集与测试集的准确率在200次训练之前有所上升,之后训练集的准确率维持在80%以上,但测试集准确率却开始降低;而交叉熵损失与之对应训练集与测试集同样在200次训练之前迅速降低,之后训练集逐渐趋于稳定,而测试集却集迅速上升,呈现出典型的过拟合现象,识别效果不理想。
分析其原因是多种不同的数据有通过卷积神经网络进行识别时,由于数据之间是具有显著差异,直接将各种数据合并在一起输入,那么在特征提取的过程中,各种数据间的差异作为特征将被突出,而每种数据的特征被弱化。此时,常规的卷积神经网络出现的过拟合情况与输入数据有强噪声而产生的过拟合情况类似。与之对应,我们可以认为多流卷积神经网络可以有效识别多种不同的数据的输入,而规避因此出现的过拟合情况。
本文针于动态手势识别给出了一种基于多流卷积神经网络的识别方法,主要有两个创新:其一,选用的卷积神经网络可以直接利用原始的肌电信号,不依靠人工设计的方法来提取特征,这不仅规避了复杂且计算量很大的信号预处理部分,更是解决了特征选择具有局限性的问题;其二,针对肌电信号进行识别不能很好地表征手势运动特征的问题,我们引入加速度流以及陀螺仪流,并给出了适应情况的肌电流、加速度流以及陀螺仪流的三分支结构。实验表明,给出的多流卷积神经网络拥有较高的数据流类别判别的准确率,以及有效的动态手势识别效果。我们认为这种多流网络结构,对于有多种不同的待识别数据,并且不同数据间存在明显差异的情况有一定借鉴意义。