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

一种手势跟踪方法、设备及计算机可读存储介质

文献发布时间:2023-06-19 10:38:35


一种手势跟踪方法、设备及计算机可读存储介质

技术领域

本发明实施例涉及多媒体通信技术领域,尤其是涉及一种手势跟踪方法、设备及计算机可读存储介质。

背景技术

网络技术的发展,使得视频交互应用在人们的日常生活中非常流行。随着应用功能的增加,用户可以通过手势控制在视频中增加多种多样的视频特效。此时,对用户手势检测的结果精度直接影响视频特效的展示。

发明内容

本发明实施例提供一种手势跟踪方法、设备及计算机可读存储介质,以解决现有手势追踪方法难以准确地识别手势的问题。

第一方面,本发明的实施例提供了一种手势跟踪方法,包括:

根据骨骼关键点模型,在图像中确定手势追踪区域;

根据手势识别模型,在所述手势追踪区域内识别出手势;

获取所述手势的预设位置的置信度信息;

在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势。

可选地,在所述根据手势识别模型,在所述手势追踪区域内识别出手势之前,还包括:

对所述手势跟踪区域进行去模糊处理和补帧处理,得到处理后的手势跟踪区域;则,

所述根据手势识别模型,在所述手势追踪区域内识别出手势,包括:

根据手势识别模型,在处理后的手势跟踪区域内识别出手势。

可选地,在所述获取所述手势的预设位置的置信度信息之前,还包括:

确定所述手势的旋转角度;以及,

根据所述旋转角度,对所述手势进行旋转;则,

所述获取所述手势的预设位置的置信度信息,包括:

获取旋转后的所述手势的预设位置的置信度信息。

可选地,所述确定所述手势跟踪区域的旋转角度,包括:

通过手势识别模型,确定所述手势中的第一位置和第二位置,其中,所述第一位置和所述第二位置的连线用于指示所述手势对应的手掌中的预设手指处于伸开状态时的方向;

确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

根据所述夹角,确定所述手势跟踪区域的旋转角度。

可选地,所述确定所述第一位置和第二位置之间的连线与基准线之间的夹角,包括:

通过公式β=arctan2(|x1-x2|/|y1-y2|),确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

其中,β表示所述夹角,x1表示所述第一位置的横坐标,y1表示所述第一位置的纵坐标,x2表示所述第二位置的横坐标,y2表示所述第二位置的纵坐标。

可选地,所述根据所述旋转角度,对所述手势跟踪区域进行旋转,包括:

根据所述旋转角度,基于仿射变换,对所述手势跟踪区域进行旋转。

可选地,所述获取所述手势的预设位置的置信度信息,包括:

根据手势关键点模型,获取所述手势中N个预设位置的置信度信息,其中,N为大于1的整数。

可选地,所述置信度信息包括置信度得分;则,

在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势,包括:

获取N个预设位置的置信度得分的平均值;

在所述平均值大于第一预设阈值的情况下,确定所述手势为有效手势。

依据本发明的另一方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的手势跟踪方法的步骤。

依据本发明的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的手势跟踪方法的步骤。

本发明的实施例中,在根据骨骼关键点模型确定的手势追踪区域中进行手势识别,而不是在全图中进行手势识别,缩小了手势检测范围,且在所述手势追踪区域内识别出手势后,根据手势的预设位置的置信度信息对识别出的手势进行进一步验证,从而有效保证了手势识别的准确率。

附图说明

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

图1表示本发明实施例提供的手势跟踪方法的流程示意图之一;

图2表示本发明实施例中根据骨骼关键点模型确定手势追踪区域的示意图;

图3表示本发明实施例中手势识别模组的数据标注示意图;

图4表示本发明实施例中手势跟踪区域的旋转示意图;

图5表示本发明实施例中21点手势关键点模型的示意图;

图6表示本发明实施例提供的手势跟踪装置的结构示意图;

图7表示本发明实施例提供的电子设备的实施结构示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。另外,本文中术语“系统”和“网络”在本文中常可互换使用。

