一种改进YOLOv3的手势识别算法

2021-01-26 05:50睢丙东张湃王晓君
河北科技大学学报 2021年1期
关键词:目标检测

睢丙东 张湃 王晓君

摘 要:为了解决YOLOv3算法在手势识别中存在识别精度低及易受光照条件影响的问题,提出了一种改进的YOLOv3手势识别算法。首先,在原来3个检测尺度上新增加1个更小的检测尺度,提高对小目标的检测能力;其次,以DIoU代替原来的均方差损失函数作为坐标误差损失函数,用改进后的Focal损失函数作为边界框置信度损失函数,目标分类损失函数以交叉熵作为损失函数。结果表明,将改进的YOLOv3手势识别算法用于手势检测中,mAP指标达到90.38%,较改进前提升了6.62%,FPS也提升了近2倍。采用改进的YOLOv3方法训练得到的新模型,识别手势精度更高,检测速度更快,整体识别效率大幅提升,平衡了简单样本和困难样本的损失权重,有效提高了模型的训练质量和泛化能力。

关键词:计算机神经网络;YOLOv3;目标检测;手势识别;DIoU;Focal损失函数

中图分类号:TP391.9 文献标识码:A

文章编号:1008-1542(2021)01-0022-08

YOLOv3是一种多目标检测算法[1],具有识别速度快、准确率高等优点,广泛用于目标检测中[2]。手作为信息表达的重要组成部分,近年来成为人们研究的重点[3]。随着人工智能技术的发展,越来越多的学者利用神经网络进行手势识别[4]。其中YOLOv3以其出色的检测性能,被应用在手势检测领域。例如:罗小权等[5]采用改进的K-means聚类算法,提高了YOLOv3对火灾的检测能力;陈俊松等[6]利用改进的YOLOv3特征融合方法,实现了对筷子毛刺的检测;张强[7]提出了基于YOLOv3的实时人手检测方法,通过改进anchor参数,快速检测出测试者摆出的手势;毛腾飞等[8]通过改进的YOLOv3检测尺度,实现了对人手功能的实时检测。

本文提出一种基于改进YOLOv3的手势识别算法,通过增加YOLOv3的检测尺度、改进位置损失函数和边界框置信度损失函数,得到检测效果更好的算法,以解决手势识别的相关问题。

1 YOLOv3算法介绍

1.1 YOLOv3模型

YOLOv3由卷积层(convolution layers)、批标准化层(batch normalization, BN)、激活层(leaky relu)组成[9],引入残差块结构,在很大程度上提升了网络训练速度和效率[10]。YOLOv3主体网络为darknet-53,相比于ResNet-152和ResNet-101,具有更出色的特征提取能力。采用该神经网络对输入图像进行特征提取,利用特征金字塔(feature pyramid networks,FPN)进行融合[11],采用步长为2的卷积进行降采样,分别在32,16,8倍降采样处检测目标。

FPN架构如图1所示。将图像输入到网络模型后进行卷积操作,为了使Layer4和Layer2具有相同的尺度,对Layer2降低维度,接着对Layer4进行上采样操作,然后将这2层的特征进行融合[12]。将融合后的结果输入到Layer5中,这样就会获得一条更具表达力的语义信息。YOLOv3网络按照FPN架构融合了浅层和深层的特征信息[13],可以获得更多图片特征,检测效果更好。

运用该模型检测手势时,首先将手势图像按13×13,26×26,52×52网格大小进行划分,每个网格分配3个候选框,然后计算候选框与真值框的重合程度及置信度大小,最后对比候选框的得分值,分值最高的候选框即为模型预测手势结果。

1.2 损失函数

YOLOv3算法的损失函数[14]由3部分组成:均方差(mean square error, MSE)损失函数作为坐标误差损失函数,交叉熵损失函数作为置信度和类别的损失函数,损失函数如式(1)所示:

2 改进的YOLOv3算法

2.1 增加模型检测尺度

针对人手大小不一会导致检测效果不佳的问题,在原来3个检测尺度基础上,结合FPN思想增加至4个检测尺度,以此提高小目标人手的检测能力。改进后的YOLOv3检测尺度分别为13×13,26×26,52×52,104×104。

改进后的YOLOv3网络结构如图2所示,图2中粗体标注的为104×104检测尺度。在YOLOv3网络中通过多卷积操作后,将52×52的特征层上采样操作变换成104×104,使之与上一层具有相同的特征尺寸,然后将该层与104×104特征层进行融合,得到一个表达能力更强的语义信息。

