CN105579946A - 对由应用产生的共享状态信息进行管理 - Google Patents

对由应用产生的共享状态信息进行管理 Download PDF

Info

Publication number
CN105579946A
CN105579946A CN201480049021.0A CN201480049021A CN105579946A CN 105579946 A CN105579946 A CN 105579946A CN 201480049021 A CN201480049021 A CN 201480049021A CN 105579946 A CN105579946 A CN 105579946A
Authority
CN
China
Prior art keywords
application
information
identifier
plant characteristic
shared
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
CN201480049021.0A
Other languages
English (en)
Other versions
CN105579946B (zh
Inventor
A·M·邓恩
T·河野
D·A·莫尔纳
A·N·莫舒克
F·勒斯那
J·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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105579946A publication Critical patent/CN105579946A/zh
Application granted granted Critical
Publication of CN105579946B publication Critical patent/CN105579946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

共享渲染器维护其中两个或者更多个增强现实应用做贡献的共享状态信息。共享渲染器然后基于共享状态信息提供单个输出呈现。共享渲染器包括许可机制(但不限于此方面),应用通过该许可机制能够共享关于对象特性的信息。共享渲染器还可以包括:物理引擎,用于对由共享状态信息表示的至少一个对象的运动进行仿真;注释引擎,用于管理对由多个应用产生的注释进行的呈现;和/或遮挡引擎,用于当由两个或更多个应用产生的两个或更多个对象在输出呈现内交叠时对该输出呈现的行为进行管理。

Description

对由应用产生的共享状态信息进行管理
背景技术
增强现实应用通常提供将从环境捕获的信息与若干类型的补充信息相合并的输出呈现。例如,一种类型的增强现实应用将环境的图像连同在该图像中的对对象进行注释的标签一起呈现。另一种类型的增强现实应用提供了图片,该图片将人类用户的实际运动连同该用户可以与之交互的虚拟对象一起复制。
用于从周围环境捕获信息的应用引起了隐私问题。例如,上文描述的增强现实应用捕获环境的图像或视频;该信息转而会有可能包括敏感项目,诸如人脸、个人笔迹、账户号码等等。此种私人信息的“所有者”常常会倾向于或坚持要求不将该信息发布给未经授权的各方。这样的不期望的发布会在各种不同的情况下发生。在第一种情形下,未经授权的应用可从其通过计算设备的感测机制(例如,视频摄像机、麦克风等)获取的信息提取私人信息。在第二种情形下,未经授权的应用可从另一增强现实应用获取私人信息。
在实践中,开发者可以将增强现实应用作为“一次性的(one-off)”自足(self-contained)代码单元来创建。同样地,计算设备可以将应用作为单独的(standalone)功能单元来执行。如果用户希望在相同的计算设备上运行另一增强现实应用,他或她可以关闭第一应用并且启动第二应用。根据此方法,每个开发者都可以以分开(separate)的方式(典型地以自组织(adhoc)的方式)在应用代码自身以内解决上文描述的隐私问题。
发明内容
在本文中描述了共享渲染器(sharedrenderer),其对共享状态信息进行管理。共享状态信息是由两个或更多个增强现实应用产生的,每个增强现实应用将对象和其它信息贡献给共享状态信息。例如,两个或更多个增强现实应用可以感测相同的环境并创建与该环境内的实体相关联的两组不同的标签。共享渲染器能够将这些标签表示成共享状态信息的部分。输出渲染器(outputrenderer)基于该共享状态信息给出单个输出呈现。
根据一个示例方面,每个对象可以具有零个、一个或者多个特性。此外,共享渲染器能够将许可信息与每个对象特性相关联。共享渲染器包括这样的机制:任何应用通过该机制都能够基于许可信息来与另一应用共享关于对象特性的信息。
根据另一示例特征,共享渲染器可以包括物理引擎。物理引擎被配置为基于来自至少一个应用的指令对在共享状态信息中表示的至少一个对象的运动进行仿真。
根据另一示例特征,共享渲染器可以包括注释引擎。注释引擎被配置为管理对由多个应用产生的注释进行的呈现。
根据另一示例特征,共享渲染器可以包括遮挡引擎。遮挡引擎被配置为,当由两个或更多个应用产生的两个或更多个对象在输出呈现内交叠时,对该输出呈现的行为进行管理。
上述功能可以被体现在各种类型的系统、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等等中。
本发明内容被提供来以简化的形式介绍概念的选集;这些概念在下文在具体实施方式中被进一步描述。该发明内容不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在被用来限制所要求保护的主题的范围。
附图说明
图1示出了示例场景,在其中多个增强现实应用联合地对增强现实体验做贡献。
图2示出了用于递送图1中示出的增强现实体验的示例现实感测框架的概况。
图3示出了用于实现图2中的现实感测框架的示例计算功能。
图4示出了用于管理辨识系统的示例管理模块,其中,该管理模块和辨识系统是图2中的现实感测框架的组件。
图5示出了图4中的辨识系统的一个示例实施方式。
图6示出了图5中的辨识系统的一个示例实例化(instantiation)。
图7示出了可以由可视化模块给出的一个示例用户界面呈现。该可视化模块是图4中的管理模块的组件。
图8示出了可以由可视化模块给出的另一示例用户界面呈现。
图9示出了可以由可视化模块给出的另一示例用户界面呈现。这里,该呈现展现了应用在其执行期间可以尝试访问的对象。
图10示出了一个示例纠错机制连同相关联的辨识器。该纠错机制被设计成降低由辨识器生成的误报(falsepositive)的发生率。
图11示出了另一示例纠错机制连同其相关联的辨识器。
图12示出了示例场景,在其中一个增强现实应用可以经由共享渲染器与另一增强现实应用共享信息。
图13示出了另一个示例场景,在其中一个增强现实应用可以经由共享渲染器与另一增强现实应用共享信息。
图14示出了可以递送图12和13中的体验的共享渲染器的一个示例实施方式。
图15是对可以构成如由共享渲染器维护的共享状态信息的不同类型的信息项目进行识别的图表。
图16示出了一种表现作为共享状态信息的部分的许可信息的方法。
图17示出了一种用户可以用于检查并设置许可信息的方法。
图18和19一起示出了用户可以经由小工具的使用来手动检查并设置许可信息的方法。
图20示出了遮挡引擎可以给出用以指示在输出呈现内两个或更多个对象交叠的可视化指示器。该遮挡引擎是共享渲染器的组件。
图21示出了操控机制的操作。用户可以与操控机制交互,以对发生交叠的对象取得不同的视角(perspective)。
图22是示出图4的管理模块的一种操作方式的流程图。
图23是示出图5的辨识系统的一种操作方式的流程图。
图24是示出设置与特定的对象特性相关联的许可信息的两种方法的流程图。该许可信息管控应用间共享。
图25是示出图14中的共享渲染器的一种操作方式的流程图。
图26是示出共享渲染器的各组件可以藉以贡献共享状态信息的一种方式以及输出渲染器可以基于共享状态信息如何产生输出呈现的流程图。
图27示出了可用以实现前述附图中示出的特征的任何方面的示例计算功能。
在本申请公开和附图中通篇使用的相同附图标记指代相同的组件和特征。100系列的附图标记指在图1中最初发现的特征,200系列的附图标记指在图2中最初发现的特征,300系列的附图标记指在图3中最初发现的特征等等。
具体实施方式
本申请公开是按如下组织的。第A节提供了现实感测框架的概况,其中多个应用感测来自环境的信息并对共享输出呈现做贡献。这些应用可以对应于增强现实应用和/或若干其它类型的环境感测应用。第B节给出了对第A节中的功能的操作进行解释的示例方法。第C节描述了能被用以实现在第A和B节中描述的特征的任何方面的示例计算功能。
作为初步事项,一些附图描述了在一个或多个结构组件背景下的概念,其以不同的方式被称为功能、模块、特征、元件等等。在附图中示出的各种组件能以任何方法通过任何物理的和有形的机制(例如,通过在计算机装置(computerequipment)上运行的软件、硬件(例如,以芯片实现的逻辑功能)等和/或其任意组合)来实现。在一种情形下,在附图中将示出的各种组件分成不同的单元,可以反映对应的不同的物理和有形组件在实际的实施方式中的使用。替代地或者另外地,在附图中对任何两个或更多个分开的组件的描绘可以反映由单个实际物理组件执行的不同的功能。如待要依次描述的图27提供了与在附图中示出的功能的一种示例物理实施方式有关的额外细节。
其它附图描述了在流程图中的概念。以此形式,特定的操作被描述成构成以特定次序执行的不同方框。这样的实施方式是示例性的且是非限定性的。在本文中描述的特定方框能被组合在一起并以单个操作来执行,特定方框能被分裂成多个组件方框,以及特定方框能以本文所例示的次序不同的次序(包括执行方框的并行方法)来执行。在流程图中示出的方框可以以任何方法通过任何物理和有形机制(例如,通过在计算机装置上运行的软件、硬件(例如,以芯片实现的逻辑功能)等和/或其任意组合)来实现。
关于术语,短语“被配置为”涵盖能被用于构造以执行识别的操作的任何方法的任何类别的物理和有形功能。该功能能被配置为使用例如在计算机装置上运行的软件、硬件(例如,以芯片实现的逻辑功能)等和/或其任意组合来执行操作。
术语“逻辑”涵盖用于执行任务的任何物理和有形功能。例如,在流程图中示出的每个操作对应用于执行该操作的逻辑组件。一项操作能使用例如在计算机装置上运行的软件、硬件(例如,以芯片实现的逻辑功能)等和/或其任意组合来执行。当被计算装置执行时,逻辑组件表示作为计算系统的一个物理部分的电气组件,无论其是如何被实现的。
在权利要求书中使用的短语“用于……的单元”旨在援引《美国法典》第35卷第112节第六段落的规定。除了此专用短语之外的其它语言并不是想要援引该法典的那个部分的规定。
下面的解释可以将一个或多个特征识别为“可选地”。此种类型的声明不是要被解释为对可被视为可选地的特征的排他指示;也即,其它特征也能被视为可选地,即使其在本文中未被明确地识别。最后,术语“例示”或“示例”指在潜在地多种实施方式当中的一个实施方式。
A.示例现实感测框架
A.1.该框架的概况
本节描述了为一个或多个增强现实应用做主机的现实感测框架。如上所示,增强现实应用通过使用一个或多个感测机制以捕获环境的任何方面来运作。该应用然后生成若干种类的补充信息,诸如标签、虚拟对象(例如,头像)等等。然后该应用提供输出呈现,所述输出呈现将关于环境的信息与补充信息合并。
在其它情形下,现实感测框架可以为一个或多个其它类型的环境感测应用做主机。这些其它类型的环境感测应用捕获环境的各方面,但不会以在上文描述的相同方式将对环境的表示与补充信息合并。不过,为了便于并简化描述,在本文将主要参照增强现实应用来描述现实感测框架。
从高层次角度,现实感测框架包括用于基于由一个或多个感测机制提供的感知信息来从环境提取不同的对象的辨识系统。不同的增强现实应用订阅并接收由辨识系统产生的不同类型的对象。单个共享渲染器接收并管理由增强现实应用产生的信息。现实感测框架基于由共享渲染器维护的共享状态信息来提供输出呈现。
然而在探究现实感测框架的示例细节前,考虑在图1中描绘的具体场景,其中现实感测框架被用以提供增强现实体验。该场景将在本申请公开中通篇用作运行例子。
在图1中示出的真实世界102包括站在白板106前面的第一个人104。第一个人104具有的特性包括但不限于人脸108和证章(badge)110。此外,第一个人104将其手臂112伸出,好像指向特定方向。白板106包括各种笔迹实例,诸如笔迹114和笔迹116。
第二个人118使用诸如智能手机等计算设备120捕获上文描述的景象。更具体而言,第二个人118朝向计算设备120,使得其摄像机(未示出)捕获至少第一个人104和白板106的视频呈现。计算设备120还能够包括一个或多个其它环境感测机制,诸如但不限于一个或多个麦克风、一个或多个动作感测设备(诸如加速度计、陀螺仪等)等等。这些其它感测机制可以捕获真实世界102的其它方面。
计算设备120还可以包括一个或多个输出设备,诸如显示机制122。显示机制122提供由增强现实应用产生的输出呈现。在图1中示出的场景中,显示机制122充当从第二个人118的有利位置(vantagepoint)到真实世界102的“窗口”。换言之,在显示机制122上给出的内容反映(mirror)出计算设备120前方的真实世界,好像用户通过窗口面对着世界。
然而,其它设置可以被用以递送增强现实体验。在另一情形下,例如,第二个人118可以在由一个或多个感测机制创建的空间内与增强现实应用交互。例如,第二个人118可以在由多个视频摄像机创建的视野内工作,每个摄像机从不同的有利位置捕获第二个人118。第二个人118可以消费由增强现实应用在诸如位于第二个人118前方的显示监视器之类的任何输出设备上产生的输出呈现。
在另一情形下,第二个人118可以经由任何类型的可穿戴计算设备来与增强现实应用互动。例如,这种计算设备可以附到眼镜、服装、手表、首饰或其它可穿戴项目。任何类型的感测机制和输出设备可以附到或以其它方式关联于可穿戴项目。例如,附到眼镜的摄像机可以捕获对第二个人118前方的景象的视频表示,而附到眼镜的显示机制可以递送由增强现实应用提供的输出呈现。上文描述的形状要素是通过举例而非限制地提出的;此外其它布置也是可能的。
假定,在当前的例子中,现实感测框架包括一同工作以生成共享状态信息的五个增强现实应用。显示机制122可以基于共享状态信息给出单个输出呈现124,如在图1底部的部分所示出地。从高层次角度,五个增强现实应用中的每个提供补充信息的一个不同实例,其对共享状态信息做贡献。共享渲染器将补充信息的不同实例(separateinstances)与对真实世界102的视觉(和/或音频)表示相合并。
假定第一增强现实应用从辨识系统接收骨架信息。骨架信息表现出第一个人104采取的姿势。第一增强现实应用随后基于骨架信息生成标签,并向输出呈现124提供这些标签。在图1的例子中,第一增强现实应用提供标签126,该标签指示第一个人104构成“正在站着的人”。
第二增强现实应用也向输出呈现124添加标签,但以与第一增强现实应用相比不同的方式运作。也即,第二增强现实应用接收来自辨识系统的人脸辨识数据。第二增强现实应用随后执行查找操作以将人脸辨识数据与一个或多个先前注册的人脸辨识数据实例进行匹配,每个人脸辨识数据实例被标记一个名字。第二增强现实应用随后在输出呈现124上提供与一个或多个匹配名字相关联的标签。图1示出了由第二增强现实应用生成的一个这样的标签128。
在上文描述的第一和第二增强现实应用此后分别被称为第一和第二注释应用。通常,现实感测框架能够与任意数量的注释应用协同工作。
第三增强现实应用从辨识系统接收对第一个人的手的位置进行指示的位置数据。然后第三增强现实应用生成虚拟对象,诸如图1中示出的虚拟球130。然后第三增强现实应用在第一个人伸开的手的位置的附近显示虚拟球130。例如,第三增强现实应用能够执行此功能,以便将授课者伸开的手的位置高亮。为便于引用,此种类型的应用此后被称为虚拟高亮器(visualhighlighter)应用。一般而言,在上文描述的此种类型的增强现实应用能够向输出呈现124提供任何类型的(一个或多个)虚拟对象。在一些情形下,由共享渲染器提供的物理引擎(其将在下面描述)以现实的动态和/或想象的动态将虚拟对象动画化(animate)。
第四增强现实应用从辨识系统接收文本信息。辨识系统转而可以通过使用诸如光字符辨识技术之类的任何类型的文本辨识技术处理对白板106的RGB表示,来再生成文本信息。在图1的具体例子中,辨识系统接收字迹114的图像,并将其转换成文本“发布日期是6/16/14”。然后第四增强现实应用基于文本中的令牌(token)形成搜索字符串。其然后使用该搜索字符串以在电子邮件消息的语料库内搜索,并识别与该搜索字符串匹配的任何电子邮件消息。最后,第四增强现实应用给出诸如提示(prompt)132之类的提示,该提示识别匹配的电子邮件消息。提示132也可包括超链接或其它控制特征,这允许观看者访问匹配的电子邮件消息。上文描述的增强现实应用在下文中被称为电子邮件检索应用。
第五增强现实应用接收第二注释应用的输出,该输出在图1的例子中识别第一个人104的名字(“JohnCheng”)。然后第五增强现实应用能够给出提示134,提示134邀请观看者访问与所识别的人(即,JohnCheng)相关联的社交网页。第五增强现实应用能够在标签128的附近将提示134显示。此种增强现实应用在下文中被称为社交网络应用。
可以理解的是,在上文描述的各种增强现实应用是通过示例方式而非限制地提出的。现实感测框架能够容纳任意数量的增强现实应用(包括仅一个应用),每个增强现实应用可以执行任何功能,并且每个增强现实应用在任意时间可以是活跃的或者不活跃的。
需要澄清的是,请注意,输出呈现124还包括第一个人104和白板106的经编校的(redacted)描述。现实感测框架能够以不同的方式给出这样的描述。在一种情形下,现实感测框架能够使用第六增强现实应用以从辨识系统接收表示第一个人104和白板106的对象。例如,辨识系统能够通过使用深度图像(由深度摄像机提供的)以创建第一个人104的三维模型以及白板106的三维模型,来生成这些对象。辨识系统随后能够将(由视频摄像机提供的)RGB信息作为纹理信息“粘贴”到三维模型上,以由此产生与第一个人104以及白板106相关联的逼真对象。如所示,辨识系统还能够可选地从这些对象编校(redact)去掉特定部分,诸如第一个人104的人脸108、白板106上的字迹(114、116)、证章110上的字迹等等。然后第六增强现实应用能够向输出呈现124发送经编校的对象。
在另一实施方式中,实现现实感测应用的计算设备120能够从诸如视频摄像机、麦克风等之类的一个或多个感测机制接收原始感知信息(rawperceptualinformation)。然后计算设备120能够将此种原始感知信息传递给计算设备120的显示机制122,无须将其也提供给任何增强现实应用。替代地或另外地,计算设备120能够显示对由辨识系统提供的真实世界102的经处理的表示,同样无须将其提供给任何增强现实应用。
此时,考虑由在图1中示出的场景所造成的问题的几个高层次方面。真实世界102包括可以被视为性质上隐私或敏感的多个项目。例如,白板包含字迹(114、116),该字迹可能包含秘密信息。例如,考虑这样的情形,在该情形下,第一个人104是公司的雇员,并且这个人已将商业产品的推出日期(如由字迹114所传达地)写在公司的白板106上。公司可能期望防止这样的信息被泄露到公司外部。
同样,真实世界102涵盖第一个人104他自身。这个人104可能将其人脸108、话音、证章110等视为隐私信息。于是,第一个人104可能希望防止这些私人项目被传达给未被授权的实体。在图1的场景中,第二个人118正在捕获对第一个人104的表示;此种布置意味着第一个人104将是主要关心私人信息泄露的人。但更一般地,由被感测的环境涵盖或间接影响的任何人可能关心隐私的破坏。
更确切地,在上文描述的场景中有各种关注点。第一,隐私信息的所有者可能期望对每个增强现实应用接收的信息的类型进行限制。第二,隐私信息的所有者可能期望对已被正当给予对隐私信息的访问权的增强现实应用被许可与其它实体共享隐私信息的方式进行控制。例如,第一个人可能期望限制第二注释应用与另一应用共享被检测到的名字(“JohnCheng”)。第三,隐私信息的所有者可能期望对任何增强现实应用输出敏感信息的方式(诸如任何增强现实应用在计算设备120的显示机制122上显示第一个人的人脸108等等的方式)进行限制。
第二技术挑战随着由多个增强现实应用向同一输出呈现124同时提供补充信息这一事实而发生。存在这样的风险:一个增强现实应用的输出可能会干扰另一增强现实应用的输出。
转到图2,该图示出了现实感测框架202,其提供了对至少上文描述的问题的解决方案。现实感测框架202包括一个或多个增强现实应用204和/或任何其它环境感测应用的集合。现实感测框架202可以以任何方式从任何(一个或多个)源206接收应用204。在一种情形下,用户能够从诸如增强现实应用的线上市场之类的任何源显而易见地下载或以其它方式获得增强现实应用。在另一情形下,用户可以较被动地选择应用,诸如通过对调用该应用的线上网站进行访问、或者通过对自动调用该应用的任何其它事件进行触发。应用对应于大量的计算机实现指令,其以任何计算语言或计算语言的组合来表现。
应用204对应于潜在不受信任的功能208。现实感测框架202的其余部分对应于受信任的功能210。不受信任的功能208是在其没有提供与受信任的功能210相比而言相同类型的鲁棒安全保证的意义上不受信任的。在一种情形下,受信任的功能210可以至少部分地通过由计算设备的操作系统提供的功能来实现。在另一情形下,受信任的功能210能够至少部分地由驻留在操作系统和应用204之间的软件层来提供。受信任的功能210的其它实施方式也是可行的。
受信任的功能210包括两个主要的信息流。在第一主要流中,受信任的功能210从被感测的环境212提取选取的对象,并将其发送给应用204。在第二主要流中,应用204将补充信息传递给输出呈现。第A.2子节提供了对第一主要流的详细解释,而第A.3子节提供了关于第二主要流的额外细节。此子节的其余部分提供了整个现实感测框架202的概况。然而需要注意的是,与第一主要流相关联的功能(如在第A.2子节中描述地)还能够与除了与如在第A.3子节中描述的第二主要流相关联的功能之外的其它类型的功能协同使用,反之亦然。
关于第一信息流,一个或多个环境感测机制214从环境212接收感知信息。环境212包括对环境212以其当前的实时状态进行表征的一个或多个特征216,诸如图1的真实世界102内的实体和事件。另外地或者替代地,环境212包括一个或多个归档特征218,其提供在先前的某一个或多个时间处从环境212提取的历史感知信息。
环境感知框架214能够包括用于感测环境212的任何方面的任何装备。环境感知框架214能够包括(但不限于):视频摄像机、静态图像相机、运动感测设备、麦克风、振动传感器、应变仪、触觉输入传感器、深度感测机制等等。深度感测机制能够使用用以捕获深度信息的任何技术,诸如结构光技术、渡越时间技术、立体成像技术等等。一种用于捕获并处理深度图像的商用系统是由华盛顿州雷蒙德的微软公司提供的KinectTM系统。
辨识系统220从原始感知信息提取各种较高层次的信息项目。这些信息项目在本文中被称为对象,并且能够采取任何形式。例如,考虑在其中一种感测机制提供原始视频信息的情形。辨识系统220能够确定视频信息是否描绘人类主体(humansubject)。如果是,辨识系统220能够根据视频信息生成骨架信息(skeletoninformation),其描述人类主体的实时姿势。代替原始视频信息,辨识系统220随后能够将骨架信息传递给请求此种信息的一个或多个应用。具体而言,辨识系统220包括一个或多个辨识器(例如,Rec-1、Rec-2、Rec-n)。每个辨识器生成对从环境212获得的感知信息的不同抽象表示。
纠错系统222减少辨识系统的输出中误报(falsepositive)的发生率。具体而言,纠错系统222可以包括一个或多个纠错机制(EC-1、EC-2、EC-n),每个纠错机制与特定的一个辨识器(或者多个辨识器)协同工作。例如,纠错机制EC-1通过减少由辨识器Rec-1生成的误报的发生率来与辨识器Rec-1协同工作。每个纠错机制能够以诸如通过修改由辨识器接收的输入信息、修改由辨识器生成的输出信息、和/或更改由辨识器执行的内部处理之类的任何方式,来与其对应的辨识器交互。
例如,考虑在图1中示出的字迹116。对于人类观测者而言显然地,此字迹116表示某类型的符号信息,诸如数学或化学方程式。然而,此字迹116还有点像人脸的特征。用于生成人脸辨识数据的辨识器当其不正确地将字迹116解释为人脸时可以被认为是生成了误报。这在安全立场上是成问题的,因为字迹116可能包含不打算发送给被授权接收人脸数据的任何应用的隐私信息。与此辨识器相关联的纠错机制将减少此种错误识别发生的可能性。在本申请说明书后续部分将详细给出纠错系统222能如何执行其服务。
感知管理模块224(此后仅被称为“管理模块”)对应用204和辨识系统220之间的交互进行管理。例如,管理模块224允许应用订阅由辨识系统220提供的特定对象。管理模块224随后当这些对象的新实例由辨识系统220提供时将这些对象转发给订阅应用。
现在参照上面识别的第二主要流,共享渲染器226维护共享状态信息。共享状态信息将由各种应用204生成的对象合并。共享渲染器226随后将输出呈现提供给一个或多个输出设备228,诸如显示机制、扬声器等。
共享渲染器226还实现各种服务。例如,共享渲染器提供一种机制,一种应用通过该机制能够与一个或多个其它应用共享其输出对象的各方面。此外,共享渲染器226可以实现物理引擎、注释引擎和/或遮挡引擎,所有这些引擎在第A.3子节中描述。
总的说来,现实感测框架202提供对上面说明的参照图1描述的挑战的解决方案。第一,现实感测框架202能够允许每个应用仅访问其为执行其功能所必需的信息,且仅此而已。例如,第一注释应用能够基于骨架信息执行其功能。其不需要原始视频或深度信息。因此,现实感测框架202能够防止第一注释应用接收原始感知信息;此约束转而防止第一注释应用接收由原始视频信息表现的敏感信息,诸如白板106上的字迹(114、116)以及第一个人的人脸108等等。第二,共享渲染器226提供一种用于对每个应用能够与其它应用(如果都被许可的话)共享对象信息所采取的方式进行管理的高效全局机制。
一般来说,现实感测框架202提供一种用于处理感知信息的技术,该感知信息能够被视为最少特权的(leastprivileged)(因为应用仅得到其需要的信息)且是细粒度的(因为应用能够挑选出并接收特定种类的信息项目,而不是在要么全有要么全无的基础上接收较多涵盖信息)。
共享渲染器226还提供全局机制,其用于管理对来自两个或更多个增强现实应用的输出信息进行的呈现。共享渲染器226由此能够减少在被写入到相同输出空间的应用之间的干扰。
此外,现实感测框架202在受信任的且应用无关(application-agnostic)的平台中提供上面的解决方案,而不依赖于个体增强现实应用以实现各自不同的自组织(adhoc)解决方案。此种特性可以促进在用户、软件开发者、设备制造者、以及公共成员(其可以感受到由其他人对增强现实应用的使用带来的影响)当中对增强现实技术的认可。
图3示出了一个系统302,其能够实现图2的现实感测框架202。系统302包括至少一个本地计算设备304、诸如台式个人计算机、膝上型计算机、机顶盒、游戏控制台、运动感测设备(诸如KinectTM设备)、智能手机、平板计算设备等等。在一种情形下,本地计算设备304实现图2的现实感测框架202的所有方面,包括管理模块224、辨识系统220以及共享渲染器226。
在另一实施方式中,本地计算设备304能够实现现实感测框架202的一些方面,而远程计算框架306可以实现现实感测框架202的其它方面。在一个实施方式中,远程计算框架306可以被实现成一个或多个远程服务器。本地计算设备304可以经由诸如局域网、广域网(例如,互联网)、或点对点链路等等、或其组合之类的任何通信管道308与远程计算框架306交互。
在功能的一种示例分配方案中,本地计算设备304能够实现一个或多个本地辨识器310,而远程计算框架306能够实现一个或多个远程辨识器。因此,此系统302中的辨识系统220被分布在至少两个不同的地点。具体而言,远程计算框架306能够实现辨识系统220中的运算最密集的辨识器,诸如用于执行复杂图像处理任务的那些辨识器(诸如,在一种情形下,人脸识别任务)。
在一个实施方式中,在本地计算设备304和远程计算框架306之间对识别任务的委派是静态的或者至少是缓慢变化的。在另一情形下,路由模块312能够至少基于计算工作负荷因素和/或(一个或多个)其它考量,在本地计算设备304以及远程计算框架306之间动态地委派任务。例如,路由模块312能够当工作负荷队列中未完成的工作的量超过规定的阈值时,自动地委派识别任务给远程计算框架306。另外地或者替代地,当为在本地计算设备304上完成识别任务所占用的时间多于规定的时间量时、和/或基于其它考量,路由模块312能够自动地将该任务从本地计算设备304移植到远程计算框架306。路由模块312可以由管理模块224和/或现实感测框架202的其它组件来实现。
远程辨识器可以同时向任意数量的本地计算设备提供服务。例如,远程辨识器可以向本地计算设备304以及本地计算设备314两者提供服务。以此方式,远程辨识器(通过在相同的物理平台上向两个或更多个单独任务提供服务)对虚拟机的操作进行仿真,而不必提供实际的虚拟机功能。
A.2管理模块和辨识系统
图4示出了参照图2介绍过的管理模块224的一个实施方式。如在第A.1子节中所提到的,管理模块224对应用204和辨识系统220之间的交互进行管理。随后的附图和相关说明提供关于辨识系统220的另外细节。
管理模块224包括执行各自不同的功能的多个组件。辨识器注册模块402注册由辨识系统220提供的相应的辨识器的名字。应用204基于那些被注册的名字引用辨识器。
辨识器配置模块404对每个辨识器的配置以及对将辨识器集合作为整体的配置进行管理。例如,在一种情形下,辨识器配置模块404能够发送创建命令给辨识系统220,其指令辨识系统创建特定种类的辨识器的实例。辨识器配置模块404发送毁弃(destroy)命令,以指令辨识系统220丢弃特定辨识器的先前实例并释放与那个辨识器相关联的任何感测机制资源。当创建后,每个辨识器可以被插入在数据流图内,该数据流图具有零个、一个或多个子节点,以及零个、一个或多个双亲(以及祖先)节点。
每个辨识器表现其作为事件生成的一个或多个对象。例如,由执行人脸识别的辨识器生成的事件可以包含数据结构,该数据结构包括对人脸进行描述的数据(但不包括对人脸的全RGB表示)。
许可管理模块406接收由应用请求访问由相应的辨识器提供的特定对象的请求。例如,在一个实施方式中,该应用能够在用户寻求在现实感测框架中安装该应用时做出此种请求。在另一情形下,该应用能够每当该应用寻求访问规定的对象时做出此请求。该应用也能够在其它时刻做出这种请求。
响应于这种请求,隐私可视化模块408给出对应用寻求从辨识系统220访问的对象的视觉表示。然后用户能够提供反馈信息,该信息授予或拒绝每项识别出的访问权。如果用户接受访问权,那么许可管理模块406在数据存贮(datastore)410中存储许可信息,其指示所识别的应用具有访问特定对象或对象集合的许可。
事件处理模块412发送特定的事件给有权接收这些事件的那些应用,如基于在数据存贮410中存储的许可信息所确定的。例如,在一个实施方式中,事件处理模块412能够执行查询循环,其中事件处理模块412顺序地呼叫(call)每个辨识器以确定其是否具有由所述应用寻求的任何新事件。如果发现了新事件,那么事件处理器模块412将该新事件发送给有权接收该新事件的应用。如在上面提及的事件其本身表现一个或多个对象。取代于以在上文描述的方式主动地轮询辨识器,辨识器能够独立地将其事件推送给事件处理模块412,然后事件处理模块412选择性地将所述事件转发给有权接收所述事件的应用。也能够使用其它的策略以从辨识系统该220收获事件。
为执行上述功能,应用204能够在事件处理模块412中注册回呼414。回呼(callback)用于向事件处理模块412通告特定的应用有权接收何种类型的事件以及将该事件发送到哪里。
事件处理模块412还能够在对辨识器进行呼叫时调用(invoke)特定的功能,例如通过调用由该辨识器提供的特定的应用程序接口(API)。例如,通过对比较功能进行呼叫,事件处理模块412能够指令辨识器以比较输入信息的两个实例,诸如由感测机制生成的感知信息的两个相继的实例。如果这些实例是相同的,那么辨识器能够被配置为避免对感知信息的较后实例执行其辨识任务(因为自接收到感知信息的上一实例起尚未发生任何变化)。在另一情形下,事件处理模块412能够指令辨识器以检查输入信息的实例的特定部分,诸如图像内的特定区域。
学习模块416基于与管理模块224和/或辨识系统220中的任何其它组件的性能有关的反馈信息,对这些组件的行为进行修改。例如,学习模块能够检测到特定的辨识器正在产生高误报率或者被不频繁地使用。基于此种信息,学习模块416能够决定将此辨识器替换成执行相同功能的另一辨识器。在另一例子中,学习模块416能够检查从辨识系统220接收的事件的量(volume)或分布。基于此信息,学习模块416可以决定改变事件处理模块412从辨识系统220收集事件的方式。
图5示出了辨识系统220的一种示例实施方式。如上所示,辨识系统220可以在诸如有向无环图(DAG)之类的数据流图502中组织辨识器(Rl、R2...Rn)。在该配置中,每个辨识器从一个或多个源接收输入信息,对输入信息进行处理以识别一个或多个对象在输入信息中的存在(或缺失),以及生成提供其结果的输出信息。如所描述地,辨识器可以将其输出信息表现成事件,该事件传达已检测出的(一个或多个)对象或者未能检测出这种对象。事件的接收方可以是一个或多个应用和/或数据流图502内的一个或多个其它辨识器。
图6示出了辨识系统的一个示例实例化602。假设现实感测框架202支持在上文描述的五个增强现实应用,包括第一注释应用604、第二注释应用606、虚拟高亮器应用608、电子邮件检索应用610以及社交网络应用612。此外,虽然图1未表示出,但是假设现实感测框架202支持白板美化应用614,该白板美化应用614例如通过将手写字符用正规字符替换,来将白板106上的手写字迹转换成其美化版本。所有这些应用都接收从由一个或多个感测机制生成的感知信息直接或间接导出的事件。这些感测机制包括一个或多个视频摄像机616、一个或多个深度捕获机制618、以及一个或多个其它捕获机制620。
辨识系统602包括被组织成数据流图的辨识器的集合。视频辨识器622可以被看成摄像机616的驱动者(driver)。其从视频摄像机616接收原始视频信息,并发起用于表现该视频信息的输出视频事件。深度数据辨识器624可以被视为深度捕获机制618的驱动者。其从深度数据捕获机制618接收深度图像,并发起用于表现该深度图像的输出深度事件。(深度图像识别景象中的点与参考点之间的距离。)
人脸检测辨识器626从视频辨识器622接收视频事件。人脸检测辨识器626对由该事件传达的视频信息进行分析,以确定其是否包含对至少一个人类主体的人脸的表示。如果包含,人脸检测辨识器626发起输出事件,该输出事件表现人脸数据,但无需表现对该人类主体的人脸的全RGB表示。
文本辨识器628接收视频事件,(例如,使用光字符辨识技术等)辨识在视频事件中包含的视频信息中的文本,以及生成表现文本数据的输出事件。
骨架辨识器630接收来自深度数据辨识器624的深度事件以及来自视频辨识器622的视频事件。基于此输入信息,骨架辨识器630生成人类主体的骨架化表示,如果该人类主体出现在景象内。在执行此任务时,骨架辨识器630能够将从景象提取的信息与已知的可能身体姿势的数据库进行比较。骨架辨识器630将其发现结果(findings)表现成骨架事件。人手辨识器632将骨架事件作为输入信息来接收。基于在该事件中表现的信息,人手辨识器632确定用户的人手的位置和朝向。人手辨识器632生成表现其发现结果的人手事件。
在与最少特权的且细粒度的访问的原则保持一致的基础上,不同的应用消费由各自不同的辨识器提供的不同的对象。第一注释应用604接收由骨架辨识器630提供的骨架事件。第二注释应用606接收由人脸检测辨识器626生成的人脸事件。虚拟高亮器应用608接收来自人手辨识器632的人手事件。电子邮件检索应用610接收由文本辨识器628生成的文本事件。而白板美化应用614接收由视频辨识器622生成的原始视频事件。社交网络应用612不直接从辨识系统602接收任何数据;而是,社交网络应用612接收由第二注释应用606共享的名字信息。虽然未示出,但是任一应用可以替代地接收来自两个或更多个辨识器的事件。
因此,能够看出,仅白板美化应用614从感测机制接收原始信息。此规定使得现实感测框架202能够对将隐私信息向实际需要此信息的应用的曝光进行限制。例如,第一注释应用604无法“看到”与白板106上的字迹(114、116)或者第一个人的人脸108相关联的视频信息;其仅接收到用于对第一个人的人手的位置和朝向进行指示的数据。
虽然未在图6中示出,在上面描述过的假定的第七增强现实应用将构建真实世界102中的对象的逼真三维版本。该应用能够接收来自模型构建辨识器(未示出)的信息。该辨识器转而可以接收由视频辨识器622生成的视频事件以及由深度数据辨识器624生成的深度事件。基于此深度信息,模型构建辨识器能够构建真实世界102中的对象的三维版本。模型构建辨识器随后能够将视频信息作为纹理粘贴到模型上。模型构建辨识器还能够可选地接收来自人脸检测辨识器626以及文本辨识器628的输入。基于这些输入,模型构建辨识器能够将人脸信息以及文本信息替换成清空的内容或者以其它方式遮挡的内容,由此有效地编校了视频信息中的敏感信息。
(图4的)辨识器配置模块404基于针对由活跃的应用所强加(impose)的对象的当前需求,动态地配置辨识系统602。因此,当应用变得活跃时或者应用变得不活跃时,辨识器配置模块404能够例如通过向数据流图添加节点或从数据流图删减节点,来动态地修改数据流图。为此,辨识器配置模块404查询用于对与每个辨识器相关联的输入源以及输出宿(outputsink)进行识别的存储的信息。
图7-9示出了可以由图4的隐私可视化模块(“可视化模块”)408生成的用户界面呈现。首先,图7示出了用户界面呈现702,可视化模块408可以当用户尝试安装新的应用时给出用户界面呈现702。用户界面呈现702邀请用户以审查正在被应用请求的访问权。也即,如果用户激活“查看”命令,那么可视化模块408将显示将在下面描述的在图9示出的用户界面呈现902。在替代的实施方式中,当新应用被安装或以其它方式被执行时,可视化模块408自动地显示在图9中示出的用户界面呈现902。
相比而言,图8示出了用户界面呈现802,其邀请用户来审查与已被安装的任何应用相关联的访问权,例如通过点击与此应用相关联的“查看许可”命令、或通过点击“查看所有许可”命令(以查看由所有已安装的应用或所有正在运行的应用授予的许可)。这些动作将再次使得可视化模块408显示在图9中示出的用户界面呈现902。
可视化模块408能够基于其它触发事件,在其它情况下调用在图9中示出的用户界面呈现902。例如,可视化模块408还能够例如在应用的显示呈现的边缘的工具面板(utilitypanel)或类似物中,显示在应用的运行期间示出的用户界面呈现902。
前进到图9,用户界面呈现902的第一部分904可以提供对每个应用请求访问(或已经访问的)的对象的视觉表示。例如,假定所讨论的应用请求对由骨架辨识器630提供的骨架事件以及由人脸检测辨识器626提供的人脸事件的访问。用户界面呈现902可以将第一显示区域906专用于提供对由骨架事件表现的骨架信息的可视化,以及将第二显示区域908用于示出对由人脸事件表现的人脸信息的可视化。替代地,第一部分904能够提供单个可视化,所述单个可视化示出两个或更多个应用的访问权,而不是针对相应的应用示出分开的区域。
用户界面呈现902能够可选地包括第二部分910,所述第二部分显示对由感测机制提取的原始数据的可视化。例如,用户界面呈现902能够包括第三区域912,所述第三区域示出由视频摄像机616等提供的原始视频数据。
用户界面呈现902的第一部分904还可以包括与每个对象请求相关联的命令。此命令邀请用户来选择性地许可所识别的应用对所识别的对象进行访问。例如,区域906包括“许可”命令914和“许可”命令916,“许可”命令914使得第一注释应用604能够接收骨架事件,“许可”命令916使得第二注释应用606能够接收人脸事件。替代地或者另外地,全局许可命令918可以允许用户授权所有应用接收它们的指定的请求的对象。
可视化模块408能够以任何方式给出在图9中示出的可视化。在一种情形下,可视化模块408凭借归档的打包图像和/或视频片段以示出与特定应用相关联的访问特权。这些打包例子可能与真实世界102内的正在当前时间被观测的实体没有关系。在另一情形下,可视化模块408能够显示由辨识器生成的关于在当前时间正由现实感测框架202捕获的无论什么景象的实际输出信息。但是在这后一个实施方式中,管理模块224能够当用户尚未许可递送时防止将事件实际递送给(一个或多个)应用。
在一个实施方式中,可视化模块408能够处理在上文描述的可视化任务的所有方面。在另一实施方式中,可视化模块408能够对由相应的辨识器提供的可视化功能进行呼叫。辨识器能够通过返回显示信息来对呼叫进行响应。可视化模块408随后在用户界面呈现902中给出转发的显示信息。替代地,辨识器能够将信息直接提供给用户界面呈现902,无需可视化模块408的协调。其它的实施方式也是可行的。
许可管理模块406基于用户经由用户界面呈现902做出的选择来存储许可信息。事件处理模块412随后参考该许可信息以决定其被许可发送给在特定时间运行的应用204的事件。
图10示出了一个示例纠错机制1002,其与特定的辨识器1004协同工作。在此配置中,纠错机制1002接收来自一个或多个源的输入信息,诸如来自一个或多个源辨识器的事件。纠错机制1002以规定的方式对输入信息进行处理以提供输出结果。辨识器1004使用输出结果来减少由辨识器1004生成的输出信息中的误报的发生率。
更一般地说,图10示出了辨识器1004将由纠错机制1002生成的输出结果作为该辨识器的输入之一来接收。但在其它情形下,纠错机制1002能够对由辨识器1004生成的输出事件采取行动、或者纠错机制1002能够对由辨识器1004执行的内部处理发挥一定作用、或者发生上述情况的任意组合。通常,纠错机制1002和辨识器1004可以以任何方式协同工作,以减少由辨识器1004生成的误报的发生率。
考虑在图10中示出的功能的两个特定且非限制的实例化。在第一实施方式中,纠错机制1002接收来自诸如图6的视频辨识器622之类的一个或多个源辨识器的视频/图像输入信息。纠错机制1002随后使用任何类型的模糊式过滤器(诸如箱式过滤器)来将输入信息模糊成所生成的经模糊的输出信息。辨识器1004将经模糊的输出信息作为输入来接收,并对此经模糊的信息进行操作以生成其输出事件。通过对辨识器1004的输入信息进行模糊,辨识器1004较少可能地将输入信息内的实体不正确地识别为指定的对象(诸如人脸),例如,因为模糊可以减少被分析的实体与被寻求的感兴趣对象(诸如人脸)之间的相似度。
在第二实施方式中,纠错机制1002将图像信息的当前帧与图像信息的一个或多个先前帧进行比较。或者,纠错机制1002能够将图像信息的当前帧中的一个区域与图像信息的一个或多个先前帧的对应区域进行比较。例如,纠错机制1002能够形成当前帧与紧邻先前帧(immediatelypreviousframe)中的对应像素之间的差异,对这些差异求和,且然后将作为结果的和与阈值进行比较以确定这两个帧是基本相同的还是不同的。在另一实施方式中,纠错机制1002能够形成反映当前帧与两个或更多个先前帧之间的差异的量度,例如通过:形成当前帧与每个先前帧之间的成对比较以生成个体差异量度、且然后生成个体差异量度的平均值。然后辨识器1004对当前帧进行处理以确定其是否包含指定的对象,诸如人脸数据等。然而,辨识器1004能够在如下条件下拒绝当前帧包含指定的对象这一结论:(1)在(一个或多个)先前帧中没有检测到对象;(2)当前帧和(一个或多个)先前帧是基本相同的(基于纠错机制1002的输出结果)。更一般地说,上文描述的操作可以以任何方式分布在纠错机制1002与辨识器1004之间。
图11示出了另一纠错机制1102,其与人脸检测辨识器1104联合工作。纠错机制1102接收来自至少一个视频辨识器1106的视频信息以及来自平面检测辨识器1108的深度信息。关于识别的参考点(例如,视频摄像机的位置),纠错机制1102能够使用深度信息来清空或以其它方式遮挡在景象中的识别的平面之前或在景象中的所识别的平面之后创建的所有视频信息。人脸检测辨识器1104将此经编校的图像信息作为输入来接受。辨识器1104将被阻止在所识别的平面之前或之后识别人脸内容,这是因为人脸内容已被从这些区域移除。此规定例如能够帮助移除可能在由视频摄像机提供的视频信息中不经意地被捕获的旁观者的人脸。
图11示出的纠错机制1102可以替代地对应于人脸检测辨识器1104自身内的组件。在此设置中,如果在深度图像中的指定的平面之前或之后创建视频信息,那么纠错机制1102拒绝该视频信息包含人脸这一指示。广义地说,纠错机制1102和/或辨识器1104能够通过如下方式运作:使用由第一源辨识器(例如,平面检测辨识器1108)生成的输出信息来在由第二源辨识器(例如,视频辨识器1106)生成的输出信息内指定一个区域,或者以其它方式为对由第二源辨识器提供的输出信息的分析进行认证(qualify)。
在图11的功能的另一应用中,纠错机制1102能够接收来自人脸检测器的信息,该信息指示人脸在景象中的存在(或缺失)。纠错机制1102随后能够清空视频信息中的与人脸不对应的全部部分。人眼辨识器接收由纠错机制1102生成的经编校的输出信息,并随后对此信息进行分析以确定人眼在景象中的位置和朝向。借助于被供给此辨识器的输入信息仅包含人脸相关的视频信息这一事实,该辨识器能够降低其将把景象中的事实上不是人眼的实体错误地解释成人眼的可能性。
通常,任何纠错机制能够被实现成对于其被耦合到的辨识器的操作独立且不可知(agnostic)的组件。并且如上所解释地,纠错机制能够以诸如如下各种方式被耦合到其辨识器:通过调节被馈给辨识器的输入、修改由辨识器提供的输出、和/或影响在辨识器内执行的内部处理。借助于对于其辨识器的独立性,纠错机制能够被耦合到特定类别的任何辨识器,而不考虑设计辨识器的特定方式。在另一实施方式中,定制的(特定于辨识器的)纠错机制能够被设计成关于一个或多个特定辨识器而使用。
A.3.共享渲染器
在探究渲染器226的示例细节前,考虑在图12中描绘的具体示例场景,在该场景中,一个应用可以经由共享渲染器226与另一应用共享信息。第一应用对应于虚拟高亮器应用608,所述虚拟高亮器应用确定人手的位置并随后在输出呈现1202上在此人的一只手附近显示诸如虚拟球130之类的虚拟对象。第二应用对应于第一注释应用604,所述第一注释应用基于由骨架辨识器630提供的骨架事件来显示标签。
除了对感测的景象的部分进行注释外,第一注释应用604还能够接收来自虚拟高亮器应用608的信息,其描述虚拟球130的各种特性,诸如虚拟球130的位置、色彩、形状等等。第一注释应用604随后能够在输出呈现1202上给出标签1204,其对虚拟球130进行描述,如在示意性的描述中的“黄色球”。为允许此信息共享发生,虚拟高亮器应用608已在初始操作中授予第一注释应用604读取关于虚拟球130的信息的权限。
图13示出了经由共享渲染器226进行的应用间共享的另一例子。此处,第一应用是美化应用614,所述美化应用可操作以读取白板106上的字迹114,对其进行美化,并在输出呈现1304上显示经美化的对应的字迹1302。第二应用是测量应用1306,所述测量应用测量对象的尺度或者测量在输出呈现1304中的两个已识别的对象之间的距离。该距离可以与真实世界1102内的实际距离相关。
例如,在图13的场景中,用户已指令测量应用1306对经美化的字迹1302的水平跨距进行测量。作为响应,测量应用1306能够提供可视化标尺指示符1308以指示正被测量的经美化的字迹1302的水平跨距,连同用于指示测量结果(例如,此情形下的“3英尺”)的输出标签1310。为了执行上述功能,在初始操作中,美化应用614授权测量应用1306读取与由美化应用614生成并显示的对象相关联的几何数据的权利。在另一情形下,当由两个相应的应用分别地授予测量应用访问其几何数据的权利时,测量应用1306能够确定由这两个应用产生的两个对象之间的距离。
此外,第一应用能够给予第二应用向第一应用写入与识别的对象特性有关的信息的权限。例如,在图12中示出的由第一注释应用604生成的标签1204具有位置。第一注释应用能够授权虚拟高亮器应用608向第一注释应用604写入位置信息的权限,该位置信息涉及虚拟球130的位置,第一注释应用604随后使用该位置信息定义标签1204的位置。
图14示出了共享渲染器226的一个示例实施方式,其可以递送图12和13的体验。共享渲染器226包括用于执行各自不同的功能的各种组件。例如,共享渲染器226包括用于与一个或多个应用204交互的应用交互模块1402。例如,应用交互模块1402接收与由每个应用创建的(并在将来毁弃的)对象有关的信息以及这些对象的特性。
应用交互模块1402还可以接收来自应用204的许可信息。许可信息的实例建立一组零个、一个或多个关于特定对象特性的许可。被称为许可设定或控制应用的应用可以发起许可信息的这种实例,如果该应用“拥有”该特性涉及的对象、或者如果该应用以其它方式具有关于该对象特性的针对所考虑的访问模式(读取或写入)的权限的话。许可信息对有权接收或提供与特定的对象特性有关的信息的其它应用进行识别。提供与特定的对象特性有关的信息的应用被称为共享方应用。
例如,相对于图12,由虚拟高亮器应用608控制的对象特性对应于虚拟球130的位置。虚拟高亮器应用608能够设置指示了“第一注释应用604被许可读取虚拟球130的位置”的许可信息。在另一情形下,第一注释应用604能够设置用于给虚拟高亮器应用608授权以将与虚拟球130的位置对应的位置数据写入第一注释应用604的许可信息,第一注释应用604后续使用该位置数据定义标签1204的位置。在两种情形下,虚拟高亮器应用608都是共享方应用。
应用交互模块1402在数据存贮中存储与对象、对象特性以及许可信息有关的所有信息。所述信息共同地组成共享状态信息。也即,共享状态信息反映共享输出空间,所有应用204对之做贡献。共享输出空间可以以任何数量的维度来表示这些对象,诸如两个维度、三个维度等等。例如,现实感测框架202能够借助于其对由一个或多个深度捕获机制提供的深度信息的接收及处理,来创建具有三个维度的对象。
应用交互模块1402可以以下列示例方式对应用间共享进行管理。第一,应用交互模块1402检测对共享状态信息中的任何对象特性造成影响的更新是否已经发生。例如,应用可以通过创建新的对象特性、对象特性的新值、许可信息的新实例等来提供更新。或者,共享渲染器226的内部引擎可以提供更新,例如当物理引擎移动对象时。然后应用交互模块1402能够确定此改变是否被许可。如果是,应用交互模块1402能够将此改变交托给共享状态信息。应用交互模块1402能够随后查询与所考虑的对象特性相关联的许可信息,以确定有权接收与更新有关的信息的应用。应用交互模块1402随后将发送与更新有关的信息给那些识别的应用。
输出渲染器1406基于数据存贮1404中的共享状态信息,将输出呈现提供给一个或多个输出设备228。例如,输出渲染器可以分别生成在图12和13中示出的可视化输出呈现(1202、1304)的类型。
一个或多个引擎还可以基于来自应用204的指令和/或其它考量,对共享状态信息中的对象进行操控。例如,物理引擎1408能够动态地操控共享状态信息中的任何对象,以对现实生活中的运动动态和/或现实生活中的其它现象进行仿真。替代地或者另外地,物理引擎1408能够操控依据想象的动态的任何对象,该想象的动态不必与真实世界交互相关。任何物理引擎都能够被用以执行此任务,诸如但不限于由加利福尼亚州圣弗朗西斯科的UnityTechnologies生产的Unity游戏引擎。
具体而言,物理引擎1408能够接收来自应用的高层次指令,高层次指令定义运动的类型,运动的类型被传递给由应用控制的特定对象。物理引擎1408随后能够使用仿真原语的数据库对运动进行仿真。然而值得注意的是,物理引擎1408操作以对由多个应用(而不必是单个应用)产生的输出空间内的对象的运动进行仿真。因此,物理引擎1408被委以如下职责:诸如通过对由一个应用产生的对象与由另一个应用产生的对象的冲突进行管理,来对一个应用的对象可能干扰另一个应用的对象的方式进行管理。
注释引擎1410管理对由诸如在上文描述的第一注释应用604和第二注释应用606之类的多个应用产生的注释所进行的呈现。注释引擎1410能够使用各种原理和算法来执行此任务。例如,注释引擎1410能够在其在输出呈现内修改的对象的规定距离内显示每个标签。此外,注释引擎1410能够通过将每个应用限制成仅显示规定数量的注释来减少杂乱。注释引擎1410还能够应用其它算法,诸如将在输出呈现中描绘的景象的性质考虑在内的各种杂乱抑制策略。一种这样的杂乱抑制策略能够尝试在最大化标签之间的受制于其它约束的空间间隔。
遮挡引擎1412提供各种服务以应对如下情况:在输出呈现中一个对象与另一个对象交叠,诸如两个标签、两个虚拟对象、一个标签和一个虚拟对象等。第一服务可操作以通过移除一个或多个对象使得其不再交叠,来防止或最小化遮挡的发生。第二服务能够提供可视化指示符,所述可视化指示符向用户提醒两个或更多个对象发生交叠。第三服务可以允许用户手动地改变一个或多个对象的位置和/或朝向,以例如展现一对象中的先前被另一对象遮挡的部分。其它的遮挡相关的服务也是可行的。
要澄清一点,在一些情形下,上文描述的引擎(1408、1410、1412)能够修改组成共享状态信息的对象的位置或者其它特性。但是共享状态信息还包括与在真实世界102内出现的实体和事件直接相关的对象的子集。例如,一个这种对象可以对应于真人的人脸编校版本或者真实白板的字迹编校版本。在一个实施方式中,各个引擎(1408、1410、1412)可能不被许可对直接映射到真实世界实体的对象的位置和其它特性进行修改。在其它的实施方式中,此限制可以按照各种程度得以放宽或者移除,只要引擎(1408、1410、1412)能够对表示现实生活中的实体的对象进行修改的话(这可能不适用于所有实施方式)。
在一个实施方式中,应用204例如基于用于实现应用204的代码中的编程式定义,以每个对象特性为基础来指定许可信息。应用204随后发送将许可信息识别的信息给应用交互模块1402。在另一情形下,访问控制模块1414实现一项或多项技术,终端用户可以通过该一项或多项技术以每个对象特性为基础和/或以任何其它基础来手动地指定许可信息。在一种情形下,用户可以通过对在用户界面呈现内出现的小工具1416进行操控来达成此结果。接下来的说明书将提供此种操作模式的例子。
学习模块1418能够接收与共享渲染器226的性能的任何方面有关的反馈信息。基于此种信息,学习模块1418能够修改共享渲染器226的任何组件的行为。例如,任何实体能够提供与共享渲染器226的任何组件是否正执行令人满意的服务有关的反馈信息。这种反馈提供实体能够包括终端用户、应用、共享渲染器引擎等中的任一者。基于此种输入,学习模块1418能够修改共享渲染器226的一个或多个组件的操作,以改进这些组件的性能为目标。例如,用户可以指示注释引擎1410正在产生输出呈现,该输出呈现提供了太多由特定应用产生的标签。作为响应,学习模块1418能够修改注释引擎1410,以减少在输出呈现内给所识别的应用分配的注释的数量。
图15示出了可以组成共享状态信息的特征的分类法。在最高层次上,共享状态信息包括由多个应用提供的对象的集合。一个这样的对象是对象1502。每个对象具有零个、一个或多个特性1504。这些特性1504中的一个或多个可以对应于系统特性1506,以及这些特性1504中的一个或多个可以对应于扩展特性1508。系统特性是由共享渲染器226定义的特性,其独立于由应用204提供的特性定义。扩展特性是由至少一个应用定义的特定于应用的特性,但不是由共享渲染器226独立地定义的。共享状态信息还包括针对每个对象特性的许可信息1510。在一种情形下,特性是系统特性或扩展特性,没有其它种类的特性;在另一情形下,对象能够具有一个或多个其它种类的特性。
图16示出了针对可以存储在数据存贮1404中的对象特性的集合的许可信息。特性信息的每个实例识别对象、该对象的特性、将关于该对象特性的信息进行共享的应用、可以与之共享该信息的应用以及由许可提供的共享模式(例如,读取或写入等)。例如,许可信息的第一实例对应于关于虚拟球130的几何信息。许可信息指示虚拟球130与其几何特性是由应用A(例如,虚拟高亮器应用608)创建的,并指示关于此特性的信息能够在读取交互模式(readmodeofinteraction)下与应用B和C共享。
图17示出了用户界面呈现1702,访问控制模块1414通过用户界面呈现1702能够响应于与管理员、终端用户或其他人的交互而创建许可信息(代替或者除去接收来自应用204的许可信息)。如所描述地,用户界面呈现1702识别一系列对象特性。用户界面呈现1702邀请用户做出针对每个对象特性的选择,该选择针对指定的交互模式识别了“什么应用有权接收关于该对象特性的信息”。
图18示出了由访问控制模块1414提供的另一用户界面呈现1802,用户通过用户界面呈现1802能够手动地指定许可信息。在这里,用户界面呈现1802包括与不同的正在运行的应用相关联的显示项目,诸如白板美化应用项目1804、测量应用项目1806以及社交网络应用项目1808。每个项目显示零个、一个或多个小工具(gadget),所述小工具识别各种对象特性,连同对一个或多个模式的指定。例如,白板美化应用项目1804包括与几何数据相关联的第一小工具1810、与原始RGB数据相关联的第二小工具1812以及与音频数据相关联的第三小工具1814。具体而言,这些小工具描述了由白板美化应用614创建的任何对象的相应特性。社交网络应用项目1808包括与联系人数据相关联的小工具1816。
在操作中,用户能够选择与任何显示项目相关联的任何小工具,并例如使用鼠标设备、触摸手势或者自由空间手势等来将该小工具拖拽到另一显示项目。此种动作具有将访问权授予接收方应用的效果。例如,在图18的情形下,用户已经将白板美化应用项目1804的几何数据小工具1810拖拽到测量应用项目1806。特别地,用户已经选择了与几何数据小工具1810相关联的读取图标。此动作具有创建许可信息的效果,该许可信息使得测量应用能够读取针对由白板美化应用614创建的对象的几何数据。如果用户相对于写入图标执行了相同的运动,那么许可信息将给予测量应用将几何数据写入白板美化应用614的权利。
图19示出了用户界面呈现1802在图18示出的用户交互后的外观。测量应用项目1806现在包括小工具1902,所述小工具指示其已经被给予读取与由白板美化应用614创建的对象相关联的几何数据的权利。
上文描述的用户界面功能是通过例子而非限制地提出的。其它用户界面技术能够用以达成在上文描述的相同的结果,或者达成其它许可授予效果。例如,在图18和19中示出的用户界面呈现还能够包括小工具条(barofgadgets)1818。用户能够将这些小工具中的任何小工具拖拽到特定应用的显示项目。这样做会给予对应的应用相对于所有其它应用而不是特定应用(如在上面的例子中)的特定权利。例如,用户能够将几何数据小工具1820拖拽到测量应用项目1806,这给予测量应用读取由任何其它应用(不仅仅白板美化应用614)创建的任何对象的几何数据的权利。
在另一情形下,用户界面呈现还能够给出与由相应的应用创建的特定对象相关联的项目、连同与每个对象相关联的一组小工具。每个小工具对应于与所考虑的对象相关联的特定特性。然后用户能够执行上文描述的拖拽与释放操作,来以每个对象为基础(perobjectbasis)转移访问权。例如,用户能够将与特定的对象相关联的小工具拖拽到应用项目,这指示接收方应用现在具有相对于特定对象以及特定特性的访问权。或者,用户能够将与第一对象(其与第一应用相关联)相关联的小工具拖拽到第二对象(其与第二应用相关联)。此动作传达了对象到对象的访问权。例如,参照图12的场景,用户能够将与虚拟球130相关联的位置小工具拖拽到与标签1204相关联的标签对象,以指示第二应用仅能够使用该球的位置来定义标签1204的位置。
任何应用都可以创建并注册一个或多个小工具,以便存储在访问控制模块1414中。例如,白板美化应用614能够注册访问控制模块1414中的几何数据小工具1810。
在另一情形下,在图18和19示出的拖拽与释放操作的可视化语义能够按照下列方式颠倒。在图18的情形下,例如,测量应用项目1806能够具有与几何数据相关联、并且针对此种特性指定读取操作模式的小工具。用户能够将此小工具拖拽到白板美化应用项目1804。这给予测量应用如之前相同的权利,也即,读取针对由白板美化应用产生的任何对象的几何数据的能力。或者,用户能够将几何数据小工具拖拽到由白板美化应用产生的专用对象,诸如白板对象。这给予测量应用选择性地读取涉及白板对象的而不是由白板美化应用产生的其它对象的几何数据的权利。在变体中,测量应用能够注册几何数据小工具,其于是出现在带有标记的小工具条1818中,该标记指示该几何数据小工具涉及测量应用。用户能够以在上文描述的相同方式使用此几何小工具来执行拖拽与释放操作,以生成在上文描述的相同效果。
总之,在上面替代的语义中,寻求许可的应用是拖拽与释放操作的源,而不是拖拽与释放操作的目标。也即,该替代的语义运用请求方隐喻(requestormetaphor),在该请求方隐喻中,应用指定其请求的特权,这与授予方隐喻(grantormetaphor)相反,在授予方隐喻中,特权赋予应用给另一应用授予特权。
图20示出了示例可视化指示符2002,遮挡引擎1412可以给出该可视化指示符2002以传达两个或更多个对象2004(诸如两个或更多个注释或两个或更多个虚拟对象等之类)交叠。此指示符2002的外观和行为能够以任何方式变化。例如,可视化指示符可以替代地对应于被施加给对象2004的高亮效果。
图21示出了可以由遮挡引擎1412提供的操控机制的操作,其允许用户手动地改变两个或更多个交叠对象2102的位置和/或朝向。在此情形下,操控机制允许用户选择交叠对象,并随后将其关于轴线(例如,在箭头2104的方向上)旋转。此种运动展现了对交叠对象的不同视角,潜在地展现了先前隐藏的信息。操控机制的行为能够以任何方式变化。
B.示例处理过程
图22-26示出了用于对图2的现实感测框架202的操作的一种方式进行解释的过程。由于现实感测框架202的操作的基础原理已经在第A节中描述,所以在此节中将以概要的形式介绍特定操作。
从图22开始,此图示出了用于对图4的管理模块224的操作的一种方式进行表示的过程2202。在框2204中,管理模块224检测到触发了对应用的访问权进行的检查的事件。此事件可以对应于要安装该应用或要以其它方式运行该应用的请求、或者要审查已安装的应用的访问权的请求。在框2206中,管理模块224显示对将被或已被赋予应用的访问权的可视化表示。图9示出了对访问权的一个这种可视化表示。在框2208中,管理模块224接收来自用户的反馈信息,其指示是否许可应用访问所识别的对象。此种反馈能够以每个对象为基础来提供,或者针对与应用相关联的所有对象全局地提供。在框2210中,管理模块224存储反映在框2208中的用户选择的许可信息。虽然框2204-2210中的操作已经相对于正在探究的单个应用进行了描述,但是相同的操作能够被执行以定义针对在相同时间运作的两个或更多个应用的许可信息。在该情形下,管理模块224能够提供针对相应的应用的分开的可视化或者单个的成整体的可视化。
在框2212中,管理模块224从辨识系统220接收涉及特定对象的事件。在框2214中,管理模块224查阅(在框2204-2210中创建的)许可信息以确定被许可接收该事件的一个或多个应用。在框2216中,管理模块224将该事件发送给有权接收该事件的一个或多个应用,如在框2214中所确定地。
图23示出了过程2302,其提供辨识系统220的操作的一种方式的概况。在框2304中,辨识系统220接收来自一个或多个感测机制214的原始感知信息。在框2306中,辨识系统220使用一个或多个辨识器对该感知信息进行处理,以生成一个或多个对象。每个辨识器对其已作为事件来识别的对象进行表现。例如,人脸检测辨识器626生成包括数据结构的事件,该数据结构包含对人类主体的人脸进行描述的数据。在框2308中,辨识系统220以拉和/或推为基础将其事件转发给管理模块224,管理模块224随后将选择的事件传递给经授权的应用204。
图24示出了过程2402,其概述了用于针对相应的对象特性来设置许可信息的两种方法。许可信息对关于对象特性的信息的应用间共享进行控制。在框2404中,共享渲染器226接收对特定的对象特性进行识别的信息。在框2406中,共享渲染器226在共享状态信息中注册该对象特性。在框2408中,共享渲染器226接收与所识别的特性相关联的许可信息。
具体而言,根据选项A,在框2410中,共享渲染器226能够接收来自被授权设置许可信息的应用的许可信息。例如,应用能够在其代码中程式化地指定许可信息,并随后将该许可信息通信给共享渲染器226。
根据选项B,在框2412中,共享渲染器226能够显示具有与对象特性相关联的小工具的用户界面呈现。在框2414中,共享渲染器226能够接收对于用户已经同小工具交互(诸如通过将小工具拖拽到与特定的应用或对象相关联的区域)的指示。在框2416中,共享渲染器226能够基于在框2414中识别的交互来创建许可信息。替代地,共享渲染器226能够接收作为用户与在图17中示出的用户界面呈现1702或某个其它用户控制面板发生交互的结果的许可信息。
图25示出了过程2502,其描述了共享渲染器226能够促进对关于对象特性的信息的共享的一种方式。在框2504中,共享渲染器226维护在数据存贮1404中的共享状态信息。在框2506中,共享渲染器226识别对特定的对象特性造成影响的更新。该更新可以源自由共享渲染器226提供的内部引擎或应用。在框2508中,共享渲染器226可选地确定是否允许该更新。例如,如果更新产生的结果对共享状态信息中的某个其它对象或条件冲突,那么该更新可能不被允许。在框2510中,如果该更新被允许,那么共享渲染器226更新共享状态信息。在框2512中,共享渲染器226基于同正被更新的对象特性相关联的特定许可信息,来识别有权接收关于该更新的信息的一个或多个应用(如果有的话)。在框2514中,共享渲染器226将关于该更新的信息发送给有权的应用(entitledapplications)。
图26示出了过程2602,其示出了藉以能够基于源自共享渲染器226的不同组件的各种事件来更新共享状态信息中的对象的一种方式。在框2604中,应用交互模块1402基于其与应用204的交互来更新共享状态信息。在框2606中,物理引擎1408执行动作并在此基础上更新共享状态信息。在框2608中,注释引擎1410执行动作并在此基础上更新共享状态信息。在框2610中,遮挡引擎1412执行动作并在此基础上更新共享状态信息。在框2612中,输出渲染器1406基于共享状态信息给出输出呈现,并将输出呈现提供给一个或多个输出设备228。具体而言,框2606-2612传达了共享渲染器226执行从高层次角度而言由应用204控制的但独立于应用204以其它方式进行的任务。
C.有代表性的计算功能
图27示出了计算功能2702,其能够被用以实现图2的现实感测框架202的任何方面。例如,在图27中示出的计算功能2702的类型能够被用以实现图3的本地计算设备304和/或与远程计算框架306相关联的计算机服务器。在所有情形下,计算功能2702表示一个或多个物理且有形的处理机制。
计算功能2702能够包括一个或多个处理设备2704,诸如一个或多个中央处理单元(CPU)和/或一个或多个图形处理单元(GPU)等等。
计算功能2702还能够包括任何存储资源2706用于存储任何种类的信息,诸如代码、设定、数据等等。非限制性地,例如,存储资源2706可以包括(一个或多个)任何类型的RAM、(一个或多个)任何类型的ROM、闪存设备、硬盘、光盘等等中的任一者。具体而言,任何存储资源能够使用用于存储信息的任何技术。此外,任何存储资源可以提供对信息的易失性保留或非易失性保留。此外,任何存储资源可以表示计算功能2702的固定组件或移动组件。当处理设备2704实施存储在任何存储资源或存储资源的组合中的指令时,计算功能2702可以执行在上文描述的任何功能。
关于术语表达,任何存储资源2706或者存储资源2706的任何组合可以被视作计算机可读介质。在许多情形下,计算机可读介质表示某种形式的物理且有形实体。术语“计算机可读介质”还囊括传播信号,例如,经由物理管道和/或空中或其它无线介质等发送或接收的信号。然而,专用术语“计算机可读存储介质”和“计算机可读介质设备”明确地不包括传播信号本身,而是包括所有任何其它形式的计算机可读介质。
计算功能2702还包括一个或多个驱动器机制2708用于与诸如硬盘驱动器机制、光盘驱动器机制等之类的任何存储资源交互。
计算功能2702还包括输入/输出模块2710用于(经由输入设备2712)接收各种输入以及用于(经由输出设备2714)提供各种输出。示例输入设备包括键盘设备、鼠标输入设备、触屏输入设备、数字化平板、一个或多个摄像机、语音辨识机制、任何运动检测机制(例如,加速计、陀螺仪等)等等。一种特定的输出机制可以包括呈现设备2716以及相关联的图形用户界面(GUI)2718。其它输出设备包括打印机、模型生成机制、触觉输出机制、归档机制(用于存储输出信息)等等。计算功能2702还可以包括一个或多个网络接口2720用于经由一个或多个通信管道2722与其它设备交换数据。一个或多个通信总线2724将上文描述的组件通信地耦合在一起。
(一个或多个)通信管道2722能够例如通过局域网、广域网(例如,互联网)、点对点连接等、或上述的任何组合,来以任何方式实现。(一个或多个)通信管道2722能够包括由任何协议或协议组合管控的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
替代地或者另外地,在前面章节中描述的任何功能能够至少部分地通过一个或多个硬件逻辑组件来执行。例如但不限于,计算功能2702能够使用以下的一个或多个来实现:现场可编程阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
最后,本说明书已围绕示例挑战或问题描述了各种概念。此种方式的解释不代表其他人已经以本文指定的方式理解和/或说明了该挑战或问题。此外,所要求保护的主题不限于用于解决所指出的任何或全部挑战/问题。
具体而言,虽然已经用特定于结构特征和/或方法动作的语言对本发明主题进行了描述,但是将会理解,在随附的权利要求书中限定的本发明主题不必限于在本文描述的特定的特征或动作。相反地,在上文描述的特定的特征或动作作为用于实现权利要求的例示形式来公开。

Claims (10)

1.一种用于实现共享渲染器的计算机实现的系统,包括:
应用交互模块,其被配置为与两个或更多个应用交互,每个应用提供增强现实体验;以及
数据存贮,用于存储共享状态信息,所述共享状态信息包括:
由所述两个或更多个应用创建的对象;
特性信息,其对与每个对象相关联的零个、一个或多个对象特性进行识别;以及
许可信息,其对与每个对象特性相关联的一组许可进行识别;
所述应用交互模块被配置为:
对影响特定的对象特性的更新进行识别;
基于所述更新来修改所述共享状态信息;
基于与所述特定的对象特性相关联的许可信息,对有权接收关于所述特定的对象特性的信息的零个、一个或多个应用进行识别;以及
将关于所述特定的对象特性的信息发送给所述零个、一个或多个应用。
2.如权利要求1所述的计算机实现的系统,其中,在所述数据存贮中存储的许可信息的每个实例指示:
共享方应用,其正在共享识别的对象特性;
一个或多个其它接收方应用,如果存在的话,所述识别的对象特性是能够与所述一个或多个其它接收方应用共享的;以及
正在被许可的至少一个共享模式。
3.如权利要求1所述的计算机实现的系统,其中,在所述数据存贮中存储的所述许可信息中的至少一些是由所述两个或更多个应用来程式化指定的。
4.如权利要求1所述的计算机实现的系统,还包括:访问控制机制,所述访问控制机制被配置为基于来自用户的输入来提供在所述数据存贮中存储的所述许可信息中的至少一些。
5.如权利要求4所述的计算机实现的系统,其中,所述访问控制机制被配置为:
给出用户界面呈现,其提供与识别的对象特性相关联的小工具;
接收对于所述用户已经执行了针对所述小工具的规定的手势的指示;以及
创建与所述识别的对象特性相关联的许可信息,其指示至少一个应用具有相对于所述识别的对象特性的访问权。
6.如权利要求1所述的计算机实现的系统,还包括:物理引擎,其被配置为基于来自至少一个应用的指令来对在所述共享状态信息中表示的至少一个对象的运动进行仿真。
7.如权利要求1所述的计算机实现的系统,还包括:注释引擎,其被配置为管理对由多个应用产生的注释进行的呈现。
8.如权利要求1所述的计算机实现的系统,还包括:遮挡引擎,其被配置为当由两个或更多个应用产生的两个或更多个对象在输出呈现内交叠时对所述输出呈现的行为进行管理。
9.一种用于存储计算机可读指令的计算机可读存储介质,所述计算机可读指令当被一个或多个处理设备执行时提供共享渲染器,所述计算机可读指令包括:
应用交互模块,其被配置为与两个或更多个应用交互,每个应用提供增强现实体验;以及
数据存贮,用于存储共享状态信息,所述共享状态信息包括:
由所述两个或更多个应用创建的对象;以及
特性信息,其对与每个对象相关联的零个、一个或多个对象特性进行识别;
输出渲染器,用于基于所述共享状态信息来给输出设备提供输出呈现;
物理引擎,其被配置为基于来自至少一个应用的指令来对在所述共享状态信息中表示的至少一个对象的运动进行仿真;
注释引擎,其被配置为管理对由多个应用产生的注释进行的呈现;以及
遮挡引擎,其被配置为当由两个或更多个应用产生的两个或更多个对象在所述输出呈现内交叠时对所述输出呈现的行为进行管理。
10.一种由一个或多个计算机实现的方法,包括:
维护数据存贮中的共享状态信息,多个增强现实应用对所述共享状态信息做贡献;
所述共享状态信息包含许可信息,所述许可信息中的许可信息的每个实例指定:
共享方应用,其正在共享识别的对象特性;
一个或多个其它应用,如果存在的话,所述识别的对象特性是能够与所述一个或多个其它应用共享的;以及
正在被许可的至少一个共享模式;
对影响特定的对象特性的更新进行识别;
基于与所述特定的对象特性相关联的许可信息,对有权接收关于所述特定的对象特性的信息的零个、一个或多个应用进行识别;以及
将关于所述特定的对象特性的信息发送给所述零个、一个或多个应用。
CN201480049021.0A 2013-09-06 2014-09-03 对由应用产生的共享状态信息进行管理 Active CN105579946B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/020,723 2013-09-06
US14/020,723 US9424239B2 (en) 2013-09-06 2013-09-06 Managing shared state information produced by applications
PCT/US2014/053769 WO2015034852A1 (en) 2013-09-06 2014-09-03 Managing shared state information produced by applications

Publications (2)

Publication Number Publication Date
CN105579946A true CN105579946A (zh) 2016-05-11
CN105579946B CN105579946B (zh) 2019-03-15

Family

ID=51585183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480049021.0A Active CN105579946B (zh) 2013-09-06 2014-09-03 对由应用产生的共享状态信息进行管理

Country Status (4)

Country Link
US (1) US9424239B2 (zh)
EP (1) EP3042278B1 (zh)
CN (1) CN105579946B (zh)
WO (1) WO2015034852A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453976A (zh) * 2016-05-31 2017-12-08 宇龙计算机通信科技(深圳)有限公司 一种位置信息的共享方法、装置及终端
CN113223563A (zh) * 2018-09-29 2021-08-06 苹果公司 用于基于深度的注释的设备、方法和图形用户界面
US11727650B2 (en) 2020-03-17 2023-08-15 Apple Inc. Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
US11941764B2 (en) 2021-04-18 2024-03-26 Apple Inc. Systems, methods, and graphical user interfaces for adding effects in augmented reality environments
US12020380B2 (en) 2019-09-27 2024-06-25 Apple Inc. Systems, methods, and graphical user interfaces for modeling, measuring, and drawing using augmented reality

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258879A1 (en) * 2013-03-08 2014-09-11 International Business Machines Corporation Theme engine
JP6308213B2 (ja) * 2013-04-04 2018-04-11 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP6381187B2 (ja) * 2013-08-09 2018-08-29 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US9697365B2 (en) 2013-09-06 2017-07-04 Microsoft Technology Licensing, Llc World-driven access control using trusted certificates
US9613459B2 (en) * 2013-12-19 2017-04-04 Honda Motor Co., Ltd. System and method for in-vehicle interaction
US9747558B2 (en) * 2014-06-04 2017-08-29 W-Zup Communication Oy Method and system for using and inspecting e-tickets on a user terminal
JP6029117B2 (ja) * 2014-07-31 2016-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソースコードの共有を支援する装置及び方法
US10147210B1 (en) * 2015-03-13 2018-12-04 Amazon Technologies, Inc. Data visualization system
EP3281403A4 (en) 2015-04-06 2018-03-07 Scope Technologies US Inc. Methods and apparatus for augmented reality applications
US10721280B1 (en) * 2015-05-29 2020-07-21 Sprint Communications Company L.P. Extended mixed multimedia reality platform
WO2017066801A1 (en) * 2015-10-16 2017-04-20 Bent Image Lab, Llc Augmented reality platform
US10146758B1 (en) * 2016-09-30 2018-12-04 Amazon Technologies, Inc. Distributed moderation and dynamic display of content annotations
US10373377B1 (en) * 2016-10-26 2019-08-06 Amazon Technologies, Inc. Augmented reality assisted deliveries
TWI603227B (zh) 2016-12-23 2017-10-21 李雨暹 移動物件的虛擬訊息遠距管理方法與應用系統
US10169850B1 (en) 2017-10-05 2019-01-01 International Business Machines Corporation Filtering of real-time visual data transmitted to a remote recipient
CN108983974B (zh) * 2018-07-03 2020-06-30 百度在线网络技术(北京)有限公司 Ar场景处理方法、装置、设备和计算机可读存储介质
US11450069B2 (en) * 2018-11-09 2022-09-20 Citrix Systems, Inc. Systems and methods for a SaaS lens to view obfuscated content
US11450034B2 (en) 2018-12-12 2022-09-20 University Of Washington Techniques for enabling multiple mutually untrusted applications to concurrently generate augmented reality presentations
US20200233503A1 (en) * 2019-01-23 2020-07-23 Tangible Play, Inc. Virtualization of tangible object components
USD940233S1 (en) 2019-07-03 2022-01-04 Tangible Play, Inc. Type font
US11544415B2 (en) 2019-12-17 2023-01-03 Citrix Systems, Inc. Context-aware obfuscation and unobfuscation of sensitive content
US11539709B2 (en) 2019-12-23 2022-12-27 Citrix Systems, Inc. Restricted access to sensitive content
US11582266B2 (en) 2020-02-03 2023-02-14 Citrix Systems, Inc. Method and system for protecting privacy of users in session recordings
US11361113B2 (en) 2020-03-26 2022-06-14 Citrix Systems, Inc. System for prevention of image capture of sensitive information and related techniques
MX2023002015A (es) 2020-08-18 2023-04-11 Enviro Metals Llc Refinamiento metálico.
WO2022041163A1 (en) 2020-08-29 2022-03-03 Citrix Systems, Inc. Identity leak prevention
WO2023091355A1 (en) * 2021-11-19 2023-05-25 Apple Inc. Scene information access for electronic device applications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267410A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Method, system, and apparatus for dynamic data-driven privacy policy protection and data sharing
US20060064384A1 (en) * 2004-09-15 2006-03-23 Sharad Mehrotra Apparatus and method for privacy protection of data collection in pervasive environments
CN101095110A (zh) * 2004-11-05 2007-12-26 埃森哲全球服务有限公司 用于分布式信息呈现和交互的系统
CN101322091A (zh) * 2005-11-18 2008-12-10 埃森哲全球服务有限公司 多目标检测和应用项目状态导航系统
US20120249741A1 (en) * 2011-03-29 2012-10-04 Giuliano Maciocci Anchoring virtual images to real world surfaces in augmented reality systems

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085976A (en) 1998-05-22 2000-07-11 Sehr; Richard P. Travel system and methods utilizing multi-application passenger cards
JP4031112B2 (ja) 1998-07-23 2008-01-09 富士通株式会社 パスポート取引装置,パスポート取引方法およびパスポート取引システム
CA2410118C (en) 2001-10-26 2007-12-18 Research In Motion Limited System and method for controlling configuration settings for mobile communication devices and services
US7693545B2 (en) 2004-02-05 2010-04-06 Samsung Electronics Co., Ltd System and method for controlling functions of mobile communication terminal in a restricted zone
JP4665406B2 (ja) 2004-02-23 2011-04-06 日本電気株式会社 アクセス制御管理方法、アクセス制御管理システムおよびアクセス制御管理機能付き端末装置
US7444287B2 (en) 2004-07-01 2008-10-28 Emc Corporation Efficient monitoring system and method
US20060048142A1 (en) 2004-09-02 2006-03-02 Roese John J System and method for rapid response network policy implementation
US8006290B2 (en) 2006-01-12 2011-08-23 International Business Machines Corporation System and method for ratification of policies
US10198709B2 (en) 2006-03-27 2019-02-05 Hewlett Packard Enterprise Development Lp Managing assets using at least one policy and asset locations
JP2008022526A (ja) 2006-06-13 2008-01-31 Hitachi Ltd 属性証明書検証方法、属性認証局装置、サービス提供装置、および属性証明書検証システム
US8326272B1 (en) 2006-07-26 2012-12-04 Amdocs Software Systems Limited System, method and computer program product for subscriber-specific policies
US7706837B2 (en) 2006-09-01 2010-04-27 Research In Motion Limited Disabling operation of a camera on a handheld mobile communication device based upon enabling or disabling devices
US7933611B2 (en) 2006-09-01 2011-04-26 Research In Motion Limited Disabling operation of features on a handheld mobile communication device based upon location
US8199003B2 (en) 2007-01-30 2012-06-12 At&T Intellectual Property I, Lp Devices and methods for detecting environmental circumstances and responding with designated communication actions
US7974950B2 (en) 2007-06-05 2011-07-05 International Business Machines Corporation Applying a policy criteria to files in a backup image
US7996879B1 (en) 2007-07-03 2011-08-09 Trend Micro Incorporated Network deployment techniques employing radio frequency identification (RFID)
JP5023216B2 (ja) 2007-10-16 2012-09-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムのリソース使用効率を改善する方法及び装置
US8170280B2 (en) 2007-12-03 2012-05-01 Digital Smiths, Inc. Integrated systems and methods for video-based object modeling, recognition, and tracking
US8219144B2 (en) 2008-01-11 2012-07-10 Alcatel Lucent Disabling of mobile phone camera operation by video-restricted location device
CN101499919B (zh) 2008-01-28 2012-12-12 华为技术有限公司 策略决策实体的管理方法、管理网元及网络系统
US20090259591A1 (en) 2008-04-11 2009-10-15 Microsoft Corporation Information Rights Management
WO2009145730A1 (en) 2008-05-29 2009-12-03 Nanyang Polytechnic Method and system for disabling camera feature of a mobile device
US9703806B2 (en) 2008-06-17 2017-07-11 Microsoft Technology Licensing, Llc User photo handling and control
US8254902B2 (en) 2008-06-26 2012-08-28 Apple Inc. Apparatus and methods for enforcement of policies upon a wireless device
US8238604B2 (en) 2008-08-18 2012-08-07 Kabushiki Kaisha Toshiba System and method for validation of face detection in electronic images
WO2010029553A1 (en) 2008-09-11 2010-03-18 Netanel Hagbi Method and system for compositing an augmented reality scene
US20100077484A1 (en) 2008-09-23 2010-03-25 Yahoo! Inc. Location tracking permissions and privacy
US8719901B2 (en) 2008-10-24 2014-05-06 Synopsys, Inc. Secure consultation system
US8331739B1 (en) 2009-01-21 2012-12-11 Google Inc. Efficient identification and correction of optical character recognition errors through learning in a multi-engine environment
US8494215B2 (en) * 2009-03-05 2013-07-23 Microsoft Corporation Augmenting a field of view in connection with vision-tracking
US8768313B2 (en) 2009-08-17 2014-07-01 Digimarc Corporation Methods and systems for image or audio recognition processing
WO2011123577A2 (en) * 2010-03-31 2011-10-06 Phunware Inc. Methods and systems for interactive user interface objects
KR101016556B1 (ko) 2010-05-06 2011-02-24 전성일 증강 현실을 이용하여 인물의 정보에 접근하기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
US8971628B2 (en) 2010-07-26 2015-03-03 Fotonation Limited Face detection using division-generated haar-like features for illumination invariance
US20120042076A1 (en) 2010-08-16 2012-02-16 Nokia Corporation Method and apparatus for managing application resources via policy rules
US9904797B2 (en) 2010-12-27 2018-02-27 Nokia Technologies Oy Method and apparatus for providing data based on granularity information
JP2012182779A (ja) 2011-01-31 2012-09-20 Nippon Hoso Kyokai <Nhk> 受信装置、放送システム及びプログラム
US9471934B2 (en) * 2011-02-25 2016-10-18 Nokia Technologies Oy Method and apparatus for feature-based presentation of content
US20120222083A1 (en) 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for enforcing data privacy
US8744143B2 (en) 2011-04-01 2014-06-03 Yahoo! Inc. Adding privacy protection to photo uploading/ tagging in social networks
US8996688B2 (en) 2011-05-31 2015-03-31 Nokia Corporation Method and apparatus for monitoring and controlling data sharing
US9323928B2 (en) 2011-06-01 2016-04-26 Mcafee, Inc. System and method for non-signature based detection of malicious processes
US9465427B2 (en) 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
US10019962B2 (en) 2011-08-17 2018-07-10 Microsoft Technology Licensing, Llc Context adaptive user interface for augmented reality display
US9106650B2 (en) 2011-11-09 2015-08-11 Microsoft Technology Licensing, Llc User-driven access control
US8972263B2 (en) 2011-11-18 2015-03-03 Soundhound, Inc. System and method for performing dual mode speech recognition
US20130239192A1 (en) * 2012-03-09 2013-09-12 RAPsphere, Inc. Method and apparatus for securing mobile applications
US20130263016A1 (en) * 2012-03-27 2013-10-03 Nokia Corporation Method and apparatus for location tagged user interface for media sharing
US20140009609A1 (en) 2012-07-06 2014-01-09 Conexant Systems, Inc. Video door monitor using smarttv with voice wakeup
US9298931B2 (en) 2012-08-15 2016-03-29 Empire Technology Development Llc Digital media privacy protection
US20140282840A1 (en) 2013-03-15 2014-09-18 True Ultimate Standards Everywhere, Inc. Managing data handling policies

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267410A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Method, system, and apparatus for dynamic data-driven privacy policy protection and data sharing
US20060064384A1 (en) * 2004-09-15 2006-03-23 Sharad Mehrotra Apparatus and method for privacy protection of data collection in pervasive environments
CN101095110A (zh) * 2004-11-05 2007-12-26 埃森哲全球服务有限公司 用于分布式信息呈现和交互的系统
CN101322091A (zh) * 2005-11-18 2008-12-10 埃森哲全球服务有限公司 多目标检测和应用项目状态导航系统
US20120249741A1 (en) * 2011-03-29 2012-10-04 Giuliano Maciocci Anchoring virtual images to real world surfaces in augmented reality systems

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453976A (zh) * 2016-05-31 2017-12-08 宇龙计算机通信科技(深圳)有限公司 一种位置信息的共享方法、装置及终端
CN113223563A (zh) * 2018-09-29 2021-08-06 苹果公司 用于基于深度的注释的设备、方法和图形用户界面
CN113223563B (zh) * 2018-09-29 2022-03-29 苹果公司 用于基于深度的注释的设备、方法和图形用户界面
US11632600B2 (en) 2018-09-29 2023-04-18 Apple Inc. Devices, methods, and graphical user interfaces for depth-based annotation
US11818455B2 (en) 2018-09-29 2023-11-14 Apple Inc. Devices, methods, and graphical user interfaces for depth-based annotation
US12020380B2 (en) 2019-09-27 2024-06-25 Apple Inc. Systems, methods, and graphical user interfaces for modeling, measuring, and drawing using augmented reality
US11727650B2 (en) 2020-03-17 2023-08-15 Apple Inc. Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
US11941764B2 (en) 2021-04-18 2024-03-26 Apple Inc. Systems, methods, and graphical user interfaces for adding effects in augmented reality environments

Also Published As

Publication number Publication date
CN105579946B (zh) 2019-03-15
US9424239B2 (en) 2016-08-23
WO2015034852A1 (en) 2015-03-12
EP3042278B1 (en) 2018-03-07
US20150074506A1 (en) 2015-03-12
EP3042278A1 (en) 2016-07-13

Similar Documents

Publication Publication Date Title
CN105579946A (zh) 对由应用产生的共享状态信息进行管理
Lebeck et al. Securing augmented reality output
US11316976B1 (en) Call center interface
US9355268B2 (en) Managing access by applications to perceptual information
US10719870B2 (en) Mixed reality world integration of holographic buttons in a mixed reality device
US10216956B2 (en) Virtualization input component
CN105745955B (zh) 在基于网络的沉浸式增强现实中的保护隐私
JP6871943B2 (ja) モバイルクラウドサービスのための予め形成された命令
CN109074441A (zh) 基于注视的认证
US10609018B2 (en) Gesture-based access control in virtual environments
JP6775013B2 (ja) データテーブルを共有するためのサポートを有する構成の自己記述
CN108885521A (zh) 跨环境共享
US20240144183A1 (en) Mobile device interface
JP7165715B2 (ja) 統合検索のためのサポートを伴う保護されたフィールド上の自動動作検出
US20180158243A1 (en) Collaborative manipulation of objects in virtual reality
US10346599B2 (en) Multi-function button for computing devices
US10789383B1 (en) Systems and methods for data protection
CN105659250A (zh) 世界驱动访问控制
CN106462329A (zh) 轻解除管理器
CN113093910A (zh) 基于vr场景的交互方法及交互设备、电子设备及存储介质
CN107430651A (zh) 受信预测分析执行中间件
CN115794284A (zh) 信息分享方法、装置、电子设备及可读存储介质
Hudák et al. LIRKIS global collaborative virtual environments: Current state and utilization perspective
CN115277033A (zh) 访问策略管理方法、装置、设备及计算机可读存储介质
Whitmire Architecture Matters

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant