首页> 中国专利> 一种自动检测非手势模式的手势分割识别方法及系统

一种自动检测非手势模式的手势分割识别方法及系统

摘要

本发明公开了一种自动检测非手势模式的手势分割识别方法及系统,该方法包括:步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型,利用所述手势动作识别模型构建阈值模型,手势动作识别模型和阈值模型构成手势分割模型;步骤2,利用所述手势分割模型从输入的连续动作序列中自动检测非手势模式;步骤3,利用所述非手势模式训练非手势动作识别模型;步骤4,基于非手势动作识别模型扩展手势分割模型,对输入的连续动作序列进行分割识别。本发明,使得手势分割识别系统能够更好的表征非手势模式,减少了将非手势模式误判为手势模式的概率,提高了手势分割算法的准确性。

著录项

  • 公开/公告号CN102982315A

    专利类型发明专利

  • 公开/公告日2013-03-20

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN201210436545.8

  • 发明设计人 黄美玉;陈益强;纪雯;

    申请日2012-11-05

  • 分类号G06K9/00(20060101);G06K9/46(20060101);

  • 代理机构11006 北京律诚同业知识产权代理有限公司;

  • 代理人祁建国;梁挥

  • 地址 100190 北京市海淀区中关村科学院南路6号

  • 入库时间 2024-02-19 17:47:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-15

    授权

    授权

  • 2016-01-13

    著录事项变更 IPC(主分类):G06K9/00 变更前: 变更后: 申请日:20121105

    著录事项变更

  • 2013-04-17

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20121105

    实质审查的生效

  • 2013-03-20

    公开

    公开

说明书

技术领域

本发明属于人机交互领域,特别涉及一种自动检测非手势模式的手势分割 识别方法及系统。

背景技术

人机交互是一门涉及计算机科学、行为心理学、社会伦理学、图形界面设 计以及工业设计学等众多专业背景的交叉学科,以用户体验为终极目标,是连 接人与计算机的桥梁。随着计算机技术水平的提高以及社会不同领域的生产需 求和人们生活需求的不断扩大,新型智能人机交互方式成为必然。在人机交互 的多种方式中,手势动作是最为自然、直观且易于学习的方式之一。智能感知 动作语义的手势交互技术,是实现自然、高效的人机交互的必然趋势。

手势分割,是识别手势的前提,分割的正确合理性直接影响识别结果的好 坏。但是由于用户手势动作的任意性和随机性,手势分割一直是一个研究难点, 目前手势分割的主要方法有:

1.通过用户协同实现分割,具体分两种情况:一种是制定手势规则,或者 开始和结束时让手脱离摄像头视线,或者定义手势由起始姿态,轨迹曲线和选 择姿态构成;另外一种是通过用户按压专门的按钮实现分割,例如在用户输入动 作时按住该按钮,完成动作时松开按钮,这样就能够较为准确地得到一个手势 动作所对应的特征序列。

2.通过数据分析实现分割,具体分两种情况:一种是基于特征的方法,或者 统计手势转换时的特征,如果某一时刻采集的手势特征与某个已知的手势转换 特征相匹配,该处就是一个分割点,或者分别统计手势起始时和结束时的特征 约束条件,以判定手势的起点和终点;另外一种是基于模型的方法,常用的模 型有神经网络(NN),连续动态规划(CDP),动态时间规整(DTW),隐马 尔科夫模型(HMM),条件模型(最大熵马尔科夫模型(MEMM)和条件随机 场(CRF))。

第一种方法需要用户的合作,多余的规则或按压动作会增加用户的负担, 减少交互体验的愉悦感,第二种方法中基于特征的分割,要求手势之间有非手 势的运动模式,不适用于连续手势运动的分割,而基于模型的分割则不存在该 限制,因此是目前手势分割的首选方法。

在基于模型的分割算法中,基于神经网络(NN)的分割算法采用了固定窗 口的分割算法,不能容忍手势长度的变化,而基于连续动态规划(CDP)的分 割算法计算时间复杂度高,基于动态时间规整(DTW)的分割算法不能应用于 手势变化的动态系统中,基于最大熵马尔科夫模型(MEMM)的分割算法存在 标记偏差的问题,而基于条件随机场(CRF)的分割算法虽然性能要好于基于 隐马尔科夫模型(HMM)的分割算法,但是其收敛速度慢,扩展性差,故而现 在最流行的分割算法仍然是基于HMM的算法。

经典的基于HMM的分割算法都是使用一个通用的阈值模型作为自适应的 似然值阈值,以从连续的动作序列中区分出手势动作序列。它的基本原理是, 实时的使用韦特比算法计算连续输入的动作序列针对各个手势模型和通用阈值 模型的似然值,当手势模型的最大似然值高于通用阈值模型的似然值时,将当 前时刻记为似然值最大的手势模型对应的手势模式的终点,再通过韦特比算法 解码该手势模式,找到手势模式的起点,从而实现了手势动作序列的分割。然 而仅适用通用阈值模型作为自适应的似然值阈值,很可能将那些复杂的非手势 动作序列也误判为手势动作序列,因为通用的阈值模型只是一个由系统中的所 有手势模型的所有状态完全连接而成的遍历模型,它只能与预定义的手势子模 式以任意次序组合而成的模式匹配,而不能与非预定义的手势子模式构成的非 手势模式匹配,故而当某个手势模型针对当前输入动作序列计算出来的似然值 高于通用的阈值模型时,并不能武断地判定当前输入动作序列属于某个手势模 式。基于以上原因,检测和建模非手势运动模式成为基于HMM分割手势的难 点。

发明内容

本发明的目的是:克服传统的基于HMM的手势分割算法在表征非手势模 式上存在的缺陷,并在采集了大量的非手势模式后对其进行了聚类和建模。本 发明将训练的非手势模型导入到手势分割识别系统中,使得手势分割识别系统 能够更好的表征非手势模式,减少了将非手势模式误判为手势模式的概率,提 高了手势分割算法的准确性。

为实现上述目的,本发明提出了一种自动检测非手势模式的手势分割识别 方法,包括:

步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型,利 用所述手势动作识别模型构建阈值模型,手势动作识别模型和阈值模型构成手 势分割模型;

步骤2,利用所述手势分割模型从输入的连续动作序列中自动检测非手势 模式;

步骤3,利用所述非手势模式训练非手势动作识别模型;

步骤4,基于非手势动作识别模型扩展手势分割模型,对输入的连续动作 序列进行分割识别。