改进后的YOLOv3网络有4个检测尺度,每个检测尺度均融合了低层细节信息和深層语义信息,同时可以进行单独预测,因此改进后的检测网络具有更为出色的检测能力。

2.2 改进损失函数

在目标检测中常用IoU(intersection over union)衡量预测框和真实框的重合程度[16]。一般认为,该值越大,两框的重合程度越好,算法检测精度越高,反之则越差[17]。

经大量实验发现,以均方误差作为坐标误差损失函数存在以下缺点:一是IoU越大,并不一定代表预测框与真值框重合程度越好,通过图3可以看出IoU相同时,2个框的重合程度并不一样;二是损失函数没有将检测目标和锚框之间的中心距离、重叠率及尺度考虑进去。

2.2.1 改进坐标误差损失函数

针对以上不足,本文采用DIoU作为坐标误差损失函数[18],DIoU将预测框和真值框之间的距离、重叠率以及尺度均加以考虑。DIoU计算过程如下:

式中:R1,R2分别代表预测框中心和真值框中心;L为R1和R2间的欧氏距离;c,Ag,Ap,I分别代表预测框和真值框的最小闭包区域的对角线距离、真值框的面积、预测框的面积及重叠面积。

DIoU损失的计算如式(4)所示:

DIoU作为损失函数,一是可以直接最小化预测框和真值框之间的归一化距离,使收敛速度更快;二是当预测框与真值框不重叠时,仍然可以为预测框提供移动方向;三是2个框在水平和垂直方向上时,DIoU回归速度非常快;四是在非极大值抑制评估中,DIoU可以代替IoU,使NMS得到更加合理及有效的结果。

2.2.2 改进置信度损失函数

为了解决样本不平衡问题,LIN等[19]提出了Focal损失函数。为进一步提高YOLOv3的检测精度,本文采用改进的Focal损失函数作为置信度损失函数。Focal损失函数能够在模型训练过程中通过增大困难样本权重的方法,有效解决样本不平衡问题[20],使训练模型具有更佳的检测效果。Focal损失函数如式(5)所示:

式中:γ为聚焦参数,是一个大于0的超参数;αt为平衡参数,也是一个超参数,用来控制正负样本对总损失的权重,平衡多类别样本数量;pt为标签预测概率。

式(5)中αt和γ这2个参数一般由人为规定,但是如果设定的数值不贴合数据集,训练效果反而不好[21]。针对这一问题,本文根据数据集确定该参数,确定过程如下。

1) 确定平衡参数αt

本文样本有5个类别,为了对困难样本加大损失函数权重,同时减小容易样本的损失权重,根据各类样本数量来缩放分类损失大小。计算思路为权重设定的目标要使任意2个类别样本数量和这2个类别的权重成反比,如式(6)所示:

式中:N为样本类别总数;mi为第i类样本数量;第i类的平衡参数αi等于类别权重值的大小。这样平衡参数能够较好地均衡样本数量大小对应的损失值。

2) 确定聚焦参数γ

通过大量实验发现,在模型训练初期,使用Focal损失函数的模型训练精度低于使用交叉熵损失函数时的精度[19]。为此本文采用每N轮训练后调整1次γ值的方法,调整方式如式(7)所示:

综上所述,本文以DIoU代替原来的均方差损失函数作为坐标误差损失函数,用改进后的Focal损失函数作为边界框置信度损失函数,目标分类损失函数以交叉熵作为损失函数。因此,YOLOv3损失函数如式(8)所示:

式中CE表示交叉熵损失函数。DIoU损失作为目标框坐标回归损失,将预测框和真值框之间的距离、重叠率以及尺度均考虑进去,在很大程度上提高了目标框回归速度。在边界框置信度交叉熵损失函数的基础上加入焦点损失函数,显著平衡了简单样本和困难样本的损失权重,有效提高了模型的训练质量和泛化能力。

3 实验及结果

3.1 數据集

为了使数据集更加丰富,本文在尽可能多的自然场景下采集手势图像,手势1到手势5各自采集500张图片,采用Labelimg工具标记手势目标制作数据集[23]。为了充分利用样本图片,对图片进行30°,60°,90°,180°,270°旋转、垂直和水平翻转,并以0.4,0.6,0.8的因子缩小图片[24]。对图片随机增强亮度,增强范围为0.1~2,并对样本图片适当增加椒盐噪声,对样本数据增强后获得14 500张训练图片。

3.2 实验平台与评价指标

采用CPU为英特尔i7-7700HQ、英伟达GTX1060显卡训练模型,交互语言为python3.6,使用CUDA9.0和CUDNN7.4加速训练过程。在训练网络模型阶段,使用的部分参数batch size为16,图片大小为416×416,迭代轮数20 000,IoU阈值为0.5。

