掌桥专利:专业的专利平台
掌桥专利
首页

手势识别方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 10:57:17


手势识别方法、装置、计算机设备和存储介质

技术领域

本申请涉及图像识别技术领域,特别是涉及一种手势识别方法、装置、计算机设备和存储介质。

背景技术

随着计算机视觉技术的发展,以前可通过人眼进行的各种重要的信息交流方式,逐渐在智能设备中得到了应用,手部的表达信息便是其中重要的一种。在虚拟现实或增强现实等应用场景下,智能识别手部姿态信息是非常关键的技术,在其他需要进行信息交互的场景中同样如此,例如汽车内的多媒体系统控制、外科手术机器人控制以及手语交流等。

但在传统技术中,手势识别的准确率较低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够适用于复杂场景的手势识别方法、装置、计算机设备和存储介质。

一种手势识别方法,所述方法包括:

获取待检测图像,并通过手部检测模型对所述待检测图像进行手部检测;

当检测出所述图像中有手存在时,从所述图像中裁剪出手部图像;

分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对所述手部图像进行处理得到对应的手势类型识别结果;

综合所述静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型。

在其中一个实施例中,所述通过手部检测模型对所述待检测图像进行手部检测,包括:

通过手部检测模型中的骨干网络提取所述待检测图像的多尺度特征图;

计算所述多尺度特征图中的锚点框中存在手部的第一置信度;

获取所述第一置信度符合要求的锚点框的位置;

根据所述多尺度特征图确定所述待检测图像中手部存在结果;

将所述手部存在结果、所述锚点框的位置以及对应的第一置信度作为所述手部检测模型的输出结果。

在其中一个实施例中,所述分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对所述手部图像进行处理以得到对应的手势类型识别结果,包括:

将所述手部图像输入到所述静态手势分类模型中得到所述手部图像中是否存在手部的第二置信度、静态手势类型以及与所述静态手势类型对应的第一手势置信度;

通过单点热力图回归模型以及全局热力图回归模型分别对所述手部图像分别进行处理得到对应的关键点坐标;

当根据所述第二置信度判断所述手部图像中不存在手部时,则继续获取待检测图像;

当根据所述第二置信度判断所述手部图像中存在手部时,根据所述单点热力图回归模型以及全局热力图回归模型计算得到的关键点坐标得到所述单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果。

在其中一个实施例中,所述根据所述单点热力图回归模型以及全局热力图回归模型计算得到的关键点坐标得到所述单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果之前,还包括:

根据预设的单点热力图清洗规则清洗对所述单点热力图回归模型处理得到的关键点进行清洗处理;

根据预设的全局热力图清洗规则对所述全局热力图回归模型处理得到的关键点进行清洗处理。

在其中一个实施例中,所述单点热力图回归模型对所述手部图像进行处理得到手势类型识别结果的方式,包括:

将所述手部图像输入到单点热力图回归模型得到每个第一关键点对应的单点热力图;

解析每个所述单点热力图分别得到所述第一关键点的坐标;

根据所述第一关键点的坐标得到手势类型识别结果。

在其中一个实施例中,所述全局热力图回归模型对所述手部图像进行处理得到手势类型识别结果的方式,包括:

将所述手部图像输入至全局热力图回归模型中得到背景热力图以及包括所有第二关键点的前景热力图;

对所述前景热力图进行解析得到所述第二关键点的坐标;

根据所述第二关键点的坐标得到手势类型识别结果。

在其中一个实施例中,所述综合所述静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型,包括:

将所述静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的所述手势类型识别结果中的手势类型分别添加至三个预设帧数的手势时间窗中;

从所述手势时间窗内所有所述手势类型中获取具有最高出现频率的所述手势类型以及对应的出现频率作为所述手势时间窗对应的初始手势类型识别结果;

根据预设的融合判断规则,将所述静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的手势时间窗的初始手势类型识别结果和所述静态手势分类模型对应的手势类型识别结果进行处理得到目标手势和对应的置信度。

一种手势识别装置,所述装置包括:

手部检测模块,用于获取待检测图像,并通过手部检测模型对所述待检测图像进行手部检测;

图像裁剪模块,用于当检测出所述图像中有手存在时,从所述图像中裁剪出手部图像;

模型识别模块,用于分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对所述手部图像进行处理以得到对应的手势类型识别结果;

综合判定模块,用于综合所述静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中所述的方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中所述的方法的步骤。

上述手势识别方法、装置、计算机设备和存储介质,通过融合单点热力图、全局热力图以及静态手势分类模型的输出数据,有效地解决了复杂环境下手势识别模型容易受到干扰的问题,极大地提高了手势识别的准确率。

附图说明

图1为一个实施例中手势识别方法的流程示意图;

图2为一个实施例中训练静态手势分类模型的流程示意图;

图3为一个实施例中静态手势分类模型的网络结构图;

图4为一个实施例中手势样本集示例图;

图5为一个实施例中热力图回归模型训练流程图;

图6为一个实施例中单点热力图的网络结构图;

图7为一个实施例中全局热力图的网路结构图;

图8为一个实施例中手部检测模型结构对比图;

图9为一个实施例中根据三模型输出结果确定后续步骤的流程示意图;

图10为一个实施例中手部关键点标号示意图;

图11为一个实施例中手势类型对应关系图;

图12为一个实施例中手势识别综合判断流程示意图;

图13为一个实施例中手势识别整体流程示意图;

图14为一个实施例中一个测试集的效果图;

图15为一个实施例中手势识别装置的结构框图;

图16为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,提供了一种手势识别方法,本实施例以该方法应用于终端为例进行说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:

步骤S102,获取待检测图像,并通过手部检测模型对待检测图像进行手部检测。

其中,手部检测是指从一张图片中检测出手部,手部检测模型用于检测待检测图像中是否存在手部的端到端的神经网络模型,主要由骨干网络、锚点框分类器、边框回归器等组成。骨干网络如表1所示,主要由深度可分离卷积(SeprableConv2D)组成,并且借鉴了残差连接技巧。内核大小列中,k表示内核大小,s表示步长,skip=false的时候表示在该卷积层不使用残差连接技巧,skip=true的时候表示在该卷积层使用残差连接技巧。

表1.手部检测骨干网络结构

