基于CW-RNNs网络的手势识别算法

2016-10-14 00:07卓少伟柳培忠黄德天王铭航汪鸿翔
海峡科学 2016年7期
关键词:隐层识别率手势

卓少伟 柳培忠 黄德天 王铭航 汪鸿翔



基于CW-RNNs网络的手势识别算法

卓少伟 柳培忠 黄德天 王铭航 汪鸿翔

华侨大学工学院

该文在分析表征手势特征和神经网络理论基础上,根据手运动轨迹的连续性规律来研究适用于手势识别的关键技术——基于手势轨迹模型的新型神经网络算法。针对手势识别的模糊性和准确性问题,基于手势局部区域跟踪结果,采用一种新型神经网络算法,实现用于人机交互的动态手势识别。手势识别部分的研究是采用一种新型的循环神经网络(CW-RNNs)对手势运动的轨迹进行识别。根据跟踪部分提取的手指运动轨迹坐标,定义手势模版,采用该方法对手势模版进行学习。首先定义连续动态手势模版,采用时间频率循环神经网络对手势模版进行学习,对每组孤立的动态手势模版进行学习,形成手势识别模型。对影响CW-RNNs模型的因素进行了实验验证和深度分析,通过与多层RNNs、三层RNNs的识别效果进行比较,论证了本文模型对手势轨迹模版识别的优越性。

手势识别 CW-RNNs 手运动轨迹 手势模版

1 概述

人机交互(Human - Computer Interaction, HCI)[1]是人工智能、模式识别和计算机视觉等科技领域的重要技术逐步成为研究者热衷研究的对象。人机交互的方式从传统的人手工操作转变到现在的智能输入。所以,人机交互技术也逐渐从以计算机或者机器人为中心转移到以人为中心,加速了手势识别、手语识别、行为识别等模式识别和人工智能领域的蓬勃发展[2]。

目前的手势识别技术还远远不够稳定,仍然处在实验研究阶段,没有进入稳定期。人的手是一个灵活复杂的弹性物体,而且手势具有灵活性、非固定性和多义性等特点,再加上手势需要在一个特定的、实时的环境中应用,不同的研究者可能所研究的环境也不同,这样就导致研究出的算法无法具有普适性,且只局限于某一类特定场景。手势动作的可变性和复杂性与应用环境的大量干扰因素,如手臂、肤色和光照等,使研究者们暂时无法研究出一种具有统一性和通用性的手势识别算法,因此,手势识别目前仍然是一个具有挑战性的研究方向。为了使手势识别理论、算法和技术更加鲁棒和成熟,研究者们会不断突破技术局限,使手势识别的理论和算法能够应用到具体的实践中。

Tom Defanti和Dniel Sandin[3]等人研究出的手势识别产品——Sayre Glove手套式传感器系统,是数据手套的早期产品。Grimes等在Bell实验室,使用“数据手套”所做的手势识别的研究成果,取得了数据手套的专利。日本富士通实验室也是在“数据手套”的基础上,进行了更加精确的手势识别技术研究,当时的手势识别技术可以正确并且完整识别出46个手势;之后,J. Davis和M. Shah在Grimes的“数据手套”基础上进行了拓展研究,他们首次使用带有高亮度标记特点的手套,通过突出来的指尖进行实验,这样可以识别出七种手势[4];Stamer等对美国手语进行了研究,使用美国手势中具有词性的40个单词组成短句子,识别率达到了惊人的99.2%[5,6];随着手势识别的研究逐渐风靡,Sturman等人也采用数据手套来进行手势识别,对数据手套的识别方法作了丰富而详细的介绍,其构想是将识别方法应用于虚拟现实[7]。后来,Christopher Lee和Xu等人使用CyberGlove对手势识别进行研究,开发了一套基于手势控制的机器人系统,可以通过手势来控制机器人上下左右的移动,而对提出的新手势,先通过机器学习,而后再进行识别[8]。2007年,Caifeng Shan[9]等人利用Mean Shift算法以及粒子滤波等算法研究出一个手势控制机器人,其识别率可以达到97.3%。

手势识别的发展研究逐渐从基于外设的阶段过渡到自然手势研究阶段,大量研究表明,基于自然的手势识别更加灵活。比如,文献[10]提出一种基于YCrCb的肤色提取方法;Valentino等人在Kinect平台上开发了一套手势跟踪和识别弯曲系统[11];同年,文献[12]采用颜色和深度信息检测的方式跟踪人手,应用基于Haarlet小波的手势识别方法识别手势。Rimkus等人开发了一套基于Kinect的3D手势运动识别系统,其手势分类算法采用的是神经网络[13]。Kjeldsen等人在Windows系统下开发出了一套基于计算机视觉的手势控制软件,其原理是通过手势的运动轨迹识别来控制Windows系统[14]。Pavlovic等人也设计了一套基于计算机视觉的手势交互系统,可以通过双手之间的手势动作来模拟鼠标的拖拽,单击及双击等操作[15]。Lars等提出了一种先采用颜色特征对手势进行分割,后利用粒子滤波对手势动作进行跟踪,由于颜色特征的分割效果不佳,并且粒子滤波算法又相对比较复杂,导致手势识别系统最终的识别效果不是很好[16]。Ho-SubYoon等人也采用HMM进行手势识别,达到了不错的识别效果[17]。Aditya Ramamoorthy等人也同样利用肤色分割获取轮廓,同时采用卡尔曼滤波的运动跟踪方法,进行动态手势识别,效果一般[18]。Hyeon-Kyu Lee等人提出了一种基于HMM门限的连续手势识别模型,可以将手势动作和无意义的动作区分开,而且能够确定手势动作的终点和起点[19,20]。

2 传统神经网络模型

在模式识别领域内,神经网络是一种具有自学习和自组织能力的算法。从本质而言,模式识别与人工智能所研究的内容是,如何使计算机具备人的一些功能,尤其是学习和记忆的功能,而神经网络的研究目的就是构造一种跟人的脑神经类似的网络结构,并且具备人脑学习和记忆的功能。在手势识别研究中,神经网络也被广泛应用,例如,Yung-Hui Lee等人在台湾手语研究中引入了神经网络的学习算法[21];Maung等通过神经网络来识别MAL静态手势库一个子集,其平均识别率可以达到90%[22];Stergiopoulou等构建了一种SGONG神经网络,提取到手势特征输出一种神经元网格,实现了提取手掌的形态学特征,其手势识别方法采用的是基于相似度的分割技术[23]。

神经网络的特点是通过模拟人脑结构,让机器也具有人脑那样的感知、学习和推理功能。在图像识别系统中,根据是否需要特征可以将神经网络分为两类:有特征提取部分和无特征提取部分。存在特征提取的神经网络可以利用先验知识来获取特征,然后利用网络的分类能力来达到识别目标的目的。这种方法在抗干扰方面的能力不如无特征提取神经网络。后者不具备特征提取的能力,该神经网络的输入为整幅图像,导致其网络结构复杂度大大增加,输入模式的增加会导致网络结构规模的庞大,同时还需要自身消除模式变形影响的能力。无特征提取神经网络的抗干扰能力好,识别率高于有特征提取神经网络。总之,神经网络可处理一些环境复杂、样本缺损或畸变的问题,具有运行速度快、自适应性能优良、识别率高等特点。

神经网络模型具有多种网络结构,比较典型的是三层前馈网络、径向基核函数网络等。其中,应用最广的是BP神经网络模型。BP神经网络是一种单向传播的多层前向神经网络,它主要分为输入层、隐含层、输出层。BP神经网络的主要思想是从前向后逐层传递权值,从后向前逐层传播输出层的误差,进行权值调整。

BP算法步骤如下:

①选定权系数初始值;②重复下述5个步骤直到收敛。

步骤1:从前向后各层计算单元

(2)

步骤4:计算并保存各权值修正量

(4)

步骤5:修正权值

在上述公式中,j表示处于某一层的第j个计算单元,i代表其前层的第i个单元,k代表后层的第k个单元,代表输出,表示前层到本层的权值。

手势识别算法的趋势是基于学习的方法,随着神经网络乃至深度学习算法的普及,手势识别算法的精度会逐步提升,算法的复杂度也会提升。

