CN108431735A - 姿态视觉构建器工具 - Google Patents

姿态视觉构建器工具 Download PDF

Info

Publication number
CN108431735A
CN108431735A CN201680077395.2A CN201680077395A CN108431735A CN 108431735 A CN108431735 A CN 108431735A CN 201680077395 A CN201680077395 A CN 201680077395A CN 108431735 A CN108431735 A CN 108431735A
Authority
CN
China
Prior art keywords
hand
posture
feature
discrete
exercise
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.)
Pending
Application number
CN201680077395.2A
Other languages
English (en)
Inventor
K·卡蒙
E·克鲁普卡
Y·特扎里
U·勒万诺
S·霍罗威茨
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108431735A publication Critical patent/CN108431735A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • 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/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • 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/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • 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
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

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

Abstract

一种用于创建手部姿态表示的系统,包括:(a)用于与用户交互的接口。(b)存储多个离散姿势值和离散运动值的存储装置。(c)存储姿态视觉构建器代码的存储器。(d)被耦合到接口、存储装置和存储器以执行姿态视觉构建器代码以允许用户创建手部姿态的一个或多个处理器。姿态视觉构建器代码包括:(1)用于向用户呈现显示分级菜单驱动界面的GUI的代码指令。(2)用于使用分级菜单驱动界面从用户迭代地接收用户指令、以用于通过定义一个或多个手部姿势特征记录和手部运动特征记录来创建手部姿态的逻辑序列的代码指令。(3)用于生成分别通过离散姿势/运动值来定义一个或多个手部姿势/运动特征记录的代码分段的代码指令。

Description

姿态视觉构建器工具
背景技术
手部姿态作为交互系统的人机接口(HMI)的越来越多的使用在制定简单、用户友好且易于实现的姿态构建和/或识别系统方面呈现出主要挑战。与诸如例如键盘、触摸屏、数字表面和/或指点设备(诸如鼠标等)等传统HMI接口不同,姿态交互是其中手部姿态由用户在空间中在机器前面执行的3D接口。因为每个手部姿态由多个特征(特性)定义,手部姿态的空间特性和视觉性质迫使用于创建姿态HMI的手部姿态的工具(例如,集成开发环境(IDE))采用复杂的接口。而且,不同的用户可以执行彼此不同的交互手部姿态,这使得统一的通用姿态HMI的实现更加困难。当前可用的姿态创建工具可以采用允许程序员定义手部姿态的特征的用户界面、程序员可以用来表达手部姿态和记录它的成像设备、和/或程序员用以绘制手部姿态的触摸屏和/或数字表面。然而,当前的姿态创建工具对于程序员而言非常复杂,这使得姿态HMI的实现困难且耗时。此外,创建的姿态HMI可能无法涵盖由姿态HMI的不同用户执行的多种手部姿态,因此不能提供可靠的HMI。
发明内容
根据本公开的一些实施例,提供了用于创建一个或多个手部姿态的系统、方法和工具,这些手部姿态将由姿态HMI用来与计算机化的机器(例如,计算机、膝上型计算机、智能电话、平板电脑和/或与成像设备(例如,相机、深度相机、立体相机、红外线(IR)相机等)集成和/或附接到成像设备的任何其他基于处理器的机器或设备,其中成像设备监测用户的手部运动)交互。在整个本公开中在下文中提及的手部姿态、手部姿势和/或手部运动的定义、创建、构造和/或生成分别是指模拟手部相应的手部姿态、姿势和运动的手部姿态、手部姿势和手部运动的表示的定义、创建、构造和/或生成。手部姿态的创建使用姿态视觉构建器工具来进行,姿态视觉构建器为程序员提供平台和/或环境,例如基于图形用户界面(GUI)的IDE。姿态视觉构建器工具使得程序员能够使用创新、简单且高度直观的基于分级菜单的界面来创建一个或多个手部姿态。姿态视觉构建器工具利用简单的手部姿态语言,其中使用有限数目的离散姿势和运动值构件块分别定义每个手部姿势和/或运动。姿态视觉构建器工具以代码指令和/或所创建的手部姿态的数据表示的形式(诸如例如,Java脚本对象表示法(JSON)、可扩展应用标记语言(XAML)和/或可扩展标记语言(XML))来生成软件代码分段。姿态视觉构建器工具可以与姿态库和/或姿态应用编程接口(API)耦合,为程序员提供直接分发路径,以用于将所创建的一个或多个手部姿态共享和/或钩挂到一个或多个应用的一个或多个功能以采用姿态HMI。
手部姿态中的每一个由描述手部姿态的特征(特性)的离散值的姿态数据集定义,例如手部姿势、手部和/或手指空间位置、手指彼此相对位置、手指接触,手部和/或手指运动轮廓和/或运动特性。姿态数据集记录一个或多个手部姿势和/或手部运动,其中一个或多个手部姿势和/或手部运动中的每一个由手部特征的离散值的特征记录定义。姿态数据集可选地定义记录手部姿势和/或手部运动之间的转换的一个或多个序列和/或有限状态机(FSM)。姿态的离散性质允许通过有限数目的特征的表示来容易地构造每个手部姿势和/或手部运动。另外,因为每个手部姿态被降低到最小表示,离散值实现可以大大降低多个用户之间的姿态变化的敏感度。此外,离散实现的最小表示在运行时可以简化手部姿态的识别、标识和/或分类,避免了使用机器学习和密集型计算机视觉处理。
除非另外定义,否则本文中使用的所有技术和/或科学术语具有与本领域普通技术人员通常理解的相同的含义。尽管在本公开的实施例的实践或测试中可以使用与本文中描述的方法和材料类似或等同的方法和材料,但是下面描述示例性的方法和/或材料。如果发生冲突,则以包括定义在内的专利说明书为准。另外,这些材料、方法和示例仅是说明性的,并非意在限制。
附图说明
本文中仅通过举例的方式参考附图来描述本公开的一些实施例。现在具体参考附图详细说明,强调的是,所示出的细节是作为示例并且出于对本公开的实施例的说明性讨论的目的。就此而言,结合附图的描述使本领域技术人员清楚如何实践本公开的实施例。
在附图中:
图1是根据本公开的一些实施例的由示例性视觉姿态构建器呈现的示例性手部姿态序列的示意图;
图2是根据本公开的一些实施例的使用示例性视觉姿态构建器的示例性手部姿势构造区域的示意图;
图3是根据本公开的一些实施例的使用示例性视觉姿态构建器的示例性手部运动构造区域的示意图;
图4是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性手部姿势构造的示意图;
图5是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性捏合(pinch)手部姿势构造的示意图;
图6是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性手部运动构造的示意图;
图7是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性半圆手部运动构造的示意图;
图8是根据本公开的一些实施例的示例性手部姿态的构建块的框图;
图9是根据本公开的一些实施例的示例性弹弓(slingshot)手部姿态的构建块的框图;
图10是根据本公开的一些实施例的通过手部运动和手部姿势的序列来定义手部姿态的示例性FSM的示意图;
图11是根据本公开的一些实施例的用于使用姿态视觉构建器工具来创建手部姿态的示例性系统的示意图;
图12是根据本公开的一些实施例的使用姿态视觉构建器工具来创建手部姿态的示例性过程的流程图;以及
图13是根据本公开的一些实施例的呈现示例性姿态视觉构建器工具的屏幕快照的示意图。
具体实施方式
根据本公开的一些实施例,提供了用于创建一个或多个手部姿态的系统、方法和工具,这些手部姿态将由姿态HMI使用以与计算机化的机器交互,计算机化的机器与成像设备集成和/或附接到成像设备,成像设备监测用户的手部运动。程序员可以使用姿态视觉构建器工具来创建一个或多个手部姿态,姿态视觉构建器工具为程序员提供平台和/或环境,例如基于GUI的IDE。姿态视觉构建器工具IDE可以(作为例如本地应用、例如使用网络浏览器可访问的网络服务、由一个或多个服务器远程提供的远程服务和/或网络机器人(bot)连接)在一个或多个处理器上执行。接口单元包括输入设备(例如,键盘、触摸屏、数字表面和/或指示设备(诸如例如,鼠标))和输出设备(例如,显示器、投影仪和/或屏幕)。手部姿态可以指代由单手和/或双手(右手和左手)执行的一个或多个手部姿势和/或手部运动。每只手被指派了姿势和/或运动特征的数据集的专用实例,使得每只手的一个或多个手部姿态可以被分开构造、分类和/或标识。然而为了简洁起见,下文中引用手部姿态来讨论一只手和/或两只手的手部姿态。姿态视觉构建器工具并入分级菜单驱动界面,以允许程序员通过构建与每个手部姿态相关联的一个或多个手部姿势和/或手部运动的逻辑序列来容易地导航和创建一个或多个手部姿态。手部姿势和手部运动由程序员各自分别通过手部姿势特征记录和手部运动特征记录使用姿态视觉构建器工具来定义。手部姿势和运动特征记录可以通过例如特征矢量、特征矩阵和/或特征表来实现。手部姿势特征记录是程序员所选择以定义相应的手部姿势的离散姿势值的数据集,其中每个离散姿势值指示相应的手部姿势特征(特性),例如手部选择、手部位置、手指弯曲(每个手指)、手指方向(每个手指)、手指接触(每两个或更多个手指)和/或手指相对位置(每两个或更多个手指)。手部运动特征记录是由程序员所选择以定义相应的手部运动的离散运动值的数据集,其中每个离散运动值指示相应的手部运动特征(特性),例如运动属性(大小、速度、方向和/或位置)和/或可以由运动脚本定义的运动轮廓。一个或多个手部姿势特征和/或手部运动特征的连续值可以通过量化连续值以支持用于创建一个或多个手部姿态的离散架构而由离散手部值来表示。姿态视觉构建器工具将由程序员定义的手部姿势和/或手部运动转换为包括与一个或多个手部姿态相关联的一个或多个逻辑序列的代码分段。代码分段可以以用于所创建的手部姿态的代码指令和/或数据表示的形式来生成,诸如例如JSON、XAML和/或XML。例如,一个或多个手部姿态逻辑序列中的每个可以通过唯一的FSM来表示。代码分段可以使用一个或多个姿态库来构造构成每个手部姿态的逻辑序列的一个或多个手部姿势和/或手部运动。代码分段可以被并入一个或多个应用中以利用手部姿态来与一个或多个用户交互,例如作为HMI。可选地,代码分段遵循姿态API,姿态API可以通过软件接口暴露包括多个手部姿态的姿态集合(例如,姿态库),以允许程序员将一个或多个应用功能与一个或多个手部姿态进行关联。基于姿态视觉构建器工具分级菜单的界面为程序员提供一种创新、简单且高度直观的视觉用户体验。结合用于创建一个或多个手部姿势和/或手部运动中的每个的有限可能性,姿态视觉构建器工具提供了用于容易地创建一个或多个手部姿态的方便、简单且全面的环境。
在详细解释示例性实施例中的至少一个实施例之前,应当理解,本公开在其应用中不一定限于在以下描述中给出和/或在附图和/或示例中说明的组件和/或方法的构造和布置的细节。本公开能够具有其他实施例或者以各种方式实践或执行。
现在参考附图,图1是根据本公开的一些实施例的由示例性视觉姿态构建器呈现的示例性手部姿态序列的示意图。如100所示,示例性手部姿态序列101由示例性姿态视觉构建器工具呈现为一个或多个手部姿势和/或手部运动1至N的序列。手部姿态序列101开始并且完成于虚拟状态110A,例如空闲状态。由程序员设置的手部姿势和/或手部运动1至N中的每一个被指派视觉表示,视觉表示指定构造区域110(110A至110N),构造区域110允许程序员创建、删除和/或编辑一个或多个手部姿势和/或手部运动1至N。手部姿态序列101可以被编辑以添加、移除和/或改变一个或多个手部姿势和/或手部运动1至N的顺序。
现在参考图2,图2是根据本公开的一些实施例的使用示例性视觉姿态构建器的示例性手部姿势构造区域的示意图。如200所示,诸如手部姿态序列101等手部姿态序列包括一个或多个手部姿势和/或手部运动,诸如手部姿势和/或手部运动1至N。手部姿势J被选择并且将构造区域110J指派给它。构造区域110J可以呈现手部姿势J的渲染图像。
一旦手部姿势J被选择以用于创建、删除和/或编辑,分级菜单驱动界面就在构造区域110J旁边呈现给程序员。分级菜单驱动界面包括一个或多个菜单210J和子菜单220J。所呈现的分级菜单结构是示例性的,并且可以包括附加级别的子菜单,其对程序员可用以创建、删除和/或编辑手部姿势J。菜单210J包括一个或多个字段,每个字段例如与可用于手部姿势J的多个手部姿势特征230(230A至230N)之一相关联。手部姿势特征230的一个或多个字段中的每个可以与子菜单220J相关联,子菜单220J呈现一个或多个字段,其指示可用于手部姿势特征230中的相关联的手部姿势特征的一个或多个离散姿势值240(240A至240N)。在程序员选择手部姿势特征230C之后,子菜单220J被打开并且被显示以用于手部姿势特征230C。子菜单220J可以呈现可用于手部姿势特征230C的多个离散姿势值240C(240C1至240CN)。可以显示附加的一个或多个子菜单(诸如子菜单220J)以向程序员呈现可用于先前的子菜单220J的手部姿势特征和/或离散姿势值中的一个或多个的附加的可选的手部姿势特征和/或离散姿势值。
可选地,分级菜单驱动界面的一个或多个菜单210J和子菜单220J通过弧形菜单和子菜单来实现。主菜单210J与构造区域110J相邻并且包裹构造区域110J的周边。分级菜单驱动界面的一个或多个级别中的每个在距构造区域110J的中心较大的半径处被打开。
可选地,所选择的手部姿势J的视觉表示被放大以允许程序员容易看见、导航和/或选择。
可选地,不可用于所选择的手部姿势J的一个或多个手部姿势特征230被示出为不可用(例如呈现灰色),以向程序员指示手部姿势特征230不可用和/或不可以被选择。
可选地,在呈现在构造区域110J中的同时,程序员可以通过选择渲染的图像和/或其特定的一个或多个部分来查看、删除和/或编辑手部姿势J的手部姿势特征230。在动画表示中和/或其特定的一个或多个部分内的选择之后,相应的菜单210K和/或子菜单220K将被呈现给程序员。程序员可以使用输入设备(诸如例如,键盘、触摸屏)和/或指点设备(诸如例如,鼠标、轨迹球、游戏控制器、操纵杆等)等来在动画表示中进行选择。
现在参考图3,图3是根据本公开的一些实施例的使用示例性视觉姿态构建器的示例性手部运动构造区域的示意图。如300所示,手部姿态序列(诸如手部姿态序列101)包括一个或多个手部姿势和/或手部运动,诸如手部姿势和/或手部姿态1至N。手部运动J被选择,并且将构造区域110K指派给手部运动J。构造区域110K可以呈现手部运动K的动画表示。一旦手部运动K被选择用于创建、删除和/或编辑,则分级菜单驱动界面在构造区域110K旁边被呈现给程序员。分级菜单驱动界面包括一个或多个菜单310K和子菜单320K。所呈现的分级菜单结构是示例性的,并且可以包括附加级别的子菜单,其对于程序员可用以创建、删除和/或编辑手部运动K。菜单310K包括一个或多个字段,每个字段例如与可用于手部运动K的多个手部运动特征330(330A至330N)之一相关联。手部运动特征330的一个或多个字段中的每个可以与子菜单320K相关联,子菜单320K呈现一个或多个字段,其指示可用于手部姿势特征330中的相关联的手部姿势特征的一个或多个离散运动值340(340A至340N)。在手部运动特征330K被程序员选择的情况下,子菜单320K被打开并且显示用于手部运动特征330K。子菜单320K可以呈现可用于手部运动特征330C的多个离散姿势值340C(340C1至240CN)。附加的一个或多个子菜单(例如,子菜单320K)可以被显示以向程序员呈现一个或多个的附加的可选的手部运动特征和/或离散运动值,其可用于先前的子菜单220J的手部运动特征和/或离散运动值。
可选地,分级菜单驱动界面的一个或多个菜单310K和子菜单320K通过弧形菜单和子菜单来实现。主菜单310K与构造区域相邻并且包裹构造区域的周边。分级菜单驱动界面的一个或多个级别中的每个在距构造区域110K的中心较大的半径处被打开。
可选地,所选择的手部运动K的视觉表示被放大以允许程序员容易看见、导航和/或选择。
可选地,不可用于所选择的手部运动K的一个或多个手部运动特征330被显示为不可用(例如呈现灰色),以向程序员指示手部运动特征330不可用和/或不可以被选择。
可选地,在呈现在构造区域110K中的同时,程序员可以通过选择动画表示和/或其特定的一个或多个部分来查看、删除和/或编辑手部运动K的手部运动特征330。在动画表示中和/或其特定的一个或多个部分内的选择之后,相应的菜单310K和/或子菜单320K将被呈现给程序员。程序员可以使用输入设备(诸如例如,键盘、触摸屏)和/或指点设备(诸如例如,鼠标、轨迹球、游戏控制器、操纵杆等)等在动画表示中进行选择。
可选地,通过根据期望在菜单210J/310K和子菜单220J/320K的一个或多个字段上执行连续移动,程序员在一个或多个菜单210J/310K和子菜单220J/320K之间导航以创建、编辑和/或删除手部姿势J和/或手部运动K中的一个或多个。持续运动可以由程序员使用一个或多个HMI接口来执行,例如,触摸屏、数字表面和/或指点设备(诸如例如,鼠标)。连续移动可以允许程序员敏捷和快速地创建、编辑和/或移除手部姿势/运动特征230/330和/或离散姿势/运动值240/340中的一个或多个。
根据本公开的一些实施例,由程序员使用一个或多个成像设备来将一个或多个手部姿势(诸如手部姿势J)和/或手部运动(诸如手部运动K)插入到姿态视觉构建器工具环境中。成像设备可以包括例如相机、深度相机、立体相机和/或IR相机。一个或多个手部姿势J和/或手部运动K可以由程序员进行表达(articulate)并且由成像设备捕获。所捕获的一个或多个手部姿势J和/或手部运动K的一个或多个图像被分析,并且被注入到诸如手部姿态序列101等手部姿态序列中。可选地,程序员使用多个传感器中的一个或多个传感器来将一个或多个手部姿势J和/或手部运动K插入到姿态视觉构建器工具环境中,多个传感器例如是声波传感器(诸如例如,声纳)、辐射发射传感器(诸如例如,X射线设备)和/或磁共振传感器(诸如例如,磁共振成像(MRI))。更可选地,程序员使用能够遵循所表达的手部姿势和/或运动的机械机器人和/或设备来将一个或多个手部姿势J和/或手部运动K插入到姿态视觉构建器工具环境中。一旦被包括在手部姿态序列101中,可以使用如上文所述的使用分级菜单驱动界面的姿态视觉构建器来编辑和/或删除一个或多个手部姿势J和/或手部运动K。
现在参考图4,图4是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性手部姿势构造的示意图。图示400描绘了使用姿态视觉构建器工具的示例性手部姿势450表示构造。每个手部姿势450被表示为手部姿势特征记录401,其包括一个或多个手部姿势特征230A、230B、230C和230D。每个手部姿势特征可以被指派一个或多个离散姿势值240A、240B、240C和/或240D,其标识手部姿势450中的相关联的手部姿势的相应的手部姿势特征230A、230B、230C和/或230D的状态(值)。一个或多个手部姿势特征230A、230B、230C和/或230D的连续值可以通过量化连续值来由离散姿势值240A、240B、240C和/或240D表示。由手部姿势特征记录401定义的相应手部姿势特征230的一个或多个离散姿势值240的组合标识可以由程序员用来创建一个或多个手部姿态的手部姿势450中的特定姿势。手部姿势特征记录401可以被表示为例如特征矢量、特征矩阵和/或特征表。手部姿势特征记录401可以包括以下手部姿势特征230中的一个或多个的值:
■手掌姿势特征——一个或多个姿势特征230A可以包括例如手部选择230A1、手掌方向230A2、手掌旋转230A3和/或手部位置230A4。手部选择特征230A1可以标识哪只手是活动的,并且可以由离散姿势值240A定义,诸如例如右、左、和/或两者。手掌方向特征230A2可以定义活动手部的手掌朝的方向,并且可以由离散姿势值240A定义,诸如例如左、右、上、下、前和/或后。手掌旋转230A3可以定义活动手部的手掌的旋转状态,并且可以包括离散姿势值240A,诸如例如左、右、上、下、前进和/或后退。手部位置特征230A4可以标识活动手部在空间中的空间位置,并且可以由离散姿势值240A定义,诸如视场(FOV)的中心、FOV的右侧、FOV的左侧、FOV的顶部、FOV的底部、FOV的前方和/或FOV的后方。例如,其中FOV是监测用户的手部的移动的成像设备的可视空间。可选地,关于存在于FOV中的固定对象(例如,键盘和/或指示设备)来标识手部位置特征230A4,使得手部位置特征230A4可以由离散姿势值240A定义,诸如例如键盘上方、键盘后方、键盘右侧和/或键盘左侧。
■手指弯曲特征——针对每个手指而定义的一个或多个手指弯曲特征230B。例如,手指弯曲特征230B可以是可以由一个或多个离散姿势值240B定义的弯曲和/或屈曲状态,诸如例如由0、1和2表示的伸直(stretched)、折叠(folded)和/或打开。每个手指(拇指、食指、中指、无名指和/或小指)可以被指派一个或多个手指特征230B,例如{折叠}状态的{拇指,中指,无名指,小指}和{伸直}状态的{食指}。
■手指接触条件特征——可以针对每个手指而定义一个或多个手指接触特征230C。接触特征230C可以定义任何两个或更多个手指和/或接触类型的接触条件,并且可以由离散姿势值240C定义,诸如例如未接触、指尖和/或全接触。
■手指相对位置条件特征——可以针对每个手指而定义一个或多个手指相对位置特征230D。每个手指相对位置条件特征230D可以定义一个手指相对于另一手指的相对位置。手指相对位置特征230D可以由离散姿势值240D定义,诸如例如一个或多个手指相对于另外的一个或多个手指位于左侧、右侧、上方、下方、向内、向外、前方和/或后方。
手部姿势450中的每个由手部姿势特征记录401中的唯一的一个来定义,其可以是一个或多个离散姿势值240的组合和/或序列,每个离散姿势值提供相应的手部姿势特征230的值。手部姿势特征记录401可以仅包括离散姿势值240A中的一些(而不是全部),而未被包括的其他离散姿势值240A是空闲的。例如,手部姿势特征记录401可以在活动手部的手掌的方向和旋转未指定(例如,手部姿势特征230A2和/或230A3)的情况下定义手指的特定状态(例如,离散姿势值230B)。在这种情况下,手部姿势450在检测由手部姿势特征记录401定义的手指状态时在运行时被标识、识别和/或分类,其中活动手部的手掌朝向任何方向。使用离散姿势值240允许简单地创建手部姿势450,因为存在用于创建手部姿势450的有限数目的离散姿势值240。例如,被包括在手部姿势特征230A中的手掌方向特征230A2可以包括至多六个离散姿势值240A——左、右、上、下、向前、向后。手部姿势特征230A、230B、230C和/或230D的离散表示可以不仅限于离散值。一个或多个手部特征410、420、430和/或440的连续值可以通过对连续值进行量化而分别由离散姿势值240A、240B、240C和/或240D表示。例如,手掌旋转手掌姿势特征230A3可以用8个离散运动值240A1至240A6——0°、45°、90°、135°、180°、225°、270°和315°来定义,以量化0°到360°的整个旋转范围。
现在参考图5,图5是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性捏合手部姿势构造的示意图。图示500描绘了使用姿态视觉构建器工具的示例性捏合手部姿势450A构造。捏合手部姿势450A由捏合姿势特征记录401A表示,捏合姿势特征记录401A包括诸如离散姿势值240等离散姿势值,每个离散姿势值指示相应的手部姿势特征(诸如手部姿势特征230)的值。通过图像捕获501而被可视化的捏合手部姿势450A利用如下的多个离散姿势值240中的一些来创建:
■手部选择特征230A1被指派离散姿势值240A1以指示左手处于活动状态。
■手掌方向特征230A2被指派离散姿势值240B2以指示活动手部的手掌朝前。
■手指弯曲特征230B1被指派离散姿势值240B1和离散姿势值240B2以指示拇指和食指被折叠。
■手指弯曲特征230B2被指派离散姿势值240B3和离散姿势值240B4以指示中指、无名指和小指打开。
■手指接触条件特征230C1被指派离散姿势值240C1和240C2以指示拇指和食指在它们的指尖处接触。
■手指相对位置特征230D1被指派离散姿势值240D1、离散姿势值240D2和离散姿势值240D3以指示食指位于拇指上方。
如上所见,捏合手部姿势450A由捏合特征姿势特征记录401A独特地定义,捏合特征姿势特征记录401A包括分别与手部姿势特征230A1至230A2、230B1至230B2、230C1和230D1相对应的离散姿势值240A1至240A2、240B1至240B4、240C1至240C2和240D1至240D3。类似地,可以使用姿态视觉构建器工具来创建另外的手部姿势450。
现在参考图6,图6是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性手部姿势构造的示意图。图示600描绘了使用姿态视觉构建器工具的示例性手部运动650表示构造。每个手部运动650被表示为包括一个或多个手部运动特征330的手部运动特征记录601。每个手部运动特征330可以被指派一个或多个离散运动值340,其标识手部运动650中的相关联的手部运动的相应手部运动特征330的状态(值)。一个或多个手部运动特征330的连续值可通过量化连续值而由离散姿势值340来表示。手部运动特征记录601标识可以创建一个或多个手部姿态的手部的特定运动。手部运动特征记录601可以被表示为例如特征矢量、特征矩阵和/或特征表。手部运动特征记录601可以包括以下手部运动特征330中的一个或多个:
■运动属性特征——一个或多个运动属性特征330A可以包括例如运动大小330A1、运动速度330A2和/或运动位置330A3。运动大小330A1可以标识运动的大小(范围),并且可以由离散运动值340A定义,诸如例如小、正常和/或大。运动速度330A2可以定义运动的速度,并且可以由离散运动值340A定义,诸如例如慢、正常、快速和/或突然。运动位置330A3可以标识执行运动的空间位置,并且可以由离散运动值340A定义,诸如例如FOV的中心、FOV的右侧、FOV的左侧、FOV的顶部、FOV的底部、FOV的前部和/或FOV的后部。可选地,手部位置330A3相对于存在于FOV中的固定物体来表达,例如键盘和/或指示设备,使得相对手部位置特征330A3可以包括离散的运动值340A,诸如例如键盘上方、键盘后方、键盘右侧和/或键盘左侧。
■运动脚本特征——一个或多个运动脚本特征330B可以定义所执行的实际运动和/或手部轨迹。运动脚本值330B可以包括例如运动方向330B1、运动起点330B2、运动终点330B3和/或预定义的曲线形状330B4。运动方向特征330B1可以包括离散的运动值340B,诸如例如向上、向下、从左到右、从右到左、斜向左上、斜向右上、斜向左下、斜向右下、顺时针弧形向右上、顺时针弧形向右下、顺时针弧形向左上、顺时针弧形向左下、逆时针弧形向右上、逆时针弧形向右下、逆时针弧形向左上和/或逆时针弧形向左下。预定义曲线形状离散运动值330B4可以包括例如at符号(@)、无穷符号(∞)、数字符号、字母符号等。可选地,可以创建附加的一个或多个曲线形状(例如对号、帐单请求(bill request)等)作为预定义的曲线,因为期望为使用直观且公开已知的手部姿态,例如用于撰写和/或发送电子邮件的at符号、用于检查操作的对号和/或用于请求帐单的划线。一个或多个曲线形状可以可选地使用例如SVG格式的徒手画(freehand)工具来创建。每个运动脚本特征330B被定义用于2D平面,然而每个运动脚本特征330B可以被转置以描绘另一2D平面,例如X-Y、X-Z和/或Y-Z。可选地,运动脚本特征330B使用3D图像数据表示格式来定义三维(3D)运动和/或曲线。
手部运动650中的每个由可以是一个或多个离散运动值340的组合和/或序列的手部运动特征记录601中唯一的一个来定义,每个离散运动值340分别提供相应的手部运动特征330的值。使用离散运动值340允许简单地创建手部运动650,因为存在用于创建手部运动650的有限数目的离散运动值340。例如,被包括在手部运动属性特征330A中的运动速度特征330A2可以包括至多四个离散运动值340A——慢、正常、快速和突然。手部运动特征330的离散表示可以不仅限于离散值,一个或多个手部运动特征330的连续值可以通过量化连续值而由离散运动值340表示。例如,运动速度属性特征330A可以用6个离散运动值340A——5m/s(米/秒)、10m/s、15m/s、20m/s、25m/s和30m/s来定义,以量化0m/s至30m/s的正常人的手部的运动速度。
现在参考图7,图7是根据本公开的一些实施例的使用姿态视觉构建器工具的示例性半圆手部运动构造的示意图。图示700描绘了包括多个离散运动值(诸如离散运动值340)的“从左到右上半圆”运动特征记录601A的示例性“从左到右上半圆”手部运动650A构造,每个离散运动值340指示对应手部运动特征(诸如手部运动特征330)。通过图像捕获701A、701B和701C可视化的“从左到右上半圆”手部运动650A利用如下的多个离散运动值340中的一些来创建:
■运动大小特征330A1被指派离散运动值340A1,以指示运动大小正常。
■运动速度特征330A2被指派离散运动值340A2,以指示运动速度正常。
■运动位置特征330A3被指派离散运动值340A3,以指示运动在键盘上方执行。
■第一运动脚本特征330B1被指派离散运动值340B1,以指示由图像捕获701B呈现的顺时针弧形向左上的运动形状。
■第二运动脚本特征330B2被指派离散运动值340B2,以指示由图像捕获701C呈现的顺时针弧形向左下的运动形状。
如上所示,“从左到右上半圆”运动650A由包括分别与运动特征330A1至330A3和330B1至330B2相对应的离散运动值340A1至340A3和340B1至340B2的“从左到右上半圆”手部运动特征记录601A唯一地定义。类似地,可以使用姿态视觉构建器工具来创建附加的手部和/或手指运动。
现在参考图8,图8是根据本公开的一些实施例的示例性手部姿态的构建块的框图。图示800描绘了示例性手部姿态(表示)850的若干构造方案。手部姿态850可以使用姿态视觉构建器工具通过一个或多个可能的构造来创建,例如:
(a)手部姿态850可以包括手部姿势,诸如手部姿势450之一。
(b)手部姿态850可以是两个手部姿势450的组合和/或序列。
(c)手部姿态850可以是手部姿势450之一和手部运动(诸如手部运动650之一)的组合和/或序列。
(d)(第一)手部姿态850可以是第二手部姿态850和手部姿势450之一的组合和/或序列。第二手部姿态850可以是与第一手部姿态850相同的手部姿态,或者是不同于手部姿态850的手部姿态。
(e)(第一)手部姿态850可以是第二手部姿态850和手部运动650之一的组合和/或序列。第二手部姿态850可以是与第一手部姿态850相同的手部姿态,或者是不同于手部姿态850的手部姿态。
手部姿态850可以通过上面的构造(d)和/或(e)的多次迭代来创建。每个手部姿态850被构造为由逻辑手部姿态序列(诸如手部姿态序列101)表示的独特的组合和/或序列,逻辑手部姿态序列包括手部姿势450、手部运动650和/或手部姿态850中的一个或多个。每个手部姿态850以空闲状态(诸如空闲状态110A)开始和结束,空闲状态标识手部姿态850(例如,空闲手部姿势)的独特手部姿态序列101的开始和/或结束。
现在参考图9,图9是根据本公开的一些实施例的示例性弹弓手部姿态的构建块的框图。图示900将示例性弹弓手部姿态850A构造描绘为逻辑手部姿态序列(诸如手部姿态序列101),逻辑手部姿态序列包括手部姿势(诸如手部姿势450)和手部运动(诸如手部运动50)。通过图像捕获901A、901B、901C和90D被可视化的弹弓手部姿态850A由无捏合手部姿势450B、捏合手部姿势(诸如捏合手部姿势450A)和缩回手部动作650B的组合和/或序列构成。弹弓手部姿态850A的顺序如下:
■空闲状态(诸如虚拟空闲状态110A)定义弹弓手部姿态850A的起始状态和/或点。
■由手部姿势特征记录401B定义的无捏合手部姿势450B表示如图像捕获901A中描绘的无捏合动作。
■由手部姿势特征记录401A定义的捏合手部姿势450A,其中标识了如图像捕获901B中所描绘的捏合动作。
■由手部运动特征记录601B定义的回缩手部运动650A,其中手部向后移动,如图像捕获901C中所描绘的。
■捏合姿势中的手部姿势特征记录401B定义的无捏合手部姿势450B被释放并且被标识为无捏合动作,如图像捕获901D中所描绘的。
■虚拟空闲状态110A定义弹弓手部姿态850C的序列的结束状态和/或点。
如上所述的弹弓手部姿态850A的序列通过唯一的逻辑弹弓手部姿态序列101A(诸如手部姿态序列101)来表示,手部姿态序列101可以用作要与弹弓手部姿态850A进行关联的FSM。对于手部姿势450和/或手部运动650中的任何一个,只有相关的离散姿势和/或运动值可以被定义,如例如根据以下而明显的:无捏合手部姿势特征记录401B,其中针对无捏合手部姿势450B定义了手部选择离散姿势值230A1(左)、手指弯曲离散姿势值230B(伸直)和手指接触离散姿势值230C(未接触)。与无捏合手部姿势450B与捏合手部姿势450A之间的区分无关的其他离散姿势值是空闲的并且未被指定。仅指定相关的离散姿势和/或运动值允许由不同的一个或多个用户在运行时执行的手部姿势450和/或手部运动650的表达的几个自由度。这表示一个或多个用户中的每个可以稍微不同地执行手部姿势450和/或手部运动650,然而它们仍然被识别、标识和/或分类为相同。
姿态视觉构建器工具可以使用姿态库和姿态API来创建一个或多个手部姿态850。姿态API允许一个或多个程序员的公共接口利用一个或多个手部姿态850来将它们与一个或多个应用集成。
每个手部姿态850的唯一组合和/或序列可以由唯一的FSM表示,即,FSM包括手部姿势450和/或手部运动650中的一个或多个以表示手部姿态850。
现在参考图10,图10是根据本公开的一些实施例的通过手部运动和手部姿势的序列来定义手部姿态的有限状态机(FSM)的示意图。图示1000描绘了可以表示诸如手部姿态序列101等手部姿态序列的FSM 1001。FSM 1001可以由姿态视觉构建器工具创建以容易地构建和表示一个或多个手部姿态(诸如手部姿态850),以易于在运行时使用期间的识别、标识和/或分类。FSM 1001开始于起点1010,起点1010可以是指示FSM 1001的空闲状态的虚拟状态,并且可以包括一个或多个状态1002A、1002B、1002C至1002N。第一状态1002A是作为表示手部姿态(诸如手部姿态850)的序列的开始的手部姿态。后续状态1002B、1002C至1002N中的每个可以是手部姿势(诸如手部姿势450)或者手部运动(诸如手部运动650)。FSM 1001结束于FSM终点1020。起点1010和/或终点1020可以通过诸如空闲状态110A等虚拟空闲状态来定义。可选地,通过包括状态1002A至1002N中的一个或多个的重复、分成若干并行和/或顺序路径、和/或组合两个或更多个FSM 1001和/或其部分,FSM 1001可以被构造为表示诸如手部姿态110等复杂手部姿态。
现在参考图11,图11是根据本公开的一些实施例的用于使用姿态视觉构建器工具来创建手部姿态的示例性系统的示意图。示例性系统1100包括用于与程序员1150交互的接口单元1110、用于创建诸如手部姿态850等一个或多个手部姿态的一个或多个硬件处理器1120、以及存储介质1130,其用于存储姿态视觉构建器工具1140的软件代码指令以及具有定义离散姿势和离散运动值1145的记录的数据集。可选地,存储介质存储一个或多个手部姿态850。接口单元包括输入设备(例如,键盘、触摸屏、数字表面和/或指点设备(诸如例如,鼠标))和输出设备(例如,显示器、投影仪和/或屏幕)。处理器1120执行姿态视觉构建器工具1140,姿态视觉构建器工具1140向程序员1150提供用于创建一个或多个手部姿态850的平台和/或环境。姿态视觉构建器工具1140可以以例如呈现以下GUI的IDE工具的形式来利用,该GUI呈现诸如在图示100、200和300中呈现的姿态构造工作空间。
程序员1150使用GUI概述被构建为手部姿态序列(诸如手部姿态序列101)的手部姿态850,分别创建、删除或编辑一个或多个手部姿势和/或手部运动(诸如手部姿势450和手部运动650)。程序员1150为一个或多个手部姿势450和/或手部运动650中的每个指派一个或多个离散姿势值(诸如离散姿势值240)和/或离散运动值(诸如离散运动值340)。每个离散姿势值240指示相应手部姿势特征230的适当值,以定义所创建的手部姿势350。类似地,每个离散运动值340指示相应手部运动特征330的适当值,以定义所创建的手部运动650。姿态视觉构建器工具1140接收由程序员1150指派的离散姿势值240和/或离散运动值340的数据集,并且使用所选择的一个或多个离散姿势值240和/或离散运动值340来生成定义数据集的代码分段。代码分段可以符合姿态API以支持用于创建、利用手部姿态850和/或向其他一个或多个应用分发手部姿态850的公共建立的编程接口。可以创建姿态库,姿态库可以被程序员1150用来与其他一个或多个应用集成。可选地,通过动态链接库(DLL)支持姿态库的动态链接,DLL被加载到目标计算机化设备以在运行时与其他一个或多个应用链接。
现在参考图12,图12是根据本公开的一些实施例的使用姿态视觉构建器工具来创建手部姿态的示例性过程的流程图。示例性过程1200在诸如示例性系统1100等系统中执行。如在1210处所示,示例性过程1200开始于向程序员(诸如程序员1150)呈现开发平台和/或环境(诸如例如姿态视觉构建器工具1140)以创建一个或多个手部姿态(诸如手部姿态850)。GUI可以向程序员1150呈现分级菜单驱动界面,其具有用于为一个或多个手部姿态850中的每个构建手部姿态序列(诸如手部姿态序列101)并且导航通过其的选项。分级菜单驱动界面可以包括一个或多个菜单级别(诸如菜单210J和/或310K和/或子菜单,诸如子菜单22J和/或320K)以允许程序员1150选择一个或多个离散姿势值(诸如离散姿势值240)和/或离散运动值(诸如离散运动值),以用于定义包括在手部姿态序列101中的一个或多个姿势和/或运动。每个所选择的离散姿势值240指示相应手部姿势特征230的值,并且每个离散运动值340指示相应手部运动特征330的值。如在1220处所示,接收程序员1150的选择并且为一个或多个手部姿态中的每个创建逻辑序列并且与其相关联。逻辑序列包括由用户定义的一个或多个手部姿势和/或手部运动,每个手部姿势和手部运动被指派手部姿势特征记录(诸如手部姿势记录401),并且每个手部运动被指派手部姿势特征记录(诸如手部运动记录601)。如在1230处所示,生成软件代码分段以捕获由一个或多个手部姿势记录401和/或手部运动记录601定义的手部姿态序列101。所生成的软件代码分段可以是用于所创建的手部姿态的代码指令和/或数据表示(诸如例如,JSON、XAML和/或XML)的形式。代码分段可以符合姿态API以支持用于创建、利用手部姿态850和/或向其他一个或多个应用分发手部姿态850的公共建立的编程接口。可以创建姿态库,姿态库可以被程序员1150用来与其他一个或多个应用集成。可选地,通过动态链接库(DLL)支持姿态库的动态链接,DLL被加载到目标计算机化设备以在运行时与其他一个或多个应用链接。
可选地,程序员使用一个或多个成像设备(例如,相机、深度相机、立体相机和/或IR相机)来将一个或多个手部姿势J和/或手部运动K插入姿态视觉构建器工具环境中。一个或多个手部姿势J和/或手部运动K可以由程序员表达并且由成像设备捕获。所捕获的一个或多个手部姿势J和/或手部运动K的一个或多个图像被分析并且被注入到手部姿态序列(诸如手部姿态序列101)中。
可选地,程序员使用多个传感器中的一个或多个来将例如一个或多个手部姿势J和/或手部运动K插入姿态视觉构建器工具环境中,多个传感器例如是声波传感器(诸如例如,声纳)、辐射发射传感器(诸如例如,X射线设备)和/或磁共振传感器(诸如例如,磁共振成像(MRI))。所捕获的一个或多个手部姿势J和/或手部运动K的一个或多个图像被分析并且被注入到手部姿态序列101中。
更可选地,程序员使用能够遵循表达的手部姿势和/或运动的机械机器人和/或设备来将一个或多个手部姿势J和/或手部运动K插入到姿态视觉构建器工具环境中。表达的一个或多个手部姿势和/或运动被分析并且被注入到诸如手部姿态序列101等手部姿态序列中。
现在参考图13,图13是根据本公开的一些实施例的呈现示例性姿态视觉构建器工具的屏幕快照的示意图。图示1300呈现示例性姿态视觉构建器工具的3个屏幕快照1310、1320和1330。屏幕快照1310、1320和1330描述了创建可以是手部姿态850之一的对号(checkmark)手部姿态的过程。屏幕快照1310呈现了示例性姿态视觉构建器工具的GUI,其中诸如手部姿态序列101等手部姿态序列被创建用于对号手部姿态。对号手部姿态序列101包括可以是手部姿势450之一的指向手指手部姿势和可以是手部运动650之一的对号手部运动。屏幕快照1320呈现诸如构造区域110J等构造区域,构造区域被指派给指点手指手部姿势。菜单(诸如菜单210J)和子菜单(诸如子菜单220J)通过GUI显示在构造区域110J周围,以允许程序员(诸如程序员1150)根据期望定义点向手指弯曲。如屏幕快照1320所示,在主菜单中呈现多个手部姿势特征(诸如手部姿势特征230),其中子菜单呈现多个离散姿势值(诸如离散姿势值240)以及相应手部运动特征330,以允许程序员150容易地定义指点手指手部姿势。屏幕快照1330呈现构造区域,诸如指派给对号手部运动的构造区域110K。菜单(诸如菜单310K)和子菜单(诸如子菜单320K)通过GUI显示在构造区域110K周围,以允许程序员1150根据期望定义对号手部运动。如屏幕快照1330所示,多个手部运动特征(诸如手部运动特征330)被呈现在主菜单中,其中子菜单呈现多个离散运动值(诸如与相应的手部运动特征330相关联的离散运动值340)以允许程序员150容易地定义对号手部运动。
预计在专利权有效期期间,从本申请,将开发很多相关的HMI和/或MI,并且术语HMI和/或MI的范围旨在预先包括所有这些新技术。
术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”、“具有(having)”及其共源词表示“包括但不限于”。
术语“由......组成”表示“包括并限于”。
术语“基本上由...组成”是指组合物、方法或结构可以包括附加成分、步骤和/或部分,但是只有当附加成分、步骤和/或部分不会实质上改变所要求保护的组合物、方法或结构的基本和新颖特征。
如本文中使用的,除非上下文另有明确规定,否则单数形式“一个(a)”、“一个(an)”和“该(the)”包括复数形式。例如,术语“手部姿态”或“至少手部姿态”可以包括单个手部姿势和/或双个手部姿态。
如本文中使用的,术语“方法”是指用于完成给定任务的方式、手段、技术和程序,包括但不限于已知的或者由化学、药理学、生物学、生物化学和医学领域的从业人员容易从已知的方式、手段、技术和程序发展的那些方式、手段、技术和程序。
根据本公开的一些实施例,提供了一种用于创建手部姿态的系统,该系统包括:用于与用户交互的接口;存储多个离散姿势值和多个离散运动值的存储装置;用于存储姿态视觉构建器代码的存储器;以及被耦合到接口、存储装置和存储器以执行姿态视觉构建器代码以允许用户创建一个或多个手部姿态的一个或多个处理器。姿态视觉构建器代码包括:用于呈现显示分级菜单驱动界面的GUI的代码指令;用于使用分级菜单驱动界面迭代地接收由用户指示的多个用户指令、以用于通过定义多个手部姿势特征记录和多个手部运动特征记录中的一个或多个来创建一个或多个手部姿态的逻辑序列的代码指令;以及用于生成代码分段的代码指令,该代码分段通过多个离散姿势值中的一个或多个离散姿势值的相应集合来定义一个或多个手部姿势特征记录,并且通过多个离散运动值中的一个或多个离散运动值的集合来定义一个或多个手部运动特征记录。
每个离散姿势值指示多个手部姿势特征中对应的一个,并且每个离散运动值指示多个手部运动特征中对应的一个。
手部姿势特征是选自包括以下项的群组的成员:活动手部、手掌方向、手掌旋转、一个或多个手指的弯曲、一个或多个手指的方向、两个或更多个手指之间的相对位置和/或两个或更多个手指之间的接触。
手部运动特征是选自包括以下项的群组的成员:运动特性和/或运动脚本。运动脚本定义手部运动和/或一个或多个手指的运动中的一项或多项。
表示上述至少一个手部姿态的逻辑序列由唯一的FSM模型定义。
可选地,生成的代码分段符合姿态API。
可选地,GUI显示逻辑序列,使得一个或多个手部姿势特征记录和一个或多个手部运动特征记录中的每一个被指派构造区域,构造区域与分级菜单驱动界面的相关联实例一起被显示。
可选地,相关联实例是分级弧形菜单结构,分级弧形菜单结构包括形状为弧形的多个菜单,每个菜单具有多个特征字段中的一个或多个。分级弧形菜单结构具有多个级别中的一个或多个:由GUI在相临于构造区域处显示的第一级弧形菜单、以及多个下一级弧形菜单中的一个或多个。多个下一级弧形菜单中的每个与相应的前一级弧形菜单相邻,并且具有距构造区域的中心更大的半径。多个特征字段中的每个与姿态特征相关联,该姿态特征被指派多个离散姿势值和/或多个离散运动值中的至少一项。
每个下一级弧菜单由GUI在前一级弧菜单的一个或多个字段中的指示之后呈现。指示由用户作出。
可选地,一个或多个特征字段被主动显示以指示相关联的手部姿态创建操作的可用性。
可选地,通过捕获一个或多个手部姿势和/或手部运动,多个手部姿势特征记录和/或多个手部运动特征记录中的一个或多个被包括在逻辑序列中。一个或多个手部姿势和/或手部运动由用户表达并且由一个或多个成像设备捕获。
根据本公开的一些实施例,提供了一种用于创建手部姿态的计算机实现的方法。该方法使用在一个或多个处理器上执行的应用代码。该方法包括:向用户呈现GUI,其中GUI显示分级菜单驱动界面;使用分级菜单驱动界面迭代地接收由用户指示的多个用户指令,以用于通过定义多个手部姿态特征记录和/或多个手部运动特征记录中的一个或多个来创建一个或多个手部姿态的逻辑序列;以及生成代码分段,代码分段通过多个离散姿势值中的一个或多个离散姿势值的集合来定义一个或多个手部姿势特征记录并且通过多个离散运动值中的一个或多个离散运动值的集合来定义一个或多个手部运动特征记录。
每个离散姿势值指示多个手部姿势特征中对应的一个,并且每个离散运动值指示多个手部运动特征中对应的一个。
手部姿势特征以下组中的一项,该组包括:活动手部、手部方向、手掌旋转、一个或多个手指的弯曲、一个或多个手指的方向、两个或更多个手指之间的相对位置和/或两个或更多个手指之间的接触。
手部运动特征是选自包括以下项的群组的成员:运动属性和/或运动脚本。运动脚本定义手部运动和至少一个手指的运动中的至少一项。
根据本公开的一些实施例,提供了一种用于创建手部姿态的存储在非暂态计算机可读存储介质中的软件程序产品。该软件程序产品包括:用于向用户呈现图形用户界面(GUI)的第一程序指令,其中GUI显示分级菜单驱动界面;用于使用分级菜单驱动界面迭代地接收由用户指示的多个用户指令以用于通过定义多个手部姿势特征记录和/或手部运动特征记录中的一个或多个来创建一个或多个手部姿态的逻辑序列的第二程序指令代码指令;以及用于生成代码分段的第三程序指令代码指令,代码分段通过多个离散姿势值中的一个或多个离散姿势值来定义一个或多个手部姿势特征记录并且通过多个离散运动值中的一个或多个离散运动值来定义一个或多个手部运动特征记录。第一、第二和第三程序指令由一个或多个计算机化处理器从非暂态计算机可读存储介质来执行。
每个离散姿势值指示多个手部姿势特征中对应的一个,并且每个离散运动值指示多个手部运动特征中对应的一个。
手部姿势特征是选自包括以下项的群组的成员::活动手部、手掌方向、手掌旋转、一个或多个手指的弯曲,一个或多个手指的方向,两个或更多个手指之间的相对位置和/或两个或更多个手指之间的接触。
手部运动特征是选自包括以下项的群组的成员:运动属性和/或运动脚本,上述运动脚本定义手部运动和至少一个手指的运动中的至少一项。
表示一个或多个手部姿态的逻辑序列由唯一的FSM模型定义。
可选地,生成的代码分段符合姿态API。
可选地,GUI显示逻辑序列,使得一个或多个手部姿势特征记录和一个或多个手部运动特征记录中的每个被指派构造区域,构造区域与分级菜单驱动接口的相关联实例一起被显示。
可选地,相关联实例是分级弧形菜单结构,分级弧形菜单结构包括形状为弧形的多个菜单,每个菜单具有多个特征字段中的一个或多个。分级弧形菜单结构具有多个级别中的一个或多个、由GUI在相邻于构造区域处显示的第一级弧形菜单、以及多个下一级弧形菜单中的一个或多个。多个下一级弧形菜单中的每个与相应的前一级弧形菜单相邻并且具有距构造区域的中心更大的半径。多个特征字段中的每个与姿态特征相关联,该姿态特征被指派多个离散姿势值和/或多个离散运动值中的至少一项。
每个下一级弧菜单由GUI在前一级弧菜单的一个或多个字段中的指示之后呈现。指示由用户作出。
可选地,一个或多个特征字段被主动显示以指示相关联的手部姿态创建操作的可用性。
为了清楚起见,在单独的实施例的上下文中描述的本文中描述的示例的某些特征也可以在单个实施例中组合提供。相反地,为了简洁起见,在单个实施例的上下文中描述的本文中描述的示例的各种特征也可以单独地或以任何合适的子组合提供,或者在本公开的任何其他描述的实施例中合适地提供。在各种实施例的上下文中描述的某些特征不被认为是那些实施例的基本特征,除非这个实施例在没有那些元件的情况下不起作用。

Claims (15)

1.一种用于创建手部姿态表示的系统,包括:
接口,所述接口用于与用户交互;
存储装置,所述存储装置存储多个离散姿势值和多个离散运动值;
存储器,所述存储器用于存储姿态视觉构建器代码;
至少一个处理器,所述至少第一处理器被耦合到所述接口、所述存储装置和所述存储器以执行所述姿态视觉构建器代码,以允许所述用户创建至少一个手部姿态,所述姿态视觉构建器代码包括:
用于向所述用户呈现图形用户界面(GUI)的代码指令,所述GUI显示分级菜单驱动界面;
用于使用所述分级菜单驱动界面迭代地接收由所述用户指示的多个用户指令、以用于通过定义多个手部姿势特征记录和多个手部运动特征记录中的至少一项来创建至少一个手部姿态的逻辑序列的代码指令;以及
用于生成代码分段的代码指令,所述代码分段通过所述多个离散姿势值中的至少一个离散姿势值来定义所述至少一个手部姿势特征记录,并且通过所述多个离散运动值中的至少一个离散运动值来定义所述至少一个手部运动特征记录。
2.根据权利要求1所述的系统,其中所述离散姿势值中的每个离散姿势值指示多个手部姿势特征中对应的一个手部姿势特征,并且所述离散运动值中的每个离散运动值指示多个手部运动特征中对应的一个手部运动特征。
3.根据权利要求2所述的系统,其中所述手部姿势特征是选自包括以下项的群组的成员:活动手部、手掌方向、手掌旋转、至少一个手指的弯曲、至少一个手指的方向、至少两个手指之间的相对位置和至少两个手指之间的接触。
4.根据权利要求2所述的系统,其中所述手部运动特征是选自包括以下项的群组的成员:运动属性和运动脚本,所述运动脚本定义手部运动和至少一个手指的运动中的至少一项。
5.根据权利要求1所述的系统,其中表示所述至少一个手部姿态的所述逻辑序列由唯一的有限状态机模型定义。
6.根据权利要求1所述的系统,还包括:所述代码分段符合姿态应用用户界面(API)。
7.根据权利要求1所述的系统,还包括:所述GUI显示所述逻辑序列,使得所述至少一个手部姿势特征记录和所述至少一个手部运动特征记录中的每一项被指派构造区域,所述构造区域与所述分级菜单驱动界面的相关联实例一起被显示。
8.根据权利要求7所述的系统,还包括:所述相关联实例是分级弧形菜单结构,所述分级弧形菜单结构包括形状为弧形的多个菜单,每个菜单具有多个特征字段中的至少一个特征字段,所述分级弧形菜单结构具有多个级别中的至少一个级别:
第一级弧形菜单,所述第一级弧形菜单由所述GUI在相邻于所述构造区域处显示;以及
多个下一级弧形菜单中的至少一个,所述多个下一级弧形菜单中的每个下一级弧形菜单与相应的前一级弧形菜单相邻,并且具有距所述构造区域的中心更大的半径:
其中所述多个特征字段中的每个特征字段与姿态特征相关联,所述姿态特征被指派以下中的至少一项:所述多个离散姿势值和所述多个离散运动值。
9.根据权利要求8所述的系统,其中每个所述下一级弧形菜单由所述GUI在所述前一级弧形菜单的所述至少一个字段中的指示之后呈现,所述指示由所述用户作出。
10.根据权利要求8所述的系统,还包括:所述至少一个特征字段被主动显示以指示相关联的手部姿态创建操作的可用性。
11.根据权利要求1所述的系统,还包括:通过捕获手部姿势和手部运动中的至少一项,所述多个手部姿势特征记录和所述多个手部运动特征记录中的至少一项被包括在所述逻辑序列中,所述手部姿势和手部运动中的至少一项由所述用户表达并且由至少一个成像设备捕获。
12.一种用于创建手部姿态表示的计算机实现的方法,包括:
使用执行程序指令的至少一个处理器以用于:
向用户呈现图形用户界面(GUI),所述GUI显示分级菜单驱动界面;
使用所述分级菜单驱动界面迭代地接收由所述用户指示的多个用户指令,以用于通过定义多个手部姿势特征记录和多个手部运动特征记录中的至少一项来创建至少一个手部姿态的逻辑序列;以及
生成代码分段,所述代码分段通过所述多个离散姿势值中的至少一个离散姿势值来定义所述至少一个手部姿势特征记录,并且通过所述多个离散运动值中的至少一个离散运动值来定义所述至少一个手部运动特征记录。
13.根据权利要求12所述的计算机实现的方法,其中所述离散姿势值中的每个离散姿势值指示多个手部姿势特征中对应的一个手部姿势特征,并且所述离散运动值中的每个离散运动值指示多个手部运动特征中对应的一个手部运动特征。
14.根据权利要求13所述的计算机实现的方法,其中所述手部姿势特征是选自包括以下项的群组的成员:活动手部、手部方向、手掌旋转、至少一个手指的弯曲、至少一个手指的方向、至少两个手指之间的相对位置和至少两个手指之间的接触。
15.根据权利要求13所述的计算机实现的方法,其中所述手部运动特征是选自包括以下项的群组的成员:运动属性和运动脚本,所述运动脚本定义手部运动和至少一个手指的运动中的至少一项。
CN201680077395.2A 2015-12-31 2016-12-21 姿态视觉构建器工具 Pending CN108431735A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/985,775 2015-12-31
US14/985,775 US10310618B2 (en) 2015-12-31 2015-12-31 Gestures visual builder tool
PCT/US2016/067898 WO2017116883A1 (en) 2015-12-31 2016-12-21 Gestures visual builder tool

