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

技术领域

本发明涉及计算机技术领域,具体涉及一种手势识别方法、装置、计算机设备及存储介质。

背景技术

随着人工智能AI技术的快速发展,人机交互的方法得到了极大的扩展。手势交互是人机交互中应用最为广泛的方法,利用不同的手势可以传达不同指令。目标手势识别主要分为三个方向,一个是利用图像进行识别,一个是利用手套等可穿戴设备进行识别,一个是利用生理信号产生的电压信号来识别。其中,利用图像进行识别由于不需要额外的设备,所以成为了关注的热点。

传统的利用图像进行手势识别,往往需要比较复杂的模型,计算速度慢,难以达到实时性的要求。

发明内容

基于此,有必要针对上述问题,提出一种手势识别方法、装置、计算机设备及存储介质,该手势识别方法实现了准确并实时地对手势进行识别。

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

获取包含有待识别手势的目标图像;

将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;

获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;

根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

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

获取模块,用于获取包含有待识别手势的目标图像;

输入模块,用于将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;

输出模块,用于获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;

确定模块,用于根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取包含有待识别手势的目标图像;

将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;

获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;

根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取包含有待识别手势的目标图像;

将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;

获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;

根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

上述手势识别方法、装置、计算机设备及存储介质,首先获取包含有待识别手势的目标图像;然后将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,该三个子模型为并列关系,在模型内部三个子模型可以并行执行,有利于提高手势识别的速度,最后根据三个子模型的输出结果来共同确定手势类别和标定框的位置,有利于提高手势识别的准确度。另外,该手势识别方法不需要复杂的计算过程,适用于在终端进行部署。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

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

图2是一个实施例中标定框定位手势的示意图;

图3是一个实施例中手势识别模型的识别流程示意图;

图4是一个实施例中采用第一子模型进行预测的流程图;

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

图6是另一个实施例中手势识别装置的结构框图;

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

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,提出了一种手势识别方法,该手势识别方法可以应用于终端,也可以应用于服务器,本实施例以应用于终端举例说明。该手势识别方法具体包括以下步骤:

步骤102,获取包含有待识别手势的目标图像。

其中,目标图像是指待识别的手势图像。目标图像可以是通过摄像头直接拍摄得到的原始图像。目标图像也可以是对原始图像进行预处理之后得到的图像。在一个实施例中,采用单目摄像头进行拍摄得到原始图像(RGB图像),然后将原始图像处理为符合预设标准尺寸的目标图像。

步骤104,将目标图像作为手势识别模型的输入,手势识别模型包括:三个子模型,三个子模型为并列关系,第一子模型用于预测手势类别以及手势中心点,第二子模型用于预测手势中心偏移量,第三子模型用于预测标定框的长和宽。

其中,手势识别模型中包括了三个子模型,三个子模型为并列关系。将目标图像输入到手势识别模型后,首先对目标图像进行特征提取,得到特征图,然后将特征图分别作为三个子模型的输入,然后三个子模型可以并行处理,分别执行不同的处理任务,有利于提高识别的速度。

第一子模型用于预测手势类别以及手势中心点,手势中心点的识别是为了确定手势的位置。第二子模型用于预测手势中心偏移量。之所以要预测手势中心偏移量,是因为为了提高计算速度,输入到手势识别模型的目标图像在处理的过程中会涉及到下采样,导致标注的中心点的位置会因为数据离散而产生偏差,所以需要对手势中心偏移量进行预测。第三子模型用于预测标定框的长和宽。对于手势的识别,不仅是要确定图像中手势的类别,还需要确定手势在图像中的位置。对于一张图像中包含有多个手势的情况,需要预测出每个手势的位置以及类别,通过预测标定框的长和宽,结合手势中心点可以准确地确定出手势的位置。

步骤106,获取手势识别模型输出结果,输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽。