具体地,终端从视频流中读取一帧图像,将图像的大小调整为预先设定的大小,然后将调整后的图像输入手部检测模型进行检测。手部检测的输出为一个元组,包含三个元素。第一个元素表示是否包含手部的置信度,例如(0.8,0.2),表示整张图像中包含手部的置信度为0.8,不包含手部的置信度为0.2。第二个元素表示检测模型最终认可的0、1或者多个手部边框角点坐标,例如[(32,26,45,39),(43,35,57,46)],表示最终保留有2个手部的边框,第一个边框的两个焦点坐标分别为(32,26)和(45,39),第二个边框的两个焦点坐标分别(43,35)和(57,46)。第三个元素表示手部检测模型得到的n个(n=0,1,2,…)个手部边框内分别包含手部的置信度,其中n的数量与第二个元素中的边框数量相对应。例如[0.68,0.93],表示第一个边框内存在手部的置信度为0.68,第二个边框内存在手部的置信度为0.93。

当手部检测模型判断出图像中没有手部时,终端读取新的一帧图像并重新执行上述步骤。当手部检测模型判断出图像中存在手部时,执行后续步骤。

在一个实施例中,终端从前置摄像头拍摄的视频流中读取一帧彩色RGB图像,将图像的大小调整为预设大小,例如128*128*3。其中,128*128表示分辨率,3表示红绿蓝三个通道。

在训练手部检测模型的时候,将手部检测模型训练的批大小(batch_size)设置为4,采用的优化器为亚当(Adam)。初始训练时期(epochs)和学习率(learning rate)分别为128和0.001,并设置早停方案和学习率衰减策略。当验证集损失值在连续8个训练时期(epoch)中减小量都不超过阈值时,为防止模型继续训练导致的过拟合现象,将选择停止训练任务。同时,若验证集损失值在连续4个训练时期(epoch)中减小量都小于学习率(learning rate)阈值时,按照0.1的衰减率进行调整。

终端获取已有的标注数据EgHands所提供的4k多张有手部框的标注数据以及已有的标注数据VggHand数据集所提供的约5k的室外场景的手部框标注数据此外,终端还将已有标注数据Ego3D、Frei、RHD中的关键点标注转换成了手部框标注,并且通过随机裁剪的方式,获得了大约4w张可用于前置摄像头场景的训练集。另外,为了丰富数据集,本申请从已有的图像数据集IPN中随机抽取了6w张样本,进行重新标注,获得了一个场景丰富,背景复杂的前置摄像头手部检测数据集。最后,本申请将这10w张数据用作训练集,并从实际场景中采集了约13k样本作为测试集。

步骤S104,当检测出图像中有手存在时,从图像中裁剪出手部图像。

具体地,终端根据手部检测模型的输出结果判定图像中包含手部时,获取检测到手部的边框的角点坐标,按照边框的角点坐标将手部的这一块区域的图像裁剪下来,即得到了手部图像。

例如,终端检测到图像中有一只手,边框角点坐标为(32,56,48,72),角点坐标包含两个坐标点:左上角(32,56),右下角(48,72),这就构成了一个矩形,把这个矩形框裁剪出来,即得到了手部图像。

步骤S106,分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对手部图像进行处理得到对应的手势类型识别结果。

具体地,静态手势分类任务通过端到端的分类模型来实现,终端将手部图像输入静态手势分类模型后,静态手势分类模型的手势类型识别结果包括2个元素的元组,元素分别为:手部是否存在,以及各类手势的置信度。其中,手部是否存在的表示形式同样是元组格式,包含2个元素,依次表示手部存在和手部不存在的置信度,此时元组中的第一个元素,即为存在手部的置信度的值。各类手势的具体类型有0-9,共10种类型,具体参考图11。类型1-5,类型8的手势含义为数字1-5和数字8。类型6表示点赞,类型7表示握拳,类型9表示ok,类型0表示定义的9种手势之外的其他手势。

在图2所示的训练静态手势分类模型流程图中,终端基于手部检测的结果,将裁剪出的手部图像进行一系列预处理,配以标签作为模型训练的输入,持续迭代优化模型。其中,标签分为两类,一类表示图像中有无手部,另一类表示图像中手势的类型。判断手部是否存在的二分类损失函数为:

其中,y

手势类别判断的多分类损失函数为:

其中,y

总损失函数为:

Loss=loss1+loss2

神经网络通过对图像特征的提取和综合分析,测试时,输出与训练标签相对应的手部判断结果和手势类别,静态手势分类模型的网络结构如图3所示,网络中主要应用可分离卷积提取图像的特征,更有利于模型的轻量化,提高模型推理的实时性,最后以全连接层融合特征,用以判断所属类别。

静态手势分类模型的训练数据来源主要为number gesture、CMU、Frei、face、front_camera、搜索引擎等。其中,number gesture包含纯手部的图像,主要是0~8的各类手势;CMU、Frei和front_camera包含形式各异的手部图像,而face主要为各种脸部图像。如图4所示的手势样本集示例图中,按照自定义的8类手势,从上述个数据源以及搜索引擎中搜集合适的样本,每一类手势平均大约600张图像。由于原始数据集的背景比较简单,且数量较少,为了适应实际应用场景的需求,且避免过拟合的情况,因此对原始数据集进行必要的预处理:根据原始数据集中手势的姿态,结合实际场景中可能出现的各种手势姿态,对原始样本进行水平翻转(对应左右手的变换)、适当角度的旋转(介于±45°之间)、灰度均衡、亮度调节以及加噪等常用的数据增强处理,可增加数据集的数量和多样性。按照HSV格式对手部图像进行前景提取,从而将手部的背景置换为实际应用场景中可能出现的各类背景图,包括从face和搜索引擎中提取的人脸、家具、墙壁等。另外,在原始数据集的基础上,按照真实的手部区域不超过样本图像总面积的30%的阈值,尤其是针对干扰性比较强的人体皮肤区域,进行相应的裁剪和填充处理,建立不存在手部的负样本集。经过数据增强后,最终获得总的数据集中包含176026张大小为64*64的样本图,正负样本比例为1:0.87。

具体地,基于热力图的手势识别任务主要通过热力图回归模型和规则判断来实现。终端将手部图像输入热力图回归模型后,热力图回归模型的输出结果为预设大小的热力图。终端对热力图进行解析得到关键点的坐标,之后根据预设的分类规则对关键点坐标进行分析判断得到具体的手势类型。

