用于姿势操作识别的方法和装置与流程

文档序号:13875606阅读:195来源:国知局
用于姿势操作识别的方法和装置与流程

本发明涉及远程控制领域,更具体地,涉及用于基于姿势操作的计算机视觉识别的人机交互的方法和装置。



背景技术:

目前,作为用户通过操作对象识别而输入的姿势操作,需要实时跟踪对象的轨迹。操作对象的代表性示例是用户的手。存在许多用于通过使用运动信息来跟踪手轨迹的方法,例如,专利号为us8582037b2、名称为“systemandmethodforhandgesturerecognitionforremotecontrolofaninternetprotocoltv”的美国专利,公开了用于连续地检查涉及手势图案的相关轨迹的方法,每当检测到相关轨迹时,就提取相应的轨迹段并将该段运送到姿势分类器,以验证该段是否涉及特定的姿势命令。

然而,手轨迹通常包括一些相对复杂的轨迹(例如,椭圆形)。因此,为了检测连续轨迹中的手轨迹总会遇到如何减少轨迹的假段的问题。如果真段点和假段点之间的区别小,则手势的精度将变低并且召回率也将降低。

另一示例,关于自动脸部和姿势识别的ieee国际会议公开了“automatichandtrajectorysegmentandphonemetranscriptionforsignlanguage”的方法。它提出了具有以下步骤的分割3-d手轨迹的自动方法:1)基于方向角变化的速度最小值和最大值来获得候选段点;2)向训练的朴素贝叶斯(naivebayesian)网络输入段点以识别真段点并消除假警报。此方法关注运动特性的局部特征,因此,也遇到在手轨迹中出现的假段的问题。

难以降低假段的概率,所以精度在分段和手势识别两者方面都不高。因此,本发明的目的旨在提供如何在手势识别期间在验证段是否涉及特定姿势之前提高段的精度的方法。



技术实现要素:

因此,鉴于上述记载,本公开旨在解决上述问题。由此,在本公开中提出了新颖的姿势识别方法或装置,以提高现实世界中姿势识别的精度。特别地,在该环境下,包括操作对象的一些圆状轨迹。

根据本发明的一个方面,提供了一种方法,所述方法包括:由序列传感器数据生成采样点;基于具有局部最大曲率的采样点生成候选段点;基于从段片段提取出的特征来细化所述候选段点,其中,所述段片段是从上一候选段点开始并在下一候选段点结束的一组采样点;基于所述段点来识别姿势操作类型。

在本公开中呈现的本发明的优点是,因为本发明基于从操作对象的轨迹的段片段中提取出的特征来细化段点,所以姿势操作识别可以更精确。

附图说明

图1是示出能够进行本发明的实施例的计算机系统的硬件构造的一般框图。

图2是示出手势识别装置的构造的框图。

图3是示出由根据本发明的一个实施例的装置进行的处理的图。

图4是用于根据本发明的一个实施例确定段点的方法的流程图。

图5a是示出具有候选段点的手轨迹的示意图。

图5b是示出具有从图5a保留的候选段点的手轨迹的示意图。

图5c是示出具有从图5b细化的段点的手轨迹的示意图。

图6是示出本发明应用的示例的框图。

具体实施方式

参照上面列出的附图,本部分描述了具体实施例和它们的详细结构和操作。注意,通过仅以举例说明而非限制的方式来阐述在下文中要描述的实施例,因此它们不限制本发明的范围,并且可以在本发明的范围内改变成各种形式。本领域的技术人员鉴于在此的教导将认识到存在与在此描述的示例实施例等同的范围。

将以用户的手作为操作对象的示例来描述本示例性实施例。然而,即使当利用诸如触控笔或机械臂的操作工具替换操作对象时,也能够应用本示例性实施例。

图1是示出能够进行本发明的实施例的计算机系统的硬件构造的框图。如图1所示,系统至少包括计算机100,该计算机100包括cpu101、ram102、rom103、系统总线104、输入设备105、输出设备106和驱动器107。例如,计算机100可以是手势识别系统。注意,计算机100可以包括一个或多个计算机,多个计算机可以单独地实施计算机100的各个功能。