其中,手势识别模型的输出结果实际上就是三个子模型的输出结果,包括:第一子模型输出的手势类别以及手势中心点,第二子模型输出的手势中心点偏移量和第三子模型输出的标定框的长和宽。标定框的作用是确定手势所在的位置,即对手势进行定位,如图2所示,为一个实施例中,标定框定位手势的示意图。

步骤108,根据输出结果确定待识别手势的手势类别和标定框的位置。

其中,根据输出结果中的手势中心点、手势中心点偏移量和标定框的长和宽就可以计算得到标定框各个角的坐标,即确定了标定框的位置。手势类别就是输出结果中包含的手势类别,该手势类别就是识别得到的最终的手势类别。如图2所示,为识别得到手势以及标定框的位置示意图。

在一个实施例中,选用专用推理框架TensorRT进行推理,即根据输出结果进行推理得到手势类别和标定框的位置。由于TensorRT只接受ONNX模型作为输入,所以需要将手势识别模型转换为ONNX模型。

上述手势识别方法、装置、计算机设备及存储介质,首先获取包含有待识别手势的目标图像;然后将目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,该三个子模型为并列关系,在模型内部三个子模型可以并行执行,有利于提高手势识别的速度,最后根据三个子模型的输出结果来共同确定手势类别和标定框的位置,有利于提高手势识别的准确度。另外,该手势识别方法不需要复杂的计算过程,适用于在终端进行部署。

在一个实施例中,所述手势识别模型还包括:特征提取子模型,所述特征提取子模型用于对输入的目标图像进行特征提取得到特征图,将所述特征图分别作为所述三个子模型的输入。

其中,特征提取子模型用于对目标图像中的特征进行提取得到特征图,特征提取采用卷积神经网络来实现。在一个实施例中,为了保证手势识别的实时性,特征提取子模型采用轻量化网络来实现,比如,可以采用MobileNetV2来实现,在保证精度的同时可以实现实时性的保障。如图3所示,为一个实施例中,手势识别模型的识别流程示意图。首先,特征提取子模型根据输入的目标图像进行特征图的提取,提取得到特征图后,将提取到的特征图分别作为三个子模型的输入,第一子模型、第二子模型和第三子模型都可以采用卷积神经网络模型来实现。第一子模型用于根据特征图进行手势类别以及手势中心点的识别;第二子模型用于根据特征图预测手势中心偏移量;第三子模型用于根据特征图预测标定框的长和宽。

如图4所示,为一个实施例中,采用第一子模型进行预测的流程图,包括:

步骤402,将特征图作为所述第一子模型的输入,第一子模型用于对所述特征图进行处理,得到每个手势类别对应的热图。

其中,第一子模型中包含有多层卷积层,卷积层用于对特征图进行进一步的特征提取,最后得到每个手势类别对应的热图。比如,假设一共有18种手势类别,那么将会得到18张热图,即一张热图对应一个手势类别。

步骤404,对每个热图进行池化处理得到每个热图中前预设个数的峰值点,根据每个热图中前预设个数的峰值点确定出最大峰值点,将最大峰值点所在热图对应的手势类别作为识别到的手势类别,将最大峰值点作为所述手势的中心点。

其中,池化处理是进行降维处理,保留主要特征。通过最大池化处理,选出每一张热图上的峰值点,具体地,可以选择保留邻近的8个点中的最大值点来作为峰值点。比如,一个3X3的图片,表示为矩阵形式为

在一个实施例中,所述手势识别模型的训练采用如下步骤:获取训练数据集,所述训练数据集包括包含有手势的训练图片和对所述训练图片中的手势对应的标注,所述标注包括:手势类别和标定框坐标,所述标注用于确定所述手势识别模型的期望输出;将所述训练图片作为所述手势识别模型的输入,获取所述手势识别模型中三个子模型的实际输出,根据所述实际输出和期望输出采用损失函数计算得到损失值;根据所述损失值采用反向传播算法更新所述手势识别模型中的权重,以使所述损失值减小,直到达到收敛。