在图5所示的训练热力图回归模型的流程图中,热力图回归模型的输入是对终端进行手部检测的结果进行裁剪并经过预处理的手部图像,以响应图像的热力图作为训练标签。

训练过程中的损失函数为:

其中,v

最终测试的输出结果同样为测试图像的热力图矩阵,在获得图像的热力图矩阵后,转换计算得到关键点坐标:

热力图回归网络应用沙漏网络的结构,更好地学习特征提取层的前后关联性,减少因网络层数加深而丢失的信息。为了使模型足够小且快速运算,特征提取主要通过可分离卷积实现。单点热力图网络的输出包含每个关键点对应的独立热力图,其具体网络结构如图6所示。与单点热力图网络原理基本相似,全局热力图网路的区别在于将所有关键点的热力图响应值融合在同一个热力图矩阵中,输出结果包含融合了所有关键点的前景热力图和相对的背景热力图,具体网络结构如图7所示。

热力图回归模型的数据来源主要为CMU和Frei两个公开数据集,包含室内场景真实拍摄和置换室外各种背景的图像,以及对应图像的21个手部关键点的坐标标注。根据实际数据需求,对数据集进行预处理:对原始数据集中的图像和标注坐标信息进行可视化校验,清洗其中明显错误的图像和标注数据。与手势分类数据集的背景置换相同,提取样本图中的手部图像,对其背景置换为人脸及墙壁等个人电脑前置摄像头中常见的背景图。根据二维高斯核,将所有的关键点坐标信息生成相应的热力图矩阵,作为样本图对应的标签。

步骤S108,综合静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型。

其中,静态手势分类模型的识别结果为每一帧图像的手势识别的结果和相应的置信度,称之为实时分类结果和置信度。单点热力图和全局热力图的识别结果是对每一帧图像基于关键点分类规则进行判断,因此对每帧图像只有识别结果,没有实时置信度。

具体地,终端在手势识别的过程中分别将静态手势分类模型的识别结果、单点热力图回归模型对应的识别结果以及全局热力图回归模型对应的识别结果存储起来作为一段时间内的手势分类参考,并动态更新存储的数据,其中一段时间的长度可以由终端根据实际情况自由设定。终端从一段时间内的手势识别结果中选择最稳定的手势类型作为参考,结合静态手势分类的实时分类结果、实时置信度、单点热力图回归模型的识别结果以及全局热力图回归模型的识别结果,按照预先设定的规则对上述的识别结果进行优先度排序,选择优先度最高的识别结果作为最终的目标手势类型。

手部检测和手势识别中,核心的评估指标主要包含手部检测和各个手势对应的准确率、召回率及F1值。

同时,根据热力图计算的关键点坐标对手势分类结果也有重要影响,应用均方差作为关键点预测结果的评估指标。

均方差计算公式为:

其中,m表示测试样本总数,x

上述手势识别方法中,通过融合单点热力图、全局热力图以及静态手势分类模型的输出数据,有效地解决了复杂环境下手势识别模型容易受到干扰的问题,极大地提高了手势识别的准确率。

在一个实施例中,通过手部检测模型对待检测图像进行手部检测,包括:通过手部检测模型中的骨干网络提取待检测图像的多尺度特征图。计算多尺度特征图中的锚点框中存在手部的第一置信度。获取第一置信度符合要求的锚点框的位置。根据多尺度特征图确定待检测图像中手部存在结果。将手部存在结果、锚点框的位置以及对应的第一置信度作为手部检测模型的输出结果。

其中,骨干网络用于提取图像的特征,中间过程中产生多尺度(即大小不同)的特征图,也就是对图像的高层抽象,用更抽象的方式描述原图像。锚点框用于在骨干网络提取的特征图中判断框中的区域是否为待检测的目标,例如,终端需要检测的是手部,在原始图像中占据一小片区域,多个锚点框便包含了图像中不同大小的区域,手部检测模型就需要判断哪个位置以及对应哪种尺寸的锚点框内是包含了手部目标的。锚点框匹配会生成两个结果,一个为锚点框的位置,也就是对目标的边框坐标预测结果,另一个为锚点框包含某个目标的置信度预测结果。

具体地,手部检测模型的结构如图8所示,图左侧的手部检测模型在右侧普通检测模型的基础上加了一个辅助分类器。终端使用的手部检测模型主要由骨干网络、锚点框分类器、边框回归器和辅助分类器组成。骨干网络提取待检测图像的多尺度特征图,通过合理地设置锚点框去预测每一块区域是否包含手部,在此过程中分为两个分支:锚点框分类器和边框回归器。锚点框分类器用于预测该锚点框包含手部的置信度,边框回归器用于获取手部的角点坐标,即预测锚点框的位置。

辅助分类器与锚点框分类器和边框回归器是并行的,共享所有的特征层,都是基于第一步的骨干网络的结果进行的。辅助分类器根据图像的特征,判断图像中包含手部的置信度。其中,锚点框分类器和辅助分类器的作用都是判断某个区域内包含手部的置信度,不过锚点框分类器针对的是比较细致的锚点框区域,而辅助分类器则是直接针对整个图像。辅助分类器的测试准确率达到98.2%,可以对在锚点框分类器的误判进行校正。例如,仅通过检测任务中的锚点框分类器和边框回归器,可能会对一些与手部的纹理和颜色非常相似的区域识别为手部,将其作为了返回结果。但是辅助分类器的结果是整个图像中存在手部的置信度小于设定的阈值,例如设为0.8,因为实验发现辅助分类器的结果更值得信赖,因此终端以辅助分类器的结果为准,最终放弃检测任务中识别到的手部。

本实施例中,通过在原有的手部检测器中加入辅助分类器,提高了手部检测的准确率,另外因为辅助分类器不需要增加一个检测阶段,而是和检测任务同时进行的,并且共享所有的特征层,因此不会增加模型的推理时间。

在一个实施例中,如图9所示,分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对手部图像进行处理以得到对应的手势类型识别结果,包括:

步骤S902,将手部图像输入到静态手势分类模型中得到手部图像中是否存在手部的第二置信度、静态手势类型以及与静态手势类型对应的第一手势置信度。