目标检测中常用以下指标衡量模型训练效果:Precision(查准率)、Recall(召回率)、AP(平均精度)和mAP(平均精度均值)[25],如式(9)—式(12)所示:

式中:TP(ture positive)表示分类器正确预测的正样本;FN(false negative)表示分类器错误预测的负样本;FP(false positive)表示分类器错误预测的正样本;n为采样P-R对,k为样本类别数(本文为5)。

3.3 结果分析

采用改进后的YOLOv3算法与传统YOLOv3,SSD300,Faster R-CNN经典多尺度目标检测算法[26]对每个类别AP值进行对比,结果如表1所示。同时,对比各算法的帧率(frames per second,FPS)、mAP和达到Loss阈值的迭代次数,结果如表2所示,各算法检测手势效果如图4所示。

由表1和表2分析可知,改进后的YOLOv3算法mAP能够达到90.38%,相对于传统YOLOv3,SSD300,Faster R-CNN分别提高了6.62%,11.18%和0.28%,并且每个类别的检测精度均大于传统YOLOv3和SSD300算法。从检测速度上分析,改进后的YOLOv3算法FPS比改进前提升近2倍,但和SSD300相比还有不少差距。分析迭代次数可知,改进后的算法在训练时损失函数收敛速度更快。

从图4可以看出,改进后的算法在检测效果和检测精度上表现更加出色,因为手势1和手势2可能存在遮挡问题,导致个别误检,但是整体识别效率有了大幅度提升,模型具有较高的泛化能力和鲁棒性。

4 结 语

1)本文针对手势检测中存在精度和速度无法兼顾的问题,以YOLOv3为检测框架,在原来检测尺度上增加一个检测尺度,提高小目标的检测能力。采用DIoU作为坐标误差损失函数,并用改进后的Focal损失函数代替交叉熵损失函数作为边界框置信度损失函数。

2)实验结果表明,本文改进的YOLOv3模型在检测精度上有了明显提升,并且检测速度几乎相同,能够有效识别检测者的手势。但是增加一个检测尺度后,模型的训练速度会变慢,并且当真值框和目标框距离过远时,DIoU无法为候选框提供移动方向。因此,未来将深入探究如何在增加检测尺度时不减慢模型的训练速度,同时尝试采用CIoU代替DIoU作为损失函数。

參考文献/Reference:

[1] LIU Jun, WANG Xuewei. Early recognition of tomato gray leaf spot disease based on MobileNetv2-YOLOv3 model[J]. Plant Methods,2020, 16(11):612-231.

[2] YU Yuan, REN Jinsheng, ZHANG Qi, et al. Research on tire marking point completeness evaluation based on K-means clustering image segmentation[J]. Sensor, 2020, 20(17):4687-4697.

[3] WILLIAMS E H,LAURA B, DOWNING P E,et al. Examining the value of body gestures in social reward contexts[J]. Neurolmage,2020, 222:117276-117286.

[4] HU Wei, ZHU Quanxin. Moment exponential stability of stochastic delay systems with delayed impulse effects at random times and applications in the stabilisation of stochastic neural networks[J].International Journal of Control, 2020, 93(10):2505-2515.

[5] 罗小权,潘善亮.改进YOLOv3的火灾检测方法[J].计算机工程与应用2020,56(17):187-196.

LUO Xiaoquan, PAN Shanliang. Improved YOLOv3 fire detection method[J].Computer Engineering and Applications, 2020, 56(17):187-196.

[6] 陈俊松,何自芬,张印辉.改进YOLOv3算法的筷子毛刺缺陷检测方法[J].食品与机械,2020,36(3):133-138.

CHEN Junsong,HE Zifen,ZHANG Yinhui.Defect detection method of chopsticksbased on improved YOLOv3 algorithm[J].Food & Machinery,2020,36(3):133-138.

[7] 张强. 基于改进YOLOv3的手势识别方法研究[D].合肥:合肥工业大学,2019.

ZHANG Qiang.Hand Gesture Recognition Approach Research Basedon Improved YOLOv3[D].Hefei:Hefei University of Technology,2019.

[8] 毛腾飞,赵曙光.基于改进YOLOv3的实时人手检测算法[J].现代计算机,2020(5):57-60.

MAO Tengfei,ZHAO Shuguang.Real-time hand detection algorithm based on improved YOLOv3[J].Modern Computer,2020(5):57-60.