cpu101根据存储在ram102或rom103中的程序进行整个处理。当cpu101进行各种处理(例如,本发明的实施例)时,ram102被用作临时存储区域。

输入设备105可以是序列数据获取设备(例如,照相机、传感器)或用户输入接口设备或网络接口设备,其允许用户向计算机100发出各种指令。

输出设备106包括输出外围接口、显示设备(例如,监视器、crt、液晶显示器或图形控制器),其允许用户输出本发明的手势识别结果。

驱动器107被构造用于驱动存储介质(诸如硬盘、存储卡或光盘(例如,cd-rom或dvd-rom))。例如,序列数据或用于进行手势识别处理的程序被存储在存储介质中并且由驱动器107驱动。

系统总线104使cpu101、ram102、rom103、输入设备105、输出设备106和驱动器107连接。数据在系统总线104上传送。如在此所使用的,术语“连接”是指逻辑上或物理上直接连接或通过一个或多个中介间接连接。

图1所示的系统仅是说明性的并且绝不意在限制本发明,包括其应用或使用。例如,当启动用于进行手势识别处理的程序时,cpu101通过执行本发明中公开的所有步骤(例如,图3和图4中例示的步骤),从输入设备105获得输入序列数据,并且生成候选段点,然后细化候选段点以提高真段点的精度。之后,cpu101通过系统总线104将结果发送到输出设备106。结果也可以存储在ram102中。经由网络接口,结果也可以被发送到远程计算机用于其它应用。

此外,也可以执行本发明的装置(例如,图2例示的装置)的各单元、部件和/或组件,该装置被构造为通过软件、硬件、固件或其任何组合来进行方位估计。

[第一实施例]

图2是示出手势识别装置的构造的框图。图3是示出图2所示的装置进行的处理的图。cpu101使用存储在ram102或rom103中的程序和序列数据以进行本发明的方法。

如图2所示,手势识别装置200可以包括:序列数据输入单元201、采样点获取单元202、段生成单元203、段细化单元204以及手势识别和输出单元205。

装置200首先从输入单元201接收序列数据,该输入单元201被构造为通过序列数据获取设备206(例如,深度传感器)接收手轨迹的当前序列数据。在一个实施例中,输入可以是手轨迹的序列数据。例如,针对手轨迹的采样数据设置每秒30帧,这是指输入单元201可以在每秒接收手轨迹的30帧数据。

采样点获取单元202被构造为获取手轨迹的采样点。cpu101控制采样点获取单元202进行图3所示的步骤s301以生成采样点。

在一个实施例中,采样点获取单元202从每个序列数据获取坐标值以生成采样点。每个采样点的坐标包括x坐标、y坐标、深度值和帧索引。

在其他实施例中,深度传感器可以预先校准表面以预定义手势类型。在校准时,本发明可以设置x-y轴的原点,并将深度值的零平面设置为表面。因此,关于表面,提取包括序列数据的各帧的x、y和深度值的坐标作为采样点;其中,坐标中的x和y是指表面中的x坐标和y坐标。此外,基于表面,预定义的手势类型可以包括水平导航姿势(“左”或“右”)和垂直导航姿势(“上”或“下”)。水平导航姿势被定义为用户在表面上从他的身体的右侧向他的身体的左侧(“左”)或从他的身体的左侧向他的身体的右侧(“右”)滑动他的手。垂直导航姿势被定义为用户在表面上从接近他的身体的位置向远离他的身体的位置(“上”)或从远离他的身体的位置向接近他的身体的位置(“下”)滑动他的手。

采样点获取单元202可以进行用于降低噪音、上采样以及基于手轨迹的采样点拟合曲线的一些预处理方法。

在一个实施方式中,采样点获取单元202通过称为各向异性扩散过滤的方法(已经在由kluwer学术出版社于1994年最初出版的“scale-spacetheoryincomputervision”bytonylindeberg.isbn0-7923-9418-6,springer中公开)对采样点进行过滤以降低噪音。

在另一实施方式中,对于采样点进行上采样,采样点获取单元202通过被称为艾米插值(hermiteinterpolation)的方法来减少一阶导数和二阶导数的估计误差。