具体地,由于终端裁剪出的手部图像的大小是不固定的,而静态手势分类模型中的输入格式是固定的,因此终端在将手部图像输入到静态手势分类模型前,首先将裁剪的手部图像进行灰度化,再将手部图像的大小调整为统一的大小,之后终端将手部图像的灰度值归一化到预先设定的范围内,最后终端将第一维和最后一维进行维度扩展,本身数据没有变,只是增加了维度。经过终端预处理的手部图像最终符合静态手势分类模型的输入格式。例如,终端将手部图像进行灰度化处理,再将手部图像的大小调整为64*64的分辨率,并将手部图像的灰度值从(0,256)的范围归一化到(-1,1),最后对第一维和最后一维进行维度扩展,将格式为(64,64)的数组转换成(1,64,64,1)。

终端判定静态分类手势是通过静态分类模型的结果进行计算的,模型的输出结果中包含了2个元素的元组,元素分别为:手部是否存在,以及各类手势的置信度。其中,手部是否存在的表示形式同样是元组格式,包含2个元素,依次表示手部存在和手部不存在的置信度,取元组的第一个元素,即为是否存在手部的第二置信度。静态手势类型是通过静态分类模型的结果进行计算的,模型输出结果中包含对10类手势判断的相对值,一组包含10个值的元组。例如可能为(12,56,-3,-21,…,326,-42)。终端对该元组进行softmax归一化处理,得到10个和为1的值,可理解为对应10类手势的置信度。终端找出其中的最大值和对应索引,即为最终判断的手势类型和置信度。例如,10个值中第9个值最大,为0.82,则输出的手势类型为9,第一手势置信度为0.82。

步骤S904,通过单点热力图回归模型以及全局热力图回归模型分别对手部图像分别进行处理得到对应的关键点坐标。

具体地,终端通过高斯函数将手部图像转换成相应的热力图矩阵。其中,转换所用的高斯函数公式为:

其中,h表示最终生成的热力图矩阵,两个维度的大小与图像的长宽相同,例如64*64的图像,那么热力图矩阵就是arr[64][64]。e为自然对数。

x、y分别为图像中遍历的所有点的坐标,根据每一个(x,y)生成与图像大小相同的热力图矩阵中对应位置的值。

x_mean和y_mean分别为给定的待转换的坐标点,例如要将(12,35)转换生成热力图,那么就将对应的值赋给x_mean和y_mean。

sigma为待给定的标准差值,具体含义为以中心点向周围扩散时,值减小的速度,本项目中设置的sigma=2。

终端在获得手部图像的热力图矩阵后,转化计算得到关键点坐标:

步骤S906,当根据第二置信度判断手部图像中不存在手部时,则继续获取待检测图像。当根据第二置信度判断手部图像中存在手部时,根据单点热力图回归模型以及全局热力图回归模型计算得到的关键点坐标得到单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果。

具体地,终端只有在静态手势分类模型判断手部图像中存在手部时,才根据单点热力图和全局热力图计算得到地关键点坐标进一步结合关键点分类规则去判断具体地手势类型。

本实施例,终端通过静态手势分类模型获得手部图像中是否存在手部地判断,从而可以有选择地进行下一步热力图的判断,在技术上可以节省大量的计算资源。

在一个实施例中,根据单点热力图回归模型以及全局热力图回归模型计算得到的关键点坐标得到单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果之前,还包括:根据预设的单点热力图清洗规则清洗对单点热力图回归模型处理得到的关键点进行清洗处理。根据预设的全局热力图清洗规则对全局热力图回归模型处理得到的关键点进行清洗处理。

在单点热力图中,手部21个关键点及具体对应标号如图10所示,左右手对称。以图中所示的手掌完全张开的情况为基准,在某些手指弯曲的情况下可以当做异常点剔除,后续规则只考虑张开的手指。

终端计算每根手指4个关键点中的3个相邻关节的距离,总共有3*15=15个关节距离,求其平均值。

第一种情况,当有标号不符合正常的情况出现时,关节距离必然异常,终端可以根据此规则将异常的标号清除。具体地,终端以平均值的预设倍数作为关节距离阈值(1.3倍为多次实验测试的经验值),对15个关节距离与此阈值进行比较。当有关节距离超出阈值时,将此关节中的结束关键点视为异常点,将其坐标置为0。(关节是由2个关键点组成,以标号小的点作为起始点,标号大的点作为结束点)。

第二种情况,当某个关节点被同时识别成了21个点中的两个时,终端去除其中的异常点。具体地,终端根据从手掌到指尖的顺序以4根手指贴近手掌的关键点为第一层,以4根手指的指尖为第4层(例如,第4层包含标号为4、8、12、16的4个点)。终端判断每层的4个点之间相邻间距与阈值的大小关系,其中阈值为平均值的预设倍数(0.8为实验经验值),超出阈值者将该关节的结束关键点视为异常点,终端将其坐标置为0。

第三种情况,当其他手指关键点被误判为大拇指时,终端将其清除。具体地,在4根手指的4层关键点中,当有某一层的关键点与相同层的大拇指关键点距离小于阈值时,阈值为平均值的预设倍数(0.8倍为实验经验值),终端则将该异常关键点坐标置为0。

在全局热力图中,只有6个关键点,即手腕关键点和5根手指的指尖关键点,并且6个关键点没有具体的标号,无法得知哪个点的坐标具体对应手部某个点。但在单点热力图中,终端对手腕处的关键点识别非常稳定且准确,可将此结果引入到全局热力图中。

第一种情况,终端可以根据距离清除可能指向同一个位置的关键点。具体地,终端计算6个未知位置的关键点之间的任意两点距离,小于设定的阈值(20个像素单位,实验经验值)或者小于图像宽度的0.125倍(多次实验经验值),则认为此两点过于靠近,极大概率指向同一位置,因此终端任意清除其中一个点。

第二种情况,终端根据夹角清除可能指向同一个位置或是指向同一根手指的不同位置的关键点。具体地,终端以已知地手腕处关键点作为角中心点,以6个未知点中的任意两点作为角的边点,计算所有存在的夹角,小于预设阈值(4度,实验经验值)的情况,认为此两点几乎在一条直线上,存在异常,终端清除其中一个点,将该点的坐标置为0。

第三种情况,终端根据已知的手腕关键点,清除靠近此点的点。具体地,以已知的手腕关键点作为定点,终端计算其他未知6个点与定点的距离,将小于预设阈值(图像高度*0.2,实验经验值)的点清除掉,将该点的坐标置为0。

本实施例中,终端通过去除热力图关键点中的异常点,提高了手势识别的稳定性和准确率。

在其中一个实施例中,所述单点热力图回归模型对所述手部图像进行处理得到手势类型识别结果的方式,包括:将手部图像输入到单点热力图回归模型得到每个第一关键点对应的单点热力图。解析每个单点热力图分别得到第一关键点的坐标。根据第一关键点的坐标得到手势类型识别结果。

具体地,终端将手部图像进行预处理,之后将手部图像输入到单点热力图回归模型中。其中预处理过程包括将手部图像的大小调整为(64,64,3),64和64代表图像的分辨率,第三维的3代表红绿蓝RGB三个通道。然后终端将手部图像的灰度值归一化到(-1,1),最后终端对第一维进行维度扩展,具体格式转换成(1,64,64,3),其中第一维的1表示一帧图像。

终端在获得手部图像的热力图矩阵后,转化计算得到关键点坐标:

在单点热力图中,手部21个关键点及具体对应标号如图10所示,左右手对称。终端通过判断除大拇指外共有几根手指伸展开,以及对大拇指状态来判断关键点所对应的手势类型。其中判断伸展的数学方法是比较各指尖关键点与掌心距离是否超过阈值。具体定义的手势类型和实际手势对应关系如图11所示。具体规则如下,且按照顺序进行定义,前后顺序不可更改,后面的规则结果覆盖前面的结果。第一部分规则:类型1、类型2、类型3分别对应食指、中指和无名指三根手指伸展的数量,即为对应的数字手势。第二部分规则:正常状态下,食指、中指、无名指和小拇指都伸展开,则判断为类型4。由于模型存在误检,实际测试中存在将小拇指识别为大拇指的情况,需要做进一步的校正。若食指、中指、无名指都伸展,小拇指未伸展且大拇指距离超过阈值,校正为类型4。第三部分规则:在其他4根手指都伸展的情况下,大拇指也伸展,则判断为类型5。但是由于存在模型对大拇指和小拇指的误检,类型4和类型5之间容易误判。手势类型5的判断主要依赖静态分类模型,类型4也会在汇总模型中被进一步识别。第四部分规则:在有效的关键点中,大拇指指尖在图像中的位置高于其他所有点,且要求大拇指指尖与掌心距离大于阈值,则判断为类型6。第五部分规则:在有效关键点中,食指指尖在图像中的位置高于其他所有点,大拇指伸展开,且除大拇指外只有一根手指是伸展的(食指),则判断为类型8。大拇指指尖在图像中位置高于其他点,且食指是伸展开的,同样将其判断为类型8。对于类型0、类型6、类型7由其他模型进行判断。

本实施例中,终端通过判断单点热力图中关键点之间的距离特征,可以有效的识别多种手势类型。

在其中一个实施例中,全局热力图回归模型对手部图像进行处理得到手势类型识别结果的方式,包括:将手部图像输入至全局热力图回归模型中得到背景热力图以及包括所有第二关键点的前景热力图。对前景热力图进行解析得到第二关键点的坐标。根据第二关键点的坐标得到手势类型识别结果。

具体地,终端将手部图像进行预处理,之后将手部图像输入到全军热力图回归模型中。其中预处理过程包括将手部图像的大小调整为(64,64,3),64和64代表图像的分辨率,第三维的3代表红绿蓝RGB三个通道。然后终端将手部图像的灰度值归一化到(-1,1),最后终端对第一维进行维度扩展,具体格式转换成(1,64,64,3),其中第一维的1表示一帧图像。

终端在获得手部图像的热力图矩阵后,转化计算得到关键点坐标:

在全局热力图中,终端判断有几根手指伸展,数学方法就是比较各关键点与掌心距离是否超过阈值。具体定义的手势类型和实际手势对应关系如图11所示。因为在全局热力图中,终端无法直接将各点与几根手指一一对应,只能统计总的数量,大拇指的伸展阈值较小,需单独设置,其余手指统一计算。具体判断规则如下,且按照顺序进行定义,前后顺序不可更改,后面的规则结果覆盖前面的结果。第一部分规则:长距离手指(食指、中指、无名指和小拇指)的伸展数量即为对应的手势类型。第二部分规则:在长距离手指(食指、中指、无名指和小拇指)全部伸展的基础上,短距离手指(大拇指)也伸展,则判断手势为类型5。

本实施例中,终端通过判断全局热力图中长距离手指和短距离手指的伸展情况,可以有效的识别多种手势类型。

在其中一个实施例中,如图12所示,综合静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型,包括:

步骤S1202,将静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果中的手势类型分别添加至三个预设帧数的手势时间窗中。

具体地,手势时间窗可以是一个固定长度的动态序列,一个时间窗内可以存储固定帧数图像的识别结果。终端每次得到一帧手部图像的静态手势分类结果,终端就按照时间顺序用新的静态手势分类模型的识别结果替换对应动态序列中最早的静态手势分类模型识别结果。同理,将单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果中的手势类型分别添加至三个预设帧数的手势时间窗内,并进行动态更新。

步骤S1204,从手势时间窗内所有手势类型中获取具有最高出现频率的手势类型以及对应的出现频率作为手势时间窗对应的初始手势类型识别结果。

具体地,终端为了解决可能存在的极短时间内的识别结果变化太快的问题,取一段缓冲时间段,以某时刻前段时间的识别结果的众数作为该时刻的平滑结果。在实际测试中,识别过程中存在异常识别的情况,在由手势A变化为手势B的过程中,可能有的识别成了A或是B,或是由于光线及纹理等因素干扰,但在连续的多帧检测结果中,此类异常情况仅突然出现在某个瞬间,若是将每帧实际结果作为最终结果显示在每一帧图像上,此类零星的异常情况将会造成极大干扰。终端通过对固定长度的时间窗内的结果进行平滑融合,可以过滤掉异常情况。统计连续固定帧数的识别结果,取其中出现频次最高的识别结果作为时间窗的初始手势类型和初始置信度。

假设识别速度为30fps,即识别一帧内的手势只需0.033秒。(fps,算法性能评估指标,指每秒种能处理多少张图片,如100fps表示每秒钟能处理100张图片)。在实际应用中,人的手势一般不会每秒内变化超过3次,因此考虑将0.33秒内的10帧图像内的识别结果融合为一种。通过对长度为10帧的时间窗内的结果进行平滑融合,过滤掉异常情况,只选取前10帧内的一个代表性的结果作为当前帧的结果,避免单帧异常造成结果的错误。例如某一时刻前10帧中识别到了手势类型5出现了3次,手势类型4出现了6次,手势类型3出现了1次,因为手势类型4出现的次数最多,因此将手势类型4作为该时刻的初始手势类型,且将时间窗内的频率0.6(6/10)作为此结果的时间窗初始置信度,而不是直接采取该时刻的模型瞬时识别结果。