3 基于CW-RNNs算法的手势识别

时钟频率驱动循环神经网络(Clockwork RNNs)是一种新型的RNNs模型[24],是RNNs的一个改良版本,是一种使用时钟频率来驱动的RNNs模型。

图1 CW-RNNs定向循环结构图

3.1 网络训练

对RNNs的训练和对传统的ANN训练一样,也是使用BP误差反向传播算法,如果将RNNs进行网络展开,那么参数是共享的,而传统神经网络却不是。在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,而且还依赖于前面若干步网络的状态。比如,在t=4时,我们还需要向后传递三步,后面的三步都需要加上各种梯度值。其学习算法称为Back propagation Through Time (BPTT)。

前向传播的推导为:

(7)

(8)

后向传播的推导为:

(10)

(11)

其中,a表示汇集计算的值,b表示经过激活函数计算的值,是不同节点之间连接的参数,带下标k的是输出层,带下标h的是隐层相关的,除此之外,所有带括号的的函数都是激活函数。L是损失函数(Loss Function),具体的计算方法跟传统的NN是一样的,而输出层和传统的神经网络也是完全一样的,接收隐层传入的数据并乘以参数求和,每一个计算出来的值都有个时间上标t,表示它是t时刻的节点。

与传统神经网络不同的是隐层的计算,隐层会接受来自上一时间戳隐层传入的数据,在公式里体现为:第一,求和是与传统的神经网络一致的,接收来自输入层的数据,第二,是接收来自上一隐层的数据。这里主要给出的是计算隐藏层的累积残差的公式,因为输出层与经典的神经网络类似,由公式(4)~(6)可知,为当前时间输出层传回的残差值,是接收下一时间隐层传回的残差值。

3.2 模型推导

CW-RNNs与传统的RNNs一样,可以按照下式来计算:

(13)

同时,CW-RNNs与传统的RNNs也有不同,在第t步时,只有那些满足的隐藏层组才会执行。并且每一隐藏层组的周期都可以是任意的。原文中是选择指数序列作为它们的周期,即。

因此与将被划分为g个块。

(15)

(17)

执行的组所对应的o才会有输出,处于非执行状态下的隐藏层组仍保留着上一步的状态。图2是含5个隐藏层组在t=6时的计算图。

图2 隐藏层计算图

在CW-RNNs中,慢速组(周期大的组)处理、保留、输出长依赖信息,而快速组则会进行更新。CW-RNNs的误差后向传播也和传统的RNNs类似,只是误差仅处于执行状态的隐藏层组进行传播,而非执行状态的隐藏层组也复制其连接的前面的隐藏层组的后向传播。即执行态的隐藏层组的误差后向传播的信息不仅来自于输出层,并且来自于其连接到的左边隐藏层组的后向传播信息,而非执行态的后向传播信息只来自于其连接到的左边的隐藏层组的后向传播数据。

3.3 本文算法步骤

搭建三层时钟驱动循环神经网络,如图3所示。T1

使用CW-RNNs对手势进行识别,将手势跟踪提取出来的手势轨迹的特征向量作为网络的输入,构建训练样本。该手势轨迹特征向量的维数等于网络的输入个数。

基于时钟频率驱动循环神经网络的手势识别方法训练步骤如下:

①初始化网络的参数。具体的参数配置包括各网络层节点的个数、最大迭代次数、最小目标误差精度、学习率等,各层权值的初值一般采用随机的0~1之间的数。

②选取构建好的手势轨迹模版库,提取出手势运动轨迹的特征向量,作为训练网络的输入层。

③对网络进行训练,一直到最小误差函数小于预设的误差精度或者训练次数大于预设的网络迭代次数为止。

④网络的训练过程结束,对网络进行测试,测试过程与训练过程不同,只需得到训练输出,进行识别。

图3 三层CW-RNNs网络图

训练过程如图4所示。

图4 CW-RNNs网络训练流程图

4 实验结果与分析

实验中,本文将手势动作划分为两类:单手势和组合手势。其中单手势为21个,组合手势为27个,对每个手势进行旋转、缩放、平移、放大或缩小,形成规格统一的手势轨迹模版,每个手势选择80个模版,形成3840个训练样本,另外,再选择7个作为测试样本,测试样本库为336个。单手势的轨迹模版由19个英文字母和2个图形构成,其中2个图形表示手势动作的开始和结束,如图5~图8所示。

单手势和组合手势采用的网络结构稍有不同,不同之处是:由于输出层的个数不同,隐层的节点数也不同;组合手势由单手势组成,组合手势的轨迹可以看成多个单手势运动轨迹的合成,组合手势轨迹需要一个标识。

CW-RNNs网络训练参数为:采用三层的网络结构,单手势输出层节点数m=21,输入层的节点数为66;组合手势输出层节点数m=30,输入层的节点数为94。目标误差值为0.001,最大迭代次数M=2000次,学习速率为0.05。

随着隐层节点数的增加,识别率在提高的过程中,出现了波动,但是整体还是保持稳定的增长趋势。波动现象表明,网络模型的误差还很大,没有趋于平稳。图9为迭代次数为2000时,单手势网络的误差下降曲线。

本文实验选择学习率为0.05,单手势网络的隐层节点数为21,组合手势网络三类手势的隐层节点数均为10,得到的识别结果如表1所示。由上述实验结果可以得知,CW-RNNs网络的识别效果良好,但是需要设置并初始化很多参数,比如隐层节点数、学习率、迭代次数和时间戳等,而且这些参数的选取理论性不足,却会影响网络的收敛速度和识别率,一般参数的选取会凭借经验值,这样会导致运算的效率较低。此外,训练网络模型的过程非常耗时,尤其是调整权值的过程比较复杂,并且当输入样本发生变化的时候,要重新对网络进行训练,泛化能力一般。

表1 手势识别结果

为了验证CW-RNNs网络对手势轨迹识别的特性,本文选取其它两种循环神经网络模型进行比较,多层循环神经网络RNNs和三层简化循环神经网络(Simple RNNs)。单手势轨迹模版作为训练样本,输出层个数为21,网络的迭代次数为2000次,学习率为0.05。三个不同RNNs模型的实验结果如图10所示。其中,绿色实线是多层循环经网络模型(RNNs),蓝色实线是三层简化循环神经网络模型(SRNs),红色实线为本文采用的时钟频率驱动循环经网络模型(CW-RNNs)。可以看出,本文模型的最终识别率时钟高于SRNs模型,低于RNNs模型,本文模型在时间维度上能够做到具有更快的收敛速度,在特定时间范围内,SRNs模型识别率还没有趋于稳定,学习速率较慢,RNNs模型的识别率虽然高于本文算法,但其由于网络结构的复杂性,需要耗费时间成本来换取识别效果,本文算法可以在最短的时间开销前提下,收敛速度更快,在保证识别率的前提下,可以更快地趋于稳定。

图5 单手势轨迹模版图

图6 双轨迹手势模版图

图7 三轨迹手势模版图

图8 四轨迹手势模版图

图9 误差下降曲线图

图10 模型比较图

5 结束语

本文首先构建动态手势运动轨迹模版,然后利用一种新型的循环神经(CW-RNNs)对构建的训练集进行训练学习,并对训练的结果进行测试。本文对影响CW-RNNs网络模型的识别率的因素进行了分析,通过实验比较来验证隐层的节点数和学习率等参数对CW-RNNs网络模型的作用。最后,通过实验对比,比较了本文算法模型与RNNs和SRNs两种网络模型的差异,对各个模型的优缺点进行了分析总结,证明本文算法效果还有一定的提升空间。

参考文献:

[1] Human-Computer Interaction[EB/OL]. http://en.wikipedia.org/wiki/Human- cmputer_interaction.

[2] Takahashi T., Kishino F.. A hand gesture recognition method and its application[J]. Systems and Computersin Japan,1992,23(3): 38-48

[3] Defanti T,Sandin D. Final report to the National Endowment of the arts[J].USNEAR60-34-163. University of Illinois at Chicago Circle,1977.

[4] Davis J, Shah M. Visual gesture recognitions[J]. IEEE Proceedings on Vision-Image Signal Processing,1994,141(2):101-106.