所述步骤2包括:

步骤21,利用所述的手势分割模型从输入的连续动作序列中分割和识别出 有效的手势模式;

步骤22,将所述手势模式的起点与前一个动作模式的终点之间的观测序列 作为一个非手势模式从动作序列中检测出来;

步骤23,计算所述手势模式的似然值,并对其进行判断:若似然值小于TL, 则判定当前的手势模式为伪手势模式,并将其作为一个非手势模式从动作序列 中检测出来,否则判定当前的手势模式为一个真手势模式,对其进行分割识别, 其中TL是一个小于训练手势的最低似然值的似然值阈值。

所述步骤21包括:

步骤201,通过摄像头和多个传感器检测手势动作,获得用于训练手势动 作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三 维位置、三轴角速度、三轴加速度的数据序列;

步骤202,结合所述摄像头和多个传感器的特性,对所述第一样本数据中 的各个数据序列进行预处理,得到第二样本数据;

步骤203,从所述第二样本数据中提取不受动作幅度和空间跨度影响的特 征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征, 并利用所述特征向量训练手势动作识别模型;

步骤204,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述 特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据 序列统称为观测序列;

步骤205,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序 列采用韦特比算法进行解码,分别得到所述观测序列的似然值;

步骤206,找到所述似然值最大的第一手势动作识别模型;

步骤207,判断所述第一手势动作识别模型的似然值是否高于阈值模型的 似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模 式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行步骤 208;否则执行步骤209;

步骤208,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两 者相同时,返回步骤201采集下一时刻的第一样本数据,否则按下述情况进行 判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候 选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其 起点和候选终点,同时返回步骤201采集下一时刻的第一样本数据;当上述手 势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选 终点之间,则弹出手势栈顶缓存的手势模式,并将上述手势模式的起点的前一 时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其起点和 候选终点压栈,并执行步骤210;

步骤209,弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点, 然后执行步骤210;

步骤210,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长 度满足约束条件,那么其是一个真手势模式,执行步骤211;否则返回步骤201 采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时 刻之间的时间段长度;

步骤211,根据相应的手势动作识别模型,对所述真手势模式的起点时刻 和终点时刻之间的观测序列中进行标记,同时返回步骤201采集下一时刻的动 作数据。

所述步骤3包括:

步骤301,通过基于欧式距离的动态时间规整算法计算非手势模式间的相 似度矩阵,再采用ISODATA算法对非手势模式集进行聚类;

步骤302,对聚类后的每个非手势模式聚类训练一个非手势动作识别模型, 其中非手势动作识别模型采用左右结构的隐马尔可夫模型。

所述步骤4包括:

步骤401,判断所述第一手势动作识别模型的似然值是否同时高于阈值模 型的似然值和所有非手势动作识别模型的似然值;若高于则将t时刻记为所述 第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找 出该手势模式的起点,同时执行步骤402;否则执行步骤403;

步骤402,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两 者相同时,返回步骤201采集下一时刻的第一样本数据,否则按下述情况进行 判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候 选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其 起点和候选终点,同时返回步骤201采集下一时刻的第一样本数据;当上述手 势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选 终点之间,则弹出手势栈顶缓存的手势模式,并将上述手势模式的起点的前一 时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其起点和 候选终点压栈,并执行步骤404;

步骤403,弹出手势栈栈顶缓存的手势模式,并将t-1时刻记为该手势模式 的终点,同时执行步骤404;

步骤404,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长 度满足约束条件,那么其是一个真手势模式,执行步骤404;否则返回步骤201 采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时 刻之间的时间段长度;

步骤405,根据相应的手势动作识别模型,对所述真手势模式的起点时刻 和终点时刻之间的观测序列中进行标记,同时返回步骤201采集下一时刻的第 一样本数据。

本发明还提供了一种自动检测非手势模式的手势分割识别系统,包括:

手势分割模型训练模块,基于摄像头和传感器采集的异构数据训练手势动 作识别模型,利用所述手势动作识别模型构建阈值模型,手势动作识别模型和 阈值模型构成手势分割模型;

非手势模式检测模块,利用所述手势分割模型从输入的连续动作序列中自 动检测非手势模式;

非手势动作识别模型训练模块,利用所述非手势模式训练非手势动作识别 模型;

分割识别模块,基于非手势动作识别模型扩展手势分割模型,以对输入的 连续动作序列进行分割识别。

所述非手势模式检测模块包括:

手势模式检测模块,利用所述的手势分割模型从输入的连续动作序列中分 割和识别出有效的手势模式;

非手势模式截取模块,将所述手势模式的起点与前一个动作模式的终点之 间的观测序列作为一个非手势模式从动作序列中检测出来。

非手势模式判断模块,计算所述手势模式的似然值,并对其进行判断:若 似然值小于TL,则判定当前的手势模式为伪手势模式,并将其作为一个非手势 模式从动作序列中检测出来,否则判定当前的手势模式为一个真手势模式,对 其进行分割识别,其中TL是一个小于训练手势的最低似然值的似然值阈值。

所述手势模式检测模块包括:

样本数据获得模块,通过摄像头和多个传感器检测手势动作,获得用于训 练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势 动作的三维位置、三轴角速度、三轴加速度的数据序列;

预处理模块,结合所述摄像头和多个传感器的特性,对所述第一样本数据 中的各个数据序列进行预处理,得到第二样本数据;

特征向量提取模块,用于从所述第二样本数据中提取不受动作幅度和空间 跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和 加速度的特征,利用所述特征向量训练手势动作识别模型;

观测序列增添模块,设定初始时间t=1,并将观测序列和手势栈置为空, 同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫 模型,数据序列统称为观测序列;

似然值计算模块,分别使用所有手势动作识别模型和阈值模型对t时刻的 观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;

判断模块,找到所述似然值最大的第一手势动作识别模型,判断所述手势 动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记 为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈 算法找出该手势模式的起点,同时执行对比模块;否则执行第一弹出模块;

对比模块,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两 者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按下述 情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的 第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势 模式及其起点和候选终点,同时返回样本数据获得模块采集下一时刻的第一样 本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终 点和最后一个候选终点之间,则弹出手势栈栈顶缓存的手势模式,并将上述手 势模式的起点的前一时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述 手势模式及其起点和候选终点压栈,然后执行第一判别模块;;

第一弹出模块,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势 模式的终点,然后执行第一判别模块;

