CN102087712A - 个性化动作控制的***和方法 - Google Patents

个性化动作控制的***和方法 Download PDF

Info

Publication number
CN102087712A
CN102087712A CN2011100427130A CN201110042713A CN102087712A CN 102087712 A CN102087712 A CN 102087712A CN 2011100427130 A CN2011100427130 A CN 2011100427130A CN 201110042713 A CN201110042713 A CN 201110042713A CN 102087712 A CN102087712 A CN 102087712A
Authority
CN
China
Prior art keywords
action
action recognition
actuating signal
sensing device
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100427130A
Other languages
English (en)
Other versions
CN102087712B (zh
Inventor
涂晓媛
河野洋一郎
查尔斯·穆席克
威廉姆斯·罗布·鲍尔三
斯图尔特·雷诺兹
达纳·威尔金森
伊恩·赖特
颜维群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AILive Inc
Original Assignee
AILive Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/709,520 external-priority patent/US20110044501A1/en
Application filed by AILive Inc filed Critical AILive Inc
Publication of CN102087712A publication Critical patent/CN102087712A/zh
Application granted granted Critical
Publication of CN102087712B publication Critical patent/CN102087712B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种使用多个数据流进行运动识别的技术。动作识别器基于来自非惯性传感器和惯性传感器的多个数据流得到动作识别信号。根据动作信号的训练集来构建所述动作识别器,根据所述多个传感数据流来更新所述动作识别器。一方面,将所述多个传感数据流转换为设备无关动作信号,所述动作识别器根据所述与设备无关信号提供广义动作识别能力。

Description

个性化动作控制的***和方法
【技术领域】
本发明涉及人工智能领域,特别是涉及机器学习,尤其是在通过示例动作产生动作识别器(motion recognizer)的应用中。在一些实施例中,识别器产生器(recognizer maker)可以嵌入终端应用程序或与终端应用程序共同使用,终端用户可以使用这些终端应用程序并为自己创建专用个性化动作识别器。
【背景技术】
利用软件应用程序进行任意人体动作控制(freeform human motion control)严格受制于如何检测和识别出特定人的动作。一般来讲,最感兴趣的动作控制可能来自于解析以下人体“装置”:手指、手掌、肩膀、躯干和腿等。人非常擅长于解析他人的动作和表情,但现在还不能创造出与自己相似水平的机器和代码。
利用程序代码来识别一个给定的动作是否是已知动作类(known motionclasse)中的一个是很困难的。一方面,这是由于存在很多可以使用的专门的动作数据源,每个数据源都是公共知识中一个相对小的个体,每个数据源都有不同的语义解释和应用范围,而没有任何一个数据源能反映出所有人能够获得的人类学信息。通常,得到的动作数据是很复杂且违反直觉的。例如,当三维加速计输出相对时间的序列数据(时间序列数据)的简单图表时,所属领域内的技术人员就会很难去确定所述简单图表中的时间序列数据对应的是何种姿态。在遇到上述问题时,甚至选择哪些动作图表属于同一姿态这样的简单任务就会难倒大多数专家。该问题还会由于传感器噪音、设备的差别等原因而更加恶化。事实上,具有不同的肌肉组织类型的不同人执行相同姿态的动作或甚至同一个人在不同的时间执行相同姿态的动作,得到的动作数据也可能完全不同。对于所属领域内的普通技术人员来说,在这种条件下去建立有效的动作识别器是非常艰苦的挑战。
除具有挑战性的数据源以外,事实上所述动作数据是随着时间动态变化的,而不是静止不变的,这也是需要克服的一个重大难题。一般意义上来说,任意人体动作具有随着时间运动的特点,那么随后的动作识别必须依照时间序列数据来计算。典型的模式识别或姿态识别方法一般都是先计算很多静态特征,之后实现差别识别,这样的方法与本发明无关。
任意人类动作控制的第三个特点是希望为每个独立用户创建个性化的自己专用的动作识别器(即不是被预先定义的),这对于自动动作识别***来说是一个巨大的挑战。现有技术包含许多算法的例子,所属领域的技术专家能够将其应用于特定的一组预定义的姿态中以进行静态识别。使用一组预定义的姿态意味着大量实际存在的异常可以被切除。例如,分类器解释时间可以为天或星期。训练数据可以包含上百万个例子。然而,所述预定义类的特性规格很难被编码到所述算法和相关参数中。大体上讲,在小数量的预定义类中进行分类与专用动作识别器完全不同。依据我们的理解,现有技术中没有提供与为终端用户产生的专用动作识别器相关的教导。
在先前的文献中,如参考文献[3]Kjeldson,其提供的***和方法可以收集手的静态图像,构造大量用于描述所述静态图像的静态特征,利用类似神经网络的工具建立一个分类器,该分类器能够识别随后的静态图像。很显然,该文献公开的技术与建立专用动作识别器无关。首先,参考文献Kjeldson的输入数据是静态图像数据,这里没有时间成分也没有混合模式输入。该文献中的有关静态分类问题的技术并不适用于任意人体动作控制。另外,参考文献Kjeldson着眼于为所属领域的技术人员建立一个分类器,所述分类器可以区分预设的静态图像集合。然而,亟待让非所属领域的人员能够创建识别非预设姿态的分类器。
在先前的文献中,如参考文献[4]Kwon,其提供的***和方法可以产生一个训练或受训会议,其中隐藏有可以表征训练者动作的马尔科夫模型(Markovmodel),所述马尔科夫模型可以用于识别新进受训者的动作。这种方法的识别错误率大约为40%-60%,这对于对所述受训者可能是可以接受的。然而在多数应用中,例如计算机视频游戏,要求识别成功率为95%以上。再有,在参考文献[4]Kwon中描述的方法要求在训练信号中有三个组成成分:起始位置、动作和结束位置。这个方法在希望提供任意人体动作控制的应用中是没有用的,因为在任意人体动作控制时起始位置和结束位置不可能被预先定义。
在本发明中采用史无前例的步骤让非技术人员的终端用户可以在各种应用中创建专用个性化动作识别器。输入数据为时间相关的混合动作信号,其不是预定义姿态,没有限制怎样去执行,也没有预定义的开始点或停止点。在创建所述动作识别器时不需要进行编码。终端用户仅需要参考给出的示例就能够创建他们选择的任何动作识别器。通过参考以下详细描述所述本发明中的目的、特点和好处将会更加清楚。
【0010】这里附上参考文献的详细出处。
[1].E.Keogh and M.Pazzani,Derivative Dynamic Time Warping,in FirstSIAM International Conference on Data Mining,(Chicago,IL,2001);
[2].Lawrence R.Rabiner,A Tutorial on Hidden Markov Models andSelected Applications in Speech Recognition.Proceedings of the IEEE,77(2),p.257-286,February 1989;
[3].R.Kjeldson and J.Kender,Towards the Use of Gesture in TraditionalUser Interfaces,Proceedings of the 2nd International Conference on AutomatiCFace and Gesture Recognition)1996;和
[4].D.Kwon and M.Gross,Combining Body Sensors and Visual Sensorsfor Motion Training,ACM SIGCHI ACE 2005。
【发明内容】
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
本发明所解决的技术问题之一在于提供一种利用多个数据流进行动作识别的方法,其可以提供通用广义动作识别能力。
本发明所解决的技术问题之二在于提供一种利用多个数据流进行动作识别的***,其可以提供通用广义动作识别能力。
为解决上述问题,根据本发明的一方面,本发明提供了一种利用多个数据流进行动作识别的方法,其包括:处理单元接收来自至少一个动作传感装置的包括至少两种成分输出的动作信号,所述动作传感装置包括惯性传感器和非惯性传感器;将所述成分输出转换为与设备无关(device independence)的动作信号;利用至少一个动作识别器进行动作识别以对所述动作信号分类,其中根据用户创建的动作信号的训练集构建所述动作识别器,所述动作信号的训练集包括表示在一段时间内执行的至少一种类型的动作的一组动作信号,自动确定构建所述动作识别器所需要的所有参数;和,将所述动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力。
在进一步的一个实施例中,所述非惯性传感器包括:所述动作传感装置上的按钮、摇杆或触发器;所述动作传感装置上的一个或多个触摸屏传感器;用于跟踪所述终端用户的局部身体的位置和方向的一个或者多个视频摄像机;和,一个或多个麦克风。
在进一步的一个实施例中,所述方法还包括:根据一个动作识别器中产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
在进一步的一个实施例中,所述方法还包括:基于时间卷曲距离(time warpdistances)选择原型,这些原型用于创建一个或多个新的动作识别器,其中所述利用至少一个动作识别器进行动作识别以对所述动作信号分类包括:通过计算响应所述动作传感装置的所述一个或多个新的动作识别器中的各个原型的时间卷曲距离对所述原型进行分类。
在进一步的一个实施例中,所述处理单元包括一个识别运行时库,所述识别运行时库使一个弹性参数(elasticity parameter)与每个成分输出相关,随后的时间卷曲相关分数是针对所述弹性参数的。
在更进一步的一个实施例中,所述识别运行时库用于识别所述动作传感装置的同时独立动作、同时相关动作和静态姿态。
在进一步的一个实施例中,所述方法还包括:将所述动作识别器应用于所述动作信号以建立响应另一动作传感装置的广义动作识别器。
为解决上述问题,根据本发明的另一方面,本发明提供了一种利用多个数据流进行动作识别的方法,其包括:处理单元装载一组动作识别器,所述动作识别器通过使用第一动作传感装置来预先创建,第一动作传感装置包括第一组传感器;所述处理单元接收来自第二动作传感装置的具有至少两种成分输出的动作信号,第二动作传感装置包括第二组传感器,第二组传感器与第一组传感器部分不同;将所述成分输出转换成与设备无关的动作信号;和,将动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力。
在进一步的一个实施例中,所述方法还包括:利用所述广义动作识别能力根据所述动作信号确定一个最终动作识别信号。
在进一步的一个实施例中,所述方法还包括:所述广义动作识别能力响应一个动作识别器产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
在进一步的一个实施例中,所述方法还包括:基于时间卷曲距离(time warpdistances)选择原型,这些原型用于创建一个或多个新的动作识别器,其中所述将动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力包括:通过计算响应第二动作传感装置的所述一个或多个新的动作识别器中的各个原型的时间卷曲距离对所述原型进行分类。
在进一步的一个实施例中,第一与第二动作传感装置的描述人体动作的能力不同。在更进一步的一个实施例中,所述处理单元包括方便新的动作传感装置注册的接口,所述接口告知所述处理单元关于新的动作传感装置的足够资料(sufficient statistics),所述新的动作传感装置将用于所述广义动作识别能力。
在进一步的一个实施例中,还存在有第三动作传感装置,两个用户分别持有第二和第三动作传感装置,第二和第三动作传感装置输出的动作信号是互相关的以使得所述两个用户在相似的时间以互补的方式执行成对的动作。
为解决上述问题,根据本发明的再一方面,本发明提供了一种利用多个数据流进行动作识别的***,其包括:装载有一组动作识别器的处理单元,所述动作识别器通过使用第一动作传感装置来预先创建,所述处理单元接收来自第二动作传感装置的动作信号,第二动作传感装置产生描述用户的各种动作的惯性传感信号和其他传感信号,其中来自第二动作传感装置的动作信号包括所述惯性传感信号和其他传感信号;其中所述处理单元将所述惯性传感信号和其他传感信号转换成与设备无关的动作信号,响应第二动作传感装置将所述动作识别器应用于所述与设备无关的动作信号以提供广义动作识别服务。
在进一步的一个实施例中,所述处理单元利用所述广义动作识别服务根据所述动作信号确定一个最终动作识别信号。
在更进一步的一个实施例中,所述处理单元将所述惯性传感信号和其他感应信号中的每一个转换成伪线性加速度、伪角速度或伪按钮信号中的一个或多个。
在进一步的一个实施例中,第一动作传感装置与第二动作传感装置的灵敏度不同。
在进一步的一个实施例中,所述处理单元包括方便新的动作传感装置注册的接口,所述接口告知所述处理单元关于新的动作传感装置的足够资料,所述新的动作传感装置将用于所述广义动作识别服务。
在进一步的一个实施例中,所述广义动作识别服务响应一个动作识别器产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
与现有技术相比,本发明中的动作识别技术中的动作信号包括至少两种成分输出,将所述至少两种成分输出(比如惯性传感信号和其他传感信号)转换成与设备无关的动作信号,基于所述与设备无关信号可以提供广义动作识别能力。
关于本发明的其他目的,特征以及优点,下面将结合附图在具体实施方式中详细描述。
【附图说明】
接下来的具体实施方式、后面的权利要求以及附图将有助于了解本发明的具体特征,各实施例以及优点,其中:
图1A示出了本发明在一个实施例中的装置结构图,所述装置中的显示器、控制器和计算单元是三个独立的装置;
图1B示出了用户执行一个动作时得到一个示例动作信号的示意图;
图2示出了本发明的另一个实施例中独立装置,所述独立装置包括显示器、控制器和计算单元;
图3示出了本发明在一个实施例中的示例架构,其中动作信号包括描述终端用户的运动和动作的不同输入;
图4示出了本发明在一个实施例中创建个性化专用动作识别器的流程图;
图5示出了本发明在一个实施例中执行动作识别的流程图;和
图6示出了本发明在一个实施例中创建专用个性化动作识别器的流程图,其中动作感应应用程序同时在使用所述创建的动作识别器进行动作控制。
【具体实施方式】
本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来直接或间接地模拟本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。换句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被详细描述。
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
为了方便起见,以下对一些术语进行了定义。应当注意的是,所述定义是为了便于在实施例中理解和描述本发明。所述定义结合实施例可能有些限制。然而,所述术语的实际意思可以适应性的超过所述实施例。
·1定义
专用动作识别器(Ad-Hoc motion recognizer):一种动作识别器,其建立过程不需要预定义可接受动作,也不需要预定义执行那些动作的可接收方式。
容量(Capacity):一个参数,其决定给定动作识别器中的动作原型数目。容量也可以代表所述给定动作识别器占用的内存和CPU资源量。
分类(classification):给未标签的动作信号分配类标签(class label)或动作标签(motion label)的过程,其中分配的类标签可以为“未知的”或“未确定的”。分类还可以响应其它因素而分配未标签动作信号是每个可能类的概率,此时所述分配的类标签是具有最大的概率的类。
分类间距(Classification distance):分类间距是在特定动作类中给定动作原型的阈值。在所述分类间距内,所述动作原型可以将动作信号归类为类内,在所述分类间距外,则表示所述动作原型与所述动作信号无关。
分类率(Classification rate):动作识别器性能的度量标准,其对应于一套统计度量方式,比如大量的假阳性和真阳性。
分类器(Classifier):在此应用中,这个术语涉及软件指令,其可以通过计算设备的来解析以执行分类。所述分类器可以与动作识别器交替使用。
开发者(Developer):研发应用程序的人员。在此应用中,所述开发者包括但不局限于,游戏程序员、AI程序员、生产商、平面设计师、测试人员和雇佣的承包商等等。
终端用户(End User):应用程序的使用者,例如,视频游戏应用程序的游戏玩家,或手机的使用者。
动作(Motion):改变位置的行为或过程,其包括故意动作(例如画一个字母或拧动一个人的肘关节以模拟使用一个螺丝刀)与无意动作(烦躁或紧张时的抓头或摸鼻子等)。
动作原型(Motion prototype):动作原型是动作识别器中一类的代表动作信号(未处理的或处理的)中的一个。
动作识别器(Motion recognizer):被计算设备解析以实现动作分类的软件指令。所述术语“预测器(predictor)”和“识别器”在这里可和动作识别器交替使用。
动作信号(Motion signal):动作信号是信息,比如可以为描述一段时间内的一个动作的时间序列数据(请参见图1B)。所述数据可以为多种形式。例如,物体的随时间的位置,物体的随时间的方向,物体的随时间的加速度,物体的随时间的力,用频域表达的数据,用参数域表达的数据,比如R3和R4等等。动作信号有时被称为动作。在此,动作信号可以为处理过的动作信号或未处理过(raw)的动作信号。未处理过的动作信号可以表示直接来自动作传感装置的数据。处理过的动作信号表示来自动作传感装置的被进一步处理或转换后的数据。
松弛度(Slack):所述松弛度作为动作原型的分类间距的非线性乘数。所述松弛度越高,相关动作原型越可能来为给定示例动作分类。同样的,所述松弛度越低,相关原型越不可能为给定示例动作分类。在一个实施例中,在动作识别器中松弛度可以有效描述给定类的分类公差(classification tolerance)。
训练集(Training set):一组用于产生动作识别器的动作信号(未处理过的或处理过的)。所述训练集可以有多种可能的形式。在此应用中,训练集是动作信号子集的集合,其中每个子集的每个成员共享相同的明确的或不明确的标签。例如,明确的类标签可以为“正手”,“反手”和“发球”。如果明确的标签是不可用的,则可以使用不明确的标签,其源自动作所属的子集。例如,如果所述训练集有五个不同未标签的动作信号的子集,动作的每个子集的不明确标签可以依次为“子集1”...“子集5”。
·2实施例的详细描述
图1A示出了本发明的一个实施例100,其中显示器103、控制器102和计算单元108是三个独立的装置。这种设置反应了一种典型的计算视频游戏***,如Nintendo(任天堂)Wii或索尼的PS3。
如上述定义,终端用户101是一个典型的客户或终端用户,其移动所述控制器102以产生可应用在所述计算单元108中各种应用程序上的动作信号。本发明的特点、优点或益处之一在于为所述终端用户提供一种新的能力去在所述计算单元108中的一个或多个应用程序107中为他们创建属于自己唯一的个性化动作控制接口。
在此实施例中,所述控制器102可以是动作传感装置,该动作传感装置可以包括一个或多个独立的惯性传感器,如加速计(accelerometers)、陀螺仪和磁力计。当所述终端用户101移动所述控制器102时,所述控制器102产生可输入给所述计算单元108的动作信号104的数据流。
所述动作信号104是所述控制器102的输出,其以一定方式封装后通过有线或无线的形式鲁棒(robust)和高效地传输到所述计算单元108中。图1B示出了一个用户画一个圈(用“0”表示,从111到112)的动作所产生的一个示例动作信号110。所述动作信号110示出了在点114和点116之间的大概400个样本数据或帧数据,其中所述动作信号点114表示所述动作的开始111,所述动作信号点116表示所述动作的结束112。在这个示例中,每帧数据包括四个浮点数,其表示传感器在给定点上沿给定轴线的实时加速度。这样,所述动作信号110是表示一段时间的动作的时间序列数据(time series data)。有时,所述术语“动作信号流”可以与“动作信号”互相替换的使用以表达从动作传感装置中获取的数据是连续的数据流这样的事实。
所述识别器产生器105(recognizer maker)是所述计算单元108中的一个模块。所述识别器产生器105可以为所述终端用户创建专用个性化动作识别器。在动作识别器创建过程中,所述识别器产生器105可以将所述动作信号104作为输入以更新或创建新的动作识别器106,然后更新所述显示器103为所述终端用户101提供的反馈信息。在本实施例或其他实施例中,所述识别器产生器是为所述终端用户而不是开发者所提供的。所述动作识别器包括哪些动作和它们如何执行都是由所述终端用户完全自主决定的。
在一个实施例中,集成有识别运行时库(recognition runtime library,简称识别RTL)的多个应用程序107是所述计算单元108中应用程序(如,视频游戏)的集合,其中每个应用程序107都单独包括有一个动作识别运行时库。每个应用程序将所述动作信号104作为其输入的一部分,并且可响应一个或多个动作识别器106。所述应用程序107响应所述终端用户101的动作去以某种方式更新所述显示器103和他们内部的状态。一般来讲,对于类似于视频游戏的应用程序来说,动作识别器106需要为不同年龄的数百万用户工作。这样,所述动作识别器必须对由于不同身体结构而在动作信号中产生的变化、所有范围的力度和长度的变化、控制器的抓握方式的不同、开始和结束方位的改变具有较强的鲁棒性(Robust)。所有的这些变化均会对形成的动作数据产生很大影响。
所述计算单元108负责接收来自所述控制器102的输入信号,加载和运行所述识别器产生器105、所述应用程序107和所述识别器106,以及更新所述显示器103。
图2示出了本发明的一个实施例200,其中显示器、控制器和计算单元集成为一个装置。这种设置反映了一个典型的移动***,比如Apple iPhone或Sony PSP。本发明的特点、优点或益处之一在于为终端用户201提供一个新的能力去在计算单元208中的一个或多个应用程序206中为自己生成唯一的个性化动作控制接口。
所述计算单元208包括一系列动作传感器202(比如独立的惯性传感器),当终端用户201移动所述计算单元208时,动作传感器202可以产生动作信号,所述动作信号提供给识别运行时库203,所述识别运行时库203与创建的动作识别器204一起执行运动识别。
在所述计算单元208中的一个或多个应用程序206共享所述识别运行时库(recognition run time library)203,运动控制服务层207在所述应用程序206、所述识别运行时库203和识别器产生器207之间提供仲裁。所述识别运行时库203从所述动作传感器202中接收连续的动作信号流,响应一个或多个识别器204,提供动作识别信号并反馈给所述应用程序206和所述识别器产生器207。***反馈通过所述计算单元208显示给所述终端用户201。
所述识别器产生器207是所述计算单元208中的一个模块。所述识别器产生器207的主要作用是为所述终端用户创建专用个性化动作识别器。在所述识别器的创建过程中,所述识别器产生器207从所述识别运行时库203中获取处理过的动作信号,然后基于不断来自所述动作传感器202的动作信号和/或新的动作信号以更新或创建新的识别器204,随后更新所述计算单元208中的所述显示器以为所述终端用户201提供反馈。在本实施例或其他实施例中,所述识别器产生器是为所述终端用户而不是开发者所提供的。所述识别器产生器必须可以运行于终端用户手持的计算单元中。所述动作识别器中包括哪些动作和它们如何执行都是由所述终端用户完全自主决定的。
所述动作控制服务层205为应用程序206提供共享动作控制服务的定位、绑定和使用,该共享动作控制服务是由所述动作传感器202、识别运行时库203和动作识别器204联合为运行在所述计算单元208上的多个应用程序提供的。为应用程序206提供的所述共享动作控制服务包括动作分类,动作识别调整,以及保存和加载经由所述识别器产生器207创建的新的动作识别器。
本发明不局限于实施例100或200中描述的特定的硬件结构。例如,所述计算单元108和控制器102可以为可控制所述显示器103(比如,电视或投影仪)的智能手机。同样,所述计算单元108可以为一个标准的笔记本电脑,其连接监视器或电视作为显示设备103,一个控制笔可用作所述控制器102,网络摄像头可跟踪产生所述动作信号104的动作。在一个实施例中,所述计算设备108和网络摄像机可设置于动物或其他的玩具中,比如泰迪熊,当孩子与泰迪熊玩儿时,所述控制器可以在孩子的手中。其他应用程序可以包括敲打康复的医疗程序,在该程序中物理医疗师可以为在家里的患者创建新的动作控制方案来满足他们的个性化需求。
图3示出了本发明在一个实施例中的功能方框图300。所述动作信号304包括许多不同的信号,所述不同信号可以表示持有零个或多个动作传感装置302的终端用户301的运动或动作。所述动作信号304可以输送给识别器产生器305,还可以输送给动作感应应用程序308和识别运行时库307,其中所述动作感应应用程序308是可以由终端用户的动作控制的程序,比如视频游戏等。所述识别器产生器305响应所述动作传感装置302可建立通用专用动作识别器306。本发明的一个特征、优点和益处为所述终端用户提供一种能力去创建通用个性化专用动作识别器,所述通用专用动作识别器可用于识别各种不同类型的动作,而不仅是由手的大幅度移动产生的动作。
所述动作传感装置302包括可以捕获终端用户301的大范围运动的多个不同类型的设备。来自所述动作传感器302的未处理(raw)的动作信号被输送给适配器310,所述适配器310用多种方法(下文详细描述)处理未处理的动作信号以产生处理过的动作信号304。在此实施例中,所述识别器产生器305创建动作识别器306,所述动作识别器306可以识别各种类型的动作信号流304.
所述应用程序308直接与独立识别运行时库307交互或直接与内置于其内的识别运行时库交互,所述独立识别运行时库307在计算单元309中作为一种服务对所有应用程序都可用。
在此实施例中,动作信号源可以包括一个惯性传感控制器,其输出包括与现实空间的物理移动同步的按钮的按压或操纵杆的移动,其中所述按钮的按压和操纵杆的移动可以作为所述动作信号304的一部分。
在一个实施例中,动作信号源可以包括网络摄像机,其通过某些处理可以输出与所述终端用户的头、肩或躯干的图像平面有关的位置和方向信息,这些信息也可以作为所述动作信号304的一部分。
在其他实施例中,动作信号源还可以包含触摸屏上的痕迹,这些痕迹也可以作为所述动作信号304的一部分。其他相当然可能的示例也应当被考虑为在本发明的保护范围中。在本实施例中,一个终端用户301使用所述识别器产生器305创建专用个性化动作识别器306,所述动作识别器306可以响应包括各种数据类型的动作信号304的集合的每个成分。显示器303、识别运行时库307、应用程序308和计算单元309与实施例100和200中的对应的模块具有相似的功能。所述识别器产生器305执行如图4中描述的相似过程。所述识别运行时库307执行如图5中描述的相似过程。
图4示出了本发明在一个实施例中创建专用动作识别器的流程400。所述流程400可以通过软件(比如,图1中的识别器产生器105)、硬件或软硬件结合的方式实现。本流程400的一个特征、优点或益处之一在于为终端用户提供一种能力去在主机计算平台上产生鲁棒的专用动作识别器。
在步骤401中载入训练集。所述训练集包含一个或多个类,每个类表示共享相同类标签的动作信号的子集,其中每个动作信号用于描述终端用户的随时间的动作。根据终端用户执行的动作示例或终端用户选择的动作示例来完整地建立所述训练集。在实现时,所述动作信号可以为未处理的信号,也可以为处理后的信号。在描述所述流程400时,假设所述动作信号是被处理后的。
动作识别器结构要求知道所述训练集中所有动作信号之间的成对距离(pairwise distances)。所有成对距离都是需要的,但是只有一小部分成对距离需要计算,而其余的可以通过推断得出。计算和存储所述训练集的所有成对距离对典型主机计算单元来说是不现实的。
在步骤402中,在接收到所述训练集后,识别器产生器开始计算在训练集中所有动作信号之间的成对距离的最小可能子集。计算所述训练集的相同类的所有实质上不同的动作信号之间的成对距离。在一个实施例中,所述距离测量(或价值函数)是独特的时间卷曲测量(time-warp based measure),其为两动作信号的逐帧差别分配一些代价。对于图1B中的示例动作信号来说,其包括大概400帧数据,每帧包括四个浮点数,这个动作信号可能与另一个动作信号(比如300帧数据)进行比较。在所述距离测量时有几种代价成分,比如每个点的一阶导数、二阶导数和三阶导数的差分,随时间的不同敏感度,所有的这些成分都做不同的考量和结合。
在步骤403中,当接收到在步骤402中计算出的每类的成对距离,对训练集的每个类基于这些成对距离计算动作聚类(clusters of motions)。相同聚类中两个成员之间的最大距离作为每个聚类的宽度。推荐一个单独聚类代表。由于推断不在步骤402中计算的动作信号之间的成对距离接近等于对应聚类代表之间的距离,聚类的宽度将被最小化。
在步骤404中,计算剩余的不能被准确推断的成对距离。首先计算所有类中的所有聚类代表的成对距离,然后为可能互相混淆的任两个聚类中的所有成员计算成对距离。在步骤404的最后,所有成对距离要么被计算要么被推断出,随后所述流程400开始进入步骤405开始动作原型的选择。
第一次进入步骤405后,在所述训练集中的所有动作信号均被作为创建的动作识别器(比如在步骤415中的最终识别器)中原型的候选。无论所述动作分类器的容量如何,在训练集中每一类必须在所述动作识别器中有至少一个动作原型。每次进入步骤405后,均重新计算每个类的最佳候选原型。所述最佳候选原型是指在其类中的其他成员的分离度(degree of separation,DOS)降低最多的一个,下面将进行详细的描述。
在步骤405中一旦计算出每类中最佳候选原型,就需要在步骤406中进行测试以核查在步骤405中的原型选择是否为初次通过。如果是初次通过,则所述流程400进入步骤407,将每类中的最佳候选原型增加为步骤415中产生的动作识别器(最终识别器)中的原型。
如果原型选择不是初次通过(即步骤406为否),并且步骤411测试通过(比如,当前的每类的精确度和未完成的动作识别器处于均衡状态,以至于没有类的识别性能较第二差更差),则步骤412会选择当前最佳候选作为原型加入到步骤415中的所述最终识别器中。否则,在步骤414中,选择当前性能最差类的候选以作为下一个原型。
在流程400进入步骤408之前,步骤407、414和412是为了确定用于选作原型的候选。例如,给定候选的在步骤405中计算出的最佳分类距离被设置和存储为所述原型的一部分。
在步骤408中,如果达到所述容量,流程400进入到步骤415中以最终确定所述识别器,然后所述识别器产生器在步骤416中结束工作。如果还没有达到所述容量,将在步骤409中执行宽度核查。应当注意的是,在步骤415中产生的所述动作识别器完全由所述终端用户生成,而不局限于何种动作可以使用和终端用户如何去执行它们。
在步骤409中,执行宽度核查。如果所述剩余所有候选的分离度均为0,则核查成功。此时,不再向训练接401内增加候选以提高所述训练集401的预测性能。当此宽度核查通过时,给任意给定训练集自动设定推荐容量。
在所述宽度核查409为成功时,在步骤413,忽略已选择原型的影响,为每个剩余候选重新计算其所述分离度,随后控制所述流程400返回步骤405。这可以在创建动作识别器时,充分利用用户选定的容量。通过对所述训练集401的二次抽样选择下一组候选原型,其中此时所述训练集401中不存在已选择的原型。在所述最终动作识别器投入到实际应用中时,在第一次通过步骤413后加入的额外原型可以显著地提高所述最终动作识别器的识别性能。
当所述宽度核查失败时,根据步骤407、412或414获取的最新原型更新所有剩余候选的分离度,然后流程400返回到步骤405中。
在步骤415中最终确定了所述动作识别器后,流程400进入到问题检测和反馈的步骤418中。在一个实施例中,在流程400执行期间可能发现多个问题,它们会通过***显示器(如实施例100和200中的显示器)来汇报给所述终端用户。
图5示出了本发明在一个实施例中动作识别运行时库(比如图3中的识别运行时库307)执行动作识别的流程或程序500。本实施例的一个特征、优点或益处之一在于为所述终端用户提供一种能力去使用专用个性化动作识别器,所述个性化动作识别器是在鲁棒、灵活和有效的方式下产生的,这样可以使动作感应应用程序在较宽范围内使用。
在步骤502中通过选择和加载至少一个动作识别器来初始化所述识别运行时库(RTL)。初始化后,在步骤503中,根据每类的函数、每个动作信号的可能类型以及松弛度修改在所述动作识别器中的每个原型的分类距离。这样,终端用户可以控制分类性能,所述终端用户可以在不改变动作分类器的组成的情况下调整所述分类性能。
在步骤505开始分类之前,新的未处理的动作信号504输入到所述识别运行时库中。实际应用中,可以有多个不同的动作信号流,同时也有多个不同的计算线程505-516并列运行。例如,所述Nintendo Wii有8个动作传感控制器,每传感控制器产生可被并列识别的动作信号504。
在初始化所述动作识别器和接收到新的未处理的动作信号后,在步骤505中,作用于所述流程500的应用程序可以命令“开始分类”。所述应用程序和所述识别运行时库之间可以共享有数据缓冲器,所述识别运行时库在步骤505开始当前识别线程,所述当前识别线程对逐帧生成的动作信号504进行处理。每次对数据缓冲区进行更新后可能包含零个、一个或多个帧的未处理动作信号504数据。
在分类的开始阶段,在步骤506中,当前未处理的动作信号数据每次被处理一帧。在一个实施例中,通过自适应滤波完成所述处理,其中在进入步骤507之前,很多未处理动作信号数据都被概括为数据中的突出兴趣事件(highlightinteresting events)。这里的“兴趣”是对帧数据进行概括,其中所述运动的一个或多个组成成分的所有速度或加速度需要超过一定阈值,或者两个最后处理点之间存在足够时间。另外,请参见图1B所示,在开始样本114之前和在结束样本116之后的样本均被过滤掉。对于惯性数据来说,自适应滤波会对未处理动作信号数据产生50%-90%的压缩率。例如,对图1B中的示例动作信号来说,400帧的未处理输入信号可能被转换为40帧的处理输入信号,这样步骤507只需要访问40次。
在步骤507中,在步骤506中产生处理后的动作信号数据后,便可以更新所述动作识别器中每个剩余原型的运行距离(running distance)。所述距离度量与图4中步骤402中的相同。在一个实施例中,利用迭代动态规划方法来执行所述距离测量的增加更新。
在步骤508中,为每个剩余原型执行早期去除计算。所述早期去除计算用于根据给定动作信号504的当前运行距离判断所述最佳最后距离是否在所述原型的基于松弛度修改后的分类距离内。如果答案为否,则将所述原型从进一步考虑的原型中去除,直到所述应用程序的新“开始分类”信号重新开始新分类线程505-516。
在步骤509中,更新当前最佳预测。预测可以采取很多形式。在一个实施例中,预测是原型的序列表,所述序列表还包括每个原型的当前进度、预测的当前置信度以及所述动作信号的当前运行距离。这样,可在任何时间返回预测。
在步骤510中,如果没有剩余原型,则在步骤515中返回当前最佳预测,随后在步骤516结束线程。根据定义,这个预测可以为“未确定”或“未知”。
如果还有剩余原型,在步骤515中等到“结束分类”信号后,则控制所述流程500再次返回到步骤515。在这种情况下,步骤515返回的所述预测将是所述当前最佳预测509的函数,例如,它可以为当前最高排序剩余原型的类,它也可以是当前最佳预测中所有剩余原型的加权数。
如果没有等到结束分类信号,则在步骤512中检查是否有未处理问题。在一个实施例中,问题包括“所述终端用户的识别分数(看到的锁定得分)是多少”,“一个给定动作的当前进展如何”,“当前最佳预测的置信度多少”以及“混淆动作是什么”。如果有未处理问题,所述流程500进入步骤513,在此步骤中根据在步骤509中计算得到的最佳当前预测进行各种计算以解决所述未处理问题。步骤512后的两条路径都会返回步骤506去进行下一帧动作信号504的处理。
图6示出了本发明在一个实施例中创建动作识别器的流程或程序600,其中动作感应应用程序同时在使用所述创建的动作识别器。当用户执行动作感应应用程序(比如视频游戏)时初始化所述流程600。在流程600中,所述应用程序受控于用户创建的专用动作识别器,其中该专用动作识别器对终端用户来说是个性化的和独一无二的,在所述应用程序执行时同时创建和更新所述专用动作识别器。本实施例的一个特征、优点或益处在于所述应用程序可以很快的适应一终端用户,终端用户可以在所述应用程序中进行精确的个性化动作控制。
在步骤602中,加载已存在的动作识别器,所述动作识别器可以根据图4中的流程400创建,所述应用程序也可以预定义或预加载所述动作识别器。
在步骤603中所述用户根据需要移动一控制器。这可以为执行视频游戏的一个动作或简单地从一个位置移到另一个位置。由于所述控制器发生移动,在步骤604中则会接收到动作信号,所述动作信号输入到至少两个并行独立的模块:步骤605中的识别器产生器和执行在步骤607中的应用程序。
在步骤605中,利用所述动作信号建立新的动作识别器或更新已存在的动作识别器,其中所述动作信号最好是处理后的版本。当所述用户做新类型的动作并且没有动作识别器可以响应时,可以更新已存在的动作识别器以识别所述新类型的动作,或对应的创建一个新的动作识别器。当一动作识别器响应由所述终端用户做的动作时,则更新或增强所述动作识别器以使其对所述动作做出更好的响应。
在步骤606中,存储更新的或新产生的动作识别器。在一个实施例中,在步骤609中可以将所述新产生的动作识别器加载到与步骤605并列执行的步骤607中的应用程序中,将所述新产生的动作识别器与所述先前加载的动作识别器结合在一起以修整正在进行的动作识别进程。所述用户看着显示屏继续移动所述控制器以与所述应用程序进行交互。在步骤607中利用加载的动作识别器来识别所述用户的动作。随着所述应用程序和所述识别器产生器的进程,在步骤608中更新所述显示屏,具体的描述将在下面进行讨论。在一个实施例中,在创建所述动作识别器的过程中恰当的反馈是必不可少的。
在一个实施例中,步骤607中的所述应用程序可以嵌入有识别运行时库(比如图3中的307)或者具有识别运行时库的访问接口。在步骤607中的所述执行应用程序可以接收动作信号,接收来识别运行库的动作识别信号以及其他信息,并在步骤608中根据这些信息更新所述显示屏。
·3终端用户的专门个人化识别器产生器
本发明的一个实施例使得普通大众(换句话说也就是非所属领域的专业人员)可以创建专用个性化跨应用的动作识别器。为动态的人体动作建立鲁棒性的、能够识别一组预定义动作的动作识别器,所述预定义动作需要以特定方式执行,这是一项要求很有挑战性的任务,这需要具有很强背景知识并且耗费大量时间精力。为未预定义的能够以未预定义的方式执行的动作建立鲁棒性的动作识别器,更是远远超出当前技术,熟悉该领域的大部分技术人员都会对其前景畏缩,更别提普通大众了。现在,本发明优选的实施例可使得普通大众能够正确创建这种动作识别器。
为了使终端用户愿意和能够创建专用个性化识别器,所述识别器产生器应当具有以下功能:(a)终端用户动作设计问题的检测和反馈;(b)在主机单元上快速近似分类器构建;和(c)识别器参数的驱动数据确定。提供这些功能的详细情况将在下面的“创建专用动作识别器的终端用户控制”中进行讲述。
接着,所述动作识别器与一个识别运行时库(如图3中的307)一起具有以下功能:(a)随时最佳推测动作识别;(b)响应应用程序的随时消歧树反馈,和(c)分数锁定。这些功能的详细情况将在下面的“为所述动作感应应用程序提供及时反馈信息”中进行讲述。
再接下来,产生一个动作识别器,所述动作识别器具有较宽范围的输入,包括:(a)各种输入类型和设备,比如从三维动作数据,到按钮按压,到六维追踪路径等;(b)很宽范围的输出响应,包括双重动作、关联动作及其他识别形态等;和(c)一个为所述动作信号提供设备无关抽象的定义接口,这样所述识别运行时间库是与设备无关的。详细的情况将在下面的“广义识别”中描述。
·3.1创建专用动作识别器的终端用户控制
本发明的一个较佳实施例将产生专用动作识别器的能力传递给了终端用户,它是通过在运行时间终端用户应用程序中配置开发时间识别器产生器实现的,其中所述运行时间终端用户应用程序具有开发时间软件(development timesoftware)的所有功能。当所述识别器产生器的用户是终端用户,而非专业应用程序设计人员时,这两者之间会有很大的不同。例如,只有很少类型人的训练数据,所述终端用户接受很少控制,所述主机计算平台能力更少,动作识别器的创建必须在所述终端用户在时实现,脱机“批处理”形式的训练有许多缺点而不能成为现实中唯一的选择。原先可能必须由具有更多背景知识、技能和时间的研发人员才能够预先控制的参数,现在可以直接从所述数据中进行计算。例如,对于无法与给定的动作识别器匹配的动作,动作识别器必须能够给出“无法识别”或“无法确定”的反馈信息,由于专用动作识别器没有预定义允许动作所述动作识别器以“感觉正确”的方式为大多数终端用户进行动作识别。新的方法还讲述了在主计算平台上创建动作识别器,或者调整修复已有的动作识别器的方法。
·3.1.1终端用户动作设计问题检测和反馈
熟练的动作控制开发人员可能会得益于很多有效的反馈信息和一些采集工具,其包括:一系列调试工具;精细调整动作识别器偏差的控制参数;和帮助管理动作样本子集以创建不同训练和测试集合的工具等。然而对于不熟练的终端用户来说,这些大量的采集调试工具和控制按钮是不受欢迎的。对一个终端用户来说,很希望获得以下两种反馈信息:动作混淆的检测和反馈;用于提醒的视觉追踪。这两种反馈信息足够建立一个个性化专用识别器。
动作混淆的检测和反馈。参见图3所示,当终端用户通过所述识别器产生器305创建一个动作识别器306时,唯一不能够通过自动方式进行处理的错误类型是:一个动作设计的很糟糕并且需要改变。当终端用户动作的力量太小,无法被所述控制器302(亦即,其中的传感器)捕捉到时,或动作太短而不能产生可感觉到的动作信号304时,或这种强烈的动作导致所述302中的内部传感器“脱轨”(rail)或已达最大极限时,均会产生这种错误。在这些情况下,所述检测和随后的反馈均是明确的(straightforward)。所述终端用户必须通过修改他/她的动作设计来纠正这个问题。
例如当两个动作(如,两个接近垂直的剑砍:砍击180和砍击190)在动作信号空间距离非常近时,糟糕的动作设计会引起更多的挑战性的问题。这种问题的影响将会通过多种方式表现出来。
首先,所述动作可能会相互混淆,其中砍击180经常被错误分类为砍击190。当两个动作都经常与对方相互混淆时,错误分类可以是对称的。错误分类也可以是单方面的,例如砍击180经常会与砍击190混淆,但反过来不会。在这种情况下,在一个实施例中,要在识别器创建过程(程序400)中执行检测,该检测是通过从所述训练集合的子集中创建一个混淆矩阵来执行,处理所述混淆矩阵以寻找热点(hotspots)。
上面为一个示意的混淆矩阵。例如,在猛击这一行,表明在320个测试猛击中,299个被正确识别(所述猛击列),1个被错误地识别为旋转,10个被错误地识别为重复(Cuckoo),等等。一个热点是旋转行和猛击列,其表明猛击列错误地(不对称地)将42个旋转错误地分类为猛击。降低猛击列中的松弛度(slack)即可解决这个问题。另一个热点是猛击和***单元格。所述混淆矩阵记录(25和26)显示这些动作另一动作发生了混淆。在一个实施例中,给终端用户的反馈表现为一个警示,警告用户猛击和***这两个动作不能有效区分,需要对其中一个进行改变。
第二,更坏的情况是,所述动作可能没有与其他动作混淆,但是它们的原型的分类距离可能太小,使得很难成功执行任何一个动作。这种情况下,在创建所述识别器产生器的程序400中也会发生检测。在一个实施例中,在进行距离测量的402中,计算分类距离的总的期望分布,并且计算训练集合中所有成对距离的总体平均值。最后,计算每类分类距离的平均值,并与所述总的期望分布和总体平均值进行比较。当一个或多个终端用户动作的平均原型距离过小时,将产生一个警告,该警告排队等候显示给所述终端用户,以指示他们,他们的动作设计需要改变。
用于提醒的视觉追踪。一个典型的使用案例为:一个终端用户通过几个会话(sessions)与动作识别产生器305、动作识别器306和动作感应程序308进行互动,其中所述会话可能被分割成小时、天或星期。不幸的是,许多人的详细物理动作记忆能力非常差。例如,一个终端用户在星期一创建了一个在手机上浏览应用程序的动作识别器。当他们在周五再次回来使用时,他们可能已经完全忘记他们是怎么握持所述控制器的,或者他们执行怎样的动作表示允许他们浏览所述网络。
根据一个实施例,这里描述的方法是双重方法(two-fold)。第一个方法是,通过不断地修改下面的动作识别器,让其与记忆无关(或忘记它)。在适当的情况下,当用户试图执行一个动作并且接连失败两次时,他们会发现一个选项,该选项提示他们将所述最后动作增加到所述训练集中,并且在当前游戏中重新建立所述动作识别器。所述提示包括一个种类列表,该列表的从最可能类别开始到到最不可能的类别结束。通过与程序500到509中计算出的所述当前最佳预测(current best predication)相比较来确定每个类的可能性,如果哪一类的松弛度(slack)被增加,则选择那一类作为最适合的类。所述终端用户同意将该动作增加到所述训练集中,并且通过选择他们希望得出的标签来重建所述动作识别器。
第二个方法是,通过用户的随时间的实际跟踪运动的视觉显示来提醒所述终端用户。当***中的动作信号304多到足够提供追踪信息时,可以提供这样的显示。例如,在***中所述动作信号包括足够追踪控制器302的随时间的位置和方向的视频或惯性信号。在这种情况下,当所述终端用户询问所述识别运行时库307时,所述终端用户的先前动作以及储存于最可能类的种类列表中的最接近原型均被重建为追踪对象并且逐一在所述计算单元309的显示器上显示出来。两个动作中的不同点被突出显示出来,其给所述终端用户一个视觉方法来回忆他们的先前动作样本是什么。对于熟悉该领域的技术人员来讲,所述重建动作追踪所采取的具体形态与本发明是不相关的。例如,其可以是一个握着控制器的手,也可能是一个虚拟的握着一个箭头的棍状图形。
3.1.2快速、近似分类器创建
终端用户应用程序响应命令具有重大的意义。在一个实施例中,下面三种方法常被用于建立一个识别器,其几乎是最理想的,使用CPU和存储器资源最小,并且能够在任何时间返回一个近似识别器(例如,能在任意时间点,甚至在计算的中间,返回一个有效结果)。
具有随时响应的在线创建。当所述样本数据输入时,所述识别器产生器305可以以在线或非批处理的模式运行。在一个较佳实施例中,程序400使用在线创建模式,其中新的识别器通过示例基础基于一个示例不断被创建。这种在线创建模式很自然地用来处理一些实例中,在这些实例中用于训练的所有数据经常出现在与一个终端用户的一个会话中。这种模式是高度期望的,因为用户可以要求,并且在一个合理的平台上接收,最好的识别器在任何时间点给予当前数据。
自适应滤波。在***300中,所述动作信号304在它们被连接到所述识别器产生器305之前,在所述适配器310中通过自适应滤波对它们进行处理,这样只有信号中的感兴趣部分被保留下来。惯性数据的所述感兴趣部分包括,例如,什么时候线性的相对数量级或角加速度的变化超过一个动作的相邻样本的临界值,或什么时候一个或多个加速的轴线的相对数量级变化在某些时间段超过了临界值,或两个最后处理点之间存在足够时间。对于其他类型的动作信号,什么是感兴趣部分的概念几乎是相同的。优点在于(1)处理过的动作信号在长度上一般比较短(在一个实施例中达到原来的五分之一长),减少了与动作识别器的创建和使用有关的计算时间,和(2)因为在分类之前,所述信号中不相关的部分已经被移除,所以能够提高分类的精确度。
部分距离计算。如程序400中所述,最优的动作识别器的创建需要所述训练集合中动作信号之中的所有成对距离。计算和访问其占用多达99%的总记忆存储量和识别器创建所需求的CPU。在较佳实施例中,所有可能成对距离中仅有小部分的计算对于分类精确度没有显著的影响。大多数都是靠廉价的推断。所述结果计算为O(f(n/c)^2),其中f是经过适当过滤之后动作信号的平均长度,且c是所述识别器中分类或动作的数量。在特定实例中的优点是,终端用户等待的时间(以及接下来的电池消耗)比其他可能的情况要缩短大约几个数量级。
该方法(如程序400中的步骤402-404中所述)使用下面的度量空间的的一般特性:如果从A到B的所述距离(即,dAB)小,而dAC大,则dBC大。当所述识别器产生器305知道动作A和动作B是相同的类,而动作C不是相同的类,并且进一步知道dAB小,dAC大时,所述识别器产生器因为知道它不会与A、B类或C类的好的原型的选择有关,所以所述识别器产生器将不会再花时间去计算dBC。
利用这个方法的一个重要障碍是大多数距离函数对于时间序列数据很有效,但在用于定义度量空间时不够好。所以程序400的步骤403和步骤404中使用的基于前述特性的推断就会失败。具体来讲,所述三角不等式(dAB+dBC>=dAC)会失败。从概念上理解,这是因为我们的每一个距离计算-样本时间数量和动作轴数量,实际都发生在高维空间,然后被简化成了单一数值。
在一个实施例中,部分距离计算的方法通过计算三角不等式的可能失败的边界附近的足够多的额外成对距离,来修正该缺陷,以获取可能大致正确的具有较高可能性的结果。
产生的方法如下:(1)计算给定的类中所有成对距离中的一小部分;(2)抽取每个类中的一小组聚类,选择聚类(cluster)的质心,将随后的训练样本分配给其他类中最接近的聚类,或如果没有足够接近的聚类则产生新的聚类,这就要求计算聚类质心与每一个被检测聚类的样本之间的至少有一个成对距离;(3)计算所有类的所有聚类质心之间的所有成对距离;和(4)通过使用他们各自的聚类质心距离根据需求估计所有其他成对距离。当所述聚类的边界相交,或接近相交时,预示三角不等式更有可能失败。当那个代表距离不够大,来淹没所述三角不等式的失败时,则将计算所述两个各自的聚类的成员之间的额外距离。该方法在可控制地消除大量必需的成对(pair-wise)时间卷曲距离计算上是成功的,在偶尔次优原型选择的代价上是成功的。
·3.1.3识别器参数的驱动数据检测
在一个实施例中,识别器的创建用到三个参数:松弛度(slack);容量(capacity)和开始确定(start determination)。例如,在美国专利申请#11/486,997号的一个较佳实施例中,松弛度和容量都是研发人员可用的参数,所有用于训练动作都是通过按压按钮来区分的,这样则避免了需要用阈值对临界动作开始进行检测的情况。为了消除与终端用户在在识别器创建的技术细节上不必要的交互,自动设置这些参数则比较有利。
自动松弛度设置。参见图5所示,松弛度在程序500的步骤503中与每个原型的分类距离的乘数,来控制分类公差。用户数据、应用程序和动作集合的每一种组合都将导致分类距离的不同的最佳修正。在一个实施例中,每类的松弛度是在图4的步骤411中自动计算,其主要基于与下列因素有关的优化计算:1)使训练集合的不同子集的总体分类率最大;2)最小化每类分类率的差异;3)基于一个不相关的第二组测试动作数据,保持一个可接受的不确定的比率(rate);和4)对类别之间的混淆进行补偿(见下面所述的“混淆模型”)。步骤1和2在程序400中有详细描述。
在一个实施例中,在程序400的识别器创建过程中执行步骤3。正如图4中所描述,利用非统一的方式将原型增加到动作识别器中以首先将精力集中在最糟糕的动作上。在该阶段,每个原型的分类距离最初是基于一个从时间卷曲距离函数中导出的一个偏差建立的,并且随着处更多的数据被处理,将被分类性能所覆盖。如果在不确定的测试集合上使用新的动作识别器的不确定分类率超过了预设的不可接受的范围,则向上或向下调整单类的松弛度以将总体识别推回到可接受的范围内。所使用的测试集合可以用留一法(leave-one-out)直接从所述训练集合中建立。例如,通过去除对应于一种类型动作的一小组数据来创建一个新的训练集合,建立一个识别器,前述去除的动作通过该识别器作为一个测试集合。平均来讲,该动作有很高的比率被分类为不确定分类。
在一个实施例中,步骤4包含程序400的418中的混淆模型的计算。任何性能较差的分类的各自的单类的松驰度被递增地向上调整,然后经过测试,而降低那些通常与所述性能较差的分类相混淆的类别的松弛度。一旦单个类的偏差落入可接受的范围内,或者全体分类率超出了可接受的范围,则该阶段结束。
一个总结的混淆模型的一个例子如下。这里显示了“引导下落”(“all GuideDrop”)的高错误正比率,其显示所述分类距离对那些原型来说太高,且应该自动将松弛度设定为较低的一个类别来进行补偿。
Figure BDA0000047551510000241
容量自动设定。容量与给定的动作识别器中被允许的原型的数量线性相关。动作识别器中所述原型越多,则需要的记忆存储器和CPU越多。大致来讲,当容量从零增长到无穷大时,给定的应用程序将看到分类率快速增长、趋于平稳,并且在识别器与所述训练数据开始过匹配时,最终开始回落。因为其直接定义所述可接受的识别率(以及因此产生的识别***的总体成功或失败),所以控制容量对于任何给定的动作识别器都是必须的,并且,为有利于消除与终端用户在在识别器创建的技术细节上不必要的互动,容量为自动设置。
在程序400的405和409中所述的较佳实施例中,所述原型是基于一个独特计算措施选择出来的,所述计算措施被称为分离度(degree of separation)或DOS。如果一个更靠近它的不同类别中没有样本,给定候选原型给予同一类别的一个示例的DOS为0,如果更接近的不同类有N个样本,则DOS为N。对一个候选者来说,所述候选DOS是一个从给定分类中所有其他候选者中概括得到的一个被给予的(imparted)DOS。这是一种最佳的、快速地计算正确分类对不正确分类的比例的方法,其中将产生具有给定分类距离的候选者。在一个实施例中,所述容量自动设置为在程序400的409中所计算的所述第一和第二宽度数目之间的一半。暗含的,在结束过程中原型可能随后被移除,这样容量能够精确地反映所述动作识别器的状态。
自动开始确定(Automatic start determination)。开始阈值是一个超过它就可以确定控制器302正在移动的极限值(tolerance)(如图1B的点111和114),在该点上假定一个用于分类的动作已经开始。对于那些没有其他外来信号(如按下按钮,或应用程序中的“Go!”信号(即“不用按钮的信号”))来显示动作开始的实施例,启动阈值是至关重要的。在这些实施例中,任何输入动作信号流都需要被分割成片段以确定什么时候开始寻找一个动作,以及什么时候停止寻找一个动作。因为许多终端用户发现按钮事件很混乱和不自然,所以在一个应用程序中不需要一个开始按钮事件就能够侦测什么时候一个动作已经开始,是有很有帮助的。
在较佳实施例中,所述启动检测是通过在所述训练集合中建立一个启动分类器来计算的,其中所述训练样本储存的动作具有一些附加属性。第一,记录所述动作正式启动和的结束周围的数据的封套(例如,图1B中在114之前和116之后的样本)。第二,所述动作的正式启动已经通过额外的程序设定,其只在搜集信号训练时出现,例如一个游戏中的启动事件“Go!”等。许多启动分类器都是合适的,例如,检测一个动作的力量阈值,超过该阈值则表示动作正式启动。在一个较佳实施例中,启动分类器是围绕所述封套的用于将该封套与正式动作区分开的特征建立的,例如,加速的力量减去重力。在程序500的动作识别过程中,该程序的一个关键特征就是不需要在每一个已经正式启动的动作的绝对的第一帧进行检测“开始”。此外,因为数据附近的封套已经被追踪,特征能够追踪所述正式启动帧的任意一侧的几个样本,在事实已经经过几个样本之后才判断为启动也是可以接受的。在一个实施例中,因为所述识别器自己提供所述停止检测器,所以标记动作信号流(亦即分段)的“开始”和“结束”只需要明确标记动作的起始就可以实现。
·3.1.4示例
本发明从所述终端用户的角度来看可以采取多种方式。
例如,所述动作识别可以作为一种服务供所述计算单元309中的所有应用程序使用,也可以单独烧制于每个动作感应应用程序中。
例如,所述识别器产生器可以被建成所述计算单元上的单独应用程序,或者也可以烧制于所述动作控制服务层205中。
例如,所述识别器产生器可以一直在所述计算单元的后台运行,且在每个会话(session)后均能控制显示,在另一个应用程序完成时,为任何相关识别器更新所述反馈信息。
在本发明中很可能创建许多动作感应应用程序。
例如,在智能手机上选择的应用程序可以是烧制于所述计算单元208中的所述应用程序环境中的动作感应程序。所述终端用户能可以提供他要做的访问手机不同应用程序的每个不同动作的样本,例如在空中画一个心形来呼叫其伴侣,或画一个圆来呼叫浏览器以进行Google查询等等。
例如,通过识别使用者将所述控制器靠近或远离她的脸时来进行缩放。
例如,通过简单地调出终端用户创建的与一个应用程序一起装载成一个的识别器向计算单元的游戏中增加新的动作控制。
例如,终端用户可以通过为他们最喜欢的频道创建他们最喜欢的动作来浏览电视,而不需要为了打开频道76而输入一个7和一个6。
·3.2为动作感应应用程序提供即时反馈
终端用户希望应用程序,例如电脑视频游戏具有对于终端用户的输入,例如按下按钮或动作,立即和连续的作出反应的能力。动作感应***能够达到这种要求的挑战在于:一个标准的动作,例如网球中的对角线正手击球,可能需要获取数百帧的数据来执行(如图1b用了400帧),但是一个运行速度为每秒60帧的游戏,需要在5-8帧内就开始对该动作提供反馈。在图2所示的动作识别运行时库203为该应用程序提供一个用于反馈的识别标签之前,等待所有的数据都进入很明显是不合适的。许多现有的动作感应应用程序为避免这种情况采取的做法是避免使用专用动作控制。例如,一个单个动作(one-move)控制***就可以在一旦检测到任何一个动作时立即触发。由专用个性化动作识别器提供的动作控制对使用动作感应应用程序的终端用户作出快速反馈具有很明显的好处和优点。
·3.2.1随时最佳推测动作识别
“随时最佳推测(anytime best guess)”意味着,一个动作感应应用程序,在所述动作信号的仅仅一部分或前缀被看到后(如图1b中114和116之间的某个地方),在程序500的步骤509可以要求和接收当前最佳推测预测,计算出一个置信测量以预测当前部分动作是所述当前动作识别器306的每个类中的成员的可能性。所述置信测量(confidence measure)是所述当前最佳预测的一小部分,其中包括一系列标签和置信度(confidence)的排名列表。所述置信测量为部分进入动作数据与所述动作识别器里的最佳匹配原型之间的当前时间卷曲距离和所述原型的进度的函数。
要实现该目的一个重大的障碍在于:所述原型列表可能非常大,不可能不断更新当前最佳预测。在一个实施例中,克服这一缺陷的方法是基于程序500的508中所执行的早期去除法。将那些运行时间卷曲距离(running warpdistance)的太大以至于不可能参与随后分类的任何原型从进一步考虑的原型中去除。特别地,累计的代价(如时间和资源)随着所述原型和所述动作信号的长度而单调递增。当所述当前累计的代价超过所述原型和信号之间的阈值且增长得比所述原型的分类距离还大时,即便该信号的剩余部分匹配的很好,所述原型也没有机会去分类该动作信号。将所述原型的剩余部分的随后的代价处理为零则是过度保守的。可替代的,增加基于所述原型剩余大小的近似完美的匹配代价,如果所述累计代价加上所述附加价值不在分类距离之内则执行所述去除。也就是说,在下述情况下早期去除测试通过,并且去除所述原型:累计的代价+剩余的代价>分类距离。
早期去除的关键好处和特征是其能够为更多的游戏者随时进行最佳推测预测(best guess prediction)。随着时间的推移,由于剩余的原型持续减小,识别器创建和识别处理加度。例如,一个动作识别器开始动作识别时有200个活跃原型,到可能最后仅存有30个原型,意味着最终识别所占用的CPU资源只占最开始识别时所占用CPU资源的1/7。所述***不仅适用于对一个活跃动作设备进行识别,尤其适用于同时对多个动作设备302进行识别。
例如,任天堂的Wii同时有8个有效动作控制器。在大多数实施例中,这些控制器是在执行不同的动作的不同阶段。所述识别运行时库307可以是在处理一个动作控制器的开始阶段、在处理第二个控制器的结束阶段以及处理其他剩余六个控制器的中间阶段。根据早期去除,所述动作识别运行时库307以恒定的、大致可靠的(具有较高、可测量的可能性)管理两个或三个控制器的资源消耗同时管理8个控制器。
·3.2.2消除歧义树(Disambiguation tree)
随时最佳推测能够满足许多动作感应应用程序,而且很容易使用。但是,当动作在早期混淆时它们则可能失效。当终端用户在空中描绘一个“2”和“3”时,考虑到用于惯性传感器302的动作信号304看起来相同。在这种情况下,对于所述动作的最初50%-80%,不能简单地从所述数据中确定所述动作是2还是3。在这样的一个实施例中,由于“2”或“3”难以区分,所述应用程序可能不能够以及时勾画出2或者3。
然而,这并不意味着,对于动作传感应用程序没有信息上的反馈。事实上,所述应用程序可以且应当开始立即启动“2-3”共同部分的勾画动作,同时一旦有足够的信息时,则消除歧义完成所述“2”和“3”。下面的一个实施例的关键的特征就在于如何向所述应用程序提供所述“关联动作”或“混淆集合”信息来用于向终端用户及时提供反馈信息。
在一个实施例中,建立一个消除歧义树作为程序400中的反馈信息418的一部分,附加于所述识别器,并且能够在程序500的512中用于查询。本质上,可区分动作的动作识别器的所述消除歧义树是一个定向的非循环曲线。所述开始节点(如根节点)的所有混淆动作的完成状态为0%,这是因为此时这些动作还没有开始。每一个叶子节点是一个处于任何百分比完成状态的单独动作,这样能够安全地确定动作。例如,在完成状态为0%-8%的状态下除了数字1可以区分开,数字0-3都有可能被混淆。所述“0”可能在完成20%时从所述“2,3”中区别出来,而即便完成60%时所述“2”和“3”仍可能会混淆。根据不同的确定水平可能建立许多动作树。例如,在从叶子节点分离出来之前,一个是置信度(confidence)达到95%时动作消除的树,另一个是置信度达到80%时动作消除的树。当在步骤512中产生疑问时,考虑到当前的状态,作出的回应是所述最佳推测“关联”(joint)动作(如所述“2,3”动作)。
该信息有几种其他的好处,例如,其可以被一个动作感应应用程序用作一个反馈信息提供给终端用户的,来很好地帮助他们理解他们的动作设置,进而知道如何纠正它。例如,既然歧义消除树给出了哪一个动作的混淆时间有多长这样的信息,则对于那些渴望立即响应动作输入的终端用户,就可以准确地知道哪些动作需要被重新设计。
应用程序设计者可以将所述消除歧义树与预建动作识别器或专用识别器一起使用,即使动作被混淆也能立刻开始勾画,并且与代理服务器中的终端用户一起,帮助确保所述终端用户建立,符合应用程序早期勾画决定的专用动作识别器。
·3.2.3分数锁定
对于终端用户和所述动作感应应用程序来讲,第三种反馈的形式是,一个能够反映在一个动作识别器中,当前动作信号与一个动作匹配程度的分数或一个测量结果。该信息可以帮助所述终端用户改进和记忆,且能够帮助应用程序评价所述用户的成绩。一个比较简捷的方法是,将所述输入动作信号与所述最佳原型进行匹配,然后给出一个所述当前动作在所述原型的分类距离内多远的百分比。该方法比较痛苦的是每次所述终端用户移动时,很可能要将一个不同的原型将作为计分的基础,所述分数只是在原来分数上增加或降低,而不会考虑终端用户距离上一个原型接近了多少,因此丢失一些关键信息,如果能向终端用户提供一种更稳定的记分方式将是很有益的。
在一个实施例中,为帮助提醒和训练所述终端用户,所述应用程序206要求所述终端用户选择一个他/她想执行的更好的动作。所述应用程序然后要求所述终端用户在该动作上执行几个尝试,并且从中找到这些尝试最接近的原型,并将其作为“黄金”原型。从该点所述应用程序进入一个导航会话(guidancesession),其中所述终端用户执行该动作,并且在每次成绩之后,所述应用程序根据唯一的黄金原型对所述动作进行计分。
·3.2.4示例
例如,电脑视频游戏应用程序或***应用程序206可以利用所述随时最佳推测分类对终端用户的动作立即开始进行勾画。
例如,所述消除歧义树及时地告诉所述应用程序最早的点,什么时候是安全的可以开始勾画一套特定的动作,什么时候是安全的可以开始进行一个单一动作。
例如,那些最初混淆的动作应该被转化成共享相同开始的游戏动画。所述应用程序则能够在所述终端用户和所述消除歧义树的帮助下获得加强。
例如,电脑视频游戏应用程序或***应用程序206可以使用所述锁定记分对所述终端用户做出的动作的好坏程度来计分,首先给予所述终端用户一些“测试实践”以选择所述黄金原型。
例如,对于一个计算视频游戏或***应用程序206,所述消除歧义树能够识别什么时候进行早期开始勾画是有用的,以及对于混淆的动作,什么时候开始进行中间勾画。
·3.3广义识别器
本发明关注的是针对终端用户的专用的个性化动作识别器,所述动作识别器对来自于手持控制器的惯性感应器的动作信号304没有目的或实施的特别限制。动作识别器适用于很广范围的输入信号。将额外的独立的数据流增加到所述有效的动作信号中可以提高识别器的效用。例如,一个完整的动作控制***可以捕捉人体动作控制的主要元素,其包括来自手持控制器的一组足够的惯性信息(如,三维螺旋仪和三维加速计),同一控制器上的LED、按钮和操纵杆输入,以及每个玩家的头、肩和肘的位置和方向信息。所述惯性信息用于追踪每一个控制器的位置和方向。总共有十二个惯性数据流,十二个视频相关数据流,以及所述按钮、LED和操纵杆的几个数据流。许多动作敏感应用程序可以与它们的终端用户以很宽广的形式交流。
·3.3.1各种各样的输入类型和设备
在一个实施例中,所述装置302为所述识别器产生器提供转化为所述动作信号304的数据,所述装置302包括:用于在触摸屏上进行二维或三维画图的触针或手指;手持控制器上的按钮、D-pad控制器、触发器以及模拟的棍棒;嵌入手持控制器中的独立控制惯性传感器;视频摄像机;测量仪(scales);麦克风;以及其他可以追踪人体动作的各种元素的其他设备。达到上述目的的最大障碍是怎样处理不同的数据类型以执行识别以及怎样将所述不同的数据流登记到一起以获得一个类似的识别“感觉”。
在一个实施例中,如图3中的310中,在早期处理阶段,所有输入动作信号被转换为伪线性加速度、伪角速率、和伪按钮按压。例如,从线性加速计的输出到伪线性加速度的映射是1比1;从控制器上的模拟触发器的输出到伪线性加速度的映射接近1比1;以及从麦克风的输出到伪角速率的映射是比较棘手的,需要引入隔离频率成分。麦克风输入的噪音也将大体上被视为线性加速度或角速度和每一频率成分的集合(这个粗略估计值在许多应用程序环境中足够识别许多声音和喉咙的“姿态”)。
所述***300中的程序400中的所述识别器产生器和程序500中的所述运行时库都以相同的方式使用所述动作信号304。在输入给所述识别器产生器或运行时库之前,每个惯性相关、视频相关和位置相关的数据流首先被转换为速率或加速度。一个关键的好处是不需要基于位置数据进行识别。即使摆出相对于起始点在位置上有改变的姿势,甚至改变很多且很频繁,这样遮蔽了所述兴趣点,但是在对所述位置数据经过自适应滤波后仍可以得到所述兴趣点或数据。
然后,将所述动作信号304的一些或所有上述转换后的惯性、视频和位置成分通过所述识别框架。例如,两个手中的控制器的十二个惯性信号可以组成为十二成分动作来形成一个训练集。如程序400中所述,可以通过基于时间卷曲距离(time warp distance)选择原型,并根据所述原型创建一个动作识别器。然后,所述动作识别器通过计算与所述原型的时间卷曲距离来对进来的新的十二成分动作来进行分类,再次如程序500中所述。
所述剩下的信号通常由按钮按压和操作杆推动组成。按键按压(向上或向下跳动)不会被过滤掉,其可以触发自适应过滤的兴趣时间点。在过滤等级上,以同样的方法对对待操纵杆输入与惯性输入。
在创建和使用动作识别器过程中无论何时需要时间卷曲距离计算时,这些信号被不同对待。在一个实施例中,按钮脉冲将会以二进制的形式记录,例如,如果所述“a”按键在所述动作识别器中被按下,即使所述动作信号的剩余部分有很好的匹配,如果在输入数据流中没有输入一个“a”,也可能导致识别失败。按下“b”将不给信任。
此外,距离度量的检查输入信号中的时间漂移(称之为时间卷曲)的能力被调低和修改,这样这些信号需要比所述实际的物理动作匹配得更仔细以达到所述相同的识别率。
特别地,在一个实施例中,用一个与松驰度相似的概念来改变时间卷曲对特定类型的动作信号的影响。松驰度是一个将动作与原型进行比较时,使得动作更容易识别或更难识别的分类距离的特定类别调节器。类似的道理,“弹性”是一个将动作与原型进行比较时,控制向前或向后移位信号的相关代价的所述动作信号一部分的调节器。特别地,惯性信号的所述弹性是相对高的,举个例子,在其对所述时间卷曲记录造成很大影响之前,在X加速度上的尖峰信号能够在原型和输入动作之间移位很多。按钮按压的弹性通常都非常低。然而,在像这种混合动作信号的实施例中,所述时间卷曲距离函数是由一个或多个成分组成的,其中每个成分对随时间移位信号可能有不同的敏感度。
3.3.2识别输出形态
对动作敏感应用程序来讲,期望有几个识别输出形态,尤其是当输入信号有多种形态时。最基本的是所述动作识别器306去识别用户手持的惯性传感控制器302的所述动态动作。在一个实施例中,所述动作识别运行时库307能够识别同时独立动作(“并行的动作”)、同时非独立动作(“关联动作”)和静态姿态。所有这些能力,都是终端用户期望一个动作传感应用程序能够具备的能力。
在并行的动作时,所述动作信号304来源于两个或多个独立的动作源302,例如一个动作源是所述终端用户左手中持有的惯性传感控制器,另一个是右手中的控制器,以及第三个是所述终端用户脸的位置和方向。一种比较有用的识别形态是,当两只手执行一些动作而与此同时头在执行另一些动作时,对这中情形进行识别。例如,当所述终端用户正在点头,而他们的左手产生一个正方形动作而右手产生一个圆形动作时,对这种情形进行识别。只要所述动作同时发生,且只要每个动作执行的达到标准,所述动作识别运行时库应该就能识别所述并行的动作。在一个实施例中,上述识别可以通过创建三个独立的动作识别器来实现,这三个动作识别器同时运行,一个用于左手、一个用于右手以及一个用于头部。在另一个实施例中,并行动作识别是通过为并行动作中的每一个同时动作设置一个动作识别器来实现,然后允许所述应用程序提供组合结果。
关联动作包括两个或多个独立动作源302。关联动作识别不同于并行动作识别在于:所述动作不能够单独获得。这里以向针中穿线为例进行介绍。为了成功,两只手必须一起工作以握住针并将线穿过针的针眼。显然,如果一只手拿起针然后将针放下,然后利用另一只手努力的穿线,最终必将会失败。例如,在一个游戏应用程序中,所述终端用户可能被要求一只手猛推他们的盾牌,同时另一只手水平挥砍以完成特定的攻击。如果时间不正确,他们则失败。在一个实施例中,关联动作识别是通过将分离的动作源302结合到一个联合动作信号中,并且为结合的数据流产生一个动作识别器来实现。因此,举例来讲,带有三维加速计和三维螺旋仪的两个控制器从识别***的视角这点看就有效地变成了一个十二维控制器。
静态姿势是第四种识别形态,其中不关注所述动作的动态路径,而只关注所述终端用户静止的位置。提供上述的能力是很简单的,简单地包括从所述动作信号304中剪下恰好是所述姿势两侧的几帧的时间序列数据,并且运行所述识别***就可以了。
·3.3.3设备无关识别(Device-independent recognition)
一个优选的实施例中为应用程序建立一个固定应用编程接口(API)(标准设备无关动作数据API),其是从提供所述动作信号304的所述装置302的详细结构中抽象概括出来的,并且提供一个注册接口,通过该接口一个新设备的制造者或分销商或用户能够向***提供该动作传感装置的足够资料。这对于应用程序研发者是重要部分,零碎设备越少,对于给定的动作敏感应用程序来说抽象平台越广。所述终端用户可间接地享受到所述API的好处,当他们与动作敏感应用程序互动时,他们能够利用更广范围的输入设备。然而,应当清楚的是,其关键的好处和优点是可以有更多的所述动作敏感应用程序能够在所述平台上应用。
有许多不同的具有很宽范围规格、误差特性和能力的惯性传感设备和视频录制设备。为一个在不同相关位置1的不同设备,基于数字或代码操作具有在位置0的惯性传感器的动作传感设备,而所述数字或代码是针对具有在不同位置1的传感器的动作传感设备,在许多情况下会引起严重的障碍。
在一个实施例中,为了识别,所述动作信号304经过处理去除了许多特定设备特征以达到合理的范围内,一种类型的动作传感设备可以用于创建一个动作识别器,第二种类型的动作传感设备可以在游戏的过程中使用。例如,对于一个宽范围的加速计,如果知道所述最大敏感性和范围,并且知道所述传感器在所述刚性控制器本体内的各自位置,在两个不同动作传感设备的输出可以相互映射,不存在足够信息丢失以致于影响识别。
在通用动作控制环境下,设备无关性也必须进行追踪。一个示例的任务是追踪所述动作传感设备的一些可见部位的位置和方向,这样所述追踪结果可以用做动作识别的输入。当追踪一个具有已知传感器位置的已知设备上的一个已知位置时,一个标准的方法是随着时间的推移追踪所述传感器的位置,然后,在向用户报告结果时,报告所述控制器刚性本体上的已知可见点而不是所述传感器的实际位置。例如,如果所述传感器在所述控制器的体积的中心,首先追踪所述质心的位置和方向,然后计算所述可见点的位置如下:Pos-orientation*vecAcc,其中Pos是所述惯性传感器在宇宙框架内被追踪的位置,orientation是所述控制器的方向,vecAcc是与我们正在定位的可视点相关的惯性传感器的位置。
一个更加有利但富有挑战的问题是,当产生所述识别器的所述动作传感设备的特性与正在被识别的动作传感设备不同时,使用一个不变的动作识别器(换句话说,将在位置1的惯性传感器的数据当做是在位置2产生的)。由于惯性传感器噪音太强,在实践中,转换数据的简单方法在实践中通常会失败。接下来的解决传感器噪音的方法通过标准动作数据API进行设备无关识别是可行的。下面的一段伪代码显示了修正来自于一个不在所述质心的传感器的惯性读数的步骤,如果所述物体是一个刚性体,则不需要修正其角速率,所述角速率数据被用于估计在所述质心的测量读数,其具体如下:
LX=accX;
   LY=accY;
LZ=accZ;
    //Subtract out tangential effects of rotation of accelerometers around center of mass
    LZ-=aaX*yOffset;
    LY+=aaX*zOffset;
    LX-=aaY*zOffset;
    LZ+=aaY*xOffset;
    LY-=aaZ*xOffset;
    LX+=aaZ*yOffset;
    //Centripetal acceleration,move back to acceleration at center of mass
    LX+=xOffset*(               avY*avY+avZ*avZ);
    LY+=yOffset*(avX*avX+               avZ*avZ);
    LZ+=zOffset*(avX*avX+avY*avY               );
    //Compensate for gyroscopic effects
    LX-=avX*(                  avY*yOffset+avZ*zOffset);
    LY-=avY*(avX*xOffset+                  avZ*zOffset);
    LZ-=avZ*(avX*xOffset+avY*yOffset                  );
Keys:accX,accY,accZ-linear accelerations measured along each axis
at sensor position
        avX,avY,avZ-angular velocities measured around each axis
        aaX,aaY,aaZ-angular accelerations calculated around each axis
        xOffset,yOffset,zOffset-physical separation between
accelerometers and center of mass
        LX,LY,LZ-calculated linear accelerations for center of mass
Improvements to account for sensor noise:
  1)In practice we find measuring angular acceleration over multiple
