一种用于手势识别的方法和装置与流程

文档序号:18010987发布日期:2019-06-26 00:04阅读:212来源:国知局
一种用于手势识别的方法和装置与流程

本发明涉及一种用于图像处理的方法和装置,具体地,涉及一种用于手势识别的方法和装置。



背景技术:

手势识别技术从输入数据的采集方法上,可分为基于数据手套,基于视觉或基于声波的手势识别技术等。其中基于视觉的手势识别技术逐渐成为主流。现有技术中的基于视觉的手势识别技术缺少实用的手势识别方法。



技术实现要素:

本发明提供的一种用于手势识别的方法和装置,能够解决现有技术中缺少实用的手势识别方法的问题。

本发明的第一方面提供一种用于手势识别的方法,所述方法包括:获取当前图像中的手的深度图;根据所述手的深度图估计所述手的关节点的第一位置;根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述关节点的第一自由度参数;根据所述关节点的第二位置以及所述手的第一自由度参数识别所述手的手势;所述手的三维点云根据所述手的深度图生成。

根据本发明的第一方面,在本发明的第一方面的第一可执行方式中,所述根据所述手的深度图估计手的关节点的第一位置,包括:将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置;所述图像-手的姿态映射器包括由手的深度图样本训练得到的手的深度图与手的姿态的映射关系,所述手的姿态包括下述参数中的至少一个:所述手的关节点的位置,以及所述手的关节点的自由度参数。

根据本发明的第一方面的第一可执行方式,在本发明的第一方面的第二可执行方式中,在所述根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数之前,所述方法还包括:将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置,包括:将所述手的深度图输入更新的图像-手的姿态映射器,得到所述手的关节点的第一位置;所述根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数,包括:根据所述估计的关节点的第一位置以及更新后的所述三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数。

根据本发明的第一方面的第二可执行方式,在本发明的第一方面的第三可执行方式中,所述将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数,包括:将第一帧中所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;在根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型,之后所述方法还包括:将第二帧中所述手的深度图输入所述更新的图像-手的姿态映射器,得到所述手的第三自由度参数;根据所述第三自由度参数以及所述更新后的三维模型向所述手的新的三维点云进行匹配,得到所述手的第二形状参数,根据所述手的第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述手的新的三维点云根据第二帧中所述手的深度图生成。

根据本发明的第一方面的第一可执行方式到第三可执行方式中任一可执行方式,在本发明的第一方面的第四可执行方式中,所述图像-手的姿态映射器包括:神经网络或随机森林分类器。

根据本发明的第一方面的第二可执行方式或第三可执行方式,在本发明的第一方面的第五可执行方式中,所述形状参数包括下述中的至少一个:手的骨骼的长度,以及手的骨骼的宽度。

本发明的第二方面提供一种用于手势识别的装置,其特征在于,所述装置包括:获取模块,用于获取当前图像中的手的深度图;计算模块,用于根据所述手的深度图估计所述手的关节点的第一位置;所述计算模块,还用于根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述关节点的第一自由度参数;识别模块,用于根据所述关节点的第二位置以及所述手的第一自由度参数识别所述手的手势;所述手的三维点云根据所述手的深度图生成。

根据本发明的第二方面,在本发明的第二方面的第一可执行方式中,所述计算模块,具体用于将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置;所述图像-手的姿态映射器包括由手的深度图样本训练得到的手的深度图与手的姿态的映射关系,所述手的姿态包括下述参数中的至少一个:所述手的关节点的位置,以及所述手的关节点的自由度参数。

根据本发明的第二方面的第一可执行方式,在本发明的第二方面的第二可执行方式中,所述装置还包括更新模块,所述计算模块,还用于将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;所述更新模块,用于根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述计算模块,具体用于将所述手的深度图输入更新的图像-手的姿态映射器,得到所述手的关节点的第一位置;所述计算模块,具体用于根据所述估计的关节点的第一位置以及更新后的所述三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数。

根据本发明的第二方面的第二可执行方式,在本发明的第二方面的第三可执行方式中,所述计算模块,具体用于将第一帧中所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;所述计算模块,还用于将第二帧中所述手的深度图输入所述更新的图像-手的姿态映射器,得到所述手的第三自由度参数,根据所述第三自由度参数以及所述更新后的三维模型向所述手的新的三维点云进行匹配,得到所述手的第二形状参数,根据所述手的第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述手的新的三维点云根据第二帧中所述手的深度图生成。