Publications (1)

Publication Number Publication Date
CN108431735A true CN108431735A (zh) 2018-08-21

Family

ID=57777733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680077395.2A Pending CN108431735A (zh) 2015-12-31 2016-12-21 姿态视觉构建器工具

Country Status (4)

Country Link
US (1) US10310618B2 (zh)
EP (1) EP3398033A1 (zh)
CN (1) CN108431735A (zh)
WO (1) WO2017116883A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112034975A (zh) * 2019-06-03 2020-12-04 博世汽车部件(苏州)有限公司 手势过滤方法、系统、装置及可读存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854308B1 (en) * 2016-02-17 2023-12-26 Ultrahaptics IP Two Limited Hand initialization for machine learning based gesture recognition
US11841920B1 (en) 2016-02-17 2023-12-12 Ultrahaptics IP Two Limited Machine learning based gesture recognition
US11714880B1 (en) * 2016-02-17 2023-08-01 Ultrahaptics IP Two Limited Hand pose estimation for machine learning based gesture recognition
IT201700088977A1 (it) * 2017-08-02 2019-02-02 St Microelectronics Srl Procedimento per il riconoscimento di gesti, circuito, dispositivo e prodotto informatico corrispondenti
US11294472B2 (en) * 2019-01-11 2022-04-05 Microsoft Technology Licensing, Llc Augmented two-stage hand gesture input
CN114625255B (zh) * 2022-03-29 2023-08-01 北京邮电大学 面向可视化视图构建的徒手交互方法、可视化视图构建装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020089541A1 (en) * 2000-02-14 2002-07-11 Julian Orbanes System for graphically interconnecting operators
CN104969146A (zh) * 2012-11-05 2015-10-07 俄尼索斯软件有限公司 用于开发和播放自然用户接口应用的方法和装置
CN106055091A (zh) * 2016-05-16 2016-10-26 电子科技大学 一种基于深度信息和校正方式的手部姿态估计方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6252598B1 (en) 1997-07-03 2001-06-26 Lucent Technologies Inc. Video hand image computer interface
CN101536494B (zh) 2005-02-08 2017-04-26 奥布隆工业有限公司 用于基于姿势的控制系统的系统和方法
US9910497B2 (en) 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8972902B2 (en) 2008-08-22 2015-03-03 Northrop Grumman Systems Corporation Compound gesture recognition
JP4384240B2 (ja) 2008-05-28 2009-12-16 株式会社東芝 画像処理装置、画像処理方法、画像処理プログラム
EP2304527A4 (en) 2008-06-18 2013-03-27 Oblong Ind Inc GESTIK BASED CONTROL SYSTEM FOR VEHICLE INTERFACES
DE102008052928A1 (de) 2008-10-23 2010-05-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung, Verfahren und Computerprogramm zur Erkennung einer Geste in einem Bild, sowie Vorrichtung, Verfahren und Computerprogramm zur Steuerung eines Geräts
US8487938B2 (en) * 2009-01-30 2013-07-16 Microsoft Corporation Standard Gestures
US20100281435A1 (en) * 2009-04-30 2010-11-04 At&T Intellectual Property I, L.P. System and method for multimodal interaction using robust gesture processing
US8631355B2 (en) * 2010-01-08 2014-01-14 Microsoft Corporation Assigning gesture dictionaries
DE102010036906A1 (de) * 2010-08-06 2012-02-09 Tavendo Gmbh Konfigurierbares Pie-Menü
US20120092286A1 (en) 2010-10-19 2012-04-19 Microsoft Corporation Synthetic Gesture Trace Generator
CN106125921B (zh) 2011-02-09 2019-01-15 苹果公司 3d映射环境中的凝视检测
EP2715490B1 (en) 2011-05-23 2018-07-11 Haworth, Inc. Digital whiteboard collaboration apparatuses, methods and systems
US9201666B2 (en) * 2011-06-16 2015-12-01 Microsoft Technology Licensing, Llc System and method for using gestures to generate code to manipulate text flow
US8631317B2 (en) 2011-06-28 2014-01-14 International Business Machines Corporation Manipulating display of document pages on a touchscreen computing device
US9086794B2 (en) * 2011-07-14 2015-07-21 Microsoft Technology Licensing, Llc Determining gestures on context based menus
US9501152B2 (en) 2013-01-15 2016-11-22 Leap Motion, Inc. Free-space user interface and control using virtual constructs
US9600169B2 (en) * 2012-02-27 2017-03-21 Yahoo! Inc. Customizable gestures for mobile devices
US9536135B2 (en) 2012-06-18 2017-01-03 Microsoft Technology Licensing, Llc Dynamic hand gesture recognition using depth data
US20140130090A1 (en) 2012-11-05 2014-05-08 Microsoft Corporation Contextual gesture controls
US20140173563A1 (en) 2012-12-19 2014-06-19 Microsoft Corporation Editor visualizations
US20140229858A1 (en) 2013-02-13 2014-08-14 International Business Machines Corporation Enabling gesture driven content sharing between proximate computing devices
WO2014157885A1 (en) * 2013-03-27 2014-10-02 Samsung Electronics Co., Ltd. Method and device for providing menu interface
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US20150007118A1 (en) 2013-06-27 2015-01-01 International Business Machines Corporation Software development using gestures
US9207771B2 (en) 2013-07-08 2015-12-08 Augmenta Oy Gesture based user interface
US20150029092A1 (en) 2013-07-23 2015-01-29 Leap Motion, Inc. Systems and methods of interpreting complex gestures
US20150140934A1 (en) * 2013-09-10 2015-05-21 Playtabase, LLC Wireless motion activated user device with bi-modality communication
US20150084859A1 (en) 2013-09-23 2015-03-26 Yair ITZHAIK System and Method for Recognition and Response to Gesture Based Input
US9886094B2 (en) 2014-04-28 2018-02-06 Microsoft Technology Licensing, Llc Low-latency gesture detection
US9785247B1 (en) 2014-05-14 2017-10-10 Leap Motion, Inc. Systems and methods of tracking moving hands and recognizing gestural interactions
US9916010B2 (en) 2014-05-16 2018-03-13 Visa International Service Association Gesture recognition cloud command platform, system, method, and apparatus
US20160096072A1 (en) 2014-10-07 2016-04-07 Umm Al-Qura University Method and system for detecting, tracking, and visualizing joint therapy data
WO2016090483A1 (en) * 2014-12-08 2016-06-16 Rohit Seth Wearable wireless hmi device
US20160357519A1 (en) * 2015-06-05 2016-12-08 Microsoft Technology Licensing, Llc Natural Language Engine for Coding and Debugging
US20170003746A1 (en) * 2015-06-30 2017-01-05 International Business Machines Corporation Hand-gesture input

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020089541A1 (en) * 2000-02-14 2002-07-11 Julian Orbanes System for graphically interconnecting operators
CN104969146A (zh) * 2012-11-05 2015-10-07 俄尼索斯软件有限公司 用于开发和播放自然用户接口应用的方法和装置
CN106055091A (zh) * 2016-05-16 2016-10-26 电子科技大学 一种基于深度信息和校正方式的手部姿态估计方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112034975A (zh) * 2019-06-03 2020-12-04 博世汽车部件(苏州)有限公司 手势过滤方法、系统、装置及可读存储介质
CN112034975B (zh) * 2019-06-03 2024-04-02 博世汽车部件(苏州)有限公司 手势过滤方法、系统、装置及可读存储介质

