结合Bi⁃2DPCA与CNN的美式手语识别
2021-12-20杨明羽叶春明
杨明羽,叶春明
(上海理工大学 管理学院,上海 200093)
0 概述
手语通过摆出不同的手臂与手的姿势,辅以表情及其他肢体动作传达信息,是聋哑人重要的沟通语言,也是帮助他们融入社会的重要工具[1]。美式手语(American Sign Language,ASL)是适用于美国、加拿大等地区的手语语言[2-3]。在ASL 中,包含静态手势和动态手势,以J 和Z 表示动态手势,其余字母表示静态手势。但由于人类的手非常灵活,可以摆出很多形状,因此增加了手势识别的难度。
近年来,许多学者在ASL 图片的识别问题上,使用流行的神经网络进行研究。ASHA 等[4]提出一种通过提取静态ASL 图片的特征直方图、统计量度等进行神经网络训练的识别算法,最高识别率为98.17%。QUTAISHAT 等[5]通过使用霍夫变换和神经网络开发了ASL 语言翻译及标志系统,识别准确度率为92.3%。ADITHYA 等[6]通过使用卷积神经网络(Convolutional Neural Network,CNN)[7]对ASL 数据集进行训练预测,准确率达到94.7%。但在使用神经网络训练时,往往需要花费大量的时间在训练模型上[8]。特别是近年来CNN的网络层数不断加深[9]和可训练参数骤增,更凸显了模型训练时间过长的问题。因此,一些学者提出了将主成分分析(Principal Component Analysis,PCA)与神经网络相结合的观点。吴伟[10]提出PCA 与CNN 相结合识别ASL 图片的方法,通过在CNN 前插入PCA 层进行特征降维,大幅提升了训练速度,且识别率达到94.45%。钟健等[11]提出一种PCA 与自组织神经网络SOM 相结合的识别方法,使用SOM 作为分类器进行图片分类,同样显著提高了识别速度,且识别率稳定在90%左右。上述方法使用的PCA 均在一维数据中使用,针对图片等二维数据,学者们又发展了二维主成分分析(Two-Dimensional PCA,2DPCA)[12]和双向二维主成分分析(Bidirectional 2DPCA,Bi-2DPCA)[13]方法。相比于一维的PCA,改进后的2DPCA 和Bi-2DPCA 对图像的降维效果更好,提升速度的效果更明显。
在基于神经网络的各种模型中,超参数的选择对模型的性能影响很大,不恰当的超参数或将直接影响模型的应用效果。近几年在ImageNet比赛中获得成功的GoogleNet、ResNet-52 和DenseNet 都需要对超参数进行精细地调整,这3 个模型分别有78、150、376 个超参数[14],若手动调参则会浪费非常多的时间。因此,在优化超参数时可使用粒子群优化(Particle Swarm Optimization,PSO)算法[15]、遗传算法(Genetic Algorithm,GA)[16]、贝叶斯优化(Bayesian Optimization,BO)算法[17-19]等自动调参算法。
为提高ASL 图片识别准确性同时加快模型训练速度,本文提出基于Bi-2DPCA 与CNN 的美式手语识别算法。利用Bi-2DPCA 对原始图片进行降维预处理,在此基础上提取特征矩阵,并将降维后的数据输入CNN 网络进行模型训练。同时,使用贝叶斯优化方法,通过设计超参数的选取及其范围优化CNN的超参数。
1 相关知识
1.1 卷积神经网络
卷积神经网络(CNN)用于处理空间上有关联的数据[20],其使用多个较小的卷积核(filter),有规律地扫描数据。CNN 的网络连接是稀疏连接,卷积核使用的是共享参数,这极大地减少了网络可训练参数的数量,加快了网络训练速度。CNN 的基本结构由输入层、卷积层、激活层、池化层、丢弃层(Dropout)、全连接层和输出层构成。在卷积层后加入批归一化层(Batch Normalization,BN)可以进一步增强网络的性能和泛化能力[21-22]。
卷积层中有多个卷积核,对于前一网络层传入的图像或特征图,在其每一图层都有一个卷积核进行扫描。卷积核计算公式为:
BN 层对一批数据进行标准化,使数据符合以0为均值、以1 为标准差的分布,计算公式为:
池化层向下采样可增加感受野,缓解过拟合。目前,常用的池化方法有最大值池化和均值池化。
Dropout 层在训练时舍弃一定比例的神经元,这使得网络的训练参数变少,增加了网络的泛化能力,减少了某些神经元的依赖性。当网络中存在BN 层时,Dropout 的比例可适当减少。
CNN 使用Adam 优化器对Softmax 的交叉熵函数进行优化。Adam 定义了一阶动量mt和二阶动量Vt,分别为当前t次迭代时梯度gt的一次函数与二次函数,β1与β2为超参数,设置为0.9 与0.999。一阶和二阶动量表达式分别如式(4)和式(5)所示:
1.2 Bi-2DPCA 算法
PCA 算法核心思想是将样本投影到一个超平面上,并使所有样本的投影尽可能分开,即最大化投影点的方差。2DPCA 针对图片等二维矩阵,不需要将图片数据打平为一维数据,极大地减少了维度[12]。
利用2DPCA 算法对图片Xi(m行n列)进行特征提取,其中投影基W(n行k列)的列宽远小于图片矩阵,由此可得到最后的投影矩阵为:
最后的投影矩阵Y为m行k列,实现了图片在列维度的降维。其中,W矩阵为原数据中心化后的协方差矩阵前k个特征值组成的特征向量。协方差矩阵Gt表示为:
其中:N为样本总数为样本均值。计算Gt矩阵的特征值和特征向量,取前k个特征值组成的特征向量构成W矩阵,即可计算最后的投影矩阵Y。
由于2DPCA 只对列维度进行降维,整体维度仍比较大,因此出现了改进算法Bi-2DPCA,其将2DPCA 处理后的数据Y(m行k列)继续投影到某组基C上,得到最终的投影矩阵U,表示为:
其中,C为由新样本构造的协方差矩阵前j个特征值组成的特征向量。表示为:
最后得到行变换C与列变换W,将行列变换合并。对于图片Xi,降维后的特征矩阵A的维度为j行k列,其中j和k远小于原始图片的m和n,则行列变换矩阵公式为:
若对特征矩阵进行复原显示,则可得到:
在Bi-2DPCA 算法中也存在2 个超参数,即列降维选取的k取值与行降维选取的j取值,其经验选取为特征值贡献率为0.9~0.99 的特征数[12]。
1.3 贝叶斯优化
贝叶斯优化(BO)算法基于顺序模型,其目标函数不需要具有可导、连续等数学性质,并且如果是昂贵的黑盒函数,也可以在比较少的迭代次数内计算得到最佳的取值[17]。
在BO 算法中,最重要的2 个部分是概率代理模型和采集函数。概率代理模型用于替代评估代价高昂的目标函数,常用的代理模型有贝塔-伯努利(Beta-Bernoulli)模型、线性模型、高斯过程(Gaussian Processes,GP)模型等。GP模型具有较好的灵活性、可拓展性和可分析性,是BO 中应用最广泛的概率代理模型。该模型由均值函数和协方差函数构成,如式(12)所示:
其中:r为l为尺度参数。
采集函数从搜索域X中选择评估点,将其映射到实数空间α:X→R。该函数由已观测数据集D1:t的后验分布组成,通过最大化该函数寻找下一个评估点xt+1,如式(14)所示:
该过程基于提升的策略EI(Expected Improvement),采集函数为:
其中:υ*为当前最优函数值;φ(·)为标准正态分布密度函数;μt(x)为均值;σt(x)为标准差。
2 B2DPCA-CNN 算法
本文提出Bi-2DPCA-CNN 算法,算法流程如图1所示。
图1 Bi-2DPCA-CNN 算法流程Fig.1 Procedure of Bi-2DPCA-CNN algorithm
2.1 数据预处理
本文使用的ASL 数据集来源于Kaggle,为24 分类样本,对应A~Z(除去J、Z)的24 个英文字母,每一类有3 000 张图片,共72 000 张图片。每个字母对应的照片集都在光照、姿势、位置等方面有所不同,可以较好地模拟真实识别场景。图2 展示了ASL 数据集部分图片及其字母表示。
图2 ASL 数据集部分图片及其字母表示Fig.2 Some pictures of ASL dataset and their letter representations
图2 中每张图片的原始尺寸大小为200 像素×200 像素,在进行特征估计并排序后,前30 位特征柱状图如图3 所示。可以看出,排名高的特征值远大于其他特征值。
图3 前30 个特征柱状图Fig.3 Top 30 feature histograms
若对图像进行复原,则可以直观地看出降维后的效果,图4~图6分别为原始灰度图与降维到100、50、25维度复原图像的对比图。可以看出降维到25 的复原图像仍然可以还原手势的形状,所以,Bi-2DPCA 降维参数选择为25,即200 像素×200 像素的原图降维成25 像素×25 像素的尺寸。
图4 100 维度原图与复原图对比Fig.4 Comparison of 100-dimensional original image and restored image
图5 50 维度原图与复原图对比Fig.5 Comparison of 50-dimensional original image and restored image
图6 25 维度原图与复原图对比Fig.6 Comparison of 25-dimensional original image and restored image
2.2 CNN 网络及参数设计
如图7 所示,本文设计包含多个卷积层和池化层的卷积神经网络。加入BN 层进行数据批标准化,并在Dropout 层进行丢弃处理,避免过拟合,最后接入全连接层和Softmax 分类器进行分类。
图7 包含多个卷积层和池化层的CNN 结构Fig.7 Structure of CNN with multiple convolution layers and pooling layers
卷积层、池化层和Dropout 层参数项如下,参数范围如表1 所示。
表1 参数范围Table 1 Range of parameters
1)卷积层1:卷积核的大小为dim1,数量为num_conv1。
2)池化层1 :池化大小为pool。
3)卷积层2:卷积核的大小为dim2,数量为num_conv2。
4)池化层2:池化大小为pool。
5)Dropout 层:丢弃率为drop。
6)学习率:设置为优化参数lr。
3 实验与结果分析
3.1 实验设置与评价指标
本文实验使用Windows10 系统,编程语言为Python,实验平台使用TensorFlow2.1 版本,采用GPU加速,处理器为Inter i7-8750H 处理器,显卡为NVIDIA GTX1060,6 GB 显存。实验使用的样本为72 000 张图片,其中60 000张作为训练集,12 000张作为测试集集,模型迭代50 次,保存模型每次迭代的准确率与损失。评价指标选取准确率、训练时间、测试时间和F1 值。
3.2 Bi-2DPCA 优化验证
分别使用以下模型对ASL 数据集识别并进行实验分析,验证Bi-2DPCA 对CNN 整体性能的提升:1)文献[10]中的PCA-CNN 模型(下文简称a-CNN模型);2)文献[6]中的CNN 模型(下文简称b-CNN无改进模型);3)文献[6]中加入Bi-2DPCA 的CNN模型(下文简称b-CNN-2DPCA 模型);4)本文设计的CNN 网络无改进模型(下文简称CNN 无改进模型);5)本文设计的Bi-2DPCA-CNN 模型。
5 种模型的实验评价指标如表2 所示。可以看出:a-CNN 模型虽然使用PCA 算法,但未使用Bi-2DPCA,仍需要花费大量时间将图片变为一维向量进行样本矩阵的降维,且计算的协方差矩阵维度较大,无法准确地进行特征向量估计,影响了准确率与F1 值,其准确率和F1 值分别为95.82%、95.67%,测试时间为158 s;b-CNN-2DPCA 模型使用3 轮卷积池化结构,由于存在较多的可训练参数,训练时间较长,在进行Bi-2DPCA改进后,准确率为98.32%,提升了0.28%,F1值为98.17%,提升了0.54%,训练时间缩减了91.5%,测试时间从244 s减少到96 s;本文提出的Bi-2DPCA-CNN 模型相比于CNN无改进模型,准确率为98.28%,降低了0.03%,F1值为98.26%,提升了0.02%,训练时间从3 707.3 s 缩短到358.2 s,缩减了90.3%,测试时间从232 s 减少到90 s,缩减了61.2%。图8 为Bi-2DPCA-CNN 模型的准确率与损失曲线。
表2 不同模型的评价指标Table 2 Evaluation indicators of different methods
图8 Bi-2DPCA-CNN 模型的准确率与损失曲线Fig.8 Accuracy and loss cruves of Bi-2DPCA-CNN model
3.3 贝叶斯优化验证
在Bi-2DPCA-CNN 的基础上继续使用贝叶斯算法优化网络存在的超参数。在上文2.2 节中,设计了7 组变量并分别设定了范围,本文使用贝叶斯优化算法,将7 组变量作为算法的输入、将Bi-2DPCA-CNN的准确率作为输出进行自动调参迭代。在进行5 次初始化寻优和10 次自动寻优后,得出模型最优参数。贝叶斯优化后的模型最优参数如表3 所示。
表3 Bi-2DPCA-CNN 模型最优参数Table 3 Optimal parameters of Bi-2DPCA-CNN model
使用贝叶斯优化后的最优模型与未使用贝叶斯优化的模型评价指标如表4 所示。可以看出:经过贝叶斯优化后的模型性能更好,准确率为99.15%,提升了0.87%,F1 值为99.02%,提升了0.76%;对比文献[6]未经贝叶斯优化的模型,准确率提升了1.11%,F1 值提升了1.39%。
表4 贝叶斯优化前后Bi-2DPCA-CNN 性能对比Table 4 Performance comparison of Bi-2DPCA-CNN before and after Bayesian optimization %
图9 为贝叶斯优化后Bi-2DPCA-CNN 模型的准确率与损失曲线。可以看出:该模型使用Bi-2DPCA 算法对数据进行预处理,在保留原图特征的同时降低了尺寸大小,显著减少了运行时间。在使用贝叶斯优化后,准确率与F1 值都有所提升。同时,2D2DPCA 算法与其他模型结合也有较好的结果,能够有效减少训练时间。
图9 贝叶斯优化后Bi-2DPCA-CNN 的准确率与损失曲线Fig.9 Accuracy and loss cruves of Bi-2DPCA-CNN after Bayesian optimization
4 结束语
针对现有算法识别ASL 数据集训练模型速度慢和识别准确率低的问题,本文提出Bi-2DPCA-CNN算法。在图片预处理阶段使用Bi-2DPCA 算法对原始图片特征提取降维,保留原图重要特征并减小图片尺寸。在此基础上,设计多层卷积、池化结构的卷积神经网络进行特征图的识别分类,并加入批归一化层与丢弃层防止过拟合。同时,使用贝叶斯优化方法对卷积神经网络中的超参数进行优化,以实现模型的最优化。在对24 分类ASL 图片进行识别时,该算法在准确率、训练时间、F1 值方面较文献[6,10]方法均具有优势,验证了算法的有效性,并且2DPCA 算法得到了特征值矩阵,对不同识别任务可获得基于当前数据集的特征值,在其他图像识别问题上也有可拓展性。本文工作仅针对ASL 数据集英文静态字母,并未对动态字母及其他手语动作进行识别,下一步研究将聚焦于动态手势识别,包括单张图片出现多个动态手势的复杂情况,以及手势遮挡等问题。