具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,为本发明实施例提供的手势预判方法的实现流程,该手势预判方法可适用于各类终端设备,如个人计算机、平板电脑、手机等。该手势预判方法主要包括以下步骤:
步骤S101,当检测到手势开始时,记录从所述手势开始时的运动轨迹信息。
在本发明实施例中,检测手势开始之前,需要建立与图像输入设备(如leapmotion、Kinect等图像输入设备)平行的三维坐标系。如图2所示,以图像输入设备的中心为原点,图像输入设备所在的平面为XY(即Z=0)平面。其中,X轴平行于图像输入设备的长边且指向屏幕正方向的右方,Y轴平行于图像输入设备短边且指向屏幕正方向的上方,Z轴垂直于XY平面且指向远离屏幕的方向。通过建立好的三维坐标系记录手势的运动轨迹信息。所述运动轨迹信息包括运动方向、运动速度、运动轨迹坐标等。
在本发明实施例中,由多个用户完成手势样本的采集,以提高系统的鲁棒性,形成一个足够大的由运动轨迹三维坐标序列pt(xt,yt,zt),t=1,2,…,l以及运动速度序列vt(vx,t,vy,t,vz,t),t=1,2,…,l数据组成的样本数据库。
进一步的,本发明实施例还包括:
设置采样频率f(如每秒钟采集15次),当检测到手势的X、Y、Z坐标低于某特定值(在图像输入设备的检测范围内)且手势的运动速度从零连续变化到某一阈值时,将运动速度为零或者所述某一阈值时的运动轨迹坐标作为所述起始坐标。当手势的运动速度由另一阈值连续变化到零时,将该运动速度为零时的运动轨迹坐标作为所述终止坐标,即手势结束,停止数据采集,由此分割出一次完整的手势。
可选的,本发明实施例还可以对每个手势的训练样本对应的加速度进行统计,从而对每个手势起始点与终止点的加速度设定一个阈值。当检测到手势在某一时刻的加速度值大于起始点阈值时,则确定手势开始,开始采集手势的运动轨迹信息。同样地,当检测到手势在某一时刻的加速度值低于终止点阈值时,则确定手势结束,停止数据采集。
另外,需要说明的是,本发明实施例中完成手势的媒介可以是人身体的一部分(例如,手),也可以特定形状的工具,例如制成手掌形状的引导棒或者带有传感器的手套等,在此不做限制。
在步骤S102中,从所述运动轨迹信息中提取特征信息。
具体的可以是,根据第一预设时间间隔,计算所述运动轨迹信息中相邻运动轨迹坐标之间的方向角,如图2所示;
对计算获得的所述方向角进行矢量量化处理;
将矢量量化处理后的值进行组合后获得所述特征信息。
在本发明实施例中,根据相邻两点的x、y坐标值之差的绝对值利用以下公式进行量化处理,其中函数round的作用为对计算值进行四舍五入操作,得到量化为0~17的整形符号值如图3所示,对轨迹中l个点坐标,得到一个包含l-1个整形符号值的整形符号序列:
每个手势都可以用0至17的整形符号值构成,并将所述整形符号值按顺序组合后作为手势的特征信息输入到手势识别模型中进行训练。
需要说明的是,本发明实施例以所选取的方向角0~360度等分量化编码为0~17进行举例说明,实际应用中,还可根据需要量化为0~9或0~12等。
在步骤S103中,通过预设的多个手势训练模型对所述特征信息进行预判,当某个时刻在某个手势训练模型中该手势的识别率高于其他手势训练模型的识别率,或者某个手势训练模型对该手势的识别率大于预先设定的阈值时,判定该手势为该手势训练模型对应的手势。
其中,所述多个手势训练模型根据采集的手势特征信息样本集训练获得,所述手势特征信息样本集包括从完整手势的运动轨迹信息中从头开始按预设截取比例截取的连续的特征信息。
在本发明实施例中,为了实现手势预判的功能,需要对每个手势样本的特征信息进行一定比例的截取,以扩充训练样本数据库。示例性的,从完整手势的特征信息中从头开始按50%,60%,70%,80%,90%的比例进行截取,将截取后的所述特征信息加入到训练样本数据库中,用于手势的识别训练。
在本发明实施例中,所述预设的手势识别模型可以为隐马尔科夫模型、隐半马尔科夫模型等,所述隐马尔可夫模型由模型的隐状态数、观测值数、状态转移概率矩阵、观测概率矩阵、初始状态概率矩阵和持续时间六个参数确定。
示例性的,可以将采集的0~9的数字手势和A~Z的字母手势作为样本集,每个手势取其中50%,60%,70%,80%,90%的数据用于模型训练(即取50%,60%,70%,80%,90%的数据用于隐马尔可夫模型进行手势建模),然后利用完整的数据用于识别测试。
需要说明的是,本发明实施例中的隐马尔科夫模型是对传统马尔科夫模型的改进,其中的状态量不直接可见,而是以一定概率反映在观察变量上。一个HMM的完整参数集合可以用一个五元组λ=(N,M,A,B,π)来表示,其中N为HMM的隐含状态的个数。在本发明实施例中,每个手势对应的N值都不一样,取值分布在(5,20)中;M为HMM观测值的个数,本发明实施例对36个手势进行预判时,取M=36;A={aij}为N*N的状态转移概率分布矩阵;B={bj(k)}为N*M的观察概率分布矩阵;π={π1,π2,π3,…,πN}为初始状态分布。模型训练过程,给定每个手势样本的观察序列即特征向量,对以上5个模型参数不断重估的过程,通过迭代运算对HMM模型的参数λ=(A,B,π)不断调整,使得观察序列O出现的概率P(O/λ)达到最大,训练一个最适合样本的模型。根据前向变量αt(i)=P(o1,o2,…,ot,qt=si|λ)和后向变量βt(i)=P(ot+1,ot+2,…,oT,qt=si|λ)获得以下公式,所求的最优参数模型即为P(O/λ)达到最大值时的λ*。
求取HMM的最优参数λ*的算法步骤如下:
1)初始化HMM的参数λ=(A,B,π);
2)根据观察序列O和模型参数λ估算新模型得到新的模型参数
3)使用前向-后向算法计算观察序列O在模型λ下的概率P(O/λ)以及在下的概率并计算 若满足 (ε为设定的收敛门限值),则收敛,此时的即为训练得到的最接近手势样本的HMM,否则另继续执行步骤2),直至收敛为止。
在本发明实施例中,为了实现自适应预判的功能,利用扩充的样本数据库,分别训练每个手势对应截取比例的HMM模型,并在所述HMM模型中为每个手势选择一个识别率最高的模型,即可认为该手势在该模型对应的截取比例识别率最高。经过模型学习训练之后,每个手势都有一个最佳截取比例对应的HMM模型,用于下一阶段的实时自适应手势预判。
在实时预判阶段,当用户手势动作开始后但未结束前,图像输入设备利用mean-shift算法实现对手势图像进行跟踪,然后采用开运算、闭运算、图像阈值以及漫水填充法对跟踪到的手势图像进行特征提取和分割,再通过质心法提取人手质心位置。根据提取到的人手质心位置,图像输入设备对该人手质心在空间中的运动轨迹信息进行采集和记录,并从所述运动轨迹信息中提取特征信息,通过上述训练得到的多个手势训练模型对所述特征信息进行预判,当某个时刻在某个手势训练模型中该手势的识别率高于其他手势训练模型的识别率,或者某个手势训练模型对该手势的识别率大于预先设定的阈值时,判定该手势为该手势训练模型对应的手势。
在步骤S104中,输出判定结果。
为了对所述手势训练模型进行自动优化,进一步提高手势识别的正确率,本发明实施例在输入判定结果之后,还包括:
当检测到手势结束时,通过完整手势模型对提取的所有特征信息进行识别,并将识别结果与所述判定结果进行比较;
根据比较结果调整该手势对应的手势训练模型的截取比例,并通过截取比例调整后的手势训练模型进行再训练。
进一步的,所述根据比较结果调整该手势对应的手势训练模型的截取比例包括:
若比较结果一致,则认为该手势在更低的截取比例时也能获得较高的识别率,因此可以在系统空闲时按第一预设比例降低该手势对应的手势训练模型的截取比例;若比较结果不一致,则认为该手势在所述最佳截取比例时还不能够获得较高的识别率,按第二预设比例提高该手势对应的手势训练模型的截取比例。
本发明实施例不仅可以针对不同的输入手势自适应的选择最佳时刻输出识别结果。而且,还可以利用当前用户输入的完整手势进行识别,通过该识别结果与预判结果进行对比,实现对手势训练模型的自动优化,使所述手势训练模型具有更好的识别性能,极大的提高手势识别的正确率,具有较强的易用性和实用性。
请参阅图5,为本发明实施例提供的手势预判系统的组成结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。
所述手势预判系统可以是内置于终端设备(例如个人计算机、手机、平板电脑等)中的软件单元、硬件单元或者是软硬件结合的单元。
所述手势预判系统包括:手势数据采集模块51、特征提取模块52、自适应预判模块53以及输出模块54,各模块具体功能如下:
手势数据采集模块51,用于当检测到手势开始时,记录从所述手势开始时的运动轨迹信息;
特征提取模块52,用于从所述运动轨迹信息中提取特征信息;
自适应预判模块53,用于通过预设的多个手势训练模型对所述特征信息进行预判,当某个时刻在某个手势训练模型中该手势的识别率高于其他手势训练模型的识别率,或者某个手势训练模型对该手势的识别率大于预先设定的阈值时,判定该手势为该手势训练模型对应的手势;其中,所述多个手势训练模型根据采集的手势特征信息样本集训练获得,所述手势特征信息样本集包括从完整手势的运动轨迹信息中从头开始按预设截取比例截取的连续的特征信息;
输出模块54,用于输出判定结果。
进一步的,所述系统包括:
比较模块55,用于在输入判定结果之后,当检测到手势结束时,通过完整手势模型对提取的所有特征信息进行识别,并将识别结果与所述判定结果进行比较;
再训练模块56,用于根据比较结果调整该手势对应的手势训练模型的截取比例,并通过截取比例调整后的手势训练模型进行再训练。
进一步的,所述再训练模块56,具体用于若比较结果一致,则按第一预设比例降低该手势对应的手势训练模型的截取比例;若比较结果不一致,则按第二预设比例提高该手势对应的手势训练模型的截取比例。
进一步的,所述特征提取模块52包括:
方向角计算单元521,用于根据第一预设时间间隔,计算所述运动轨迹信息中相邻运动轨迹坐标之间的方向角;
矢量化处理单元522,用于对计算获得的所述方向角进行矢量量化处理;
特征获取单元523,用于将矢量量化处理后的值进行组合后获得所述特征信息。
进一步的,所述系统还包括:
阈值设定模块57,用于设定每个手势起始点的加速度阈值;
确定模块58,用于当检测到所述手势当前的加速度值大于与所述手势对应的起始点的加速度阈值时,确定所述手势开始。
综上所述,本发明实施例与现有技术相比,存在以下有益效果:
1)本发明实施例不仅可以在手势开始之后但未完成之前给出识别结果,还可以利用各个手势对应的最佳截取比例的手势训练模型,实现手势自适应预判,提高手势识别的正确率;
2)本发明实施例利用图像输入设备获取到的手势运动轨迹三维坐标以及空间运动速度信息,计算出各个样本点的加速度,对每个手势的加速度信息进行统计并得到每个手势的起始点与终止点对应的加速度阈值,从而实现目标手势的分割;
3)利用当前用户输入的完整手势进行识别,通过该识别结果与预判结果进行对比,通过在离线情况下对各个手势对应的最佳截取比例进行调整,进而重新训练调整后的手势训练模型,提高后续用户输入手势的预判识别率,具有较强的易用性和实用性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。