Also Published As

Publication number Publication date
US10310618B2 (en) 2019-06-04
WO2017116883A1 (en) 2017-07-06
EP3398033A1 (en) 2018-11-07
US20170192514A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
CN108431735A (zh) 姿态视觉构建器工具
CN102915112B (zh) 用于近距离动作跟踪的系统和方法
Jankowski et al. Advances in interaction with 3D environments
Jankowski et al. A survey of interaction techniques for interactive 3D environments
CN102023706B (zh) 用于与虚拟环境中的对象进行交互的系统
Beattie et al. Taking the LEAP with the Oculus HMD and CAD-Plucking at thin Air?
CN108475111A (zh) 变换轻量骨骼并且使用逆运动学产生有关节的骨骼
US10599324B2 (en) Hand gesture API using finite state machine and gesture language discrete values
Park AR-Room: a rapid prototyping framework for augmented reality applications
CN111643899A (zh) 一种虚拟物品显示方法、装置、电子设备和存储介质
Johnson et al. Bento box: An interactive and zoomable small multiples technique for visualizing 4d simulation ensembles in virtual reality
Alshaal et al. Enhancing virtual reality systems with smart wearable devices
Dörner et al. Content creation and authoring challenges for virtual environments: from user interfaces to autonomous virtual characters
Erdolu Lines, triangles, and nets: A framework for designing input technologies and interaction techniques for computer-aided design
US9870063B2 (en) Multimodal interaction using a state machine and hand gestures discrete values
Liu et al. COMTIS: Customizable touchless interaction system for large screen visualization
US9898256B2 (en) Translation of gesture to gesture code description using depth camera
Sadun The Core IOS 6 Developer's Cookbook
Messaci et al. Zoom‐fwd: Efficient technique for 3D gestual interaction with distant and occluded objects in virtual reality
Buda Rotation techniques for 3D object interaction on mobile devices
Rosenberg et al. Virtual hand representations to support natural interaction in immersive environments
Reimann et al. Computer vision based interaction techniques for mobile augmented reality
Melkote A study on natural user interface usability
García et al. Prototyping and evaluating glove-based multimodal interfaces
Sutherland et al. UI traces: Supporting the maintenance of interactive software

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination