基于Hausdorff距离的动态手势识别方法与流程

文档序号:11177761阅读:752来源:国知局
基于Hausdorff距离的动态手势识别方法与流程

本发明涉及一种基于hausdorff距离的动态手势识别方法。



背景技术:

人机交互技术包括机器通过输出或显示设备给人提供大量有关信息及提示请示,人通过输入设备给机器输入有关信息,回答问题及提示请示等。人机交互技术是计算机用户界面设计中的重要内容之一,它与认知学、人机工程学、心理学等学科领域有密切的联系,已然成为当今重大科学技术之一。国家973计划和中长期科技发展纲要中提出要大力支持“和谐人机交互理论和智能信息处理基础研究”,重点和优先发展“虚拟现实技术”和“智能感知技术”。

手势是一种自然、直观、易于理解的人机交互手段。根据不同的存储手段,手势可以分为静态手势和动态手势。静态手势强调通过手型传递一定的信息,通常是基于视觉的2d手势识别,而动态手势通常定义为手的运动轨迹,强调手在运动过程中的变化。而根据输入设备的不同,手势可以分为基于数字手套的手势识别和基于计算机视觉的手势识别。

数字手套,通常也被称为数据手套,它是一种可穿戴式的虚拟现实交互设备。其中含有多个传感器,通过组成的传感器系统,可以将佩戴者的动作转变成量化的数据或信号,通过对数据进行其他操作进而控制虚拟手做出不同的手势或者抓取、移动和释放物体等,完成与虚拟环境的交互。它的出现极大地推动了虚拟交互技术的发展,使得用户的交互方式更接近现实、更自然。但目前的手势识别一般存在步骤繁琐,计算量大,速度慢,正确率低等缺点。



技术实现要素:

为解决以上技术上的不足,本发明提供了一种计算量小,识别速度快的基于hausdorff距离的动态手势识别方法。

本发明是通过以下措施实现的:

本发明的一种基于hausdorff距离的动态手势识别方法,包括以下步骤:

步骤1,将人手上的手指关节进行编号,然后采用数字手套获得多种动态手势类别对应的手指关节的运动数据,采用最小二乘法对每种动态手势对应的运动数据进行曲线拟合,并将每种动态手势类别以及对应的样本拟合曲线数据存储到手势库内;

步骤2,采用数字手套获得待识别动态手势的手指关节的运动数据,然后采用与步骤1中相同的最小二乘法对该运动数据进行曲线拟合,得到待识别拟合曲线数据;

步骤3,将待识别拟合曲线数据与手势库内的样本拟合曲线数据进行hausdorff距离的计算,计算出与待识别拟合曲线数据距离最小的那个样本拟合曲线数据,最终判定待识别动态手势类别与该样本拟合曲线数据对应的动态手势类别一致。

上述在步骤3中,待识别拟合曲线数据与手势库内的样本拟合曲线数据进行hausdorff距离的计算时,在待识别拟合曲线数据中和样本拟合曲线数据中选取相同数目的曲线值进行计算。

上述在步骤1中,将人手上的十五个手指关节进行编号,每一个类别的手势对应十五组关节运动数据。

上述采用最小二乘法进行多项式曲线拟合,所用多项式阶数为8。

本发明的有益效果是:本发明将复杂的手势识别问题简化,具有计算量小、识别率高的优点。

附图说明

图1为本发明的工作流程框图。

图2为人手关节标号示意图。

图3右手做五指握拳动作第1号关节的运动拟合曲线。

具体实施方式

下面结合附图对本发明做进一步详细的描述:

本发明所提出的基于hausdorff距离的动态手势识别方法,对其获取的数据做一定处理而后进行识别。如图1所示,首先将手势关节运动数据利用最小二乘法进行曲线拟合,而后进行的识别是通过计算待识别的手势数据与样本库中已有的数据之间的hausdorff距离从而达到识别的目的,因之前进行了曲线拟合过程,且相同手势的曲线形状大致是相同的,这就将手势识别问题转换为相似曲线的识别问题。使用matlab编程实现手势的识别。

步骤1,将人手上的手指关节进行编号,然后采用数字手套获得多种动态手势类别对应的手指关节的运动数据,采用最小二乘法对每种动态手势对应的运动数据进行曲线拟合,并将每种动态手势类别以及对应的样本拟合曲线数据存储到手势库内。

本发明将动态手势看做人手十八个关节点的运动,其序号与关节相对应情况为:

1-3:大拇指从下至上三个关节;4-6:食指从下至上三个关节;7-9:中指从下至上三个关节;10-12:无名指从下至上三个关节;13-15:小指从下至上三个关节。实际分布如图2所示。

最小二乘法最早成为回归分析法,是一种数学优化方法,利用此方法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差平方和最小,本发明使用最小二乘法将数字手套获取的每个关节的帧数据进行曲线拟合。

数据拟合的具体作法是:对给定数据(xi,yi)(i=0,1,…,m),在取定的函数类φ中,求p(x)∈φ,使误差ri=p(xi)-yi(i=0,1,…,m)的平方和最小,即

从几何意义上讲,即寻求与给定点(xi,yi)(i=0,1,…,m)的距离平方和为最小的曲线y=p(x),函数p(x)称为拟合函数或最小二乘解,此方法称为曲线拟合或最小二乘法。

那么,如果φ为所有次数不超过n(n<m)的多项式构成的函数类,现求一使得

当拟合函数为多项式时,称为多项式拟合,满足(1)式的pn(x)称为最小二乘拟合多项式。

本发明便是基于最小二乘法进行的多项式曲线拟合,显然由上述可知,是a0,a1,a2…,an的多元函数,因此上述问题即转化为求极值的问题。由多元函数求极值的必要条件可得

