基于有限自动机模型的动作识别方法

文档序号:1596299阅读:482来源:国知局
专利名称:基于有限自动机模型的动作识别方法
技术领域
本发明涉及动作感应技术,特别涉及一种基于有限自动机模型的动作 识别方法。
背景技术
一般情况下,根据动作幅度的大小可以把动作感应技术分为两种 微小动作的感应和大幅度的动作感应,常见的微小动作的感应有如飞行模 拟器等,如果手柄微小的变化,在游戏中都能够感受到;常见的大幅度动
作感应有如任天堂2006年发布的电视游戏机Wii等,大幅度动作如上/ 下/左/右等,通常手臂会有动作。
动作感应技术的应用需要结合相应的硬件来实现,以游戏手柄为例, 对于第一种微小动作感应技术,手柄中需要有能够测定旋转速度的陀螺 仪,在软件端只需要把陀螺仪测定的旋转角速度进行简单的处理即可。
对于大幅度动作感应技术,相应的硬件至少需要测定XYZ三轴线性 加速度,在此基础还可以增加测定旋转角速度的陀螺仪。
大幅度动作感应技术的动感分析算法的是以动感手柄的3轴或5轴 加速度传感器感应值为输入,通过软件算法最终分析出用户动感操作。
目前大幅动感分析算法还处于起步阶段, 一般只能是识别一些的简 单动作,例如上、下、左、右、前、后等。对于一些复杂动作的识别都需 要花费大量时间和精力去识别,而且每添加一个动作都是如此。而且算法中存在大量的浮点运算,严重影响效率,延迟响应时间。

发明内容
本发明要解决的技术问题是提供一种基于有限自动机模型的动作识 别方法,采用该动作感应方法,能实时地处理输入动作数据,提升动作识 别效率。
为解决上述技术问题,本发明的基于有限自动机模型的动作识别方 法,包括以下步骤
(1) 定义子动作;
(2) 把动感操作划分为若干子动作,用动作表达式描述其子动作序列;
(3) 把加速度传感器采集的动感数据划分为若干连续的数据子集,把 各数据子集判断为相应的子动作,得到动感数据的子动作序列;
(4) 引入有限自动机模型,根据动感数据的子动作及动感操作的动作
表达式,进行动作识别。
步骤(3)得到的动感数据的子动作序列可以先进行误差屏蔽后再进行 步骤(4)。
可以根据动感数据的子动作的空间位移量、平均加速度进行误差屏
蔽°
本发明的基于有限自动机模型的动作识别方法,弓l入有限自动机(简 称FA)模型,可以识别复杂的动作。对于复杂动作,把它分割为若干连 续的子动作,以子动作序列表示这个实际的动作。把这个序列逐一输入到 FA, FA根据自己的内部逻辑经过一定的状态转换,输出动作判定结果。 能实时地处理输入动作数据,提升动作识别效率。