第一判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式 的长度满足约束条件,那么其是一个真手势模式,执行第一标记模块;否则返 回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为 其终点时刻和起点时刻之间的时间段长度;

第一标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点 时刻和终点时刻之间的观测序列中进行标记,同时返回样本数据获得模块采集 下一时刻的动作数据。

所述非手势动作识别模型训练模块包括:

非手势模式聚类模块,通过基于欧式距离的动态时间规整算法计算非手势 模式间的相似度矩阵,再采用ISODATA算法对非手势模式集进行聚类;

训练模块,对聚类后的每个非手势模式聚类训练一个非手势模型,其中非 手势模型采用左右结构的隐马尔可夫模型。

所述分割识别模块包括:

手势模式判断模块,判断所述第一手势动作识别模型的似然值是否同时高 于阈值模型的似然值和所有非手势动作识别模型的似然值;若高于则将t时刻 记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回 馈算法找出该手势模式的起点,同时执行对比判断模块;否则执行第二弹出模 块;

对比判断模块,将上述手势模式与手势栈栈顶缓存的手势模式进行对比, 当两者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按 下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模 式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述 手势模式及其起点和候选终点,同时返回样本数据获得模块采集下一时刻的第 一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候 选终点和最后一个候选终点之间,则弹出手势栈顶缓存的手势模式,并将上述 手势模式的起点的前一时刻作为手势栈栈顶缓存的手势模式的终点,同时将上 述手势模式及其起点和候选终点压栈,并执行第二判别模块;

第二弹出模块,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势 模式的终点,然后执行第二判别模块;

第二判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式 的长度满足约束条件,那么其是一个真手势模式,执行第二标记模块;否则返 回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为 其终点时刻和起点时刻之间的时间段长度;

第二标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点 时刻和终点时刻之间的观测序列中进行标记,同时返回样本数据获得模块采集 下一时刻的第一样本数据。

本发明的有益效果在于:

(1)可以自动检测非手势模式,减少人工标定量。

(2)手势分割的准确率高。从测试集的动作序列中检测非手势模式,并 在采集了大量的非手势模式后对其进行了聚类和建模,将训练的非手势模型导 入到手势分割识别系统中,使得手势分割识别系统能够更好的表征非手势模式, 减少了将非手势模式误判为手势模式的概率,提高了手势分割算法的准确性。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。

附图说明

图1是本发明的阈值模型示意图;

图2是本发明的手势分割识别流程图;

图3是本发明的非手势模式检测流程图;

图4是本发明的扩展手势分割识别流程图;

图5是本发明的自动检测非手势模式的手势分割识别方法流程图;

图6是本发明的自动检测非手势模式的手势分割识别系统示意图。

具体实施方式

本发明识别的手势数据集限定为动态手势,包括简单的命令手势,如控制 电视频道和音量加减的手势,以及切换电视频道的数字手势。通过给出一种自 动检测非手势模式的方法,本发明扩展了基于HMM阈值模型的分割模型,对 动态手势实现了精确的分割。

图5是本发明的自动检测非手势模式的手势分割识别方法流程图,如图5 所示,本发明的自动检测非手势模式的手势分割识别方法,包括:

步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型,利 用所述手势动作识别模型构建阈值模型,手势动作识别模型和阈值模型构成手 势分割模型;

步骤2,利用所述手势分割模型从输入的连续动作序列中自动检测非手势 模式;

步骤3,利用所述非手势模式训练非手势动作识别模型;

步骤4,基于非手势动作识别模型扩展手势分割模型,对输入的连续动作 序列进行分割识别。

步骤1的具体实现步骤如下:

1.训练手势动作识别模型

需要说明的是,本步骤的一般实现方法是,首先基于视觉或者运动传感器 采集手势数据,然后对数据进行预处理,再对处理后的数据提取鲁棒的特征向 量,最终基于特征向量进行模型训练。

需要说明的是,采集手势数据时,为了区分不同手势所对应的数据序列, 本实施例采用了用户协同实现的分割方法,具体的实现方式是设计一个专门的 按钮,在手势动作的开始和结束时通过该按钮标记一个手势动作,在用户输入 动作时按住该按钮,完成动作时松开按钮,从而准确的得到一个手势动作所对 应的数据序列。

在本实施例中,所述手势动作识别模型为左-右结构的隐马尔科夫模型 (HMM),该模型中有且只有一个初始状态和终止状态,该模型的训练可采用 前述的Baum-Welch算法实现,最终输出为初始状态概率分布,状态转移概率 矩阵和输出观测值概率分布矩阵。隐马尔科夫模型h可以表示为一个五元组 (S,V,A,B,π),其中S={s1,s2,s3,...,sN}是一组状态的集合,V={v1,v2,v3,...,vK}是一组 输出观测值组成的集合,A=[aij]是N行N列的状态转移概率矩阵,每个元素 aij=P(qt+1=sj|qt=si),1≤i,j≤N表征从状态si转到状态sj的概率,B={bj(k)}是N行 K列的输出观测值的概率分布矩阵,每个元素bj(k)=P(vk|sj),1≤k≤K,1≤j≤N表示 在状态sj时输出观测值vk的概率,π={πi}是初始状态概率分布,πi=P(q1=si)表 示时刻1选择状态si的概率。当输出观测值为连续型变量时,此时的隐马尔科 夫模型称为连续隐马尔科夫模型。当模型中有且只有一个初始状态和终止状态 时,此时的隐马尔科夫模型称为左右结构的隐马尔科夫模型。

2.构建阈值模型

为了从连续的动作序列中定位出有效的手势动作序列,嵌入在输入流中的 手势动作序列对应的手势模型的似然值应该具有足够的区分能力。仅使用一个 简单的似然值阈值通常并不起作用,无法保证分割出来的动作序列是否真的属 于某个手势模式。因此,本实施例中参照方法[1](H.K.Lee and J.H.Kim,″An hmm-based threshold model approach for gesture recognition,″IEEE Transactions on pattern analysis and machine intelligence,Vol.21,pp.961--973,October 1999.) 构建了一个阈值模型(见图1),以它的似然值作为一个自适应的阈值,当且 仅当最好的手势模型的似然值高于该动作模型的似然值时,一个手势模式才从 连续的动作序列中分割出来并实现同步地识别。图1给出的阈值模型是一个遍 历结构的简化版本,其中,A,B,Z分别表示一个手势动作识别模型,每个圆圈 代表一个状态,起始状态S和终止状态T是不产生观察值的空状态,实线箭头 表示状态之间的真实转移路径,而虚箭头不代表真正的连接,它只是一种形象 化的表示,说明模型中的所有状态都可以通过一步转移到其它任何状态。