[5] Starner T, Pentland A. Visual Recognition of American Sign Language Using Hidden Markov Models[J]. International Workshop on Automatic Face & Gesture Recognition,1995:189-194.

[6] Grobel K, Assam M. Isolated sign language recognition using hidden Markov models[J]. IEEE International Conference on Systems, Man & Cybernetics, 1997:162-167.

[7] Sturman D.J,Zeltzer. D,Pieper S. Handson. Interaction with virtual environments[C]//Proceedings of the 2nd Annual ACM SIGGRAPH Symposium on User interface Software and Technology,1989:19-24.

[8] Lee C, Xu Y. Online interactive learning of gestures for human/robot interfaces[C]// IEEE International Conference on Robotics & Automation, 1996: 2982-2987.

[9] Shan C, Tan T, Wei Y. Real-time hand tracking using a mean shift embedded particle filter[J]. Pattern Recognition,2007, 40(7): 1958-1970.

[10] Choi KM,Na YG,Chae Sb,Jung KH. A hand gesture-based remote control of robot[C]// Proc. of KSBE Fall Conference, 2010:196-199.

[11] Valentino Frati, Domenico Prattichizzo. Using kinect for hand tracking and rendering in wearable haptics[C]//IEEE World haptics Conference, 2011: 317-321.

[12] Van den Bergh M, Van Gool L. Combining RGB and ToF cameras for real-time 3D hand gesture interaction[C]//IEEE Workshop on Applications of Computer Vision,2011:66-72

[13] Van den Bergh M, Van Gool L. Combining RGB and ToF cameras for real-time 3D hand gesture interaction[C]//IEEE Workshop on Applications of Computer Vision,2011:66-72

[14] Kjeldsen R, Kender J. Visual hand gesture recognition for windows system control[J]. Proc.int.workshop on Autom.face & Gesture Recognition, 1995:184-188

[15] Pavlovic V, Sharma R, Huang TS. Visual interpretation of hand gestures for human-computer interaction: a review[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19(7): 677-695.

[16] Bretzner L, Laptev I, Lindeberg T. Hand gesture recognition using multi-scale color features, hierarchical model and particle filtering[C]//Fifth IEEE International Conference of Automatic Face and Gesture Recognition, 2002:423-428.

[17] Yoon HS, Soh J, Bae YJ, et al. Hand gesture recognition using combined features of location,angle and velocity[J].Pattern Recognition,2001,34(7): 1491-1501.

[18] Ramamoorthy A, Vaswani N, Chaudhury S, et al. Recognition of dynamic hand gestures[J]. Pattern Recognition,2003,36(9):2069-2081.

[19] Lee HK, Kim JH. An HMM-Based Threshold Model Approach for Gesture Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, October,1999, 21(10):961-973.

[20] Elmezain M, Al-Hamadi A. A Hidden Markov Model-Based Isolated and Meaningful Hand Gesture Recognition[J]. Proceedings of World Academy of Science Engineering & Technology,2008:394.

[21] Lee YH, Tsai CY. Taiwan sign language (TSL) recognition based on 3D data and neural networks[J]. Expert Systems with Application,2009,36(2): 1123-1128.

[22] Maung THH. Real-Time Hand Tracking and Gesture Recognition System Using Neural Networks[J]. Proceedings of World Academy of Science Engineering & Technology, 2009: 362-368.

[23] Chang CC, Lin CJ. LIBSVM: A Library for Support Vector Machines[J]. ACM Transactions on Intelligent Systems & Technology, 2011,2(3):389-396

[24] Jan Koutnik, Klaus Greff, Faustino Gomez, Juergen Schmidhuber. A Clockwork RNN[C]//Proceedings of The 31st International Conference on Machine Learning, 2014: 1863-1871.

猜你喜欢
隐层识别率手势
基于RTD可编程逻辑门的n变量函数实现算法
基于BP神经网络学习算法的图像压缩技术研究
基于类图像处理与向量化的大数据脚本攻击智能检测
挑战!神秘手势
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
V字手势的由来
提升高速公路MTC二次抓拍车牌识别率方案研究
代价敏感正则化有限记忆多隐层在线序列极限学习机及图像识别应用
胜利的手势