一种基于小样本的手势识别方法

文档序号:30963034发布日期:2022-07-30 14:49阅读:234来源:国知局
一种基于小样本的手势识别方法

1.本发明涉及手势识别技术领域,更具体地,涉及一种基于小样本的手势识别方法。


背景技术:

2.传统手势识别技术在构建系统时往往需要预先设定手势集合,并招募实验者重复多次做每一个手势以采集大量的传感器数据构成训练集对识别模型(如深度神经网络)进行训练。这会给识别系统构建方(如发布该技术的企业)带来很大的人力成本。更重要的是,由于现实环境的多样性,采集训练数据时的环境与系统实际使用时的环境可能存在较大的差异,例如环境噪声不同、设备不同、人员不同,并且每个用户希望能够根据自身习惯和喜好自由定义新的手势集合(类别和数目均可以不同于预定的手势集)。由此造成的问题是已训练好的模型无法满足多样化的现实需求,直接使用模型识别准确率将大幅度下降,即模型泛化性和可扩展能力不强。
3.在现有技术中,手势识别方案主要包括以下几类:
4.1)基于底层信号处理提取与环境因素无关的特征量。例如,利用wifi信号的底层物理量-信道状态信息(channel state information,csi)对人体行为活动进行物理建模,从而提取出与行为发生的位置、方向以及室内环境等因素无关的特征量-基于身体坐标的速度轮廓(body-coordinate velocity profile,bvp)。随后,将该特征作为深度网络的输入进行行为动作的识别。这种方式仅适用于基于多链路wifi连接的行为感知,应用范围窄,并且不支持用户自由定义新手势集,即训练集和测试集的手势需要保持数目和种类一致。
5.2)基于生成对抗网络的域迁移方法。例如,通过引入生成对抗网络训练特征提取器、手势识别器以及域鉴别器,使模型能够提取出与域无关的本质特征表达,提升模型的跨域识别能力。又如,借用图像领域风格迁移模型去合成目标域的样本,并基于合成样本去更新网络。基于生成对抗网络的域迁移方法在模型训练阶段需要采集大量的数据,而且对抗模型复杂度一般很高,训练过程中不容易收敛,部署在商用智能移动设备时实时性差。此外,这类方法也不支持用户自由定义新手势集。
6.3)基于元学习模型的方法。例如,借助元学习方法解决跨域识别的问题。或者基于虚拟手势样本生成机制,自动生成目标域数据去更新模型。目前这类方法不支持用户自由定义新手势集,要求模型训练时的手势类别、数目与用户实际使用时必须保持一致。同时,在实际使用过程中需要微调模型参数,从而导致了在移动端部署时实时性差。


技术实现要素:

7.本发明的目的是克服上述现有技术的缺陷,提供一种基于小样本的手势识别方法。该方法包括以下步骤:
8.用户自定义手势类别,并针对每个手势类别采集多个样本;
9.将采集到的样本输入到经训练的小样本学习模型提取对应于每个样本的特征向量,并综合属于同种手势的特征向量,得到对应于每一种手势的平均特征向量,作为原型向
量;
10.针对用户实施的目标手势,采集对应的样本,输入到所述小样本学习模型得到该目标手势的特征向量,作为查询向量;
11.计算所述查询向量与所述原型向量之间的相似度,选择相似度高的原型向量所对应的手势类别作为该目标手势的预测类别;
12.其中,所述小样本学习模型包括特征提取模块和距离分类器,所述原型向量和所述查询向量利用所述特征提取模块获得,所述查询向量与所述原型向量之间的相似度利用所述距离分类器获得。
13.与现有技术相比,本发明的优点在于,所提供的基于小样本的手势识别方法能够利用已有的开源数据集进行模型训练,降低了采集训练数据集的人力成本,并且已训练好的模型能够借助少量的样本进行快速更新以适应使用环境。此外,能够满足用户自由定义新手势的需求,从而提升了模型的泛化性和扩展能力。
14.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
15.被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
16.图1是根据本发明一个实施例的基于小样本的手势识别方法的流程图;
17.图2是根据本发明一个实施例的基于小样本的手势识别方法的总体框架图;
18.图3是根据本发明一个实施例的不同手势对应的时频图;
19.图4是根据本发明一个实施例的小样本学习模型实例示意图;
20.图5是根据本发明一个实施例的编码器结构示意图;
21.图6是根据本发明一个实施例的自适应网络结构示意图;
22.附图中,conv-卷积层;block-残差块;avg-pool-平均池化;fc layer-全连接层;set encoder-设置编码器;para-generator-参数生成器;nn classifier-nn分类器,mlp-多层感知器;cnn-卷积神经网络。
具体实施方式
23.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
24.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
25.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
26.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
27.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
28.结合图1和图2所示,所提供的基于小样本的手势识别方法包括以下步骤:
29.步骤s110,采集用户实施手势时的两个数据集。
30.在下文中,以利用智能设备采集声波样本为例描述本发明,智能设备可以是智能手机、智能手表、智能音箱等各种类型的设备。
31.具体地,数据集采集过程包括以下步骤:
32.步骤s111,控制智能设备内置扬声器发射按照一定调制方式调制的特定频率声波信号,与此同时,控制该智能设备内置的麦克风以一定的采样频率接收回波信号。
33.例如,发射频率设置为超过人耳听力范围且位于商用设备硬件频率响应范围以内,可设为19khz至22khz之间,采样频率满足奈奎斯特采样定律,可设为44.1khz或者48khz。
34.步骤s112,用户在智能设备附近区域以任意速度、任意大小,与设备成一定方位角度实施用户预定义手势。
35.例如,手势与智能设备之间的方位角是0度或其他角度。手势可以是一般性手势,也可以是带有一定含义的手势,如书写阿拉伯数字或者英文字母等)。
36.通过上述实施手势和采集声波信号,可获得一个数据集,即该数据集包含实施手势对应的一个或多个声波序列信号。
37.步骤s113,采集另一个数据集。
38.类似地,可采集另一数据集,与第一个数据集的区别在于用户实施手势时与设备所形成的方位角度为另一角度,如90度。
39.步骤s120,对采集的数据集进行预处理,以构建训练数据集a和训练数据集b。
40.在此步骤s120中,对采集的两个数据集进行预处理操作包括:滤波、加窗、短时傅里叶变换、动作检测、时频图调整大小等。
41.首先,对数据集进行滤波。滤波可采用3阶巴特沃斯点阻滤波器,其带阻范围是[18985,19015]hz,目的是去除19khz的中心频率。如果扬声器发出的声波频率为其它频率而非19khz,那么该点阻滤波器的参数相应调整即可。
[0042]
随后,对声波信号序列进行滑动加窗处理以进行分帧,并对每一帧做快速傅里叶变换。滑动窗的类别可以是汉宁窗,宽度是8192个样本点(采样率为44.1khz时对应于0.1858秒),步进值为1024个样本点。通过以上操作,可以将一维声信号序列转换成二维的时频图。
[0043]
接着,如果用户连续做多个手势时,还需要自动地对每一个手势进行检测以便提取出对应于每个手势的时频图。
[0044]
在一个实施例中,动作检测过程包括:对于时频图中的每一个帧,自下而上(频率由低到高)扫描每一个频率槽(frequency bin),当发现存在多于4个连续的频率槽的能量高于-80db时,则判定该帧为活动帧(active)并将其保留下来。通过这种方式,能够找到手势开始和结束时对应的帧,进而提取出对应于该手势的完整时频图。
[0045]
最后,考虑到手势持续时间不是恒定的,因此需要将提取出来的时频图调整成统一的大小(如224
×
224)作为后续模型的输入。
[0046]
图3是不同类型手势的时频图示意,其中两条竖虚线分别代表手势的开始时刻和
结束时刻,两条竖虚线之间的时频图对应于一种手势。手势类型包括数字类型(如0-9)和字母类型,如26个字母。图3(a)对应数字1,图3(b)对应数字3,图3(c)对应字母d,图3(d)对应字母h。
[0047]
通过上述过程,可以获得与两个数据集对应的两个训练数据集,为便于描述,标记为训练数据集a和训练数据集b。
[0048]
步骤130,利用训练数据集a预训练基础分类模型。
[0049]
利用训练数据集a训练一个基础分类模型。该基础分类模型可以是普通卷积神经网络,整体上包括特征提取部分和多层感知器分类器。如图4所示,基础分类模型可以是残差网络,包括多个残差块,每个残差块可包含两个卷积层。训练基础分类模型的过程被称为预训练。
[0050]
基础分类模型可以是多种类型的深度学习模型,例如,可以是不同层数的残差网络,如resnet10,resnet18等,也可以是其它类型的网络,如cnn5、shufflenet等。
[0051]
通过预训练,可以获得基础分类模型的初始参数,得到一个特征提取能力强大的特征提取器,该特征提取器是指基础分类模型去掉全连接层后剩下的部分。
[0052]
步骤s140,利用训练数据集b训练小样本学习模型,该小样本学习模型基于基础分类模型构建并且训练过程冻结预训练的基础分类模型的参数。
[0053]
仍结合图4所示,相对于基础分类模型,小样本学习模型进一步添加了编码器(encoder)、转换层(film)和自适应网络(或称参数生成器,标记为para.generator),即在该小样本学习模型中,改造了基础分类模型中的特征提取器。
[0054]
在图4中,xj代表一个输入样本,以向量的形式来表示;代表支撑样本集,其数量为待分类手势类别数n与每个手势所提供的支撑样本数k的乘积,yi表示对应的手势类别。z
t
表示编码器的输出。f
pre
(xj)代表基础分类模型中的特征提取器所提取出的输入样本xj对应的特征向量,或称为样本表征。是参数生成器的输出,进而输入到两个film层(因此l=1,2)的两组参数对,分别是和film层输出的参数对用于对特征提取器中间层的特征向量进行拉伸和平移,其中代表拉伸因子,代表平移因子。表示小样本学习模型中的特征提取器,相应地,和分别表示小样本学习模型中的特征提取器所提取的输入样本xj对应的特征向量。在本文中,i、j、t、b、l和t