上述阈值模型是由系统中所有手势模型的状态完全连接的遍历模型,能够与 由预定义的手势子模式以任意次序组合而成的模式匹配,且能保证对于给定的 一个手势模式,它的似然值将小于给定手势模式的手势模型的似然值。阈值模 型构建的具体步骤是:将系统中训练的所有手势模型的所有状态拷贝出来,保 持每一个状态的输出观察概率和自转移概率不变,同时修改每个状态在原来手 势模型中的外转移特性,令每个状态都可以通过一步转移到其它任何状态,且 转移概率相等,具体的计算公式如式(1):

aij=1-aiiN-1,j=1,2,...,N;ji;---(1),

其中αij是从状态i到j的转移概率,N是状态数目(除了起始和终止状态的 所有状态的总和)。需要说明的是,正是因为阈值模型中将每一个状态转移到 其它任何状态的概率均分化,从而其转向原来手势模型中的前向状态的概率低 于其在原来的手势模型中的前向转移概率,如此,给定一个手势模式,阈值模 型的似然值才会低于相应的手势模型的似然值。

本实施例中,手势分割模型由手势动作识别模型和阈值模型构成。

本实施例中,按照图3所示的非手势模式检测流程图,从测试集的动作序 列中检测非手势模式,

输入连续动作序列(相当于观测序列)O,初始化其中Te*为前一个 手势模式或非手势模式的终点。

基于上个阶段训练的手势分割模型实时地对投入测试的动作序列进行手势 分割和识别,得到有效的手势模式gs,及其起点Ts(gs)和终点Te(gs)。

将当前的手势模式gs的起点Ts(gs)与Te*之间的观测序列作为一个非手势模 式从动作序列中检测出来。即将动作序列检测为一个 非手势模式。

更新Te*=Ts(gs)-1。

采用前向算法或后向算法计算所述手势模式gs与相应的手势模型的似然值 L,并对其进行判断:若似然值L小于TL,则判定当前的手势模式为伪手势模 式,并将其作为一个非手势模式从动作序列中检测出来,否则判定当前的手势 模式为一个真手势模式,对其进行分割识别,其中TL是一个小于训练手势的最 低似然值的似然值阈值。在步骤1中应用Baum-Welch算法训练手势动作识别 模型的时候会计算每个手势模式与手势动作识别模型的似然值,假设Lmin和δL 分别是训练手势模式与相应手势动作识别模型似然值的最低值和方差,则本实 施例中,设定TL=Lmin-3*δL

手势分割和识别具体步骤包括:

步骤201,通过摄像头和多个传感器检测手势动作,获得用于训练手势动 作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三 维位置、三轴角速度、三轴加速度的数据序列;

步骤202,结合所述摄像头和多个传感器的特性,对所述第一样本数据中 的各个数据序列进行预处理,得到第二样本数据;

步骤203,从所述第二样本数据中提取不受动作幅度和空间跨度影响的特 征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征, 并利用所述特征向量训练手势动作识别模型;

步骤204,设定初始时间t=1,并将观测序列O和手势栈S置为空,同时将 所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型, 数据序列统称为观测序列;

步骤205,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序 列采用韦特比算法进行解码,分别得到所述观测序列的似然值;令Eh是模型h的 终止状态,则对于给定的模型h,观测序列O的似然值设定为t时刻到达状态Eh的最优路径产生观察序列Ot的联合概率,记为δt(Eh)。

步骤206,找到所述似然值最大的第一手势动作识别模型;似然值最大的 手势模型满足下述的条件:

g*=argmaxh∈Gδt(Eh),其中G是所有训练的手势动作识别模型的集合。

步骤207,判断所述第一手势动作识别模型的似然值是否高于阈值模型的似 然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式 的候选终点,即令Te=t,并利用韦特比回馈算法找出该手势模式的起点Ts,执行 步骤208;否则执行步骤209;似然值高于阈值模型的最大似然值的手势模型满 足下述条件:

g*=argmaxh∈Gδt(Eh),并且其中TR是阈值模型。

步骤208,判断手势栈S是否为空,如果为空,将所述手势模式g*压入手 势栈中,并标记手势栈栈顶缓存的手势模式的起点和终点,令Ts(gs)=Ts,Te(gs)=Te, 同时返回步骤201采集下一时刻,即t+1时刻的第一样本数据;如果手势栈S 不为空,则将上述手势模式g*与手势栈栈顶缓存的手势模式gs进行对比,当两 者相同时,更新手势栈栈顶缓存的手势模式gs的起点,即令Ts(gs)=Ts,同时返回 步骤201采集下一时刻,即t+1时刻的第一样本数据,否则按下述情况进行判 断和操作:当上述手势模式g*的起点Ts在手势栈栈顶缓存的手势模式gs的第一 个候选终点Te(gs)的前面,则弹出手势栈栈顶缓存的手势模式gs,并压入上述手 势模式g*,同时更新手势栈栈顶缓存的手势模式的起点和终点,令 Ts(gs)=Ts,Te(gs)=Te,并返回步骤201采集下一时刻,即t+1时刻的第一样本数据; 当上述手势模式g*的起点Ts在手势栈栈顶缓存的手势模式gs的第一个候选终 点的后面,弹出手势栈顶缓存的手势模式gs,并将上述手势模式g*的起点Ts的 前一时刻作为手势栈栈顶缓存的手势模式gs的终点,同时将上述手势模式g*压 栈,并更新手势栈栈顶缓存的手势模式的起点和终点,令Ts(gs)=Ts,Te(gs)=Te,再 执行步骤210;其中手势栈S用于存储前一个未找到真正终点的手势模式,初 始化为空。

步骤209,弹出手势栈顶缓存的手势模式gs,并将t-1时刻作为该手势模式 的终点,然后执行步骤210。

步骤210,对手势栈弹出的手势模式的长度gs进行判别,如若手势模式的 长度满足约束条件,那么其是一个真手势模式,执行步骤211;否则返回步骤 201采集下一时刻,即t+1时刻的第一样本数据,其中手势模式的长度记为其 终点时刻和起点时刻之间的时间段长度。