在其他实施方式中,采样点获取单元202通过三次样条方法(“splineinterpolation”byhazewinkel,michiel,ed.(2001),encyclopediaofmathematics,springer,isbn978-1-55608-010-4)基于采样点来拟合曲线。

段点生成单元203被构造为基于采样点来生成段点。cpu101控制段生成单元203进行图3所示的步骤s302以生成段点。在一个实施例中,段点生成单元203可以计算每个采样点的时空曲率以确定段点,这将结合图4进行说明。

现在转到图4,图4是用于根据本发明的一个实施例确定段点的方法的流程图。

在步骤s401中,cpu101计算每个采样点的空间曲率特征的值。在一个实施例中,空间曲率特征是时空曲率,这已经在如下文献(即,“view-invariantrepresentationandrecognitionofactions”.internationaljournalofcomputervision.november2002,volume50,issue2,pp203-226)中公开。例如,几何特征(例如,3d曲率)可以用于描述曲线的角,时间可以视为第四维,然后4d空间曲率特征(即时空曲率)不仅可以用来描述角,而且可以描述手轨迹的速度变化。在另一实施方式中,采用移动平均过滤方法(“statisticalanalysis”byya-lunchou,holtinternational,1975,isbn0-03-089422-0,section17.9)以使时空曲率平滑。

在步骤s402中,cpu101根据如下所示的条件,来选择具有空间曲率特征的局部最大值的采样点作为候选段点:

其中,ptcand是一组采样点中的候选段点;

是拟合曲线中的第j个采样点;

curves是的时空曲率;

的局部附近的一组采样点;

局部附近的范围由宽度为8的窗口(例如,拟合曲线中的采样点)确定。

thr1和thr2两者都是常数,根据实验,thr1被设置为-2;thr2被设置为0.1。

当采样点满足以上条件时,段点生成单元203确定其作为候选段。

图5a是示出具有候选段点的手轨迹的示意图。如图5a所示,存在用黑点例示并且编号为从501至511的11个候选段点。候选段点501是手轨迹的起点,候选段点511是手轨迹的终点。

在步骤s403中,cpu101基于段点的训练模型对候选段点进行过滤。在一个实施例中,段点的训练模型是两个高斯混合(gmm)模型,即,正gmm和负gmm,这将在下文的训练过程中进行说明。

根据实验,本发明设置预定的阈值以确定候选段点是否应被丢弃;其中,阈值被设置为0.6。如下示出确定条件:

其中,resspm=(ppositivespm-pnegativespm)/(ppositivespm+pnegativeespm),ppositivespm是基于候选段点的曲率和正gmm的候选段点的概率。pnegativespm是基于候选段点的曲率和负gmm的候选段点的概率。

当signspm函数等于1时,段点生成单元203保留候选段点;否则,signspm函数等于0,这是指段点生成单元203丢弃候选段点。

图5b是示出具有从图5a保留的候选段点的手轨迹的示意图。如图5b所示,存在7个保留的候选段点和4个丢弃的候选段点。即,保留的候选段点的编号为501、503、504、505,506、507和511。丢弃的候选段点的编号为502、508、509和510。

段点细化单元204被构造为通过利用从上一段点与下一段点之间的一组采样点的段片段提取出的特征,来细化保留的段点。cpu101控制段点细化单元204进行图3所示的步骤s303,以基于从段片段提取出的特征来细化保留的候选段点。

对于每个保留的段点,存在作为从上一保留的候选段点开始并在下一保留的候选段点结束的一组采样点的相应的段片段。例如,如图5b所示,如果段点505是当前保留的候选段点,则段点504、503或501中的一个可以是上一保留的候选段点,段点506、507或511中的一个可以是下一保留的候选段点。因此,相应的段片段从段点504开始,在段点506结束。在一个实施例中,段片段的特征可以是二维特征向量。第一维是段片段与估计周期的偏差。作为示例,采用非线性最小二乘回归法(“numericalmethodsforleastsquaresproblems”bya.(1996).siam,philadelphia.isbn0-89871-360-9)来估计周期并计算偏差。第二维是段片段的弧长与估计圆的周长的比率。基于相邻的保留的段点的欧几里德距离来计算段片段的弧长。