periods of sensor data gave smoothed estimates that helped reduce the
effect of noise on the calculated linear accelerations.The number of
readings used varied according to the sampling rate and noise
characteristics of the particular gyroscopes.
    dt=history[endIndex].time-history[startIndex].time;
    aaX=(history[endIndex].avX-history[startIndex].avX)/dt;
    aaY=(history[endIndex].avY-history[startIndex].avY)/dt;
    aaZ=(history[endIndex].avZ-history[startIndex].avZ)/dt;
  2)Angular acceleration was reduced when the corresponding angular
velocity was small.(Most acceleration was found to be a result of noise in this case)
    //If angular velocity is small,angular accelerations may be due
primarily to the
    //gyro readings jumping between values,yielding jumps of up to
about 5 rad/sec^2
    if(reduceAA)
    {
       real const aaReduction=5.0f;//Reduce aa this much at zero
angular velocity(rad/sec/sec)
       real const smallAngularVelocity=0.5f;//Don′t adjust
accelerations if angular velocity above this value(rad/sec)
       moveTowardsZero(aaX,asReduction*(smallAngularVelocity-fabsf(
avX))/smallAngularVelocity);
       moveTowardsZero(aaY,aaReduction*(smallAngularVelocity-fabsf(
avY))/smallAngularVelocity);
       moveTowardsZero(aaZ,aaReduction*(smallAngularVelocity-fabsf(
avZ))/smallAngularVelocity);
   }