步骤211,根据相应的手势动作识别模型,对所述真手势模式的起点时刻 和终点时刻之间的观测序列中进行标记,返回步骤201采集下一时刻,即t+1 时刻的动作数据。

步骤204-211可以参照图2进行理解。

需要说明的是,步骤205中阐述的韦特比算法的具体实现步骤是:假设t 时刻的观测序列表示为Ot=(o1,o2,...,ot),其中ot是按照手势动作识别模型训练阶 段的步骤3)提取的t时刻的动作特征,qt是时刻t的隐状态,sj是模型h的第 j个隐状态,λh是模型h的参数,则t时刻到达状态sj的最优路径产生观察序列Ot的联合概率

δt(sj)=maxq1,...,qt-1P(q1,...,qt-1,qt=sj,Ot|λh)---(2),

可通过式(3)迭代计算得到

δ1(sj)=πjbj(o1)                  1≤j≤N,

δt(sj)=maxit-1(si)aij]bj(ot)   2≤t≤T,1≤j≤N.(3)

式(3)中N是模型h的状态数目,aij是从状态si到sj的转移概率,bj(ot)是 状态sj输出观测值ot的概率。在隐马尔可夫模型中,当某一时刻的隐状态是某 个模型的终止状态时,说明执行了一个相应的动作。因此可以使用δt(Eh)表示观 测序列与模型的相似度,即似然值。

需要进一步说明的是,在本实施例中,步骤210通过一个滤波器对手势模 式的长度进行判别。具体的做法是,首先对所有训练手势模型的数据样本的长 度进行统计,得到其均值和方差,然后设定合适的置信区间,如果g*的长度l在 置信区间内,那么它是一个手势模式,否则不是。上述判断过程可用下列形式 表示,如果:ασl<|l-ul|<βσl,则g*是一个手势模式,其中,ul和σl分别是所 有训练手势模型的数据样本的长度的均值和方差,α和β是经验系数。

需要再一步说明的是,正是由于步骤1构建的阈值模型,只能与任意预定 义的手势子模式以任意次序组合而成的模式匹配,而不能与非预定义的手势子 模式组合成的非手势模式匹配,因而当某个手势模型针对给定的动作序列计算 出来的似然值高于该阈值模型时,并不能武断地判定给定的动作序列属于某个 手势模式(给定的动作序列很有可能就是一个与某个手势模式相似的非手势模 式),也因此,本实施例中才能采用本阶段给出的非手势模式检测方法自动地 从连续动作序列中检测出非手势模式。直观上,利用上述的分割方法分割出来 的手势模式间的动作序列都属于非手势模式,同时当某个分割出来的手势模式 利用韦特比算法计算出来的手势模型的似然值高于阈值模型的似然值且远远小 于训练手势的最低似然值时,该手势模式也属于一个非手势模式。

当利用步骤2获得的非手势模式的个数达到一定要求后,本实施例将利用 它们来训练非手势动作识别模型。在本实施例中,所述步骤3具体包括:

步骤301,通过基于欧式距离的动态时间规整算法计算非手势模式间的距 离,再采用ISODATA算法对非手势模式集进行聚类。由于非手势模式是 一种具有相当大随机性的信号,即使同一个人执行同一个动作,每一次运动的 结果都是不同的,也不可能具有完全相同的时间长度。因此两个非手势模式相 匹配时,其中一个非手势模式的时间轴要不均匀地扭曲或弯折,以使其特征与 另一个非手势模式特征对正。动态时间规整算法(DTW)将时间规整与距离测度 结合起来,比较两个大小不同的模式,可以有效解决非手势模式长度多变的问 题。DTW的目标就是要找出两个向量之间的最短距离。一般而言,对于两个n维 空间中的向量x和y,它们之间的距离可以定义为两点之间的直线距离,称为 欧式距离:dist(x,y)=||x-y||。但是如果向量的长度不同,它们之间的距离就无 法使用上述的数学形式來计算,因为我们并不知道两个向量的元素对应关系。 DTW算法通过使用满足一定条件的的时间规整函数W(n)描述输入模板和参考模 板的时间对应关系,采用动态规划算法(DP)求解两模板匹配时累计距离最小 所对应的规整函数,即找到最佳的元素对应关系,从而计算出两个不同长度向 量之间的距离。在本案例中,应用动态时间规整算法计算出任意两个非手势模 式间的距离后,便可以采用ISODATA算法对非手势模式进行聚类。所述ISODATA 算法,被称为迭代自组织数据分析或动态聚类,它的处理流程是:先选择若干 样品作为聚类中心,再按照最小距离准则使其余样品向各中心聚集,从而得到 初始聚类,然后判断初始聚类结果是否符合要求,若不符,则将聚类集进行分 裂和合并处理,以获得新的聚类中心(聚类中心是通过样品均值的迭代运算来决 定的),再判断聚类结果是否符合要求。如此反复迭代,直到完成聚类划分操作。 步骤302,对聚类后的每个非手势模式训练一个非手势动作识别模型,其中非 手势动作识别模型也采用左右结构的隐马尔可夫模型,其训练方法不再累述。

完成了非手势动作识别模型的训练后,本实施例就可以利用它们对分割识 别系统进行扩展,以提高系统的性能。在非手势模式检测和非手势动作模型训 练阶段中给出的分割方法中,手势分割模型是由所述手势动作识别模型及其构 建的阈值模型构成的,因此只要手势动作识别模型的似然值高于阈值模型的似 然值,一个手势模式就从输入的连续动作序列中检测出来,而上述分析也已说 明该检测方法的不可靠性,故而本实施例将非手势动作识别模型增加到前述的 手势分割识别模型中,在基于扩展的手势分割识别模型的分割识别方法中,只 有当手势动作识别模型的似然值高于阈值模型和所有非手势动作识别模型的似 然值时,一个手势模式才从输入的连续动作序列中检测出来。扩展后的手势分 割识别流程图,如图4所示,具体内容可以表述为步骤4:

步骤4的具体步骤和步骤21的具体步骤类似,唯一的区别在于,步骤207 中,只需判断所述第一手势动作识别模型的似然值是否高于阈值模型的似然值, 即要求所述第一手势动作识别模型满足下述条件:

g*=argmaxh∈Gδt(Eh),并且其中TR是阈值模型,在步骤4中,步骤207应该改为,判断所述第一手势动作 识别模型的似然值是否同时高于阈值模型的似然值和所有非手势动作识别模型 的似然值,即要求所述第一手势动作识别模型满足下述条件:

g*=argmaxh∈Gδt(Eh),且δt(Eg*)>δt(ETR),fF,δt(Eg*)>δt(Ef),其中F代表所有的非手势动作识别模型。;

在面向人机交互的应用场景中,当一个用户执行手势动作时,本实施例将 以30HZ的频率实时采集动作数据dt,并参照手势动作识别模型训练阶段实时 提取当前时刻的动作特征ft,然后将该特征向量作为t时刻的观测值ot增添到 观测序列O中,接着交互系统就可以按照图4所示的分割识别流程对该观测序 列进行实时地分割和识别,并根据手势识别的结果做出相应的响应,实现实时 自然的人机交互。

本发明的实施例如下所述,图6是本发明的自动检测非手势模式的手势分 割识别系统示意图,如图6所示,本发明的自动检测非手势模式的手势分割识 别系统,包括:

手势分割模型训练模块100,基于摄像头和传感器采集的异构数据训练手 势动作识别模型,利用所述手势动作识别模型构建阈值模型,手势动作识别模 型和阈值模型构成手势分割模型;

非手势模式检测模块200,利用所述手势分割模型从输入的连续动作序列 中自动检测非手势模式;

非手势动作识别模型训练模块300,利用所述非手势模式训练非手势动作 识别模型;

分割识别模块400,基于非手势动作识别模型扩展手势分割模型,以对输 入的连续动作序列进行分割识别。

手势分割模型训练模块100具体而言如下:

1.训练手势动作识别模型

需要说明的是,本步骤的一般实现方法是,首先基于视觉或者运动传感器 采集手势数据,然后对数据进行预处理,再对处理后的数据提取鲁棒的特征向 量,最终基于特征向量进行模型训练。

需要说明的是,采集手势数据时,为了区分不同手势所对应的数据序列, 本实施例采用了用户协同实现的分割方法,具体的实现方式是设计一个专门的 按钮,在手势动作的开始和结束时通过该按钮标记一个手势动作,在用户输入 动作时按住该按钮,完成动作时松开按钮,从而准确的得到一个手势动作所对 应的数据序列。

在本实施例中,所述手势动作识别模型为左-右结构的隐马尔科夫模型 (HMM),该模型中有且只有一个初始状态和终止状态,该模型的训练可采用 前述的Baum-Welch算法实现,最终输出为初始状态概率分布,状态转移概率 矩阵和输出观测值概率分布矩阵。隐马尔科夫模型h可以表示为一个五元组 (S,V,A,B,π),其中S={s1,s2,s3,...,sN}是一组状态的集合,V={v1,v2,v3,...,vK}是一组 输出观测值组成的集合,A=[aij]是N行N列的状态转移概率矩阵,每个元素 aij=P(qt+1=sj|qt=si),1≤i,j≤N表征从状态si转到状态sj的概率,B={bj(k)}是N行 K列的输出观测值的概率分布矩阵,每个元素bj(k)=P(vk|sj),1≤k≤K,1≤j≤N表示 在状态sj时输出观测值vk的概率,π={πi}是初始状态概率分布,πi=P(q1=si)表 示时刻1选择状态si的概率。当输出观测值为连续型变量时,此时的隐马尔科 夫模型称为连续隐马尔科夫模型。当模型中有且只有一个初始状态和终止状态 时,此时的隐马尔科夫模型称为左右结构的隐马尔科夫模型。

2.构建阈值模型

为了从连续的动作序列中定位出有效的手势动作序列,嵌入在输入流中的 手势动作序列对应的手势模型的似然值应该具有足够的区分能力。仅使用一个 简单的似然值阈值通常并不起作用,无法保证分割出来的动作序列是否真的属 于某个手势模式。因此,本实施例中参照方法[1]构建了一个阈值模型(见图1), 以它的似然值作为一个自适应的阈值,当且仅当最好的手势模型的似然值高于 该动作模型的似然值时,一个手势模式才从连续的动作序列中分割出来并实现 同步地识别。

上述阈值模型是由系统中所有手势模型的状态完全连接的遍历模型,能够 与由预定义的手势子模式以任意次序组合而成的模式匹配,且能保证对于给定 的一个手势模式,它的似然值将小于给定手势模式的手势模型的似然值。图1 给出的阈值模型是一个遍历结构的简化版本,其中,其中,A,B,Z分别表示一 个手势动作识别模型,每个圆圈代表一个状态,起始状态S和终止状态T是不 产生观察值的空状态,实线箭头表示状态之间的真实转移路径,虚箭头也不代 表真正的连接,它只是一种形象化的表示,说明模型中的所有状态都可以通过 一步转移到其它任何状态。上述阈值模型是由系统中所有手势模型的状态完全 连接的遍历模型,能够与由预定义的手势子模式以任意次序组合而成的模式匹 配,且能保证对于给定的一个手势模式,它的似然值将小于给定手势模式的手 势模型的似然值。阈值模型构建的具体步骤是:将系统中训练的所有手势模型 的所有状态拷贝出来,保持每一个状态的输出观察概率和自转移概率不变,同 时修改每个状态在原来手势模型中的外转移特性,令每个状态都可以通过一步 转移到其它任何状态,且转移概率相等,具体的计算公式如式(1):

aij=1-aiiN-1,j=1,2,...,N;ji;---(1),

其中aij是从状态i到j的转移概率,N是状态数目(除了起始和终止状态的 所有状态的总和)。需要说明的是,正是因为阈值模型中将每一个状态转移到 其它任何状态的概率均分化,从而其转向原来手势模型中的前向状态的概率低 于其在原来的手势模型中的前向转移概率,如此,给定一个手势模式,阈值模 型的似然值才会低于相应的手势模型的似然值。

本实施例中,手势分割模型由手势动作识别模型和阈值模型构成。

本实施例中,非手势模式检测模块的具体实现过程(参照图3)是:

手势模式检测模块,利用所述的手势分割模型从输入的连续动作序列中分 割和识别出有效的手势模式gs,及其起点Ts(gs)和终点Te(gs)。(之前先输入连 续动作序列(相当于观测序列)O,初始化其中Te*为前一个手势模式或 非手势模式的终点。)

非手势模式截取模块,将所述手势模式的起点与前一个动作模式的终点之 间的观测序列作为一个非手势模式从动作序列中检测出来。将当前的手势模式 gs的起点Ts(gs)与前一个手势模式或非手势模式的终点,记为Te*之间的观测序列 作为一个非手势模式从动作序列中检测出来。即将动作序列