在一个实施例中,段片段的训练模型是两个gmm模型,即,正gmm和负gmm,这将在下文的训练过程中进行说明。

根据实验,本发明设置预定的阈值来确定段片段是否应被丢弃,其中,阈值被设置为0.6。

如下示出确定条件:

其中,ressfm=(ppositivesfm-pnegativesfm)/(ppositivesfm+pnegativesfm),ppositivesfm是基于段片段的2维特征向量和正gmm的段片段的概率。pnegativesfm是基于段片段的2维特征向量和负gmm的段片段的概率。

当signsfm函数等于1时,段点细化单元204细化候选段点;否则,signsfm函数等于0,这是指段点细化单元204丢弃候选段点。

图5c是示出具有从图5b细化的段点的手轨迹的示意图。如图5c所示,存在5个细化的段点,包括手轨迹的起点和终点(501、511),以及编号为504、505和506的其他三个段点。丢弃的候选段点的编号为503和507。

本发明同时使用采样点的空间曲率特征和从基于候选段点的段片段提取出的特征,来在手势分段方面实现更高的召回率和精度。

姿势识别和输出单元205被构造为基于由段点指定的序列传感器数据的至少一部分,来识别并输出不同类型的手势。手势识别结果被用来准确地估计手轨迹。cpu101控制姿势识别和输出单元205以进行图3所示的步骤s304。

因为细化段点可以通过上述拟合曲线方法生成,所以有必要在姿势识别前针对每个细化段点在一组采样点中找到相应的原始采样点。准则是选择具有到细化段点的最小欧几里得距离的原始采样点作为段点的相应点。记录所选择的对应于细化段点的原始采样点作为一组采样点。

在一个实施方式中,本发明可以在一组采样点中识别姿势,其中,采样点被细化段点分割。对于两个细化段点之间的每个分段,特征向量可以是8维并且可以被如下提取用于识别:

第一维是第一本征值与第二本征值的比率。采用主成分分析(pca)方法来计算第一本征值和第二本征值。例如,去噪后的采样点的特征向量可以被用来计算分段的第一本征值和第二本征值;其中,特征向量包括上述x坐标、y坐标和深度值。

第二维到第四维是分段的第一本征向量。每个分段被划分成具有相同的采样点的三个子分段。对于每个子分段,通过上述的pca方法提取第一本征向量。因此,分段的第一个本征向量具有3个维度。

第五维和第六维是分段中的采样点的深度值的平均值和方差。

第七维是分段的弧长。基于相邻采样点的欧几里德距离来计算弧长。

第八维是各相邻采样点的速度的方差。

在得到8维特征向量之后,本发明实现分段的识别。作为示例,采用二级支持向量机(svm)来识别分段。基于预定义的手势类型,分段可以被识别为水平导航姿势(“左”或“右”)或垂直导航姿势(“上”或“下”)。

本发明使用细化段点以对手轨迹的一组采样点进行分割,并且识别为不同的姿势类型,这在手势识别方面实现了更高召回率和精度。如以上在图5c中描述的,丢弃的候选段点503将不被用来分割手轨迹的一组采样点,因此,候选段点501与候选段点503之间的分段将不被识别为垂直导航姿势(例如,“上”);候选段点503与候选段点504之间的分段将不被识别为水平导航姿势(例如,“右”)。

[第二实施例]

在本发明的第二实施例中,段点细化单元204被构造为通过利用从上一段点与下一段点之间的一组采样点的段片段提取出的特征,来细化保留的段点。其它步骤与第一实施例相同。

在此,特征是段片段的速度的变化率。根据速度的变化率,通过与第一实施例中描述的相同的方法和步骤,段片段的训练模型可以细化段点。

如下示出用于计算速度的变化率的方法:

speedchangerate=speedone/speedtwo

其中,speedone等于,当前段点与下一段点中的一个之间的距离,除以当前段点的采样时间与下一段点中的一个的采样时间之间的差。speedtwo等于当前段点与上一段点中的一个之间的距离,除以当前段点的采样时间与上一段点中的一个的采样时间之间的差。段点之间的距离是欧几里得距离。

即:

speedone=(distnextsp_currentsp)/(stnextsp-stcurrentsp)

speedtwo=(distprevioussp_currentsp)/(stcurrentsp-stprevioussp)

