APP下载

基于卷积神经网络在手势数字识别中的研究分析

2021-07-01曾祥强

物联网技术 2021年6期
关键词:手势准确率卷积

曾祥强,刘 瑞,2,杨 鑫,2

(1.成都理工大学 地球物理学院,四川 成都 610051;2.成都理工大学 地球勘探与信息技术教育部重点实验室,四川 成都 610051)

0 引 言

手势是人类活动中最为简单的一种非语言交流方式,因其简便直观、目的性强等特点,被广泛应用在人机交互、智能家居、增强现实等领域。例如,华为公司于2019年发布的华为mate30手机可实现“隔空手势握拳”截屏操作;百度AI平台推出手势识别API,可在线识别“拳头”等24种常见手势。

随着计算机硬件能力的提升以及深度学习的不断发展,基于计算机视觉的手势识别成为当下科学研究的重点领域之一。常见的手势数字分类识别技术有深度卷积神经网络、支持向量机、朴素贝叶斯等方法。付天豪等人结合卷积神经网络和支持向量机方法实现了动态手势识别[1];张行健等以AlexNet结构为基础,构建了13层手势识别卷积神经网络模型[2];宋京等用Dropout优化后的卷积神经网络提高了手势分类准确率[3]。

本文为证明深度学习在手势数字识别研究领域的有效性,以及实现一种分类效果显著的卷积神经网络模型,使用手势数字数据集,利用Pytorch深度学习平台构建AlexNet、VGG16、ResNet50三种经典卷积神经网络,建立了基于深度卷积神经网络的有效手势数字识别模型,通过测试结果评价指标比较分析,最终发现ResNet50卷积神经网络具有较好的分类效果。

1 实验数据

本文使用的实验数据为网络公开发布的国外手势数字数据,共计205张图像,包含0~9手势数字。手势数字0~9的表示方法如图1所示。为确保深度学习卷积神经网络模型训练稳定和测试训练的网络模型,将数据集按照9∶1的比例随机划分为训练集(1 835张图片)和测试集(224张图片),训练集中每种手势数字类型的图像约180张,测试集约20张。训练集将用于训练构建的卷积神经网络模型,测试集则用于评估卷积神经网络模型。

图1 手势数字展示

图像数据维度为[3,100,100],即通道数为3,长宽皆为100。图像数据在训练与测试前,首先需要进行预处理,将图像值范围从[0,255]缩放至[0,1],预处理见下式:

式中:x表示像素点值;x*表示像素点缩放后的值。

2 卷积神经网络

卷积神经网络(Convolution Neural Network, CNN)一般由卷积层、池化层、激活函数、连接层、分类器等构成。在手势图像处理过程中,数据经过卷积层得到卷积特征(特征图),池化层用于减少特征图的参数,激活函数将池化后的输出结果非线性映射,最后通过连接层将特征传入Softmax分类器进行分类,最终得到分类结果。

随着计算机计算能力的提升,以及在深度学习框架的支持下,越来越深层的卷积神经网络结构出现在文献当中。经典的卷积神经网络模型如AlexNet、VGG16、ResNet50等,常常用于获取图像数据的特征,被广泛应用在图像分类、图像分割等计算机视觉研究领域。

2.1 AlexNet

AlexNet卷积神经网络[4]结构由Alex等人提出,并于2012年 获 得 了ILSVRC(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)大赛冠军。AlexNet网络结构首次成功应用了ReLU激活函数、Dropout等方法,提升了模型准确率。本文构建的AlexNet网络结构如图2所示,该网络结构共有5层卷积层、3层池化层、5层全连接层和Softmax分类器。在5个卷积层中,卷积核分别为11×11,5×5和3×3,更大的卷积核拥有更多的感受野。池化层均采用最大池化,减小特征图,缩减训练参数。全连接层采用神经网络降低特征维度,最终输入Softmax分类器,得到分类概率。

图2 AlexNet网络结构流程

2.2 VGG-Net

牛津大学科学工程系于2014年提出了一种深度卷积网络[5]VGG-Net(Visual Geometry Group Network, VGG-Net)。VGG网络的提出,证明了增加网络的深度能够在一定程度上影响模型的性能。VGG相比AlexNet的改进之处在于采用连续若干3×3卷积核代替了AlexNet中11×11和5×5卷积核,多层非线性卷积层可以增加网络深度以保证网络学习的模式,提取图像数据特征。根据网络结构不同的深度,VGG网络可分为VGG11、VGG13、VGG16和VGG19,其中VGG16和VGG19曾一度被广泛用于各种计算机视觉目标检测网络框架提取网络特征。

本文针对手势数字数据集维度较小的特点,构建了如图3所示的VGG16网络模型。从图中可以发现,模型共有13个卷积层,5个池化层,5个全连接层。每个卷积层的卷积核均为3×3,在每次卷积操作完成后,会依次进行BatchNorm归一化处理和ReLU激活函数操作。

图3 VGG16网络结构流程

2.3 ResNet

残差神经网络(Residual Neural Network, ResNet)由微软研究院何凯明等人提出[6],并在2015年的 ILSVRC 比赛中夺得冠军。ResNet网络相比于VGG而言,拥有更深的网络结构,更低的参数量,分类效果显著提升。此外,ResNet的结构可以极快加速神经网络的训练,模型的准确率也有了比较大的提升。目前为止,ResNet拥有ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152等几种经典的网络结构。

随着卷积神经网络模型深度的增加,模型准确度出现饱和,甚至下降,即退化问题(Degradation Problem)。ResNet网络模型能够通过残差学习有效解决退化问题。残差学习结构如图4所示。

图4 残差学习结构

残差计算公式如下:

式中:x为输入数据;H(x)为输出结果;F(x)为残差。从公式(2)可以看出,残差为输入与输出之间的差值,一般比输出H(x)小,直观上看,F(x)需要学习的内容相比于直接学习H(x)要少、学习难度较小。因此,ResNet网络更容易优化,并且能够通过增加一定的网络深度来提取更多的特征,从而提升模型的准确率和特征提取效果。

3 实验过程

如图5所示,本文实验流程分为3步:

图5 实验流程

(1)手势数字数据集按照9∶1的比例随机切分数据集,并进行预处理;

(2)通过 Pytorch 深度学习框架构建卷积神经网络模型,训练并保存3种经典图像分类模型;

(3)将测试集输入训练完成的网络模型,得到分类结果,并建立图表分析,综合评估3种卷积神经网络模型。

3.1 构建模型

本文采用Python3.7编程语言,利用由Facebook人工智能研究院开发的Pytorch深度学习平台建立基于人工智能深度学习的手势数字分类模型。在构建3种网络模型时,为加速网络模型的训练速度、防止模型过拟合以及提升分类效果,采用了以下几种方法。

(1)ReLU激活函数。ReLU激活函数在x>0区域上,避免了出现梯度饱和、梯度消失等问题,成功解决了网络较深时的梯度弥散问题。相比sigmoid和tanh等激活函数,使用ReLU激活函数的卷积模型在训练时无需进行指数运算,计算复杂度低,更适合后向传播,且收敛速度更快。激活函数如图6所示。

图6 激活函数

(2)Dropout方法[7]。随着深度学习和神经网络的发展,模型的参数越来越多、层次越来越深,这种情况会造成模型过拟合、训练时间过长等现象。Dropout方法是解决上述问题而提出的一种策略。加入 Dropout的神经网络模型如图7所示,其原理是在神经网络训练过程中,随机按比例将隐藏层的权重设置归零,即输入不与隐藏层的权重进行相关运算。在AlexNet、VGG16和ResNet50网络结构里的全连接层中,Dropout方法随机将部分(概率为0.5)神经元权重归零,使得模型不会完全依赖全连接层中的某个权重,有效防止模型出现过拟合现象。

图7 Dropout示意图

(3)批规范化。批规范化(Batch Normalization, BN)能够缩放数据并使之服从均值为0、方差为1的标准正态分布,有效解决随着网络深度的增加而引起的梯度消失问题,提升模型训练速度,加速收敛过程,增强分类效果。因此本文在构建VGG16网络模型时,在每次卷积运行结束后,进行一次批规范化操作,缓解了由于其深层网络而引起的梯度饱问题。

(4)Softmax分类器。它能够将神经元的输出值映射到(0,1)区间,输出值经过映射后得到的结果为分类概率,概率最大值为预测值。此外,交叉熵损失函数和Softmax分类器配合使用,方便损失函数求导,快速计算出损失值,有利于模型训练时的反向传播。

(5)预训练模型。在训练3个卷积神经网络模型时,均使用了由Pytorch深度学习平台提供的预训练模型参数,通过此方法可以加速模型的训练速度,提升模型准确率。

3.2 评估模型

手势分类属于多分类问题,对于多分类问题的模型评价可转化为二分类问题进行评估。二分类模型检测通常使用混淆矩阵[8]综合评价。表1显示了真实情况和预测结果组合后的4种情况,分别是真正例(TP)、假反例(FN)、假正例(FP)、真反例(TN)。

表1 真实情况和预测结果组合后的情况

根据分类结果混淆矩阵,可以得到以下评价指标:

(1)准确率(ACC):

(2)精确率(P):

(3)召回率(R):

(4)F1-Score:

(5)AUC(Aera Under Curve, AUC)为ROC曲线下的面积。

从以上评价指标可以得出,ACC反映了模型预测正确的样本个数占总样本个数的比例。P为预测为正例的样本数据中预测正确的样本个数,R为真实情况为正例样本数据中预测正确的样本个数。P和R是一对矛盾的评价指标,因此针对不同的分类问题,对精确率和召回率的要求也不同,如恶劣事件的预测,比较注重精确率。考虑到本文手势数据集的特点,将采用F1-Score评价指标,F1-Score调和平均了P和R,反映为模型的分类识别性能。AUC是ROC曲线下的面积,表示预测的正例排在负例前的概率,其值在[0,1]之间,值越大说明模型的分类效果越好。对于多分类的手势数字识别模型评估,AUC,F1,P和R为每个手势数字类别评估指标之和的平均值。

4 实验结果分析

为确保模型训练的一致性,实验选取随机梯度下降(Stochastic Gradient Descent, SGD)优化函数、交叉熵损失函数、0.01学习率,分别对 AlexNet、VGG16、ResNet50网络模型共计训练100次,得到如图8所示的训练结果。

图8 训练模型准确率与损失图像

训练结果表明:ResNet50正确率最高,达到99.89%,AlexNet正确率为98.36%,VGG16正确率为90.02%;模型训练时收敛速度由快到慢依次为ResNet50、VGG16、AlexNet,其中ResNet50损失值最低,为1.46,AlexNet损失值为1.47,VGG16损失值为1.56。

将测试集输入到训练完成的网络模型中,得到分类概率结果。分类概率结果和原始数据标签进行相关计算,并得到表2所列的测试集结果评价表。ResNet50网络模型的ACC值最高,为93.3%,表明ResNet50 在测试集上的分类正确个数多于另外两种模型。ResNet50、VGG16和AlexNet网络的AUC值都接近1,表明3个模型都拥有极高的正确率。此外,F1分数最高,表明其拥有较好的手势数字分类性能。

表2 测试结果评价表

结合训练结果图和测试评价表进行综合分析,ResNet50网络模型在训练时准确率高、收敛速度快、损失值下降迅速,在ACC、AUC、F1等评价指标上得到了较好的评估。因此表明3种网络模型在手势数字识别的分类性能ResNet50>VGG16>AlexNet。

5 结 语

本文基于深度学习实现了3种经典神经网络模型在手势数字识别上的应用,实验结果表明:

(1)基于深度学习的卷积神经网络在手势数字识别研究领域中具有显著效果,从表2可以看出,AlexNet、VGG16、ResNet50模型在测试集中准确率较高,分类效果较好;

(2)随着网络深度的增加,分类效果有一定程度的提升,VGG16和AlexNet是传统的卷积神经网络,但前者拥有的网络更深,在训练时的收敛速度及测试集上的ACC、AUC、F1等均优于AlexNet;

(3)在3种模型的比较分析中,ResNet50训练稳定、收敛速度快、模型准确率高,分类效果显著,说明残差学习相比传统的卷积神经网络在手势数字识别中具有一定优势。

注:本文通讯作者为刘瑞。

猜你喜欢

手势准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
挑战!神秘手势
从滤波器理解卷积
V字手势的由来
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
一种基于卷积神经网络的性别识别方法