一种识别手势的方法与设备与流程

文档序号:11276807阅读:280来源:国知局
一种识别手势的方法与设备与流程

本案要求cn201610395477.3的优先权

本申请涉及计算机领域,尤其涉及一种识别手势的技术。



背景技术:

对一个具有复杂关节结构的物体进行骨骼检测和姿势估计始终是计算机视觉中一个具有挑战性的课题。例如,精确估计手势或人体姿势在人机交互领域扮演着重要的角色。由于此主题相关的实用价值,它已经吸引了来自工业界和学术界的投入。在过去的几年中,通过使用低成本的高速深度传感器,实时估计人体姿势的应用也在出现在日常生活中。从此,人体姿势估计得到了越来越多的关注。由于提供了新型的低成本输入数据——深度图像,许多新算法都已经优于传统的基于rgb图像的人体姿势估计算法。手势估计亦是如此。

相比于人体姿势,手势通常具有更高的自由度和更复杂的关节。手势估计还受制于许多实际运用中的挑战,例如,频繁的自遮挡,视角变化,低空间分辨率的输入和数据噪声。此外,许多应用也经常需要手势识别运行速度能达到实时。随机决策森林(rdf,randomdecisionforest)和其变体在人体姿势估计的应用中被广泛地使用。这个方法随后也被研究者活用到手势识别,而且这更具挑战性。

可以将算法分为基于模型的方法和非基于模型的方法。对于单个手势估计,基于模型的从顶至下的全局方法使用了一个3d的手模型来适应测试数据。这些方法通过模型拟合能处理自遮挡、运动约束以及视角变化等挑战。根据以上特性,他们通常适应于手操控某个物体或与某些物体交互的情况。然而,这些方法,包括关节跟踪器法(jointtracker)和互独立的跟踪器群法(setofindependenttracker),都需要对手的位置和手的度量属性进行非常精确的初始化。一旦该追踪过程出错,就很难恢复。

作为非基于模型的方法,现有技术中的一种方案,keskin为了解决姿势变化的问题,将rdf改进成了多层。将手势分配到对应形状的类别,并为该类手势训练特定的姿势估计器。现有技术中的另一种方案,tang提出了利用隐性回归森林(lbf,latentregressionforest)并集合二元决策树的框架进行手势识别。该算法在树的推断过程中,采用了隐性树型模型(ltm,latenttreemodel)来引导骨骼关节坐标的搜索过程,其中ltm是由无监督数据驱动规则学习得到。由于ltm是根据手的几何特性预先学习的,无论手势如何,它都是固定的。事实上,因为自然3d数据的局限,训练数据标签有时存在噪声,手的几何结构也根据实际情况变化。可以看到该方案存在缺陷,特别是在处理变化较大的姿势时。



技术实现要素:

本申请的一个目的是提供一种识别手势的方法与设备。

根据本申请的一个方面,提供了一种识别手势的方法,其中,该方法包括:

基于手势训练数据及对应骨骼关节标签信息训练得到多个随机决策树,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息;

获取待识别手势的深度图像信息;

对于每个随机决策树,根据所述一个或多个分割节点及每个分割节点对应的分割索引点信息确定所述深度图像信息对应的候选骨骼关节坐标信息;

根据所述多个随机决策树对应的多个所述候选骨骼关节坐标信息确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

根据本申请的再一个方面,提供了一种识别手势的方法,其中,该方法包括:

获取待识别手势的深度图像信息,确定所述深度图像信息的类型,其中,所述深度图像信息的类型包括稠密型和稀疏型;

根据所述深度图像信息的类型,对所述深度图像信息进行二值化处理;

基于二值化的所述深度图像信息,确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

根据本申请的另一个方面,提供了一种包括指令的计算机可读介质,所述指令在被执行时使得系统进行如上所述方法的操作。

根据本申请的又一个方面,提供了一种识别手势的设备,其中,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上所述的方法。

与现有技术相比,本申请基于手势训练数据及对应骨骼关节标签信息训练得到多个随机决策树,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息,然后获取待识别手势的深度图像信息,对于每个随机决策树,根据所述一个或多个分割节点及每个分割节点对应的分割索引点信息确定所述深度图像信息对应的候选骨骼关节坐标信息,再由此确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势;本申请提供了一种新的随机决策森林生长策略,利用分割索引点自适应地引导骨骼关节坐标分组和随机特征的选择,采用更为灵活的分组策略并能自动适应姿势的变化。进一步地,本申请在非叶子节点中仅对分割索引点的坐标进行估计,而非骨骼关节坐标,从而加快了训练过程。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请的一个关节的搜索过程示意图;