下面结合附图及具体实施方式
对本发明作进一步详细说明。
图1是本发明的基于有限自动机模型的动作识别方法一实施方式流
程图2是一动感操作"顺时针圆"示意图3是一子动作定义方式示例;
图4是一动感操作划分子动作示例;
图5是对"顺时针圆"的二种子动作划分方法示例。
具体实施例方式
本发明的基于有限自动机模型的大幅动作感应方法一实施方式如图 l所示,包括以下步骤
(1) 定义子动作;
(2) 把动感操作划分为若干子动作,在配置文件中用数学表达式描述 其子动作序列;
(3) 把加速度传感器采集的动感手柄的动感数据划分为若干连续的数 据子集,把各数据子集判断为相应的子动作,得到动感数据的子动作序列;
(4) 把根据动感数据判断得到的子动作序列根据子动作的空间位移 量、平均加速度进行误差屏蔽,以消除动感手柄静态感应和微小抖动所带 来的误差;
(5) 引入有限自动机模型,根据动感数据的子动作及在配置文件中用 数学表达式描述的动感操作子动作序列,进行动作识别。
本发明的基于有限自动机模型的动作识别方法,引入有限自动机(简称FA)模型,可以识别复杂的动作。对于复杂动作,把它分割为若干连 续的子动作,以子动作序列表示这个实际的动作。把这个序列逐一输入到 FA, FA根据自己的内部逻辑经过一定的状态转换,输出动作判定结果。 能实时地处理输入动作数据,提升动作识别效率。
无论是3轴还是5轴的加速度传感器,其动作感应是以空间3轴加速 度的形式出现的,这就意味着当动感手柄在空间作匀速运动时,其没有感 应值,此时与静止时无异。本发明的技术方案中,会把无感应值或者只有 微小感应的动作忽略。本发明适用于3维空间的大幅动作感应,但为了便 于精确地描述本发明的技术,下面以2维动作平面中的"顺时针圆"为例, 对本发明的技术方案进行描述。
1. 定义子动作
在平面中可以定义8个子动作,分别是"一/ t \ —Z I \"。但这 并不是唯一的定义,也可以定义为4个、12个甚至更多,主要是由应用 程序对动感操作精确性的不同需求而定。子动作的多种定义方式如图3 所示。
对于本发明的基于有限自动机模型的动作识别方法来说,定义的子动 作越多,能够识别的动作就越细致、越精确。但在实际实现过程中,例如 游戏动感手柄,由于动感手柄硬件输出参数的误差性,以及PC的实际运 算能力等各方面因素的限制,这个精确度就会受到影响。因而不能无限制 地过多定义子动作。这里假设定义为8个。
2. 把动感操作划分为若干个子动作
动作感应技术的一个根本性问题是"如何识别动感操作"。在本发明中,基于第1点中所定义的子动作,把整个动感操作划分为若干连续的子 动作。最后再对这个子动作序列进行匹配。
划分动感操作的一个通用的方法是基于时间来划分,假设动感操作如
图4所示,图4中的曲线表示动感操作的轨迹,其中的2条虚线把这个操 作划分为3段,即划分为3个子动作。根据第1点中所定义的子动作来看, 可以把图3中的3个阶段依次判定为对这个动感操作进行描 述的动作表达式预先定义存放在配置文件中,当用户动感手柄做一动作 后,加速度传感器采集的动感手柄的动感数据能够与配置文件中预先定义 的动作表达式"一/ —"匹配,就被认为是目标动作,应用程序就读取配 置文件中动作表达式的描述,然后动感地建立FA,进而进行动作识别,执 行相应的逻辑功能。本发明的方法并不一定需要动感操作完全的一致,这 个过程中有一定的容错性。
例如对于图2中所描述的顺时针圆就可以进行如图5所示划分
图5中有两种划分
(1) 左边化分为4个子动作,可以依次识别为"/\</\"。
(2) 右边化分为4个子动作,可以依次识别为"一I — t "。
这两种划分形式,都可以作为识别的标准。 但从动感操作"顺时针圆"本身来说,不仅仅是这两种。对于上面的
每一种划分其实可以细化为4种类型
(1) ①—②—③—
(2) ②—③—④—①
3) ③— —①—②(4)④—①—②—③ 那么图5中所代表的就是8种子动作序列。用户动感手柄的动作只要能够 与其中之一种匹配,那就可以识别为"顺时针圆"动作。这些内容在实际 开发过程中都可用配置文件形式呈现,而在程序内部需要实现识别这些配 置动作表达式的引擎。
本发明的这种动作识别方法除了能够很方便地识别复杂动作外,还有
另外一个优势。假设现在需要识别"n次顺时针圆"这个操作,那么只需 要简单修改配置动作表达式即可,例如对于"2次顺时针圆"可以表示为 "1—2—3—4—1—2—3—4"。
3.把动感数据划分为若干连续的数据子集
前面两个步骤,其实是为分析动感操作搭建分析框架。从这一步开始, 就可以进行具体的数据分析与动作识别。
前面也已经提到对于动作的识别,首先要把动感数据根据时间进行分 段。在分段判定动感数据的子动作之后,再对动感数据的连续的子动作序 列进行识别。
动感手柄的加速度传感器对于动作感应的输出是在x,y,z三轴方向 上的加速度,记为(ax,ay,az),因而首先需要把这些数据转化为对应的 空间运动轨迹的点集。
假设采样为100次/S,子动作分段时间为50ms,如果用于完成"顺 时针圆"这个动作需要250ms,那么可以划分为5个子动作的数据子集。 然后对每个子动作的数据集合进行线性拟合(因为在上面第二点中的子动 作都定义为线性的,在运算速度上具有很大优势)。4. 屏蔽静态感应和微小抖动所带来的误差
在动感手柄进行动感操作过程中难免有些误操作,例如用户握住手柄 保持不动,但实际上很难确保完全静止,或多或少加速度传感器总会有些 感应值。因而对于这一类的误差的处理是非常有必要的。
在一些应用程序中对于动作感应的需求是大幅度类型的动作,那么用 户如有少量小型的动作也会被列入屏蔽的范围。
另外还有一种情况,当一个动感操作结束时,从空间运动轨迹上来说, 几乎为静止。但从力学中动能定理的角度来看,动作结束时会有一个感应 值比较大的反向冲力,在动感数据中表现的就是一系列感应值比较大的 值。这也是需要去屏蔽的。
在本发明中,可以根据子动作进行误差屏蔽,大致有两种方式
(1) 子动作的空间位移量
(2) 子动作的平均加速度
5. 引入有限自动机(FA)模型识别动感操作
有限自动机是计算机理论中,能够合理有效地处理复杂状态转换逻辑
的一种模型,其形式定义如下5个部分状态集合、字母表、转移函数、 起始状态和终止状态。
在本发明中引入有限自动机模型,与一般的动作感应技术相比有以下 几个优势
(1)实时地处理输入。
通常的动作感应技术,在处理感应动感数据时需要等到动感操作完成 时,才能对数据进行处理。而在本发明中,极大地提升动作识别技术中的实时数据处理能力,每一个子动作的产生都可以作为FA的输入,实时地 改变FA的内部状态。
(2) 提升动作识别效率。
FA识别动作所需要的时间取决于子动作的数量。例如在完成一个动 感操作需要250ms,每个子动作时间为50ms,那么每隔50ms就会产生一 个子动作信号。对于FA来说,每隔50ms会接收一个输入的子动作信号, 从而驱使一系列状态的变化。
(3) 有效地组织各类动感操作。
对于每个动感操作,由于其本身存在多种情况,如第2点中所提到的 "顺时针圆"这个操作。 一般情况下,识别时会逐个进行匹配。但在本发 明中引入FA模型,就不需要了。由于"顺时针圆"这个操作划分为4个 子动作,那么对于这个动作的识别,就是由子动作数量决定,固定为4, 与这个操作有几种情况无关。
(4) 简化开发流程。
在具体实现过程中,首先采用动作表达形式描述动感操作,即描述其 子动作序列,然后在内部实现构建FA的引擎。应用程序首先读取配置文 件中对于动感操作的描述的动作表达形式,然后动感的建立FA,接下去 就可以进行动作识别。
当需要增加对新的动感操作的识别时,只需要在配置文件中添加该动 作的表达式描述即可,而不需要修改任何模块。
权利要求
1、一种基于有限自动机模型的动作识别方法,其特征在于,包括以下步骤(1)定义子动作;(2)把动感操作划分为若干子动作,用动作表达式描述其子动作序列;(3)把加速度传感器采集的动感数据划分为若干连续的数据子集,把各数据子集判断为相应的子动作,得到动感数据的子动作序列;(4)引入有限自动机模型,根据动感数据的子动作及动感操作的动作表达式,进行动作识别。
2、 根据权利要求l所述的基于有限自动机模型的动作识别方法,其 特征在于,把步骤(3)得到的动感数据的子动作序列进行误差屏蔽后再进 行步骤(4)。
3、 根据权利要求2所述的基于有限自动机模型的动作识别方法,其 特征在于,根据动感数据的子动作的空间位移量、平均加速度进行误差屏 蔽°
全文摘要
本发明公开了一种基于有限自动机模型的动作识别方法,包括以下步骤定义子动作;把动感操作划分为若干子动作,用动作表达式描述其子动作序列;把加速度传感器采集的动感数据划分为若干连续的数据子集,把各数据子集判断为相应的子动作,得到动感数据的子动作序列;引入有限自动机模型,根据动感数据的子动作及动感操作的动作表达式,进行动作识别。本发明的动作识别方法,能实时地处理输入动作数据,提升动作识别效率。
文档编号A63F13/02GK101607138SQ20081004351
公开日2009年12月23日 申请日期2008年6月17日 优先权日2008年6月17日
发明者张静盛 申请人:盛乐信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1