CN102177513A - 用于在主要尺寸的数据空间中导航的控制系统 - Google Patents

用于在主要尺寸的数据空间中导航的控制系统 Download PDF

Info

Publication number
CN102177513A
CN102177513A CN2009801402930A CN200980140293A CN102177513A CN 102177513 A CN102177513 A CN 102177513A CN 2009801402930 A CN2009801402930 A CN 2009801402930A CN 200980140293 A CN200980140293 A CN 200980140293A CN 102177513 A CN102177513 A CN 102177513A
Authority
CN
China
Prior art keywords
health
data
posture
frame
space
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
CN2009801402930A
Other languages
English (en)
Other versions
CN102177513B (zh
Inventor
约翰·S·昂德科夫勒
克温德拉·H·克拉默
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.)
Oblong Industries Inc
Original Assignee
Oblong Industries 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/417,252 external-priority patent/US9075441B2/en
Priority claimed from US12/487,623 external-priority patent/US20090278915A1/en
Application filed by Oblong Industries Inc filed Critical Oblong Industries Inc
Publication of CN102177513A publication Critical patent/CN102177513A/zh
Application granted granted Critical
Publication of CN102177513B publication Critical patent/CN102177513B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Image Processing (AREA)

Abstract

公开了用于在数据空间中导航的系统和方法。该导航包括从经由检测器接收到的姿势数据中检测身体的姿势。姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据。检测包括使用姿势数据来识别姿势。该导航包括将姿势转换成姿势信号,以及响应于姿势信号在数据空间中导航。数据空间是包括表示在物理空间中的数据集的数据表示空间。

Description