如图1所示,本发明的实施例提供了一种手势跟踪方法,由电子设备执行,该方法包括以下步骤:

步骤101:根据骨骼关键点模型,在图像中确定手势追踪区域。

本发明实施例中,可预先训练得到骨骼关键点模型,上述骨骼关键点模型可具体为半身骨骼关键点模型,将视频帧整图作为输入,经过骨骼关键点模型推理可以得到预设数量个人体关键点坐标。例如,可以得到10个人体关键点坐标。

假设关键点n的坐标为Pn,如图2所示,基于上述10个人体关键点中的8个人体关键点(P0-P7),来计算左手和右手对应的手势追踪区域。

首先,计算左手手掌中心点PL和右手手掌中心点PR;

PL=P4+(P4–P3)*0.33;PR=P7+(P7–P6)*0.33;

然后根据手掌中心点、取头长、肩宽*0.7的最小值,并扩大一定的系数为边距,组成一个正方形作为手势追踪区域,具体实现如下(||符号表示计算两点之间的距离):

d01=||P0–P1||,d01为点0到1的距离,即头长;

d25=||P2–P5||*0.7,d25为点2到5的距离即肩宽再*0.7;

side=lr*min(d01,d25),lr表示扩展系数,可取1.2-1.5,side表示边距;

xmin=max(0,PL.x–side/2),PL.x为左手手掌中心点的x坐标;

ymin=max(0,PL.y–side/2),PL.y为左手手掌中心点的y坐标;

xmax=min(w,PL.x+side/2),w为待识别图片的宽;

ymax=min(h,PL.y+side/2),h为待识别图片的高。

如图2所示,根据该xmin、ymin、xmax和ymax得到左手手势跟踪区00,该左手手势跟踪区左上顶点的坐标为(xmin、ymin)、左下顶点的坐标为(xmin、ymax)、右上顶点的坐标为(xmax、ymin)、右下顶点的坐标为(xmax、ymax)。

右手手势跟踪区的计算原理与上述左手手势跟踪区的计算原理相同,此处不再赘述。

步骤102:根据手势识别模型,在所述手势追踪区域内识别出手势。

本发明实施例中,在定位了手势追踪区域后,手势检测范围从全图缩小为上述手势追踪区域,即大大减小了手势检测范围,且确保了该手势追踪区域内至多只有一个手掌。针对该特征,上述手势模型为只有五个关键点的极小检测模型。

上述手势识别模型的设计方法如下:

1、数据标注。

在数据标注中,本发明实施例选取了单手,手掌位于图片中央且在图片中的占比超过50%,在标注检测框的基础上,增加了5个关键点(S1、S2、S3、S4和S5),作为后续校正角度的输入使用,标注示例如图3所示。

2、模型设计。

本发明实施例中,由于训练数据已有较多的先验信息(如手掌大约位于图片中央,占比超过50%,追踪区域内至多只有一个手掌等),因此,在设计计算量及体积均极小的手势识别模型时,使用了较小的输入尺寸(64x64),放弃了多尺度特征图,在单层特征图中设计更多长宽比及更密集的矩形框anchor,同时降低了用于判正样本与原标记框(groundtruth bound,GT框)的交并比(Intersection-over-Union,IoU),提高了难例挖掘的正负样本比例。

在对模型训练完毕后,能够获得针对手势追踪区域内的手势进行识别的模型,由于该追踪区域相对较小并且模型的体积也相对较小,因此具有较高的识别效率。

步骤103:获取所述手势的预设位置的置信度信息。

本发明实施例中,该预设位置可以是手势的多个关键点,如21个2D关键点,通过获取手势的预设位置的置信度信息,以便于根据该置信度信息对手势进行后验证。

步骤104:在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势。

这里,在手势追踪区域内识别出手势后,获取该手势的预设位置的置信度信息,如每个预设位置的置信度得分,在该置信度得分大于一定数值的情况下,确定该手势为有效手势。