步骤S1206,根据预设的融合判断规则,将静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的手势时间窗的初始手势类型识别结果和静态手势分类模型对应的手势类型识别结果进行处理得到目标手势和对应的置信度。

其中,静态手势分类模型的输出为每一帧图像手势识别结果和相应的置信度,称之为实时类型和实时置信度。单点热力图和全局热力图的输出为每一帧图像的识别出的手势类型,没有实时置信度。

具体地,终端在三个固定帧数的时间窗内,分别统计三个模型的识别结果,取各自时间窗内频次最高的手势和对应的频率作为各自时间窗内统计结果和时间窗统计置信度。终端通过互斥的融合判断规则进行判断并选择采用的识别结果,之后终端再对选择的识别结果进行校正。终端按照融合判断规则执行并进行校正后,对于静态手势分类模型,单点热力图回归模型以及全局热力图回归模型,最终只会保留其中一个手势的识别结果和对应的置信度,这便是目标手势和对应的置信度。

融合判断规则如下,总体上按照固定顺序进行判断,前后顺序不可更改,后面的规则结果覆盖前面的结果。

第一部分融合判断规则:当静态手势分类模型对当前帧的实时类型和静态分类时间窗的初始手势类型都为类型5,且实时置信度不小于0.8,时间窗初始置信度不小于0.7,则信赖静态手势分类模型的时间窗初始手势类型和对应的初始置信度。

第二部分融合判断规则:当不满足第一部分融合判断规则时,但静态手势分类模型的时间窗初始置信度超过单点热力图的时间窗初始置信度,且静态手势分类模型的时间窗初始置信度不小于0.7,则信赖静态手势分类模型的时间窗初始手势类型和对应的初始置信度。

第三部分融合判断规则:当第一部分融合判断规则和第二部分融合判断规则都不满足时,但单点热力图的时间窗初始置信度不小于0.7,则信赖单点热力图的时间窗初始手势类型和对应的初始置信度。

第四部分融合判断规则:当第一、第二和第三部分的融合判断规则都不满足时,以默认值为最终的手势类型,默认的手势类型为类型0。

终端在进行融合判断后,对融合判断后的结果进行多次校正。

第一次校正:当静态手势分类模型的实时类型为类型1,而单点热力图的时间窗初始手势类型为8,且对应的初始置信度不小于0.7时,则信赖单点热力图的时间窗初始手势类型和初始置信度。

第二次校正:当全局热力图的时间窗初始手势类型为类型3和类型4之一,且初始置信度不小于0.7时,或者全局热力图的时间窗初始手势类型为类型1和类型2之一,且全局热力图和单点热力图的时间窗初始手势类型相同时,则信赖全局热力图的时间窗初始手势类型和对应的初始置信度。

第三次校正:当静态手势分类模型的实时类型为类型6和类型7之一,且对应的实时置信度不小于0.8,或者,静态手势分类模型的时间窗初始类型为类型6和类型7之一,且对应的时间窗初始置信度不小于0.7,则信赖静态手势分类模型的识别结果。

终端将被信赖的手势识别结果作为目标手势和对应的置信度。

本实施例中,终端通过融合静态手势分类模型、单点热力图回归模型以及全局热力图回归模型的识别结果,极大提高了手势识别的准确率。

为了使得本领域技术人员充分了解本申请中的手势识别方法,下文就给出手势识别方法的整体实施例:

本实施例中,如图13所示,终端从视频流中读取一帧三通道RGB彩色图像,将图像大小调整为128*128*3并输入到手部检测模型进行手部检测。手部检测模型主要由骨干网络、辅助分类器、锚点框分类器和边框回归器组成。

本实施例中,将已有标注数据Ego3D、Frei和RHD中的关键点标注转换成了手部框标注,并且通过随机裁剪的方式,获得了大约4w张可用于前置摄像头场景的训练集。另外,为了丰富数据集,本实施例再从IPN中随机抽取了6w张样本,进行重新标注,获得了一个场景丰富,背景复杂的前置摄像头手部检测训练数据集。

本实施例利用了笔记本前置摄像头采集了约13k样本进行测试。测试结果表明本发明提出的手部检测器,在测试集上AP为95.6%,辅助分类任务的准确率为98.2%.辅助分类任务可以达到很高的准确率,能够很大程度地在手部检测阶段降低误判率。由于手部肤色特征和面部肤色特征十分相似,因此手部检测器在手部与面部重合,以及图像中有面部但没有手部时容易产生误判。而本发明提出的手部检测模型中的辅助分类器很好地解决了这个问题。

本实施例中,如图13所示,当手部检测模型没有从输入图像中检测出手时,终端重新读取新的一帧图像。当手部检测模型识别出输入图像中存在一只手时,得到存在手部的边框坐标,按照边框坐标从输入图像中裁剪出需要的手部图像。终端对手部图像进行预处理,得到1*64*64*3的手部RGB彩色图像和1*64*64*1的手部灰度图像。终端将手部彩色图像分别输入到单点热力图回归模型和全局热力图回归模型,得到64*64的21幅单点热力图以及64*64的全局前景热力图以及全局背景热力图,再通过解析热力图得到21个单点热力图的关键点以及6个全局热力图的关键点。终端将手部灰度图像输入到静态手势分类模型中,得到一个有两个元素的数组,即图中的(2,)。元素分别为手部是否存在的置信度,以及各类手势的置信度。

本实施例的静态手势分类数据主要来源为number_gesture、CMU、Frei、face、front_camera、搜索引擎。其中,number_gesture包含纯手部的图像,主要是0~8的各类手势;CMU、Frei和front_camera包含形式各异的手部图像,而face主要为各种脸部图像。按照自定义的8类手势,从上述各数据源以及搜索引擎中搜集合适的样本,每一类手势平均大约600张图像。由于原始数据集的背景比较简单,且数量较少,为了适应实际应用场景的需求,且避免过拟合的情况,因此对原始数据集进行必要的预处理:本实施例根据原始数据集中手势的姿态,结合实际场景中可能出现的各种手势姿态,对原始样本进行水平翻转(对应左右手的变换)、适当角度的旋转(介于±45°之间)、灰度均衡、亮度调节以及加噪等常用的数据增强处理,可增加数据集的数量和多样性。本实施例按照HSV格式对手部图像进行前景提取,从而将手部的背景置换为实际应用场景中可能出现的各类背景图,包括从face和搜索引擎中提取的人脸、家具、墙壁等。另外,本实施例在原始数据集的基础上,按照真实的手部区域不超过样本图像总面积的30%的阈值,尤其是针对干扰性比较强的人体皮肤区域,进行相应的裁剪和填充处理,建立不存在手部的负样本集。经过数据增强后,最终获得总的数据集中包含176026张大小为64*64的样本图,正负样本比例为1:0.87。

本实施例中的热力图回归数据集主要来源为CMU和Frei两个公开数据集,包含室内场景真实拍摄和置换室外各种背景的图像,以及对应图像的21个手部关键点的坐标标注。根据实际数据需求,对数据集进行预处理:对原始数据集中的图像和标注坐标信息进行可视化校验,清洗其中明显错误的图像和标注数据。与手势分类数据集的背景置换相同,提取样本图中的手部图像,对其背景置换为人脸及墙壁等个人电脑前置摄像头中常见的背景图。根据二维高斯核,将所有的关键点坐标信息生成相应的热力图矩阵,作为样本图对应的标签。

本实施例中,如图13所示,当静态手势分类模型检测到存在手部的置信度小于等于设定的阈值时,重新读取一帧图像。当静态手势分类模型检测到存在手部的置信度大于设定的阈值时,终端根据清洗规则清洗异常的关键点。终端根据预先设置的规则定义对清洗后的热力图关键进行判断分别得到三个模型(单点热力图回归模型、全局热力图回归模型和静态手势分类模型)的识别结果。终端将三个模型的识别结果分别计入到固定长度的手势时间窗,在本实施例中为10帧图像的手势时间窗。终端以三个时间窗内统计频率为参考指标,根据三个模型判断的优缺点,进行互相组合验证,最终确定目标手势类型和对应的置信度。当目标手势的置信度大于设定的阈值时,终端采纳该结果,否则终端重新读取下一帧新的图像。

本实施例中,模型使用TITAN X GPU进行训练,应用的主要框架为TensorFlow。在具体模型训练过程中,手部检测、手势分类和热力图回归模型是分作三个独立实验进行处理。静态手势分类模型训练的batch_size为256,采用的优化器为Adam。初始训练epochs和learning rate分别为800和0.001,并设置早停方案和学习率衰减策略。当验证集损失值在连续8个epoch中减小量都不超过阈值时,为防止模型继续训练导致的过拟合现象,将选择停止训练任务。同时,若验证集损失值在连续4个epoch中减小量都小于learning rate阈值时,按照0.1的衰减率进行调整。在基于以上策略的训练过程中,分类模型经历不同学习率的训练后,在300次迭代内完成收敛。热力图回归模型训练的batch_size为128,采用的优化器为Adam。初始训练epochs和learning rate分别为1000和0.001,并与分类模型采取的早停和学习率衰减的策略基本相同,细节的区别在于允许loss连续下降较小的epoch区间更大,且对应的阈值按照实际训练情况进行调整,在500次迭代内完成收敛。

本实施例的主要目标为手部检测和手势识别,因此核心的评估指标主要包含手部检测和各个手势对应的准确率、召回率及F1值。

同时,根据热力图计算的关键点坐标对手势分类结果也有重要影响,应用均方差作为关键点预测结果的评估指标。

均方差计算公式为:

其中,m表示测试样本总数,x

首先,在建立的数据集中按照8:1:1的比例随机设置训练集、验证集和测试集,模型在测试集上的测试结果如下表左边部分所示。同时,由于本论文研究目的主要侧重于实际场景中的实时应用,因此对实际场景下采集的5段平均时长为70秒的视频进行连续帧测试,对于自定义的8类手势的识别结果如下表右边部分所示。

表2不同测试样本上的识别结果

对比两类测试样本的结果,分析训练样本和两类测试样本发现,引起两者巨大的差异的因素主要有两点:第一点,由于本实施例中的手势主要是根据实际需求进行自定义的手势类别,无法直接应用公开数据集中的巨量样本,而是主要来源于各类数据集中符合本研究要求的小部分样本,因此样本量不够大,且各类手势原始样本数量不均衡。虽然经过数据增强增加了数据量和多样性,但训练样本与实测视频中的图像整体上仍存在较为明显的差异,不同类别的样本质量和数量也无法兼顾,因此在实测中表现为泛化性不足,平均准确率和召回率较低,且各类手势之间的测试效果也存在较大的差异。第二点,由于实测视频考虑到个人电脑前置摄像头中可能出现的多种情况,尤其是手部与脸部存在交叉或是重叠的情况,两个部位的皮肤颜色及纹理高度相似,会造成极大的干扰。而训练样本中虽然也人工合成了类似样本,但由于合成图像中手部和脸部都是随机从不同样本中采集而来,模型对细小差异的特征的学习不够完善,因此在此类干扰性较强的场景下的测试效果极其不稳定。

有鉴于分类器在实测中的缺陷,在实际应用中,补充两种方法实现更准确且更稳定的预测结果。第一种,由于实际应用场景为具有连续性的视频,可尝试引入滑动时间窗的方法,消除异常的波动,得到更稳定的结果。因为平均识别速率为30FPS,在不影响实时性的情况下,可设置滑动时间窗的宽度为10帧,即以每一时刻前9帧图像以及当前帧的识别结果作为时间窗内统计结果,取其中频率最大的手势类别作为当前帧的识别结果,并将其频率作为是否采纳此识别结果的参考值。第二种,由于分类任务中对不同类别手势的识别率差异较大,尤其是针对部分图像特征相近的手势容易出现混淆的情况,考虑通过手部关键点进行区分。基于热力图回归模型,计算对应的关键点坐标。根据单点热力图回归结果,可按照标号计算出手部21个关键点的坐标,各关键点之间的相对位置明确。通过一一对应的21个关键点,可详细描述手部的姿态。根据关键点之间的联系与区别,可基于其中特定关键点定义规则,判断手势的类别。但由于样本集和实测场景的差异,尤其是存在相似颜色和纹理的面部皮肤特征干扰,完全准确地预测21个一一对应的关键点并非易事,且手部状态较为复杂时,各点之间容易造成误差,而不可靠的关键点用于规则判断将会造成误判,因此只能用于部分稳定手势的判断区分。根据全局热力图回归结果,可计算出手腕和5根手指的指尖,总共6个关键点的坐标。根据各指尖点与手腕处的距离作为衡量指标,判断手势类别。仅6个关键点可表示的手部姿态较为粗略,只能用于特定的手势判断,而优势在于预测结果稳定可靠。

以10帧作为时间窗宽度,对纯静态手势分类模型C、分类模型+单点热力图模型(C+H1),以及分类模型、单点热力图和全局热力图的融合(C+H1+H2)分别在5段采集的测试视频中进行测试,对于自定义的8类手势的识别结果单独分析,统计结果如下表所示:

表3时间窗下的多模型准确率结果

表4时间窗下的多模型召回率结果

对比表2和表3内的仅使用分类模型在相同测试视频中测试结果,在增加了滑动时间窗的条件下,平均准确率提高了40.1%,表明滑动时间窗的设置可有效提高连续帧样本的识别准确率。

同时对比表3和表4中增加了单点热力图的模型(C+H1)与纯分类模型(C),在相同测试样本上的实验结果,在增加了单点热力图模型的条件下,对类别“1”的手势识别准确率提高了95.8%,对类别“6”、“7”和“8”的召回率分别提高了20.5%、90.6%和209%,且在准确率和召回率的绝对值上有着显著的提高,表明单点热力图的增加可以实现对部分手势识别率明显的改善。

同时对比表2和表3中增加两个热力图模型(C+H1+H2)与纯分类模型(C),在相同测试样本上,对类别“2”、“3”和“5”的准确率分别提高了12.4%、232%和118%,对类别“2”的召回率提高了26.4%,且对类别“3”和“4”手势的召回率有了极显著的改善,表明进一步增加全局热力图模型(H2)对部分手势的识别率的提高有着极重要的作用。

根据单点热力图可计算出手部21个关键点对应的坐标,在按照8:1:1的比例分离的CMU和Frei测试集上测试结果如表5所示:

表5单点热力图模型的关键点回归结果

测试效果如图14所示。

本实施例运行时所占用的磁盘空间和推理时间如表6所示:

表6各模型的大小和推理时间

由表6可知,本发明是一个可在PC端实时运行的系统。本实施例充分考虑了兼顾了性能和准确了率。整个系统运行可实时运行在cpu上,并且只需要31ms,四个模型内存占用共只有15.1MB。(D表示手部检测器、C表示分类器、H1表示单点热力图模型、H2表示全局热力图模型.)

应该理解的是,虽然图1、图9和图12的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图9和图12中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图15所示,提供了一种手势识别装置,包括:

手部检测模块100,用于获取待检测图像,并通过手部检测模型对待检测图像进行手部检测。

图像裁剪模块200,用于当检测出图像中有手存在时,从图像中裁剪出手部图像。

模型识别模块300,用于分别通过静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对手部图像进行处理以得到对应的手势类型识别结果。

综合判定模块400,用于综合静态手势分类模型、单点热力图回归模型以及全局热力图回归模型所得到的手势类型识别结果,得到目标手势类型。

在一个实施例中,手势识别装置还包括:骨干网络模块,用于通过手部检测模型中的骨干网络提取待检测图像的多尺度特征图。锚点框分类模块,用于计算多尺度特征图中的锚点框中存在手部的第一置信度。边框回归模块,用于获取第一置信度符合要求的锚点框的位置。辅助分类模块,用于获取第一置信度符合要求的锚点框的位置;输出模块,用于将手部存在结果、锚点框的位置以及对应的第一置信度作为手部检测模型的输出结果。

在一个实施例中,模型识别模块还包括:静态分类单元,用于将手部图像输入到静态手势分类模型中得到手部图像中是否存在手部的第二置信度、静态手势类型以及与静态手势类型对应的第一手势置信度。关键点坐标获取单元,用于通过单点热力图回归模型以及全局热力图回归模型分别对手部图像分别进行处理得到对应的关键点坐标。静态手势判定单元,用于当根据第二置信度判断手部图像中不存在手部时,则继续获取待检测图像。当根据第二置信度判断手部图像中存在手部时,根据单点热力图回归模型以及全局热力图回归模型计算得到的关键点坐标得到单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果。

在一个实施例中,手势识别装置还包括:单点热力图清洗模块,用于根据预设的单点热力图清洗规则清洗对单点热力图回归模型处理得到的关键点进行清洗处理。全局热力图清洗模块,用于根据预设的全局热力图清洗规则对全局热力图回归模型处理得到的关键点进行清洗处理。

在一个实施例中,模型识别模块还包括:单点热力图单元,用于将手部图像输入到单点热力图回归模型得到每个第一关键点对应的单点热力图。单点热力图解析单元,用于解析每个单点热力图分别得到第一关键点的坐标。单点热力图分类单元,用于根据第一关键点的坐标得到手势类型识别结果。

在一个实施例中,模型识别模块还包括:全局热力图单元,用于将所述手部图像输入至全局热力图回归模型中得到背景热力图以及包括所有第二关键点的前景热力图。全局热力图解析单元,用于对所述前景热力图进行解析得到所述第二关键点的坐标。全局热力图分类单元,用于根据第二关键点的坐标得到手势类型识别结果。

在一个实施例中,手势识别装置还包括:时间窗口添加模块,将静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的手势类型识别结果中的手势类型分别添加至三个预设帧数的手势时间窗中。初始手势获取模块,用于从手势时间窗内所有手势类型中获取具有最高出现频率的手势类型以及对应的出现频率作为手势时间窗对应的初始手势类型识别结果。融合判断模块,用于根据预设的融合判断规则,将静态手势分类模型、单点热力图回归模型以及全局热力图回归模型对应的手势时间窗的初始手势类型识别结果和静态手势分类模型对应的手势类型识别结果进行处理得到目标手势和对应的置信度。

关于手势识别装置的具体限定可以参见上文中对于手势识别方法的限定,在此不再赘述。上述手势识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种手势识别方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 手势识别装置、手势识别方法、计算机设备和存储介质
  • 手势识别方法、装置、设备与计算机可读存储介质
技术分类

06120112739769