闫颢月,王 伟,田 泽
1.西安工程大学 计算机科学学院,西安 710048
2.集成电路与微系统设计航空科技重点实验室,西安 710068
随着人机交互技术的不断发展,人们的生活变得越来越智能化。传统的人机交互方式是通过鼠标、键盘及手柄等设备来实现的接触式人机交互。而随着语音识别、手势识别等技术的发展,非接触式的交互方式已成为目前主流的研究方向之一。手势作为一种肢体语言,具有简单、直接、便捷等特点,通过手势识别实现的人机交互方式可用于车载座舱控制、航空航天、智能家居、智慧教育等领域,是未来人机交互技术的研究热点之一。例如将手势识别用于智能家居领域,那么只需通过简单的手势即可实现对家居的远程控制,给人们的生活带来了极大的便利。但是在实际的应用中,因易受周围环境的影响,使得算法在复杂环境(如光线、背景、距离、肤色)下进行手势识别仍面临诸多困难。
手势有静态和动态之分,动态手势可看作是由一系列相互关联的静态手势组成,因此静态手势识别是研究动态手势及其应用的重要基础,故本文以静态手势识别为研究对象。
迄今为止,手势识别技术已经经历了多个阶段的发展,传统的手势识别通常是基于传感器的方法和基于计算机视觉的方法进行研究。基于传感器的手势识别方法,通常需要借助硬件设备来获取和识别手势信息[1-3],例如可穿戴式数据手套、Leap Motion、Kinect等。这类方法虽然识别速度快,精确度高且不易受到外部复杂环境变化的影响,但需要借助硬件设备才能实现且操作不便捷,硬件设备价格昂贵。基于视觉的手势识别方法主要是通过深度相机、颜色空间(RGB[4]、HSV[5]、YCbCr[6])或肤色检测的方法对手势区域进行分割,然后对分割后的手势通过模板匹配[7]、支持向量机(support vector machine,SVM)[8-9]等方法进行识别,这些方法都是通过人工设计提取特征实现的,容易受到环境因素影响使得模型的鲁棒性差,从而造成手势识别率低的问题。
近年来,随着深度学习的出现,许多学者为了克服人工提取特征过程的复杂性,试图将深度学习的方法用于复杂环境下的手势识别,以期较大程度提升手势识别率。例如,王龙等人[10]通过构建肤色模型对手势区域进行检测,并利用卷积神经网络对手势进行特征提取和识别,但这种基于肤色检测的方法易受复杂环境下的光照、肤色等因素影响,导致算法的泛化能力和鲁棒性较差。Mohanty等人[11]对原始图像直接利用卷积神经网络(convolutional neural network,CNN)进行手势识别,当原图像中存在肤色和背景颜色相近情况时,CNN 不能直接学习到有效的信息,从而导致较高的误检率。随着深度学习中目标检测算法的快速发展,越来越多的研究者发现将目标检测算法用于复杂环境下的手势识别,有利于提高手势识别性能。例如,Chang等人[12]使用Faster R-CNN算法进行手势识别并利用高斯滤波器对图像数据进行预处理。Ding 等人[13]提出将神经网络和SSD(single shot multibox detector)结构结合来提取手势关键点。文献[12-13]虽然可以提高在光线和肤色等影响因素下的手势识别率,但因模型较大且检测时间较长,在复杂环境下难以满足检测的实时性。因此,彭玉青等人[14]通过改进YOLO(you only look once)提出DSN算法对手势进行检测,并通过CNN 进行识别。该算法不仅提高了手势在光照不均匀、背景近肤色影响因素下的识别率,也提高了检测速度,基本实现了对目标的实时检测,但该算法对于复杂环境下的小尺度手势的检测效果较差。而最新提出的YOLOv5 算法相较于其他的YOLO系列算法,识别精度更高,识别速度更快,具有较强的实时性。虽然YOLOv5 模型已在大型公开数据集上达到较好的性能,但是针对特定的检测对象,仍需根据所选数据集的不同特点对网络进行一定的改进以提高模型对特定目标的检测性能。如钱伍等人[15]通过修改主干网络卷积和构建特征融合网络,提高了网络对小目标交通灯的检测能力。虽然较高的手势识别率具有重要的应用,但现有的YOLOv5模型直接用于复杂环境下的手势识别存在以下问题:(1)在识别光照不均匀情况下的手势时,算法的泛化能力和鲁棒性较差;(2)当肤色与复杂背景中的其他物体颜色混淆时,算法易产生较高的误检率;(3)在识别远距离或小尺度的手势时,算法易产生较高的漏检和较低的识别率等缺陷。
针对目前手势识别存在的问题,如在光照不均匀、背景近肤色、复杂环境下手势尺度较小导致手势漏检、误检以及识别率不高等,本文提出了一种基于改进YOLOv5 网络的手势识别方法HD-YOLOv5s。首先采用自适应Gamma 图像增强方法对数据集进行预处理,消除复杂环境下光照变化对手势识别效果的影响;对于复杂环境中的背景干扰问题,将动态选择机制网络中的注意力机制模块SK加入到特征提取网络的末端特征提取层,通过对不同尺度的图像自适应调整卷积核的大小,更有利于提取到有效特征,提高网络的特征提取能力;最后将特征融合网络中的PANet结构更换为调整过的双向特征金字塔结构BiFPN,提高复杂环境中小尺度手势的识别率。
YOLOv5是一种用于目标检测的网络模型,随着网络深度和权重的不断增加,YOLOv5依次分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本。其中YOLOv5s模型最小,且推理速度较快。YOLOv5s 网络结构包括特征提取网络Backbone、特征融合网络Neck、检测网络Prediction三部分。
Backbone 包括CSPDarknet、Focus 和SPP(spatial pyramid pooling)模块,主要作用为提取图像高(深)中低(浅)层的特征。YOLOv5的主干网络为CSPDarknet53,相比于Darknet53网络而言,C3_X模块先将基础层的特征映射划分为两部分,然后通过部分局部跨层融合的方法将它们合并,既解决了网络优化中的梯度信息重复导致的推理计算过高的问题,又使整个网络在减少了计算量的同时可以保证准确率。为了提高网络在特征提取时的效率,Focus 模块将主干网络中输入的特征图进行切片并拼接,压缩网络层数,在保证检测精度的同时,有效降低了网络计算量,提高了检测速度。为了提取出图像中的显著特征,在CSPDarknet53 结构的后面添加了SPP模块,SPP结构可以增大预测框的感受野,解决了目标框和特征图的对齐问题,在提出最重要的上下文特征的同时,又可以保证网络运行的速率。
Neck 的核心为特征金字塔(feature pyramid networks,FPN)[16]和路径聚合网络(path aggregation networks,PAN)[17],主要作用为增强网络模型对不同缩放尺度对象的检测。对于特征图而言,深层的特征图携带有更强的语义特征和较弱的定位信息。而浅层的特征图携带有较强的位置信息和较弱的语义特征。对于FPN 网络而言,其特征图大小分为不同的尺度,可以对不同尺度做融合,FPN 把深层的语义信息传递到浅层,在多个尺度上提高了语义表达。而PAN则相反过来把浅层的位置信息传递到了深层,从而在多个尺度上提高了定位能力。
特征金字塔结构PANet 是在FPN 的基础上引入了自底向上的结构。FPN 通过将深浅层特征信息进行融合以达到提升目标检测的效果,尤其对于小尺度目标检测效果的提升尤为明显。因为目标检测是像素级别的分类浅层特征,多为边缘形状等特征,所以网络浅层特征信息对于目标检测非常重要。自底向上的结构可以充分利用网络浅层特征进行分割,因此PANet在FPN的基础上加了一个自底向上方向的增强,使得深层特征图也可以享受到浅层带来的丰富的位置信息,从而提升大物体的检测效果。
传统神经网络只将网络最深层的特征输入到检测层,导致小目标特征在低层向高层传递中丢失,造成难以识别等检测率低的问题。YOLOv5 采用多尺度检测的方法,将特征图分别通过32 倍下采样、16 倍下采样、8 倍下采样分为三种尺度,通过感受野的不同,实现大输出特征图检测小物体,小输出特征图检测大物体,克服了顶层特征的局限性。
本文提出的手势识别方法HD-YOLOv5s 是以YOLOv5s模型为原型进行改进。HD-YOLOv5s模型的结构如图1 所示。HD-YOLOv5s 模型的各模块结构如图2所示。图1中对比原YOLOv5s模型结构,新增内容用不同颜色标出。
图1 HD-YOLOv5s网络结构Fig.1 HD-YOLOv5s network structure
图2 HD-YOLOv5各模块结构Fig.2 HD-YOLOv5s structure of each module
由于在复杂背景情境下,手势目标可能存在尺寸较小、背景近肤色等问题,从而容易造成识别目标尺度的多样性,因此对于网络模型的特征提取能力要求更高。注意力机制能够提升网络对模型特征的表达能力,强化重要特征,减弱一般特征,故本文采用融合注意力机制的方法增强网络的特征提取能力。
而动态选择机制网络(selective kernel neural network,SKNet)[18]采用了一种自适应选择机制。其优点在于既考虑到了多个卷积核的作用,又使神经元能够根据不同尺寸的输入信息选择合适的卷积核大小,有效地调整了感受野的大小,从而使网络更加关注重要特征的信息。相对而言,传统卷积网络在构建时通常在同一层上仅采用一种卷积核,在进行特征提取时,每层网络的卷积核大小是固定的,导致感受野大小也是确定的,而感受野尺度的大小能够直接影响特征尺度的大小,因此在传统卷积网络中提取到的图像特征较为单一,存在一定的局限性。尽管如Inception结构为了适应多尺度图像,增加多个卷积核,但由于卷积核的权重都相同,训练完成后参数也是固定的,致使所有的多尺度信息被不加区分地全部使用。显然,选择动态选择机制网络更有优势。
SKNet在SENet[19]网络的基础上结合了多分支卷积网络、空洞卷积和组卷积的思想,在关注通道间关系的同时,也考虑到卷积核的作用。SKNet可以使网络在提取特征时更加侧重于对识别有用的通道,并自动选择最优的卷积算子,进一步改善识别性能。SKNet的操作分为分解(split)、融合(fuse)和选择(select)三步,其结构如图3所示。
图3 SKNet网络结构Fig.3 SKNet network structure
具体步骤如下:
(1)分解。给定一个输入特征X∈RH×W×C,进行两个卷积操作,卷积核分别为3×3和5×5,得到两个输出,为了进一步提升效率,这里用dilation=2 的空洞卷积替代5×5 的卷积。
(2)融合。为了实现自适应地调整感受野大小,首先将两个分支结果通过逐元素求和的方法进行融合,表述如下:
其次,对整合后的信息使用全局池化操作,获取全局信息,如下式所示:
式中,Fgp表示全局平均池化操作函数,sc表示第c个通道的输出,Uc(i,j)表示第c个通道的坐标,H为特征图的高度,W为特征图的宽度,其中i、j分别为特征图高度和宽度的坐标值。
最后,通过全连接层对sc进行降维操作得到z,公式如下:
式中,Ffc表示全连接操作函数,δ表示非线性激活函数,β为BN层,d表示用缩减比r控制全连接层,L为d的最小值,其中W∈Rd×c,z∈Rd×1。
(3)选取。首先生成通道的注意力,然后用来自适应挑选不同规模的信息,表述如下:
式中,A,B∈Rc×d,ac,bc分别表示对应的注意力向量,其中Ac表示第c行,ac表示a的第c个元素。
最后,将两分支输出的特征进行加权融合得到Vc,公式如下:
其中,V=[V1,V2,…,Vc],Vc∈RH×W。
SKNet 是一个轻量级嵌入式的模块,由多个SK(selective kernel)卷积单元组成,本文将SK卷积层加入到HD-YOLOv5s 主干网络的末端C3 模块后,使网络更关注提取到有效特征。具体过程如下:设置初始特征图大小为640×640×3,通道放缩系数为0.5,在经过了1 次Focus 操作和4 次CBS 操作后末端C3 模块的输出特征图大小为20×20×512,将其作为SK 模块的输入。首先通过分组卷积的方式将特征图分别通过3×3和5×5的卷积核输出两个通道为512 的不同尺度的特征图和。其次将两个分支结果进行逐元素加,经过全局平均池化操作后输出大小为1×1×512 的特征图。然后经过两个全连接层进行降维和升维操作后得到大小为1×1×d的特征图,再经过softmax 激活函数进行动态的自适应调整,自动选择出最优的卷积算子a和b,分别用来控制两条分支的感受野特征图。最后两分支进行加权融合计算后得到本层网络的输出结果,使网络更加关注对识别有用的手势信息。文献[20-21]分别将SKNet 加入到YOLOv3 和SSD网络中,提高了网络的特征提取能力,网络的平均检测精度值(mAP)也都有不同程度的提升。因此将SKNet添加到本文所提算法HD-YOLOv5s 中,以此来提高网络的检测性能。
本文的识别目标为人的手部姿势,存在目标较小、尺寸多样的问题。原始的YOLOv5s网络模型使用特征金字塔网络PANet 结构来解决多尺度输入的问题。但由于输入的手势区域特征分辨率不同,PANet在融合不同的输入特征时,通常会不加区分地进行融合,对于小目标而言,仍然会出现误检和漏检的情况。为了解决这一问题,本文将采用调整过的加权双向特征金字塔网络替换PANet 进行特征融合,进一步提高模型的检测效率,提升网络对不同尺度手势目标的检测效果。
谷歌大脑团队在EfficientDet 目标检测算法中提出了BiFPN[22],其主要思想可以概括为:有效的双向跨尺度连接和加权特征融合。BiFPN 的特征融合方法是将双向特征金字塔提取的特征加权后按像素求和。而原始的YOLOv5s算法则采取按通道维度进行拼接的方式。因此本文将双向特征金字塔BiFPN引入到YOLOv5s模型的特征融合网络中,采用按通道维度拼接方式进行特征融合,并利用跨层级联的方式,提高网络特征融合能力。原始的YOLOv5s算法的特征融合网络如图4所示。
图4 原始YOLOv5s算法的特征融合网络Fig.4 Original YOLOv5s algorithm for feature fusion network
图中Ci(i=2~5)表示前馈网络提取到的多尺度特征。F表示C3_3算子,Pi表示输出特征,2×指的是通过双线性插值操作来实现两倍的上采样,0.5×表示下采样。将主干网络提取到的不同尺度的特征{C2,C3,C4,C5}输入到特征融合网络中,设置原图分辨率为640×640,经过双向跨尺度连接和加权特征融合后,得到三个不同尺度的特征{P3,P4,P5}作为YOLOv5s 的检测层,分辨率分别为20×20、40×40、80×80。
具体改进如下:
(1)为了提高小目标的识别准确率,本文提出了一种充分利用低层级特征的特征融合方法。该方法充分利用P2特征,在特征融合中加入了高分辨率P2特征的信息。将用于检测小目标特征的P3与前一层级的特征C2 建立联系,缓解由于网络下采样限制而间接导致的F3 特征的缺失,从而进一步提高网络对一部分小目标的监督能力。
(2)为了提高模型的效率,在网络进行自顶向下和自底向上的双向特征融合的同时,在同一尺度的输入和输出节点之间增加跨尺度横向连接,这种跨层级的连接方式能够将表层的细节信息、边缘信息、轮廓信息等整合到深层网络中,从而在不增加计算量的情况下,实现对目标边缘的精确回归,减少了网络因层级过多而造成的特征丢失。改进后的特征融合网络结构如图5所示。
图5 本文改进的特征融合网络Fig.5 Improved feature fusion network in this paper
图5中红色虚线表示跨层级联,跨层级联表示在同一尺度的输入节点到输出节点之间增加一个跳跃连接,因为它们在相同层,所以可以在不增加太多计算成本的同时,融合更多的特征。如图5 所示,为了减少计算量和缩短推理时间,本文并未在低层级的P2 特征上采用跨层加权融合,只是在获取用于最终检测的P3和P4特征时用了跨层加权融合,只是充分利用低层级的P2 特征,将高分辨率的特征信息引入到特征融合中,提高了检测模型在小目标检测上的效果,有效提高了主干网络在不同尺度手势区域目标检测中的学习能力。
加权特征融合部分使用快速归一化融合公式,如式(7)所示,其归一化过程通过每个权值与全部权值加和得到,且归一化权重的值在[0,1]之间,提高了GPU的运行速度,减少了额外的时间成本。
在手势数据集的采集过程中常常存在光照不均匀或背景近肤色等现象,该现象会导致图片质量下降,影响模型对手势的识别效果,从而造成漏检和误检的问题。为了解决上述问题,本文在原网络的基础上增加了一种自适应调节对比度的图像增强方法,即基于Retinex(Retina and Cortex)理论改进的自适应Gamma增强算法[23]。该算法的特点在于处理光照不均匀问题时具有较好的对比度、自然性和时效性。对于目前常用的图像增强算法如直方图均衡化、Retinex算法等,在进行图像增强时会出现过度增强、颜色失真、光晕等问题[24]。基于Retinex 的自适应Gamma 增强算法可以根据图像区域的明暗程度进行自适应的矫正,通过降低光照过强区域的图像亮度,提高光照过低区域的图像亮度,有效减弱图像处理过程中的过度增强问题,使图像具有较好的对比度。其次,该算法通过自适应矫正处理后保留了更多图像的细节信息,可以减少图像的颜色失真和光晕现象。此外,该算法在处理光照不均匀图像时能够根据光照分量的分布特性自适应地调整Gamma 参数,节省了人工设定Gamma值的时间。该图像增强算法的主要步骤为:
(1)利用Retinex 理论将图像的亮度分量和反射分量分离。
式中,Rc(x,y)表示被分离后的反射分量,Ic(x,y)表示RGB各个通道的亮度,L(x,y)表示图像的亮度分量。
(2)利用自适应Gamma 校正算法对亮度分量进行矫正。
式中,Len(x,y)表示通过矫正后的亮度分量,γ(x,y)表示系数矩阵,表示亮度分量的累积分布函数,Pω(l)表示各个亮度值的权值分布函数:
式中,P(l)表示亮度分量的概率密度函数,nl表示对应的亮度包含的像素数,np表示亮度分量所含的像素总数。
(3)通过融合Len(x,y)和Rc(x,y)得到最终增强后的图像,恢复原来图像的颜色和细节。
通过矫正后的实验对比图如图6所示。
图6 通过Gamma矫正前后的对比图Fig.6 Pictures before and after correction by Gamma
实验结果表明,通过对光照不均匀的图像进行校正处理,不仅使预处理后的图像清晰度得到了较大的提高,同时也增加了数据集中图像的光照多样性。将数据集进行光照增强预处理,在提高手势图像质量的同时,也提高了手势识别的准确率和召回率。增加该图像增强算法的HD-YOLOv5s手势识别方法流程图如图7所示。
图7 HD-YOLOv5s手势识别方法流程图Fig.7 Flowchart of HD-YOLOv5s hand gesture recognition method
本文采用NUS-II数据集[9],共有2 750个样本,分为10类。数据集是通过在各种室内和室外复杂环境下对40位不同手型和种族的实验人员采集而成的。该数据集中的手势图像具有不同的大小和尺寸,且肤色各异,背景复杂,符合本文的研究标准。数据集部分样例如图8所示。
图8 NUS-II数据集样例Fig.8 Sample in NUS-II dataset
自制手势数据集采用红外摄像头进行拍摄,在不同距离不同光照条件下分别对5 名实验人员进行手势采集,每名人员比出7种不同的手势,分别为数字手势0~5以及手势ok。为了获得更多的数据,本文采用数据增强的方法对采集的图片进行翻转、缩放、移位等操作,对数据集进行扩充。扩充后的数据集,每个类有300 个样本,总共2 100张图片。
本文采用的手势数据集均采用VOC 数据集格式,自制手势数据集采用labelImage 标注工具对格式为JPEGImages 的图片进行人工标注,并将数据集中的2 100 个样本按照9∶1 的比例划分为训练集和测试集。自制手势数据集的示例如图9所示。
图9 自制数据集样例Fig.9 Sample in self-made dataset
为了更好地呈现对比实验前后的模型检测性能,采用目前主流的目标检测算法的验证指标进行实验。本文采用的具体检测指标如下:
准确率(Precision,P):模型预测的所有目标中,预测正确的比例。
召回率(Recall,R):所有真实目标中,模型预测正确的目标比例。
式中,TP(true positives)表示手势图像的正确识别数目;FP(false positives)表示错误辨识手势图像的数目;FN(false negatives)表示漏检的手势图像数目。
平均精度(average precision,AP):数据集中单一类别的精度值,它的取值范围是0 到1。因为使用11 点插值采样法会使模型在精度方面有损失,所以本文采用VOC 2010以后更改的AP值计算方法,定义如下:
式中,AP 是对P-R(Precision-Recall)曲线上的Precision值求均值。P-R曲线则是以召回率值为横轴,准确率值为纵轴,在坐标轴上绘制出的一条曲线。首先对P-R曲线进行平滑处理,即取所有真实的Recall 值都作为阈值,当召回率r′大于每一个阈值时,都会对应得到一个最大的Precision值为Psmooth(r),然后用积分的方式计算平滑曲线下方的面积作为最终的AP值。
平均精度均值(mean average precision,mAP):数据集中所有类别AP 值的平均值,又称识别率。计算公式如式(19)所示,其中k为识别目标的总类别数。
本文的所有对比实验均在操作系统Windows10 下进行,硬件设备为GPU NVIDIA GTX970。实验环境配置:深度学习框架为PyTorch 1.10.0;CUDA的版本号为CUDA10.2;cuDNN 的版本号为cuDNN8.2.4。实验参数配置:学习率(learning rate)设置为0.01,可以更快地使局部达到收敛;批次大小设置为16,使得训练速度较快。
3.4.1 对比实验
为了解决复杂环境下小尺度手势识别率低的问题,本文对YOLOv5s 模型的特征融合网络做了改进,对当前主流特征融合网络FPN、PANet、BiFPN的精度值和参数量进行比较,并选出检测结果最优的多尺度融合网络。如表1所示,FPN只进行自顶向下的单方向特征融合,检测精度不高;PANet 在FPN 后面添加了一个自底向上的路径,融合了低层特征的强定位信息,检测进度提升明显;BiFPN网络又在PANet的基础上增加了双向跨尺度连接,虽然参数量M相比于PANet的参数量提高了13.2%,但计算量FLOPs 几乎无增长,且mAP 值增长了1.4 个百分点,因此增加跨尺度连接使网络在几乎不增加计算成本的情况下,融合了更多的特征,检测精度相比于其他网络更优。
表1 特征融合网络性能比较Table 1 Performance comparison of feature fusion networks
为了更好地展现出本文改进模型的优势,分别与目标检测算法中较为经典的两阶段模型Faster R-CNN和一阶段模型SSD、YOLOv3 以及YOLOv5s 进行对照,模型统一使用NUS-II数据集进行训练和验证,如表2所示。
表2 主流目标检测算法与本文方法对比Table 2 Comparison of mainstream target detection algorithms with methods in this paper
由表2 可知,Faster R-CNN、SSD 和YOLOv3 模型大小相当于HD-YOLOv5s 模型大小的6~10 倍,参数量相当于HD-YOLOv5s 的3~10 倍,因此HD-YOLOv5s 相较于这些模型而言属于轻量级网络。HD-YOLOv5s模型相比于YOLOv5s模型大小相差不大,虽然HD-YOLOv5s在原YOLOv5s 的特征融合网络中添加了特征层,导致模型计算量增加,推理时间比YOLOv5s 慢了1.44 ms,但检测精度比YOLOv5s 提高了3.6 个百分点。HDYOLOv5s 在检测精度和推理速度方面都优于Faster R-CNN、SSD 和YOLOv3 模型,且对单帧照片的检测时间仅需0.01~0.02 s,能够满足手势识别的实时性要求。
为了充分验证本文提出的手势识别方法的优越性,将本文方法与其他手势识别方法在公共数据集NUS-II上进行比较,实验结果如表3所示。
表3 主流手势识别算法与本文方法对比Table 3 Comparison of mainstream gesture recognition algorithms with methods in this paper
由表3可知,文献[9]采用贝叶斯注意力模型提取手势特征(颜色、形状和纹理),并使用支持向量机进行分类,识别率为93.7%。文献[25]利用肤色模型将手势区域分割出来,然后用卷积神经网络对手势区域进行识别,识别率为95.6%。文献[26]提出了基于深度卷积神经网络的新方法,将图像调整到统一大小后,忽略分割和检测阶段,直接对手势进行分类,识别率为96.2%。文献[27]提出了一种基于双通道卷积神经网络(DC-CNN)的手势识别方法,它将手势图像和边缘图像分别输入两个通道中,经池化操作后在全连接层融合特征以提取更深的分类信息,识别率为98.0%。基于以上结果,可以得出以下结论。
(1)文献[9,25]通过手势分割和肤色检测的方法,易受环境因素的影响,导致复杂环境下的手势识别率不高,而本文提出的方法通过添加图像增强预处理和在特征提取网络中添加SKNet注意力模块,提高了网络的特征提取能力,增强了模型在复杂环境下的泛化能力和鲁棒性,提高了手势识别率。
(2)文献[26-27]分别通过直接分类和增加网络层次的方法对手势进行识别,利用这种结构可以削弱光照不均匀及复杂背景的影响,提高模型对复杂环境的适应性,但对于小尺度手势的识别效果一般。而本文算法通过构建新型的特征融合网络,提高了模型对远距离小尺度手势的识别能力,进一步提高了手势识别率。
3.4.2 消融实验
为了验证各改进模块在YOLOv5s网络模型中的作用,下面将基于YOLOv5s模型进行消融实验,并对改进的不同模型性能进行对比。如表4表示,其中“—”代表不使用,“√”代表使用。
从表4中可以看出,本文改进的网络模型HD-YOLOv5s的mAP 值达到了99.5%。改进模型1 是在原主干提取网络中加入注意力机制SKNet,参数量M并无大幅增长,mAP相较于原模型提高了1.5个百分点,由于SKNet既是一个轻量级嵌入式模块,又在自动选择最优算子后产生了更合理的权重系数,在参数量稳定的情况下,提高了网络的特征提取能力;改进模型2是在原特征融合网络中引入新型的双向特征融合网络BiFPN,对比表1中具有三层融合特征层的BiFPN,引入低特征层后的BiFPN的融合能力更强,其充分利用低层级的P2特征,提高了检测模型在小目标检测上的效果,对比检测层为4的改进模型3,改进模型2并没有将低特征层加入双向特征融合中,mAP 下降了0.3 个百分点,但计算量减小了0.5%,参数量减少了4.9%,故为了减少计算量和缩短推理时间,本文并未在低层级的P2 特征上采用双向特征融合;改进模型4是将注意力机制和改进的特征融合模块同时加入网络中,与改进模型2 相比,计算量和参数量几乎无增长,但mAP 增长了1.3 个百分点,与原模型相比,mAP 增长了3.4 个百分点;改进后的模型HD-YOLOv5 在输入端对数据集进行了Gamma 图像增强预处理,mAP值达到了99.5%,相比原YOLOv5s网络提高了3.6个百分点。
表4 各改进模型的性能比较Table 4 Performance comparison of each improved model
如图10 所示,分别为改进前后的各模型在自制训练集上的训练结果曲线,其中设置迭代次数为200,学习率为0.01,动量因子为0.937。图(a)中横坐标E表示训练轮次,纵坐标表示IOU为0.5时的mAP值,可以看出,改进后模型的性能均比改进前的模型更好。图(b)中改进后的HD-YOLOv5s 模型相比于YOLOv5 模型,收敛速度更快,Loss 值更小,说明改进后的模型网络的收敛能力更强。
图10 各模型训练曲线Fig.10 Training curves for each model
3.4.3 检测结果分析
本文进行训练的数据集为公共数据集NUS-II,验证结果如表5 所示。NUS-II 数据集虽然背景具有多样性和复杂性,但对于本文而言,该数据集中不同光照条件下的手势图像较少。为了验证改进方法的泛化能力及鲁棒性,本文在具有丰富光照强度对比的自制数据集上也进行了验证实验,验证结果如表6所示。可以得出HD-YOLOv5s 在自制数据集上识别率也有较大的提升。由此可以证明,本文改进的算法对于各种复杂背景下的干扰,都可以取得较好的识别效果和更好的鲁棒性。
表5 不同手势类别在NUS-II测试集上的检测效果Table 5 Detection effects of different gesture categories on NUS-II test set
表6 不同手势类别在自制测试集上的检测效果Table 6 Detection effects of different gesture categories on homemade test set
为了验证改进模型HD-YOLOv5s 的可行性,在测试集中选取部分手势图片进行测试。如图11 为模型YOLOv5s和模型HD-YOLOv5s在不同光照条件下的手势识别效果对比图,其中图(a)和(b)分别表示在强光和弱光环境下对手势的识别,图(c)表示在光照不均匀环境下对手势的识别,左图均为YOLOv5s 模型的识别效果图,右图均为HD-YOLOv5s 模型的识别效果图。可以看出改进后的模型HD-YOLOv5s 在不同光照环境下对手势图像的识别率均有不同程度的提升,图(c)中左图将手势ok和窗沿分别误检为手势5和手势0,右图则识别正常且识别精度高于左图。如图12为改进前后模型在背景近肤色情况下对手势的识别效果对比图,其中图(a)和图(b)分别表示在简单和复杂背景下对手势的识别,图(a)中通过左右图对比可知,在简单背景下改进前后模型的识别效果相差不大,图(b)中在复杂背景下,右图的识别率明显高于左图,可知改进后的模型HDYOLOv5s对肤色近背景问题下的手势识别率有明显的提升作用。如图13为改进前后模型在复杂环境下对小尺度手势的识别效果,其中图(a)、(b)、(c)分别表示在不同的复杂场景下对距离较远的小尺度手势的检测,尤其在图(a)中光照不均匀且背景复杂情况下,改进后的模型对小尺度手势的识别率提升效果较为明显。
图11 不同光照条件下的识别效果Fig.11 Recognition effect under different lighting conditions
图12 背景近肤色情况下的识别效果Fig.12 Recognition effect in case of near-skin color background
图13 复杂环境下小尺度手势的识别效果Fig.13 Recognition effect of small-scale gestures in complex environment
综上所述,改进后的模型HD-YOLOv5s 相较于原模型YOLOv5s 在识别性能方面表现更优,YOLOv5s 模型在光照不均匀、背景近肤色等复杂环境下的识别性能不佳,容易出现误检等问题,并且对远距离小尺度手势的识别效果较差。而HD-YOLOv5s 模型能够准确识别复杂环境下的手势,且识别率较高,并改善了原模型YOLOv5s对小尺度手势识别率低的问题。改进后模型的性能提升,并不是具体到某一方法的改进,而是通过模型整体的特征提取能力和特征融合能力的提高使模型的识别性能得到提升。
本文提出手势识别方法HD-YOLOv5s,使得手势识别在复杂场景下也能获得较高的准确率,进一步促进了人机交互技术的发展。首先采用基于Retinex理论的自适应Gamma 图像增强方法对数据集进行预处理;其次在特征提取网络中引入自适应卷积注意力机制模型SKNet,提高网络的特征提取能力;最后将调整后的BiFPN结构引入特征融合网络中,提高了网络对小目标的识别率。
实验结果表明,HD-YOLOv5s 的mAP 值达到了99.5%,与Faster R-CNN、SSD 和YOLOv3 模型相比,本文方法对单个照片的检测时间仅需0.01~0.02 s,模型较小,检测速度较快,能够满足复杂场景下手势识别的实时性要求。与原YOLOV5s 模型相比,模型精准度提升了3.6个百分点,且相比于目前主流的手势识别算法,具有较好的泛化能力和鲁棒性。最后,分别在自制数据集和具有复杂背景的公共数据集NUS-II 上做验证实验,识别率达到99.5%和98.9%。结合上述所言,本文改进的网络模型对于光照不均匀、背景近肤色以及手势尺度较小等问题,都可以取得较好的识别效果和更好的鲁棒性,且满足复杂场景下手势识别的实时性要求。
高效的静态手势识别是研究动态手势及其应用的重要基础,实验证明本文方法在复杂环境下具有较好的鲁棒性和实时性。未来计划将本文方法用于具有复杂背景变化的动态手势追踪中,尝试解决其识别率差的问题,使本文方法能够在人机交互领域更具有实用性。