其中,手势识别模型的训练采用有监督的训练方式。首先获取训练数据集,训练数据集中包含有训练图片和对训练图片中手势进行的标注,标注包括:手势类别和标定框坐标。根据标定框坐标可以确定手势中心点位置和标定框的长和宽。期望输出包括:期望输出的手势中心点、期望输出的标定框的长和宽。

采用损失函数计算得到实际输出与期望输出之间的损失值,然后根据损失值采用反向传播算法更新手势识别模型中的权重,是损失值朝着减小的方向进行变化,直到达到收敛,完成对手势识别模型的训练。

在一个实施例中,所述根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置,包括:根据所述手势中心点和所述手势中心偏移量计算得到目标手势中心点;根据所述目标手势中心点和所述标定框的长和宽计算得到标定框的位置。

其中,根据第一个子模型的输出可以得到初步预测的手势中心点的位置(x1,y1),根据第二个子模型可以得到偏移量(a,b),至此可以得到手势中心点坐标为(x1+a,y1+b)。根据第三个子模型可以得到标定框的长宽(w,h).所以整个标定框左下角坐标为(x-w/2,y-h/2),右上角坐标为(x+w/2,y+h/2),由这两个点就可以划出标定框,即手势定位。

在一个实施例中,所述获取包含有待识别手势的目标图像,包括:获取包含有待识别手势的原始图像,所述原始图像为采用单目摄像头采集到的RGB图像;对所述原始图像进行预处理,得到预设尺寸的目标图像。

其中,本申请中采用单目摄像头拍摄得到的RGB图像就可以实现对手势的识别,即对图像的要求不高。对图像进行预处理,是指将图像处理为标准大小,比如,统一处理为512X 512的尺寸。具体地,在得到原始图像后,在保证维持图形的平直性的前提下通过仿射变换,转换成512X 512的尺寸。

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

获取模块502,用于获取包含有待识别手势的目标图像;

输入模块504,用于将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;

输出模块506,用于获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;

确定模块508,用于根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

在一个实施例中,所述手势识别模型还包括:特征提取子模型,所述特征提取子模型用于对输入的目标图像进行特征提取得到特征图,将所述特征图分别作为所述三个子模型的输入。

在一个实施例中,所述输入模块还用于将所述特征图作为所述第一子模型的输入,所述第一子模型用于对所述特征图进行处理,得到每个手势类别对应的热图;对每个所述热图进行池化处理得到每个热图中前预设个数的峰值点,根据每个热图中前预设个数的峰值点确定出最大峰值点,将所述最大峰值点所在热图对应的手势类别作为识别到的手势类别,将所述最大峰值点作为所述手势的中心点。

如图6所示,在一个实施例中,上述手势识别装置还包括:

训练模块501,用于获取训练数据集,所述训练数据集包括包含有手势的训练图片和对所述训练图片中的手势对应的标注,所述标注包括:手势类别和标定框坐标,所述标注用于确定所述手势识别模型的期望输出;将所述训练图片作为所述手势识别模型的输入,获取所述手势识别模型中三个子模型的实际输出,根据所述实际输出和期望输出采用损失函数计算得到损失值;根据所述损失值采用反向传播算法更新所述手势识别模型中的权重,以使所述损失值减小,直到达到收敛。

在一个实施例中,确定模块还用于根据所述手势中心点和所述手势中心偏移量计算得到目标手势中心点;根据所述目标手势中心点和所述标定框的长和宽计算得到标定框的位置。

在一个实施例中,获取模块还用于获取包含有待识别手势的原始图像,所述原始图像为采用单目摄像头采集到的RGB图像;对所述原始图像进行预处理,得到预设尺寸的目标图像。

在一个实施例中,所述特征提取子模型采用轻量化网络实现。

图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述的手势识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述的手势识别方法。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取包含有待识别手势的目标图像;将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

在一个实施例中,所述手势识别模型还包括:特征提取子模型,所述特征提取子模型用于对输入的目标图像进行特征提取得到特征图,将所述特征图分别作为所述三个子模型的输入。

在一个实施例中,所述第一子模型用于预测手势类别以及手势中心点,包括:将所述特征图作为所述第一子模型的输入,所述第一子模型用于对所述特征图进行处理,得到每个手势类别对应的热图;对每个所述热图进行池化处理得到每个热图中前预设个数的峰值点,根据每个热图中前预设个数的峰值点确定出最大峰值点,将所述最大峰值点所在热图对应的手势类别作为识别到的手势类别,将所述最大峰值点作为所述手势的中心点。

在一个实施例中,所述手势识别模型的训练采用如下步骤:获取训练数据集,所述训练数据集包括包含有手势的训练图片和对所述训练图片中的手势对应的标注,所述标注包括:手势类别和标定框坐标,所述标注用于确定所述手势识别模型的期望输出;将所述训练图片作为所述手势识别模型的输入,获取所述手势识别模型中三个子模型的实际输出,根据所述实际输出和期望输出采用损失函数计算得到损失值;根据所述损失值采用反向传播算法更新所述手势识别模型中的权重,以使所述损失值减小,直到达到收敛。

在一个实施例中,所述根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置,包括:根据所述手势中心点和所述手势中心偏移量计算得到目标手势中心点;根据所述目标手势中心点和所述标定框的长和宽计算得到标定框的位置。

在一个实施例中,所述获取包含有待识别手势的目标图像,包括:获取包含有待识别手势的原始图像,所述原始图像为采用单目摄像头采集到的RGB图像;对所述原始图像进行预处理,得到预设尺寸的目标图像。

在一个实施例中,所述特征提取子模型采用轻量化网络实现。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:获取包含有待识别手势的目标图像;将所述目标图像作为手势识别模型的输入,所述手势识别模型包括:三个子模型,所述三个子模型为并列关系,所述第一子模型用于预测手势类别以及手势中心点,所述第二子模型用于预测手势中心偏移量,所述第三子模型用于预测标定框的长和宽;获取所述手势识别模型输出结果,所述输出结果包括:手势类别、手势中心点、手势中心点偏移量和标定框的长和宽;根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置。

在一个实施例中,所述手势识别模型还包括:特征提取子模型,所述特征提取子模型用于对输入的目标图像进行特征提取得到特征图,将所述特征图分别作为所述三个子模型的输入。

在一个实施例中,所述第一子模型用于预测手势类别以及手势中心点,包括:将所述特征图作为所述第一子模型的输入,所述第一子模型用于对所述特征图进行处理,得到每个手势类别对应的热图;对每个所述热图进行池化处理得到每个热图中前预设个数的峰值点,根据每个热图中前预设个数的峰值点确定出最大峰值点,将所述最大峰值点所在热图对应的手势类别作为识别到的手势类别,将所述最大峰值点作为所述手势的中心点。

在一个实施例中,所述手势识别模型的训练采用如下步骤:获取训练数据集,所述训练数据集包括包含有手势的训练图片和对所述训练图片中的手势对应的标注,所述标注包括:手势类别和标定框坐标,所述标注用于确定所述手势识别模型的期望输出;将所述训练图片作为所述手势识别模型的输入,获取所述手势识别模型中三个子模型的实际输出,根据所述实际输出和期望输出采用损失函数计算得到损失值;根据所述损失值采用反向传播算法更新所述手势识别模型中的权重,以使所述损失值减小,直到达到收敛。

在一个实施例中,所述根据所述输出结果确定所述待识别手势的手势类别和所述标定框的位置,包括:根据所述手势中心点和所述手势中心偏移量计算得到目标手势中心点;根据所述目标手势中心点和所述标定框的长和宽计算得到标定框的位置。

在一个实施例中,所述获取包含有待识别手势的目标图像,包括:获取包含有待识别手势的原始图像,所述原始图像为采用单目摄像头采集到的RGB图像;对所述原始图像进行预处理,得到预设尺寸的目标图像。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

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

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

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

06120112436262