APP下载

卷积神经网络在动态手势跟踪中的应用*

2020-05-13李东洁李东阁

计算机与生活 2020年5期
关键词:残差手势成功率

李东洁,李东阁,杨 柳

哈尔滨理工大学 自动化学院,哈尔滨 150080

1 引言

基于手势的人机交互是人类最自然的人机交互方式,近几年来受到越来越多研究人员的关注[1]。在动态手势交互方式中,手的轨迹是手势指令的重要组成部分之一,因此对手势的跟踪是一个重要环节[2]。手势跟踪的算法虽然在虚拟现实系统和人机交互(human-computer interaction,HCI)系统中得到了广泛的应用[3],由于在应用中对手势跟踪的鲁棒性和实时性要求逐渐提高,因此在基于视觉的研究领域中手势跟踪仍然是一个具有挑战性的问题[4]。

手势跟踪算法可以分为基于运动模型的目标跟踪和基于外观模型的目标跟踪算法。文献[5]提出一种结合均值漂移和粒子滤波的运动模型手势跟踪算法,该算法虽然可以对目标运动速度和空间进行预测,但是对手的跟踪过程中,由于手的可变形性,导致算法跟踪失败。文献[6]提出一种粒子滤波器结合皮肤椭圆的外观模型,通过对模型的检测来完成对手势的跟踪。这种基于颜色的外观模型,由于人脸和手肤色的相似性,导致跟踪时的鲁棒性较低,容易受背景影响。

基于检测的目标跟踪是一种常用的目标跟踪框架。文献[7]采用一种深度卷积神经网络(convolutional neural network,CNN)对手势特征进行融合,在跟踪的过程中大大提升了鲁棒性,但由于其特征提取网络复杂,计算速度较慢,不能达到实时手势跟踪的效果。2015 年,Redmon 等首次提出基于卷积神经网络的YOLO(you only look once)目标检测算法,彻底贯彻了采用直接回归的方法获取当前检测目标的思想,使检测速度大幅提高,但准确度偏低[8]。随即原作者又提出对于YOLO 的第三代改进算法YOLOv3,该算法的检测准确率达到了令人满意的效果。在COCO 数据集的测试中,在精准度与Faster R-CNN、SSD(single shot multibox detector)等其他目标检测算法持平的情况下,YOLOv3 的检测速度是其他模型的3~4 倍[9]。对手势的跟踪需要在场景中快速检测出目标,YOLO 系列算法可以更好地区分目标和背景区域[10]。因此,本文采用具有最佳检测跟踪效果的YOLOv3 算法代替传统基于外观和运动模型的跟踪算法来进行手势跟踪。

2 手势跟踪算法

2.1 YOLOv3 网络

YOLOv3 是YOLO 系列目标检测算法的第三代改进算法,是目前最优秀的目标检测算法之一[11]。在结构上,YOLOv3 采用了Darknet-53 作为算法的主体网络。在神经网络的每一层的网络线性变换输出之后,激活函数之前增加了一个批归一化层(batch normalization,BN)来解决神经网络反向传播过程中可能发生的梯度消失和梯度爆炸问题。Darknet-53使用的残差网络通过层间连接可以有效地解决训练过程中的梯度消失问题,并减少参数数量[12]。在张量拼接后,使用Logistic分类器能够支持多标签对象的分类。

YOLOv3 虽然在多类目标分类上表现出色,但是对于手势检测这样的单类物体的检测,这一网络结构的参数有些过于复杂和冗余,这样会带来训练过程难度增加,所需数据量变大以及达不到实时性等一系列问题。针对这一问题,本文对YOLOv3 网络进行改进,使其在不损失准确度的情况下提升检测速度,保证跟踪的实时性。

2.2 基于YOLOv3 的改进

2.2.1 网络结构中的改进

本文提出的卷积神经网络(Darknet-gesture)保持了Darknet-53 的残差模块(Residual),在每个残差模块后面增加了一个1×1 的卷积核进一步降低输出维度,同时在第一个卷积层中使用线性激活函数来避免低维度卷积层特征图像丢失问题。在残差模块中,调整了每个模块中残差网络的层数。这种方式使得残差模块间的连接得到增强,进一步增强了特征图的复用性,减少了模块间特征的传递损失。进行改进后的卷积神经网络Darknet-gesture结构见表1。

其中每个残差模块后面的数字为该模块含有的残差网络层数。将改进的网络替代Darknet-53 网络,加入YOLOv3 中,即生成改进算法YOLOv3-gesture。

2.2.2 基于规划区域检测的跟踪框架

为了提高手势跟踪的鲁棒性,本文提出一种规划区域检测的跟踪框架。其实现过程如下:假设在第t帧图像中检测到有手势目标Object1,则经过YOLOv3-gesture 网络预测输出预测框X1的中心坐标(bx,by)、预测框宽度和高度bh。进入第t+1 帧后,在第t帧中心点的附近区域生成规划区域进行检测,即在第t+1 帧时,输入YOLOv3-gesture 网络的大小为规划区域S*,其中规划区域S*的宽度Sw和高度Sh取值由预测边框的宽度bw和bh决定,则以第t帧中心点为原点,第t+1 帧规划区域的左上角顶点(Sx,Sy)换算公式如下:

Table 1 Improved structure for Darknet-gesture表1 Darknet-gesture 改进结构

其中,n为变换尺度,即Sw=nbw,Sh=nbh,若在规划区域中未检测到对象则n+1。规划区域最大为输入完整图像的大小。如果存在多个手势目标,则分别对每个手势目标求取规划区域进行检测完成跟踪。其过程如图1 所示。

根据改进的网络结构,相比于输入图像有3 个尺度的特征图检测,分别是相对于输入图像的52 倍、26倍、13 倍下采样,用来检测不同尺寸的手势。将8 组每组为100帧416×416的连续手势图像输入YOLOv3-gesture 网络,使用不同的变换尺度和不同的特征图检测尺度对图像进行检测,其成功率曲线如图2所示。

数据可见,由于采用规划区域的检测方法,对于检测区域的13倍下采样检测尺度的检测成功率很低,这一尺度对于手势检测来说属于冗余,因此本文决定采用26倍下采样和52倍下采样两个检测尺度完成规划区域检测。分析数据可知变换尺度为3时效果较好,因此规划区域检测的变换尺度的取值从3 开始。

通过对规划区域的检测,视频每帧的相应关系更加紧密,可以排除非敏感区域对象的干扰,使得对手势跟踪的鲁棒性更强。同时,相对于原始完整图像,输入图像中的对象数量大大减少,减少了YOLO网络的计算量,进而缩短了算法的检测时间,提高了手势跟踪的实时性。

3 实验结果与分析

3.1 实验环境

Fig.1 Regional planning test图1 区域规划检测

Fig.2 Detection success profile图2 检测成功率分布图

本文训练和测试均在Windows 环境下进行,模型搭建采用Darknet 开源框架实现,硬件条件CPU 为i7-8700,GPU 为NVIDIA GTX1080。检测模型的权重通过迁移学习采用ImageNet上的预训练权重模型。

3.2 实验数据

实验数据集采集于CGD2011 手势数据库,该数据库共有30 个基本手势动作,约5 万个手势。共有约4 500 个视频,视频数据每帧图像分辨率大小为240×320,帧率为每秒10 帧。本文数据1 000 张图片从该数据库提取,200 张来自真实场景的手势动作拍摄照片,分辨率大小为1 372×941。使用LableImage对手势照片中的手势目标进行标注。随机选取其中的1 000 张用作训练集数据,200 张用作测试集数据。同时随机选取CGD2011 数据库中的20 个视频进行实时性跟踪检测。

3.3 训练方法

在训练阶段,设置每批训练样本batch 为64,一次性送入训练器样本数量subdivisions 为16,动量参数设置为0.9,权重衰减正则项为0.000 5,初始学习率设置为0.001,采用小批量随机梯度下降的方式进行优化,同时采用多尺度训练的方式来增强算法对不同大小图像检测的鲁棒性。其训练过程中损失函数的变化过程如图3。YOLOv3 使用相同训练参数后的loss 值随迭代次数变化对比如图4 所示。结果显示,由于YOLOv3-gesture 简化了网络的主体结构使得训练难度和迭代次数变小。

3.4 检测评估结果

Fig.3 Loss function varies with the number of iterations图3 损失函数随迭代次数的变化

Fig.4 Comparison of loss function of YOLOv3 and YOLOv3-gesture图4 YOLOv3 与YOLOv3-geature损失函数对比

为了全面展示本文提出的YOLOv3-gesture 跟踪效果,先将本文算法与YOLO 系列算法在同样的数据集中进行比较,再与3 个跟踪相关算法在同样的测试数据集中进行比较。这3 个跟踪相关算法分别是Struck[13]、FCN(fully convolutional networks)[14]和CCOT(continuous convolution operators for visual tracking)[15]。其中Struck 为经典跟踪算法;FCN 是基于深度学习最新的跟踪算法;CCOT 是基于相关滤波的最新算法。