图2示出根据本申请的随机决策树的三种类型的节点的示意图;

图3示出根据本申请一个方面的一种识别手势的方法流程图;

图4示出根据本申请进行实验得到的结果与现有技术其他方案的实验结果的对比示意图;

图5示出根据本申请进行手势识别得到的成功样例;

图6示出根据本申请的再一个方面的一种识别手势的方法流程图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本申请提供了一种使用随机决策森林框架进行实时3d手势估计算法。该算法以一张深度图像为输入,输出一系列的骨骼关节坐标,以识别手势。该算法在还未到达最后决策的叶子节点时,只跟踪一些更灵活的虚拟基准点,在本申请中称这些点为分割索引点(sip,segmentationindexpoints)。粗略地说,一个sip点代表着一个骨骼关节子集的质心,这些骨骼关节坐标位于由该sip扩展出的分支上的叶子节点。

该算法可以视为一个由粗到细的骨骼关节坐标搜索算法,按照二分分治的方式进行,由分割索引点(sip)所引导。在随机决策森林中,浅层sip总是维持到深层sip的偏移向量,这些sip在叶子节点会收敛到真正手的骨骼关节坐标的位置,如图1所示,先递归地聚类骨骼关节坐标,然后探索将其分成两个更好的子区域直到到达叶子节点,叶子节点代表着骨骼关节坐标的位置。图1示出了两个为定位手指指尖的例子。不同的手势导致不同的手的子区域的分割,因此,有不同的sip和不同的树结构。为了简洁,在图1的两个例子中分别只显示了一个关节的搜索过程。

该算法的主要框架是一个由一组随机决策树(rdt)组成的二元随机决策森林(rdf)。在随机决策树中,本申请在树间放置了一个特别缓存来记录sip和其他相关的信息,如图2所示,尽管有这个特殊缓存,随机决策树还是有三种类型的节点:分组节点、分割节点和叶子节点。分组节点利用随机二元特征(rbf)将输入数据分配到树的左边或右边。分割节点将现有的查找子区域分成两个更小的子区域,并将输入数据并行地向下传播。随后,当到达随机决策树的叶子节点时,搜索结束,报告每个骨骼关节坐标的位置。

图3示出根据本申请一个方面的一种识别手势的方法流程图。该方法包括步骤s11、步骤s12、步骤s13和步骤s14。

具体地,在步骤s11中,设备1基于手势训练数据及对应骨骼关节标签信息训练得到多个随机决策树,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息;在步骤s12中,设备1获取待识别手势的深度图像信息;在步骤s13中,设备1对于每个随机决策树,根据所述一个或多个分割节点及每个分割节点对应的分割索引点信息确定所述深度图像信息对应的候选骨骼关节坐标信息;在步骤s14中,设备1根据所述多个随机决策树对应的多个所述候选骨骼关节坐标信息确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s11中,设备1基于手势训练数据及对应骨骼关节标签信息训练得到多个随机决策树,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息。

例如,所述手势训练数据可以是图像集i={i1,i2,…,in},其对应骨骼关节标签信息的数量可以是16个,所述骨骼关节标签信息可以包括各骨骼节点坐标信息。所述多个随机决策树(rdt)可以组成随机决策森林(rdf),所述分割索引点信息包括分割索引点的位移向量信息。

假设在在节点v处训练rdt树t,定义树t中的节点v为:

v=(c(v),l(v),r(v),ρc(v),ψ(v),ρ)

其中,c(v)是由v处理的骨骼节点坐标集合;l(v)和r(v)是v的左分支和右分支;ρc(v)是v的sip,粗略地定位了c(v)中骨骼节点坐标的质心;ψ(v)是存在该节点中的rbf(随机二元特征),如果v是分割节点,则ψ(v)是空集;是左分支和右分支sip的位移向量,如果v是分组节点,则ρ是空集。