根据本发明的第二方面的第一可执行方式到第三可执行方式中任一可执行方式,在本发明的第二方面的第四可执行方式中,所述图像-手的姿态映射器包括:神经网络或随机森林分类器。

根据本发明的第二方面的第二可执行方式或第三可执行方式,在本发明的第二方面的第五可执行方式中,所述形状参数包括下述中的至少一个:手的骨骼的长度,以及手的骨骼的宽度。

本发明的第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如本发明的第一方面、本发明的第一方面的第一可执行方式到本发明的第一方面的第五可执行方式中任一可执行方式中所述方法的步骤。

本发明的第四方面提供一种用于手势识别的装置,包括存储器、第二处理器以及存储在所述存储器中并可在所述第二处理器上运行的计算机程序,所述计算机程序被第二处理器执行时实现如本发明的第一方面、本发明的第一方面的第一可执行方式到本发明的第一方面的第五可执行方式中任一可执行方式所述方法的步骤。

本发明提供的一种用于手势识别的方法和装置,能够提供实用的手势识别方法,并且准确地对手势进行识别。

附图说明

图1为本发明实施例一提供的一种用于手势识别的方法的流程图;

图2为本发明实施例一提供的一种手的骨架模型的示意图;

图3为本发明实施例二提供的一种用于手势识别的装置结构示意图;

图4为本发明实施例三提供的一种用于手势识别的装置结构示意图;

图5为本发明实施例四提供的一种用于手势识别的装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。

本发明的说明书和权利要求书中上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。

其中,本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或“例如”的任何实施例或设计方案不应该被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

应当说明的是,为了图示的简洁和清楚起见,附图中所示的元件没有必要按照比例进行绘制。例如,为了清楚,可以相对于其他元件,增大一些元件的尺寸。另外,在认为合适的地方,可以在附图间重复附图标记,以指示相对应或类似的元件。

下面结合附图1对本发明实施例一提供的一种用于手势识别的方法进行详细阐述。如图1所示,该方法包括:

步骤101,获取当前图像中的手的深度图。

上述的获取当前图像中的手的深度图可以是接收来自摄像装置的深度图,也可以是接收来自存储装置的深度图,该存储装置可以为ram(randomaccessmemory随机存取存储器)或闪存flashmemory或rom(read-onlymemory只读存储器)等。

上述的手的深度图可以为从原完整深度图中剪切出包括手的区域图像,即感兴趣区域(roi,regionofinterest),并将其缩放至合适大小。

可选的,在步骤101之前,可以检测深度视频流,即多帧的深度图,中的深度图中是否有手。可以预先训练一个手的分类器,利用此分类器和深度阈值来检测和定位深度图中的手。当检测到有手的情况下,输出手部中心的坐标位置。在此基础上,也可以提取指尖等手部形状特征来做验证,排除误检。在此之后,可以跟踪手的位置,可以根据输出的上一帧的手的位置,或者根据上一帧手的位置和速度,预测当前帧中手的位置,并输出手部中心的坐标位置。同时可以输出跟踪的置信度,当置信度较低时,会认为跟踪失败,下一帧会重新进行上述的检测动作。可选的,可以采用运动预测和基于核相关滤波(kcf,kernelcorrelationfilter)的跟踪方法来对深度视频流中的手进行跟踪。当跟踪到手的位置后,就可以从深度图中剪切出上述的包括手的区域图像。由于深度图和普通彩色图像或黑白图像有一一对应的关系,上述的检测和跟踪步骤也可以对普通彩色图像或黑白图像进行处理达到上述的目的。

步骤102,根据所述手的深度图估计所述手的关节点的第一位置。

所述根据所述手的深度图估计手的关节点的第一位置,可以包括:将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置。所述图像-手的姿态映射器包括由手的深度图样本训练得到的手的深度图与手的姿态的映射关系,所述手的姿态包括下述参数中的至少一个:所述手的关节点的位置,以及所述手的关节点的自由度参数。上述的手的关节点的位置可以包括手的关节点的三维坐标。所述手的关节点的自由度参数是指手的骨骼在不同方向绕关节点活动的角度参数。如图2所示,图中矩形表示的关节点可以有6个自由度,图中三角形表示的关节点可以有2个自由度,图中圆形表示的关节点可以有1个自由度。

所述图像-手的姿态映射器可以包括:神经网络或随机森林分类器。