用于在主要尺寸的数据空间中导航的控制系统
相关申请
本专利申请是2006年2月8日提交的美国(US)专利申请第11/350,697号的部分继续申请。
本申请是2008年4月24日提交的US专利申请第12/109,263号的部分继续申请。
本申请是2009年4月2日提交的US专利申请第12/417,252号的部分继续申请。
本申请是2009年6月18日提交的US专利申请第12/487,623号的部分继续申请。
本申请要求2008年9月3日提交的US专利申请第61/093,852号的权利(benefit)。
技术领域
本发明一般涉及计算机系统领域,以及尤其涉及这样的系统和方法:该系统和方法使得能够进行人类操作员的手的线性空间移动或执行类似空间的活动,以控制在图形或其它数据表示空间中的线性接近(verging)或移动(trucking)运动。
背景技术
用户使用诸如鼠标、键盘、游戏杆、十字键等,通过操纵窗口中或显示器上的数据或图像,或通过从与窗口或关联程序相关联的菜单中选择操作,可以输入命令并且与计算机系统交互。这样的输入设备还可用作位置转换设备,该位置转换设备能用于定位图形的屏幕上指针,例如光标。例如,光标用于指示要被修改的字符,或用于指示要输入数据或要执行操作的位置。光标通常以某种形式或外表呈现在计算机显示器上。使用者操纵输入设备将导致光标的相应移动。因此,例如,鼠标或其它输入设备的移动导致光标在同一方向上的移动。
但是,这些传统的输入设备经常只是设备。用户需要具有有线的或无线的鼠标或其它输入设备,并且使用该设备来管理选择、位置转换、激活、和其它输入功能。这些物理设备的使用经常不自然或不直观。另一缺点是需要进行某些操作以改变输入设备的上下文,以便可执行不同的功能。
参考合并
本说明书中提及的每个专利、专利申请、和/或公开通过参考整体上合并于此,以达到就好像具体地和个别地指示要通过参考而合并的每个单独的专利、专利申请、和/或公开的程度。
附图说明
图1是根据实施例的姿势(gesture)控制系统的方框图。
图2是根据实施例的用于使用姿势控制系统在数据空间中导航(navigate)的流程图。
图3是根据实施例的在显示器上呈现的示例数据帧。
图4示出根据实施例的一侧推回(one-sided pushback)的情景,其中,身体(body)是处于打开位置的操作员的手,手掌面朝向前的方向(沿z轴)(例如,朝向在操作员前面的显示屏)。
图5(全体图5a、图5b、图5c和图5d)是根据实施例的指示在直到死区临界(threshold)点的死区(dead zone)中的身体推回姿势的图示符(glyph)的示例。
图6(全体图6a、图6b、图6c和图6d)是根据实施例的指示在超过死区临界(threshold)点(沿着z轴朝向显示器并离开操作员)的死区(dead zone)中的身体推回姿势的图示符(glyph)的示例。
图7是根据实施例的由相应的推回引起的数据帧的第一相对z轴位移(displacement)的示例。
图8是根据实施例的由相应的推回引起的数据帧的第二相对z轴位移(displacement)的示例。
图9是根据实施例的由身体的侧向(lateral)运动引起的数据帧的侧向x轴位移的示例。
图10示出根据实施例的示例物理情景,其中,将身体水平保持在类似平板的显示表面之上。
图11是根据实施例的当使推回系统参与进来时以差别可见度逐渐增强的与当前层(例如当前数据帧)邻近的层(例如数据帧)的示例。
图12是根据实施例的堆栈(stack)的向上平移的示例,其中,当与当前之前的层邻近的层变得与当前之前的层一样可见时,当前之前的层(例如,当前之前的数据帧)呈现更大的透明度(在该示例中变得不可见)。
图13是根据实施例的标记标签的图。
图14是根据实施例的在姿势词汇中的姿势的图。
图15是根据实施例的在姿势词汇中的取向的图。
图16是根据实施例的在姿势词汇中的两只手组合的图。
图17是根据实施例的在姿势词汇中的取向混合(blend)的图。
图18是根据实施例的系统操作的流程图。
图19(全体图19/1和图19/2)是根据实施例的命令的示例。
图20是根据实施例的用于在(over)扩展的景深上提取三维信息的基于姿势的控制系统的方框图。
图21是根据实施例的在基于姿势的控制系统中使用的波前(wavefront)编码成像系统的方框图。
图22是根据实施例的用于使用包括两台波前编码摄像机的波前编码成像系统来在扩展的景深上提取三维信息的基于姿势的控制系统的方框图。
图23是根据实施例的用于在扩展的景深上提取三维信息的基于姿势的控制系统的流程图。
图24是根据实施例的在基于姿势的控制系统中使用的波前编码设计过程的方框图。
图25是根据实施例的包括使用色拉(slaw)、蛋白质(protein)和池(pool)的数据表示的处理环境的方框图。
图26是根据实施例的蛋白质的方框图。
图27是根据实施例的记述的方框图。
图28是根据实施例的摄取(ingest)的方框图。
图29是根据实施例的色拉的方框图。
图30A是根据实施例的在池中的蛋白质的方框图。
图30B(全体图30B/1和图30B/2)示出根据实施例的色拉头格式。
图30C是根据实施例的用于使用蛋白质的流程图。
图30D是根据实施例的用于构建或生成蛋白质的流程图。
图31是根据实施例的包括使用色拉(slaw)、蛋白质(protein)和池(pool)的数据交换的处理环境的方框图。
图32是根据实施例的包括多个设备和在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许多个运行程序共享和共同地响应设备生成的事件。
图33是根据替换实施例的包括多个设备和在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许多个运行程序共享和共同地响应设备生成的事件。
图34是根据另一替换实施例的包括多个输入设备和(coupled among)在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许多个运行程序共享和共同地响应输入设备生成的事件。
图35是根据另一实施例的包括多个设备和(coupled among)在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许多个运行程序共享和共同地响应设备生成的图像事件。
图36是根据另一实施例的包括多个设备和(coupled among)在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许运行程序的状态(stateful)检查、可视化、和调试。
图37是根据另外的替换实施例的包括多个设备和(coupled among)在设备中的一个或更多个上运行的多个程序的处理环境的方框图,其中,原生质(plasma)构造(即池、蛋白质和色拉)用于允许影响或控制在那个处理池中生成或放置的状态信息的特性。
具体实施方式
描述了用于空间操作环境(SOE)的系统和方法。包括基于姿势的控制系统的SOE也被称为空间用户界面(SUI)或空间界面(SI)。描述了用于在SOE的数据空间中导航的系统和方法。导航包括从经由检测器接收到的姿势数据中检测身体的姿势。姿势数据是身体在时间点和物理空间点处的即时状态的绝对三维空间位置数据。检测包括使用姿势数据来识别姿势。导航包括将姿势转换成姿势信号,以及响应于姿势信号在数据空间中导航。数据空间是包括表示在物理空间中的数据集的数据表示空间。
在以下描述中,为了提供对SOE的更深入的理解,详细描述了多个特征。能够看出的是,无需这些特定的细节也可以实现SOE。在其它情况下,没有详细描述公知的特征。
空间操作环境(SOE)
图1是根据实施例的SOE的方框图。用户将手101和102设置在摄像机104A-104D的阵列的观察区域中。摄像机检测手指和手101、102的位置、取向和移动,以及生成到预处理器105的输出信息。预处理器105将摄像机输出转换成被提供到系统的计算机处理单元107的姿势信号。计算机107使用输入信息来生成用于控制一个或更多个屏幕上光标的命令,以及将视频输出提供到显示器103。
尽管示出系统具有作为输入的单个用户的手,但是可使用多个用户来实现SOE 100。另外,排除手或加上手,系统可追踪用户身体的任意部位或多个部位,包括头、脚、腿、手臂、肘、膝盖等。
在示出的实施例中,使用四台摄像机来检测用户的手101、102的位置、取向、和移动。应该理解的是,在不偏离SOE的范围或精神的情况下,SOE 100也可包括更多的摄像机(例如,六台摄像机、八台摄像机等)或更少的摄像机(例如,两台摄像机)或传感器。另外,尽管在示例实施例中对称地布置摄像机或传感器,但是在SOE 100中没有对这种对称的要求。在SOE 100中可使用允许用户的手的位置、取向、和移动的任何数量或定位的摄像机或传感器。
在一个实施例中,使用的摄像机是能够捕获灰度级图像的运动捕获摄像机。在一个实施例中,使用的摄像机是Vicon制造的那些摄像机,例如Vicon MX40摄像机。该摄像机包括摄像机上的处理,以及能够以每秒1000帧来捕获图像。运动捕获摄像机能够检测和定位标记器。
实施例的SOE中的摄像机或传感器可采取各种形式。实施例使用耦合在一起的两个或更多个小摄像机来形成立体视觉系统。该立体系统最少生成在其观察区域内的对象的三维数据点群(cloud)。数据集中的点的解析深度(depth)准确度根据包括离摄像机基线的距离在内的多个因素而不同,但是该准确度为大约1mm。
给定由立体传感器集生成的点群,SOE的部件提取手和/或手指位置,反过来从手和/或手指位置可恢复量化的手姿势和连续的手和手指取向向量。除了初始输入是未组织的点群而不是聚集标签(aggregate-tagged)的数据之外,用于该恢复的方法实质上类似于以下描述的方法。将手和手指表示提供给实现系统交互模式的机制。
实施例使用多个立体耦合摄像机集合,或者使用修改的处理像素的相关性算法以操作多于一个的摄像机。增加摄像机的数量能够例如扩展观察区域,减少由手的部分的遮挡引起的困难,和/或增大点群数据的准确度。
在描述的实施例中,摄像机是用于光检测的传感器。在其它实施例中,摄像机或其它检测器可用于电磁检测、静磁检测、RFID检测或任何其它适合类型的检测。
预处理器105生成三维空间点重构和骨骼点标记。姿势转换器106将空间信息和标记器运动信息转换成能被计算机处理器解释的命令语言,以更新显示器上光标的位置、形状和动作。在SOE 100的替换实施例中,将预处理器105和姿势转换器106集成或组合成单个设备。
计算机107可以是例如由Apple、Dell、或其它适合的制造商制造的任何通用目的的计算机。计算机107运行应用并提供显示输出。要不然来自于鼠标或其它现有的输入设备的光标信息现在来自于姿势系统。
在数据空间中导航
实施例的SOE使得能够进行“推回”、进行人类操作员的手的线性空间移动、或执行类似空间的活动,以控制在图形或其它数据表示空间中的线性接近或移动运动。SOE及由其建立的计算和认知关联提供了在缩放等级中导航的基础的、组织化的方式,以遍历大体上线性的“深度维”,或更一般地,以访问量化的或“限位的(detented)”参数空间。SOE还提供了操作员可自愿地获取附加的上下文的有效方法:用于了解是空间的、概念上的、还是计算的邻近和邻接的快速技术。
在某些实施例中,推回技术可采用传统的输入设备(例如,鼠标、轨迹球、集成的滚动条和滑块)或依靠操作员本人外部的被标记的或被追踪的对象(例如,仪表运动关联、静磁追踪的“输入砖块(input brick)”)。在其它替换实施例中,推回实现可足够作为整个控制系统。
实施例的SOE是更大的空间交互系统的一部分或集成到更大的空间交互系统中,其中,更大的空间交互系统取代惯常的基于鼠标的用于控制计算机的图形用户界面(“WIMP”UI)方法,该更大的空间交互系统替代地包括(a)追踪一种或更多种对象(例如,人手、在人手上的物体、无生命物体等)的物理传感器;(b)用于将感测到的手的展开位置、取向和姿势解析成姿势事件序列的装置;(c)用于表示这种空间和姿势事件的描述方案;(d)用于将这种姿势事件分发给控制程序或分发到控制程序之内的框架(framework);(e)用于将通过姿势事件流编码的人类意图(命令)与事件流本身和应用特定的事件解释序列这两者的图形描述、听觉描述、和其它显示形式的描述相同步,以下将详细描述其全部。在这样的实施例中,推回系统与附加的空间和姿势输入接口技术相集成。
图2是根据实施例的在数据空间中导航的流程图。导航包括从经由检测器202接收到的姿势数据中检测身体的姿势。姿势数据是身体在时间点和物理空间点处的即时状态的绝对三维空间位置数据。检测包括使用姿势数据204来识别姿势。导航包括将姿势转换成姿势信号206,以及响应于姿势信号208在数据空间中导航。数据空间是包括表示在物理空间中的数据集的数据表示空间。
如果实施例的整体的往返延迟(手的运动到传感器、到推回解释系统的姿势分析、到呈现到显示设备的计算机图形、返回到操作员的视觉系统)保持为低(例如,实施例呈现大约15毫秒的延迟),以及当正确地调整系统的其它参数时,推回交互的感知结果是物理因果关系的明显感觉:SOE使推压弹簧支承(spring-loaded)结构的物理谐振象征(resonant metaphor)精确化(literalize)。感知到的因果关系是非常有效的反馈。与推回系统提供的其它更抽象的图形反馈形式以及有意抑制在解释操作员移动方面的某种程度上的自由一起,这种反馈反过来允许稳定、可靠、和可重复地将人类的大小肌肉活动用作控制机制。
在估计SOE的上下文时,很多数据集本质上是空间的:上述数据集表示在精确的(literal)物理空间中的现象、事件、观测或结构。对于更抽象的其它数据集或对精确的甚至非空间的信息进行编码的其它数据集,经常期望的是,准备这样的表示(视觉的、听觉的、或涉及其它显示形式的):通过标量值(scalar-valued)的参数来控制该表示的某个基础方面。因而,将该参数与空间维相关联经常也是有益的。如以下所描述的,从借助于推回机制的操纵中获益的是对该单个标量参数的操纵。
表示还可将特权给予(privilege)数据集最优考虑(regard)的表示参数的少量不连续值(实际上,有时仅一个值)。在这种情况下,论及“限位参数”是有用的,或者如果已将参数明确地映射到一维表示空间上,论及“限位参数”是有用的。本文中术语“限位”的使用旨在不仅描述参数的优选量化,而且描述棘轮的视觉触觉感觉、磁对准机制、穿梭变速(jog-shuttle)轮、和其它大量的具有有意的机械限位器的已有设备。
这样的参数的不证自明甚至至关重要的示例包括但不限于:(1)合成摄像机在计算机图形环境中离数据集的可呈现(renderable)表示的距离;(2)从原始数据集中采样数据和将数据转换成可呈现形式的密度;(3)从时变数据集中检索样本和将样本转换成可呈现表示的时间指数。这些是通用方法,还存在无数的特定于域的参数化。
SOE的推回一般将数据集的参数控制轴与物理空间中的本地相关的“深度维”对准,以及允许沿着深度维的结构化的真实空间运动,以影响沿控制轴的数据空间转换。结果是用于在参数空间中导航的非常高效的方法。下面是如SOE中所实现的推回的代表实施例的详细描述。
在推回实施例中,操作员站在大的墙显示器之前的舒适距离处,在该墙显示器上出现包括文本和图像的单个“数据帧”,其中,图像数据元素可以是静态的或动态的。图3是根据实施例的在显示器300上呈现的示例数据帧310。该实施例的数据帧310包括图像,但是不限于如此。本身是二维构造的数据帧310仍然常驻在三维计算机图形呈现环境中,该三维计算机图形呈现环境的基础坐标系统已被布置成与便于描述房间和包括显示器300及操作员的房间内容的真实世界的坐标系相一致。
通过以高精确度和高的时间比率解析操作员的手指以及可能整个手的全体的位置和取向的传感器来追踪操作员的手。为了表征每只手的“姿势”,即手指相对于彼此以及相对于手的全体的几何布置,系统对结果空间数据进行分析。虽然该示例实施例追踪的目标是人手,能够追踪作为替换实施例中的输入设备的众多的其它目标。图4示出根据实施例的一侧推回的场景,其中,身体400是处于打开位置的操作员的手,手掌面朝向前的方向(沿z轴)(例如朝向在操作员之前的显示屏)。为了该说明的目的,使墙显示器(未示出)占据x维和y维,z描述操作员与显示器之间的维。与该推回实施例相关联的姿势交互空间410包括在持续的z平面上邻近的两个空间,将远离显示器的限位间隔空间(即更接近于操作员)称作“死区”412,而更接近的半边空间是“活动区”414。死区412在向后的方向(朝向操作员并远离显示器)上无限延伸,但向前仅延伸有限的距离,结束于死区临界413。活动区414从死区临界413向前延伸到显示器。身体在活动区414中的移动交互地控制或“推回”402在显示器上呈现的数据帧或多个数据帧。
以与显示器的尺寸和纵横比精确匹配的尺寸和纵横比来构造数据帧,以及定位数据帧和确定数据帧的方向,以便数据帧的中央和标准向量与显示器的那些物理属性相一致,尽管实施例不限于如此。在从显示器直接向前以及与操作员粗略相隔一段距离处放置用于呈现场景的虚拟摄像机。在该上下文中,呈现的帧因此精确地充满显示器。
多个额外的共面的数据帧逻辑地布置在可见帧的左边和右边,间隔一致并且以最适中的间隙各自与其紧邻的邻居(参见以下描述的图6、图7和图8)相分离。因为侧向放置的邻近数据帧位于计算机图形呈现几何形状的物理/虚拟呈现边界之外,这些侧向放置的邻近数据帧不是初始可见的。如将看到的,数据空间(给定其几何结构)拥有在z轴方向上的单个自然限位装置以及多个x限位装置。
操作员将保持在第一松弛姿势的手举到肩部。然后,操作员张开手指以便手指指向上方,以及张开拇指以便拇指指向右边。操作员的手掌面向屏幕(在以下详细描述的姿势描述语言中,该姿势转换将被表达为[^^^^>:x^到||||-:x^])。检测新姿势的系统触发推回交互,以及立即记录首次输入该姿势的绝对三维空间的手的位置:将该位置用作“原点”,随后的手运动将被报告为离该“原点”的相对位移。
立即,将两个同中心的、部分透明的图示符叠加在帧的中心上(因此位于显示器的中心)。图5是根据实施例的指示在直到死区临界点的死区中的身体推回姿势的图示符501/502的示例。第二图示符502小于第一图示符501(参见图5a)指示操作员的手位于死区,由此“还”未使推回操作参与进来。当操作员将手向前移动时(向着死区临界和显示器),第二图示符502逐渐扩大(依次参见图5b、图5c和图5d)。在操作员的手位于死区临界处的点处,第二图示符502在尺寸上等同于第一图示符501(参见图5d)。该实施例的图示符501/502将图示符的同中心元素的演进示出为操作员的手从其开始点向前朝着将死区与活动区分离的死区临界的移动。当手接近临界时,图示符502的内部“露齿(toothy)”部分扩大,以及这样布置,以便当手到达临界位置时,内部图示符502和(静态)外部图示符501精确匹配。
当操作员将手从死区移开时,第二图示符502在第一图示符501内部在尺寸上收缩,但总是与第一图示符501保持同中心,以及保持在显示器的中央(依次参见图5d、图5c、图5b和图5a)。至关重要的,仅将操作员的手运动的z分量映射到图示符的缩放(scaling),而伴随手运动的x分量和y分量没有贡献。
当操作员的手遍历前面的死区临界、越过而进入活动区时,使推回机制参与进来。手的相对z轴位置(从临界测量的)执行缩放函数,并且结果值用于实现数据帧及其侧向邻居的z轴位移,以便帧的呈现图像被看见从显示器后退。于是,邻近数据帧也从显示空间的边缘“填充”而变得可见。当帧位于的平面远离摄像机而移动时,合成摄像机的连续角范围(angular subtent)几何地“捕获”帧所位于的更多个平面。连续地更新z位移,以便当操作员将手向着显示器推和将手向着自己往回拉时,感知到直接响应其运动而后退和接近的帧的侧向集合。
图7是根据实施例的由相应的推回引起的数据帧703的第一相对z轴位移(displacement)的示例。如以上所描述的,数据帧703的呈现图像被看见从显示器700后退,以及邻近数据帧702/704从显示空间的边缘“填充”而变得可见。将包括多个附加的共面数据帧的邻近数据帧702/704逻辑地布置在可见帧的左边和右边,间隔一致并且以最适中的间隙各自与其紧邻的邻居相分离。图8是根据实施例的由相应的推回引起的数据帧703的第二相对z轴位移的示例。考虑第一相对z轴位移,并且假设从导致第一相对z轴位移的那个推起进一步推操作员的手(沿z轴向显示器及远离操作员进一步推),数据帧703的呈现图像被看见从显示器700进一步后退,以便额外的邻近数据帧701/705从显示空间的边缘进一步“填充”而变得可见。
同时,成对的同中心图示符现在呈现修改后的反馈:在操作员的手在活动区时,第二图示符502从基于缩放的反作用切换到旋转反作用,在旋转反作用中,手到临界的物理z轴位移被映射到正的(在平面中)角度位移。图6是根据实施例的指示在超过死区临界点(沿z轴朝向显示器和离开操作员)的死区中的身体推回姿势的图示符501/502的示例。该实施例的图示符501/502图示了一旦操作员的手已越过了死区临界时图示符的演进—即,当已主动使推回机制参与进来时。因此,第二图示符502的顺时针旋转和逆时针旋转可视地指示操作员的手向着显示器的移动和远离显示器的移动(同时,如以前一样,第一图示符提供静态的参考状态),使得图示符的“露齿(toothy)”元素520为手到临界的位移的线性函数,从而将线性运动转换成旋转表示。
所以,在该实施例中,第二图示符502的递增顺时针旋转510可视地指示手沿z轴向显示器的移动的附加第一递增(同时,如以前一样,第一图示符提供静态的参考状态),使得图示符的“露齿(toothy)”元素520旋转与手到临界的位移的线性函数相对应的第一数量。第二图示符502的递增顺时针旋转512可视地指示手沿z轴向显示器的移动的附加第二递增(同时,如以前一样,第一图示符提供静态的参考状态),使得图示符的“露齿(toothy)”元素520旋转与手到临界的位移的线性函数相对应的第二数量。另外,第二图示符502的递增顺时针旋转514可视地指示手沿z轴向显示器的移动的第三递增(同时,如以前一样,第一图示符提供静态的参考状态),使得图示符的“露齿(toothy)”元素520旋转与手到临界的位移的线性函数相对应的第三数量。
在该样本应用中,当操作员的手在活动区中时,使第二级维的灵敏度参与进来:再次通过可能的缩放函数,将手的侧向(x轴)运动映射到水平帧序列的x位移。如果缩放函数是正的,则效果为以下之一:操作员的手的位置“跟随(following)”,以及操作员感觉其正在左右滑动帧。图9是根据实施例的由身体的侧向运动引起的数据帧的侧向x轴位移的示例。在该由侧向身体运动引起的侧向数据帧位移的示例中,数据帧从左向右滑动,使得特定的数据帧701/702经由显示空间700的左边缘从视图中消失或部分消失,而另外的数据帧705从显示空间700的右边缘填充。
最后,当操作员使其手退出手掌向前的姿势(例如,通过将手闭合成拳),推回交互终止,以及将帧集合快速返回到其原始z限位装置(即与显示器共面)。同时,侧向调整帧集合以实现单个帧与显示器的x一致;结束因而显示器居中的帧是在推回终止的一刹那离同中心的图示符的中心最近的任何帧:最近的x限位装置。可见,这里将图示符结构用作选择标线(reticle)的第二功能,但是实施例不限于如此。为了提供“弹簧支承返回(spring-loaded return)”的可视感,通常允许帧集合的z位置和x位置在短时间间隔内前进到其最终的与显示器相一致(display-coincident)的值。
该实施例中所采用的推回提供了以下有效的控制形式:(1)通过沿直的视觉上的视线—深度维—可变地对聚集的数据集进行位移来获取认知上有价值的“邻近上下文(neighborhood context)”,从而使更多的数据集进入视图(为了换取使数据集的任意给定部分的角范围(angular subtent)减小);(2)以熟悉的“滚动(scrolling)”感,通过沿其自然的水平维对侧向排列的数据集进行位移来获取邻近上下文,从而保持数据的任意给定部分的角范围,但是用旧数据的可见性来换取新数据的可见性;(3)通过快速且维约束的导航来选择数据集的离散化的元素。
在实施例的推回的另一示例中,操作员紧挨着腰部显示设备而站,显示设备的活动表面位于与地面平行的水平平面内。这里,以与之前示例的方式相同的方式来建立坐标系统:显示表面位于x-z平面,以便与物理重力矢量反向地对准表示表面法线的y轴。
图10示出根据实施例的示例物理情景,其中,将身体1000水平保持在类似平板的显示表面(未示出)之上。在该示例中,身体1000是操作员的手,但是本实施例不限于如此。推回交互是双边的,使得具有上侧死区临界1013U和下侧死区临界1013L。另外,用上侧活动区域1014U中的离散空间限位装置1015U(例如,“第一限位装置”、“第二限位装置”、“第三限位装置”、“第四限位装置”)以及下侧活动区域1014L中的离散空间限位装置1015L(例如,“第一限位装置”、“第二限位装置”、“第三限位装置”、“第四限位装置”)提供了推回动作访问的线性空间。配置实施例的交互空间,以便将包括上侧死区1012U和下侧死区1012L的相对小的死区居中在使推回参与进来的垂直(y轴)位置处,同时使活动区域1014U在死区之上而活动区域1014L在死区之下。
操作员正与堆栈中已被解析到离散平行平面(参见以下描述的图10)的示例数据集一起工作,其中,该离散平行平面为数据帧。可以以数据帧表示的物理现实的自然结果(例如,来自断层扫描的离散切片,三维集成电路的多个层等)的方式来布置数据帧,或者因为分离数据或使数据离散化(例如,以多个光谱带获取的卫星图,地理地组织的在分层中具有每十年的数据的普查数据等)是逻辑的或提供消息的(information)。数据的可视表示还可以是静态的或包括动态元素。
在未使推回功能性参与进来期间,单个层被认为是“当前的”并且被显示器以可视的突出来表示,以及被感知为与显示器物理上相一致。在该示例中,当前层之上和之下的层未可视地显现(尽管使用紧凑的插图来指示其存在)。
操作员在显示器上方展开其闭合的右手;当操作员打开手时—手指向前伸展,拇指向左,并且手掌向下指(转换:[^^^^>:vx到||||-:vx])—使推回系统参与进来。在短暂的间隔(例如200毫秒)期间,邻近当前层的一些层以差别可见度逐渐增强;用模糊滤镜和其“严重性(severity)”取决于该层到当前层的顺序距离的透明度,在下面或在上面(below or above)合成每个层。
图11是根据实施例的当使推回系统参与进来时以差别可见度逐渐增强的与当前层1101(例如当前数据帧1101)邻近的层1102(例如数据帧1102)的示例。在该示例中,堆栈包括能够使用推回系统进行遍历的众多数据帧1101-110X(其中,X是适合于数据帧的数据集的任意数量;在该示例中X为5,使得堆栈包括数据帧1101、1102、1103、1104和1105)。
同时,出现从之前示例中已熟悉的同中心反馈图示符;在这种情况下,配置交互,使得小的死区居中在使推回参与进来处的垂直(y轴)位置处,同时使活动区域均在死区之上和在死区之下。该布置为“恢复(regain)”原始层提供了辅助。在这种情况下,图示符伴随有指示与相继层的定向接近的附加的简单图形。
当操作员的手保持在死区中时,不发生层堆栈的位移。图示符呈现了与之前示例中的行为相同的“预备(preparatory)”行为,其中,当手接近区域的两个边界中的任意一个时,内部图示符逐渐增大(当然,这里的行为是双边的和对称的:在手的开始y位置处,内部图示符处于最小尺寸,以及无论手上移或下移,内部图示符向着与外部图示符一致而逐渐增大)。
当操作员的手向上移动超过死区的上平面时,内部图示符与外部图示符相结合,以及像以前一样,手在那个方向的进一步移动导致内部图示符的逆时针旋转运动。同时,层堆栈开始“向上平移(translate upward)”:在原始当前层在上的那些层呈现更大的透明度和模糊度;原始当前层本身变得更加透明和更加模糊;以及在原始当前层之下的层向更多的可见性和更少的模糊度移动。
图12是根据实施例的堆栈(stack)的向上平移的示例,其中,当与当前之前的层1101邻近的层1102(例如,数据帧1102)变得与当前之前的层一样可见时,当前之前的层1101(例如,数据帧1101)(未示出,参见图11)呈现更大的透明度(在该示例中变得不可见)。而且,当堆栈向上平移时,与目前当前层1102邻近的层1103(例如,数据帧1103)以差别可见度逐渐增强。如以上所描述的,堆栈包括能够使用推回系统进行遍历的众多数据帧1101-110X(其中,X是适合于数据帧的数据集的任意数量;在该示例中X为5,使得堆栈包括数据帧1101、1102、1103、1104和1105)。
用真实世界的距离(即,如以房间坐标系所测量的,操作员的手离其初始位置的位移)与相继层间的逻辑距离之间的映射来对层堆栈进行配置。当然,与接近图形的即时外表一样,层堆栈的转换是该映射的结果,同时,其指示(首先)显示平面与当前层之间的逐渐增大的距离;其还指示显示平面目前在当前层之下。
继续手的运动,并且层堆栈终于通过当前层和正好在下面的下一层横跨显示平面的位置;一旦超过该点,接近图形改变成指示显示平面现在高于当前层:“当前层状态”现在已被指定给下一更低的层。一般,当前层总是离物理显示平面最近的那个层,并且是当操作员从推回系统中脱离出来时将被“选择”的那个层。
当操作员继续举起手时,使每个连续层向着显示平面出现,从而逐渐地变得更加可分辨,获得与显示平面的即时一致,然后向有利于下一更低层的透明度和模糊度返回。当操作员使其手的运动的方向相反,使其向下时,则使过程相反,以及内部图示符顺时针旋转。当手终于通过死区时,随着原始当前层与显示平面的精确的y对准,堆栈停止;然后,堆栈的y移动重新继续,使在原始当前层之上的那些平面进入相继的焦点。操作员的整体感受是其正有力地和简单地用手向下压或向上拔层的堆栈。
当最终操作员通过闭合手(或者以其它方式改变其姿势)来释放推回时,系统将堆栈“弹(spring)”到限位的与显示平面的y轴对准中,当退出推回时将离显示平面最近的任意层留下作为当前层。在该位置重新排列的短暂间隔期间,所有其它层逐渐减弱成完全透明,以及反馈图示符平滑地消失。
该实施例的数据集的离散化元素(这里是层)沿主要的推回(深度)轴而分布;以前,元素(数据帧)沿垂直于深度轴的维是共面的并且被侧向排列。与透明度技术的使用一起,本布置意味着数据经常是叠加的—一些层是通过其它层而被观看的。该示例中的操作员仍然还享有:(1)用于快速获得邻近上下文的设备(在当前层之上和在当前层之下的层的内容是什么?);以及(2)用于高效地在数据集中的平行的、堆栈的元素当中选择和切换的设备。当操作员试图(1)单独的,死区的提供允许操作员确信地返回到原始选择的层。在操纵的整个过程中,对两个转换维的抑制使得能够有速度和准确度(对于大多数人,垂直地平移手而没有侧向漂移是相当困难的,但是,如所描述的形式简单地忽略任何这样的侧向位移)。
为了某些目的,应该指出的是,,配置推回输入空间使得死区具有无限小的范围可能是方便的;然后,一旦使推回参与进来,也使其活动机制参与进来。在本文提出的第二示例中,这将意味着与任何其它层无差别地对待原始当前层—一旦已开始推回动作。根据经验,死区的线性范围是操作员偏好的问题。
在该第二示例中描述的形式适用于各种各样的显示器,既包括二维设备(不管是投影的还是发光的),也包括三维设备(不管是否为自动立体的,还是是否为航空图像生成的等)。在后者的高质量实现—即3D—的情况下,介质的某些特性能够巨大地帮助成为推回的基础的感知机制。例如,视差、光学景深、和眼调节现象的组合能够允许多个层同时被理解领会,因此消除了严格地使远离显示平面的层减弱和模糊的需要。另外,不管显示器的取向,应用上述形式:如在示例中一样,其可以主要是水平的;或者可以正如有用地被安装在墙上的眼高(eye-height)处。
对该第二示例的情形的扩展描述了两只手操纵的有用性。在某些应用中,需要侧向平移或者整个层堆栈或者单个层(即在x和z方向上)。在实施例中,例如通过以下形式,操作员的其它—即非推回—手能够实现该转换:在该形式中,使手与显示表面紧密接近允许数据集的层之一被“四处滑动(slide around)”,使得其x-z位置的偏移跟随手的偏移。
操作员通常可发现同时采取侧向平移和推回操作是方便的和容易操作的。也许以下提议不是完全不真实的:将连续域的操纵指定给一只手以及将离散类型的工作指定给另一手可以对优化认知负载有作用。
有益的是,考虑在SOE下的推回的另一示例,其中,在该SOE中没有数据集的自然的、可视的方面。代表性的是监视多个音频通道的问题以及间歇地从集合当中选择一个的问题。推回系统的应用使得能够进行在为听觉输出而不是为视觉输出而供应的环境中的这样的任务;形式与之前示例的形式非常相似。
站着的或坐着的操作员正聆听单个的音频通道。概念上,该音频存在于几何地包括其耳朵的垂直面—称为“听觉面”—中;音频的附加通道存在于平行于听觉面的平面中,但是沿z轴向前和向后位移。
打开手,保持在其前方九英寸处,同时手掌面向下,操作员使推回系统参与进来。在若干最接近的平面中的音频差别地逐渐增强;每个音频的音量相反地取决于其离当前通道的平面的顺序距离。实际上,感知上不现实的是,允许多于两个或四个的附加通道变得可听得见。同时,“音频图示符”逐渐增强以提哦能够接近反馈。初始地,当操作员的手保持在死区中时,图示符几乎听不到两音高和弦(初始和谐地)。
当操作员在死区中向前或向后移动其手时,音频通道的音量保持固定,而图示符的音量增大。当手越过死区的前面临界或后面临界时,图示符到达其“活动”音量(其仍然服从于当前通道的音量)。
一旦操作员的手开始在活动区域中移动—比方说,在向前的方向上—获得对音频通道的预期作用:将当前通道平面推得离听觉面更远,并且其音量(以及还在更远的前方的那些通道的音量)逐渐地减小。另一方面,当每个“背面的(dorsal)”通道平面接近听觉面时,其音量增大。
同时,音频图示符已切换了模式。手的向前的行进伴随着音调之一的频率的上升;在“中途点(midway point)”,当听觉面将一个音频通道平面及邻近面一分为二时,音调形成准确的五度音程(fifth)(数学上,其应该是三全音程间隔,但是存在避免这个的大量原因)。当手更远地向前继续时,可变音调的频率继续上升,直至操作员最终在音调精确地跨越八度音程的点处“到达”下一音频面为止。
继续听各个通道,操作员向前或向后平移手以依次访问每个通道。最后,操作员仅仅闭合其手以选择一个通道,终止推回进程并使音频平面集合“弹(spring)”到对准中。其它通道(未选择的)逐渐减弱到听不见,图示符也一样。
该示例已描述了关于推回应用的变型,其中,再次提供了相同的设备:访问邻近上下文以及离散化数据元素的快速选择(这里,单个的音频流)。该情形代替了听觉反馈机制,以及尤其是利用了可靠的用于辨别某些频率间隔的人类能力的听觉反馈机制,以向操作员提供关于其是否离目标通道足够近以做出选择的信息。在“听得见的”信号仅仅间歇地呈现的语音通道的情况下,这尤其重要;即使当通道本身已变成无声时,音频反馈图示符的连续特性也使其呈现而且清楚。
应该指出,如果本示例中的SOE包括使音频空间化的能力,则可以极大地提高对相继音频层后退到向前距离中以及从后面接近(反之亦然)的感受。另外,与在操作员前面的随后层和在操作员后面的先前层一起,更确切地将选择的音频面“定位”在操作员的位置处的机会是有效地可利用的。
音频图示符的其它例示是可能的,并且实际上各种通道内容的包括其频谱分布的特性,趋向于指示哪种图示符将是最清楚地可辨别的。通过示例,另一种音频图示符格式保持不变的音量,但是采用周期性的滴答声(clicking),而滴答声之间的间隔与听觉面和最近的音频通道平面之间的接近度成比例。最后,在某些情形下,并且取决于操作员的分辨能力(acuity),可能的是,使用推回而根本没有反馈图示符。
参考推回机制,当在数据集的表示中的空间限位装置的数量和密度增加趋向非常大时,空间及其参数化变得有效地连续—就是说,非限位的。推回在这种极端下仍然保持有效,部分是因为可以将在推回的每次调用之前的数据集的“初始状态”视为被简单实现为死区的临时限位装置。
这种非定位的推回的应用可以在与无限(或至少充分地)可放大的图有关的构思中发现。放大功能的推回控制将手位置的位移与仿射标度值(affine scale value)相关联,使得当操作员向前或向后推其手时,放大的程度减小或增大(分别地)。但是,因为位置到放大参数的直接映射确保了使控制手返回到死区也实现了放大值到其初始状态的返回,所以原始的、预推回的放大状态总是能够容易地访问的。
以上示例中描述的每个场景提供了对推回系统的显著方面及其在SOE下的使用的描述。还应该理解的是,由于通过允许指导人类移动的特定类型的感知反馈所能够得到的效率和精确度,本文中描述的动作中的每个能够立即被准确地和综合地采用。在其它场合中,操作员还发现在大哥连续推回“进程”中保持数十秒是有用的:在更长时间间隔上的推回为浏览的和上下文获取的目标工作得很好。
以上描述的示例采用了物理输入(姿势)到表示空间的线性映射:真实空间中的A单元对控制手进行平移总是导致表示空间中的B单元(主要的)的平移,而不管在其上采取A平移的真实空间的位置。但是,其它映射是可能的。特别的,大多数人类操作员享受的良好的肌肉运动控制的程度允许使用非线性映射,其中,例如,与临界附近的姿势运动能转换成沿参数化的维的位移相比,远离活动临界的差分姿势平移能转换成沿参数化的维的更大的位移。
标记标签
SOE或实施例预期用户的一个或多个手指上的标记标签的使用,使得系统能够定位用户的手、识别其正查看的是左手还是右手以及哪些手指是可见的。这允许该系统检测用户手的位置、取向以及移动。该信息允许多个姿势被系统识别并且被用户用作命令。
在一个实施例中,标记标签为物理标签,其包括基片(在本实施例中适于附在人手上的各个位置)和以独特识别图案设置在基片表面上的离散标记。
标记和相关联的外部感测系统可以运行于允许准确、精确、快速并连续获取它们的三维空间位置的任何域(光、电磁、静磁等)中。标记本身可以有源地运行(例如通过发射结构化的电磁脉冲),或者无源地运行(例如与本实施例一样通过光回射)。
在获取的每个帧中,检测系统接收恢复后的三维空间位置的聚集“群(cloud)”,其中,三维空间位置包括来自在仪器工作空间容积(在摄像机或其它检测器的可见范围内)中存在的标签的所有标记。每个标签上的标记具有充分的多样性,并以独特的图案来设置,使得该检测系统能够执行以下任务:(1)分段,其中每个恢复后的标记位置被分配给形成单个标记的点的一个且仅一个子集合;(2)作标注,其中每个分段后的点的子集合被标识为特定标签;(3)定位,其中标识后的标签的三维空间位置被恢复;以及(4)取向,其中标识后的标签的三维空间取向被恢复。如以下参考图13所描述的,通过标记图案的特定性质,使任务(1)和(2)变成可能。
在一个实施例中,标签上的标记被附于常规网格位置的子集。如本实施例中一样,该基础的网格可以是传统的笛卡尔类型;或者替换地可以是某些其它常规平面棋盘式布置(例如三角形/六边形的平铺排列)。相对于标记感测系统的已知空间分辨率来建立网格的尺寸和间隔,使得相邻的网格位置不可能被混淆。针对所有标签的标记图案的选择应该满足以下约束:通过旋转、平移或镜像的任意组合,标签的图案不与任何其它标签的图案相同。可以进一步对标记的多样性和排列进行选择,以便容许某指定数量的标记分量的丢失(或遮挡)。在任意变换之后,其应该仍然不可能使折衷后的模块与任何其它模块相混淆。
图13是根据实施例的标记标签的图。示出了多个标签1301A-1301E(左手)以及1302A-1302E(右手),但是实施例不限于如此。每个标签是矩形的,并且在本实施例中包括5×7的网格阵列。选择矩形形状作为确定标签取向的辅助,并且减少镜像复制的可能性。在所示出的实施例中,针对每个手上的每个手指都有标签。在某些实施例中,每个手使用一个、两个、三个或四个标签可能就足够了。每个标签具有不同灰度等级或颜色阴影的边界。在该边界之内是3×5的网格阵列。标记(由图13中的黑点表示)被置于网格阵列中的某些点处以提供信息。
通过将每个图案分段成“公共”和“独特”的子图案,可以将资格信息编码到标签的标记图案中。例如,本实施例规定了两个可能的“边界图案”,矩形边界周围的标记的分布。由此建立了标签“家族”--计划用于左手的标签可能因此全部使用与标签1301A-1301E中所示的相同的边界图案,而附到右手手指的那些标签可能被分配如标签1302A-1302E中所示的不同图案。选择该子图案,使得在标签的所有取向中左图案能够区别于右图案。在所示的示例中,左手图案包括在每个拐角中的标记以及从拐角网格位置起的第二中的一个标记。右手图案具有仅在两个拐角中的标记以及在非拐角网格位置中的两个标记。对图案的检查表明,只要四个标记中的任何三个是可见的,左手图案就肯定能够区别于左手图案。在一个实施例中,也可将边界的颜色或阴影用作偏手性(handedness)的指示。
当然,每个标签必须仍然采用独特的内部图案,分布于其家族的公共边界内的标记。在示出的示例中,已经发现:由于手指的旋转或取向,内部网格阵列中的两个标记足以没有重复地唯一标识十个手指中的每个。即使标记之一被遮挡,标签的图案及偏手性的组合也导致唯一的标识符。
在本实施例中,栅格位置视觉上呈现在刚性基片上,作为对将每个回射标记附在其预期位置的(手动)任务的辅助。这些栅格和预期标记位置通过彩色喷墨打印机被精确打印到基片上,该基片在这里是一片(初始)柔软的“收缩膜”。每个模块从该片切开,然后被烘烤,在该热处理期间,每个模块经受精确并可重复的收缩。在该过程后的短暂间隔内,冷却的标签可被轻微成型--例如,沿手指的长度曲线;其后,基片是适度刚性的,且标记可附在所指示的栅格点。
在一个实施例中,标记自身是三维的,如通过粘合剂或某些其它适当方式附于基片的小的反射球。标记的三维性比二维标记更有助于检测和定位。不过,两者均可以使用,而不脱离本发明的精神和范围。
目前,标签通过维可牢(Velcro)或其它适当方式被附于操作员所戴的手套上,或者替选地,使用温和的双面胶带直接附于操作员的手指上。在第三实施例中,可以与刚性基片一起分配,并将各标记直接粘附或“绘制”在操作员的手指和手上。
姿势词汇
本发明预期由手姿态、取向、手组合以及取向混合构成的姿势词汇。在本发明的姿势词汇中,还实施了用来设计并沟通姿态和姿势的符号语言(notation language)。姿势词汇是用于以紧凑的文本形式来表示即时的运动关联(kinematic linkage)的“姿态状态”的系统。这里所讨论的关联可以是生物学的(例如人手,或者整个人体;或者蝗虫腿;或者狐猴的关节脊柱),或者替代地可以是非生物的(例如机器人手臂)。在任何情况下,关联可以是单一的(脊柱)或者是分支的(手)。本发明的姿势词汇系统针对任何特定的关联建立固定长度的字符串;因此,占据字符串“字符位置”的特定ASCII字符的聚集是关联的即时状态或“姿态”的唯一描述。
手姿态
图14示出了根据实施例的在SOE姿势词汇中的手姿态。SOE假设一只手的五个手指中的每个都被使用。这些手指的代码为p-小手指、r-无名指、m-中指、i-食指以及t-拇指。在实施例的姿势词汇中限定并示出了针对手指和拇指的多个姿态。姿势词汇字符串针对关联中的每个可表达的自由度(本例中为手指)建立单个字符位置。此外,每个这样的自由度被理解为离散化的(或“量化的”),从而可通过在该字符串位置分配有限数量的标准ASCII字符中的一个来表示其全范围的运动。这些自由度相对于特定于身体的原点及坐标系统(手背,蝗虫身体的中心;机器人手臂的基部等)来表示。因此,使用少量的附加姿势词汇字符位置,在更全局的坐标系统中来表示作为整体的关联的位置和取向。
使用ASCII字符来定义和标识了多个姿态。某些姿态被分成拇指的和非拇指的。该实施例中的SOE使用编码,使得ASCII字符本身就是姿态的暗示。不过,任何字符都可用于表示姿态,无论是暗示性的与否。另外,本发明并不要求使用ASCII字符用于符号字符串。任何适当的符号、数字或其它表示都可使用,而不脱离本发明的范围和精神。例如,如果需要,符号可以针对每个手指使用两个比特,或者如所需要地使用其它数量的比特。
弯曲的手指由字符“^”来表示,而弯曲的拇指由“>”表示。向上指的伸直的手指或拇指由“1”指示,而某个角度的手指或拇指由“\”或“/”表示。“-”表示直指向侧面的拇指,而“x”表示指向平面内的拇指。
使用这些单独的手指和拇指描述,可以使用本发明的方案来定义和书写稳健数量的手姿态。每个姿态由五个字符利用上述的p-r-m-i-t顺序来表示。保持平并平行于地面的手表示为“11111”。拳表示为“^^^^>”。“OK′’标志被表示为“111^>”。
当使用暗示性字符时,字符串提供了直接的“人可读性”的机会。通常着眼于快速识别和明显相似性来选择描述每个自由度的可能的字符集。例如,竖杠(‘|’)可能意味着关联元素为“直的”,(‘L’)可能意味着90度的弯曲,而弯曲形(‘^’)可指示急剧的弯曲。如以上所描述的,可以根据需要来使用任何字符或编码。
采用上述姿势词汇字符串的任何系统在此享受字符串比较的高计算效率的好处--识别或搜索任何指定的姿态完全变成在期望的姿态字符串和即时的真实字符串之间进行的“字符串比较”(例如,UNIX的‘strcmp()’功能)。此外,“通配符”的使用为编程人员或系统设计者提供了额外的熟悉效率和功效:即时状态与匹配无关的自由度可以被指定为问号(‘?’);可以分配另外的通配符的含义。
取向
除手指和拇指的姿态以外,手的取向也可以表示信息。描述全局空间取向的字符也可以透明地进行选择;当在取向字符位置遇到字符‘<’、‘>’、‘^’以及‘v’时,其可以用于指示左、右、上和下的意思。图15是根据实施例的在姿势词汇中的取向的图。姿势词汇的取向包括手取向描述符以及组合了姿态和取向的编码示例。在本发明的一个实施例中,两个字符位置首先指定手掌的方向,其次是手指的方向(如果它们是直的,与手指的实际弯曲无关)。针对这两个位置的可能的字符表示取向的‘身体为中心’概念:‘-’、‘+’、‘x’、‘*’、‘^’以及‘v’描述了向中间、侧向、前向(向前,从身体离开)、后向(向后,从身体离开)、头部的(向上)以及尾部的(向下)。
在本发明的实施例的符号方案中,指示字符的五个手指姿态后面跟着冒号,然后是两个取向字符,以定义完整的命令姿态。在一个实施例中,起始位置指“xyz”姿态,其中当该姿态用右手来作时,拇指向上直指,食指向前指,而中指垂直于食指指向左。这由字符串“^^xl-:-x”表示。
‘XYZ-手’是利用人手的几何形状以允许视觉呈现的三维结构的全部六-自由度(six-degree-of-freedom)导航的技术。尽管该技术仅仅依赖于操作员手的大量平移和旋转--使得其手指可以大体上保持于所需要的任何姿态--本发明实施例优选静态结构,其中食指指向离开身体的方向;拇指指向天花板;而中指指向左右。由此,这三个手指描述(粗略地,但是具有清楚明显的意图)了三维空间坐标系统的三个相互正交的轴:因此称为‘XYZ手’。
然后,利用保持在操作员身体前预定‘中立位置(neutral location)’处的手(处于如以上所描述的姿态的手指)来进行XYZ手导航。对三维空间物体(或相机)的三个平移和三个旋转自由度的获取以下面的自然方式来实现:手的左右移动(相对于身体的自然坐标系统)导致沿着计算上下文的X-轴移动;手的上下移动导致沿着受控上下文的Y-轴移动;而手的前后移动(朝向/离开操作员身体)导致在上下文内的2-轴运动。类似地,操作员的手关于食指的旋转导致计算上下文取向的‘滚动’变化;通过操作员手分别关于中指和拇指的旋转,类似地实现‘倾斜(pitch)’和‘摇摆(yaw)’变化。
注意,尽管‘计算上下文’在此用来指通过XYZ手方法控制的实体--并且看起来暗示合成的三维空间物体或相机--应理解,该技术同样可用于控制真实世界物体的各自由度:例如,配备有适当的旋转执行器的视频或运动画面相机的摇动/倾斜/滚动(pan/tilt/roll)控制。另外,甚至在虚拟域中,由XYZ-手姿态提供的物理自由度可能稍微较不完全地被映射:在本实施例中,XYZ-手还用于提供对大全景显示图像的导航接入,从而操作员手的左右和上下运动导致关于图像的预期的左右或上下‘摇动(panning)’,而操作员手的前后运动映射到‘缩放(zooming)’控制。
在每种情况下,手的运动和所导致的计算平移/旋转之间的耦合可以是直接的(即,通过某些线性或非线性函数,操作员手的位置或旋转偏移一对一地映射到计算上下文中的物体或相机的位置或旋转偏移),或者是间接的(即,通过某些线性或非线性函数,操作员手的位置或旋转偏移一对一地映射到计算上下文中的第一或更高阶导数的位置/取向;然后,正在进行的积分实现计算上下文中的真实零阶位置/取向的非静态变化)。后面的这种控制手段类似于使用汽车的‘气动踏板’,其中踏板的固定偏移或多或少地导致不变的汽车速度。
作为真实世界XYZ-手的本地六-自由度坐标原点的‘中立位置’可以被建立作为:(1)空间中的绝对位置和取向(比方说,相对于封闭房间);(2)相对于操作员自身的固定位置和取向(例如,在身体前面八英寸,下颚以下十英寸以及侧向与肩平面对齐),与操作员的整个位置和‘朝向’无关;或者(3)交互式地,通过操作员的有意的二次动作(例如,使用由操作员的‘另一只’手发出的姿势命令,该命令指示XYZ手的当前位置和取向此后应被用作平移和旋转的原点)。
另外,方便的是提供关于XYZ手的中立位置的‘停止(detent)’区域(或‘死区’),使得在该容积内的移动不映射到受控上下文中的移动。
其它姿态可包括:
[11111:vx]为手掌朝下且手指向前的平的手(拇指平行于手指)。
[11111:x^]为手掌朝前且手指朝向天花板的平的手。
[11111:-x]为手掌朝向身体中心(如果是左手则朝右,如果是右手则朝左)且手指朝前的平的手。
[^^^^-:-x]为单手拇指向上(拇指指向天花板)。
[^^^|-:-x]为模仿指向前方的枪。
两手组合
实施例的SOE预期单手命令和姿态以及两只手的命令和姿态。图16是根据实施例的在SOE的姿势词汇中的两手组合和相关符号的图。回顾第一示例中的符号,“完全停止(full stop)”表明其包括两个闭合的拳。“快照”示例中,每只手的拇指和食指伸展,拇指彼此互指,定义球门柱形的框。“舵和节流阀开始位置”为手指和拇指指向上、手掌朝向屏幕。
取向混合
图17是根据实施例的在姿势词汇中的取向混合的图。在所示出的示例中,该混合通过在手指姿态字符串之后将取向符号对放入括号中来表示。例如,第一命令显示了全部直指的手指位置。第一对取向命令将导致手掌平、朝向显示器,而第二对使手旋转到向着屏幕45度的斜度。尽管在该示例中示出了混合对,但在SOE中预期任何数量的混合。
示例性命令
图19是根据实施例的与SOE一起使用的多个命令的示例。尽管这里的某些讨论是关于对显示器上光标的控制,但是SOE不限于该行为。实际上,SOE可广泛应用于操纵屏幕上的任何和全部的数据及部分数据以及显示的状态。例如,在视频媒体的回放期间,可用命令来取代视频控制。命令可以用于暂停、快进、回退等。另外,可以实施命令来放大或缩小图像、改变图像的取向、在任何方向上摇动等。SOE还可用于代替菜单命令,如打开、关闭、保存等。换句话说,能够想象到的任何命令或行为都可以利用手姿势来实现。
图18是根据实施例的SOE的系统操作的流程图。在1801,检测系统检测标记和标签。在1802中,确定是否检测到标签和标记。如果没有,系统返回到1801。如果在1802中检测到标签和标记,则系统前进到1803。在1803中,系统从所检测的标签和标记中识别手、手指和姿态。在1804中,系统识别姿态的取向。在1805中,系统识别所检测到的一只或多只手的三维空间位置。(请注意,1803、1804和1805中的任何或全部可以组合成单个步骤)。
在SOE的一个实施例中,操作1801-1805通过相机上的处理器来完成。在其它实施例中,如果需要,处理可以通过系统计算机来完成。
解析和转换
系统能够“解析”和“转换”由底层系统恢复的低级姿势流,并将那些被分析和转换的姿势转换成事件数据或命令流或,事件数据或命令流可用来控制宽范围的计算机应用和系统。这些技术和算法可以在由计算机代码构成的系统内实施,计算机代码提供实施这些技术的引擎以及构建利用该引擎性能的计算机应用的平台。
一个实施例关注于使人手的丰富的姿势能够在计算机界面中使用,还能够识别由其它身体部位(包括但不限于臂、躯干、腿和头)作出的姿势以及各种非手的物理工具作出的姿势,物理工具为静态的和有关节的,包括但不限于卡钳、圆规、灵活的曲线近似器以及各种形状的指向设备。标记和标签可应用于可以由操作员根据需要携带和使用的物品和工具。
这里所描述的系统合并了多个创新,多个创新使得可以建立具有丰富的可以被识别和按照其来动作的姿势的姿势系统,而同时易于集成到应用中。
一个实施例中的姿势解析和转换系统由以下构成:
1)一种以几个不同等级的聚集指定(用于在计算机程序中使用的编码)姿势的紧凑和有效的方式:
a.单手的“姿态”(相对于彼此的手的各部分的配置和取向),在三维空间中的单手的取向和位置。
b.两手组合,针对任一只手,考虑姿态、位置或两者都考虑。
c.多人组合;系统可跟踪多于两只手,因此多于一个人可协作地(或在游戏应用情况下,竞争地)控制目标系统。
d.连续姿势,其中姿态被组合在一个系列中;我们称之为“动画”姿势。
e.“字形”姿势,其中操作员跟踪空间中的形状。
2)一种注册来自与给定的应用上下文有关的以上每一类别的特定姿势的编程技术。
3)用于解析姿势流使得被注册的姿势可被识别以及封装那些姿势的事件可被传递到相关的应用上下文中的算法。
具有构成元素(1a)至(1f)的规范系统(1)提供了使用这里所描述的系统的姿势解析以及转换能力的基础。
单手“姿态”被表示为以下的字符串:
i)手指和手背之间的相对取向,
ii)量化到小数量的离散状态。
使用相对联合取向使得这里所描述的系统可以避免与不同的手尺寸和几何形状有关的问题。使用该系统不需要“操作员校准”。另外,将姿态指定为字符串或者相对取向的集合使得更为复杂的姿势规范通过将姿态描述与另外的过滤器的及规范组合而易于被创建。
使用针对姿态规范的小数量的离散状态使得能够紧凑地指定姿态,并能够利用多种底层跟踪技术(例如,使用相机的无源光学跟踪、使用点亮的点和相机的有源光学跟踪、电磁场跟踪等)来确保正确的姿态识别。
在每一类别(1a)至(1f)中的姿势可以被部分(或最小地)指定,从而忽略非关键数据。例如,其中两个手指的位置确定而其它手指位置不重要的姿势可以通过单个规范来表示,该单个规范中,给出了两个相关手指的操作位置,且在相同字符串内,针对其它手指,列出了“通配符”或普通“忽略这些”的指示。
这里所描述的用于姿势识别所有创新包括但不限于多层次规范技术、使用相对取向、量化数据以及允许在每一级别的部分或最小规范,其推广到手姿势规范之外,推广到使用其它身体部位以及“制造的”工具和物体的姿势规范。
用于“注册姿势”的编程技术(2)由限定的应用编程接口调用的集构成,其允许编程人员来定义引擎应使哪些姿势可用于运行系统的其它部分。
这些API例程可以在应用建立时间来使用,从而创建在整个运行系统的工作期间使用的静态接口定义。这些API例程还可以在运行过程中使用,从而使接口特性在不工作时改变。这种接口的实时改变使得下述行为成为可能:
i)建立复杂的上下文和条件控制状态,
ii)动态地添加滞后现象(hysterisis)到控制环境,并且
iii)创建应用,其中用户能够改变或扩展运行系统自身的接口词汇。
用于解析姿势流的算法(3)将在(1)中指定并在(2)中注册的姿势与进入的低级别姿势数据进行比较。当针对注册的姿势的匹配被识别时,表示匹配姿势的事件数据被向上传递到堆栈,到达运行的应用。
在设计该系统时期望有效的实时匹配,且指定的姿势被作为被尽可能快地处理的树状概率。
另外,操作员内部使用的用以识别指定姿势的原语比较也可以被应用程序的编程人员使用,使得即使从应用上下文内也可以进行进一步比较(例如,复杂或复合姿势中的灵活的状态检查)。
识别“加锁(locking)”语义是这里所描述的系统的创新。这些语义通过注册API(2)(以及,在更小程度上,嵌入到规范词汇(1)内)来暗示。注册API调用包括:
i)“进入(entry)”状态通知者以及“继续(continuation)”状态通知者,以及
ii)姿势优先级指定者。
如果姿势已被识别,则针对相同或较低优先级的姿势,其“继续”条件优先于所有的“进入”条件。进入和继续状态之间的这种区别大大增加了所感知的系统的可用性。
这里所描述的系统包括面对真实世界的错误和不确定性的健壮操作的算法。来自低级跟踪系统的数据可能是不完整的(由于多种原因,包括在光学跟踪、网络丢弃或处理延时中标记的闭塞等)。
丢失的数据通过解析系统来标记,且被插值(interpolate)成“最后已知”或“最有可能”的状态,这依赖于所丢失数据的量和上下文。
如果关于特定姿势组成的数据(例如,特定联合的取向)丢失,但是该特定组成的“最后已知”的状态可被分析为在物理上是可能的,则系统在其实时匹配中使用该最后已知的状态。
相反地,如果该最后已知状态被分析为在物理上是不可能的,则该系统回退到针对该组成的“最佳猜测范围(best guess range)”,并在其实时匹配中使用该合成数据。
这里所描述的规范和解析系统已被仔细地设计以支持“偏手性不可知性”,使得对于多手的姿势,任一只手被允许满足姿态需求。
使用在扩展的景深上提取的三维信息的基于姿势的控制
图20是根据实施例的基于姿势的控制系统2000的方框图,其中,该控制系统2000包括在扩展的景深上提取三维信息的成像系统。用户将手101和102定位在摄像机2004A-2004D的阵列的观察区域中。如以下详细描述的,阵列2004A-2004D中的至少两台摄像机是波前编码摄像机,波前编码摄像机中的每台包括波前编码成像系统的元件,波前编码成像系统包括波前编码掩模(mask)(本文中也被称为“非球面光学元件(optical aspheric element)”或“光学元件”)。用户的手和/或手指可以包括或不包括以上描述的标记标签。
摄像机2004A-2004D检测或捕获包括手指和手101、102的位置、取向及移动的手指和手101、102的图像,以及生成到预处理器2005的输出信息。如以下所描述的,预处理器2005包括或耦合到波前编码数字信号处理2008。替选地,波前编码数字信号处理能够被包括在或分布在系统2000的一个或更多个其它组件中。波前编码数字信号处理2008被配置成极大地扩展成像系统的景深。
预处理器2005将摄像机输出转换成被提供到系统的计算机处理单元2007的姿势信号。在这种情况下,预处理器2005生成三维空间点重构和骨骼点标记。姿势转换器2006将空间信息和标记器运动信息转换成能被计算机处理器解释的命令语言,以更新显示器上光标的位置、形状和动作。计算机2007使用输入信息来生成用于控制一个或更多个屏幕上光标的命令,以及将视频输出提供到显示器2003。
替换实施例的预处理器2005、姿势转换器2006和计算机2007中的一个或更多个能被组合成单个的设备。不考虑系统配置,预处理器2005、姿势转换器2006和计算机2007中的每个的功能和/或功能性与本文中其它地方描述的一样。
另外,虽然该示例示出了使用四台摄像机来检测用户的手101、102的位置、取向、和移动,实施例不限于如此。根据系统或工作站配置的需要,系统配置能够包括两个或更多个摄像机。另外,尽管在示例实施例中对称地布置摄像机,但是没有对这种对称的要求。因此,在下文中可使用允许用户的手的位置、取向、和移动的具有任意定位的至少两台摄像机。
尽管示出系统具有作为输入的单个用户的手,但是系统能够追踪任意数量的多个用户的手。另外,排除手或加上手,系统可追踪用户身体的任意部位或多个部位,包括头、脚、腿、手臂、肘、膝盖等。而且,系统能追踪任意数量的有生命对象或无生命对象,以及不限于追踪身体的部位。
特别的,对于设置光学传感器以致有意地或潜在地最接近于操作员的手的姿势分析系统(或等同地被追踪的工具),由此而被领会的元件通常将涵盖若干级或许多级的相对距离量级的范围,贯穿操作员运动的自然序列。始终如一地提供横贯如此范围的距离的事件的焦点分辨的记录,超出了传统光学成像系统的能力。但是,在为了宏观设备和装置设计目的的对象追踪或操作员追踪的上下文中,经常期望的是对中距离(medium-distance)的几何布置的这些特写(close-approach)。因此,有价值的是,提供用于确保在操作员活动的预期范围内的局部对比度或显著特征稳定性的技术(为了传统光学装置不适当的目的)。
当描述如本文系统中所使用的在扩展的景深中提取三维信息时,到场景中的点的距离能够根据该点在同时捕获的两个或更多个图像中的位置而被估计。当已知成像器之间的3D关系时,能够根据基本的几何关系来计算点的三维(3D)位置。经常称为立体相关或立体深度计算的根据多个图像计算空间位置的挑战是,自动地和精确地将在一个图像中的点的映射与在另一图像中的映射相关联。这通常是通过将来自一个图像的图像特征与一个或更多个其它特征相互关联来完成的。但是,所有立体匹配方法中的基础的假设是,为了将该点与其在另一图像中的位置相匹配,图像中必须存在某个可识别的局部对比度或特征。因此,当由于散焦而在图像中不存在具备对比度或特征时,问题出现了—立体匹配在散焦的图像的区域中不产生准确的结果。
用于扩展图像的焦点深度的传统方法是减少摄像机镜头光瞳的直径(“缩小光圈(stopping down)”)。但是,两个副作用限制了该技术的有用性。首先,与光瞳直径比的平方相等的因子降低了成像系统的灵敏度。第二,与光瞳直径比相等的因子降低了最大空间频率响应,其限制图像的分辨率和对比度。因此,在传统成像系统中,在景深、曝光时间、和整体对比度之间存在权衡。在多摄像机排列(ranging)系统的情况下,最后效果将是立体深度与工作范围之间的折衷。
增加景深而不缩小镜头光圈的替换方法是引入在摄像机镜头光瞳方面的指定规定的相位掩模(phase mask)。通过适当选择相位函数,传感器上捕获的图像的后续电子处理能够恢复扩展的景深。被称为波前编码的这种技术通常提供了在景深、摄像机动态范围、和信噪比之间的折衷。波前编码使为特定应用优化摄像机参数成为可能。不需要非常高的动态范围以及其中的照明处于用户控制之下的应用,例如本文中描述的姿势识别,能够极大地从波前编码中获益以在规定容积的空间中取得高准确度。
如以上描述的,实施例的系统包括这样的技术:在该技术中,使用多个波前编码摄像机的处理后的输出来确定选择的对象在场景中的位置。由波前编码引用的扩展的景深能用于多个应用,包括姿势识别和其它基于任务的成像工作的广阔的阵列,以显著地提供其性能。尽管需要最少两个摄像机,但是该实施例中能够使用的摄像机的数量没有上限。场景提取能够包括用于具有两个或更多个摄像机的范围提取的多个处理技术中的任意一个(例如相关)。本文中描述的实施例包括所有的波前编码相位函数及其相应的解码内核,其中,解码内核在处理后导致扩展的景深。
如在波前编码成像系统中所使用的,波前编码是使用一般化的非球面光学装置和数字信号处理来极大地提高成像系统的性能和/或减少成像系统的成本的通常技术。采用的非球面光学装置的类型导致对散焦相关的相差(aberration)不敏感的光学成像特性。但是,从光学装置没有直接产生锐利和清晰的图像,施加到采样图像的数字信号处理产生锐利和清晰的最终图像,最终图像也对散焦相关的相差不敏感。
使用波前编码来极大地提高成像性能,同时还减小成像系统的大小、重量和成本。波前编码以基础的方式来组合无旋转对称的非球面光学元件和数字信号处理,以极大地扩展成像系统的景深。例如,对于给定的光圈大小或F/#,与传统的成像系统相比,利用波前编码,成像系统的景深或焦点深度能提高十倍或更多倍。实施例的波前编码光学元件为相表面,并且同样地不吸收光或者不增加曝光或照明要求。关于传统成像技术,如果没有光强度的惊人损失,例如要求缩小光圈,则这样的扩展景深性能是不可能的。增加的景深/焦点深度通过控制散焦相关的像差,还能够使成像系统在物理上更便宜、更小或更轻,而传统上是通过添加镜头元件或增加镜头复杂度来控制散焦相关的像差。能够用波前编码来控制的散焦相关的像差包括色像差(chromatic aberration)、匹兹堡弯曲(Petzval curvature)、散光(astigmatism)、球面像差(spherical aberration)以及温度相关的散焦。
作为混合成像方法的波前编码组合了光学器件和电子器件以增加景深,并且减少光学元件的数量、制造公差(fabrication tolerance)、和整体的系统成本。图21是根据实施例的在基于姿势的控制系统中使用的波前编码成像系统2100的方框图。波前编码成像系统2100的光学部2101是利用放置在孔径光阑附近的波前编码光学元件2102修改后的传统光学系统或摄像机。添加编码光学元件导致具有专门的、定义明确的模糊或点扩散函数的图像,其中该模糊或点扩散函数对散焦不敏感。施加到采样图像的数字处理2103产生锐利的和清晰的图像2104,图像2104对散焦作用非常不敏感。
图22是根据实施例的用于使用包括两台波前编码摄像机的波前编码成像系统来在扩展的景深上提取三维信息的基于姿势的控制系统2200的方框图。系统2200包括如以上参考图21所描述的至少两个波前编码摄像机2201、2202。处理器被耦合以接收波前编码摄像机2201、2202的输出,以及对摄像机输出执行数据处理。数据处理包括,仅举几个示例,去卷积2220和范围提取2230、以及生成扩展焦点范围的图2240。
在波前编码系统2200中,系统的光学部分(例如,波前编码摄像机2201、2202)对结果图像进行“编码(code)”以产生中间图像2210。因为波前编码元件(例如,图21,元件2102)有目的地使任何图像中的所有点变模糊,中间图像2210显得散焦。在这样的中间图像2210中,使视野中的几乎所有对象变模糊,但是相等地使其变模糊。相反,传统的光学器件通常形成具有可变模糊函数的图像,其中,该可变模糊函数取决于到场景中的每个对象的距离。
为了从中间的波前编码的图像2210中产生锐利的和清晰的图像,使用电子器件(例如,波前编码数字信号处理)来通过去除系统相关的图像模糊,对模糊的中间图像进行处理或“解码(decode)”2220、2230。能够通过软件或利用专用硬件解决方案来实时地执行数字滤波。
实施例的系统光学器件包括如以上参考图21所描述的、具有至少一个执行波前编码功能的附加光学元件的传统组件。将该元件放置在光学路径上,通常在系统的孔径光阑附近,以使渐晕(vignetting)最小化。对检测到的图像执行的信号处理取决于光学器件、波前编码元件、和数字检测器的第一阶属性(first-order property)。
尽管能使用衍射表面,但是一般的波前编码元件是无旋转对称的和光滑的。元件可以是分立组件,或者通过添加一般化的非球形表面能够将元件集成到传统的镜头元件上。所有的编码元件对光进行重定向,使得除了同轴(on-axis)光线之外没有光线向传统的几何焦点传播。实际上,没有两条光线正沿着光轴向同一点传播。系统不在任何图像平面上形成清晰的图像。
波前编码成像系统的光学器件部分的主要作用是使结果图像对焦点相关的像差,例如散焦、球面像差(spherical aberration)、散光(astigmatism)或像场弯曲(field curvature)不敏感。中间的模糊图像对对象或成像系统中由散焦像差组成的改变不敏感或无变化。从系统分析的观点来看,波前编码系统的调制传递函数(MFT)和点扩散函数(PSF)是相对于散焦无变化的。
尽管来自波前编码系统的中间图像MTF示出很少随散焦而改变,这样的MTF与焦点对准的传统系统相比的确具有减小的光强度。由于没有使用孔障(apodization),所以保持了总的光强度。使用数字滤波或图像重构处理来形成清晰的图像。这些最终的MTF对散焦非常不敏感—因此,波前编码成像系统具有非常大的景深。类似的,来自波前编码系统的中间PSF不同于传统的系统PSF,而是中间PSF随着散焦的改变而很少改变。
再次参考图21,将特殊目的的非球面光学元件放置在传统的成像系统的孔径光阑上或附近,以形成波前编码成像系统。该光学元件以这样的方式修改了成像系统:结果PSF和光学传递函数(OTF)对散焦的范围或散焦相关的像差的范围不敏感。但是,PSF和OTF与用优质的焦点对准的成像系统所获得的PSF和OTF不相同。使成像系统对散焦像差不敏感的过程产生了具有专门的、定义明确的模糊的图像;用波前编码数字信号处理来去除该模糊。
例如,来自传统成像系统的PSF随着散焦而剧烈地改变,而来自波前编码成像系统的PSF随着散焦几乎没有示出明显的改变。去除施加到散焦的传统成像系统的散焦模糊的数字处理,使用取决于图像的不同区域中所呈现的散焦的数量的处理。在许多情形下,不知道而且难以计算散焦的数量。另外,散焦的传统成像系统的MTF经常可以包含零或空,零或空进一步增加了数字处理的困难。相反,来自波前编码系统的PSF随着散焦而不变的特性正是消除数字处理与散焦的相关性所需要的。施加到电荷耦合器件(CCD)检测到的或互补金属氧化物半导体(CMOS)检测到的图像的数字处理与散焦和被成像的实际场景无关。另外,波前编码成像系统的MTF,焦点对准的和散焦的,均不包含零或空,从而允许高质量的最终图像。
用于扩展景深的波前编码能够将值添加到传统方法(即,缩小光圈)一般不可接受的成像应用中。对照明水平、曝光时间、或空间分辨率的约束经常限制了之前光学方法的应用。通过使用波前编码,应用能享受更少的散焦相关的问题,而不会牺牲曝光时间或要求大量的照明。
如以上所描述的,波前编码成像系统包括如非传统的光学设计和结果图像的数字信号处理。使用的数字信号处理取决于特定的光学系统。波前编码光学器件取决于要使用的信号处理的类型和数量。由于光学器件和信号处理紧密耦合,期待这样的系统的最佳性能是自然的:在这样的系统中,在设计期间联合地优化系统的光学组件和数字组件。光学组件被配置成使光学器件对散焦作用的改变或灵敏度最小化,以及使得能够进行有效的信号处理。数字组件被配置成使算法复杂度、处理时间和数字处理对图像噪音的影响最小化。
图23是根据实施例的用于在扩展的景深上提取三维信息的基于姿势的控制系统的流程图。实施例的基于姿势的控制包括用成像系统对身体进行成像2302。成像2302包括生成身体的波前编码图像。实施例的基于姿势的控制包括自动检测2304身体的姿势,姿势包括身体的即时状态。检测2304包括即时地聚集姿势的姿势数据。姿势数据包括在成像系统的景深中的身体的焦点分辨的数据。实施例的基于姿势的控制包括将姿势转换成2306姿势信号。实施例的基于姿势的控制包括响应于姿势信号对耦合到计算机的组件进行控制2308。
实施例的波前编码的基本例程能够包括通过通常的球形或非球形表面以及一般的波前编码表面形式来追踪光线的光线追踪(ray-trace)程序。使用光线追踪程序计算退出光瞳以及优化光学和数字品质函数或操作数的给定集合。图24是根据实施例的在基于姿势的控制系统中使用的波前编码设计过程2400的方框图。该设计的输出包括但不限于以下:传统的光学表面、材料、厚度、和间距;波前编码表面的参数;以及数字滤波器系数。
现在描述一般的光学/数字设计的循环。光线追踪程序2402通过光学表面追踪光学以计算退出光瞳光程差(OPD)2404,以及优化光学和数字品质函数或操作数的给定集合。光线追踪程序2402的输入包括,仅举几个示例,光学表面、厚度、和运行条件(波长、视野、温度范围、采样对象图像等)。计算或生成2406 OTF,以及添加2408与检测器几何形状相关的像素OTF。计算采样的OTF和PSF。基于采样的PSF,针对选择的处理算法,生成2412数字滤波器系数。处理通过形成滤波器的基于以下最小化的品质因数而继续:采样的PSF和MTF通过焦点的改变、采样的PSF和MTF随视场角的改变、采样的PSF和MTF随颜色的改变、采样的PSF和MTF由于温度改变的改变、采样的PSF和MTF由于图形失真的改变等;数字处理参数,例如处理数量、处理形式、处理相关的图像噪音、数字滤波器噪音增益等。通过优化例程将波前编码操作数与传统的光学操作数(赛德尔(Seidel)波前像差,RMS波前误差等)相组合以修改光学表面。操作返回到经由传统的光线追踪来生成2402退出光瞳光程差(OPD)。
将理论上计算的波前编码表面形式用作光学优化的开始点。矩形地可分离的表面形式的一个一般族(family)以标准化坐标系给出为:
S(x)=|β|sign(x)|x|α
其中,对于x>0,sign(x)=+1,
以及,对于x≤0,sign(x)=-1。
指数参数α控制在散焦的范围内的MTF的高度,以及参数β控制散焦的灵敏度。一般,增加参数β减少了散焦的灵敏度,同时减少了MTF的高度以及增加了结果PSF的长度。
用于重建中间图像和产生最终图像的滤波过程能够强加计算负担。取决于光学系统和由编码过程引入的景深的增加,图像重建所需要的滤波器内核的大小可以与70×70系数一样大。一般,景深扩展越大,滤波器内核越大,而且噪音恶化或噪音增益越大。而且,因为波前编码使图像中的每个像素变模糊,所以每个像素需要被滤波;因此,更大的图像能够比更小的图像需要更多的计算。随着图像大小接近数千万像素,高效的计算解决方案用于实际的和经济的系统。计算实现,例如矩形地可分离的滤波器逼近,能够帮助减小内核尺寸。例如,波前编码元件能够具有矩形地可分离的立方相形式,该立方相形式被描述为:
S(x,y)=a(x3+y3)
对模糊的图像进行滤波以去除模糊,实质上强加了根据空间频率的放大和相移。该放大增加了最终图像中的信号还有噪音。对于非常大的景深增加,例如10倍以上,波前编码系统中的噪音增益可以是四倍或五倍。对于两倍或四倍的更温和的景深增加,噪音增益通常为两倍或更少。
对于不相关的高斯噪音(对大多数图像的好的假设),噪音增益是滤波器系数的RMS值。对于景深扩展太大而不能产生合适的小噪音增益值的系统,减小数字滤波器的分辨率或空间带宽能减小噪音增益。减小最终图像中的对比度也能够减小增加的噪音的整体影响。专门的非线性滤波是用于去除波前编码图像中的噪音的最佳解决方案。
因为实施例中的用于形成MTF和PSF的波前编码光学元件是矩形地可分离的,所以使用的信号处理也可以是矩形地可分离的。矩形地可分离的处理能够以一个数量级或更多地减少所需要的计算数量。由于用空间卷积来执行数字滤波的事实,实施例的计算方法包括在整个内核上的一系列的通过滤波器系数来缩放数据的乘法和将所有缩放后的数据值加在一起的求和。这种计算的基础单元是乘法累加(multiply-accumulate)操作。用于大的景深增加的通常的2-D波前编码滤波器内核可以是30×30系数。该滤波器的矩形可分离版本会包含长为30系数的行滤波器和高为30系数的列滤波器,或包括总共60系数。尽管波前编码元件在设计中可以是矩形地可分离的,但是其不限于如此,而且高像差的系统可以使用不可分离的滤波。
通过将光学成像技术与电子滤波相组合,波前编码技术能够提高广阔范围的成像系统的性能。高性能成像系统中的性能增益能够包括非常大的景深,而不会牺牲聚光或空间分辨率。低成本成像系统中的性能增益能够包括好的图像质量,而具有比传统所需要的更少的物理组件。
一致的虚拟/显示及物理空间
如以上所描述的,实施例的SOE包括用于检测、表示和解释三维空间输入的系统和方法。在SOE的上下文中,系统的实施例处理来自多个空间追踪数据源的低水平数据,以及分析这些语义上不相关的时空数据,以及根据动态可配置的显式和隐式姿势描述的集合来生成高水平的姿势事件。产生的事件适合于被交互系统消费,以及实施例提供了用于控制和实现到这些消费者的事件分发的一个或更多个机制。实施例还向其事件的消费者提供了用于在任意的空间和语义参考帧之间传输姿势事件的设备。
系统可以提供一种环境,其中在一个或多个显示设备(“屏幕”)上描绘的虚拟空间被当作与系统的一个或多个操作员所处的物理空间一致来处理。在此描述这种环境的一个实施例。该当前实施例包括在固定位置处由三个投影仪驱动的屏幕,由单个台式计算机驱动,并且使用这里所描述的姿势词汇和接口系统来控制。然而,应注意,所描述的技术支持任何数量的屏幕;这些屏幕可以是移动的(而非固定的);屏幕可以被许多独立的计算机同时驱动;且整个系统可以由任何输入设备或技术来控制。
本公开中描述的接口系统应具有确定屏幕在物理空间中的尺度、取向以及位置的装置。给定该信息,系统能够动态地将物理空间映射到在系统上运行的计算机应用的虚拟空间中,屏幕位于物理空间(且系统的操作员处于其中)中,这些屏幕作为投影。作为该自动映射的部分,系统还根据系统所掌管的应用的需要,以多种方式来转换两个空间的比例、角度、深度、尺度以及其它空间特性。
在物理和虚拟空间之间的这种连续的转换使得可以连贯且普遍地使用在现有的应用平台上难以实现的多种接口技术,或者必须针对现有平台上运行的每个应用来逐件执行。这些技术包括(但不限于):
1)使用“精确指向”—在姿势接口环境中使用手,或使用物理指向工具或设备—作为普遍和自然的接口技术。
2)自动补偿屏幕的移动或重新定位。
3)依赖于操作员位置而变化的图形呈现,例如模仿视差移动以增强深度感。
4)在屏上显示中包含物理物体—考虑真实世界的位置、取向、状态等。例如,站在大且不透明的屏幕前的操作员可以看见应用图形以及屏幕后面的比例模型的真实位置的表示(以及也许移动的或改变的取向)。
重要的是应该注意,精确指向不同于在基于鼠标的窗口接口以及大多数其它当代系统中使用的抽象指向。在那些系统中,操作员必须学会管理虚拟指针和物理指向设备之间的转换,并且必须在两个之间进行可认知地映射。
与之对照,在本公开所描述的系统中,无论从应用或用户角度,在虚拟和物理空间之间没有不同(除了虚拟空间更服从于数学处理),因此对操作员没有认知转换的需求。
与这里所描述的实施例所提供的精确指向的最类似的是触敏屏(例如,如许多ATM机器上所发现的)。触敏屏提供屏幕上的两维显示空间和屏幕表面的两维输入空间之间的一到一映射。以类似方式,这里所描述的系统提供显示在一个或多个屏幕上的虚拟空间和操作员所处于的物理空间之间的灵活映射(可能是,但不一定是,一到一)。尽管类似是有用的,应该理解的是,将该“影射方法”扩展到三维、任意大的结构环境以及多个屏幕并非是微不足道的。
除了这里所描述的组成之外,系统还可以实施在环境的物理空间和每个屏幕上的显示空间之间执行连续、系统级映射(也许通过旋转、平移、比例缩放或其它几何变换来修改)的算法。
描绘堆栈(rendering stack),其获得计算的物体以及映射,并输出虚拟空间的图形表示。
输入事件处理堆栈,其从控制系统获得事件数据(在当前的实施例中,来自系统和鼠标输入的姿势和指向数据二者)并将来自输入事件的空间数据映射到虚拟空间中的坐标。经转换的事件随后被传递到正在运行的应用。
“胶层(glue layer)”,其允许系统掌管在局域网上的几个计算机之上运行的应用。
如以下详细描述的,本文中将空间连续的输入系统的实施例描述为包括基于网络的数据表示、发送、和交换,其包括被称为“原生质(plasma)”的系统,其中,该“原生质(plasma)”包括子系统“色拉(slaw)”、“蛋白质(protein)”和“池(pool)”。池和蛋白质是本文中描述的用于封装将要在进程之间和跨越进程共享的数据的方法和系统的组件。这些机制除了蛋白质和池之外,还包括色拉(多个色拉)。一般,色拉提供最低水平的进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子(hook),而池则提供高水平的组织和访问语义。色拉包括有效的、不依赖于平台的数据表示和访问的机制。蛋白质提供使用色拉作为有效载荷的数据封装和传输方案。池在进程在内、在本地进程当中、跨越远程或分布式进程之间的网络并且经由较长期(例如在盘上等)存储提供蛋白质的结构化并且灵活的聚集、排序、过滤和分发。
本文中描述的实施例的配置和实现包括几个一起使得能够具有众多能力的构造。例如,如以上所描述的,本文中描述的实施例提供了数据在大量进程之间的有效交换。本文中描述的实施例还提供了灵活的数据“定型(typing)”和结构,以便支持数据的广泛变化的种类和使用。另外,本文中描述的实施例包括全都由基本上类似的应用程序编程接口(API)驱动的用于数据交换(例如本地存储器、盘、网络等)的灵活机制。此外,描述的实施例使得能够进行以不同的编程语言编写的进程之间的数据交换。另外,本文中描述的实施例使得能够自动维护数据缓存和聚集状态。
图25是根据实施例的包括使用色拉、蛋白质和池的数据表示的处理环境的框图。在此提供的实施例的主要构造包括色拉(多个色拉)、蛋白质和池。如在此描述的色拉包括用于有效的不依赖于平台的数据表示和访问的机制。如在此详细描述的蛋白质提供数据封装和传输方案,并且实施例的蛋白质的有效载荷包括色拉。如在此描述的池提供蛋白质的结构化但却灵活的聚集、排序、过滤和分发。池在进程之内、在本地进程当中、跨越远程或分布式进程之间的网络并且经由“较长期”(例如盘上)存储借助于蛋白质提供对数据的访问。
图26是根据实施例的蛋白质的框图。蛋白质包括长度头部、记述和摄取。如下面详细描述的那样,记述和摄取中的每一个都包括一个或多个色拉。
图27是根据实施例的记述的框图。如下面详细描述的那样,记述包括偏移、长度和色拉。
图28是根据实施例的摄取的框图。如下面详细描述的那样,摄取包括偏移、长度和色拉。
图29是根据实施例的色拉的框图。如下面详细描述的那样,色拉包括类型头部和类型专用数据。
图30A是根据实施例的池中蛋白质的框图。蛋白质包括长度头部(“蛋白质长度”)、记述偏移、摄取偏移、记述和摄取。记述包括偏移、长度和色拉。摄取包括偏移、长度和色拉。
如在此描述的蛋白质是用于封装数据的机制,数据需要在进程之间共享,或者需要跨越总线或网络或其它处理结构而移动。作为例子,蛋白质提供了用于传输和操纵数据的改进机制,数据包括对应于或者关联于用户接口事件的数据;特别地,实施例的用户接口事件包括以上描述的姿势接口的用户接口事件。作为进一步的例子,蛋白质提供了用于传输和操纵数据的改进机制,数据包括但不限于图形数据或事件以及状态信息,这只是举几个例子。蛋白质是结构化的记录格式和用于操纵记录的方法的相关集合。如在此使用的记录的操纵包括将数据放到结构中、将数据从结构取出以及查询数据的格式和存在。蛋白质配置成经由以多种计算机语言编写的代码来使用。如在此描述的那样,蛋白质还配置成用于池的基本构筑块。进而,蛋白质配置成天然地能够在处理器之间并跨越网络移动,同时维持它们包括的数据原封不动。
与传统的数据传输机制形成对照,蛋白质是未定型的。在未定型的同时,蛋白质提供了强大且灵活的模式匹配设施,在其上实施“类型相似”功能。如在此描述的那样配置的蛋白质还固有地为多点(尽管作为多点传输的子集容易实现点对点形式)。另外,蛋白质定义了“通用”记录格式,其例如在存储器内、盘上和线(网络)上格式之间并无不同(或者仅在所执行的可选优化的类型方面不同)。
参考图26和30A,实施例的蛋白质是字节的线性序列。在这些字节之内封装有记述列表和被称为摄取的关键值对的集合。记述列表包括任意精细但却有效可过滤的每个蛋白质事件描述。摄取包括关键值对的集合,其包括蛋白质的实际内容。
蛋白质与关键值对以及关于网络友好和多点数据交换的某些核心思想的相关性,与给予“元组(tuple)”的概念特权的较早系统(例如Linda、Jini)共享。蛋白质与面向元组的系统在几个主要方面不同,包括使用记述列表以提供标准的可优化的模式匹配基底(substrate)。蛋白质还与面向元组的系统在适合于多种存储和语言构造的记录格式的严格规范连同对该记录格式的“接口”的几个具体实施方面不同。
转向蛋白质的描述,蛋白质的前四个或八个字节指定了蛋白质的长度,其在实施例中必须是16字节的倍数。这个16字节粒度确保了字节准直和总线准直效能在当代的硬件上可实现。未被自然“四倍长字校直”的蛋白质被填充以任意字节,以便它的长度是16字节的倍数。
蛋白质的长度部分具有以下格式:呈大端(big-endian)格式的指定长度的32位,其中四个最低阶位充当旗标以指示宏观水平蛋白质结构特性;继之以32个另外的位,如果蛋白质的长度大于2^32字节的话。
实施例的16字节准直附文意味着前四个字节的最低阶位作为旗标可用。而且因此前三个低阶位旗标分别指示蛋白质的长度可以用前四个字节表示还是需要八个,蛋白质使用大端还是小端(little-endian)字节排序,以及蛋白质使用标准还是非标准结构,但是蛋白质不限于此。第四个旗标位被保留以供将来使用。
如果八字节长度旗标位被设置,则蛋白质的长度通过以下计算:读取下四个字节,并且使用它们作为大端的八字节整数的高阶字节(其中已经读取的四个字节供应低阶部分)。如果小端旗标被设置,则蛋白质中的所有二进制数值数据都将被解释为小端(否则为大端)。如果非标准旗标位被设置,则蛋白质的剩余部分不符合下面将要描述的标准结构。
在此不会进一步讨论非标准蛋白质结构,除了要说的是,关于对使用蛋白质和池的系统程序员可用的非标准蛋白质格式,存在用于描述和同步化的各种方法,并且当空间或计算周期受到约束时,这些方法是可以使用的。例如,实施例的最短蛋白质是十六字节。标准格式的蛋白质不能将任何实际的有效载荷数据装配到这十六个字节中(其中的最大份额已经被移交以描述蛋白质的组成部分的位置)。但是非标准格式的蛋白质就能够可以想象地使用16个字节中的12个用于数据。交换蛋白质的两个应用程序可以相互决定它们发出的任何16字节长的蛋白质总是包括例如表示来自实时模拟数字转换器的12个8位传感器值的12个字节。
紧跟着长度头部,在蛋白质的标准结构中,出现两个更多的可变长度整数。这些数分别指定了对记述列表中的第一个元素和第一个关键值对(摄取)的偏移。这些偏移在此也分别被称为记述偏移和摄取偏移。这些数的每四倍的字节顺序由蛋白质端旗标位指定。对于每个而言,前四个字节的最高有效位确定数字是四个还是八个字节宽。如果最高有效位(msb)被设置,则前四个字节是双字(八字节)数字的最高有效字节。这在此被称为“偏移形式”。指向记述和对的单独偏移的使用允许记述和对通过不同的代码路径处理,使得例如与记述模式匹配和蛋白质装配相关的特殊优化成为可能。在蛋白质的开始处的这两个偏移的存在还允许几个有用的优化。
大多数蛋白质不会如此大以至于需要八字节的长度或指针,所以一般而言,长度(具有旗标)和两个偏移数字只会占据蛋白质的前三个字节。在许多硬件或系统体系结构上,超过第一个的一定数目字节的提取或读取是“免费的”(例如16个字节正好占用与单个字节相同数目的时钟周期以跨越单元处理器的主总线牵引)。
在许多实例中,允许蛋白质内部的实施专用或环境专用的缓存或元数据都是有用的。偏移的使用允许在蛋白质的开始附近创建任意尺寸的“洞”,其中可以放置这样的元数据。可以利用八个字节的元数据的实施在许多系统体系结构上免费得到那些字节,其中每次提取蛋白质的长度头部。
记述偏移指定了蛋白质的开始与第一个记述条目之间的字节数。每个记述条目包括到下一个记述条目的偏移(当然是以偏移格式),继之以可变宽度的长度字段(又是以偏移格式),继之以色拉。如果没有进一步的记述,则偏移按规定是四个字节的零。否则,偏移指定这个记述条目的开始与下一个记述条目之间的字节数。长度字段以字节的方式指定色拉的长度。
在大多数蛋白质中,每个记述都是串,以色拉串的方式被格式化:四字节长度/类型头部,其中最高有效位被设置并且只有较低的30位用于指定长度,继之以头部的指示数目的数据字节。通常,长度头部从蛋白质取其端。字节被假定编码UTF-8字符(并且这样一来——注意——字符数就不一定与字节数相同)。
摄取偏移指定了蛋白质的开始与第一个摄取条目之间的字节数。每个摄取条目包括到下一个摄取条目的偏移(以偏移格式),又继之以长度字段和色拉。摄取偏移在功能上等同于记述偏移,除了它指向下一个摄取条目而不是下一个记述条目之外。
在大多数蛋白质中,每个摄取具有色拉cons类型,其包括双值列表,一般用作关键/值对。色拉cons记录包括:四字节长度/类型头部,其中第二最高有效位被设置并且只有较低的30位用于指定长度;到值(第二)元素开始的四字节偏移;四字节长度的关键元素;用于关键元素的色拉记录;四字节长度的值元素;以及最后用于值元素的色拉记录。
一般而言,cons关键字是色拉串。跨越几个蛋白质和色拉cons长度和偏移字段的数据的重复提供了用于细化和优化的又一次机会。
如以上所描述的,根据实施例使用的用于将定型的数据嵌入蛋白质内部的构造是被称为“色拉”的标记字节序列规范和抽象。色拉是表示(可能是聚集的)定型数据的字节的线性序列,并且与编程语言专用API相关联,其允许色拉在存储器空间、存储介质和机器之间创建、修改和四处移动。色拉类型方案旨在可扩展并且尽可能重量轻,并且成为可以从任何编程语言使用的通用基底。
建立有效的大规模的进程间通信机制的愿望是色拉配置的驱动器。传统的编程语言提供了在进程专用存储器布局中工作良好的复杂数据结构和类型设施,但是当数据需要在进程之间移动或存储在盘上时,这些数据表示总是损坏。色拉体系结构是用于进程间通信的第一基本上有效的多平台友好的低水平数据模型。
但更重要的是,色拉配置成连同蛋白质一起影响并启用未来计算硬件(微处理器、存储器控制器、盘控制器)的开发。对比如公共可用的微处理器的指令集合的几个专用添加使得色拉可以甚至对于单进程、存储器内数据布局变得与大多数编程语言中使用的方案一样有效。
每个色拉包括可变长度类型头部继之以类型专用数据布局。在例如支持C、C++和Ruby形式的全色拉功能的示例实施例中,通过可从每种语言访问的系统头部文件中定义的通用整数来指示类型。更加复杂和灵活的类型分辨功能也是可能的:例如经由通用对象ID和网络查找的间接定型。
实施例的色拉配置允许色拉记录用作例如来自Ruby和C++两者的语言友好方式的对象。C++编译器外部的一套实用程序完整性检查色拉字节布局,创建专用于单独色拉类型的宏和头部文件,并且自动生成用于Ruby的绑定。结果,良好配置的色拉类型即使当从单个进程之内使用时也十分有效。进程的可访问存储器中任何地方的任何色拉都可以被寻址而没有复制或“去串行化”步骤。
实施例的色拉功能包括用于执行以下中的一个或多个的API设施:创建特定类型的新色拉;创建或建立对来自盘上或存储器内字节的色拉的语言专用引用;以类型专用方式将数据嵌入色拉之内;查询色拉的尺寸;从色拉之内检索数据;克隆色拉;以及转换色拉之内全部数据的端和其它格式属性。每个色拉都执行上述行为。
图30B示出了根据实施例的色拉头部格式。色拉的详细描述如下。
每个色拉的内部结构都优化类型分辨、对封装数据的访问以及用于该色拉实例的尺寸信息中的每一个。在实施例中,色拉类型的完全集合被设计得最小完全,并且包括:色拉串;色拉cons(亦即对);色拉列表;以及色拉数字对象,其自身表示被理解为半打排列或这种基本属性的单独数字类型的广泛集合。任何色拉的其它基本性质是其尺寸。在实施例中,色拉具有量化成四的倍数的字节长度;这些四字节字在此被称为“quad(四)”。一般而言,这样的基于四的尺寸定位使得色拉与现代计算机硬件体系结构的配置良好配准。
实施例中的每个色拉的前四个字节包括头部结构,其编码类型描述和其它元信息,并且将特定类型意义归因于具体位模式。例如,色拉头部的第一个(最高有效)位用于指定该色拉的尺寸(以四字的长度计)是否遵循初始四字节类型头部。当这个位被设置时,可以理解的是,色拉的尺寸明确地记录在色拉的下四个字节中(例如字节五至八);如果色拉的尺寸是这样的,以至于不能以四个字节来表示(亦即,如果尺寸是或大于二的三十二次幂),那么色拉的初始四个字节的下一个最高有效位也被设置,这表明色拉具有八字节(而不是四字节)长度。在这种情况下,检查过程会发现存储在顺序字节五至十二中的色拉长度。另一方面,小数目的色拉类型意味着在许多情况下完全指定的典型位模式“留下未使用”四字节色拉头部中的许多位;并且在这样的情况下这些位可以用于编码色拉的长度,节省否则会需要的字节(五至八)。
例如,实施例留下色拉头部的最高有效位(“长度跟随”旗标)未设置,并且设置下一位以指示色拉是“wee cons”,并且在这种情况下色拉的长度(以四计)被编码在剩余的三十位中。类似地,“wee string”用头部中的模式001来标记,其留下二十九位用于表示色拉串的长度;并且头部中的引导0001描述“wee list”,其依靠二十八个可用长度表示位可以是高达二的二十八次幂个quad大小的色拉列表。“full string”(或cons或list)具有不同的头部中的位签名,其中最高有效头部位必定被设置,因为色拉长度分开编码在字节五至八(或十二,在极端情况下)中。注意,原生质实施在色拉构造之时“决定”是使用这些构造的“wee”还是“full”版本(该决定基于作为结果的尺寸是否会“配合”可用的wee位),但是full对比于wee的细节相对于原生质实施的用户是隐藏的,用户只知道和关心她正在使用色拉串或色拉cons或色拉列表。
数值色拉在实施例中用引导头部模式00001指示。随后的头部位用于表示可能以任意排列进行组合的一组正交性质。实施例使用但不限于五个这样的字符位以指示数字是否是:(1)浮点;(2)复数;(3)无符号;(4)“宽(wide)”;(5)“粗短(stumpy)”((4)“wide”和(5)“stumpy”进行排列以指示八、十六、三十二和六十四位数表示)。两个另外的位(例如(7)和(8))指示封装的数值数据是二、三或四元素矢量(其中两个位为零表明数值是“一元素矢量”(亦即标量)。在这个实施例中,第四个头部字节的八个位用于编码封装的数值数据的尺寸(以字节计而不是quad)。这个尺寸编码被偏移一,以便它可以表示包括一和二百五十六字节以及之间的任何尺寸。最后,两个字符位(例如(9)和(10)用于指示数值数据编码单独数值条目的阵列,其中的每一个具有由字符位(1)至(8)描述的类型。在阵列的情况下,单独数值条目不是每个用另外的头部标记,而是包装为连续的数据,其跟随单个头部以及可能的明确色拉尺寸信息。
这个实施例提供了简单而有效的色拉复制(其可以实施为字节对字节复制)以及极其直接和有效的色拉比较(在这个实施例中,当且仅当考虑序列的两个色拉的组成部分字节中的每一个一一匹配时,这两个色拉才相同)。这后一性质例如对于蛋白质体系结构的有效实施是重要的,蛋白质体系结构的关键性和普遍的特征之一是搜索或“匹配”蛋白质的记述列表。
而且,此处的实施例允许简单且有效地构造聚集色拉形式(例如色拉cons和色拉列表)。例如,实施例通过以下从两部分色拉(其可以具有任何类型,包括它们自己聚集)建立色拉cons:(a)查询每个部分色拉的尺寸;(b)分配尺寸等于两个部分色拉的尺寸和头部加上尺寸结构所需的一个、两个或三个quad之和的存储器;(c)在前四个、八个或十二个字节中记录色拉头部(加上尺寸信息);以及然后(d)依次将部分色拉的字节复制到紧接着后续的存储器中。重要的是,这样的构造例程不需要知道关于两部分色拉的类型的任何东西;只有它们的尺寸(以及作为字节序列的可访问性)要紧。相同的过程适用于色拉列表的构造,色拉列表是(可能地)异样类型的任意许多子色拉的排序封装。
作为存储器内顺序字节的色拉系统的基础格式的另外后果结合“遍历”活动——例如循环使用模式使用获得对色拉列表中存储的单独色拉的顺序访问。表示蛋白质结构之内的记述和摄取的单独色拉必须类似地遍历。以令人晕倒的直接且有效的方式完成这样的调度:为了“到达”色拉列表中的下一个色拉,将当前色拉的长度添加到其存储器内的位置,并且作为结果的存储器位置等同地为下一个色拉的头部。这样的简化是可能的,因为色拉和蛋白质设计避免“间接”;不存在指针;相反地,数据简单地以其全体存在就位。
对于色拉比较这一点,原生质系统的完全实施必须承认跨越不同操作系统、CPU和硬件体系结构以及它们当中的不同且不兼容的数据表示方案的存在。大多数这样的不同包括字节排序策略(例如小对比于大端)和浮点表示;其它不同也存在。原生质规范要求色拉所封装的数据保证可解释(亦即必须以从中检查色拉的体系结构或平台的自然格式出现)。这个要求依次表明原生质系统自身对数据格式转换负责。然而,规范仅规定,在色拉变得对可能检查它的执行进程“根本可见”之前发生转换。因此达到单独的实施,在该点它选择执行这样的格式c转换;两个适当的方法是,色拉数据有效载荷一致于本地体系结构的数据格式(1)当单独的色拉从它已被包装在其中的蛋白质中“拉出”时,或者(2)对于同时在蛋白质中的全部色拉,当该蛋白质从它处于其中的池中提取时。注意,转换规定考虑硬件辅助实施的可能性。例如,建立有明确原生质能力的联网芯片组可以基于接收系统的已知特性智能地并且在“传输时”执行格式转换。交替地,传输的过程可以将数据有效载荷转换成规范格式,其中接收过程对称地从规范转换到“本地”格式。另一个实施例执行“在金属”的格式转换,意味着数据总是以规范格式存储,即使在本地存储器中也是,并且当数据从存储器中检索并放置在就近CPU的寄存器中时,存储器控制器硬件自身执行转换。
实施例的最小(和只读)蛋白质实施包括利用蛋白质的一个或多个应用程序或编程语言中的操作或行为。图30C是根据实施例的用于使用蛋白质的流程图3050。操作开始于查询3052蛋白质的以字节计的长度。记述条目的数目被查询3054。摄取的数目被查询3056。通过指数检索3058记述条目。通过指数检索3060摄取。
本文中描述的实施例还定义了允许蛋白质被构造并填充以数据的基本方法、使一般任务对程序员更容易的助手方法以及用于创建优化的钩子。图30D是根据实施例的用于构造或生成蛋白质的流程图3070。操作开始于创建3072新蛋白质。一系列的记述条目被附加3074。摄取也被附加3076。匹配记述的存在被查询3078,并且匹配摄取关键字的存在被查询3080。给定摄取关键字,摄取值被检索3082。跨越记述执行3084模式匹配。在蛋白质的开始附近嵌入3086非结构化的元数据。
如以上所描述的,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子,而池则提供高水平的组织和访问语义。池是用于蛋白质的仓库,提供线性序列和状态缓存。池还提供通过众多不同类型的多个程序或应用程序进行的多进程访问。此外,池提供一组共同的可优化的过滤和模式匹配行为。
可以容纳成千上万个蛋白质的实施例的池用于维持状态,以便单独的进程可以卸载对多进程程序代码共同的大多数冗长簿记。池维持或保持过去可用蛋白质的大缓冲器——柏拉图式理想的(Platonic)池明确地无限——以便参与的进程可以随意在池中向后和向前扫描。缓冲器的尺寸当然依赖于实施,但是在通常使用中常常可以将蛋白质保持在池中以小时或天计。
与现有的进程间通信框架所采取的机械式点对点方法形成对照,如本文中描述的池使用的最通常的风格遵守生物学比喻。名称蛋白质暗指生物学灵感:池中的数据蛋白质可用于大量计算进程进行的灵活查询和模式匹配,就像活体组织中的化学蛋白质可用于大量细胞试剂进行的模式匹配和过滤。
两个另外的抽象依靠生物学比喻,包括使用“处理机(handler)”和高尔基(Golgi)框架。参与池的进程一般创建若干处理机。处理机是将匹配条件与处理行为相关联的相对小束的代码。通过将一个或多个处理机联系到池,进程设立灵活的回叫触发,其封装状态并对新的蛋白质起反应。
参与几个池的进程一般从抽象高尔基类继承。高尔基框架提供若干有用的例程,用于管理多个池和处理机。高尔基类还封装双亲子女关系,提供不使用池的本地蛋白质交换的机制。
根据实施例提供的池API配置成允许池以多种方式实施,以便既考虑系统专用目标,又考虑给定硬件和网络体系结构的可用能力。池所依靠的两个基本系统规定是存储设施和进程间通信的装置。在此描述的现存系统使用以下的灵活组合:共享存储器、虚拟存储器和用于存储设施的盘以及用于进程间通信的TCP/IP套接字和IPC队列。
实施例的池功能包括但不限于以下:参与池;将蛋白质放置在池中;从池中检索下一个未看到的蛋白质;反绕或快进池内的内容(例如蛋白质)。另外,池功能可以包括但不限于以下:设立用于进程的流池回叫;选择性地检索匹配记述或摄取关键字的特殊模式的蛋白质;向后并向前扫描匹配记述或摄取关键字的特殊模式的蛋白质。
上述蛋白质被提供给池,作为与其它应用程序共享蛋白质数据内容的方式。图31是根据实施例的包括使用色拉、蛋白质和池的数据交换的处理环境的框图。这个实例环境包括三个装置(例如装置X、装置Y和装置Z,在此集体被称为“装置”),它们通过使用如以上所描述的色拉、蛋白质和池来共享数据。装置中的每一个耦合到三个池(例如池1、池2、池3)。池1包括众多蛋白质(例如蛋白质X1、蛋白质Z2、蛋白质Y2、蛋白质X4、蛋白质Y4),它们从各个装置贡献或传送到池(例如,蛋白质Z2由装置Z传送或贡献到池1,等等)。池2包括众多蛋白质(例如蛋白质Z4、蛋白质Y3、蛋白质Z1、蛋白质X3),它们从各个装置贡献或传送到池(例如,蛋白质Y3由装置Y传送或贡献到池2,等等)。池3包括众多蛋白质(例如蛋白质Y1、蛋白质Z3、蛋白质X2),它们从各个装置贡献或传送到池(例如,蛋白质X2由装置X传送或贡献到池3,等等)。虽然上面描述的例子包括耦合或连接在三个池当中的三个装置,但是任何数目的装置可以以任何方式或组合来耦合或连接在任何数目的池当中,并且任何池可以包括从任何数目或组合的装置中贡献的任何数目的蛋白质。这个示例的蛋白质和池与以上参考图25-图30所描述的一样。
图32是根据实施例的处理环境的框图,该处理环境包括多个装置和在装置中的一个或多个上运行的众多程序,其中,原生质构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个装置(例如装置A、B等等)和在装置上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用原生质构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个装置(例如装置A、B等等)将由运行于各个装置上的程序(例如应用程序AA-AX、应用程序BA-BX等等)生成的或者从其输出的离散原始数据转换成原生质蛋白质,并且将那些蛋白质存放到原生质池中。例如,程序AX生成数据或输出并提供该输出给装置A,装置A依次将原始数据转换成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,程序BC生成数据并提供该数据给装置B,装置B依次将数据转换成蛋白质(例如蛋白质1B、蛋白质2B等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过应用程序登记的数据或输出以及用于程序自身的识别信息。在可能的情况下,蛋白质记述也可以给予输出事件或动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于程序事件的有用状态信息的全部集合。
如以上所描述的,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便装置可以由一个人控制或者可以由几个人同时使用(例如基于原生质的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
作为例子,装置C可以从池中提取一个或多个蛋白质(例如蛋白质1A、蛋白质2A等等)。在蛋白质提取之后,装置C在蛋白质数据所对应的处理事件中可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据。作为另一个例子,装置B可以从池中提取一个或多个蛋白质(例如蛋白质1C、蛋白质2A等等)。在蛋白质提取之后,装置B在蛋白质数据所对应的处理事件中可以使用蛋白质的数据。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
图33是根据替换实施例的处理环境的框图,该处理环境包括多个装置和在装置中的一个或多个上运行的众多程序,其中,原生质构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个装置(例如分别耦合到装置A和B的装置X和Y)和在一个或多个计算机(例如装置A、装置B等等)上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用原生质构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个装置(例如分别耦合到装置A和B的装置X和Y)被管理和/或耦合以在一个或多个程序之下或者与其相结合地运行,一个或多个程序驻留在各个装置上(例如装置A、装置B等等),各个装置将由装置(例如装置X、装置A、装置Y、装置B等等)硬件所生成的离散原始数据转换成原生质蛋白质,并且将那些蛋白质存放到原生质池中。例如,与驻留在装置A上的应用程序AB相结合地运行的装置X生成原始数据,将离散的原始数据转换成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,与驻留在装置A上的应用程序AT相结合地运行的装置X生成原始数据,将离散的原始数据转换成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为还有另一个例子,与驻留在装置C上的应用程序CD相结合地运行的装置Z生成原始数据,将离散的原始数据转换成蛋白质(例如蛋白质1C、蛋白质2C等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过输入装置登记的动作以及用于装置自身的识别信息。在可能的情况下,蛋白质记述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
如以上所描述的,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于原生质的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
图34是根据另一个替换实施例的处理环境的框图,该处理环境包括多个输入装置,多个输入装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,原生质构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对输入装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个输入装置(例如输入装置A、B、BA和BB等等)和在一个或多个计算机(例如装置A、装置B等等)上运行的若干程序(未示出)的交互系统使用原生质构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个输入装置(例如输入装置A、B、BA和BB等等)由驻留在各个装置上(例如装置A、装置B等等)的软件驱动器程序管理,各个装置将由输入装置硬件所生成的离散原始数据转换成原生质蛋白质,并且将那些蛋白质存放到原生质池中。例如,输入装置A生成原始数据并提供该原始数据给装置A,装置A依次将离散的原始数据转换成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,输入装置BB生成原始数据并提供该原始数据给装置B,装置B依次将离散的原始数据转换成蛋白质(例如蛋白质1B、蛋白质3B等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过输入装置登记的动作以及用于装置自身的识别信息。在可能的情况下,蛋白质记述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
为了示意,这里是这样的系统中的用于两个典型事件的示例蛋白质。蛋白质在这里被表示为文本,然而在实际实施中,这些蛋白质的组成部分是定型的数据束(例如色拉)。描述一般而言“一根手指点击”姿势(在相关申请中有描述)的蛋白质如下:
Figure BPA00001347402700501
作为进一步的例子,描述鼠标点击的蛋白质如下:
Figure BPA00001347402700502
前述样本蛋白质中的任一个或两者可能使主机装置的参与程序运行其代码的特殊部分。这些程序可能对一般的语义标签感兴趣:全部当中最一般的是“point”,或者更特定的对“engage,one”。或者它们可以寻找似乎仅会由精确装置生成的事件:“one-finger-engage”,乃至单个聚集对象“hand-id-23”。
如以上所描述的,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成“输入事件”的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于原生质的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
作为例子或蛋白质使用,装置C可以从池中提取一个或多个蛋白质(例如蛋白质1B等等)。在蛋白质提取之后,装置C在处理蛋白质数据所对应的输入装置CA和CC的输入事件时可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据。作为另一个例子,装置A可以从池中提取一个或多个蛋白质(例如蛋白质1B等等)。在蛋白质提取之后,装置A在处理蛋白质数据所对应的输入装置A的输入事件时可以使用蛋白质的数据。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
在此描述的系统实施例中使用的输入装置的例子包括如消费电子产品中使用的姿势输入传感器、键盘、鼠标、红外线遥控器以及面向任务的触媒对象,这只是举几个例子。
图35是根据又一个替换实施例的处理环境的框图,该处理环境包括多个装置,多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,原生质构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的图形事件集体做出反应。这个系统只是包括多个运行程序(例如图形A-E)和一个或多个显示装置(未示出)的系统的一个例子,其中,使得程序中的一些或全部的图形输出以协调的方式可用于其它程序,使用原生质构造(例如池、蛋白质和色拉)以允许运行的程序共享并对装置所生成的图形事件集体做出反应。
对于计算机程序而言通常有用的是显示由另一个程序生成的图形。几个通常的例子包括视频会议应用程序、基于网络的放映幻灯片和演示程序以及视窗管理器。在这种配置下,池用作原生质库以实施一般化的框架,该框架封装视频、网络应用程序共享和视窗管理,并且允许程序员添加在这种程序的当前版本中通常不可用的若干特征。
在原生质组成环境中运行的程序(例如图形A-E)通过耦合和/或连接到池而参与协调池。每个程序都可以将蛋白质存放在该池中,以指示不同种类的图形源的可用性。可用于显示图形的程序也存放蛋白质,以指示它们显示的能力、安全和用户简档以及物理和网络位置。
图形数据也可以通过池传输,或者显示程序可以指向其它种类的网络资源(例如RTSP流)。如在此使用的短语“图形数据”指的是依赖宽阔连续区的多种不同表示;图形数据的例子包括但不限于文字例子(例如“图像”或像素块)、程序性例子(例如“绘图”指示的序列,诸如流下典型的openGL管线)以及描述性例子(例如借助于几何转换、裁剪和合成操作来组合其它图形构造的指令)。
在本地机器上,图形数据可以通过平台专用显示驱动器优化来递送。即使当图形没有经由池传输时,通常周期性的屏幕捕捉也会存储在协调池中,以便客户在不直接访问更深奥的源的情况下仍然可以显示后退图形。
这里描述的系统的一个优点在于,与大多数消息传递框架和网络协议不同,池维持数据的显著缓冲。所以程序可以向后回绕到池中以查看访问和使用模式(在协调池的情况下)或者提取以前的图形帧(在图形池的情况下)。
图36是根据再一个替换实施例的处理环境的框图,该处理环境包括多个装置,多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,原生质构造(例如池、蛋白质和色拉)用于允许对运行的程序进行状态检查、可视化和调试。这个系统只是包括多个装置(例如装置A、装置B等等)上的多个运行程序(例如程序P-A、程序P-B等等)的系统的一个例子,其中,一些程序使用或经由池访问其它程序的内部状态。
大多数交互计算机系统包括彼此并排运行的许多程序,它们或者在单个机器上或者在多个机器上,并且跨越网络进行交互。多程序系统可能难以配置、分析和调试,因为运行时间数据隐藏在每个进程内部并难以访问。在此描述的实施例的一般化框架和原生质构造允许运行的程序使许多它们的数据经由池可用,以便其它程序可以检查它们的状态。这个框架启用比传统调试器更灵活的调试工具、复杂的系统维护工具以及可视化装备,可视化装备配置成允许人工操作员详细地分析一个或多个程序已经过的状态的序列。
参考图36,在这个框架中运行的程序(例如程序P-A、程序P-B等等)在程序启动时生成或创建进程池。这个池登记在系统年鉴中,并且施加安全与访问控制。更加具体地,每个装置(例如装置A、B等等)将由运行于各个装置上的程序(例如程序P-A、程序P-B等等)生成的或者从其输出的离散原始数据转换成原生质蛋白质,并且将那些蛋白质存放到原生质池中。例如,程序P-A生成数据或输出并提供该输出给装置A,装置A依次将原始数据转换成蛋白质(例如蛋白质1A、蛋白质2A、蛋白质3A等等)并将那些蛋白质存放到池中。作为另一个例子,程序P-B生成数据并提供该数据给装置B,装置B依次将数据转换成蛋白质(例如蛋白质1B-4B等等)并将那些蛋白质存放到池中。
在程序寿命的存续期间,具有充分访问许可的其它程序可以附接到池并读取程序存放的蛋白质;这表示基本检查模态,并且在概念上是“单路”或“只读”命题:在程序P-A中感兴趣的实体检查由其进程池中的P-A存放的状态信息流。例如,在装置C下运行的检查程序或应用程序可以从池中提取一个或多个蛋白质(例如蛋白质1A、蛋白质2A等等)。在蛋白质提取之后,装置C可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据以访问、解释和检查程序P-A的内部状态。
但是,回顾原生质系统不仅是有效的状态传输方案,而且是全方向消息收发环境,几个另外的模式支持程序对程序状态检查。授权的检查程序可以自己将蛋白质存放到程序P的进程池中,以影响或控制在该进程池中产生和放置的状态信息的特性(毕竟,程序P不仅向进程池中写入而且还从中读取)。
图37是根据另一个替换实施例的处理环境的框图,该处理环境包括多个装置,多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,原生质构造(例如池、蛋白质和色拉)用于允许影响或控制该进程池中产生和放置的状态信息的特性。在这个系统例子中,装置C的检查程序例如可以请求程序(例如程序P-A、程序P-B等等)或者在单个即时或者在具体的一段时间倾卸比正常更多的状态到池中。或者,预示调试通信的下一个“等级”,感兴趣的程序可以请求程序(例如程序P-A、程序P-B等等)发出列举其运行时间环境中现存的对象的蛋白质,它们单独地能够并且可用于经由调试池进行交互。由此可知,感兴趣的程序可以“寻址”程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占用并做出反应的进程池中。感兴趣的程序例如可以请求对象发出报告蛋白质,描述其全部成分变量的即时值。甚至更重要的是,感兴趣的程序可以经由其它蛋白质指导对象改变其行为或其变量的值。
更加具体地,在这个例子中,装置C的检查应用程序将对于对象列表的请求(例如“请求对象列表”)(以蛋白质的形式)放置到池中,该请求然后由耦合到池的每个装置(例如装置A、装置B等等)提取。响应于该请求,每个装置(例如装置A、装置B等等)将列举其运行时间环境中现存的对象的蛋白质(例如蛋白质1A、蛋白质1B等等)放置到池中,它们单独地能够并且可用于经由调试池进行交互。
由此可知经由来自装置的列举,并且响应于对象的列举,装置C的检查应用程序寻址程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占用并做出反应的进程池中。装置C的检查应用程序例如可以将请求蛋白质(例如蛋白质“请求报告P-A-O”、“请求报告P-B-O”)放置在池中,对象(例如分别是对象P-A-O、对象P-B-O)发出报告蛋白质(例如蛋白质2A、蛋白质2B等等),描述其全部成分变量的即时值。每个对象(例如对象P-A-O、对象P-B-O)提取其请求(例如分别是“请求报告P-A-O”、“请求报告P-B-O”),并且做为响应,将蛋白质放置到包括所请求的报告(例如分别为蛋白质2A、蛋白质2B)的池中。装置C然后提取各种报告蛋白质(例如蛋白质2A、蛋白质2B等等),并且如对报告的内容适当的那样采取随后的处理动作。
用这种方式,使用原生质作为互换介质最终趋于侵蚀调试、进程控制以及程序对程序通信与协调之间的区别。
最后,一般化的原生质框架允许可视化和分析程序以松散耦合的方式设计。例如显示存储器访问模式的可视化工具可以结合输出其基本存储器读取和写入至池的任何程序一起使用。经历分析的程序不需要知道可视化工具的存在或设计,反之亦然。
以上述方式使用池并不过度影响系统性能。例如,实施例已允许在池中每秒存放几十万个蛋白质,以便使得即使相对冗长的数据输出也能够不显著地抑制大多数程序的响应性或交互特征。
本文中描述的实施例包括一种用于在数据空间中导航的方法,该方法包括:从经由检测器接收到的姿势数据中检测身体的姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,检测包括仅使用姿势数据来识别姿势;将姿势转换成姿势信号;以及响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间。
实施例的方法包括将数据集的参数控制轴与物理空间的维对准。
实施例的维为深度维。
实施例的维为水平维。
实施例的维为垂直维。
实施例的维为侧向维。
实施例的导航包括沿维的运动以实现沿参数控制轴的数据空间移动。
实施例的导航包括导航到数据空间的量化参数空间。
实施例的检测包括检测身体的演进的位置。
实施例的检测包括检测身体的演进的取向。
实施例的检测包括检测身体的演进的姿态,其中,姿态是身体的部分相对于身体的至少一个其它部分的几何布置。
实施例的检测包括检测身体的演进的运动。
实施例的检测包括检测以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括将姿势解析成姿势事件的序列。
实施例的方法包括识别姿势。
实施例的姿势的识别包括识别以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括生成姿势事件的序列中的姿势事件的表示。
实施例的方法包括将姿势事件的表示分发到耦合到数据空间的至少一个控制组件。
实施例的方法包括使姿势事件的表示与数据空间的图形描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的图形描述同步。
实施例的方法包括使姿势事件的表示与数据空间的听觉描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的听觉描述同步。
实施例的数据集表示空间信息。
实施例的数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
实施例的数据集表示非空间信息。
实施例的姿势包括线性空间运动。
实施例的导航包括在数据空间中的线性接近。
实施例的方法包括在多个数据帧中呈现数据集,其中,数据帧是数据空间的多个区域的图形描述。实施例的方法包括在显示器上将每个数据帧显示为可见帧。
实施例的数据帧的大小和纵横比与显示器的大小和纵横比相一致。
实施例的数据帧的中心和法向矢量与显示器的中心和法向矢量相一致。
实施例的数据帧的位置和取向与显示器的位置和取向相一致。
实施例的每个数据帧包括表示数据集的元素的图形数据元素。
实施例的图形数据元素为静态元素。
实施例的图形数据元素为动态元素。
实施例的数据帧为二维构造。
实施例的数据帧驻留在具有坐标系的三维图形呈现环境中,其中,该坐标系与描述包括身体的本地环境的坐标系相一致。
实施例的在数据空间中导航包括在多个数据帧中导航。
实施例的方法包括检测身体的第一姿态。实施例的方法包括响应于检测到第一姿态而激活推回交互。
实施例的方法包括记录进入第一姿态的第一位置,其中,第一位置是三维空间的手位置。实施例的方法包括将第一位置设置为原点,其中,将随后的检测到的身体位置报告为与原点的相对偏移。
实施例的方法包括通过检测身体的移动来检测姿势。
实施例的检测包括检测身体的第一移动,其中,第一移动是沿轴朝向显示器的移动,其中,该轴被定义为与显示器的观看表面垂直的轴。
响应身体的第一移动,实施例的导航包括沿轴位移多个数据帧,其中,数据帧所位于的平面中有较多平面变得可见,其中,看见显示器上呈现的第一可见帧从显示器后退,以及第一数据帧的邻近数据帧变得可见。
响应身体的第一移动,实施例的导航包括沿轴从当前数据帧位移多个数据帧,其中,数据帧向下平移,其中,当前数据帧是当前呈现在显示器上的数据帧。
实施例的每个数据帧的外表响应于位移而改变,其中,位于当前数据帧之下的数据帧呈现相对高的透明度和模糊度,其中,当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,位于当前数据帧之上的数据帧呈现相对更低的透明度和模糊度以及变得可见。
实施例的检测包括检测身体的第二移动,其中,第二移动是沿轴远离显示器的移动。
响应身体的第二移动,实施例的导航包括沿轴位移多个数据帧,其中,数据帧所位于的平面中有较少平面变得可见,其中,看见显示器上呈现的第一可见帧从显示器接近,以及第一数据帧的邻近数据帧变得更少地可见。
响应身体的第二移动,实施例的导航包括沿轴从当前数据帧位移多个数据帧,其中,数据帧向上平移,其中,当前数据帧是当前呈现在显示器上的数据帧。
实施例的每个数据帧的外表响应于位移而改变,其中,位于当前数据帧之上的数据帧呈现相对高的透明度和模糊度,其中,当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,位于当前数据帧之下的数据帧呈现相对更低的透明度和模糊度以及开始变得可见。
实施例的检测包括检测身体的第三移动,其中,第三移动是在与显示器的观看表面平行的平面内的移动。
响应身体的第三移动,实施例的导航包括在对应于第三移动的方向上位移多个数据帧。
看见本实施例的呈现在显示器上的当前数据帧在该方向上滑动,以及当前数据帧的邻近数据帧从显示器的与该方向相反的一侧滑入视图中,其中,当前数据帧是当前呈现在显示器上的数据帧。
实施例的导航包括直接响应身体的移动而连续更新多个数据帧的位移。
实施例的方法包括检测身体的第二姿态。实施例的方法包括响应于检测到第二姿态而终止推回交互,其中,终止包括将多个数据帧中的数据帧显示为与显示器共面。
实施例的方法包括在姿势期间的身体位移的物理距离与在导航期间在数据空间中的相继点间的逻辑距离之间的映射,其中,映射控制以下至少之一:多个数据帧在数据空间中的相对位移、和每个离散数据帧的外表。
实施例的方法包括形成包括活动区和死区的姿势交互空间,其中,活动区邻近显示器,而死区邻近活动区。
当在活动区中检测到姿势时,响应于姿势而激活本实施例的响应于姿势信号在数据空间中的导航。
实施例的方法包括呈现在显示器上的反馈指示器。
实施例的反馈指示器显示指示身体在活动区和死区之一中的反馈。
实施例的反馈指示器显示指示身体离原点的物理偏移的反馈。
实施例的检测包括以下至少之一:检测身体的位置、检测身体的取向、和检测身体的运动。
实施例的方法包括识别姿势,其中,识别包括识别身体的部分的姿态和取向。
实施例的检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
实施例的检测包括动态检测耦合到身体的至少一个标签的位置。
实施例的检测包括动态检测耦合到身体的标签集的位置。
实施例的标签集中的每个标签包括图案,其中,标签集中的每个标签的每个图案不同于多个标签中的任意剩余标签的任意图案。
实施例的检测包括动态检测和定位身体上的标记。
实施例的检测包括检测耦合到身体的标记集的位置。
实施例的标记集形成身体上的多个图案。
实施例的检测包括使用耦合到附属物中的每个的标记集来检测身体的多个附属物的位置。
实施例的转换包括将姿势信息转换成姿势符号。
实施例的姿势符号表示姿势词汇,以及姿势信号包括姿势词汇的通信。
实施例的姿势词汇以文本形式表示身体的运动关联(kinematic linkage)的即时姿态状态。
实施例的姿势词汇以文本形式表示身体的运动关联(kinematic linkage)的取向。
实施例的姿势词汇以文本形式表示身体的运动关联(kinematic linkage)的取向的组合。
实施例的姿势词汇包括表示身体的运动关联的状态的字符串。
实施例的运动关联是身体的至少一个第一附属物。
实施例的方法包括将字符串中的每个位置指定给第二附属物,该第二附属物连接到第一附属物。
实施例的方法包括将多个字符中的字符指定给第二附属物的多个位置中的每个。
实施例的多个位置相对于坐标系原点而建立。
实施例的方法包括使用从由以下组成的组中选择的位置以及交互地响应身体的动作来建立坐标系原点:空间中的绝对位置和取向、不管身体的整体位置和朝向而相对于身体的固定位置和取向。
实施例的方法包括将多个字符中的字符指定给第一附属物的多个取向中的每个。
实施例的检测包括检测身体的推测(extrapolated)位置何时与虚拟空间相交,其中,虚拟空间包括在耦合到计算机的显示装置上描绘的空间。
实施例的方法包括当推测的位置与虚拟空间中虚拟对象相交时控制虚拟对象。
实施例的控制包括响应虚拟空间中的推测的位置控制虚拟空间中的虚拟对象的位置。
实施例的控制包括响应于姿势来控制虚拟空间中的虚拟对象的姿势。
实施例的方法包括对检测和控制的定标(scaling)进行控制以产生虚拟空间与物理空间之间的一致性,其中,虚拟空间包括显示器上描绘的空间,其中,物理空间包括身体所存在于的空间。
实施例的方法包括响应于物理空间中的至少一个物理对象的移动来控制虚拟空间中的至少一个虚拟对象。
实施例的方法包括利用成像系统对身体进行成像。
实施例的成像包括生成身体的波前编码图像。
实施例的姿势数据包括身体的在成像系统的景深之内的焦点分辨的数据。
实施例的方法包括通过对成像系统采集的图像进行编码来生成中间图像。
实施例的中间图像变得模糊。
实施例的中间图像对以下方面中的至少之一的改变不敏感:身体,以及成像系统中包括散焦像差的多个光学检测器。
实施例的姿势数据包括身体的在景深之内的焦点分辨的范围数据。
实施例的身体的在景深之内的焦点分辨的范围数据是从成像系统的输出导出的。
实施例的姿势数据包括身体的在景深之内的焦点分辨的位置数据。
实施例的身体的在景深之内的焦点分辨的位置数据是从成像系统的输出导出的。
实施例的成像系统包括多个检测器。
实施例的至少两个检测器是包括波前编码光学元件的波前编码摄像机。
实施例的至少两个光学检测器是包括增加成像的焦点深度的相位掩模的波前编码摄像机。
实施例的方法包括生成不随身体和成像系统之间的距离而变化的调制传递函数和点扩散函数。
实施例的方法包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
本文中描述的实施例包括一种系统,该系统包括:检测器,用于接收表示身体做出的姿势的姿势数据;以及耦合到检测器的处理器,处理器自动从姿势数据中检测姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,处理器仅使用姿势数据来识别姿势,处理器将姿势转换成姿势信号,处理器响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间。
本文中描述的实施例包括一种用于在数据空间中导航的方法,该方法包括:从经由检测器接收到的姿势数据中检测身体的姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,检测包括仅使用姿势数据来识别姿势;将姿势转换成姿势信号;响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间;以及在多个共面数据帧中呈现数据集以及在显示器上将每个数据帧显示为可见帧,其中,多个共面数据帧是数据空间的多个区域的图形描绘。
实施例的方法包括检测身体的第一姿态。实施例的方法包括响应于检测到第一姿态而激活推回交互。
实施例的方法包括记录进入第一姿态的第一位置,其中,第一位置是三维空间的手位置。实施例的方法包括将第一位置设置为原点,其中,将随后的检测到的身体位置报告为与原点的相对偏移。
实施例的检测包括检测身体的向前移动,其中,向前移动是沿z轴朝向显示器的移动,其中,该z轴被定义为与显示器的观看表面垂直的轴。
响应身体的向前移动,实施例的导航包括沿z轴位移多个数据帧,其中,数据帧所位于的平面中有较多平面变得可见,其中,看见显示器上呈现的第一可见帧从显示器后退,以及第一数据帧的邻近数据帧变得可见。
实施例的检测包括检测身体的向后移动,其中,向后移动是沿z轴远离显示器的移动。
响应身体的向后移动,实施例的导航包括沿z轴位移多个数据帧,其中,数据帧所位于的平面中有较少平面变得可见,其中,看见显示器上呈现的第一可见帧从显示器接近,以及第一数据帧的邻近数据帧变得更少地可见。
实施例的方法包括直接响应身体沿z轴的移动而连续更新多个数据帧的沿z轴的位移。
实施例的方法包括检测身体的第二姿态。实施例的方法包括响应于检测到第二姿态而终止推回交互,其中,终止包括将多个数据帧中的数据帧显示为与显示器共面。
实施例的检测包括检测身体的右侧向移动,其中,右侧向移动是沿x轴的移动,其中,x轴存在于与显示器的观看表面平行的平面内。
响应身体的右侧向移动,实施例的导航包括沿x轴向右位移多个数据帧,其中,看见呈现在显示器上的第一可见帧从显示器向显示器的右侧滑动,以及第一数据帧的邻近数据帧从显示器的左侧滑入视图中。
实施例的检测包括检测身体的左侧向移动,其中,左侧向移动是沿x轴的移动。
响应身体的左侧向移动,实施例的导航包括沿x轴向左位移多个数据帧,其中,看见呈现在显示器上的第一可见帧从显示器向显示器的左侧滑动,以及第一数据帧的邻近数据帧从显示器的右侧滑入视图中。
实施例的方法包括直接响应身体沿x轴的移动而连续更新多个数据帧的沿x轴的位移。
实施例的方法包括检测身体的第二姿态。实施例的方法包括响应于检测到第二姿态而终止推回交互,其中,终止包括将多个数据帧中的数据帧显示为与显示器共面。
实施例的数据空间包括布置在平面内的多个虚拟限位装置(detent)。
实施例的每个虚拟限位装置对应于每个数据帧。
实施例的方法包括形成包括活动区和死区的姿势交互空间,其中,活动区邻近显示器,而死区邻近活动区。
当在活动区中检测到姿势时,响应于姿势而激活本实施例的响应于姿势信号在数据空间中的导航。
实施例的方法包括呈现在显示器上的反馈指示器。
实施例的反馈指示器显示指示身体在活动区和死区之一中的反馈。
实施例的反馈指示器显示指示身体离原点的物理偏移的反馈。
实施例的方法包括将数据集的参数控制轴与物理空间的维对准。
实施例的维为深度维。
实施例的维为水平维。
实施例的维为垂直维。
实施例的维为侧向维。
实施例的导航包括沿维的运动以实现沿参数控制轴的数据空间移动。
实施例的导航包括导航到数据空间的量化参数空间。
实施例的检测包括检测身体的演进的位置。
实施例的检测包括检测身体的演进的取向。
实施例的检测包括检测身体的演进的姿态,其中,姿态是身体的部分相对于身体的至少一个其它部分的几何布置。
实施例的检测包括检测身体的演进的运动。
实施例的检测包括检测以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括将姿势解析成姿势事件的序列。
实施例的方法包括识别姿势。
实施例的姿势的识别包括识别以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括生成姿势事件的序列中的姿势事件的表示。
实施例的方法包括将姿势事件的表示分发到耦合到数据空间的至少一个控制组件。
实施例的方法包括使姿势事件的表示与数据空间的图形描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的图形描述同步。
实施例的方法包括使姿势事件的表示与数据空间的听觉描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的听觉描述同步。
实施例的数据集表示空间信息。
实施例的数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
实施例的数据集表示非空间信息。
实施例的姿势包括线性空间运动。
实施例的导航包括在数据空间中的线性接近。
实施例的方法包括在多个数据帧中呈现数据集,其中,数据帧是数据空间的多个区域的图形描述。实施例的方法包括在显示器上将每个数据帧显示为可见帧。
实施例的数据帧的大小和纵横比与显示器的大小和纵横比相一致。
实施例的数据帧的中心和法向矢量与显示器的中心和法向矢量相一致。
实施例的数据帧的位置和取向与显示器的位置和取向相一致。
实施例的每个数据帧包括表示数据集的元素的图形数据元素。
实施例的图形数据元素为静态元素。
实施例的图形数据元素为动态元素。
实施例的数据帧为二维构造。
实施例的数据帧驻留在具有坐标系的三维图形呈现环境中,其中,该坐标系与描述包括身体的本地环境的坐标系相一致。
实施例的在数据空间中导航包括在多个数据帧中导航。
实施例的方法包括识别姿势,其中,识别包括识别身体的部分的姿态和取向。
实施例的检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
实施例的检测包括动态检测至少一个标签的位置。
实施例的检测包括动态检测和定位身体上的标记。
实施例的转换包括将姿势信息转换成姿势符号。
实施例的姿势符号表示姿势词汇,以及姿势信号包括姿势词汇的通信。
实施例的姿势词汇以文本形式表示身体的即时姿态状态。
实施例的姿势词汇以文本形式表示身体的取向。
实施例的姿势词汇以文本形式表示身体的取向的组合。
实施例的姿势词汇包括表示身体的状态的字符串。
检测包括检测身体的推测(extrapolated)位置何时与虚拟空间相交,其中,虚拟空间包括在显示器上描绘的空间。
实施例的方法包括当推测的位置与虚拟空间中的虚拟对象相交时控制虚拟对象。
实施例的控制包括响应虚拟空间中的推测的位置控制虚拟空间中的虚拟对象的位置。
实施例的方法包括对检测和控制的定标(scaling)进行控制以产生虚拟空间与物理空间之间的一致性,其中,虚拟空间包括显示器上描绘的空间,其中,物理空间包括身体所存在于的空间。
实施例的方法包括利用成像系统对身体进行成像。
实施例的成像包括生成身体的波前编码图像。
实施例的姿势数据包括身体的在成像系统的景深之内的焦点分辨的数据。
实施例的方法包括通过对成像系统采集的图像进行编码来生成中间图像。
实施例的中间图像变得模糊。
实施例的中间图像对以下方面中的至少之一的改变不敏感:身体,以及成像系统中包括散焦像差的多个光学检测器。
实施例的姿势数据包括身体的在景深之内的焦点分辨的范围数据。
实施例的身体的在景深之内的焦点分辨的范围数据是从成像系统的输出导出的。
实施例的姿势数据包括身体的在景深之内的焦点分辨的位置数据。
实施例的身体的在景深之内的焦点分辨的位置数据是从成像系统的输出导出的。
实施例的成像系统包括多个检测器。
实施例的至少两个检测器是包括波前编码光学元件的波前编码摄像机。
实施例的至少两个光学检测器是包括增加成像的焦点深度的相位掩模的波前编码摄像机。
实施例的方法包括生成不随身体和成像系统之间的距离而变化的调制传递函数和点扩散函数。
实施例的方法包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
本文中描述的实施例包括一种系统,该系统包括:检测器,用于接收表示身体做出的姿势的姿势数据;以及耦合到检测器的处理器,处理器自动从姿势数据中检测姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,处理器仅使用姿势数据来识别姿势,处理器将姿势转换成姿势信号,处理器响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间,处理器在多个共面数据帧中呈现数据集以及在显示器上将每个数据帧显示为可见帧,其中,多个共面数据帧是数据空间的多个区域的图形描绘。
本文中描述的实施例包括一种用于在数据空间中导航的方法,该方法包括:从经由检测器接收到的姿势数据中检测身体的姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,检测包括仅使用姿势数据来识别姿势;将姿势转换成姿势信号;响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间;以及在多个共面数据帧中呈现数据集以及在显示器上将每个数据帧显示为可见帧,其中,多个共面数据帧是数据空间的多个区域的图形描绘;其中,多个数据帧包括布置在数据空间的多个平面内的离散数据帧的堆栈,其中,每个数据帧位于多个平面的分立平面内。
实施例的方法包括检测身体的第一姿态。实施例的方法包括响应于检测到第一姿态而激活推回交互。
实施例的方法包括记录进入第一姿态的第一位置,其中,第一位置是三维空间的手位置。实施例的方法包括将第一位置设置为原点,其中,将随后的检测到的身体位置报告为与原点的相对偏移。
实施例的检测包括检测身体的向上移动,其中,向上移动是沿y轴从显示器向外的移动,其中,该y轴被定义为与显示器的观看表面垂直的轴。
响应身体的向上移动,实施例的导航包括沿y轴从当前数据帧位移多个数据帧,其中,堆栈的离散数据帧向上平移,其中,当前数据帧是当前呈现在显示器上的离散数据帧。
实施例的每个离散数据帧的外表响应于位移而改变,其中,堆栈中位于当前数据帧之上的离散数据帧呈现相对高的透明度和模糊度,其中,当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,堆栈中位于当前数据帧之下的离散数据帧呈现相对更低的透明度和模糊度以及开始变得可见。
实施例的方法包括在姿势期间的身体位移的物理距离与堆栈的相继离散数据帧之间的逻辑距离之间的映射,其中,映射控制多个数据帧沿y轴的位移和每个离散数据帧的外表。
实施例的检测包括检测身体的向下移动,其中,向下移动是沿y轴朝向显示器的移动。
响应身体的向下移动,实施例的导航包括沿y轴从当前数据帧位移多个数据帧,其中,堆栈的离散数据帧向下平移。
实施例的每个离散数据帧的外表响应于位移而改变,其中,堆栈中位于当前数据帧之下的离散数据帧呈现相对高的透明度和模糊度,其中,当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,堆栈中位于当前数据帧之上的离散数据帧呈现相对更低的透明度和模糊度以及变得可见。
实施例的方法包括在姿势期间的身体位移的物理距离与堆栈的相继离散数据帧之间的逻辑距离之间的映射,其中,映射控制多个数据帧沿y轴的位移和每个离散数据帧的外表。
实施例的方法包括直接响应身体沿y轴的移动而连续更新多个数据帧的沿y轴的位移。
实施例的方法包括检测身体的第二姿态。实施例的方法包括响应于检测到第二姿态而终止推回交互,其中,终止包括将多个数据帧中的数据帧显示为与显示器共面。
实施例的数据空间包括多个虚拟限位装置。
实施例的每个虚拟限位装置对应于多个平面中的每个平面。
实施例的方法包括形成包括第一活动区、第二活动区和死区的姿势交互空间,其中,第一活动区邻近显示器,死区邻近第一活动区,以及第二活动区邻近死区。
当在第一活动区和第二活动区之一中检测到姿势时,响应于姿势而激活本实施例的响应于姿势信号在数据空间中的导航。
实施例的方法包括呈现在显示器上的反馈指示器。
实施例的反馈指示器显示指示身体在第一活动区、第二活动区和死区之一中的反馈。
实施例的反馈指示器显示指示身体离原点的物理偏移的反馈。
实施例的方法包括将数据集的参数控制轴与物理空间的维对准。
实施例的维为深度维。
实施例的维为水平维。
实施例的维为垂直维。
实施例的维为侧向维。
实施例的导航包括沿维的运动以实现沿参数控制轴的数据空间移动。
实施例的导航包括导航到数据空间的量化参数空间。
实施例的检测包括检测身体的演进的位置。
实施例的检测包括检测身体的演进的取向。
实施例的检测包括检测身体的演进的姿态,其中,姿态是身体的部分相对于身体的至少一个其它部分的几何布置。
实施例的检测包括检测身体的演进的运动。
实施例的检测包括检测以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括将姿势解析成姿势事件的序列。
实施例的方法包括识别姿势。
实施例的姿势的识别包括识别以下至少之一:身体的演进的位置、身体的取向、身体的姿态、和身体的运动。
实施例的方法包括生成姿势事件的序列中的姿势事件的表示。
实施例的方法包括将姿势事件的表示分发到耦合到数据空间的至少一个控制组件。
实施例的方法包括使姿势事件的表示与数据空间的图形描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的图形描述同步。
实施例的方法包括使姿势事件的表示与数据空间的听觉描述同步。
实施例的方法包括使姿势事件的表示与在数据空间中的导航的听觉描述同步。
实施例的数据集表示空间信息。
实施例的数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
实施例的数据集表示非空间信息。
实施例的姿势包括线性空间运动。
实施例的导航包括在数据空间中的线性接近。
实施例的方法包括在多个数据帧中呈现数据集,其中,数据帧是数据空间的多个区域的图形描述。实施例的方法包括在显示器上将每个数据帧显示为可见帧。
实施例的数据帧的大小和纵横比与显示器的大小和纵横比相一致。
实施例的数据帧的中心和法向矢量与显示器的中心和法向矢量相一致。
实施例的数据帧的位置和取向与显示器的位置和取向相一致。
实施例的每个数据帧包括表示数据集的元素的图形数据元素。
实施例的图形数据元素为静态元素。
实施例的图形数据元素为动态元素。
实施例的数据帧为二维构造。
实施例的数据帧驻留在具有坐标系的三维图形呈现环境中,其中,该坐标系与描述包括身体的本地环境的坐标系相一致。
实施例的在数据空间中导航包括在多个数据帧中导航。
实施例的方法包括识别姿势,其中,识别包括识别身体的部分的姿态和取向。
实施例的检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
实施例的检测包括动态检测至少一个标签的位置。
实施例的检测包括动态检测和定位身体上的标记。
实施例的转换包括将姿势信息转换成姿势符号。
实施例的姿势符号表示姿势词汇,以及姿势信号包括姿势词汇的通信。
实施例的姿势词汇以文本形式表示身体的即时姿态状态。
实施例的姿势词汇以文本形式表示身体的取向。
实施例的姿势词汇以文本形式表示身体的取向的组合。
实施例的姿势词汇包括表示身体的状态的字符串。
检测包括检测身体的推测(extrapolated)位置何时与虚拟空间相交,其中,虚拟空间包括在显示器上描绘的空间。
实施例的方法包括当推测的位置与虚拟空间中的虚拟对象相交时控制虚拟对象。
实施例的控制包括响应虚拟空间中的推测的位置控制虚拟空间中的虚拟对象的位置。
实施例的方法包括对检测和导航的定标(scaling)进行控制以产生虚拟空间与物理空间之间的一致性,其中,虚拟空间包括显示器上描绘的空间,其中,物理空间包括身体所存在于的空间。
实施例的方法包括利用成像系统对身体进行成像。
实施例的成像包括生成身体的波前编码图像。
实施例的姿势数据包括身体的在成像系统的景深之内的焦点分辨的数据。
实施例的方法包括通过对成像系统采集的图像进行编码来生成中间图像。
实施例的中间图像变得模糊。
实施例的中间图像对以下方面中的至少之一的改变不敏感:身体,以及成像系统中包括散焦像差的多个光学检测器。
实施例的姿势数据包括身体的在景深之内的焦点分辨的范围数据。
实施例的身体的在景深之内的焦点分辨的范围数据是从成像系统的输出导出的。
实施例的姿势数据包括身体的在景深之内的焦点分辨的位置数据。
实施例的身体的在景深之内的焦点分辨的位置数据是从成像系统的输出导出的。
实施例的成像系统包括多个检测器。
实施例的至少两个检测器是包括波前编码光学元件的波前编码摄像机。
实施例的至少两个光学检测器是包括增加成像的焦点深度的相位掩模的波前编码摄像机。
实施例的方法包括生成不随身体和成像系统之间的距离而变化的调制传递函数和点扩散函数。
实施例的方法包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
本文中描述的实施例包括一种系统,该系统包括:检测器,用于接收表示身体做出的姿势的姿势数据;以及耦合到检测器的处理器,处理器自动从姿势数据中检测姿势,其中,姿势数据是身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,处理器仅使用姿势数据来识别姿势,处理器将姿势转换成姿势信号,处理器响应于姿势信号在数据空间中导航,其中,数据空间是包括表示在物理空间中的数据集的数据表示空间,处理器在多个共面数据帧中呈现数据集以及在显示器上将每个数据帧显示为可见帧,其中,多个共面数据帧是数据空间的多个区域的图形描绘;其中,多个数据帧包括布置在数据空间的多个平面内的离散数据帧的堆栈,其中,每个数据帧位于多个平面的分立平面内。
本文中描述的SOE包括处理系统和/或在处理系统下运行和/或与处理系统相关联。如本领已知的,处理系统包括基于处理器的设备或一起运行的计算设备的任意集合、或者处理系统或设备的组件。例如,处理系统能够包括一个或更多个便携计算机、在通信网络中运行的便携通信设备和/或网络服务器。便携计算机可以是从个人计算机、移动电话、个人数字助理、便携计算设备和便携通信设备当中选择的任意数量的设备和/或组合,但是不限于如此。处理系统能够包括在更大的计算机系统中的组件。
实施例的处理系统包括至少一个处理器和至少一个存储装置或子系统。处理系统还可以包括或耦合到至少一个数据库。通常在此使用的术语“处理器”指的是任何逻辑处理单元,例如一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)等等。处理器和存储器可以整体集成到单个芯片上,分布在主机系统的若干芯片或组成部分当中,和/或由算法的某种组合来提供。在此描述的方法可以在(一个或多个)软件算法、程序、固件、硬件、部件、电路中的一个或多个中以任何组合实现。
实施在此描述的系统和方法的系统部件可以位于一起或者位于分开的位置中。因此,实施在此描述的系统和方法的系统部件可以是单个系统、多个系统和/或地理上分开的系统的部件。这些部件也可以是单个系统、多个系统和/或地理上分开的系统的子部件或子系统。这些部件可以耦合到主机系统的或与该主机系统相耦合的系统的一个或多个其它部件。
通信路径耦合系统部件并包括用于在部件当中传达或传送文件的任何介质。通信路径包括无线连接、有线连接和混合无线/有线连接。通信路径还包括至网络的耦合或连接,网络包括局域网(LAN)、城域网(MAN)、广域网(WAN)、专有网络、局间或尾端网络以及因特网。进而,通信路径包括可移动固定介质像软盘、硬盘驱动器、CD-ROM盘以及快闪RAM、通用串行总线(USB)连接、RS-232连接、电话线、总线以及电子邮件消息。
除非上下文明确要求,否则贯穿说明书,单词“包括”等在与排除或穷举的意义相反的包括的意义上阐释;换言之,在“包括但不限于”的意义上阐释。使用单数或复数的单词也分别包括复数或单数。另外,单词“在此”、“在下面”、“在上面”、“以下”以及类似含义的单词指的是作为整体的本申请而不是本申请的任何特殊部分。当在引用两个或更多条目的列表中使用单词“或者”时,该单词覆盖了所有的以下单词解释:列表中的任何条目、列表中的所有条目以及列表中条目的任何组合。
SOE的实施例的上述描述并不旨在穷举或将描述的系统和方法限制到公开的精确形式。如本领域技术人员将会认识到的那样,虽然为了示意的目的在此描述了SOE的特定实施例和例子,各种等效修改在其它系统和方法的范围之内都是可能的。在此提供的SOE的教导可以适用于其它处理系统和方法,而不仅仅是用于上面描述的系统和方法。
上述各种实施例的要素和行为可以进行组合以提供进一步的实施例。考虑到上述详细描述,可以对SOE进行这些以及其它改变。
一般,在下面的权利要求中,使用的术语不应该被解释成限制本说明书和权利要求中公开的特定实施例的实例化,而是应该被解释成包括根据权利要求运行的所有系统。因此,实施例不被本文的公开限制,而是实际上实施例的范围完全由权利要求来确定。
尽管以下以某些权利要求的形式呈现了实施例的某些方面,发明人预期到以任意数量的权利要求形式的实施例的各个方面。因此,发明人保留在提交申请以后增加附加权利要求的权利,以追求针对实施例的其它方面的这样的附加权利要求形式。

Claims (277)

1.一种用于在数据空间中导航的方法,所述方法包括:
从经由检测器接收到的姿势数据中检测身体的姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述检测包括仅使用所述姿势数据来识别所述姿势;
将所述姿势转换成姿势信号;以及
响应所述姿势信号在所述数据空间中导航,其中,所述数据空间是包括表示在物理空间中的数据集的数据表示空间。
2.根据权利要求1所述的方法,包括将所述数据集的参数控制轴与所述物理空间的维对准。
3.根据权利要求2所述的方法,其中,所述维为深度维。
4.根据权利要求2所述的方法,其中,所述维为水平维。
5.根据权利要求2所述的方法,其中,所述维为垂直维。
6.根据权利要求2所述的方法,其中,所述维为侧向维。
7.根据权利要求2所述的方法,其中,所述导航包括沿所述维的运动以实现沿所述参数控制轴的数据空间平移。
8.根据权利要求2所述的方法,其中,所述导航包括导航到所述数据空间的量化参数空间。
9.根据权利要求1所述的方法,其中,所述检测包括检测所述身体的演进的位置。
10.根据权利要求1所述的方法,其中,所述检测包括检测所述身体的演进的取向。
11.根据权利要求1所述的方法,其中,所述检测包括检测所述身体的演进的姿态,其中,所述姿态是所述身体的部分相对于所述身体的至少一个其它部分的几何布置。
12.根据权利要求1所述的方法,其中,所述检测包括检测所述身体的演进的运动。
13.根据权利要求1所述的方法,其中,所述检测包括检测以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
14.根据权利要求1所述的方法,包括将所述姿势解析成姿势事件的序列。
15.根据权利要求14所述的方法,包括识别所述姿势。
16.根据权利要求15所述的方法,其中,所述姿势的识别包括识别以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
17.根据权利要求15所述的方法,包括生成所述姿势事件的序列中的姿势事件的表示。
18.根据权利要求17所述的方法,包括将所述姿势事件的表示分发到耦合到所述数据空间的至少一个控制组件。
19.根据权利要求18所述的方法,包括使所述姿势事件的表示与所述数据空间的图形描述同步。
20.根据权利要求19所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的图形描述同步。
21.根据权利要求18所述的方法,包括使所述姿势事件的表示与所述数据空间的听觉描述同步。
22.根据权利要求21所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的听觉描述同步。
23.根据权利要求1所述的方法,其中,所述数据集表示空间信息。
24.根据权利要求23所述的方法,其中,所述数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
25.根据权利要求1所述的方法,其中,所述数据集表示非空间信息。
26.根据权利要求1所述的方法,其中,所述姿势包括线性空间运动。
27.根据权利要求1所述的方法,其中,所述导航包括在所述数据空间中的线性接近。
28.根据权利要求1所述的方法,包括:
在多个数据帧中呈现所述数据集,其中,所述数据帧是所述数据空间的多个区域的图形描述;
在显示器上将每个数据帧显示为可见帧。
29.根据权利要求28所述的方法,其中,所述数据帧的大小和纵横比与所述显示器的大小和纵横比相一致。
30.根据权利要求28所述的方法,其中,所述数据帧的中心和法向矢量与所述显示器的中心和法向矢量相一致
31.根据权利要求28所述的方法,其中,所述数据帧的位置和取向与所述显示器的位置和取向相一致。
32.根据权利要求28所述的方法,其中,每个数据帧包括表示所述数据集的元素的图形数据元素。
33.根据权利要求32所述的方法,其中,所述图形数据元素为静态元素。
34.根据权利要求32所述的方法,其中,所述图形数据元素为动态元素。
35.根据权利要求28所述的方法,其中,所述数据帧为二维构造。
36.根据权利要求35所述的方法,其中,所述数据帧驻留在具有坐标系的三维图形呈现环境中,其中,所述坐标系与描述包括所述身体的本地环境的坐标系相一致。
37.根据权利要求28所述的方法,其中,所述在数据空间中导航包括在所述多个数据帧中导航。
38.根据权利要求28所述的方法,包括:
检测所述身体的第一姿态;
响应于检测到第一姿态而激活推回交互。
39.根据权利要求38所述的方法,包括:
记录进入所述第一姿态的第一位置,其中,所述第一位置是三维空间的手位置;
将所述第一位置设置为原点,其中,将随后的检测到的身体位置报告为与所述原点的相对偏移。
40.根据权利要求39所述的方法,包括通过检测所述身体的移动来检测姿势。
41.根据权利要求40所述的方法,其中,所述检测包括检测所述身体的第一移动,其中,所述第一移动是沿轴朝向所述显示器的移动,其中,所述轴被定义为与所述显示器的观看表面垂直的轴。
42.根据权利要求41所述的方法,其中,响应所述身体的第一移动,所述导航包括沿轴位移多个数据帧,其中,所述数据帧所位于的平面中有较多平面变得可见,其中,看见所述显示器上呈现的第一可见帧从所述显示器后退,以及所述第一数据帧的邻近数据帧变得可见。
43.根据权利要求41所述的方法,其中,响应所述身体的第一移动,所述导航包括沿所述轴从当前数据帧位移所述多个数据帧,其中,数据帧向下平移,其中,所述当前数据帧是当前呈现在所述显示器上的数据帧。
44.根据权利要求43所述的方法,其中,每个数据帧的外表响应于所述位移而改变,其中,位于所述当前数据帧之下的数据帧呈现相对高的透明度和模糊度,其中,所述当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,位于所述当前数据帧之上的数据帧呈现相对更低的透明度和模糊度以及变得可见。
45.根据权利要求41所述的方法,其中,所述检测包括检测所述身体的第二移动,其中,所述第二移动是沿所述轴远离所述显示器的移动。
46.根据权利要求45所述的方法,其中,响应所述身体的第二移动,所述导航包括沿所述轴位移所述多个数据帧,其中,所述数据帧所位于的平面中有较少平面变得可见,其中,看见所述显示器上呈现的所述第一可见帧从显示器接近,以及所述第一数据帧的邻近数据帧变得更少地可见。
47.根据权利要求45所述的方法,其中,响应所述身体的第二移动,所述导航包括沿所述轴从当前数据帧位移所述多个数据帧,其中,所述数据帧向上平移,其中,所述当前数据帧是当前呈现在所述显示器上的数据帧。
48.根据权利要求47所述的方法,其中,每个数据帧的外表响应于所述位移而改变,其中,位于所述当前数据帧之上的数据帧呈现相对高的透明度和模糊度,其中,所述当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,位于所述当前数据帧之下的数据帧呈现相对更低的透明度和模糊度以及开始变得可见。
49.根据权利要求40所述的方法,其中,所述检测包括检测所述身体的第三移动,其中,所述第三移动是在与所述显示器的观看表面平行的平面内的移动。
50.根据权利要求49所述的方法,其中,响应所述身体的第三移动,所述导航包括在对应于所述第三移动的方向上位移所述多个数据帧。
51.根据权利要求50所述的方法,其中,看见呈现在所述显示器上的当前数据帧在所述方向上滑动,以及所述当前数据帧的邻近数据帧从所述显示器的与所述方向相反的一侧滑入视图中,其中,所述当前数据帧是当前呈现在所述显示器上的数据帧。
52.根据权利要求40所述的方法,其中,所述导航包括直接响应所述身体的移动而连续更新所述多个数据帧的位移。
53.根据权利要求52所述的方法,包括:
检测所述身体的第二姿态;
响应于检测到所述第二姿态而终止推回交互,其中,所述终止包括将所述多个数据帧中的数据帧显示为与所述显示器共面。
54.根据权利要求40所述的方法,包括:在姿势期间的身体位移的物理距离与在所述导航期间在所述数据空间中的相继点间的逻辑距离之间的映射,其中,所述映射控制以下至少之一:所述多个数据帧在所述数据空间中的相对位移、和每个离散数据帧的外表。
55.根据权利要求40所述的方法,包括形成包括活动区和死区的姿势交互空间,其中,所述活动区邻近所述显示器,而所述死区邻近所述活动区。
56.根据权利要求55所述的方法,其中,当在所述活动区中检测到所述姿势时,响应所述姿势而激活响应于所述姿势信号在数据空间中的导航。
57.根据权利要求55所述的方法,包括呈现在所述显示器上的反馈指示器。
58.根据权利要求57所述的方法,其中,所述反馈指示器显示指示所述身体在所述活动区和所述死区之一中的反馈。
59.根据权利要求57所述的方法,其中,所述反馈指示器显示指示所述身体离所述原点的物理偏移的反馈。
60.根据权利要求1所述的方法,其中,所述检测包括以下至少之一:检测所述身体的位置、检测所述身体的取向、和检测所述身体的运动。
61.根据权利要求1所述的方法,包括识别所述姿势,其中,所述识别包括识别所述身体的部分的姿态和取向。
62.根据权利要求1所述的方法,其中,所述检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
63.根据权利要求1所述的方法,其中,所述检测包括动态检测耦合到所述身体的至少一个标签的位置。
64.根据权利要求63所述的方法,其中,所述检测包括动态检测耦合到所述身体的标签集的位置。
65.根据权利要求64所述的方法,其中,所述标签集中的每个标签包括图案,其中,所述标签集中的每个标签的每个图案不同于所述多个标签中的任意剩余标签的任意图案。
66.根据权利要求1所述的方法,其中,所述检测包括动态检测和定位所述身体上的标记。
67.根据权利要求66所述的方法,其中,所述检测包括检测耦合到所述身体的标记集的位置。
68.根据权利要求66所述的方法,其中,所述标记集形成所述身体上的多个图案。
69.根据权利要求66所述的方法,其中,所述检测包括使用耦合到所述附属物中的每个的标记集来检测所述身体的多个附属物的位置。
70.根据权利要求1所述的方法,其中,所述转换包括将所述姿势的信息转换成姿势符号。
71.根据权利要求70所述的方法,其中,所述姿势符号表示姿势词汇,以及所述姿势信号包括所述姿势词汇的通信。
72.根据权利要求71所述的方法,其中,所述姿势词汇以文本形式表示所述身体的运动关联的即时姿态状态。
73.根据权利要求71所述的方法,其中,所述姿势词汇以文本形式表示所述身体的运动关联的取向。
74.根据权利要求71所述的方法,其中,所述姿势词汇以文本形式表示所述身体的运动关联的取向的组合。
75.根据权利要求71所述的方法,其中,所述姿势词汇包括表示所述身体的运动关联的状态的字符串。
76.根据权利要求75所述的方法,其中,所述运动关联是所述身体的至少一个第一附属物。
77.根据权利要求76所述的方法,包括将所述字符串中的每个位置指定给第二附属物,所述第二附属物连接到第一附属物。
78.根据权利要求1所述的方法,包括将多个字符中的字符指定给第二附属物的多个位置中的每个。
79.根据权利要求78所述的方法,其中,所述多个位置相对于坐标系原点而建立。
80.根据权利要求79所述的方法,包括:使用从由以下组成的组中选择的位置以及交互地响应所述身体的动作来建立所述坐标系原点:空间中的绝对位置和取向、不管所述身体的整体位置和朝向而相对于所述身体的固定位置和取向。
81.根据权利要求78所述的方法,包括将多个字符中的字符指定给第一附属物的多个取向中的每个。
82.根据权利要求76所述的方法,其中,所述检测包括检测所述身体的推测位置何时与虚拟空间相交,其中,所述虚拟空间包括在耦合到所述计算机的显示装置上描绘的空间。
83.根据权利要求82所述的方法,包括当所述推测的位置与所述虚拟空间中的虚拟对象相交时控制所述虚拟对象。
84.根据权利要求83所述的方法,其中,所述控制包括响应所述虚拟空间中的所推测的位置控制所述虚拟空间中的所述虚拟对象的位置。
85.根据权利要求83所述的方法,其中,所述控制包括响应于所述姿势来控制所述虚拟空间中的所述虚拟对象的姿势。
86.根据权利要求1所述的方法,包括:对所述检测和所述控制的定标进行控制以产生虚拟空间与所述物理空间之间的一致性,其中,所述虚拟空间包括显示器上描绘的空间,其中,所述物理空间包括所述身体所存在于的空间。
87.根据权利要求86所述的方法,包括响应于所述物理空间中的至少一个物理对象的移动来控制所述虚拟空间中的至少一个虚拟对象。
88.根据权利要求1所述的方法,包括利用成像系统对所述身体进行成像。
89.根据权利要求88所述的方法,其中,所述成像包括生成所述身体的波前编码图像。
90.根据权利要求89所述的方法,其中,所述姿势数据包括所述身体的在所述成像系统的景深之内的焦点分辨的数据。
91.根据权利要求90所述的方法,包括通过对所述成像系统采集的图像进行编码来生成中间图像。
92.根据权利要求91所述的方法,其中,所述中间图像变得模糊。
93.根据权利要求91所述的方法,其中,所述中间图像对以下方面的至少之一的改变不敏感:所述身体,以及所述成像系统中包括散焦像差的多个光学检测器。
94.根据权利要求90所述的方法,其中,所述姿势数据包括所述身体的在所述景深之内的焦点分辨的范围数据。
95.根据权利要求94所述的方法,其中,所述身体的在所述景深之内的焦点分辨的范围数据是从所述成像系统的输出导出的。
96.根据权利要求90所述的方法,其中,所述姿势数据包括所述身体的在所述景深之内的焦点分辨的位置数据。
97.根据权利要求96所述的方法,其中,所述身体的在所述景深之内的焦点分辨的位置数据是从所述成像系统的输出导出的。
98.根据权利要求88所述的方法,其中,所述成像系统包括多个检测器。
99.根据权利要求98所述的方法,其中,所述检测器中的至少两个是包括波前编码光学元件的波前编码摄像机。
100.根据权利要求98所述的方法,其中,所述光学检测器中的至少两个是包括增加所述成像的焦点深度的相位掩模的波前编码摄像机。
101.根据权利要求88所述的方法,包括生成不随所述身体和所述成像系统之间的距离而变化的调制传递函数和点扩散函数。
102.根据权利要求88所述的方法,包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
103.一种系统,所述系统包括:
检测器,用于接收表示身体做出的姿势的姿势数据;以及
耦合到所述检测器的处理器,所述处理器自动从所述姿势数据中检测所述姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述处理器仅使用所述姿势数据来识别所述姿势,所述处理器将所述姿势转换成姿势信号,所述处理器响应所述姿势信号在数据空间中导航,其中,所述数据空间是包括表示在所述物理空间中的数据集的数据表示空间。
104.一种用于在数据空间中导航的方法,该方法包括:
从经由检测器接收到的姿势数据中检测身体的姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述检测包括仅使用所述姿势数据来识别所述姿势;
将所述姿势转换成姿势信号;
响应所述姿势信号在所述数据空间中导航,其中,所述数据空间是包括表示在所述物理空间中的数据集的数据表示空间;以及
在多个共面数据帧中呈现所述数据集以及在显示器上将每个数据帧显示为可见帧,其中,所述多个共面数据帧是所述数据空间的多个区域的图形描绘。
105.根据权利要求104所述的方法,包括:
检测所述身体的第一姿态;
响应于检测到所述第一姿态而激活推回交互。
106.根据权利要求105所述的方法,包括:
记录进入所述第一姿态的第一位置,其中,所述第一位置是三维空间的手位置;
将所述第一位置设置为原点,其中,将随后的检测到的身体位置报告为与所述原点的相对偏移。
107.根据权利要求106所述的方法,其中,所述检测包括检测身体的向前移动,其中,所述向前移动是沿z轴朝向所述显示器的移动,其中,所述z轴被定义为与所述显示器的观看表面垂直的轴。
108.根据权利要求107所述的方法,其中,响应所述身体的向前移动,所述导航包括沿所述z轴位移所述多个数据帧,其中,所述数据帧所位于的平面中有较多平面变得可见,其中,看见所述显示器上呈现的第一可见帧从所述显示器后退,以及所述第一数据帧的邻近数据帧变得可见。
109.根据权利要求108所述的方法,其中,所述检测包括检测所述身体的向后移动,其中,所述向后移动是沿所述z轴远离所述显示器的移动。
110.根据权利要求109所述的方法,其中,响应所述身体的向后移动,所述导航包括沿所述z轴位移所述多个数据帧,其中,所述数据帧所位于的平面中有较少平面变得可见,其中,看见所述显示器上呈现的所述第一可见帧从显示器接近,以及所述第一数据帧的邻近数据帧变得更少地可见。
111.根据权利要求110所述的方法,包括直接响应所述身体沿所述z轴的移动而连续更新所述多个数据帧的沿所述z轴的位移。
112.根据权利要求111所述的方法,包括:
检测所述身体的第二姿态;
响应于检测到所述第二姿态而终止推回交互,其中,所述终止包括将所述多个数据帧中的数据帧显示为与所述显示器共面。
113.根据权利要求106所述的方法,其中,所述检测包括检测所述身体的右侧向移动,其中,所述右侧向移动是沿x轴的移动,其中,所述x轴存在于与所述显示器的观看表面平行的平面内。
114.根据权利要求113所述的方法,其中,响应所述身体的右侧向移动,所述导航包括沿所述x轴向右位移所述多个数据帧,其中,看见呈现在所述显示器上的第一可见帧从所述显示器向所述显示器的右侧滑动,以及所述第一数据帧的邻近数据帧从所述显示器的左侧滑入视图中。
115.根据权利要求114所述的方法,其中,所述检测包括检测所述身体的左侧向移动,其中,所述左侧向移动是沿所述x轴的移动。
116.根据权利要求115所述的方法,其中,响应所述身体的左侧向移动,所述导航包括沿所述x轴向左位移所述多个数据帧,其中,看见呈现在所述显示器上的第一可见帧从所述显示器向所述显示器的左侧滑动,以及所述第一数据帧的邻近数据帧从所述显示器的右侧滑入视图中。
117.根据权利要求116所述的方法,包括直接响应所述身体沿所述x轴的移动而连续更新所述多个数据帧的沿所述x轴的位移。
118.根据权利要求17所述的方法,包括:
检测所述身体的第二姿态;
响应于检测到所述第二姿态而终止推回交互,其中,所述终止包括将所述多个数据帧中的数据帧显示为与所述显示器共面。
119.根据权利要求106所述的方法,其中,所述数据空间包括布置在所述平面内的多个虚拟限位装置。
120.根据权利要求119所述的方法,其中,每个虚拟限位装置对应于每个数据帧。
121.根据权利要求106所述的方法,包括形成包括活动区和死区的姿势交互空间,其中,所述活动区邻近所述显示器,而所述死区邻近所述活动区。
122.根据权利要求121所述的方法,其中,当在所述活动区中检测到所述姿势时,响应所述姿势而激活响应于所述姿势信号在数据空间中的所述导航。
123.根据权利要求121所述的方法,包括呈现在所述显示器上的反馈指示器。
124.根据权利要求123所述的方法,其中,所述反馈指示器显示指示所述身体在所述活动区和所述死区之一中的反馈。
125.根据权利要求123所述的方法,其中,所述反馈指示器显示指示所述身体离所述原点的物理偏移的反馈。
126.根据权利要求104所述的方法,包括将所述数据集的参数控制轴与所述物理空间的维对准。
127.根据权利要求126所述的方法,其中,所述维为深度维。
128.根据权利要求126所述的方法,其中,所述维为水平维。
129.根据权利要求126所述的方法,其中,所述维为垂直维。
130.根据权利要求126所述的方法,其中,所述维为侧向维。
131.根据权利要求126所述的方法,其中,所述导航包括沿所述维的运动以实现沿所述参数控制轴的数据空间平移。
132.根据权利要求126所述的方法,其中,所述导航包括导航到所述数据空间的量化参散空间。
133.根据权利要求104所述的方法,其中,所述检测包括检测所述身体的演进的位置。
134.根据权利要求104所述的方法,其中,所述检测包括检测所述身体的演进的取向。
135.根据权利要求104所述的方法,其中,所述检测包括检测所述身体的演进的姿态,其中,所述姿态是所述身体的部分相对于所述身体的至少一个其它部分的几何布置。
136.根据权利要求104所述的方法,其中,所述检测包括检测所述身体的演进的运动。
137.根据权利要求104所述的方法,其中,所述检测包括检测以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
138.根据权利要求104所述的方法,包括将所述姿势解析成姿势事件的序列。
139.根据权利要求138所述的方法,包括识别所述姿势。
140.根据权利要求139所述的方法,其中,所述姿势的识别包括识别以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
141.根据权利要求139所述的方法,包括生成所述姿势事件的序列中的姿势事件的表示。
142.根据权利要求141所述的方法,包括将所述姿势事件的表示分发到耦合到所述数据空间的至少一个控制组件。
143.根据权利要求142所述的方法,包括使所述姿势事件的表示与所述数据空间的图形描述同步。
144.根据权利要求143所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的图形描述同步。
145.根据权利要求142所述的方法,包括使所述姿势事件的表示与所述数据空间的听觉描述同步。
146.根据权利要求145所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的听觉描述同步。
147.根据权利要求104所述的方法,其中,所述数据集表示空间信息。
148.根据权利要求147所述的方法,其中,所述数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
149.根据权利要求104所述的方法,其中,所述数据集表示非空间信息。
150.根据权利要求104所述的方法,其中,所述姿势包括线性空间运动。
151.根据权利要求104所述的方法,其中,所述导航包括在所述数据空间中的线性接近。
152.根据权利要求104所述的方法,包括:
在多个数据帧中呈现数据集,其中,所述数据帧是所述数据空间的多个区域的图形描述;
在显示器上将每个数据帧显示为可见帧。
153.根据权利要求152所述的方法,其中,所述数据帧的大小和纵横比与所述显示器的大小和纵横比相一致。
154.根据权利要求152所述的方法,其中,所述数据帧的中心和法向矢量与所述显示器的中心和法向矢量相一致。
155.根据权利要求152所述的方法,其中,所述数据帧的位置和取向与所述显示器的位置和取向相一致。
156.根据权利要求152所述的方法,其中,每个数据帧包括表示所述数据集的元素的图形数据元素。
157.根据权利要求156所述的方法,其中,所述图形数据元素为静态元素。
158.根据权利要求156所述的方法,其中,所述图形数据元素为动态元素。
159.根据权利要求152所述的方法,其中,所述数据帧为二维构造。
160.根据权利要求159所述的方法,其中,所述数据帧驻留在具有坐标系的三维图形呈现环境中,其中,所述坐标系与描述包括所述身体的本地环境的坐标系相一致。
161.根据权利要求152所述的方法,其中,在所述数据空间中导航包括在所述多个数据帧中导航。
162.根据权利要求104所述的方法,包括识别所述姿势,其中,所述识别包括识别所述身体的部分的姿态和取向。
163.根据权利要求104所述的方法,其中,所述检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
164.根据权利要求104所述的方法,其中,所述检测包括动态检测至少一个标签的位置。
165.根据权利要求104所述的方法,其中,所述检测包括动态检测和定位所述身体上的标记。
166.根据权利要求104所述的方法,其中,所述转换包括将所述姿势的信息转换成姿势符号。
167.根据权利要求166所述的方法,其中,所述姿势符号表示姿势词汇,以及所述姿势信号包括所述姿势词汇的通信。
168.根据权利要求167所述的方法,其中,所述姿势词汇以文本形式表示所述身体的即时姿态状态。
169.根据权利要求167所述的方法,其中,所述姿势词汇以文本形式表示所述身体的取向。
170.根据权利要求167所述的方法,其中,所述姿势词汇以文本形式表示所述身体的取向的组合。
171.根据权利要求167所述的方法,其中,所述姿势词汇包括表示所述身体的状态的字符串。
172.根据权利要求104所述的方法,其中,所述检测包括检测所述身体的推测位置何时与虚拟空间相交,其中,所述虚拟空间包括在所述显示器上描绘的空间。
173.根据权利要求172所述的方法,包括当所述推测的位置与所述虚拟空间中的虚拟对象相交时控制所述虚拟对象。
174.根据权利要求173所述的方法,包括响应所述虚拟空间中的所推测的位置控制所述虚拟空间中的所述虚拟对象的位置。
175.根据权利要求104所述的方法,包括:对所述检测和所述导航的定标进行控制以产生虚拟空间与物理空间之间的一致性,其中,所述虚拟空间包括所述显示器上描绘的空间,其中,所述物理空间包括所述身体所存在于的空间。
176.根据权利要求104所述的方法,包括利用成像系统对所述身体进行成像。
177.根据权利要求176所述的方法,其中,所述成像包括生成所述身体的波前编码图像。
178.根据权利要求177所述的方法,其中,所述姿势数据包括所述身体的在所述成像系统的景深之内的焦点分辨的数据。
179.根据权利要求178所述的方法,包括通过对所述成像系统采集的图像进行编码来生成中间图像。
180.根据权利要求179所述的方法,其中,所述中间图像变得模糊。
181.根据权利要求179所述的方法,其中,所述中间图像对以下方面中的至少之一的改变不敏感:所述身体,以及所述成像系统中包括散焦像差的多个光学检测器。
182.根据权利要求178所述的方法,其中,所述姿势数据包括所述身体的在所述景深之内的焦点分辨的范围数据。
183.根据权利要求182所述的方法,其中,所述身体的在所述景深之内的焦点分辨的范围数据是从所述成像系统的输出导出的。
184.根据权利要求178所述的方法,其中,所述姿势数据包括所述身体的在所述景深之内的焦点分辨的位置数据。
185.根据权利要求184所述的方法,其中,所述身体的在所述景深之内的焦点分辨的位置数据是从所述成像系统的输出导出的。
186.根据权利要求176所述的方法,其中,所述成像系统包括多个检测器。
187.根据权利要求186所述的方法,其中,所述检测器中的至少两个是包括波前编码光学元件的波前编码摄像机。
188.根据权利要求186所述的方法,其中,所述光学检测器中的至少两个是包括增加所述成像的焦点深度的相位掩模的波前编码摄像机。
189.根据权利要求176所述的方法,包括生成不随所述身体和所述成像系统之间的距离而变化的调制传递函数和点扩散函数。
190.根据权利要求176所述的方法,包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
191.一种系统,所述系统包括:
检测器,用于接收表示身体做出的姿势的姿势数据;以及
耦合到所述检测器的处理器,所述处理器自动从所述姿势数据中检测所述姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述处理器仅使用所述姿势数据来识别所述姿势,所述处理器将所述姿势转换成姿势信号,所述处理器响应所述姿势信号在所述数据空间中导航,其中,所述数据空间是包括表示在所述物理空间中的数据集的数据表示空间,所述处理器在多个共面数据帧中呈现所述数据集以及在所述显示器上将每个数据帧显示为可见帧,其中,所述多个共面数据帧是所述数据空间的多个区域的图形描绘。
192.一种用于在数据空间中导航的方法,所述方法包括:
从经由检测器接收到的姿势数据中检测身体的姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述检测包括仅使用所述姿势数据来识别所述姿势;
将所述姿势转换成姿势信号;
响应所述姿势信号在所述数据空间中导航,其中,所述数据空间是包括表示在所述物理空间中的数据集的数据表示空间;以及
在多个共面数据帧中呈现所述数据集以及在所述显示器上将每个数据帧显示为可见帧,其中,所述多个共面数据帧是所述数据空间的多个区域的图形描绘;其中,所述多个数据帧包括布置在所述数据空间的多个平面内的离散数据帧的堆栈,其中,每个数据帧位于所述多个平面中的分立平面内。
193.根据权利要求192所述的方法,包括:
检测所述身体的第一姿态;
响应于检测到所述第一姿态而激活推回交互。
194.根据权利要求193所述的方法,包括:
记录进入所述第一姿态的第一位置,其中,所述第一位置是三维空间的手位置;
将所述第一位置设置为原点,其中,将随后的检测到的身体位置报告为与所述原点的相对偏移。
195.根据权利要求194所述的方法,其中,所述检测包括检测所述身体的向上移动,其中,所述向上移动是沿y轴从显示器向外的移动,其中,所述y轴被定义为与所述显示器的观看表面垂直的轴。
196.根据权利要求195所述的方法,其中,响应所述身体的向上移动,所述导航包括沿所述y轴从当前数据帧位移多个数据帧,其中,所述堆栈的所述离散数据帧向上平移,其中,所述当前数据帧是当前呈现在所述显示器上的离散数据帧。
197.根据权利要求196所述的方法,其中,每个离散数据帧的外表响应于所述位移而改变,其中,所述堆栈中位于所述当前数据帧之上的离散数据帧呈现相对高的透明度和模糊度,其中,所述当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,所述堆栈中位于所述当前数据帧之下的离散数据帧呈现相对更低的透明度和模糊度以及开始变得可见。
198.根据权利要求197所述的方法,包括在姿势期间的身体位移的物理距离与所述堆栈的相继离散数据帧之间的逻辑距离之间的映射,其中,所述映射控制所述多个数据帧沿所述y轴的位移和每个离散数据帧的外表。
199.根据权利要求198所述的方法,其中,所述检测包括检测所述身体的向下移动,其中,所述向下移动是沿所述y轴朝向所述显示器的移动。
200.根据权利要求199所述的方法,其中,响应所述身体的向下移动,所述导航包括沿所述y轴从所述当前数据帧位移多个数据帧,其中,所述堆栈的离散数据帧向下平移。
201.根据权利要求200所述的方法,其中,每个离散数据帧的外表响应于所述位移而改变,其中,所述堆栈中位于所述当前数据帧之下的离散数据帧呈现相对高的透明度和模糊度,其中,所述当前数据帧从可见开始过渡以及开始呈现透明度和模糊度,其中,所述堆栈中位于所述当前数据帧之上的离散数据帧呈现相对更低的透明度和模糊度以及变得可见。
202.根据权利要求201所述的方法,包括在姿势期间的身体位移的物理距离与所述堆栈的相继离散数据帧之间的逻辑距离之间的映射,其中,所述映射控制所述多个数据帧沿所述y轴的位移和每个离散数据帧的外表。
203.根据权利要求202所述的方法,包括直接响应所述身体沿所述y轴的移动而连续更新所述多个数据帧的沿所述y轴的位移。
204.根据权利要求203所述的方法,包括:
检测所述身体的第二姿态;
响应于检测到所述第二姿态而终止推回交互,其中,所述终止包括将所述多个数据帧中的数据帧显示为与所述显示器共面。
205.根据权利要求192所述的方法,其中,所述数据空间包括多个虚拟限位装置。
206.根据权利要求205所述的方法,其中,每个虚拟限位装置对应于所述多个平面中的每个平面。
207.根据权利要求192所述的方法,包括形成包括第一活动区、第二活动区和死区的姿势交互空间,其中,所述第一活动区邻近所述显示器,所述死区邻近所述第一活动区,以及所述第二活动区邻近所述死区。
208.根据权利要求207所述的方法,其中,当在所述第一活动区和所述第二活动区之一中检测到所述姿势时,响应所述姿势而激活所述响应于所述姿势信号在数据空间中的导航。
209.根据权利要求207所述的方法,包括呈现在所述显示器上的反馈指示器。
210.根据权利要求209所述的方法,其中,所述反馈指示器显示指示所述身体在所述第一活动区、所述第二活动区和所述死区之一中的反馈。
211.根据权利要求209所述的方法,其中,所述反馈指示器显示指示所述身体离所述原点的物理偏移的反馈。
212.根据权利要求192所述的方法,包括将所述数据集的参数控制轴与所述物理空间的维对准。
213.根据权利要求212所述的方法,其中,所述维为深度维。
214.根据权利要求212所述的方法,其中,所述维为水平维。
215.根据权利要求212所述的方法,其中,所述维为垂直维。
216.根据权利要求212所述的方法,其中,所述维为侧向维。
217.根据权利要求212所述的方法,其中,所述导航包括沿所述维的运动以实现沿所述参数控制轴的数据空间平移。
218.根据权利要求212所述的方法,其中,所述导航包括导航到所述数据空间的量化参数空间。
219.根据权利要求192所述的方法,其中,所述检测包括检测所述身体的演进的位置。
220.根据权利要求192所述的方法,其中,所述检测包括检测所述身体的演进的取向。
221.根据权利要求192所述的方法,其中,所述检测包括检测所述身体的演进的姿态,其中,所述姿态是所述身体的部分相对于所述身体的至少一个其它部分的几何布置。
222.根据权利要求192所述的方法,其中,所述检测包括检测所述身体的演进的运动。
223.根据权利要求192所述的方法,其中,所述检测包括检测以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
224.根据权利要求192所述的方法,包括将所述姿势解析成姿势事件的序列。
225.根据权利要求224所述的方法,包括识别所述姿势。
226.根据权利要求225所述的方法,其中,所述姿势的识别包括识别以下至少之一:所述身体的演进的位置、所述身体的取向、所述身体的姿态、和所述身体的运动。
227.根据权利要求225所述的方法,包括生成所述姿势事件的序列中的姿势事件的表示。
228.根据权利要求227所述的方法,包括将所述姿势事件的表示分发到耦合到所述数据空间的至少一个控制组件。
229.根据权利要求228所述的方法,包括使所述姿势事件的表示与所述数据空间的图形描述同步。
230.根据权利要求229所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的图形描述同步。
231.根据权利要求228所述的方法,包括使所述姿势事件的表示与所述数据空间的听觉描述同步。
232.根据权利要求231所述的方法,包括使所述姿势事件的表示与在所述数据空间中的导航的听觉描述同步。
233.根据权利要求192所述的方法,其中,所述数据集表示空间信息。
234.根据权利要求233所述的方法,其中,所述数据集表示以下至少之一的空间信息:现象、事件、测量、观测、和结构。
235.根据权利要求192所述的方法,其中,所述数据集表示非空间信息。
236.根据权利要求192所述的方法,其中,所述姿势包括线性空间运动。
237.根据权利要求192所述的方法,其中,所述导航包括在所述数据空间中的线性接近。
238.根据权利要求192所述的方法,包括:
在多个数据帧中呈现数据集,其中,所述数据帧是所述数据空间的多个区域的图形描述;
在显示器上将每个数据帧显示为可见帧。
239.根据权利要求238所述的方法,其中,所述数据帧的大小和纵横比与所述显示器的大小和纵横比相一致。
240.根据权利要求238所述的方法,其中,所述数据帧的中心和法向矢量与所述显示器的中心和法向矢量相一致。
241.根据权利要求238所述的方法,其中,所述数据帧的位置和取向与所述显示器的位置和取向相一致。
242.根据权利要求238所述的方法,其中,每个数据帧包括表示所述数据集的元素的图形数据元素。
243.根据权利要求242所述的方法,其中,所述图形数据元素为静态元素。
244.根据权利要求242所述的方法,其中,所述图形数据元素为动态元素。
245.根据权利要求238所述的方法,其中,所述数据帧为二维构造。
246.根据权利要求245所述的方法,其中,所述数据帧驻留在具有坐标系的三维图形呈现环境中,其中,所述坐标系与描述包括所述身体的本地环境的坐标系相一致。
247.根据权利要求238所述的方法,其中,所述在数据空间中导航包括在所述多个数据帧中导航。
248.根据权利要求192所述的方法,包括识别所述姿势,其中,所述识别包括识别所述身体的部分的姿态和取向。
249.根据权利要求192所述的方法,其中,所述检测包括检测以下至少之一:第一身体附属物集合、和第二身体附属物集合。
250.根据权利要求192所述的方法,其中,所述检测包括动态检测至少一个标签的位置。
251.根据权利要求192所述的方法,其中,所述检测包括动态检测和定位所述身体上的标记。
252.根据权利要求192所述的方法,其中,所述转换包括将所述姿势的信息转换成姿势符号。
253.根据权利要求252所述的方法,其中,所述姿势符号表示姿势词汇,以及所述姿势信号包括所述姿势词汇的通信。
254.根据权利要求253所述的方法,其中,所述姿势词汇以文本形式表示所述身体的即时姿态状态。
255.根据权利要求253所述的方法,其中,所述姿势词汇以文本形式表示所述身体的取向。
256.根据权利要求253所述的方法,其中,所述姿势词汇以文本形式表示所述身体的取向的组合。
257.根据权利要求253所述的方法,其中,所述姿势词汇包括表示所述身体的状态的字符串。
258.根据权利要求192所述的方法,其中,所述检测包括检测所述身体的推测位置何时与虚拟空间相交,其中,所述虚拟空间包括在所述显示器上描绘的空间。
259.根据权利要求258所述的方法,包括当所述推测的位置与所述虚拟空间中的虚拟对象相交时控制所述虚拟对象。
260.根据权利要求259所述的方法,其中,所述控制包括响应所述虚拟空间中的所推测的位置控制所述虚拟空间中的所述虚拟对象的位置。
261.根据权利要求192所述的方法,包括对所述检测和所述导航的定标进行控制以产生虚拟空间与物理空间之间的一致性,其中,所述虚拟空间包括所述显示器上描绘的空间,其中,所述物理空间包括所述身体所存在于的空间。
262.根据权利要求192所述的方法,包括利用成像系统对所述身体进行成像。
263.根据权利要求262所述的方法,其中,所述成像包括生成所述身体的波前编码图像。
264.根据权利要求263所述的方法,其中,所述姿势数据包括所述身体的在所述成像系统的景深之内的焦点分辨的数据。
265.根据权利要求264所述的方法,包括通过对所述成像系统采集的图像进行编码来生成中间图像。
266.根据权利要求265所述的方法,其中,所述中间图像变得模糊。
267.根据权利要求265所述的方法,其中,所述中间图像对以下方面中的至少之一的改变不敏感:所述身体,以及所述成像系统中包括散焦像差的多个光学检测器。
268.根据权利要求264所述的方法,其中,所述姿势数据包括所述身体的在景深之内的焦点分辨的范围数据。
269.根据权利要求268所述的方法,其中,所述身体的在所述景深之内的焦点分辨的范围数据是从所述成像系统的输出导出的。
270.根据权利要求264所述的方法,其中,所述姿势数据包括所述身体的在所述景深之内的焦点分辨的位置数据。
271.根据权利要求270所述的方法,其中,所述身体的在所述景深之内的焦点分辨的位置数据是从所述成像系统的输出导出的。
272.根据权利要求262所述的方法,其中,所述成像系统包括多个检测器。
273.根据权利要求272所述的方法,其中,所述检测器中的至少两个是包括波前编码光学元件的波前编码摄像机。
274.根据权利要求272所述的方法,其中,所述光学检测器中的至少两个是包括增加所述成像的焦点深度的相位掩模的波前编码摄像机。
275.根据权利要求262所述的方法,包括生成不随所述身体和所述成像系统之间的距离而变化的调制传递函数和点扩散函数。
276.根据权利要求262所述的方法,包括生成相对于散焦而无变化的调制传递函数和点扩散函数。
277.一种系统,所述系统包括:
检测器,用于接收表示身体做出的姿势的姿势数据;以及
耦合到所述检测器的处理器,所述处理器自动从所述姿势数据中检测所述姿势,其中,所述姿势数据是所述身体在时间和物理空间中的点处的即时状态的绝对三维空间位置数据,所述处理器仅使用所述姿势数据来识别所述姿势,所述处理器将所述姿势转换成姿势信号,所述处理器响应所述姿势信号在所述数据空间中导航,其中,所述数据空间是包括表示在所述物理空间中的数据集的数据表示空间,所述处理器在多个共面数据帧中呈现所述数据集以及在所述显示器上将每个数据帧显示为可见帧,其中,所述多个共面数据帧是所述数据空间的多个区域的图形描绘;其中,所述多个数据帧包括布置在所述数据空间的多个平面内的离散数据帧的堆栈,其中,每个数据帧位于所述多个平面中的分立平面内。
CN200980140293.0A 2008-09-03 2009-09-03 用于在主要尺寸的数据空间中导航的控制系统 Expired - Fee Related CN102177513B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US9385208P 2008-09-03 2008-09-03
US61/093,852 2008-09-03
US12/417,252 US9075441B2 (en) 2006-02-08 2009-04-02 Gesture based control using three-dimensional information extracted over an extended depth of field
US12/417,252 2009-04-02
US12/487,623 US20090278915A1 (en) 2006-02-08 2009-06-18 Gesture-Based Control System For Vehicle Interfaces
US12/487,623 2009-06-18
PCT/US2009/055930 WO2010028176A1 (en) 2008-09-03 2009-09-03 Control system for navigating a principal dimension of a data space

Publications (2)

Publication Number Publication Date
CN102177513A true CN102177513A (zh) 2011-09-07
CN102177513B CN102177513B (zh) 2015-12-02

Family

ID=41797486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980140293.0A Expired - Fee Related CN102177513B (zh) 2008-09-03 2009-09-03 用于在主要尺寸的数据空间中导航的控制系统

Country Status (6)

Country Link
EP (1) EP2338114B1 (zh)
JP (1) JP5806615B2 (zh)
KR (1) KR101616591B1 (zh)
CN (1) CN102177513B (zh)
ES (1) ES2623816T3 (zh)
WO (1) WO2010028176A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016062191A1 (zh) * 2014-10-21 2016-04-28 中兴通讯股份有限公司 信息发布方法、信息接收方法、装置及信息共享系统
CN105865327A (zh) * 2015-01-22 2016-08-17 成都飞机工业(集团)有限责任公司 基于变焦照片的相对位置的测量方法
CN107754225A (zh) * 2017-11-01 2018-03-06 河海大学常州校区 一种智能健身教练系统
CN108241164A (zh) * 2016-12-26 2018-07-03 千寻位置网络有限公司 卫星定位系统定位空窗期内轨迹记录方法及其装置
CN109643219A (zh) * 2016-09-01 2019-04-16 大众汽车有限公司 用于与在车辆中的显示设备上呈现的图像内容进行交互的方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5627314B2 (ja) * 2010-06-24 2014-11-19 キヤノン株式会社 情報処理装置
JP5645530B2 (ja) * 2010-07-29 2014-12-24 キヤノン株式会社 情報処理装置及びその制御方法
US8610831B2 (en) 2010-10-12 2013-12-17 Nokia Corporation Method and apparatus for determining motion
US9952671B2 (en) * 2010-10-12 2018-04-24 Nokia Technologies Oy Method and apparatus for determining motion
CN102238390B (zh) * 2011-08-05 2013-03-20 中国科学院深圳先进技术研究院 基于图像库的视频和图像的编码解码方法与系统
WO2013103410A1 (en) * 2012-01-05 2013-07-11 California Institute Of Technology Imaging surround systems for touch-free display control
WO2014107434A1 (en) 2013-01-02 2014-07-10 California Institute Of Technology Single-sensor system for extracting depth information from image blur
US9616350B2 (en) * 2014-05-21 2017-04-11 Universal City Studios Llc Enhanced interactivity in an amusement park environment using passive tracking elements
DE112018002670T5 (de) 2017-05-24 2020-03-05 The Trustees Of Columbia University In The City Of New York Breitband achromatische flache optische Komponenten durch dispersionstechnische dielektrische Metaoberflächen
KR20200047612A (ko) 2017-08-31 2020-05-07 메탈렌츠 인코포레이티드 투과성 메타표면 렌즈 통합
JP6730552B2 (ja) * 2018-05-14 2020-07-29 株式会社ユピテル 電子情報システム及びそのプログラム
JP2022542172A (ja) 2019-07-26 2022-09-29 メタレンズ,インコーポレイテッド アパーチャメタ表面およびハイブリッド屈折メタ表面イメージングシステム
EP3985484A1 (en) * 2020-10-19 2022-04-20 ameria AG Calibration method, calibration device and control method for touchless gesture control
US11927769B2 (en) 2022-03-31 2024-03-12 Metalenz, Inc. Polarization sorting metasurface microlens array device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060187196A1 (en) * 2005-02-08 2006-08-24 Underkoffler John S System and method for gesture based control system
US20070001106A1 (en) * 1999-01-20 2007-01-04 Schmidt Karl B Methods and apparatus for providing feedback to a subject in connection with performing a task
US20080131023A1 (en) * 2002-02-27 2008-06-05 Edward Raymond Dowski Optimized Image Processing For Wavefront Coded Imaging Systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69315969T2 (de) * 1992-12-15 1998-07-30 Sun Microsystems Inc Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
JP2517531B2 (ja) * 1994-02-28 1996-07-24 株式会社エイ・ティ・アール通信システム研究所 ステレオ画像を用いた姿勢検出装置
JPH0863326A (ja) * 1994-08-22 1996-03-08 Hitachi Ltd 画像処理装置及び方法
US20020195548A1 (en) * 2001-06-06 2002-12-26 Dowski Edward Raymond Wavefront coding interference contrast imaging systems
JPH103544A (ja) * 1996-06-14 1998-01-06 Imeeji Joho Kagaku Kenkyusho ジェスチャ認識装置
SE0000850D0 (sv) * 2000-03-13 2000-03-13 Pink Solution Ab Recognition arrangement
WO2003025859A1 (fr) * 2001-09-17 2003-03-27 National Institute Of Advanced Industrial Science And Technology Dispositif d'interface
JP2004213521A (ja) * 2003-01-08 2004-07-29 Canon Inc ペン入力情報処理方法
US7576725B2 (en) * 2004-10-19 2009-08-18 Microsoft Corporation Using clear-coded, see-through objects to manipulate virtual objects
KR101003168B1 (ko) * 2005-02-08 2010-12-22 씨그리드 코포레이션 다차원 에비던스 그리드 및 그를 적용한 시스템 및 방법
EP1926047A1 (en) * 2006-11-21 2008-05-28 STMicroelectronics (Research & Development) Limited Artefact Removal from Phase Encoded Images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070001106A1 (en) * 1999-01-20 2007-01-04 Schmidt Karl B Methods and apparatus for providing feedback to a subject in connection with performing a task
US20080131023A1 (en) * 2002-02-27 2008-06-05 Edward Raymond Dowski Optimized Image Processing For Wavefront Coded Imaging Systems
US20060187196A1 (en) * 2005-02-08 2006-08-24 Underkoffler John S System and method for gesture based control system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SMITH. K., ET AL.: ""Extended Evaluation of Simulated Wavefront Coding Technology in Iris Recognition"", <PROC. OF THE FIRST IEEE CONFERENCE ON BIOMETRICS: THEORY, APPLICATIONS AND SYSTEMS, SEPTEMBER 2007 (09.2007) > *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016062191A1 (zh) * 2014-10-21 2016-04-28 中兴通讯股份有限公司 信息发布方法、信息接收方法、装置及信息共享系统
CN105589550A (zh) * 2014-10-21 2016-05-18 中兴通讯股份有限公司 信息发布方法、信息接收方法、装置及信息共享系统
CN105865327A (zh) * 2015-01-22 2016-08-17 成都飞机工业(集团)有限责任公司 基于变焦照片的相对位置的测量方法
CN109643219A (zh) * 2016-09-01 2019-04-16 大众汽车有限公司 用于与在车辆中的显示设备上呈现的图像内容进行交互的方法
CN108241164A (zh) * 2016-12-26 2018-07-03 千寻位置网络有限公司 卫星定位系统定位空窗期内轨迹记录方法及其装置
CN108241164B (zh) * 2016-12-26 2021-09-14 千寻位置网络有限公司 卫星定位系统定位空窗期内轨迹记录方法及其装置
CN107754225A (zh) * 2017-11-01 2018-03-06 河海大学常州校区 一种智能健身教练系统

Also Published As

Publication number Publication date
EP2338114B1 (en) 2017-03-15
ES2623816T3 (es) 2017-07-12
WO2010028176A1 (en) 2010-03-11
JP5806615B2 (ja) 2015-11-10
KR101616591B1 (ko) 2016-04-28
JP2012502364A (ja) 2012-01-26
KR20110058871A (ko) 2011-06-01
EP2338114A1 (en) 2011-06-29
CN102177513B (zh) 2015-12-02
EP2338114A4 (en) 2011-10-05

Similar Documents

Publication Publication Date Title
CN102177513B (zh) 用于在主要尺寸的数据空间中导航的控制系统
US10061392B2 (en) Control system for navigating a principal dimension of a data space
CN103988150B (zh) 用于初始化基于视觉的手跟踪器的快速指尖检测
US9471148B2 (en) Control system for navigating a principal dimension of a data space
US8537112B2 (en) Control system for navigating a principal dimension of a data space
US9910497B2 (en) Gestural control of autonomous and semi-autonomous systems
Thomas et al. Situated Analytics.
CN102047203B (zh) 使用在扩展的景深内提取的三维信息进行的基于姿态的控制
US9075441B2 (en) Gesture based control using three-dimensional information extracted over an extended depth of field
WO2010030822A1 (en) Gestural control of autonomous and semi-autonomous systems
CN105122790A (zh) 具有姿势控制以及多个客户端装置、显示器和用户的操作环境
CN102224476A (zh) 多进程交互系统和方法
CN103930944A (zh) 用于空间输入装置的自适应跟踪系统
Zhang et al. Behind every domain there is a shift: Adapting distortion-aware vision transformers for panoramic semantic segmentation
Kang et al. Content-aware eye tracking for autostereoscopic 3D display
Kwolek et al. Recognition of JSL fingerspelling using deep convolutional neural networks
Kwolek GAN-based data augmentation for visual finger spelling recognition
CN102804206B (zh) 包括数据表示、操作和交换的基于姿势的控制系统
Wang et al. Deep network based 3D hand keypoints prediction from single RGB images
Li et al. Human Mesh Recovery from Arbitrary Multi-view Images
Plumlee Linking focus and context in three-dimensional multiscale environments

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151202

Termination date: 20200903