[第三实施例]

在本发明的第三实施例中,段点细化单元204被构造为通过利用从上一段点与下一段点之间的一组采样点的段片段提取出的特征,来细化保留的段点。其它步骤与第一实施例相同。

在此,特征是段片段的弧长的变化率。基于弧长的变化率,通过与在第一实施例中描述的相同的方法和步骤,段片段的训练模型可以细化段点。

用于计算弧长的变化率的方法,是当前段点与下一段点中的一个之间的弧长除以当前段点与上一段点中的一个之间的弧长。当前段点与下一段点中的一个之间的弧长,是从当前段点到下一段点中的一个的距离之和。即,其中,m是当前段点的索引,n是下一个段点中的一个的索引。distspi,spi+1是相邻两个段点的欧几里德距离。当前段点与上一段点中的一个之间的弧长,是从当前段点到上一段点中的一个的距离之和。即,其中,k是上一段点中的一个的索引,m为当前段点的索引,distspj,spj+1是相邻的两个段点的欧几里德距离。

[第四实施例]

在本发明的第三实施例中,段点细化单元204被构造为通过利用从上一段点与下一段点之间的一组采样点的段片段提取出的特征,来细化保留的段点。其它步骤与第一实施例相同。

在此,特征是段片段的最大弧长。基于最大弧长,通过与第一实施例中描述的相同的方法和步骤,段片段的训练模型可以细化段点。

段片段的最大弧长可以是当前段点与下一段点中的一个之间的弧长或者当前段点与上一段点中的一个之间的弧长。本发明选择弧长当中更长的弧长作为段片段的最大弧长。

[第五实施例]

在本发明的第五实施例中,存在用于接收序列数据并生成采样点的其他方法,其它步骤与上述实施例相同。

在此,输入单元201从加速度传感器接收序列数据。加速度传感器可以被嵌入在智能环或智能手镯中。每个序列数据至少包括x、y和z轴的加速度值;在此,根据硬件设备来定义x、y和z轴的方向。

采样点获取单元202从序列数据获取采样点。在本实施例中,假定用户使其手指或小臂在空气中迂回前进而不转动,因此,我们可以通过沿x、y和z轴的加速度值来拟合环或手镯的轨迹;其中,手轨迹由具有x、y和z坐标的多个采样点组成。

能够将重力加速度设置为沿一个轴(例如,y轴)的常数;并且也能够假定在环或手镯开始移动之前,x和z轴的加速度非常小,其可被视为零,y轴的加速度类似于常数。

根据在时间t的沿一个轴的加速度,计算在t-1的速度,然后计算沿该轴在t与t-1之间环或手镯的移位。通过组合在t-1与t之间的三个轴的移位,能够得到从t-1至t的环或手镯的手轨迹,然后得到与开始采样时间相关的各采样时间的环或手镯的位置。当环或手镯停止时,x和z轴的加速度将变得非常小,其可以被视为零,y轴的加速度变得类似于常数。

训练过程

如上所述,训练过程将训练段点模型和段片段模型,作为预定义的训练数据。

输入单元201从深度传感器接收序列数据,在此,每秒帧数被设置为30,这是指用户可以在每秒中从深度传感器接收30帧数据。

采样点获取单元202从每个序列数据获取坐标值,以生成采样点。采样点的坐标包括x坐标、y坐标、深度值和帧索引。在本实施例中,针对深度传感器预先校准表面。即,设置x-y轴的原点,并将表面设置为深度值的零平面。

近似平行于零平面的一组训练轨迹包括预定义的手势类型。例如,预定义的手势类型包括水平导航姿势(“左”或“右”)和垂直导航姿势(“上”或“下”)。水平导航姿势被定义为沿x轴,垂直导航姿势被定义为沿y轴。

然后,在提取出的采样点中手动标记地面实况(ground-true)点。具有局部最大曲率的采样点将被标记为地面实况点。在本实施例中,假定所提取出的采样点包括至少一个手势类型(例如,水平导航姿势或垂直导航姿势)。这是指每个地面实况点具有指示地面实况点是姿势的起点或终点或起-终点的一个属性。地面实况点的属性也被手动标记。