3.4.1 与YOLOv3 算法的比较

本文算法YOLOv3-gesture 与YOLOv3 的性能评判指标为准确度、召回率、平均准确度和标记框和预测框的交并比(intersection over union,IOU)值。算法每秒处理的帧数作为算法的速度评判指标,其单位为frame/s。通常动作连贯的视频为30 frame/s,因此如果检测的速度达到30 frame/s,就可以认为达到了实时跟踪。在200 张测试集数据中应用YOLOv3和YOLOv3-gesture,比较后得出各项指标对比见表2。其中数据是通过调整IOU阈值使得准确度和召回率最大得出的实验结果,本文算法相对于YOLOv3算法,准确度提升了2.3%,召回率提升了3.4%,平均准确度提升了4.5%。YOLOv3-gesture 通过规划区域检测的手段,减少了背景中非跟踪对象的干扰,使检测准确度得到提升。

Table 2 Comparison of each index of two algorithms表2 两种算法的各项指标对比

同时,YOLOv3-gesture 的检测速度快于YOLOv3的32.8 frame/s,达到了实时跟踪的要求。在测试过程中,对于某些运动过程中外表剧烈变化,处于模糊状态的手势目标,YOLOv3 算法的识别率较差。如图5 所示,右侧运动中的手势YOLOv3 算法未识别出。分析可知,简单的卷积神经网络模型在数据量较小,数据复杂多变的情况下具有更好的泛化性能,可以有效地应对跟踪中的运动模糊。

Fig.5 Comparison of test results图5 测试结果对比

3.4.2 与其他跟踪算法的比较

在与Struck、FCN 和CCOT 算法的比较中,采用IOU阈值作为成功率评判指标,并在CGD2011 数据库中随机选取20 个动态手势视频,对以上算法进行检测,并对跟踪视频每一帧的成功率进行统计,结果如图6 所示。IOU阈值最小为0 跟踪效果最差;最大为1 跟踪效果最好。同时对不同场景的交并比平均成功率进行统计分析,结果如表3 所示。

Fig.6 Success rate curve of IOU图6 交并比成功率曲线图

Table 3 Statistical analysis of success rate in different scenes表3 不同场景成功率统计分析 %

部分跟踪结果如图7 所示。在具有复杂背景的手势跟踪场景中的部分帧当中,从图7(b)可以看出Struck 算法发生了漂移,CCOT 算法发生了预测框不能准确包裹手势的问题(图7(c)),FCNT 算法虽然可以准确预测位置,但是运算速度仅有22 frame/s,不能达到实时跟踪的效果。在手部有部分遮挡的手势跟踪场景中,Struck 与CCOT 均未检测到目标,本文算法可以跟踪遮挡目标(图7(d))。在运动剧烈的手势目标跟踪中,Struck 无法检测出剧烈运动的手势目标,CCOT 算法在跟踪的过程中出现明显的延迟现象(图7(f)),检测框停留在上一帧目标的位置。

Fig.7 Partial tracking results图7 部分跟踪结果

可见在不同场景下的跟踪效果,YOLOv3-gesture性能良好,在交并比的成功率比较中,YOLOv3-gesture成功率均高于其他算法,这取决于卷积神经网络和规划区域检测应用在目标检测和规划区域检测对干扰的排除作用,使得跟踪的效果更佳。

4 结束语

针对复杂场景手势跟踪的鲁棒性不足和实时性不足的问题,本文提出一种基于卷积神经网络的改进YOLOv3 跟踪算法。该算法可以在复杂场景中克服运动手势模糊,背景有非目标对象干扰等问题,对手势进行实时跟踪。实验表明,本文算法在复杂场景的手势跟踪性能优于YOLOv3 算法以及其他跟踪相关算法,后续工作会在跟踪的基础上对动态手势进行识别。

猜你喜欢

残差手势成功率
成功率100%,一颗玻璃珠入水,瓶子终于坐不住了!
成功率超70%!一张冬棚赚40万~50万元,罗氏沼虾今年将有多火?
基于残差-注意力和LSTM的心律失常心拍分类方法研究
院前急救心肺复苏成功率的影响因素研究
融合上下文的残差门卷积实体抽取
把握主动权,提高油罐火灾扑救成功率
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用
挑战!神秘手势
胜利的手势