本发明实施例的手势跟踪方法,在根据骨骼关键点模型确定的手势追踪区域中进行手势识别,而不是在全图中进行手势识别,缩小了手势检测范围,且在所述手势追踪区域内识别出手势后,根据手势的预设位置的置信度信息对识别出的手势进行进一步验证,从而有效保证了手势识别的准确率。

可选地,在所述根据手势识别模型,在所述手势追踪区域内识别出手势之前,还包括:

对所述手势跟踪区域进行去模糊处理和补帧处理,得到处理后的手势跟踪区域。

基于此,上述根据手势识别模型,在所述手势追踪区域内识别出手势,包括:

根据手势识别模型,在处理后的手势跟踪区域内识别出手势。

由于在快速运动的图像帧间,容易造成运动模糊,导致手势追踪区域内包含的手势别漏检而丢失追踪,基于此,本发明实施例采用了去模糊处理和补帧处理,来提高手势追踪区域内的图像质量。

下面分别对去模糊处理和补帧处理进行说明。

1、去模糊处理:

生成式对抗网络(Generative Adversarial Networks,GAN)网络一般用于一些高级视觉任务,此处使用GAN来解决恢复模糊的低层次视觉任务,生成器用于生成清晰图像,鉴别器区分真实且清晰图像与造假或模糊图像。经实验对比,通过去模糊处理可提高正样本检出的置信度,具体方法为:

生成器部分:使用轻量化网络mobilenet_v2为基础结构,构建4层特征图像金字塔,依据分辨率大小,依次采用对应的上采样尺寸,将特征图放大到原图大小,作为生成器的生成图像。

鉴别器部分:采用了全部和局部两部分鉴别,全局鉴别器直接对生成器全图输入作出鉴别,局部鉴别器对全图进行随机裁剪,使用裁剪后的子图作出鉴别。

2、补帧处理:

基于去模糊后的图像,判断当前帧数,若为第一帧则不作处理,否则取前一帧和当前帧输入补帧模型,基于服务器的处理能力,补帧1-3帧,使得视频更为平稳,可以大大提高追踪成功率。

本发明实施例中,对所述手势跟踪区域进行去模糊处理和补帧处理,能够有效提高手势跟踪区域的图像质量,进而能够提高手势追踪的成功率。

可选地,在所述获取所述手势的预设位置的置信度信息之前,还包括:

确定所述手势的旋转角度;

根据所述旋转角度,对所述手势进行旋转;则,

所述获取所述手势的预设位置的置信度信息,包括:

获取旋转后的所述手势的预设位置的置信度信息。

本发明实施例中,为了进一步提高手势识别的准确率,对手势进行旋转,以统一手势角度。

进一步可选地,所述确定所述手势的旋转角度,包括:

通过手势识别模型,确定所述手势中的第一位置和第二位置其中,所述第一位置和所述第二位置的连线用于指示所述手势对应的手掌中的预设手指处于伸开状态时的方向;

确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

根据所述夹角,确定所述手势的旋转角度。

本发明实施例中,上述预设手指可为中指,上述第一位置可具体为手腕中心点的位置,上述第二位置可具体为手掌中指根部的位置,此时,第一位置与第二位置的连线用于指示中指处于伸开状态时的方向。具体地,取上述数据标注过程中的部分数据,如取S3(第一位置,即手掌中指根部的位置)和S1(第二位置,即手腕中心点的位置),该第一位置和第二位置之间的连线与基准线(如竖直线)之间的夹角,表示手势需要旋转的角度。

进一步可选地,所述确定所述第一位置和第二位置之间的连线与基准线之间的夹角,包括:

通过公式β=arctan2(|x1-x2|/|y1-y2|),确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

其中,β表示所述夹角,x1表示所述第一位置的横坐标,y1表示所述第一位置的纵坐标,x2表示所述第二位置的横坐标,y2表示所述第二位置的纵坐标。

进一步可选地,所述根据所述旋转角度,对所述手势进行旋转,包括:

根据所述旋转角度,基于仿射变换,对所述手势进行旋转。