采样点获取单元202可以通过称为各向异性扩散过滤(anisotropicdiffusionfiltering:adf)的方法,对采样点进行过滤以减少采样点的噪音。此外,在该过滤步骤中采用三次样条方法进行曲线拟合。

段生成单元203利用上述同一方法来计算曲率并使曲率平滑。之后,段生成单元203检测具有局部最大曲率(localmaximumcurvature:lmc)的采样点。如下根据条件选择正点和负点用于训练:

1)当具有局部最大曲率的采样点的索引号与地面实况点的索引号之间的差的绝对值小于10时,选择正点。即,{点|abs(indexp,lmc-indexgt)<10}。地面实况点、起点、终点或起-终点的属性将被记录在相应的正点中。

2)当具有局部最大曲率的采样点的索引号与地面实况点的索引号之间的差的绝对值大于30时,选择负点。即,{点|abs(indexp,lmc-indexgt)>30}。

其中,indexp,lmc是采样点中具有局部最大曲率的采样点的索引号。indexgt是被手动标记的地面实况点的索引号。

然后,使用一组正点和负点来训练包括两个gmm模型(即,正gmm和负gmm)的段点模型。

1)使用一组正点训练正gmm。即,利用与在步骤s402中描述的相同的方法来计算正点的时空曲率并提取该时空曲率作为正点的特征。

2)使用一组负点训练负gmm。即,利用与在步骤s402中描述的相同的方法来计算负点的时空曲率并提取该时空曲率作为负点的特征。

最后,使用一组正点和负点来训练包括两个gmm模型(即,正gmm和负gmm)的段点模型。

1)训练正gmm:选择正点;找到上一正点和下一正点;提取在上一正点处开始并在下一正点处结束的段片段(正段片段);使用一组提取出的正段片段来训练正gmm,进一步包括:利用与在步骤s303中描述的相同的方法来提取正段片段与估计周期的偏差,以及正段片段的弧长与估计圆的周长的比率,并使用偏差和比率作为各正段片段的特征向量。

2)训练负gmm:选择负点;找到上一负点和下一负点;提取在上一负点处开始并在下一负点处结束的段片段(负段片段);使用一组提取出的负段片段来训练负gmm,进一步包括:利用与在步骤s303中描述的相同的方法来提取负段片段与估计周期的偏差,以及负段片段的弧长与估计圆的周长的比率,并使用偏差和比率作为各负段片段的特征向量。

发明应用

图6是示出本发明应用的示例的框图。如图6所示,在此,应用系统可以包括:输入601、主处理器602和输出603。

输入601可以输入来自传感器的序列数据。

主处理器602可以包括段点生成单元6021和段点细化单元6022。段点生成单元6021生成具有采样点及其时空曲率的段点。段点细化单元6022可以基于从段点提取出的特征来细化段点。

输出603可以输出手势作为命令。

已经参照某些优选实施例及其具体特征具体地示出和描述了本发明。然而,应该指出,以上描述的实施例旨在描述本发明的原理,而不限制其范围。因此,对本领域的普通技术人员显而易见的是,在不脱离所附权利要求中阐述的本发明的精神和范围的情况下,可以在形式上和细节上进行各种变化和修改。对本领域的普通技术人员显而易见的是,在不脱离以下权利要求所限定的本发明的精神和范围的情况下,可以作出其他实施例和所描述的实施例的变型例。另外,在权利要求中对单数元件的提及并非意在表明“一个且仅一个”,除非明确说明,否则是“一个或更多个”。此外,可以在没有在此未具体公开的任何元件的情况下实施在此示例性地公开的实施例。

应该理解的是,上面参照图2描述的单元和装置是用于实施各步骤的示例性的和/或优选的模块。模块可以是硬件单元(例如,处理器、专用集成电路等)和/或软件模块(例如,计算机程序)。以上未穷尽地描述用于实施各步骤的模块。然而,在存在进行特定处理的步骤的情况下,存在用于实施同一处理的相应模块或单元(由硬件和/或软件实施)。以上和以下描述的步骤的所有组合以及与这些步骤相对应的单元的技术方案也包括在本申请的公开中,只要它们构成的技术方案是完整的和可适用的即可。

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