以神经网络为例,该神经网络可以为卷积神经网络,该卷积神经网络的输入可以包括深度图像,可选的,该输入还可以包括手的形状参数;输出则可以包括手的关节点的位置,可选的,输出还可以包括手的姿态。

步骤103,根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述关节点的第一自由度参数。

所述手的三维点云可以根据所述手的深度图生成,可以根据深度图中的深度数据,将表示所述手的像素点,映射到摄像装置的三维坐标系中,形成三维点云。

上述存储的手的三维模型可以包括基于球面网格的三维模型。该模型可以由手的姿态参数和手的形状参数确定。

可选的,在匹配过程中,通过计算上述的三维模型与三维点云之间的差异(loss),以此建立优化目标函数。优化目标函数还可以包括前后帧参数差异、手的关节点的自由度范围约束、关节点的自由度先验概率中至少一项的优化目标。最后可以通过列文伯格-马夸尔特(lm)算法迭代计算出最佳的手的关节点的自由度参数以及所述关节点的位置。上述的匹配可以是全部的点或选择出的部分点完成匹配。

步骤104,根据所述关节点的第二位置以及所述手的第一自由度参数识别所述手的手势。可选的,在此步骤中可以根据输出的关节点的自由度参数和关节点的位置,提取相邻关节点的向量特征,通过训练好的支持向量机来识别特定的手势或动作,输出相应的指令。

上述的识别手势可以是识别某个或某几个帧中的手势,也可以是识别多个连续帧中的动态手势。

可选的,默认情况下,图像-手的姿态映射器以及所述存储的手的三维模型中的形状参数是根据手的样本数据集得到的统计均值,应用于不同的使用者时会存在估计精度的偏差。因此,可以在进行上述的匹配之前,可以优化上述的图像-手的姿态映射器以及三维模型中的手的形状参数。所述形状参数包括下述中的至少一个:手的骨骼的长度,以及手的骨骼的宽度。这样,能够使得三维模型和图像-手的姿态映射器与新的使用者的手的形状参数相匹配,从而得到更加准确的姿态估计结果。在所述根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数之前,所述方法还包括:将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数,根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型。所述将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置,包括:将所述手的深度图输入更新的图像-手的姿态映射器,得到所述手的关节点的第一位置。所述根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数,包括:所述根据所述估计的关节点的第一位置以及更新后的所述三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数。

可选的,可以利用深度视频流中的多个帧来优化上述的图像-手的姿态映射器以及三维模型中的手的形状参数。上述多个帧可以为连续帧,也可以是不连续的帧,因此,也可以是不通过采集深度视频流中的深度图,而通过单独拍摄多张深度图的方式来优化手的形状参数。所述将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数,包括:将第一帧中所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数。在根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型之后,所述方法还包括:将第二帧中所述手的深度图输入所述更新的图像-手的姿态映射器,得到所述手的第三自由度参数,根据所述第三自由度参数以及所述更新后的三维模型向新的所述手的三维点云进行匹配,得到所述手的第二形状参数,根据所述手的第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型,所述新的手的三维点云根据第二帧中所述手的深度图生成。

具体地,上述的更新是指更新图像-手的姿态映射器和所述三维模型中的形状参数。在优化手的形状参数的过程里,上述的图像-手的姿态映射器的初始输入可以包括:根据手的样本数据集得到的统计均值作为手的形状参数的初始输入,输出可以包括手的关节点的自由度参数。上述三维模型的初始输入可以包括:根据手的样本数据集得到的统计均值作为手的形状参数的初始输入以及图像-手的姿态映射器输出的关节点的自由度参数作为姿态参数的初始输入。然后,用lm优化算法使得三维模型向由手的深度图生成的三维点云进行迭代匹配,计算得到形状参数的变化量以及姿态参数的变化量。可选的,在优化过程可以引入正则项,使得姿态参数的变化量小于某个阈值。根据上述形状参数的变化量更新三维模型以及图像-手的姿态映射器中的所述手的形状参数。之后,再获取另一帧(即上段中的第二帧)中手的深度图,生成相应的三维点云,同时将该深度图输入更新了手的形状参数的图像-手的姿态映射器中,输出新的手的关节点的自由度参数。将该新的手的关节点的自由度参数输入更新了手的形状参数的三维模型,向新的所述手的三维点云进行匹配,所述手的新的三维点云为根据另一帧中所述手的深度图生成,得到新的形状参数的变化量,根据该新的形状参数的变化量可以得到最新的形状参数,记为第二形状参数,根据该第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型中手的形状参数。如此,利用不同帧中的深度图作为输入不断优化图像-手的姿态映射器以及三维模型中的形状参数,直到得到的形状参数的变化量小于或等于某个阈值,则退出手的形状参数优化过程。