假设S3的坐标为(x1,y1),S1的坐标为(x2,y2),如图4所示,矩形框(A,F,B,E)为手势跟踪区域,并以1.2倍的比例将该手势跟踪区域进行扩展,得到矩形框(A_a,F_a,B_a,E_a),然后,以S1为旋转中心,β为旋转角度,基于仿射变换得到(Ar,Fr,Br,Er),进而得到旋转后的手势。

可选地,所述获取所述手势的预设位置的置信度信息,包括:

根据手势关键点模型,获取所述手势中N个预设位置的置信度信息,其中,N为大于1的整数。所述手势关键点模型包括手势的N个预设位置。

进一步可选地,所述置信度信息包括置信度得分;则,

在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势,包括:

获取N个预设位置的置信度得分的平均值;

在所述平均值大于第一预设阈值的情况下,确定所述手势为有效手势。

本发明实施例中的手势关键点模型可具体为heatmap的21点手势关键点模型,通过该模型能够进一步过滤掉不包含手掌的误检实例。该模型可以在确定的手势跟踪区域,预测图5所示的21个关键点(21个预设位置),同时每个关键点带有0至1的置信度得分,即当模型对该关键点的位置预测越有把握时,其置信度得分越趋近于1。当21个关键点的置信度求和平均后,低于0.5,则确定该手势追踪区域内含有手势的可能性很低,即手势跟踪区域是误检。当21个关键点的置信度求和平均后,高于或者等于0.5,则确定该手势跟踪区域有效。将旋转后的手势跟踪区域图输入至21点手势关键点模型,得到包含21个点的坐标和置信度(0-1)的预测输出,当21个点的置信度之和的平均值小于0.5,则认为该检测区域为误检,应被过滤,当21个点的置信度之和的平均值大于或者等于0.5时,则确认为有效检测。

本发明实施例的手势跟踪方法,基于骨骼关键点模型确定手势追踪区域(该手势追踪区域的面积大大小于全图的面积,即检测面积大大缩小),在该手势追踪区域内先使用补帧和去模糊处理(超分算法)提高手势追踪区域的图像质量,再使用预先训练出的极小的手势识别模型检测手势,并对手势进行21个2D关键点的检测,根据该2D关键点的置信度得分对识别出的手势进行后验证,过滤了大量错检案例,在保证校测效率的同时兼顾了准确率,另外,在使用手势识别模型检测追踪区域内的手势之前,还可以通过对手势追踪区域的角度进行旋转统一手势角度以进一步提高手势识别的准确率。

进一步地,本发明实施例的手势跟踪方法,对于非连续性的快速移动模糊手势,具有极高的检出率,且对快速移动造成的运动模糊及帧间距离过大的追踪效果远超现有技术方案,另外,本发明的手势跟踪方法,还可稳定追踪左手或右手,不会出现两手相交导致追踪错位。其中,非连续性是指手掌在一段视频连续帧内间歇性的出现(一会出现在屏幕中,一会移动到屏幕外,一会又出现在屏幕中)。

如图6所示,本发明实施例还提供了一种手势跟踪装置,应用于电子设备,该装置包括:

第一确定模块601,用于根据骨骼关键点模型,在图像中确定手势追踪区域;

识别模块602,用于根据手势识别模型,在所述手势追踪区域内识别出手势;

第一获取模块603,用于获取所述手势的预设位置的置信度信息;

第二确定模块604,用于在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势。

本发明实施例的手势跟踪装置,还包括:

第一处理模块,用于在所述识别模块所述根据手势识别模型,在所述手势追踪区域内识别出手势之前,对所述手势跟踪区域进行去模糊处理和补帧处理,得到处理后的手势跟踪区域;则,

所述识别模块602,用于根据手势识别模型,在处理后的手势跟踪区域内识别出手势。

本发明实施例的手势跟踪装置,还包括:

第三确定模块,用于在第一获取模块获取所述手势的预设位置的置信度信息之前,确定所述手势的旋转角度;

旋转模块,用于根据所述旋转角度,对所述手势进行旋转;则,

所述第一获取模块,用于获取旋转后的所述手势的预设位置的置信度信息。

本发明实施例的手势跟踪装置,所述第三确定模块包括:

第一确定子模块,用于通过手势识别模型,确定所述手势中的第一位置和第二位置,其中,所述第一位置和所述第二位置的连线用于指示所述手势对应的手掌中的预设手指处于伸开状态时的方向;

第二确定子模块,用于确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

第三确定子模块,用于根据所述夹角,确定所述手势的旋转角度。

本发明实施例的手势跟踪装置,所述第二确定子模块用于通过公式β=arctan2(|x1-x2|/|y1-y2|),确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

其中,β表示所述夹角,x1表示所述第一位置的横坐标,y1表示所述第一位置的纵坐标,x2表示所述第二位置的横坐标,y2表示所述第二位置的纵坐标。

本发明实施例的手势跟踪装置,所述旋转模块用于根据所述旋转角度,基于仿射变换,对所述手势进行旋转。

本发明实施例的手势跟踪装置,所述第一获取模块用于根据手势关键点模型,获取所述手势中N个预设位置的置信度信息,其中,N为大于1的整数。

本发明实施例的手势跟踪装置,所述置信度信息包括置信度得分;则,

所述第二确定模块,包括:

第一获取子模块,用于获取N个预设位置的置信度得分的平均值;

第四确定子模块,用于在所述平均值大于第一预设阈值的情况下,确定所述手势为有效手势。

需要说明的是,该装置是与上述手势跟踪方法对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

如图7所示,本发明实施例还提供了一种电子设备,包括:收发机704、处理器701、存储器703及存储在所述存储器702上并可在所述处理器701上运行的计算机程序,所述处理器701执行所述计算机程序时实现上述的手势跟踪方法的步骤。具体地,处理器701用于根据骨骼关键点模型,在图像中确定手势追踪区域;根据手势识别模型,在所述手势追踪区域内识别出手势;获取所述手势的预设位置的置信度信息;在所述置信度信息满足预设条件的情况下,确定所述手势为有效手势。

可选地,所述处理器701还用于:对所述手势跟踪区域进行去模糊处理和补帧处理,得到处理后的手势跟踪区域;则,所述处理器701还用于根据手势识别模型,在处理后的手势跟踪区域内识别出手势。

可选地,所述处理器701还用于:确定所述手势的旋转角度;

根据所述旋转角度,对所述手势进行旋转;则,所述处理器701还用于获取旋转后的所述手势的预设位置的置信度信息。

可选地,所述处理器701还用于:通过手势识别模型,确定所述手势中的第一位置和第二位置,其中,所述第一位置和所述第二位置的连线用于指示所述手势对应的手掌中的预设手指处于伸开状态时的方向;确定所述第一位置和第二位置之间的连线与基准线之间的夹角;根据所述夹角,确定所述手势的旋转角度。

可选地,所述处理器701还用于:通过公式β=arctan2(|x1-x2|/|y1-y2|),确定所述第一位置和第二位置之间的连线与基准线之间的夹角;

其中,β表示所述夹角,x1表示所述第一位置的横坐标,y1表示所述第一位置的纵坐标,x2表示所述第二位置的横坐标,y2表示所述第二位置的纵坐标。

可选地,所述处理器701还用于:根据所述旋转角度,基于仿射变换,对所述手势进行旋转。

可选地,所述处理器701还用于:根据手势关键点模型,获取所述手势中N个预设位置的置信度信息,其中,N为大于1的整数。

可选地,所述置信度信息包括置信度得分;则,

所述处理器701还用于:获取N个预设位置的置信度得分的平均值;在所述平均值大于第一预设阈值的情况下,确定所述手势为有效手势。

需要说明的是,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器701代表的一个或多个处理器和存储器703代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口702提供接口。收发机704可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的终端,用户接口705还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。处理器701负责管理总线架构和通常的处理,存储器703可以存储处理器701在执行操作时所使用的数据。

本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。

另外,本发明具体实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述手势跟踪方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

相关技术
  • 一种手势跟踪方法、设备及计算机可读存储介质
  • 目标跟踪方法、装置、计算机可读存储介质和计算机设备
技术分类

06120112623093