融合批量再标准化和YOLOv3的手势识别研究
2021-03-19程淑红程彦龙
程淑红, 程彦龙
(燕山大学 电气工程学院, 河北 秦皇岛 066004)
1 引 言
目前,手势识别在手语认知、辅助驾驶、电子游戏以及机器控制等领域应用前景广阔[1,2],随着深度学习的快速发展,基于视觉的手势识别成为人机交互领域重点研究方向之一。手势识别一般分为手势分割、手势特征提取和手势识别3个步骤[3],手势分割是从前景和手臂中分离出手部区域,常见的分割方法是利用肤色特征模型[4],但此类方法对光照变化和复杂背景都十分敏感。为减少光照条件影响,宋晓娜等[5]采用一种基于亮度高斯模型的手部检测算法,首先在RGB颜色空间建立亮度高斯模型,然后通过阈值方法获取手部区域,但由于肤色差异,该方法适用性不强。为减弱类肤色物体干扰,张明达[6]结合肤色模型和人手结构特征,通过检测指尖个数、计算手势轮廓周长面积比提高复杂背景下手势分割的准确性,但处理时间较长,无法满足实时性要求。手势特征提取和识别[7~9]是先提取手势几何特征、Haar-like特征、方向梯度直方图(histogram of oriented gradient,HOG)特征、局部二值模式(local binary patterns,LBP)特征等,然后借助模板匹配和支持向量机(support vector machine,SVM)[10]等方法完成识别,但以上这些手势特征对手势细粒度的表征能力较差,对区分度低的相似手势识别准确性低,很难满足应用需求。以上方法虽然能在某种程度上识别简单手势,但均存在手势分割易受光照变化和类肤色物体干扰、手势特征表达不充分,无法区分相近手势和手势识别实时性差的局限性。为此,本文提出融合批量再标准化和YOLOv3的手势识别方法,进行端到端手势识别,识别速度快,识别率较高,并已得到实验验证。
2 算法原理
手势识别系统总体流程如图1所示。先采集手势图像并进行样本预处理,建立标准手势数据库;使用K均值聚类方法获得适合训练集手势的锚点框;然后使用手势锚点框 、YOLOv3和批量再标准化进行手势建模,最后通过迁移学习和微调方法训练得到手势识别模型。YOLOv3具有强大的自主学习能力和快速性,在其基础上训练手势识别模型可避免手势分割和人工设计手势特征,提高手势识别速率。批量再标准化可通过等效数据规范化处理提高YOLOv3网络的泛化能力,提高手势识别准确性[11]。
图1 手势识别算法流程
2.1 YOLOv3基本原理
2.1.1 YOLOv3网络结构
YOLOv3网络结构由提取图片特征的网络Darknet-53和预测层2部分构成[12,13],可以直接预测手势的类别及位置,识别速度也可以达到实时性要求。
如图2所示,Darknet-53网络作为YOLOv3中提取图片特征的主要网络结构,Darknet-53包含一系列1×1、3×3的卷积核,并在每个卷积层后面连接Batch Normalization层和Leaky ReLU层。
图2 YOLOv3网络结构
为避免训练时出现梯度弥散或梯度爆炸,Darknet-53将深度神经网络分为若干子段,每个子段包含的网络层数较浅,然后通过跃层连接使得每个子段对残差进行训练,最后达到总体损失最小的目的。Darknet-53能够提取比手势几何特征、HOG特征、Harr特征等表征能力更好的手势细粒度特征。预测层在13×13,26×26,52×52这3种尺度上对手势进行预测,每个边界框负责对3个锚点框进行回归,选其中1个作为最终预测结果输出,包括手势的中心位置,宽高, 置信度和类别。通过在3种尺度上进行预测的方法,有效增强了对不同尺度手势及被遮挡手势的检测效果,并引入Concatenate层连接以强化网络收敛效果。
2.1.2 手势边界框预测与损失函数
YOLOv3使用K均值维度聚类对手势训练样本边界框进行聚类,获取最合适的锚点框尺寸,对不同尺度手势进行边界框预测, 通过本文20种标准手势数据聚类出的9个手势锚点框尺寸为(21×32),(28×62),(31×81),(32×26),(39×64),(48×65),(53×99),(68×67),(92×112),然后按照式(1)对每个手势边界框获取4个坐标值。
(1)
式中:cx和cy为一个网格与手势图像左上角的纵横距离;tx,ty为网络预测的坐标偏移量;σ为logistic函数,将坐标值缩放到0和1之间;tw和th为尺度缩放因子;pw和ph为网格对应锚点框的宽和高。通过对置信度这项设定阈值过滤掉低分的手势预测框,然后对留下的预测框通过非极大值抑制输出最终手势预测结果。
YOLOv3中使用的损失函数包括坐标损失、置信度预测损失和类别损失。通过损失函数可以评估手势分类模型的稳定程度,损失值越小,表明模型越稳定,预测结果也更加可靠。本文手势识别模型的训练损失函数如图3所示,可以看到模型的损失值逐渐降低,最后趋近理想状态,说明本文手势识别模型对复杂背景下定义的20种手势能够提供稳定可靠的识别结果。
图3 损失函数变化
2.2 手势数据规范化处理
YOLOv3网络在进行训练时主动学习手势数据特征的分布规律,如果测试阶段所用手势数据与训练阶段的手势数据存在较大偏差会严重影响网络的泛化能力,降低预测阶段手势识别的准确性。批量标准化处理可以减小手势数据间可能存在的较大偏差,然而简单标准归一化处理并不能很好体现手势训练样本的数据特征分布,反而会削弱YOLOv3网络的特征表达能力,为此YOLOv3采用的批量规范化处理[14]如下所示:
(2)
式中:γ、β为尺度因子和平移因子;uB,σB分别为每次mini-batch训练数据的均值和标准差;xi,yi为手势数据输入输出特征;k是为避免除数为0所引入的微小正数。YOLOv3网络在训练阶段先记录每个小批量手势数据的均值和方差,待训练结束后求得手势训练样本的均值和方差期望作为手势预测阶段执行规范化处理的均值和方差,即在手势训练阶段和预测阶段实际上用了不同的数据在进行规范化处理。然而现实场景中在手势预测阶段有时只需要预测一个或很少的手势样本,此时均值与标准差的计算会存在较大偏差。为减小因前后两个阶段手势数据间发生较大偏差对手势识别准确性造成的影响,对YOLOv3中的批量规范化处理进行改进,采用批量再标准化方法进行规范化处理:
(3)
式中:rmax,dmax为最大允许修正值;σ,u为测试阶段均值和标准差估计值。批量再标准化通过引入新的参数r和d保证了YOLOv3网络在手势训练和测试阶段执行规范化处理时数据的等效性,从而提高预测阶段手势识别准确性。
3 实验与结果分析
3.1 数据增强与迁移学习
复杂背景下的手势识别要求YOLOv3网络在训练阶段有丰富的手势样本,为此采用数据增广策略对采集的20种手势进行样本扩充,建立一个复杂背景下的手势库,最终定义的20种标准手势如图4所示。所采用样本扩充方法包括随机裁剪、水平翻转、亮度调整和增加椒盐噪声处理。
在训练深层神经网络时,使用迁移学习和微调方法不仅可以加快网络收敛[14],而且能够提升YOLOv3网络的特征表达能力。训练手势识别模型时先使用National University of Singapore(NUS) 手势数据集NUS Hand Posture Dataset II中提供的10类手势,共2000个手势样本,对Darknet-53网络进行预训练,然后将训练好的网络参数迁移到我们的基础网络中并初始化,获得迁移模型Darknet-53,之后使用自定义的手势集,共5000个手势样本,经过迁移模型Darknet-53提取手势细粒度特征,以达到微调网络参数适应新任务的目的。
图4 20种手势示意
3.2 实验结果及分析
用于实验的电脑配置:Intel i7 6700K处理器、8G运行内存、GTX 1080 显卡。软件在Ubuntu 16.04环境下运行。
3.2.1 算法的准确性和鲁棒性
为便于定量分析,从20种手势中选取POWER-ON、OFF、SWITCH、READY、SHOW共5种手势进行测试,通过图4可以发现POWER-ON和SHOW代表的手势区分特征不明显,这类手势之间极容易出现误识别情况。由6位测试者分别在正常实验环境、强光、暗光以及强光和摇荡的复杂环境下对每种手势测试25次,每次测试手势与相机距离一致,其中对3种复杂环境下的手势识别随机抽帧的效果如图5所示。
手势识别效果主要使用识别率和识别速度2个指标评价,其中识别率通过计算测试阶段正确识别次数与测试次数的比值得到,在4种实验环境下单次手势识别速度0.04 s,识别率如表1所示。
从表1可以看到,正常实验环境下平均手势识别率可以达到97.6%,可以满足实际应用中手势识别的准确性要求,由于POWER-ON和SHOW所代表的这两类手势的特征十分相似,因而对其识别的准确性较低。在强光、暗光以及强光和摇荡的实验环境下的平均识别率均低于97.6%,可见光照变化和图像抖动对手势识别存在严重影响,但就整体识别率而言仍可以达到92.3%以上,说明本文手势识别方法具有较好的鲁棒性。
表1 种实验环境下的手势识别准确率
3.2.2 本文手势识别算法与其它方法的对比
为进一步验证本文方法的有效性,在正常实验室环境下将本文方法与基于HOG特征和SVM分类器[15]、深度学习模型SSD、Fastern-RCNN、YOLOv3的手势识别方法进行比较,结果如表2所示。
表2 手势识别方法对比结果
观察表2可知,通过提取手部HOG特征然后使用SVM进行分类的手势识别方法,由于提取的HOG特征对手势特征信息表征不充分,识别率较低,而且识别速率很难满足对实时性要求高的应用场景,基于深度学习模型Faster-RCNN的手势识别方法识别率高,但同SSD方法一样存在实时性差的局限性。
本文方法通过K均值聚类获得手势锚点框和批量再标准化方法在YOLOv3基础上提高了手势识别的准确性和实时性,能够满足手势应用场景需求。
图5 3种复杂环境下的手势识别随机抽帧效果
4 结 论
本文在目标检测模型YOLOv3的基础上进行手势识别算法设计,融合批量再标准化方法保证训练阶段和测试阶段数据处理的等效性,使用K均值聚类方法获取手势样本锚点框,提高了手势识别的实时性和准确性;建立了一个复杂场景下的手势数据库,共包含20种单手手势,可用于手势识别模型的训练与测试;通过大量实验研究了本文方法在正常环境及强光、暗光、强光和摇荡的复杂场景下的鲁棒性,同时与基于HOG特征和SVM、SSD、Faster-RCNN、YOLOv3的手势识别方法进行识别率和识别速度对比,验证了本文方法的优越性。