在一个随机决策树(rdt)的根节点v0处,可以用输入点集的中心来初始化第一个sip,ρc(v0)=ρ0。然后,设置当前手的子区域和其组成成分到全部骨骼关节坐标的索引。

优选地,每个随机决策树包含多层分组节点;其中,在步骤s11中,设备1基于手势训练数据及对应骨骼关节标签信息,对每个随机决策树自上而下、逐层分组节点进行训练以得到多个随机决策树,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息。

例如,可以在rdt树t中生成多层分组节点。每个分组节点的目的是将手势训练数据集i分成il和ir。然后,il和ir沿着树t继续向下传播,生成新的分组节点分别分成il和ir。持续进行上述分组过程,直到信息增益降到足够低,开始训练分割节点。

优选地,每个随机决策树的训练过程包括:基于手势训练数据及对应骨骼关节标签信息训练得到每个随机决策树对应的多层rbf分组节点;根据所述多层rbf分组节点训练得到每个随机决策树的一个或多个分割节点及每个分割节点对应的分割索引点信息。

例如,rbf(随机二元特征)可以是一个由两部分组成的元组:一对扰乱向量v1,v2和一个分组阈值τ。假设树t中当前带有sip值ρc的节点v处理m个骨骼关节部分,即c(v)={c1,c2,…,cm}。rbf与当前sipρc一起协作。

在每个随机决策树的训练过程中,先持续训练得到多层rbf分组节点,直到信息增益降到足够低,然后开始训练得到分割节点,并更新所述分割节点对应的分割索引信息。

优选地,所述基于手势训练数据及对应骨骼关节标签信息训练得到每个随机决策树对应的多层rbf分组节点,还包括:根据所述多层rbf分组节点将所述手势训练数据分至所述随机决策树对应的左分支或右分支,直至到达所述分割节点。

例如,假设i={i1,i2,…,in}是节点v训练的图像,由f(·)引导将i分成左分支子集il={ij∈i|f(v1,v2,ρc,ij)<τ}和右分支子集ir=i\il。f(·)的定义如下:

其中,di(·)是指图像i在某个特定的像素位置的深度;ρc是骨骼索引集c的sip,由ρc=mean(pij|i∈c,j∈1,2,…,n)表示,其中pij是图像ij里成分ci的中心位置。ρ0是第一个sip,例如手的点集的质心。可以用来避免深度偏移聚集。

优选地,所述基于手势训练数据及对应骨骼关节标签信息训练得到每个随机决策树对应的多层rbf分组节点,包括:对于每个rbf分组节点,先随机生成一系列候选rbf分组节点,后将信息增益最高的所述候选rbf分组节点确定为rbf分组节点。

例如,随机决策树中学习到的分组节点可以由元组ψ=({v1,v2},τ,ρc)表示。为了学习到一个最优的ψ*,先随机生成了一系列元组ψi=({v1,v2},~,ρc),~表示参数τ将稍后确定。ij是手势训练数据集i中的一张深度图像。对于所有的{vi1,vi2}和ρc,深度差异可以由上述f(·)的定义公式计算得到,它们形成了一个特征值空间。该空间被均匀分成了o部分,该划分对应一个阈值集合τ={τ1,τ2,…,τo}。完整的元组集合包含ψio=({vi1,vi2},τo,ρc)∈ψ,它们被称为候选rbf分组节点。对于所有的候选rbf分组节点,拥有最高信息增益的元组ψ*被选为rbf分组节点v。信息增益函数的定义如下:

其中,是向量集{ρ{l,r}-ρc|ij∈i}的样本协方差矩阵,tr(·)是迹函数,ρ{l,r}=mean{pij|i∈1,2,…,m,ij∈i{l,r}(ψi)}。

随后,拥有最高增益的ψ*∈ψ被记录下来。因此,i也被分成il(ψi)和ir(ψi),并用来进一步训练树t的rbf分组节点。

更优选地,所述根据所述多层rbf分组节点训练得到每个随机决策树的一个或多个分割节点及每个分割节点对应的分割索引点信息,还包括:在所述分割节点,将所述骨骼关节标签信息分至所述分割节点对应的左分支或右分支,更新所述分割节点对应的分割索引点信息。

例如,当rdt树t的信息增益足够低时,开始训练分割节点。计算新的sips,并记录这些sip的位置位移向量,用于生成树t的更高层。对于带有sipρc(v)的分割节点v,以及其包含的骨骼关节标签信息成分集c(v)={c1,c2,…,cm},和手势训练数据集pij表示深度图像ij中骨骼关节坐标ci的位置,计算所有图片的所有骨骼关节坐标的位置,得p={pij|i∈1,2,…,m,j∈1,2,…,nc}。

随后,二分聚类算法将c分割成左分支cl和右分支cr。由于前面使用了二分rdt的二元随机特征,二分聚类算法有助于保持树结构中的一致性。聚类算法以距离矩阵d为输入,距离矩阵定义如下:

其中,i1,i1∈1,2,…,m和δ(i1,i2;ij)是图像ij中骨骼节点坐标间的测地距离,该距离对于物体关节具有很强的鲁棒性,因此能很好地应用到手势中。

聚类算法的变体定义如下:

在此,需找到rpq∈{0,1}和{q1,q2|1≤q1,q2≤m}来最小化如果i1被分配给q1,且其他rpq=0对于q≠q1。可以使用迭代的过程来寻找相应的{rpq}和{q1,q2}。在两步优化算法中,固定{rpq},寻找最优的{q1,q2},然后再固定{q1,q2}来寻找最优的{rpq}。该过程重复直至收敛或到达停止迭代的条件。然后{rpq}用作集群c。

当c被分成左分支cl和右分支cr后,重新计算两个新的sip,如下:

ρl=mean{pij|ci∈cl,j∈1,2,…,nc}

ρr=mean{pij|ci∈cr,j∈1,2,…,nc}

将{cl,ρl-ρc}和{cr,ρl-ρc}记录到分割节点v中,以更新所述分割节点对应的分割索引点信息。

更优选地,每个随机决策树的训练过程还包括:根据所述多层rbf分组节点及所述分割节点,训练得到每个决策树的叶子节点,其中,所述叶子节点对应的所述骨骼关节标签信息数量为一个。

例如,递归执行上述对于多层rbf分组节点及分割节点的训练过程,直至到达叶子节点,叶子节点意味着c(v)只包含一个单独的骨骼关节。与分割节点相比,训练叶子节点的唯一区别是直接根据标签记录手的骨骼关节位置的偏移向量,而不是计算{ρ{l,r}-ρc}。

优选地,所述方法还包括:设备1将手势训练数据分解为多个两两交集为空的手势训练数据子集;其中,在步骤s11中,设备1基于所述手势训练数据及对应骨骼关节标签信息,对每个随机决策树自上而下、逐层分组节点进行训练以得到多个随机决策树,在训练过程中随分割节点的层级下降增加一个或多个所述手势训练数据子集,其中,每个随机决策树包含一个或多个分割节点及每个分割节点对应的分割索引点信息。

例如,训练随机决策森林(rdf)是十分耗时的,时间成本的增加与随机决策树底层的分组节点的个数直接相关。每个阶段的训练数据越多,手势识别就越精确。然而,这是一个介于训练时间和精度之间的权衡。若既想限制本申请所述随机决策森林框架的训练时间,又想在每次生成随机决策树的过程中使用尽可能多的数据,故而本申请采用如下训练数据分配策略:

在rdt树t的根节点,首先将整个手势训练数据集i等分成没有交集的多个子集ii,例如可以将n设置为10000。在第一阶段,只使用i1训练树t。在第二个阶段,使用训练。在第k个阶段,使用训练。对于叶子节点,希望手势估计精度最高,因此在到达叶子节点之前,用整个数据集i来训练最后的分割节点。

在步骤s12中,设备1获取待识别手势的深度图像信息。

例如,根据所述步骤s11训练得到的多个随机决策树(即随机决策森林)即可识别所述深度图像信息对应的手势。

优选地,所述步骤s12包括步骤s121和步骤s122;在步骤s121中,设备1获取待识别手势的深度图像信息,确定所述深度图像信息的类型,其中,所述深度图像信息的类型包括稠密型和稀疏型;在步骤s122中,设备1根据所述深度图像信息的类型,对所述深度图像信息进行二值化处理;在步骤s13中,设备1对于每个随机决策树,根据所述一个或多个分割节点及每个分割节点对应的分割索引点信息确定二值化的所述深度图像信息对应的候选骨骼关节坐标信息;在步骤s14中,设备1根据所述多个随机决策树对应的多个所述候选骨骼关节坐标信息确定二值化的所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

例如,边很少(如|e|<|v|log2|v|,其中|v|、|e|分别表示图的顶点数和边数)的图称为稀疏图,边很多的图称为稠密图。按照边的多少,深度图像可分为稠密深度图和稀疏深度图。

在本实施例中,设备1获取不同类型的深度图像信息(包括稠密深度图和稀疏深度图);并根据不同的类型,分别采用不同的方案对所述深度图像信息进行二值化处理,即,分别采用不同的方案将所述深度图像信息转换为对应的二值图信息。然后,通过后续步骤(如本申请中的步骤s13、步骤s14)确定二值化的所述深度图像信息对应的骨骼关节坐标信息,从而达到识别手势的目的。

优选地,在步骤s121中,设备1通过深度摄像头获取待识别手势的深度图像信息,基于所述深度摄像头确定所述深度图像信息的类型,其中,所述深度图像信息的类型包括稠密型和稀疏型。

例如,深度摄像头按技术分类可分为:结构光、双目、tof(timeofflight,飞行时间法)。其中,tof摄像头(如microsoftkinect2.0)输出稠密深度图。双目摄像头(如innuitive)输出稀疏深度图。结构光摄像头(如microsoftkinect1.0,primesense)若高cpu、高功率,可输出稠密深度图;若低功率,可输出稀疏深度图。

当然,本领域技术人员应能理解上述深度摄像头仅为举例,其他现有的或今后可能出现的深度摄像头如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

优选地,在步骤s122中,设备1若所述深度图像信息为稠密型,基于所述深度图像信息的灰度值识别出所述待识别手势的边界图像信息,对所述边界图像信息进行二值化处理;或者,若所述深度图像信息为稀疏型,分析出所述深度图像信息的切片图,基于所述深度图像信息的切片图识别出所述待识别手势的边界图像信息,对所述边界图像信息进行二值化处理。

例如,若所述深度图像信息为稠密型,由于深度图像中不同灰度值代表不同深度,而不同灰度值可反映深度摄像头与采集图像的现实世界之间的距离,比如手的深度值大致范围是已知的,则基于这些先验信息,可以从深度摄像头提供的深度图像信息中识别出手势的边界图像信息,然后对所述边界图像信息进行二值化处理。若所述深度图像信息为稀疏型,则可先根据ct(computedtomography,计算机断层扫描)切片法分析出其中的某一个深度的切片图,然后应用最小邻域或者样条曲线算法识别出该切片图中的手势边界图像信息,再对所述边界图像信息进行二值化处理。

当然,本领域技术人员应能理解上述ct切片法、最小邻域或者样条曲线算法仅为举例,其他现有的或今后可能出现的算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s13中,设备1对于每个随机决策树,根据所述一个或多个分割节点及每个分割节点对应的分割索引点信息确定所述深度图像信息对应的候选骨骼关节坐标信息。

例如,将测试图像(包含待识别手势的深度图像信息)it输入随机决策森林f中的每个随机决策树t中,经过上述由粗到细的搜索过程,从而得到测试图像it的所有候选骨骼关节坐标信息。

优选地,所述步骤s13包括步骤s131、步骤s132和步骤s133;在步骤s131中,设备1根据所述多层rbf分组节点将所述深度图像信息分至所述随机决策树对应的左分支或右分支,直至到达所述分割节点;在步骤s132中,设备1在所述分割节点,更新所述分割节点对应的分割索引点信息;在步骤s131中,设备1重复所述步骤s131及步骤s132,直至到达所述随机决策树的叶子节点,根据所述叶子节点对应的所述深度图像信息的子集确定其对应的候选骨骼关节坐标信息。

例如,先初始化第一个sip为测试图像it的质量中心。然后根据每个分组节点已记录的rbf元组ψ=({vi1,vi2},τ),使用上述f(·)的定义公式来决定将测试图像分至树t的左分支还是右分支。如果f(v1,v2,ρc,it)<τ,则将图像it分到左边,否则右边。当it向下传播至分割节点,根据对应记录的sip位置偏移向量{ρ{l,r}-ρc}更新sip,ρc是指当前sip。然后sip的左节点ρl和右节点ρr同时向下传播。该过程一直重复直至到达树t的16个叶子节点和其对应骨骼关节坐标索引集c。在叶子节点的c只包含一个候选骨骼关节坐标信息。