检测为一个非手势模式。更新Te*=Ts(gs)-1

非手势模式判断模块,采用前向算法或后向算法gs与相应的手势模型的似 然值L,并对其进行判断:若似然值L小于TL,则判定当前的手势模式为伪手 势模式,并将其作为一个非手势模式从动作序列中检测出来,否则判定当前的 手势模式为一个真手势模式,对其进行分割识别,其中TL是一个小于训练手势 的最低似然值的似然值阈值。应用Baum-Welch算法训练手势动作识别模型的 时候会计算每个手势模式与手势动作识别模型的似然值,假设Lmin和δL分别是 训练手势模式与相应手势动作识别模型似然值的最低值和方差,则本实施例中, 设定TL=Lmin-3*δL

手势模式检测模块具体包括:

样本数据获得模块,通过摄像头和多个传感器检测手势动作,获得用于训 练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势 动作的三维位置、三轴角速度、三轴加速度的数据序列;

预处理模块,结合所述摄像头和多个传感器的特性,对所述第一样本数据 中的各个数据序列进行预处理,得到第二样本数据;

特征向量提取模块,用于从所述第二样本数据中提取不受动作幅度和空间 跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和 加速度的特征,利用所述特征向量训练手势动作识别模型;

观测序列增添模块,设定初始时间t=1,并将观测序列和手势栈置为空, 同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫 模型,数据序列统称为观测序列;

似然值计算模块,分别使用所有手势动作识别模型和阈值模型对t时刻的 观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;

令Eh是模型h的终止状态,则对于给定的模型h,观测序列O的似然值设定 为t时刻到达状态Eh的最优路径产生观察序列Ot的联合概率,记为δt(Eh)。

判断模块,找到所述似然值最大的第一手势动作识别模型,似然值最大的 手势模型满足下述的条件:

g*=argmaxh∈Gδt(Eh),

其中G是所有训练的手势动作识别模型的集合。

判断所述手势动作识别模型的似然值是否高于阈值模型的似然值;若高于 则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点, 并利用韦特比回馈算法找出该手势模式的起点,执行对比模块;否则执行第一 弹出模块;

似然值高于阈值模型的最大似然值的手势模型满足下述条件:

g*=argmaxh∈Gδt(Eh),并且

其中TR是阈值模型。

对比模块,判断手势栈S是否为空,如果为空,将所述手势模式g*压入手 势栈中,并标记手势栈栈顶缓存的手势模式的起点和终点,令Ts(gs)=Ts,Te(gs)=Te, 同时返回样本数据获得模块采集下一时刻,即t+1时刻的第一样本数据;如果 手势栈S不为空,则将上述手势模式g*与手势栈栈顶缓存的手势模式gs进行对 比,当两者相同时,更新手势栈栈顶缓存的手势模式gs的起点,即令Ts(gs)=Ts, 同时返回样本数据获得模块采集下一时刻,即t+1时刻的第一样本数据,否则 按下述情况进行判断和操作:当上述手势模式g*的起点Ts在手势栈栈顶缓存的 手势模式gs的第一个候选终点Te(gs)的前面,则弹出手势栈栈顶缓存的手势模式 gs,并压入上述手势模式g*,同时更新手势栈栈顶缓存的手势模式的起点和终 点,令Ts(gs)=Ts,Te(gs)=Te,并返回样本数据获得模块采集下一时刻,即t+1时刻 的第一样本数据;当上述手势模式g*的起点Ts在手势栈栈顶缓存的手势模式gs的第一个候选终点的后面,则弹出手势栈顶缓存的手势模式gs,并将上述手势 模式g*的起点Ts的前一时刻作为手势栈栈顶缓存的手势模式gs的终点,同时将 上述手势模式g*压栈,并更新手势栈栈顶缓存的手势模式的起点和终点,令 Ts(gs)=Ts,Te(gs)=Te,再执行第一判别模块;其中手势栈S用于存储前一个未找到 真正终点的手势模式,初始化为空。

第一弹出模块,弹出手势栈顶缓存的手势模式gs,并将t-1时刻作为该手 势模式的终点,然后执行第一判别模块。

第一判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式 的长度满足约束条件,那么其是一个真手势模式,执行第一标记模块;否则返 回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为 其终点时刻和起点时刻之间的时间段长度;手势栈用于存储前一个未找到真正 终点的手势模式,初始化为空。

第一标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点 时刻和终点时刻之间的观测序列中进行标记,返回样本数据获得模块采集下一 时刻的动作数据。

观测序列增添模块-第一标记模块可以参照图2进行理解。

需要说明的是,韦特比算法的具体实现步骤是:假设t时刻的观测序列表 示为Ot=(o1,o2,...,ot),其中ot是按照手势动作识别模型训练阶段提取的t时刻的 动作特征,qt是时刻t的隐状态,sj是模型h的第j个隐状态,λh是模型h的参数, 则t时刻到达状态sj的最优路径产生观察序列Ot的联合概率

δt(sj)=maxq1,...,qt-1P(q1,...,qt-1,qt=sj,Ot|λh)---(2),

可通过式(3)迭代计算得到

δ1(sj)=πjbj(o1)                     1≤j≤N,

δt(sj)=maxit-1(si)aij|bj(ot)      2≤t≤T,1≤j≤N.(3)

式(3)中N是模型h的状态数目,aij是从状态si到sj的转移概率,bj(ot)是状态 sj输出观测值ot的概率。在隐马尔可夫模型中,当某一时刻的隐状态是某个模 型的终止状态时,说明执行了一个相应的动作。因此可以使用δt(Eh)表示观测序 列与模型的相似度,即似然值。

需要进一步说明的是,在本实施例中,通过一个滤波器对手势模式的长度 进行判别。具体的做法是,首先对所有训练手势模型的数据样本的长度进行统 计,得到其均值和方差,然后设定合适的置信区间,如果g*的长度l在置信区 间内,那么它是一个手势模式,否则不是。上述判断过程可用下列形式表示, 如果:ασl<|l-ul|<βσl,则g*是一个手势模式,其中,ul和σl分别是所有训练 手势模型的数据样本的长度的均值和方差,α和β是经验系数。

需要再一步说明的是,正是由于构建的阈值模型,只能与任意预定义的手 势子模式以任意次序组合而成的模式匹配,而不能与非预定义的手势子模式组 合成的非手势模式匹配,因而当某个手势模型针对给定的动作序列计算出来的 似然值高于该阈值模型时,并不能武断地判定给定的动作序列属于某个手势模 式(给定的动作序列很有可能就是一个与某个手势模式相似的非手势模式), 也因此,本实施例中才能采用本阶段给出的非手势模式检测方法自动地从连续 动作序列中检测出非手势模式。直观上,利用上述的分割方法分割出来的手势 模式间的动作序列都属于非手势模式,同时当某个分割出来的手势模式利用韦 特比算法计算出来的手势模型的似然值高于阈值模型的似然值且远远小于训练 手势的最低似然值时,该手势模式也属于一个非手势模式。

当利用非手势模式检测模块获得的非手势模式的个数达到一定要求后,本 实施例将利用它们来训练非手势模型。在本实施例中,所述非手势动作识别模 型训练模块300包括:

非手势模式聚类模块,通过基于欧式距离的动态时间规整算法计算非手势 模式间的距离,再采用ISODATA算法对非手势模式集进行聚类。由于非 手势模式是一种具有相当大随机性的信号,即使同一个人执行同一个动作,每 一次运动的结果都是不同的,也不可能具有完全相同的时间长度。因此两个非 手势模式相匹配时,其中一个非手势模式的时间轴要不均匀地扭曲或弯折,以 使其特征与另一个非手势模式特征对正。动态时间规整算法(DTW)将时间规 整与距离测度结合起来,比较两个大小不同的模式,可以有效解决非手势模式 长度多变的问题。DTW的目标就是要找出两个向量之间的最短距离。一般而 言,对于两个n维空间中的向量x和y,它们之间的距离可以定义为两点之间 的直线距离,称为欧式距离:dist(x,y)=||x-y||。但是如果向量的长度不同,它 们之间的距离就无法使用上述的数学形式來计算,因为我们并不知道两个向量 的元素对应关系。DTW算法通过使用满足一定条件的的时间规整函数W(n)描 述输入模板和参考模板的时间对应关系,采用动态规划算法(DP)求解两模板 匹配时累计距离最小所对应的规整函数,即找到最佳的元素对应关系,从而计 算出两个不同长度向量之间的距离。在本案例中,应用动态时间规整算法计算 出任意两个非手势模式间的距离后,便可以采用ISODATA算法对非手势模式 进行聚类。所述ISODATA算法,被称为迭代自组织数据分析或动态聚类,它 的处理流程是:先选择若干样品作为聚类中心,再按照最小距离准则使其余样 品向各中心聚集,从而得到初始聚类,然后判断初始聚类结果是否符合要求, 若不符,则将聚类集进行分裂和合并处理,以获得新的聚类中心(聚类中心是通 过样品均值的迭代运算来决定的),再判断聚类结果是否符合要求。如此反复迭 代,直到完成聚类划分操作。

训练模块,对聚类后的每个非手势模式聚类训练一个非手势模型,其中非 手势动作识别模型也采用左右结构的隐马尔可夫模型,其训练方法不再累述。

完成了非手势动作识别模型的训练后,本实施例就可以利用它们对分割识 别系统进行扩展,以提高系统的性能。在非手势模式检测和非手势动作模型训 练阶段中给出的分割方法中,手势分割模型是由所述手势动作识别模型及其构 建的阈值模型构成的,因此只要手势动作识别模型的似然值高于阈值模型的似 然值,一个手势模式就从输入的连续动作序列中检测出来,而上述分析也已说 明该检测方法的不可靠性,故而本实施例将非手势动作识别模型增加到前述的 手势分割识别模型中,在基于扩展的手势分割识别模型的分割识别方法中,只 有当手势动作识别模型的似然值高于阈值模型和所有非手势动作识别模型的似 然值时,一个手势模式才从输入的连续动作序列中检测出来。扩展后的手势分 割识别流程图,其中F代表所有的非手势动作识别模型,具体内容可以表述为 分割识别模块,手势模式检测模块的具体内容和分割识别模块的具体内容类似, 唯一的区别在于,手势模式检测模块的判断模块中,只需判断所述第一手势动 作识别模型的似然值是否高于阈值模型的似然值,即要求所述第一手势动作识 别模型满足下述条件:

g*=argmaxh∈Gδt(Eh),并且

其中TR是阈值模型,在分割识别模块的手势模式判断模块中,内容变为判断所 述第一手势动作识别模型的似然值是否同时高于阈值模型的似然值和所有非手 势动作识别模型的似然值,即要求所述第一手势动作识别模型满足下述条件:

g*=argmaxh∈Gδt(Eh),且δt(Eg*)>δt(ETR),fF,δt(Eg*)>δt(Ef),其中F代表所有的非手势动作识别模型,如图4所示。

即该分割识别模块包括:

手势模式判断模块,判断所述第一手势动作识别模型的似然值是否同时高 于阈值模型的似然值和所有非手势动作识别模型的似然值;若高于则将t时刻 记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回 馈算法找出该手势模式的起点,执行对比判断模块;否则执行第二弹出模块;

对比判断模块,将上述手势模式与手势栈栈顶缓存的手势模式进行对比, 当两者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按 下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模 式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述 手势模式及其候选终点,返回样本数据获得模块采集下一时刻的第一样本数据; 当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后 一个候选终点之间,则弹出手势栈栈顶缓存的手势模式,并将上述手势模式的 起点的前一时刻作为手势栈栈顶缓存的手势模式的终点,然后将上述手势模式 及其起点和候选终点压栈,并执行第一判别模块;

第二弹出模块,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势 模式的终点,然后执行第二判别模块;

第二判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式 的长度满足约束条件,那么其是一个真手势模式,执行第二标记模块;否则返 回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为 其终点时刻和起点时刻之间的时间段长度;

第二标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点 时刻和终点时刻之间的观测序列中进行标记,返回样本数据获得模块采集下一 时刻的第一样本数据。

在面向人机交互的应用场景中,当一个用户执行手势动作时,本实施例将 以30HZ的频率实时采集动作数据dt,并参照手势动作识别模型训练阶段实时 提取当前时刻的动作特征ft,然后将该特征向量作为t时刻的观测值ot增添到 观测序列O中,接着交互系统就可以按照图五所示的分割识别流程对该观测序 列进行实时地分割和识别,并根据手势识别的结果做出相应的响应,实现实时 自然的人机交互。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这 些相应的改变和变形都应属于本发明权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号