由此可知,(3)式是关于a0,a1,a2…,an的线性方程组,用矩阵表示为

式(3)或式(4)称为正规方程组或法方程组。

可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出ak(k=0,1,…,n),从而可得多项式

由式(2)可得

因此,多项式拟合的一般方法可归纳为以下几步:

(1)由已知数据画出函数粗略的图形——散点图,确定拟合多项式的次数n;

(2)列表计算

(3)写出正规方程组,求出a0,a1,a2…,an;

(4)写出拟合多项式

因此,在本发明所提出的算法中,每一关节对应一组数据(数量即为所抓取帧数),将其分布在直角坐标系中,可发现它们呈现某种“趋势”,根据这种“趋势”确定拟合多项式的次数,能够返回多项式系数。

步骤2,采用数字手套获得待识别动态手势的手指关节的运动数据,然后采用与步骤1中相同的最小二乘法对该运动数据进行曲线拟合,得到待识别拟合曲线数据;

步骤3,将待识别拟合曲线数据与手势库内的样本拟合曲线数据进行hausdorff距离的计算,计算出与待识别拟合曲线数据距离最小的那个样本拟合曲线数据,最终判定待识别动态手势类别与该样本拟合曲线数据对应的动态手势类别一致。

hausdorff距离是描述两组点集之间相似程度的一种量度,它是两个点集之间距离的一种定义形式[11]:假设有两组集合a={a1,a2,…,ap},b={b1,b2,…,bq},则这两个点集合之间的hausdorff距离定义为

h(a,b)=max(h(a,b),h(b,a))(7)

其中

这里,式(7)称为双向hausdorff距离,是hausdorff距离最基本的形式,式(8)中的h(a,b)和h(b,a)分别称为从集合a到集合b和从集合b到集合a的单向hausdorff距离。即h(a,b)首先对点集a中的每个点ai到距离此点的最近的点集b中的各个点bj之间的距离||ai-bj||进行排序,然后取最大值作为h(a,b)的值。h(b,a)同理可得。由式(7)可知,双向hausdorff距离h(a,b)是单向距离h(a,b)和h(b,a)中的较大者,它度量了两个点集之间的最大不匹配度,通常没有顺序的限制。

在本文中,我们将采集到的手势关节数据做上述曲线拟合处理之后,对于每一种手势我们都得到15条曲线,分别对应图2所示的每一个关节点。由于每次采集的帧数不同,因此曲线长度不同。为了能使手势识别配过程中,关节与关节之间能够相互匹配,加之减少计算数量,对于每条曲线我们取相同数目的x值,即每条曲线的取值步长由曲线长度决定,这样便产生规定数目的曲线上的y值(曲线拟合函数已知)。那么对于一个手势,将其所有节点的曲线数据作为集合a,那么每当进行手势识别时,被识别的手势也做相同的预处理,作为集合b,因此,手势识别问题即求hausdorff距离最小值的问题。

本发明示意10中手势,分别为二指抓、二指放、三指抓、三指放、三指旋转、四指挥、五指抓、五指放,五指旋转、一指点,具体手势说明如下表所示。

表4.1手势说明

针对某一种手势,我们通过数字手套获取了其关节的运动数据,每次的实验数据均包含15组关节运动数据。对于不同手势的每组数据,由于截取时间不同,因此其数据长度也有所不同。

在本文所提出的算法中,首先将某一次实验的所有手势所包含的全部运动数据进行曲线拟合,每一个关节数据是一条曲线,它表示从动作开始到结束对应关节的运动角度变化趋势。例如右手做五指握拳动作第1号关节的运动拟合曲线如图3所示。

使用最小二乘法进行多项式曲线拟合,随着多项式阶数的增加,拟合曲线越来越平滑,越接近真实数值,但是阶数超出所需的最大值就会存在过拟合的现象。经实验本文所用多项式阶数为8,此时拟合效果最好即曲线值与真实值的平方差和最小,且无过拟合现象。

本发明所提出的算法将一种手势的所有关节运动数据看做一个集合,10种手势即有10个集合,即为实验所需的样本库。进行识别时,同样将某一手势的新的所有数据看做一个集合,按照上述计算hausdorff距离的方法,将此集合与库中的10个集合进行hausdorff距离的比较,得出与之hausdorff距离最小的集合,若为同一种手势,即为识别成功,反之则失败。

十人分别使用数据手套采集10种手势各三次,从所有采集数据中任选包含所有手势的一次数据作为手势库,任意一种手势数据作为待识别手势进行实验,若待识别手势与手势库中相同手势对应且输出库中此手势序号(如表4.2所示)即为识别成功,反之则失败。

表4.2手势序号

以五指抓为例,基于不同的手势库共进行10次实验,识别结果如下表所示:

表4.3五指抓识别结果

由于五指抓在表1中为7号手势,因此若识别正确则输出7。由表2所示,虽然输出均正确,但其中在第4次和第7次实验中,该手势与第9号手势的hausdorff距离与最小值差别很小,这是由于不同人在做手势时与标准动作不一致造成的。本文针对所有10种手势均做了10次实验,其中五指抓识别为五指旋转一次,三指抓识别为三指旋转一次,因此可以说识别率为98%。

此外,本专利所用数据均由不同人佩戴同一数字手套采集获得,因此不同大小、形状的人手对本文提出的手势识别算法没有影响,即该算法具有鲁棒性。本专利的算法将复杂的手势识别问题简化,具有计算量小、识别率高的优点,数次实验证明本文算法是可行且正确的。

以上所述仅是本专利的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本专利的保护范围。

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