在步骤s14中,设备1根据所述多个随机决策树对应的多个所述候选骨骼关节坐标信息确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

例如,在步骤s13中,随机决策森林中的每个随机决策树各确定了16个候选骨骼关节坐标信息。在此,可以综合多个随机决策树的候选骨骼关节坐标信息,确定测试图像it对应的骨骼关节坐标信息,从而达到识别所述手势的目的。

优选地,在步骤s14中,设备1根据所述多个随机决策树对应的多个所述候选骨骼关节坐标信息,通过所述多个随机决策树投票确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

例如,可以线性组合每个随机决策树对应的多个所述候选骨骼关节坐标信息,投票确定所述深度图像信息对应的骨骼关节坐标信息;或者,舍弃偏差最大和最小的随机决策树,根据其余随机决策树对应的多个所述候选骨骼关节坐标信息进行加权平均,来投票确定所述深度图像信息对应的骨骼关节坐标信息。

根据本申请的另一个方面,提供了一种包括指令的计算机可读介质,所述指令在被执行时使得系统进行如上所述方法的操作。

根据本申请的又一个方面,提供了一种识别手势的设备,其中,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上所述的方法。

与现有技术的隐性树型模型(ltm,latenttreemodel)方案相比,本申请使用sip来引导搜索过程,分组策略更为灵活。而ltm是根据手的几何特性预先学习的,无论手势如何,它都是固定的。

lrf(隐性回归树)框架是由ltm引导的rdf。由ltm得到的手的关节分区是固定的,所以它们在分割节点不需要记录聚类。然而,本申请为了更灵活的聚类使用了sip,就必须在每个分割节点处将其记录。因此,生成rdt过程需要修改。此外,rdt的结构也需要重新设计。森林中分割节点和分组节点间需要添加一个更加特别的缓存来记录聚类结果(参照图2)。

在训练期间,生成随机决策森林时,由于sip是视具体情况而定的,本申请不能提前计算手的关节成分组中所有的坐标的位置,因此本申请的模型训练时间比ltm方案更长。然而,根据实验观察,新的rdf结构对测试过程并没有很大的影响。本申请的方法在常规的cpu上,无并行运行能达到55.5fps。

而且,本申请在处理视角的变化和3d标注错误时有很大的优势。现有技术的方案对于上述问题都束手无策,而本申请对其具有很大的容忍度,能够将视角变化的影响降低到可接受的范围内。

图4示出根据本申请进行实验得到的结果与现有技术其他方案的实验结果的对比示意图,其中,“sipsrdf”表示本申请。

实验所使用的数据集是由intelcreativeinteractivegesturecamera深度摄像头采集的。该数据集收集了10个主体的数据,每个主体摆拍26个手势。每个序列是以3fps速度采样,总共产生20k的图像。基准点是人工标注的。基于面内的旋转用于产生不同角度的手势训练数据集,最后总共产生了180k的基准标注图像。实验中使用了两个测试序列a和b,这两个序列里的训练数据相互不重叠。序列是由其他主体产生,每个包含1000帧不同的多尺度和多视角的手势。所有序列都以一个清晰的正面视角的打开的手势开始。这为业界其他手势跟踪算法提供了较好初始化。

为了方便比较,采用了相同的实验配置。整个数据集都用来训练rdf森林f。实验时,评估测试图像中所有估计的骨骼节点坐标的位置与基准位置相差在一个确定的最大范围内的图像占全部图像的比例。

由图4可以看出,本申请所述随机森林框架超出了现有水平。两种测试序列中,b比a更具挑战性,因为b有更大的尺度和视角变化。因此,本申请的算法在b上表现的比a更好。也就是说,本申请的算法无论是在a上还是在b上,都比以前的方法要好。特别地,本申请的算法在a上超出lrf很多,大约8%;在b上,平均超出2.5%左右。此外,相比lrf的62.5fps,本申请的框架实时运行能达到55.5fps。这个测试速度用于实时运行是可以接受的。

另外,在图5中,展示了应用本申请进行手势识别得到的成功样例。

图6示出根据本申请再一个方面的一种识别手势的方法流程图。该方法包括步骤s21、步骤s22和步骤s23。