等均为索引。
[0055]
在一个实施例中,小样本学习模型的构建和训练过程包括以下步骤:
[0056]
步骤s141,在基础分类模型的前部添加编码器,其结构为首先对输入数据进行图卷积,再将卷积后得到的特征图进行降维,最后得到编码后的向量。
[0057]
编码器的结构如图5所示,其包括多个卷积神经网络,用于分别提取对应输入样本的特征向量,对各特征向量进行全局池化后,输出编码后的一个单一表征向量z
t

[0058]
步骤s142,在基础分类模型的前部添加自适应网络,以s131中得到的编码向量为输入,输出多个成对的向量。
[0059]
自适应网络的结构如图6所示,其输出的成对向量是指其中一个参数向量表示拉伸因子,表示平移因子。拉伸因子和平移因子组合起来用于对小样本学习模型中间层的特征向量进行线性变换,即拉伸和平移。
[0060]
步骤s143,冻结预训练所得基础分类模型的所有参数,并在模型的内部添加film层。film层的参数为步骤s132中输出的多个成对的向量。
[0061]
film层用于对原基础分类模型中的卷积层的结果进行线性变换。如图4所示,film层作用于每一个残差块中的两个卷积层,即对于自适应网络输出的两组参数对将每组参数对作为一个film层的输入,在film层中与残差块每个卷积层的输出进行线性变换(或称仿射变换),即用拉伸因子乘以卷积层输出的向量,再加上得到新的特征量作为残差块中下一层的输入。
[0062]
步骤s144,将预训练得到的基础分类模型原有的多层感知机分类器替换为距离分类器,构成改造后的基础模型。
[0063]
距离分类器可以是l1距离分类器,或欧几里得距离分类器(l2距离分类器)等多种类型。下文以l1距离分类器为例进行描述。
[0064]
步骤s145,利用训练数据集b对由编码器、自适应网络、film层以及改造后的基础模型所构成的小样本学习模型进行训练。
[0065]
改造后的基础模型参数已经在预训练环节确定,在此训练环节中被冻结不更新。
[0066]
训练小样本学习模型时,使用小样本学习的训练方法,首先从训练数据集b中随机选择部分类别的少量样本,再随机选择类别相同的不同数据组合为一个任务。以少量样本经过小样本学习模型后得到的特征向量的平均值作为原型向量,将其他数据经过小样本学习模型后得到的特征向量作为查询向量,将原型向量与查询向量经过l1距离分类器后得到预测结果,与查询向量的真实标签计算出训练的损失,以此更新模型的参数。此训练过程被称为元训练。
[0067]
应理解的是,基础分类模型参数在元训练环节中保持不变(被冻结)。元训练环节主要是为了得到编码器和自适应网络参数。由于预训练和元训练环节中所用到的训练数据集不同,因此这两个环节的组合能够让模型自动学会如何适配到不同的数据集。相对于去掉基础分类模型的训练过程而直接训练改造后的特征提取器+距离分类器,本发明通过添加编码器、自适应网络和film层,使得模型能够自动地根据输入样本去调整特征提取器所提取出的特征(对特征向量进行仿射变换),从而适应新的样本输入,增强其迁移能力。
[0068]
此外,通过将原有的多层感知器分类器替换为距离分类器,解决了以下问题:多层感知器分类器自身包含参数,这些参数在测试环节中需要用自定义手势样本进行微调,那么为了达到好的效果,用于微调分类器的样本量需要较大数量,从而增加了用户负担并降低了预测效率;使用多层感知器分类器要求实际使用环节的手势类别数必须保持与训练阶段的手势类别数目一致,即用户无法自定义任意类别数的新手势。
[0069]
步骤s150,利用经训练的小样本学习模型预测用户手势类别。
[0070]
在确定了整个小样本学习模型的参数后,即小样本学习模型训练完成后,可用于
测试流程或实际使用环节,具体包括以下步骤:
[0071]
步骤s210,用户首先根据自身习惯和喜好自定义手势类别,然后对每种手势采集少量的样本,
[0072]
例如,每个手势类别对应的样本可以不超过3个。
[0073]
步骤s220,将采集到的样本输入到经训练的小样本学习模型提取对应于每个样本的特征向量,并将属于同种手势的特征向量进行相加得到对应于每一种手势的平均特征向量,被称为原型向量。该步骤的特征提取过程不经过l1距离分类器。
[0074]
步骤s230,当用户实施自定义的某一手势时,采集对应的声波样本,并经过预处理、输入小样本学习模型中得到对应于该手势的特征向量,被称为查询向量,将该查询向量与原型向量经过l1距离分类器,计算查询向量与各个原型向量之间的相似度,选择相似度高的那个原型向量的手势类别作为查询向量的类别,即作为对用户手势的预测类别。
[0075]
为进一步验证本发明的效果,进行了实验。结果表明,当用户每类手势仅分别提供1个、2个和3个样本时,所提出的方法对于26种用户自定义新手势的识别准确率分别为69.4%、79.0%和82.4%。该结果远高于已有方法(如“towards domain-independent complex and fine-grained gesture recognition with rfid.proceedings of acm chi”,4(iss):1

22,2020;c.dian,d.wang,q.zhang,r.zhao,and y.yu.)。
[0076]
需说明的是,在不违背本发明精神和范围的前提下,本领域技术人员可对上述实施例进行适当的改变或变型。例如,预训练和元训练所用的数据集可采用开源的相关数据集。对于数据预处理阶段,点阻滤波器可以替换成带止滤波器;加窗分帧中窗函数的类型可适当选择,且窗函数的参数可调整;将一维时序信号转化成二维时频图的方法可以是傅里叶变换、小波变换,或者希尔伯特-黄变换等时频变换方法。此外,检测手势动作可利用多普勒频移,这是因为实施手势时,与智能设备之间产生相对运动,根据频移变化幅度可确定是否存在手势动作。并且,除了使用声波作为感知媒介的手势识别,也可以应用于采用其它传感器数据,如wifi信号、惯性测量单元等作为感知媒介的手势识别。
[0077]
综上所述,相对于现有技术,本发明至少具有以下技术效果:
[0078]
1)本发明能够支持用户自由定义任意类别和任意数量的手势,而不要求用户在使用系统时只能按照预设的手势类别来进行交互,显著提升了可扩展性和用户体验。
[0079]
2)本发明只需用户在使用系统时提供自定义的很少量的样本就能使模型在新环境下取得高识别准确率,例如每种手势不超过3个,总共样本数为3n,其中n为用户自定义手势的类别数。
[0080]
3)本发明在使用环节无需对模型进行微调,从而保证了高实时性。
[0081]
4)本发明允许模型预训练或元训练阶段采用开源数据集,以充分利用已有的数据集,而无需招募人员采集,降低了模型训练阶段的成本。
[0082]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0083]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器
(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0084]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0085]
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++、python等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0086]
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0087]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0088]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0089]
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程
序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
[0090]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1