例如,如果所述动作设置要求很高的力量,而所述加速计不能显示很高的力量时,所述映射会失败。在两个设备测量的数据实质上很不同时,所述映射也可能会失败。
例如,没有试图将操纵杆推动映射到一个加速计上的点。然而,在合理的范围内,从一个成分到另一个的简单映射可以从硬件细节中抽象脱离出来,其在很多情况下允许设备交叉识别服务。所述动作信号标记有产生它们的动作设备。这允许所述识别运行时库将给定的动作识别器306映射到产生当前待分类动作信号304的动作传感设备上,这种映射是有用的。
·3.3.4示例
例如,输入可以包括产生于平板电脑或触摸屏的二维痕迹的,并且能够随意与按钮按压相结合的动作信号304。
例如,上述输入和输出的较宽范围允许用户利用他们的上肢去驾驶(想象摆动雪橇滑下斜坡)、闪躲、逃避、阻止、跳、拉和推他们在电脑视频游戏中相应的角色。例如,动作识别能将玩家定位到游戏中任何形式的化身,例如猩猩、蚂蚁、蜜蜂等。主要障碍不再是控制技术,而是创造性的限制。
例如,输入信号可以来自于两个或多个人,并且相互关联,这样他们必须得所述两个用户在相似的时间以互补的方式执行成对的动作,如跳舞。
例如,输出形态包括使用所述动作识别器准确地做出终端用户动作的预测。显然地,早期最佳推测(best guess)和早期动画反馈是预测用户动作的一个非常特定的应用。事实上,该能力是一个普通目的动作预测能力,其可用于许多效果,例如在游戏中假装读取用户的思想。
上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。

Claims (20)

1.一种利用多个数据流进行动作识别的方法,其特征在于,其包括:
处理单元接收来自至少一个动作传感装置的具有至少两种成分输出的动作信号,所述动作传感装置包括惯性传感器和非惯性传感器;
将所述成分输出转换为与设备无关的动作信号;
利用至少一个动作识别器进行动作识别以对所述动作信号分类,其中根据用户创建的动作信号的训练集构建所述动作识别器,所述动作信号的训练集包括表示在一段时间内执行的至少一种类型的动作的一组动作信号,自动确定构建所述动作识别器所需要的所有参数;和
将所述动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力。
2.根据权利要求1所述的方法,其特征在于:所述非惯性传感器包括:所述动作传感装置上的按钮、摇杆或触发器;所述动作传感装置上的一个或多个触摸屏传感器;用于跟踪所述用户的局部身体的位置和方向的一个或者多个视频摄像机;和,一个或多个麦克风。
3.根据权利要求1所述的方法,其特征在于:所述方法还包括:根据一个动作识别器产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
4.根据权利要求1所述的方法,其特征在于:所述方法还包括:基于时间卷曲距离选择原型,这些原型用于创建一个或多个新的动作识别器,其中所述利用至少一个动作识别器进行动作识别以对所述动作信号分类包括:通过计算响应所述动作传感装置的所述一个或多个新的动作识别器中的各个原型的时间卷曲距离对所述原型进行分类。
5.根据权利要求1所述的方法,其特征在于:所述处理单元包括一个识别运行时库,所述识别运行时库使一个弹性参数与每个成分输出相关,随后的时间卷曲相关分数是针对所述弹性参数的。
6.根据权利要求5所述的方法,其特征在于:所述识别运行时库用于识别所述动作传感装置的同时独立动作、同时相关动作和静态姿态。
7.根据权利要求1所述的方法,其特征在于:所述方法还包括:将所述动作识别器应用于所述动作信号以建立响应另一动作传感装置的广义动作识别器。
8.一种利用多个数据流进行动作识别的方法,其特征在于,其包括:
处理单元装载一组动作识别器,所述动作识别器通过使用第一动作传感装置来预先创建,第一动作传感装置包括第一组传感器;
所述处理单元接收来自第二动作传感装置的具有至少两种成分输出的动作信号,第二动作传感装置包括第二组传感器,第二组传感器与第一组传感器部分不同;
将所述成分输出转换成与设备无关的动作信号;和
将动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力。
9.根据权利要求8所述的方法,其特征在于:所述方法还包括:利用所述广义动作识别能力根据所述动作信号确定一个最终动作识别信号。
10.根据权利要求8所述的方法,其特征在于:所述方法还包括:所述广义动作识别能力响应一个动作识别器产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
11.根据权利要求9所述的方法,其特征在于:所述方法还包括:基于时间卷曲距离选择原型,这些原型用于创建一个或多个新的动作识别器,其中所述将动作识别器应用于所述与设备无关的动作信号以提供广义动作识别能力包括:通过计算响应第二动作传感装置的所述一个或多个新的动作识别器中的各个原型的时间卷曲距离对所述原型进行分类。
12.根据权利要求9所述的方法,其特征在于:第一与第二动作传感装置的描述人体动作的能力不同。
13.根据权利要求12所述的方法,其特征在于:所述处理单元包括方便新的动作传感装置注册的接口,所述接口告知所述处理单元关于新的动作传感装置的足够资料,所述新的动作传感装置将用于所述广义动作识别能力。
14.根据权利要求8所述的方法,其特征在于:还存在有第三动作传感装置,两个用户分别持有第二和第三动作传感装置,第二和第三动作传感装置输出的动作信号是互相关的以使得所述两个用户在相似的时间以互补的方式执行成对的动作。
15.一种利用多个数据流进行动作识别的***,其特征在于,其包括:
装载有一组动作识别器的处理单元,所述动作识别器通过使用第一动作传感装置来预先创建,所述处理单元接收来自第二动作传感装置的动作信号,第二动作传感装置产生描述用户的动作的惯性传感信号和其他传感信号,其中来自第二动作传感装置的动作信号包括所述惯性传感信号和其他传感信号;
其中所述处理单元将所述惯性传感信号和其他传感信号转换成与设备无关的动作信号,响应第二动作传感装置将所述动作识别器应用于所述与设备无关的动作信号以提供广义动作识别服务。
16.根据权利要求15所述的***,其特征在于:所述处理单元利用所述广义动作识别服务根据所述动作信号确定一个最终动作识别信号。
17.根据权利要求16所述的***,其特征在于:所述处理单元将所述惯性传感信号和其他感应信号中的每一个转换成伪线性加速度、伪角速度或伪按钮信号中的一个或多个。
18.根据权利要求15所述的***,其特征在于:第一动作传感装置与第二动作传感装置的灵敏度不同。
19.根据权利要求15所述的***,其特征在于:所述处理单元包括方便新的动作传感装置注册的接口,所述接口告知所述处理单元关于新的动作传感装置的足够资料,所述新的动作传感装置将用于所述广义动作识别服务。
20.根据权利要求15所述的***,其特征在于:所述广义动作识别服务响应一个动作识别器产生所述动作信号的连续识别信号,其中所述动作识别器包括一组原型,在产生所述连续识别信号时并未全部使用对应动作识别器中的模型。
CN2011100427130A 2010-02-22 2011-02-22 个性化动作控制的***和方法 Expired - Fee Related CN102087712B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/709,520 2010-02-22
US12/709,520 US20110044501A1 (en) 2006-07-14 2010-02-22 Systems and methods for personalized motion control

Publications (2)

Publication Number Publication Date
CN102087712A true CN102087712A (zh) 2011-06-08
CN102087712B CN102087712B (zh) 2013-04-24

Family

ID=44099511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100427130A Expired - Fee Related CN102087712B (zh) 2010-02-22 2011-02-22 个性化动作控制的***和方法

Country Status (3)

Country Link
EP (1) EP2362325A2 (zh)
JP (1) JP2011170856A (zh)
CN (1) CN102087712B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902352A (zh) * 2011-06-23 2013-01-30 艾利维公司 运动控制作为控制装置
WO2013159282A1 (zh) * 2012-04-24 2013-10-31 北京英福生科技有限公司 个性化自学习识别***及方法
CN104021788A (zh) * 2013-03-01 2014-09-03 联发科技股份有限公司 声控装置和声控方法
CN104115097A (zh) * 2012-02-15 2014-10-22 英特尔公司 触摸屏装置的自动化感知质量评估
CN104781787A (zh) * 2012-11-19 2015-07-15 高通股份有限公司 用于功率有效分类的循序特征计算
CN105787468A (zh) * 2016-03-24 2016-07-20 深圳市阿尔法通讯技术有限公司 一种捻珠动作的识别方法及其***
CN106062681A (zh) * 2013-11-08 2016-10-26 泰恩河畔纽卡斯尔大学 通过关联触摸输入的加速度来对触笔进行歧义消除
CN106067001A (zh) * 2016-05-27 2016-11-02 快快乐动(北京)网络科技有限公司 一种动作识别方法及***
CN106548503A (zh) * 2016-10-19 2017-03-29 华东师范大学 一种基于命令流三维角色的动画合成方法
CN106648120A (zh) * 2017-02-21 2017-05-10 戴雨霖 基于虚拟现实和体感技术的火灾逃生训练***
CN107157488A (zh) * 2017-06-28 2017-09-15 重庆金康特智能穿戴技术研究院有限公司 一种基于智能穿戴设备的监控和矫正儿童多动症***
CN108073890A (zh) * 2016-11-14 2018-05-25 安讯士有限公司 视频序列中的动作识别
CN108780519A (zh) * 2016-03-11 2018-11-09 奇跃公司 卷积神经网络中的结构学习
CN109640640A (zh) * 2016-06-08 2019-04-16 联邦科学和工业研究组织 监测牧草摄取量的***
CN109891364A (zh) * 2016-10-25 2019-06-14 索尼公司 信息处理装置、方法和程序
CN110462629A (zh) * 2017-03-30 2019-11-15 罗伯特·博世有限公司 用于识别眼睛和手的***和方法
CN110689041A (zh) * 2019-08-20 2020-01-14 陈羽旻 一种多目标行为动作识别预测方法、电子设备及存储介质
CN111376910A (zh) * 2018-12-29 2020-07-07 北京嘀嘀无限科技发展有限公司 用户行为的识别方法、识别***及计算机设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN203252647U (zh) * 2012-09-29 2013-10-30 艾利佛公司 用于判定生理特征的可佩带的设备
KR102564468B1 (ko) 2016-02-11 2023-08-08 삼성전자주식회사 경로 정보를 제공하기 위한 전자 장치 및 방법
WO2018069981A1 (ja) * 2016-10-11 2018-04-19 富士通株式会社 運動認識装置、運動認識プログラムおよび運動認識方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140562A1 (en) * 2005-12-21 2007-06-21 Michael Linderman Recordation of handwriting and hand movement using electromyography
US20080085048A1 (en) * 2006-10-05 2008-04-10 Department Of The Navy Robotic gesture recognition system
US20090085864A1 (en) * 2007-10-02 2009-04-02 Gershom Kutliroff Method and system for gesture classification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140562A1 (en) * 2005-12-21 2007-06-21 Michael Linderman Recordation of handwriting and hand movement using electromyography
US20080085048A1 (en) * 2006-10-05 2008-04-10 Department Of The Navy Robotic gesture recognition system
US20090085864A1 (en) * 2007-10-02 2009-04-02 Gershom Kutliroff Method and system for gesture classification

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Robotics and Biomimetics, 2007. ROBIO 2007. IEEE International Conference on》 20071218 Weiwei Wan et al. 《A hybrid HMM/SVM classifier for motion recognition using muIMU data》 115-120 1-20 , *
GUANGYI SHI ET AL.: "《Towards HMM based human motion recognition using MEMS inertial sensors》", 《ROBOTICS AND BIOMIMETICS, 2008. ROBIO 2008. IEEE INTERNATIONAL CONFERENCE ON》, 25 February 2009 (2009-02-25), pages 1762 - 1766 *
WEIWEI WAN ET AL.: "《A hybrid HMM/SVM classifier for motion recognition using μIMU data》", 《ROBOTICS AND BIOMIMETICS, 2007. ROBIO 2007. IEEE INTERNATIONAL CONFERENCE ON》, 18 December 2007 (2007-12-18), pages 115 - 120 *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902352A (zh) * 2011-06-23 2013-01-30 艾利维公司 运动控制作为控制装置
CN102902352B (zh) * 2011-06-23 2016-06-15 艾利维公司 运动控制作为控制装置
CN104115097A (zh) * 2012-02-15 2014-10-22 英特尔公司 触摸屏装置的自动化感知质量评估
CN104115097B (zh) * 2012-02-15 2017-06-09 英特尔公司 触摸屏装置的自动化感知质量评估
WO2013159282A1 (zh) * 2012-04-24 2013-10-31 北京英福生科技有限公司 个性化自学习识别***及方法
CN104781787B (zh) * 2012-11-19 2019-05-21 高通股份有限公司 用于功率有效分类的循序特征计算
CN104781787A (zh) * 2012-11-19 2015-07-15 高通股份有限公司 用于功率有效分类的循序特征计算
US10133329B2 (en) 2012-11-19 2018-11-20 Qualcomm Incorporated Sequential feature computation for power efficient classification
US9691382B2 (en) 2013-03-01 2017-06-27 Mediatek Inc. Voice control device and method for deciding response of voice control according to recognized speech command and detection output derived from processing sensor data
CN104021788B (zh) * 2013-03-01 2017-08-01 联发科技股份有限公司 声控装置和声控方法
CN104021788A (zh) * 2013-03-01 2014-09-03 联发科技股份有限公司 声控装置和声控方法
CN106062681A (zh) * 2013-11-08 2016-10-26 泰恩河畔纽卡斯尔大学 通过关联触摸输入的加速度来对触笔进行歧义消除
CN108780519B (zh) * 2016-03-11 2022-09-02 奇跃公司 卷积神经网络的结构学习
CN108780519A (zh) * 2016-03-11 2018-11-09 奇跃公司 卷积神经网络中的结构学习
CN105787468A (zh) * 2016-03-24 2016-07-20 深圳市阿尔法通讯技术有限公司 一种捻珠动作的识别方法及其***
CN106067001B (zh) * 2016-05-27 2019-06-11 快快乐动(北京)网络科技有限公司 一种动作识别方法
CN106067001A (zh) * 2016-05-27 2016-11-02 快快乐动(北京)网络科技有限公司 一种动作识别方法及***
CN109640640B (zh) * 2016-06-08 2022-11-25 联邦科学和工业研究组织 监测牧草摄取量的***
CN109640640A (zh) * 2016-06-08 2019-04-16 联邦科学和工业研究组织 监测牧草摄取量的***
CN106548503B (zh) * 2016-10-19 2019-07-05 华东师范大学 一种基于命令流三维角色的动画合成方法
CN106548503A (zh) * 2016-10-19 2017-03-29 华东师范大学 一种基于命令流三维角色的动画合成方法
CN109891364A (zh) * 2016-10-25 2019-06-14 索尼公司 信息处理装置、方法和程序
CN109891364B (zh) * 2016-10-25 2022-05-03 索尼公司 信息处理装置、方法和程序
CN108073890A (zh) * 2016-11-14 2018-05-25 安讯士有限公司 视频序列中的动作识别
CN106648120B (zh) * 2017-02-21 2020-04-03 戴雨霖 基于虚拟现实和体感技术的火灾逃生训练***
CN106648120A (zh) * 2017-02-21 2017-05-10 戴雨霖 基于虚拟现实和体感技术的火灾逃生训练***
CN110462629A (zh) * 2017-03-30 2019-11-15 罗伯特·博世有限公司 用于识别眼睛和手的***和方法
CN110462629B (zh) * 2017-03-30 2024-04-02 罗伯特·博世有限公司 用于识别眼睛和手的***和方法
CN107157488A (zh) * 2017-06-28 2017-09-15 重庆金康特智能穿戴技术研究院有限公司 一种基于智能穿戴设备的监控和矫正儿童多动症***
CN111376910A (zh) * 2018-12-29 2020-07-07 北京嘀嘀无限科技发展有限公司 用户行为的识别方法、识别***及计算机设备
CN110689041A (zh) * 2019-08-20 2020-01-14 陈羽旻 一种多目标行为动作识别预测方法、电子设备及存储介质

Also Published As

Publication number Publication date
EP2362325A2 (en) 2011-08-31
JP2011170856A (ja) 2011-09-01
CN102087712B (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN102087712B (zh) 个性化动作控制的***和方法
US8156067B1 (en) Systems and methods for performing anytime motion recognition
US9050528B2 (en) Systems and methods for utilizing personalized motion control in virtual environment
US8041659B2 (en) Systems and methods for motion recognition using multiple sensing streams
CN102301311B (zh) 标准姿势
JP2019524212A (ja) 自動人工知能(ai)パーソナルアシスタント
CN102184020A (zh) 用于操纵用户界面的姿势和姿势修改
US20240082734A1 (en) In-game resource surfacing platform
CN104239416A (zh) 一种用户识别方法和***
CN102693413A (zh) 运动识别
CN102207771A (zh) 推断参与运动捕捉***的用户意图
CN102184006B (zh) 在虚拟互动环境中控制目标的***及方法
CN102918518A (zh) 基于云的个人特征简档数据
Cheema et al. 3D gesture classification with linear acceleration and angular velocity sensing devices for video games
Zhao et al. Comparing head gesture, hand gesture and gamepad interfaces for answering Yes/No questions in virtual environments
Taranta II et al. Exploring the benefits of context in 3D gesture recognition for game-based virtual environments
Zidianakis et al. Building a sensory infrastructure to support interaction and monitoring in ambient intelligence environments
Zhao et al. Classifying in-place gestures with end-to-end point cloud learning
WO2018057044A1 (en) Dual motion sensor bands for real time gesture tracking and interactive gaming
Lavoie et al. Design of a set of foot movements for a soccer game on a mobile phone
CN113476833A (zh) 游戏动作识别方法、装置、电子设备和存储介质
Schade et al. On the advantages of hand gesture recognition with data gloves for gaming applications
Metkar et al. Human body gesture-controlled gaming application
Kleine Deters Therapeutic exercise assessment automation, a hidden Markov model approach.
Babula et al. User model for determining user’s motor skills

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20170222

CF01 Termination of patent right due to non-payment of annual fee