具体地,在步骤s21中,设备2获取待识别手势的深度图像信息,确定所述深度图像信息的类型,其中,所述深度图像信息的类型包括稠密型和稀疏型;在步骤s22中,设备2根据所述深度图像信息的类型,对所述深度图像信息进行二值化处理;在步骤s23中,设备2基于二值化的所述深度图像信息,确定所述深度图像信息对应的骨骼关节坐标信息以识别所述手势。

在此,所述设备2包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备2还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备2仅为举例,其他现有的或今后可能出现的设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

例如,边很少(如|e|<|v|log2|v|,其中|v|、|e|分别表示图的顶点数和边数)的图称为稀疏图,边很多的图称为稠密图。按照边的多少,深度图像可分为稠密深度图和稀疏深度图。

在本实施例中,设备2获取不同类型的深度图像信息(包括稠密深度图和稀疏深度图);并根据不同的类型,分别采用不同的方案对所述深度图像信息进行二值化处理,即,分别采用不同的方案将所述深度图像信息转换为对应的二值图信息。然后,通过后续算法(如前述步骤s13、步骤s14的随机决策森林算法、或者其他深度学习算法等)确定二值化的所述深度图像信息对应的骨骼关节坐标信息,从而达到识别手势的目的。

优选地,在步骤s22中,设备2通过深度摄像头获取待识别手势的深度图像信息,基于所述深度摄像头确定所述深度图像信息的类型,其中,所述深度图像信息的类型包括稠密型和稀疏型。

例如,深度摄像头按技术分类可分为:结构光、双目、tof(timeofflight,飞行时间法)。其中,tof摄像头(如microsoftkinect2.0)输出稠密深度图。双目摄像头(如innuitive)输出稀疏深度图。结构光摄像头(如microsoftkinect1.0,primesense)若高cpu、高功率,可输出稠密深度图;若低功率,可输出稀疏深度图。

当然,本领域技术人员应能理解上述深度摄像头仅为举例,其他现有的或今后可能出现的深度摄像头如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

优选地,在步骤s23中,设备2若所述深度图像信息为稠密型,基于所述深度图像信息的灰度值识别出所述待识别手势的边界图像信息,对所述边界图像信息进行二值化处理;或者,若所述深度图像信息为稀疏型,分析出所述深度图像信息的切片图,基于所述深度图像信息的切片图识别出所述待识别手势的边界图像信息,对所述边界图像信息进行二值化处理。

例如,若所述深度图像信息为稠密型,由于深度图像中不同灰度值代表不同深度,而不同灰度值可反映深度摄像头与采集图像的现实世界之间的距离,比如手的深度值大致范围是已知的,则基于这些先验信息,可以从深度摄像头提供的深度图像信息中识别出手势的边界图像信息,然后对所述边界图像信息进行二值化处理。若所述深度图像信息为稀疏型,则可先根据ct(computedtomography,计算机断层扫描)切片法分析出其中的某一个深度的切片图,然后应用最小邻域或者样条曲线算法识别出该切片图中的手势边界图像信息,再对所述边界图像信息进行二值化处理。

当然,本领域技术人员应能理解上述ct切片法、最小邻域或者样条曲线算法仅为举例,其他现有的或今后可能出现的算法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

并且,本申请可以适配不同的应用场景,例如:

近场(1m以内)的精确手势骨骼识别,该场景下可以适配的深度摄像头包括但不限于:leapmotio、usens,intelrealsense、intelcreativecamera。通过这些深度摄像头与算法适配,在该场景下可以做到精确的近场手势识别,骨骼关节坐标精度为误差1mm。

远场(1-3m)的精确手势骨骼识别,该场景下可以适配的深度摄像头包括但不限于:microsoftkinect1.0,microsoftkinect2.0。通过这些深度摄像头与算法适配,在该场景下可以做到精确的远场手势识别,主要应用于手势事件输出(例:用手比数字1-10,识别用户比划的是哪个数字),该场景并不输出精确的骨骼关节坐标。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。

通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、rf、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。

作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(ram,dram,sram);以及非易失性存储器,诸如闪存、各种只读存储器(rom,prom,eprom,eeprom)、磁性和铁磁/铁电存储器(mram,feram);以及磁性和光学存储设备(硬盘、磁带、cd、dvd);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1