上述的第一自由度参数、第二自由度参数以及第三自由度参数均属于手的关节点的自由度参数。上述的第一形状参数、第二形状参数均属于形状参数。

在手的形状参数优化过程之后,可以进行手的姿态估计。具体方法如下:

1、使用手的形状参数优化后的图像-手的姿态映射器对当前帧做粗略的关节点位置估计。可选的,还可以进行手的关节点的自由度的估计。同时输出估计的置信度。当置信度高于某阈值时,下一帧将转步骤2;否则,重新进入检测深度图中是否有手的步骤。

2、使用手的形状参数优化后的三维模型向由深度图生成的三维点云进行匹配的方法进行相对精细的手的关节点的自由度估计和关节点的位置估计,同时输出置信度。当置信度高于某阈值时,输出关节点的自由度和关节点位置参数以在手势识别的步骤中使用,下一帧将继续步骤2;否则,下一帧将转步骤1。

在手势识别的步骤中,预先建立关节点的自由度和关节点位置参数,与手势含义的映射关系的映射器,该手势含义可以为手势含义的类别,也可以直接为与上述关节点的自由度和关节点位置参数对应的特定的动作,如放大显示,屏幕解锁等。根据上述方法估计出的关节点的自由度和关节点位置参数识别,以及上述的映射器识别出获得的视频流或多张图像中的手势的具体含义。

本发明提供的一种用于手势识别的方法,能够提供实用的手势识别方法,并且准确地对手势进行识别。由于在识别之前优化了手的形状参数,识别效果能够更加鲁棒。本发明的方法简单,对摄像装置的帧率要求低。

下面结合附图3对本发明实施例二提供的一种用于手势识别的装置300进行详细阐述。如图3所示,该装置300包括获取模块301,计算模块302以及识别模块303。

所述获取模块301,用于获取当前图像中的手的深度图。

上述的获取当前图像中的手的深度图可以是接收来自摄像装置的深度图,也可以是接收来自存储装置的深度图,该存储装置可以为ram(randomaccessmemory随机存取存储器)或闪存flashmemory或rom(read-onlymemory只读存储器)等。

上述的手的深度图可以为从原完整深度图中剪切出包括手的区域图像,即感兴趣区域(roi,regionofinterest),并将其缩放至合适大小。

可选的,上述装置还可以包括检测模块,该检测模块可以用于检测深度视频流,即多帧的深度图,中的深度图中是否有手。可以预先训练一个手的分类器,利用此分类器和深度阈值来检测和定位深度图中的手。当检测到有手的情况下,输出手部中心的坐标位置。在此基础上,也可以提取指尖等手部形状特征来做验证,排除误检。在此之后,可以跟踪手的位置,可以根据输出的上一帧的手的位置,或者根据上一帧手的位置和速度,预测当前帧中手的位置,并输出手部中心的坐标位置。同时可以输出跟踪的置信度,当置信度较低时,会认为跟踪失败,下一帧会重新进行上述的检测动作。可选的,可以采用运动预测和基于核相关滤波(kcf,kernelcorrelationfilter)的跟踪方法来对深度视频流中的手进行跟踪。当跟踪到手的位置后,就可以从深度图中剪切出上述的包括手的区域图像。由于深度图和普通彩色图像或黑白图像有一一对应的关系,上述的检测和跟踪步骤也可以对普通彩色图像或黑白图像进行处理达到上述的目的。

计算模块302,用于根据所述手的深度图估计所述手的关节点的第一位置。

所述计算模块302,具体用于将所述手的深度图输入经过训练的图像-手的姿态映射器,得到所述手的关节点的第一位置.所述图像-手的姿态映射器包括由手的深度图样本训练得到的手的深度图与手的姿态的映射关系,所述手的姿态包括下述参数中的至少一个:所述手的关节点的位置,以及所述手的关节点的自由度参数。上述的手的关节点的位置可以包括手的关节点的三维坐标。所述手的关节点的自由度参数是指手的骨骼在不同方向绕关节点活动的角度参数。如图2所示,图中矩形表示的关节点可以有6个自由度,图中三角形表示的关节点可以有2个自由度,图中圆形表示的关节点可以有1个自由度。