[9] WILLIAMS A S, ORTEGA F R. Understanding multimodal user gesture and speech behavior for object manipulation in augmented reality using elicitation[J]. IEEE Transactions on Visualization and Computer Graphics, 2020,doi:10.1109/TVCG.2020.3023566.

[10]THOMSEN J L D, MARTY A P, SHIN W, et al. Barriers and aids to routine neuromuscular monitoring and consistent reversal practice:A qualitative study[J]. Acta Anaesthesiologica Scandinaviva, 2020, 64(8):1089-1099.

[11]LI Qiaoliang, LI Shiyu, LIU Xinyu, et al. FecalNet: Automated detection of visible components in human feces using deep learning[J]. Medical Physics, 2020, 47(9):4212-4222.

[12]LI Qiaoliang, YU Zhigang, QI Tao, et al. Inspection of visible components in urine based on deep learning[J]. Medical Physics, 2020, 47(7):2937-2949.

[13]NURI E O, KAPLAN G, ERDEM F, et al. Tree extraction from multi-scale UAV images using mask R-CNN with FPN[J]. Remote Sensing Letters, 2020, 11(9):847-856.

[14]LUO Ze, YU Huiling, ZHANG Yizhuo. Pine cone detection using boundary equilibrium generative adversarial networks and improved YOLOv3 model[J]. Sensors, 2020, 20(16):doi:10.3390/s20164430.

[15]ZHANG Xiaoguo, GAO Ye, WANG Huiqing, et al. Improve YOLOv3 using dilated spatial pyramid module for multi-scale object detection[J].International Journal of Advanced Robotic Systems, 2020, 17(4):doi:10.1177/1729881420936062.

[16]KUZNETSOVA A, MALEVA T, VLADIMIR S. Using YOLOv3 algorithm with pre- and post-processing for apple detection in fruit-harvesting robot[J]. Agronomy, 2020, 10(7):doi:10.3390/agronomy10071016.

[17]HAN Fenglei, YAO Jingzheng, ZHU Haitao, et al. Underwater image processing and object detection based on deep CNN method[J]. Journal of Sensors, 2020,doi:10.1155/2020/6707328.

[18]WU Xiongwei, SAGOO D, ZHANG Daoxin, et al. Single-shot bidirectional pyramid networks for high-quality object detection[J]. Neurocomputing, 2020, 401:1-9.

[19] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE International Conference on Computer Vision. [S.l.]:[s.n.]:2017.2980-2988.

[20]AGHDASSI A, TRAN Q T, BULLA T, et al. Focal pancreatic lesions in autoimmune pancreatitis and weight loss[J].Gut, 2020,doi:10.1136/gutjnl-2020-321987.

[21]LI Dongdong, WEN Gongjian, KUAI Yangliu, et al. Robust visual tracking with channel attention and focal loss[J]. Neurocomputing, 2020, 401:295-307.

[22]PERSSON D, HEYDARI G, EDVINSSON C, et al. Depth-resolved FTIR focal plane array (FPA) spectroscopic imaging of the loss of melamine functionality of polyester melamine coating after accelerated and natural weathering[J]. Polymer Testing, 2020, doi:10.1016/j.polymertesting.2020.106500.

[23]YAO Shangjie, CHEN Yaowu, TIAN Xiang, et al. An improved algorithm for detecting pneumonia based on YOLOv3[J]. Applied Sciences, 2020, 10(5):doi:10.3390/app10051818.

[24]GERLACH S, CHRISTOPH F, HOFMANN T, et al. Multicriterial CNN based beam generation for robotic radiosurgery of the prostate[J].Current Directions in Biomedical Engineering, 2020, 6(1):doi:10.1515/cdbme-2020-0030.

[25]LI Min, ZHANG Zhijie, LEI Liping, et al. Agricultural greenhouses detection in high-resolution satellite images based on convolutional neural networks: Comparison of faster R-CNN, YOLOv3 and SSD[J]. Sensors, 2018, 10:131-152.

[26]王慧. 基于改進Faster R-CNN的安全帽检测及身份识别[D]. 西安:西安科技大学, 2020.

WANG Hui. Safety Helmet Detection and Identification Based on Improved Faster R-CNN[D]. Xi′an: Xi′an University of Science and Technology, 2020.

猜你喜欢
目标检测
多视角目标检测与跟踪技术的研究与实现
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别
基于背景建模法的运动目标检测
基于P3电位的目标检测研究
智能视频技术在电力系统领域的应用
相关K分布杂波中扩展目标积累检测性能分析
基于连通域标记的目标检测算法设计与实现
一种改进的峰均功率比判源方法