基于双分类器的自适应单双手手势识别 下载: 977次
1 引言
随着深度学习飞速发展,计算机视觉的应用深入各个行业,手势识别技术作为人机交互[1]的重要组成得到广泛应用,例如智能家居控制、智能驾驶、机器人手势识别控制等。手势识别的方法从基于传统的可穿戴设备的方法发展到基于计算机视觉的技术,吕蕾等提出穿戴数据手套的方法,杨亚慧和谢宏[2]提出使用Thalmic Labs公司的MYO智能手环以及2010年微软推出的Kinect的3D深度摄像头[3]的方法,但是硬件设备使用的成本高昂,操作不便。后续学者进行了偏向于软件的研究, Zaki和Shaheen[4]提出隐式马尔可夫模型(HMM),Liu等[5]提出几何特征识别,Valencia 等[6]提出基于神经网络的识别方法。
卷积神经网络(CNN)对图像的识别主要包括前向过程和反向过程。前向过程通过卷积与池化对数据进行降维和特征提取以获得较好的平移、旋转和扭曲不变性,并且CNN在识别过程中可避免复杂的预处理工作,通过局部感受视野挖掘图像的局部特征,并通过提取全局训练特征进行分类,实现卷积核的权值共享,从而可以高效率地提取数据特征,提升学习性能。反向过程将分类误差传播至隐藏层,使得卷积核和全连接层中的参量和偏置得到更新,经过多次迭代使得识别率逐步提高。
CNN具有特征提取和分类特性,已经被广泛运用到模式识别的领域中,比如人脸识别中,姚丽莎等[7]提出结合局部特征和粒子群寻优算法优化特征,实现最优分类, 周涛等[8]结合改进后的VGGNET模型和ResNet模型构建集成网络模型,进行面部表情分类。Rahman[9]利用人工神经网络进行孟加拉静态手势字母的识别,但是该方法对图片的特征有较高的要求,并且平均识别率偏低。袁荣尚和罗晓曙[10]提出融合多尺度卷积核和双通道的特征的方法,通过牺牲部分识别时间提高识别率,张勋等[11]提出利用区域卷积自动提取手势目标特征,采用RPN(Risk Priority Number)提取候选框,以提高特征搜索效率,但是网络训练过程复杂。经典的基于CNN的手势识别算法[12]和基于可变形的CNN识别算法[13]存在收敛性差、识别率低的问题。
目前的研究工作对于目标手势的识别都是针对单手手势的识别,同时为了进一步提高CNN在手势识别上的收敛速度和精度,本文提出了一种融合手数分类器和自适应增强卷积神经网络(AE-CNN)的单双手手势识别算法,并将AE-CNN引入单双手手势识别中,手数分类器将双手手势分割、分组为单手手势,从而实现单双手手势的分组预测,利用AE-CNN中的自适应增强模块对初步分类结果进行特征提取,并基于识别结果和迭代次数进行残差局部自适应增强,再将以上的参量反向传播回隐藏层,进行有效训练,达到逐步提高迭代识别率的效果。本文构建基于LSP手势数据集的单手和双手手势数据集,并进行训练和测试。
2 卷积神经网络
CNN一般包括卷积层、下采样层、激活函数、全连接层、分类输出层5个部分。图像识别又分为前向过程和反向过程。
2.1 前向过程
前向过程通过卷积层和池化层进行特征提取和目标分类。卷积层中每个输入特征图对应的特征输出表达式为
式中:
池化层对上层的卷积输出特征进行降维和特征提取,本文采用窗口为2×2 的最大池化方式,可视化过程如
为保留图像中的具体特征,选取窗口中的最大值作为特征值。
将以上所提取到的特征图进行全连接,经过全连接层的权值变换和激活得出分类结果,全连接层的分类矩阵为
式中:Fo为分类结果矩阵;W为全连接层的权重矩阵;X表示上一层的输出;B为偏置。
2.2 反向过程
CNN的每一次前向过程都会使用上次迭代后的更新参数,卷积核和全连接矩阵中的权值和偏置等参数则是由反向过程传播到隐藏层的分类误差所更新,在参数的不断更新下识别率得到提高。设步长为η,隐藏层中的权值ω和偏置b由ω1和b1更新为ω2和b2的表达式为
式中:Δω和Δb分别为对应权值和偏置的变化量。
CNN中隐藏层的各个参数对输入数据学习效果的影响通过目标误差函数E(ω,b)来衡量,每次迭代通过调整隐藏层参数减小误差函数输出,使得分类结果y'j尽可能地接近分类真值yj,当相邻的两次误差不大于既定阈值时,判断为收敛学习达成。其中分类结果是由前向过程得到,每个分类值对应唯一的一个类别,其中最大值作为输入的识别所属类别,分类真值作为训练监督数据,存储输入数据的实际所属类别,其中真值类别值为1,其余类别为0,分类误差由分类结果和分类真值产生,Eerr,j为第j类的分类结果与真值的分类误差,即
当分类结果y'j完全接近分类真值yj时,ω'k和b'j为完全拟合分类真值y'j的偏置和权值,y'j为
假设一个n分类的问题,由(6)式和(11)式可得目标函数为
为求得单个样本代价函数的偏导,定义增强残差d=
根据梯度下降法和链式求导法则,偏置和权重的变化量表达式为
式中:x为输入特征值。
CNN中每一层的残差均不同,则有
式中: f'为激活函数f的导数。
3 双分类器单双手手势识别模型
本文提出双分类器,基于自适应增强卷积神经网络的单双手手势识别模型,实现对单双手手势的识别,在分析训练过程产生误差的原因和反馈的基础上采用自适应增强卷积神经网络提高识别的精度。模型的整体网络结构如
图 3. 二分类单双手手势识别模型结构
Fig. 3. One-hand and double-hand gesture recognition structure based on two classifiers
3.1 手数分类器
手数分类器(C)主要进行将双手分为单手的分组预测,其网络结构如
式中:xi, xj为低纬度的特征向量;T为向量的转置;tanh为双曲正切函数;β,θ为核函数的核参数,β>0,θ<0。
网络参数如
式中:sqrt[·]为开根号;(xi,yi)为非零的像素点Ci的坐标;(xj,yj)为最邻近的零像素点Cj的坐标。
表 1. 手数分类器网络参数
Table 1. Network parameters of hand number classifier
|
图 5. 手势重心距离计算图示
Fig. 5. Calculation of distance between centers of gavity of hand gestures
式中:Rin(x,y)表示手势分组前双手的区域;Rout(x,y)表示手势分组后双手的区域。根据(16)式找到两个手掌的重心O1和O2,l(x,y)为垂直平分O1O2的切割线函数,l(x,y)<0表示被l分割的半平面(即单手手掌所在平面),如
图 6. 手势分组预测示意图。(a)手势二值图;(b)手势重心图;(c)手势分组预测图
Fig. 6. Diagrams of gesture grouping prediction. (a) Gesture binary graphs; (b) centers of gravity of hand gestures; (c) gesture grouping prediction maps
3.2 AE-CNN手势识别分类
3.2.1 AE-CNN模型及实现
AE-CNN(A)结构以及具体参数如
将手数分类器C分组预测后的手势作为AE-CNN的输入,输入尺寸为28 pixel×28 pixel,该网络包含2个卷积层(分别是C3,C4)、2个池化层(分别是S3,S4)、1个全连接层(FC)和1个自适应增强模块。使用sigmoid核函数,其计算表达式如(15)式。第一层为6个尺寸为5×5的卷积核,步长为1,紧随其后的是窗口大小为2×2的池化层,池化方式为最大池化,第3层为72个尺寸为5×5的卷积核,步长为1,第4层为2×2的池化层,经过下采样输出的二维特征图进入全连接层,变为192的一维特征图,从而得到9类手势的分类结果。对于基于本网络的9类手势的分类问题,第j类手势输出的分类真值为yj,第j类手势的分类过程如
3.2.2 AE-CNN算法步骤
AE-CNN手势识别算法步骤如下:
1) 计算分类误差。将卷积神经网络前向过程的分类结果和分类真值进行比较,通过计算得出分类误差。
2) 提取分类结果特征值。分析输出层的分类结果,将两个最大值作为特征值。
3) 计算自适应增强系数。通过迭代次数和前向过程的识别结果确定自适应增强系数,如果识别正确,则将分类结果对应的分类误差值增大α1倍,相反,则将其增大α2倍,自适应增强系数α[14]的表达式为
式中:e为自然常数;p为乘积系数;g为当前迭代次数;λ为校正项;c为常数。用(18)式分别计算出分类正、误时的α1和α2,其中参数p,λ,c的设置参考文献[ 14]。
4) 识别结果特征误差值的自适应增强。设s为分类正确和错误时特征误差值Eerr和增强系数α的标记,则增强表达式为
式中:E'err,s为增强函数;αs为自适应增强系数;Eerr,s为特征误差值。
5) 计算增强残差。增强残差包括特征误差增强后的残差和剩余误差的残差,由(14)式计算。
6) 将特征残差进行增强后反馈到隐藏层。隐藏层中权值和偏置的表达式由(12)式和(13)式得到。
7) 模型更新。按照(7)式和(8)式的表达式更新隐藏层权值和偏置。
4 实验与结果分析
4.1 实验环境及数据集
本实验使用TensorFlow开源框架,系统使用的是UBUNTU 18.04版本,显卡是NVIDIA GTX 1080Ti。
本文采用基于Hand_Gesture_Dataset_LSP数据集的9类手势作为单手手势数据集,并采用自建的双手手势数据集的“Both hands”数据集和ASL数据集中的9类单手手势,如
图 9. 自建单双手手势数据集样本。(a)单手手势;(b)双手手势
Fig. 9. Samples of one-hand and double-hand gesture data sets. (a) One-hand gestures; (b) double-hand gestures
图 10. 数据扩展及复杂背景手势样本。(a)复杂背景手势;(b)数据扩展
Fig. 10. Data expansion and complex background gesture samples. (a) Complex background gestures; (b) data expansion
表 2. 各分类网络的数据量
Table 2. Amount of data of classification networks
|
4.2 实验设计
4.2.1 实验1
针对手数分类器网络,将输入手势预测分组为单手手势并进行训练,使用均匀分布的测试集测试其分组预测的准确率。
4.2.2 实验2
针对AE-CNN手势识别分类器,使用ASL数据集进行网络训练和测试,并将其与经典的CNN和CNN Dropout进行收敛性能的对比,将其与CNN进行识别率的对比。为防止训练时出现局部最优和难以收敛的情况,本实验batch size设置为50,收敛阈值设置为1×10-4。本次实验过程中的自适应增强系数α1、α2及其对应的校正项θ1、θ2分别为
4.2.3 实验3
针对AE-CNN在识别率上的有效性,选择了三种特征提取算法,即LBP+SVM,方向梯度直方图(HOG)+SVM和PCA+HOG+SVM进行识别率对比。
4.2.4 实验4
对本文模型对单一背景手势识别的鲁棒性进行测试,模拟外界环境对手势的干扰,分别给测试图像加上均值为0、方差为0.001,0.002,0.003的高斯噪声和噪声密度为0.001,0.002,0.003的椒盐噪声进行测试,进行识别率的对比。
4.2.5 实验5
对复杂背景以及光照恶劣的情况进行模型手势识别的测试,在复杂背景和不同光照强度的手势混合测试集中,随机选取50张图片作为1组样本,分别抽取5组样本进行识别率的测试 。
4.3 实验分析
手数分类器在进行手势分组预测时,将双手手势整体作为单手手势的错误分组预测的概率非常小,其对后续手势识别的影响不大。手数分类器测试分组预测正、误的概率分别为98.82%和1.18%。
图 11. CNN和AE-CNN的收敛性和误识率对比。(a)CNN, CNN+Dropout和AE-CNN的收敛曲线;(b)CNN和AE-CNN的误识率
Fig. 11. Convergence and error rate curves of CNN and AE-CNN. (a) Convergence curves of CNN, CNN+Dropout,and AE-CNN; (b) error rate curves of CNN and AE-CNN
表 3. AE-CNN与其他算法的识别率对比
Table 3. Comparison of recognition rate between AE-CNN and other algorithms
|
图 12. 部分手势(0,2,5,9)的LBP特征。(a)手势0 LBP特征;(b)手势2 LBP特征;(c)手势5 LBP特征;(d)手势9 LBP特征
Fig. 12. LBP features of hand gestures (0,2,5, and 9). (a) LBP feature of zero gesture; (b) LBP feature of two gesture; (c) LBP feature of five gesture; (d) LBP feature of nine gesture
文献[
16]中采用HOG进行特征提取,将图像化整为零并将其划分为多个局部区域,计算和统计每个区域像素的边缘和梯度直方图,结合线性SVM进行分类。
图 13. 部分手势HOG特征和HOG+PCA降维重构图
Fig. 13. HOG features of partial gestures and HOG+PCA dimensionality reduction reconstruction maps
由
图 14. 添加不同噪声的预处理图。(a)椒盐噪声归一化;(b)椒盐噪声二值图;(c)高斯噪声二值图;(d)高斯噪声密度分布图;(e)高斯噪声归一化
Fig. 14. Preprocessing graphs after adding different noise. (a) Normalization of salt and pepper noise; (b) binary map of salt and pepper noise; (c) binary map of Gaussian noise; (d) distribution of Gaussian noise density; (e) normalization of Gaussian noise
由
表 4. 添加高斯噪声和椒盐噪声的识别率对比
Table 4. Comparison of recognition rate between Gaussian noise and salt and pepper noise
|
根据
表 5. 复杂背景和不同光照下的样本识别率
Table 5. Recognition rate of samples under complex background and different lighting conditions
|
5 结论
提出一种结合手数分类器和自适应增强卷积神经网络的单双手手势识别算法,构建基于LSP数据集的单手和双手手势数据集,采用手数分类器对手势进行分组预测,在手数分类器的介入下,将双手手势识别转换成单手手势识别,这样可在一定程度上降低双手手势识别算法的复杂度。通过在CNN的基础上引入自适应增强模块,可增强针对迭代后分类结果的分类特征。所提算法相比于传统CNN的收敛性以及识别率均有很大的提升。相比于LBP+SVM,HOG+SVM和PCA+HOG+SVM三种特征提取的手势识别算法,所提算法的手势识别精度更高,对加噪后手势的识别率基本不变。对复杂背景和不同光照下的手势进行识别,得到的识别率也维持在一个较高的值,这说明本文算法具有一定的鲁棒性。
[2] 杨亚慧, 谢宏. 基于卷积神经网络的表面肌电信号手势识别[J]. 微型机与应用, 2017, 36(15): 59-61.
[3] 邓瑞, 周玲玲, 应忍冬. 基于Kinect深度信息的手势提取与识别研究[J]. 计算机应用研究, 2013, 30(4): 1263-1265, 1274.
Deng R, Zhou L L, Ying R D. Gesture extraction and recognition research based on Kinect depth data[J]. Application Research of Computers, 2013, 30(4): 1263-1265, 1274.
[5] LiuY, Yin YM, Zhang SJ. Hand gesture recognition based on HU moments in interaction of virtual reality[C]∥2012 4th International Conference on Intelligent Human-Machine Systems and Cybernetics, August 26-27, 2012, Nanchang, Jiangxi, China.New York: IEEE Press, 2012: 145- 148.
[6] Valencia C R. Garcia-Bermejo J G, Casanova E Z. Combined gesture-speech recognition and synthesis using neural networks[J]. IFAC Proceedings Volumes, 2008, 41(2): 2968-2973.
[7] 姚丽莎, 徐国明, 赵凤. 基于卷积神经网络局部特征融合的人脸表情识别[J]. 激光与光电子学进展, 2020, 57(4): 041513.
[8] 周涛, 吕晓琪, 任国印, 谷宇, 张明, 李菁. 基于集成卷积神经网络的面部表情分类[J]. 激光与光电子学进展, 2020, 57(14): 141501.
[9] Rahman M A. Recognition of static hand gestures of alphabet in Bangla sign language[J]. IOSR Journal of Computer Engineering, 2012, 8(1): 7-13.
[10] 袁荣尚, 罗晓曙. 基于多尺度卷积神经网络模型的手势图像识别[J]. 现代电子技术, 2019, 42(24): 150-153.
Yuan R S, Luo X S. Gesture image recognition based on multi-scale convolution neural network model[J]. Modern Electronics Technique, 2019, 42(24): 150-153.
[11] 张勋, 陈亮, 朱雪婷, 等. 基于区域卷积神经网络Faster R-CNN的手势识别方法[J]. 东华大学学报(自然科学版), 2019, 45(4): 559-563.
Zhang X, Chen L, Zhu X T, et al. Gesture recognition based on region convolutional neural network of faster R-CNN[J]. Journal of Donghua University (Natural Science), 2019, 45(4): 559-563.
[12] 朱雯文, 叶西宁. 基于卷积神经网络的手势识别算法[J]. 华东理工大学学报(自然科学版), 2018, 44(2): 260-269.
Zhu W W, Ye X N. Convolution neural networks for gesture recognition[J]. Journal of East China University of Science and Technology (Natural Science Edition), 2018, 44(2): 260-269.
[13] 苏军雄, 见雪婷, 刘玮, 等. 基于可变形卷积神经网络的手势识别方法[J]. 计算机与现代化, 2018( 4): 62- 67.
Su JX, Jian XT, LiuW, et al. Gesture recognition method based on deformable convolution neural network[J]. Computer and Modernization, 2018( 4): 62- 67.
[14] 刘万军, 梁雪剑, 曲海成. 自适应增强卷积神经网络图像识别[J]. 中国图象图形学报, 2017, 22(12): 1723-1736.
Liu W J, Liang X J, Qu H C. Adaptively enhanced convolutional neural network algorithm for image recognition[J]. Journal of Image and Graphics, 2017, 22(12): 1723-1736.
[15] 白丰, 张明路, 张小俊, 等. 局部二进制特征描述算法综述[J]. 电子测量与仪器学报, 2016, 30(2): 165-178.
Bai F, Zhang M L, Zhang X J, et al. Summarization of local binary feature description algorithm[J]. Journal of Electronic Measurement and Instrumentation, 2016, 30(2): 165-178.
[16] DalalN, TriggsB. Histograms of oriented gradients for human detection[C]∥2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), June 20-25, 2005, San Diego, CA, USA.New York: IEEE Press, 2005: 886- 893.
[17] HamedA, Belal NA, Mahar KM. Arabic sign language alphabet recognition based on HOG-PCA using microsoft kinect in complex backgrounds[C]∥2016 IEEE 6th International Conference on Advanced Computing (IACC), February 27-28, 2016, Bhimavaram, India.New York: IEEE Press, 2016: 451- 458.
Article Outline
张政, 徐杨. 基于双分类器的自适应单双手手势识别[J]. 激光与光电子学进展, 2021, 58(2): 0210005. Zheng Zhang, Yang Xu. Adaptive One-Hand and Two-Hand Gesture Recognition Based on Double Classifiers[J]. Laser & Optoelectronics Progress, 2021, 58(2): 0210005.