所述图像-手的姿态映射器包括:神经网络或随机森林分类器。

以神经网络为例,该神经网络可以为卷积神经网络,该卷积神经网络的输入可以包括深度图像,可选的,该输入还可以包括手的形状参数;输出则可以包括手的关节点的位置,可选的,输出还可以包括手的姿态。

所述计算模块302,还用于根据所述估计的关节点的第一位置以及存储的手的三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述关节点的第一自由度参数。

所述手的三维点云可以根据所述手的深度图生成,可以根据深度图中的深度数据,将表示所述手的像素点,映射到摄像装置的三维坐标系中,形成三维点云。

上述存储的手的三维模型可以包括基于球面网格的三维模型。该模型可以由手的姿态参数和手的形状参数确定。

可选的,在匹配过程中,通过计算上述的三维模型与三维点云之间的差异(loss),以此建立优化目标函数。优化目标函数还可以包括前后帧参数差异、手的关节点的自由度范围约束、关节点的自由度先验概率中至少一项的优化目标。最后可以通过列文伯格-马夸尔特(lm)算法迭代计算出最佳的手的关节点的自由度参数以及所述关节点的位置。上述的匹配可以是全部的点或选择出的部分点完成匹配。

识别模块303,用于根据所述关节点的第二位置以及所述手的第一自由度参数识别所述手的手势。可选的,可以根据输出的关节点的自由度参数和关节点的位置,提取相邻关节点的向量特征,通过训练好的支持向量机来识别特定的手势或动作,输出相应的指令。

上述的识别手势可以是识别某个或某几个帧中的手势,也可以是识别多个连续帧中的动态手势。

可选的,默认情况下,图像-手的姿态映射器以及所述存储的手的三维模型中的形状参数是根据手的样本数据集得到的统计均值,应用于不同的使用者时会存在估计精度的偏差。因此,可以在进行上述的匹配之前,可以优化上述的图像-手的姿态映射器以及三维模型中的手的形状参数。所述形状参数包括下述中的至少一个:手的骨骼的长度,以及手的骨骼的宽度。这样,能够使得三维模型和图像-手的姿态映射器与新的使用者的手的形状参数相匹配,从而得到更加准确的姿态估计结果。由此,所述装置还可以包括更新模块,所述计算模块,还用于将所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;所述更新模块,用于根据所述第二自由度参数以及所述存储的手的三维模型向所述手的三维点云进行匹配,得到所述手的第一形状参数,根据所述手的第一形状参数更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述计算模块,具体用于将所述手的深度图输入更新的图像-手的姿态映射器,得到所述手的关节点的第一位置;所述计算模块,具体用于根据所述估计的关节点的第一位置以及更新后的所述三维模型向生成的手的三维点云进行匹配,得到所述关节点的第二位置以及所述手的第一自由度参数。

可选的,可以利用深度视频流中的多个帧来优化上述的图像-手的姿态映射器以及三维模型中的手的形状参数。上述多个帧可以为连续帧,也可以是不连续的帧,因此,也可以是不通过采集深度视频流中的深度图,而通过单独拍摄多张深度图的方式来优化手的形状参数。所述计算模块,具体用于将第一帧中所述手的深度图输入所述图像-手的姿态映射器,得到所述手的第二自由度参数;所述计算模块,还用于将第二帧中所述手的深度图输入所述更新的图像-手的姿态映射器,得到所述手的第三自由度参数,根据所述第三自由度参数以及所述更新后的三维模型向所述手的新的三维点云进行匹配,得到所述手的第二形状参数,根据所述手的第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型;所述手的新的三维点云根据第二帧中所述手的深度图生成。

