一种手势识别的方法、装置、电子装置和存储介质与流程

文档序号:24160545发布日期:2021-03-05 16:13阅读:131来源:国知局
一种手势识别的方法、装置、电子装置和存储介质与流程

[0001]
本申请涉及计算机技术领域,特别是涉及一种手势识别的方法、装置、电子装置和存储介质。


背景技术:

[0002]
随着互联网及计算机技术的迅速发展,手势的识别技术也在迅速发展。手势识别是一种自然、便捷的人机交互方式,通过对手势的识别和功能绑定可以达到用户想快速、跨级访问相关应用界面的目的,是一种快捷、方便的交互方式。
[0003]
相关技术中通常基于神经网络等方法进行手势识别,然而静态手势的定义无法准确到每个关节弯曲多少度,以及指头之间的捏合程度等,手势采集的过程中更是无法控制,上述不确定性会给手势识别任务带来很大的困扰;例如,一个半捏合的手到底算是捏合还是不捏合,张开多大的手算是张开,一些未定义的没有采集和覆盖到的手势应该算是哪类。因此相关技术的分类神经网络很难应对这些从数据源就无法控制的事情。在正常的手势交互的过程中,必然会存在歧义手势、未知手势、模糊图像等,相关技术通常会将上述不鲁棒的手势划分为某一类,使得在交互过程中出现误触发、误操作等现象,从而导致手势识别方法的准确性较低。
[0004]
目前针对相关技术中,在出现歧义手势和未知手势的情况下手势识别方法准确性低的问题,尚未提出有效的解决方案。


技术实现要素:

[0005]
本申请实施例提供了一种手势识别的方法、装置、电子装置和存储介质,以至少解决相关技术中手势识别方法的准确性较低的问题。
[0006]
第一方面,本申请实施例提供了一种手势识别的方法,包括:获取待识别图像;利用第一神经网络检测器检测所述待识别图像中的所有手的第一包围盒;将所述第一包围盒经过预处理得到预处理图像;使用分类神经网络计算所述预处理图像中的手势在嵌入空间的表征向量,并根据所述表征向量得到所述手势的类别结果和鲁棒性结果;根据实际应用,利用所述类别结果和所述鲁棒性结果生成最终交互状态信息。
[0007]
在其中一些实施例中,所述将所述第一包围盒经过预处理得到第一预处理图像,包括:在保持所述第一包围盒的中心不变的情况下,将所述第一包围盒扩充成方形;从所述待识别图像中截取所述第一包围盒内的图像,若所述第一包围盒内的图像超出所述待识别图像的边界,则用预设参数对所述待识别图像上超出边界的部分进行填充;将填充后的所述待识别图像缩放到所述分类神经网络所需的大小,得到所述预处理图像。
[0008]
在其中一些实施例中,在所述使用分类神经网络计算在所述预处理图像中的手势在嵌入空间的表征向量之前,所述方法还包括:在离线的情况下,训练所述分类神经网络。
[0009]
在其中一些实施例中,采集训练图像;标注所述训练图像的类别标签和所述训练图像所有手势的第二包围盒,其中,所述训练图像包括训练集和测试集;基于所述第二包围
盒对所述训练图像进行预处理;在所述训练集中,配合所述类别标签训练所述分类神经网络和类别表征向量;在训练完成之后,计算所述测试集在所述嵌入空间的测试表征向量,以每种类型所述类别表征向量为中心,拟合每种类型的测试表征向量,以获取到每种类型的所述测试表征向量与对应的所述类别表征向量之间的鲁棒性允许的最大距离。
[0010]
在其中一些实施例中,所述根据所述表征向量得到所述手势的类别结果和鲁棒性结果,包括:计算所述表征向量到类别表征向量之间的距离,并根据所述类别表征向量中的距离最近向量所代表的类别获取所述类别结果;若所述距离最近向量落点位于所述类别表征向量的最大距离范围内,判断所述手势具备鲁棒性。
[0011]
在其中一些实施例中,所述根据实际应用,利用所述类别结果和所述鲁棒性结果生成最终交互状态信息,包括:利用当前帧中的所述类别结果和所述鲁棒性结果,或者综合利用时序上连续多帧中所述类别结果和所述鲁棒性结果,生成最终所需的交互信息。
[0012]
在其中一些实施例中,在根据实际应用,利用所述类别结果和所述鲁棒性结果生成最终交互状态信息之后,所述方法还包括:
[0013]
发送所述交互状态信息给上层应用程序,根据所述交互状态信息取相应的交互反馈。
[0014]
第二方面,本申请实施例提供了一种手势识别的装置,包括:获取模块、第一检测模块、分类神经网络模块以及交互模块;获取模块,用于获取待识别图像;第一检测模块,用于利用第一神经网络检测器检测得到所述待识别图像中的所有手的第一包围盒,得到预处理图像;分类神经网络模块,用于使用分类神经网络计算得到所述预处理图像中的手势在嵌入空间的表征向量,并根据所述表征向量得到所述手势的类别结果和鲁棒性结果;交互模块,用于根据实际应用,利用所述类别结果和所述鲁棒性结果生成最终交互状态信息。
[0015]
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种手势识别的方法。
[0016]
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种手势识别的方法。
[0017]
相比于相关技术,本申请实施例提供的一种手势识别的方法、装置、电子装置和存储介质,通过获取待识别图像;利用第一神经网络检测器检测所述待识别图像中的所有手的第一包围盒将所述第一包围盒经过预处理得到第一预处理图像;使用分类神经网络计算该第一预处理图像中的手势在嵌入空间的表征向量,并根据该表征向量得到该手势的类别结果和鲁棒性结果;根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息,解决了在出现歧义手势和未知手势的情况下手势识别方法准确性低的问题,实现了更准确的手势交互。
附图说明
[0018]
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0019]
图1根据本申请实施例的一种手势识别的方法的终端的硬件结构框图;
[0020]
图2是根据本申请实施例的一种手势识别的方法的流程图;
[0021]
图3是根据本申请实施例的一种训练分类神经网络方法的流程图;
[0022]
图4是根据本申请实施例的一种手势识别的方法的测试集数据在嵌入空间的表征的示意图;
[0023]
图5是根据本申请实施例的一种手势识别的装置的结构框图;
[0024]
图6是根据本申请实施例的一种计算机可读存储介质的结构框图。
具体实施方式
[0025]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0026]
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0027]
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0028]
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1根据本申请实施例的一种手势识别的方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0029]
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发
明实施例中的一种手势识别的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0030]
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
[0031]
本实施例提供了一种手势识别的方法,图2是根据本申请实施例的一种手势识别的方法的流程图,如图2所示,该流程包括如下步骤:
[0032]
步骤s201,获取待识别图像。
[0033]
其中,可以通过相机采集该待识别图像,例如,该相机通过一定频率采集图像序列,进而获取该图像序列中的一帧当前的待识别图像。该待识别图像可以为其他类型的图像,例如深度图、红外图等;其中,该图像的类别主要划分为彩色图像和灰度图像。
[0034]
步骤s202,利用第一神经网络检测器检测该待识别图像中的所有手的第一包围盒,将该第一包围盒经过预处理得到第一预处理图像。
[0035]
其中,将第一包围盒经过预处理得到分类神经网络需要尺寸的图像,该图像就是第一预处理图像。
[0036]
步骤s203,使用分类神经网络计算该第一预处理图像中的手势在嵌入空间的表征向量,并根据该表征向量得到该手势的类别结果和鲁棒性结果。
[0037]
其中,该分类神经网络是经过离线训练完备的神经网络。
[0038]
需要说明的是,步骤s202至步骤s203的分类神经网络可以和检测网络合并变成一个单阶段的识别任务,同样可以提升手势识别的鲁棒性。例如在单阶段yolo检测框架里将分类部分替换成文中的嵌入空间。
[0039]
步骤s204,根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息。
[0040]
通过上述步骤,通过获取到待识别图像,对该待识别图像进行预处理以得到预处理图像,并利用分类神经网络检测得到该预处理图像中手势在嵌入空间的表征向量,进而根据该表征向量确定出该手势的类别结果,然后利用上述映射到嵌入空间的方法对手势的鲁棒性进行判断,当手势满足鲁棒性要求时,会输出手势的类别,并且根据该类别生成最终交互状态信息以做出交互反馈,因此通过对手势识别结果的优化,使得本申请实施例中的手势识别方法能够应对和检测未知手势或歧义手势,增强了手势识别鲁棒性,从而解决了手势识别方法的准确性低的问题,实现了更准确的手势交互。
[0041]
在其中一些实施例中,该将该第一包围盒经过预处理得到第一预处理图像,包括:
[0042]
在保持该第一包围盒的中心不变的情况下,将该第一包围盒扩充成方形;其中,扩充后的第一包围盒的长宽变为原第一包围盒中较大的一边;从该待识别图像中截取该第一
包围盒内的图像,若该第一包围盒内的图像超出该待识别图像的边界,则用预设参数对该待识别图像上超出边界的部分进行填充;将填充后的该待识别图像缩放到该分类神经网络所需的大小,得到该预处理图像,以使输入至该分类神经网络的图像为有效信息。
[0043]
本实施例还提供了一种训练分类神经网络方法。图3是根据本申请实施例的一种训练分类神经网络方法的流程图,如图3所示,该流程包括如下步骤:
[0044]
步骤s301,采集训练图像;标注该训练图像的类别标签和该训练图像所有手势的第二包围盒,其中,该训练图像包括训练集和测试集。
[0045]
需要说明的是,该训练图像的采集获取方式可以为:按类别采集不同人不同姿态不同背景下包含手部区域的图像;其中,将采集到的训练图像按比例划分为训练集和测试集。
[0046]
其中,标注该训练图像中的手势的第二包围盒的方式可以为:在该训练集的图像上标注出手的包围盒(bounding box,bbox)。标注过bbox的图像数据可以用来训练手势检测网络,手势检测网络可以是yolo、全卷积一级目标检测(fully convolutional one-stage object detection,简称为fcos)等常见检测框架。不妨假设预先设定的手势类别有n种,采集时各类数量相对均衡,bbox均正确无偏差;其中,n为大于等于1的自然数。
[0047]
步骤s302,基于该第二包围盒对该训练集进行预处理。
[0048]
其中,对第二包围盒进行图像处理是对第二包围盒的图像进行扩充和增强。具体地,对第二包围盒的图像进行扩充和增强包括从原图截取以标签bbox为基础的方形区域图像,且该方形区域图像中心保持不变,截取的长宽为w=max{bbox.w,bbox.h}*thre1,其中bbox.w表示该第二包围盒的宽度,bbox.h表示该第二包围盒的长度,thre1为外扩的倍数,一般取2;超出图像边界时用定值thre2进行填补,其中thre2为填补的像素值,一般取0或128。将截取出的图像缩放到thre3*thre3尺寸,在(thre4,thre5)角度范围内随机旋转图像thre6次,从旋转增强后的thre6个图像里,截取中心thre7*thre7分辨率的图像作为训练数据,其中thre7为网络输入的分辨率,常用64、128或256等,thre3与thre7相关,可以取thre7的1.4倍,保证截取的图像包含尽可能少的填充值,thre4和thre5与落地项目的场景有关,如果需要识别全自由度的手势数值为0
°
或360
°
,如果手势对于自由度敏感,可以选择-30
°
~30
°
等,thre6为增强倍数,一般可取20。至此获取到了一批经过旋转增强的比原图像稍大的已知标签的数据,充分混合后用于训练。训练时对样本进行线上增强,增强包括随机缩放,随机平移、左右翻转等,由于样本比原图稍大,缩放倍数在(thre8,1)内随机选取,上下左右平移幅度保持在thre9以内,thre8一般取0.5,thre9一般取30%。此外也可以随机加入诸如对比度、亮度、模糊增强等常用增强方法。
[0049]
步骤s303,在该训练集中,配合该类别标签训练该分类神经网络和类别表征向量。
[0050]
其中,上述类别表征向量用于表征相对应的各类别手势;同时该类别表征向量的全部参数是随着分类神经网络的参数共同训练。具体地,网络输入为thre7*thre7的图像,经过backbone提取特征,由于只需要分类,网络不需要很大即可收敛得较好,可以基于主流的backbone减少卷积核和block的数量设计backbone,在bakcbone里加入一定程度dropout,用来提升泛化能力。
[0051]
在backbone输出的特征图上利用一些方法得到最终的embedding,维度为m,其中,m的维度是可以通过实验进行确定的,对于最终的计算量影响不大,一般的可取2~256。
[0052]
上述的方法有很多种,如果特征图尺寸为1*1直接接上1*1的卷积或全连接层(fully connected layer,简称为fc)得到最终的m维向量;否则可以直接reshape成一个向量接上fc,或利用pooling和等同于特征图尺寸的卷积得到1*1的特征图再接上1*1的卷积或fc,这些方法无论从计算量还是效果上都没有很大区别,主要为了得到m维的表征向量。利用k*n个m维的类别表征向量base来表征各类别的手势,每类k个,数值随机初始化,这k*n个向量会随着神经网络的训练不断迭代和训练保证合理性,其中k可以取1也可以取2~10,不宜过大。
[0053]
其中,backbone所指的是主干网络,是设计网络的主体部分,用于提取特征,此处不对backbone进行限定,可以是简化后的resnet、pelee或mobilenetv3等;block所指的是一些神经网络基础模块的堆叠;dropout所指的是一种随机丢弃神经网络里的一些参数的训练技巧;embedding所指的是一个低维的表征向量;pooling这里指池化用于降低维度,常用的有最大池化和平均池化;reshape所指的是改变尺寸的方法,可以理解为拉伸。
[0054]
在训练过程中,各个类别的手势会聚合到各自类别手势的向量附近,同时尽可能拉远和其他类别手势的距离,为了达到这个目的,需要设计loss引导,在嵌入空间内,类内的距离更小并聚合于base,类间的距离更大,其中,该预设损失函数的计算方法如公式1所示:
[0055][0056]
其中,loss指神经网络的优化目标,这里需要尽可能让loss更小;f(x)为神经网络的输出,base是不断训练的类别表征向量,γ是一个超参,控制距离映射到概率的程度,可以取1、0.5或2等,以时间效果为准,λ用于控制正则化的程度,可以取0.1、0.01或0.001等。该预设损失函数本质上相当于距离的负数算了softmax交叉熵(如公式1第一项表达式所示),类内尽量聚合,类间尽可能拉开。加上正则化(如公式1第二项表达式所示),该第二项表达式尽可能压缩了距离最近的表征向量,使得类内聚合得更好。需要说明的是,该公式1的第一项表达式替代方案很多,主要为了拉近类内距离,拉远类间距离,例如也可以是||正确的最近距离-错误的最近距离归一化+容错||,这种直观的拉近类间距离拉远类间距离的方法或一些变形和变种。
[0057]
步骤s304,在训练完成之后,计算该测试集在该嵌入空间的测试表征向量,以每种类型该类别表征向量为中心,拟合每种类型的测试表征向量,以获取到每种类型的该测试表征向量与对应的该类别表征向量之间的鲁棒性允许的最大距离。
[0058]
具体地,将上述训练图像划分得到的训练集和测试集,配合第一步里的线上增强方法获取到增强后的样本进行网络训练。优化器可以选择sgd/radam等,不作限定。网络收敛后存储各类别的表征向量base(步骤s303里的k*n个m维向量),网络收敛较好的情况下,测试集识别率可以达到96%~99%,和任务、数据集的规模及难度有关。计算出测试集所有数据在嵌入空间的表征,以base为中心,找出每类能包含thre10的最小的距离d,绕成的圈/球内的点认为是鲁棒的(如果k>1则有多个圆、球或高维类球体),thre10和最终测试集的识
别率有关,一般取95%~99%。如图4所示,m=2,k=1的情况,origin里是所有测试集在嵌入空间的分布情况,中间和右侧的图分别是thre10取98%和99%的情况,圈内的点都认为是鲁棒的,所有圈外的点都认为是不够鲁棒的,这些点大概率是数据集未覆盖到的,或是一些有歧义的姿态。记录下每类允许的距离di;其中,i为各类别标签,用于判断鲁棒性。
[0059]
通过上述步骤,每类手势用一个或多个表示,并且上述表征向量会随着神经网络训练而自适应学习,增强拟合效果;同时,本申请实施例设计了分类神经网络和预设损失函数,通过该预设损失函数输出的类内聚合结果,可以使得让类内更聚合,类间距离更大,因此分类效果较好,实际识别率对比softmax类的方法无下降,甚至有所提升,从而有效优化了分类神经网络,提高了手势识别任务中神经网络的鲁棒性,进一步提高了手势识别方法的准确性。
[0060]
在其中一些实施例中,该根据该表征向量得到该手势的类别结果和鲁棒性结果,包括如下步骤:
[0061]
计算该表征向量到类别表征向量之间的距离,并根据该类别表征向量中的距离最近向量所代表的类别获取该类别结果;若该距离最近向量落点位于该类别表征向量的最大距离范围内,判断该手势具备鲁棒性。
[0062]
其中,计算表征向量到里多维向量之间的距离,距离最近向量所代表的类别即为手势识别的类别结果,不妨假设该“最近向量”为d,如果d小于上述“最小距离”dr,则认为该手势结果鲁棒,否则认为该手势不鲁棒。具体地,该步骤是分类神经网络实际使用的地方,r是指的手势的类别序号,dr指的是上文步骤s304中通过数据拟合出来的该类别表征向量的最大距离范围,在这个“距离参数”范围内的手势都认为是鲁棒的。
[0063]
在其中一些实施例中,该根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息,包括:
[0064]
利用当前帧中的该类别结果和该鲁棒性结果,或者综合利用时序上连续多帧中该类别结果和该鲁棒性结果,生成最终所需的交互信息。
[0065]
其中,该交互状态信息包括静态的手势、叠加的手势和动态的手势。其中,在对于静态手势触发类的实际应用中,鲁棒的手势才会触发对应的效果。由于运动模糊或歧义手势造成的误触发基本都可以被规避,达到稳定触发的效果。例如,通过一个比出rock的手势播放一段音乐,基于其他一些分类神经网络,很可能挥动手过程中的某几帧图像就会被识别为rock继而错误触发了音乐,本申请的方法可以规避这一问题以提高手势识别的准确性。
[0066]
或者,在对于静态手势叠加类的实际应用中,本申请实施例通过上述步骤s203判断得到的鲁棒的手势,才会被识别为触发叠加的手势,同时时序上连续的非鲁棒手势会维持之前静态手势的结果,进而避免了移动过程中由于图像模糊造成误分的情况发生。此外,也可以加上一些策略,例如连续thre12帧被判定为未知手势则不再维持之前的静态手势,以保证叠加的鲁棒性。以一个典型的应用为例:摊开手掌在手掌上叠加一个福袋,随着手的移动福袋会进行跟随,如果移动过快造成图像模糊,传统的分类神经网络可能会误判为非手掌导致福袋叠加丢失,而本申请实施例可以通过鲁棒性结果的检测实现稳定跟随。
[0067]
或者,在对于动态手势出发类的实际应用中,以典型的应用场景增强现实(augmented reality,简称为ar)眼镜为例,在ar眼镜应用中可以通过抓取、捏、松开等动作
来完成对于对象的选中和释放的操作。动态手势识别是一个时序上的任务,拆分成静态手势就是从非抓的手势到抓的手势,从非捏的手势到捏的手势的变化过程,释放过程相反。因此在动态手势识别中存在很多歧义的中间状态,对于分类神经网络来说很可能在两种手势之间跳变,如果将一个捏的动作映射到点击上,在中间的几帧中间状态下,可能会被反复识别为捏和非捏的识别结果,继而用户的一次捏合动作被触发了多次点击,对于用于的交互体验影响很大,基于本申请实施例的动态手势识别策略可以规避这种问题。一次动态手势需从一个鲁棒的静态手势切换到对应的另一种静态手势,这两种静态手势之间允许存在多帧,或一段时间的非鲁棒任意手势,其中,该非鲁棒任意手势存在的帧数不宜过大,例如可以为1至5帧;基于这种策略基本不存在“连点”的现象,整个动态手势的交互流程很流畅且无误触发。此外,也可以进一步的利用连续多帧,例如1至5帧的鲁棒静态手势维持来进一步加强对于动态手势中静态手势鲁棒性的保证。传统分类神经网络里随意挥动手很容易触发例如抓取的动作,利用本专利的方案随意挥动实测十分钟无误触发。
[0068]
需要说明的是,一些模糊的图像或一些未定义的手势也会被划归为不鲁棒的手势,减少交互过程中的误触发,误操作等。例如一些静态手势触发的应用中,做出单手比心的动作触发一些动画效果,如果快速挥动拳头产生一些模糊图像,很可能会有误触发的现象,如果用专利的方法,这些模糊的图像大概率会被识别为未知手势;其中,对于ar或虚拟现实(virtual reality,简写为vr)应用,一种常用的动态手势是“捏合”,本申请实施例可以彻底避免“连点”的现象。由于“连点”造成的现象是手指从松开到捏合的中间状态反复被识别为“松开”和“捏合”两种手势,导致可能点击了多下,因此在本申请的手势识别方法中这些中间状态都会被识别为未知手势,不影响捏合的判断。
[0069]
通过上述实施例,在实际应用中,将手势类别结果和鲁棒性结果应用于时序上连续触发的交互状态信息,以根据手势的鲁棒性判断识别出静态手势叠加、动态手势触发等实际应用中的手势所对应效果,进而生成最终交互状态信息,从而避免了歧义手势或未知手势等引起的误判,可以非常方便地找出手势的中间状态、未知手势、模糊的手势和非手等对于交互判断有影响的状态,进一步提高了手势识别方法的准确性。
[0070]
在其中一些实施例中,在根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息之后,该方法还包括:
[0071]
发送该交互状态信息给上层应用程序,根据该交互状态信息获取相应的交互反馈。其中,利用手势和鲁棒性判断结果提升了各种手势交互场景的鲁棒性,不影响召回率的情况下大幅度降低了误触发的情况。
[0072]
需要说明的是,上述各参数thre1至thre12表示不同取值的参数。
[0073]
本实施例还提供了一种手势识别的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0074]
图5是根据本申请实施例的一种手势识别装置的结构框图,如图5所示,该手势识别的装置包括:获取模块501、第一检测模块502、分类神经网络模块503以及交互模块504。
[0075]
该获取模块501,用于获取待识别图像;该第一检测模块502,用于利用第一神经网络检测器检测得到该待识别图像中的所有手的第一包围盒,将该第一包围盒经过预处理得
到第一预处理图像该分类神经网络模块503,用于使用分类神经网络计算得到该预处理图像中的手势在嵌入空间的表征向量,并根据该表征向量得到该手势的类别结果和鲁棒性结果;该交互模块504,用于根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息。
[0076]
通过上述实施例,获取模块501获取到待识别图像,第一检测模块502对该待识别图像进行预处理以得到预处理图像;分类神经网络模块503利用分类神经网络检测得到该预处理图像中手势在嵌入空间的表征向量,进而根据该表征向量确定出该手势的类别结果,然后由交互模块504利用上述映射到嵌入空间的方法对手势的鲁棒性进行判断,当手势满足鲁棒性要求时,会输出手势的类别,并且根据该类别生成最终交互状态信息以做出交互反馈。因此通过对手势识别结果的优化,使得本申请实施例中的手势识别的装置能够应对和检测未知手势或歧义手势,增强了手势识别鲁棒性,从而解决了传统手势识别的准确性低的问题,实现了更准确的手势交互。
[0077]
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
[0078]
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0079]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0080]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0081]
步骤s1,获取待识别图像。
[0082]
步骤s2,利用第一神经网络检测器检测该待识别图像中的所有手的第一包围盒,将该第一包围盒经过预处理得到第一预处理图像。
[0083]
步骤s3,使用分类神经网络计算该第一预处理图像中的手势在嵌入空间的表征向量,并根据该表征向量得到该手势的类别结果和鲁棒性结果。
[0084]
步骤s4,根据实际应用,利用该类别结果和该鲁棒性结果生成最终交互状态信息。
[0085]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0086]
本领域技术人员可以理解,图6中示出的结构,仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0087]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例提供的一种手势识别的方法中的步骤。
[0088]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
[0089]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0090]
以上该的实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1