基于卷积神经网络的静态手势识别研究
2018-04-24吕华富
吕华富
(四川大学计算机学院,成都 610065)
0 引言
手势是人类除语言外最为自然的交流方式之一。随着科学技术的不断发展,尤其使无人机、虚拟现实等技术的发展,人通过手势来进行人机交互的需求也在不断增长。较成熟的手势识别系统已经开始应用于很多领域,如体感游戏、智能电视、医疗设备、手语识别和机器人控制等[1-3]。因此,对手势识别的研究有着重要意义。
手势识别的流程分为检测分割、分析和识别三个主要阶段。检测分割阶段主要进行手势检测和分割,分析阶段主要完成特征检测的任务,识别阶段完成特征提取和手势识别任务。现有手势识别方法中在分析和识别阶段需要人工提取特征来完成手势识别任务,分类器上多使用SVM[4]、人工神经网络[5]以及隐马尔科夫模型[6]。而在近年来,随着深度学习快速发展,卷积神经网络网络逐渐成为图像分类领域中最热门的算法。其中很重要的一个原因是它的特征学习能力使得特征识别突破了需要人工设计的局限,使其具有了一定的通用性。
基于卷积神经网络的优点,本文采用其来完成手势识别任务,并在公开的ThomasMoeslund手势识别数据集[7]上做实验分析。
1 数据预处理
在ThomasMoeslund手势识别数据集中包含24种未处理的静态手势图像。图1展示了24种待识别手势的实例图像。可以看到所有手势背景均为均质的黑色。为了验证网络的性能,本文中将数据集划分为1440张(约70%)和600张(约30%)两部分,分别作为训练集和测试集。
图1
手势分割的过程如下:
原始图像是248×256的灰度图。第一步将灰度图转换为二值图。这个二值图通过在原始图像上设置125灰度的阈值得到,其中大于阈值的部分值为1,其余值为0。通过尝试发现这个阈值可以很好地在这个数据集中区分黑色背景和手势部分。第二步对二值图像进行形态学处理。首先采用8×8的结构元素对二值图进行膨胀,然后对二值图进行填孔,最后采用3×3的结构元素对二值图进行腐蚀。第三步定位手势位置并在原始图像中将手势分割出来。通过跟踪最大白色像素区域的边界,确定手势区域并于矩形的方式在原始图像相同位置提取像素。
随机选取的部分分割好的手势图像实例如图2所示。观察图片可以发现分割好的手势图像中手势信息保存完整,而且由于是单一背景并不需要再对背景进行处理。为了节约计算资源和卷积神经网络训练的时间,统一通过模式平均技术将分割图像调整大小到64×64。
图2
2 训练网络
第1节中描述了训练本文网络所用的数据。训练集包含1440张64×64像素的已经分割处理好的手势图像。实验在Win10环境下进行,实验计算机配置采用英特尔(Intel)i5处理器、内存8G,所有程序均使用MATLAB编写并在MATLAB 2017b环境下运行。下面将展示卷积神经网络的结构和训练过程。
网络输入是64×64手势图像。训练的卷积神经网络包含3个卷积层。其结构描述如下:
第一个卷积层:先对原图进行一圈零填充,然后使用3×3的卷积核对64×64的原始图像进行卷积操作,得到16张64×64的卷积特征图。接着使用2×2的池化窗口对卷积特征图进行最大值池化操作,得到16张32×32的特征图。
第二个卷积层:先对输入特征图进行一圈零填充,然后使用3×3的卷积核进行卷积操作,每个得到32张32×32的卷积特征图。接着使用2×2的池化窗口对卷积特征图进行最大值池化操作,每个得到32张16×16的特征图。
第三个卷积层:先对输入特征图进行一圈零填充,然后使用3×3的卷积核进行卷积操作,每个得到64张32×32的卷积特征图。接着使用2×2的池化窗口对卷积特征图进行最大值池化操作,每个得到32张16×16的特征图。
输出层和最后一层卷积层通过全连接的方式进行连接。考虑到待识别的手势种类是24,最后的输出层包含24个神经元。表1和图3分别展示了卷积神经网络的一些具体参数和学习曲线。
表1
图3
3 结果分析
首先在测试集上测试训练好的卷积神经网络。然后在使用未进行训练的测试集来进行测试,以此来验证网络的泛化能力。网络性能的好坏通过通用识别准确率来进行衡量。识别准确率定义为:
表2展示了在测试集和训练集上手势的识别准确率。观察结果可以看到训练好的网络不仅在训练集上识别准确率高达99.86%,在测试集上识别准确率也高达98.67%。
表3展示了本文结果与一些在此数据集上的早期工作的对比。可以看到本文使用方法在ThomasMoes⁃lund手势识别数据集上识别相同种类数量的手势取得了更高的识别准确率。本文的结果展示了在尽量保存原始手势信息的情况下,选用合理结构的卷积神经网络来识别静态手势可以取得更高的识别准确率。
4 结语
后采用形态学处理保证手势的完整性。通过判断处理后的二值图像中最大连通区域定位手势在原始图像中的位置,并在原图像中分割出完整的手势。通过以上操作得到了包含完整手势信息的手势图像的同时也极大地减少了多余背景对于手势分类的影响。使用测试集手势图像再使用训练集训练的卷积神经网络上进行识别得到98.67%的识别准确率。本文也存在比较明显的缺点,那就是本文的高识别准确率是在背景单一的数据集上获得的。今后的研究可选取更加复杂的数据集,考虑更多的环境因素的影响,获取一个泛化能力更强的网络模型。
本文采用基于肤色的方法将手势图像二值化,然
表2
表3
参考文献:
[1]孙丽娟,张立材,郭彩龙.基于视觉的手势识别技术.计算机技术与发展,2008,18(10):214–216.
[2]易靖国,程江华,库锡树.视觉手势识别综述.计算机科学,2016,43(6A):103-108.
[3]李勇,高文,姚鸿勋.基于颜色手套的中国手指语字母的动静态识别.计算机工程与应用,2002,17:55-58.
[4]Sultana A,Rajapuspha T.Vision Based Gesture Recognition for Alphabetical Hand Gestures Using the SVM Classifier.Int J Comput Science and Engineering Technology,2012,3(7):218-223.
[5]Yewale SK,Bharne PK.Hand Gesture Recognition Using Different Algorithms Based on Artificial Neural Network.In:2011 International Conference on Emerging Trends in Networks and Computer Communications(ETNCC),22-24 April2011,Udaipur,pp(2011):287-292.
[6]ZakiM.M.,Shaheen S.I.Sign Language Recognition Using a Combination ofNew Vision Based Features,Pattern Recognition Letters,Vol.32,Issue 4,1Mar2011:572-577.
[7]Thomas Moeslund's Gesture Recognition Database-PRIMA.http://www-prima.inrialpes.fr/FGnet/data/12-MoeslundGesture/database.htm l.
[8]Nguyen T-N,Huynh H-H,Meunier J.Static Hand Gesture Recognition Using Principal Component Analysis Combined with Artificial Neural Network.JAutom Control Eng,2015,3(1):40-45.
[9]OKOyedotun.,A Khashman.Deep Learning In Vision-based Static Hand Gesture Recognition.Neural Comput&Applic,2016,28(12).