具体地,上述的更新是指更新图像-手的姿态映射器和所述三维模型中的形状参数。在优化手的形状参数的过程里,上述的图像-手的姿态映射器的初始输入可以包括:根据手的样本数据集得到的统计均值作为手的形状参数的初始输入,输出可以包括手的关节点的自由度参数。上述三维模型的初始输入可以包括:根据手的样本数据集得到的统计均值作为手的形状参数的初始输入以及图像-手的姿态映射器输出的关节点的自由度参数作为姿态参数的初始输入。然后,用lm优化算法使得三维模型向由手的深度图生成的三维点云进行迭代匹配,计算得到形状参数的变化量以及姿态参数的变化量。可选的,在优化过程可以引入正则项,使得姿态参数的变化量小于某个阈值。根据上述形状参数的变化量更新三维模型以及图像-手的姿态映射器中的所述手的形状参数。之后,再获取另一帧(即上段中的第二帧)中手的深度图,生成相应的三维点云,同时将该深度图输入更新了手的形状参数的图像-手的姿态映射器中,输出新的手的关节点的自由度参数。将该新的手的关节点的自由度参数输入更新了手的形状参数的三维模型,向新的所述手的三维点云进行匹配,所述手的新的三维点云为根据另一帧中所述手的深度图生成,得到新的形状参数的变化量,根据该新的形状参数的变化量可以得到最新的形状参数,记为第二形状参数,根据该第二形状参数再次更新所述图像-手的姿态映射器以及所述存储的手的三维模型中手的形状参数。如此,利用不同帧中的深度图作为输入不断优化图像-手的姿态映射器以及三维模型中的形状参数,直到得到的形状参数的变化量小于或等于某个阈值,则退出手的形状参数优化过程。

上述的第一自由度参数、第二自由度参数以及第三自由度参数均属于手的关节点的自由度参数。上述的第一形状参数、第二形状参数均属于形状参数。

上述计算模块对在手的形状参数进行优化之后,可以进行手的姿态估计。该计算模块具体用于:

1、使用手的形状参数优化后的图像-手的姿态映射器对当前帧做粗略的关节点位置估计。可选的,还可以进行手的关节点的自由度的估计。同时输出估计的置信度。当置信度高于某阈值时,下一帧将转步骤2;否则,重新进入检测深度图中是否有手的步骤。

2、使用手的形状参数优化后的三维模型向由深度图生成的三维点云进行匹配的方法进行相对精细的手的关节点的自由度估计和关节点的位置估计,同时输出置信度。当置信度高于某阈值时,输出关节点的自由度和关节点位置参数以在手势识别的步骤中使用,下一帧将继续步骤2;否则,下一帧将转步骤1。

上述识别模块,具体用于预先建立关节点的自由度和关节点位置参数,与手势含义映射关系的映射器,该手势含义可以为手势含义的类别,也可以直接为与上述关节点的自由度和关节点位置参数对应的特定的动作,如放大显示,屏幕解锁等。根据上述方法估计出的关节点的自由度和关节点位置参数识别,以及上述的映射器识别出获得的视频流或多张图像中的手势的具体含义。

本发明提供的一种用于手势识别的装置,能够提供实用的手势识别方法,并且准确地对手势进行识别。由于在识别之前优化了手的形状参数,识别效果能够更加鲁棒。本发明的方法简单,对摄像装置的帧率要求低。

下面结合图4具体描述本发明实施例三提供的一种用于手势识别的装置400,该装置400包括一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序,所述计算机程序被第一处理器402执行时实现如实施例一的方法的步骤。如图4所示,可选的,该装置400可以包括总线。

关于本实施例中部件功能的描述可以参见实施例一或二。

本发明提供的一种用于手势识别的装置,能够提供实用的手势识别方法,并且准确地对手势进行识别。由于在识别之前优化了手的形状参数,识别效果能够更加鲁棒。本发明的方法简单,对摄像装置的帧率要求低。

下面结合图5具体描述本发明实施例四提供的一种用于手势识别的装置500,该装置500包括存储器501、第二处理器502以及存储在所述存储器501中并可在所述第二处理器502上运行的计算机程序,所述计算机程序被第二处理器502执行时实现如实施例一所述方法的步骤。可选的,如图5所示,该装置500还包括总线。

本发明提供的一种用于手势识别的装置,能够提供实用的手势识别方法,并且准确地对手势进行识别。由于在识别之前优化了手的形状参数,识别效果能够更加鲁棒。本发明的方法简单,对摄像装置的帧率要求低。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述装置/终端设备中的执行过程。

所述装置/终端设备可以是手机、平板电脑、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述装置/终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,本发明的示意图仅仅是装置/终端设备的示例,并不构成对装置/终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述装置/终端设备还可以包括输入输出设备、网络接入设备、总线等。

上述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述装置/终端设备的控制中心,利用各种接口和线路连接整个装置/终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述装置/终端设备的各种功能。所述存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如视频数据、图像等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

上述各个实施例中的目标物体的成像可以目标物体的局部成像,也可以整体成像。无论是局部成像,或整体成像都适用或对局部成像,或整体成像相应做出调整后适用本发明提供的方法或装置,上述调整本领域普通技术人员不需要付出创造性劳动,应属于本发明的保护范围。

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