用于多传感器输入的传感器融合接口的制作方法

文档序号:7993784阅读:297来源:国知局
用于多传感器输入的传感器融合接口的制作方法
【专利摘要】本发明涉及允许在物理环境中的一个或多个实体和计算机化的设备组件之间进行交互的传感器融合接口。多个传感器模块生成与环境中的一个或多个实体相关联的多传感器输入数据,并根据统一且公共的模式将这样的数据存储在共享库中。多传感器输入数据被细化,直到达到特定的准确度水平。使用传感器融合接口,从共享库中提取实体状态数据并将其展示给计算机化的设备组件。
【专利说明】用于多传感器输入的传感器融合接口
[0001]背景
[0002]各种物理环境和基础设施使用传感器来收集并合成数据。例如,家庭或工厂可使用摄像机系统来确保贵重和重要文档和/或设备的安全。家庭的自动调温装置使用传感器网络来控制平均温度。常见的消费设备采用传感器来收集数据,例如用于拍摄照片的移动电话相机。这些传感器中的一些,诸如加速计、陀螺仪、微电机系统(MEMS)等等,对于现实世界进行测量。计算机系统和软件组件将传感器集成到每日生活以提供关于现实世界的丰富信息。
[0003]对于相当数量的计算机化的设备组件而言,常常希望利用多个传感器来改善感知的质量。在很多情况中,传感器测量必需有效且准确。通过跨空间和时间处理对物理环境的观察,传感器测量可被调整成特定属性的更准确的估计。因此,计算机系统和软件组件执行各种传感器输入处理操作,直到获得满意的置信度水平。这确保了正确执行以及增强了的用户体验。

【发明内容】

[0004]提供本概述以便以简化形式介绍将在以下的【具体实施方式】中进一步描述的一些代表性概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
[0005]简要地,在此描述的主题的各个方面涉及用于多传感器输入的传感器融合接口。在一个方面,各种传感器模块和(输入)设备提供与物理环境相关联的输入数据。物理环境的监视组件聚合来自不同源的输入数据并执行交叉传感器合成,以调谐输入数据并解释更有意义的信息。在一个方面,监视组件的交互机制通过传感器融合接口向计算机化的设备组件(例如,硬件和/或软件组件,诸如编程逻辑设备、微代码和/或包括应用的程序、操作系统组件、固件等等)提供对该信息的访问。
[0006]在一个方面,传感器融合接口使得能够在实体(例如,人类用户)和计算机化的设备组件之间交互。传感器融合接口访问耦合到多个传感器模块的共享库并存储与实体相关联的多传感器输入数据。在一个方面,共享库使用公共模式来组织多传感器输入数据,以使得其它传感器模块能够细化这样的数据并在共享库中重新发布经细化的数据用于(有可能)另一个传感器模块来更进一步细化。在某一时刻,多传感器输入达到特定置信度水平和关于实体相对于物理环境的状态信息。传感器融合接口以及交互机制,为计算机化的设备组件,从共享库中提取实体状态数据,并向计算机化的设备组件提供对实体状态数据的访问。
[0007]在另一方面,物理环境包括可能相互交互或可能不相互交互的多个实体。在监视物理环境时,交互机制可通过传感器融合接口接收对实体状态数据的请求。在一个方面,一些这样的请求包括指示在融合传感器输入数据时要选择哪些输入模态的配置数据。交互机制配置多个传感器模块来生产计算机化的设备组件希望的类型的多传感器输入数据。一旦多传感器输入数据被生成,交互机制提取实体状态数据并将实例发送给计算机化的设备组件。该实例可以是(共享)存储单元中的实体状态数据的副本或引用。
[0008]结合附图阅读以下详细描述,本发明的其他优点会变得显而易见。
【专利附图】

【附图说明】
[0009]作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
[0010]图1是示出根据一个实现的传感器融合接口的示例系统的框图。
[0011]图2表示了根据一个实现的、传感器融合接口的示例体系结构,该传感器融合接口使得能够在实体和计算机化的设备组件之间交互。
[0012]图3是示出根据一个实现的、用于将传感器融合接口展示给计算机化的设备组件的示例步骤的流程图。
[0013]图4是示出根据一个实现的、用于从多传感器输入中生成计算机化的设备组件控制数据的示例步骤的流程图。
[0014]图5是示出根据一个实现的、用于管理实体交互的示例步骤的流程图。
[0015]图6是表示其中可实现本文所述的各种实施例的示例非限制性联网环境的框图。
[0016]图7是表示其中可实现本文所述的各种实施例的一个或多个方面的示例非限制性计算系统或操作环境的框图。
【具体实施方式】
[0017]在此描述的技术的各个方面一般涉及使得能够与计算机化的(用户)设备组件交互的传感器融合接口。在一个实现中,对于物理环境中的每个实体(例如,人类),交互机制定义包括特定时间点的位置和/或朝向的实体简档。该实体简档也可包括语音和/或姿势命令以及指示实体离开传感器边界时的情况的事件挂钩。在一个实现中,实体简档可在被展示给计算机化的设备组件时指示一个或多个命令/控制输入。在一个实现中,交互机制,响应于实体活动,通过传感器融合接口,指令通用知识数据组件更新实体简档。在一个实现中,通用知识数据组件根据统一模式集合来自多个传感器模块的多传感器输入,并基于多个传感器数据标识实体活动。
[0018]应当理解,此处的任何示例都是非限制性的。如此,本发明不限于此处所描述的任何特定实施例、方面、概念、结构、功能或示例。相反,此处所描述的任何一个实施例、方面、概念、结构、功能或示例都是非限制性的,可以以一般而言在计算和进行数据管理时提供好处和优点的各种方式来使用本发明。
[0019]图1是示出根据一个实现的传感器融合接口的示例系统的框图。示例系统的组件包括多个计算机化的设备102^(示为设备102i…设备102N,且在以下称为设备102)以及监视组件104。
[0020] 设备102可向监视组件104提供传感器输入信号,监视组件104进而存储适当的原始数据用于进一步处理。在一个实现中,设备102可包括提供与实体和/或物理环境相关联的输入数据的任何传感设备,诸如电子数字化仪、移动电话、麦克风、多媒体捕捉设备(例如,相机)、成像设备、深度相机、键盘和定点设备(通常指鼠标、跟踪球或触摸板)。设备102的其它实施例可包括操纵杆、游戏手柄以及其它无线或有线控制器。设备102的每一个可物理附连到监视组件104或位于远程。
[0021]设备102的示例还可包括计算机视觉设备、麦克风、加速度计、陀螺仪、磁力计、指南针、时钟、全球定位系统(GPS)设备、温度计、湿度传感器、光传感器、红外传感器、附近设备信号强度、接入点、或其它发射器、深度传感器等。这些示例设备102可感知环境和其它数据,诸如当前房间和/或设备温度、用户是否在移动以及以什么样速度移动、用户独处还是与其他人一起、环境光量、计算机相关或输出设备相关数据(例如,设备电池寿命、可用电能、运行的程序和服务)等。
[0022]在一个实现中,监视组件104可被配置来为由设备102生成的输入数据的提供集成点,并可包括交互机制106,用于将传感器融合接口 108展示给处理与一个或多个实体相关联的多模(传感器)输入数据的一个或多个计算机化的设备组件。监视组件104还可包括共享库110、实体状态数据112、配置数据114、控制数据116和传感器模块118。如在此描述的,共享库110可对应于多传感器输入数据(例如,常见格式或类型的系统中的音频数据、视频数据、图像数据等等)的模式化版本。实体状态数据112可指示每个实体的姿态(例如基于物理环境上的位置和朝向的笛卡尔坐标作为参考帧)。配置数据114和控制数据116可表示每个实体和计算机化的设备组件120 (例如,一类硬件或软件组件,诸如程序)之间的交互。
[0023]共享库110,如在此所描述的,包括诸如测量值的来自设备102和/或传感器模块118的输入数据。这些测量经历交叉合成,籍此各个不同的设备102的和/或传感器模块116访问输入数据,并执行附加处理,诸如语音/面部/姿势识别,其被发布在共享库110中供另一个设备和/或传感器模块来添加有意义和有用的信息。在一段时间之后,监视机制104将各输入数据关联并从多传感器输入中确定实体状态,其可被定义为姿态、所说的词语、姿势等等的任何组合并存储在实体状态数据112中。交互机制106提取实体状态数据110并向计算机化的设备组件120提供副本。
[0024]在一个实现中,一个或多个实体可包括游戏/模拟器程序中的一个或多个玩家、希望增强现实内容和/或服务的移动电话用户、音乐播放列表系统的用户等等。计算机化的设备组件性能和用户/玩家体验可成比例地与这些计算机化的设备组件处理多传感器输入数据并确定与实体活动相关联的含义/企图的能力相关联,实体活动诸如实体移动(例如,诸如姿势命令的象征活动)、在两个或多个实体之间交互等等。
[0025]在一个实现中,配置数据114可定义转换成对计算机化的设备组件120的控制输入/命令的实体活动的各种形式,这些控制输入/命令可被存储在控制数据114中并被发送给计算机化的设备组件120。经过一段时间之后,交互机制106通过跟踪实体状态的改变来标识这些实体活动的一个。除了基于语音/姿势的控制,或者与基于语音/姿势的控制相结合,实体姿态的改变可显式或隐式地指示计算机化的设备组件120的行为的预期的变更。例如,移动电话用户可将设备相机向上指向天空,并清楚地指令移动电话组件来“用星座名称来增强我的当前的夜空屏幕视图”,这导致监视组件104将音频数据与语音识别结果和图像数据融合。类似地,受实体操纵的设备位置或朝向的改变也可指示设备组件行为中的希望的改变。
[0026]作为另一个示例,交互机制106可将特定的实体移动(例如,走几步、在空中跳跃等等)以及朝向(例如看或面对/身体方向)解释为用于移动和定向虚拟角色(例如实体的化身)的语义控制输入。定点设备中的深度相机和陀螺仪可提供关于实体移动和身体朝向的测量。此外,头盔设备上的另一个陀螺仪可提供关于脸部朝向的测量。如果实体跳跃、闪避,或以其他方式上下移动,加速计(例如微机电加速计或重力计)可测量实体相对于重力(即,地球引力)的加速度、方向、位移和/或持续时间。这些测量值可被组合成多传感器输入数据并关联以产生不同时间点的实体状态数据112。
[0027]设备102和传感器模块118的组合可将来自多模态的各组传感器输入(数据)提供给监视组件104。设备102还可以向监视组件104提供环境数据和/或其它传感到的数据。具体而言,总的来说,设备102具有收集关于物理环境和被监视组件104跟踪和/或分析的一个或多个实体的详细信息的能力。配置数据114可指示设备102和/或传感器模块118的特定一些来用于生成多传感器输入数据。默认地,交互机制106从全部设备102和/或传感器模块118聚合传感器输入。如果设备102和/或传感器模块118的任何一个不可用,则配置数据114可指示应当返回错误。
[0028]在一个实现中,传感器模块118可包括软件组件或一个或多个设备102的代理。例如,包括加速计的移动电话可在监视组件104上使用代理来发送运动数据。作为另一个示例,相机可使用软件模块来将原始图像数据转换成经格式化的版本和/或从图像数据提取特征数据。可替换地,相机可将原始数据存储在监视组件104上。
[0029]在另一个实现中,传感器模块118中的一些包括基于软件的传感器,其提供与物理环境和/或实体相关联的高等级或精细粒度的信息。除了原始传感器输入以外,这些传感器模块118处理合适的输入数据以提供有意义的信息。例如,传感器模块118可包括处理由设备102提供的传感器输入并分别标识特定实体的面部特征、所说的词语和/或身体姿态/移动的面部识别模块、语音识别模块、姿势识别模块等等。
[0030]图2表示了根据一个实现的、传感器融合接口的示例体系结构,该传感器融合接口使得能够在实体和计算机化的设备组件之间交互。如在此描述并在图1中示出的,设备102和传感器模块118的组合可包括一组一个或多个游戏控制台相机(例如,深度传感相机)>web相机、麦克风、数字化仪、笔/定点设备、加速计和“其它”设备,其可表示对应于可能的输入模态的数据(例如,知识数据)的源202^202^
[0031]尽管源202^20?可示出各种设备和/或传感器模块的特定示例,这些示例不是设备和/或传感器模块的潜在配置的穷尽,且其它源202m可包括任何数量的包括运动控制器组件的设备和/或传感器模块,诸如磁力计、红外结构化光等等。其它可被利用的输入数据包括来自笔设备的电子墨水、注视(方向、流逝的时间)、邻近度感测、语音、空中姿势、身体位置/身体语言、面部表情、作为增强的镜像(例如看着所指方向、比划)、触摸、多触鼠标、脑波计算机输入、键盘、空中鼠标(例如,肥皂)、乐器(例如MIDI)、操纵物理接口(例如手套或触觉接口)等。心情感应,诸如将面部表情与面部颜色改变、温度、握力压力和/或心情的其它可能的指示组合,是另一个可行的输入模态。
[0032]在一个实现中,运动传感输入设备202i可使得一个或多个实体(例如与游戏控制台交互的一个或多个玩家)使用姿势、身体移动和/或话音命令来与接口(例如,游戏控制台接口)自然交互。运动传感输入设备202i可包括各种媒体或多媒体捕捉机制,诸如彩色相机(红绿蓝(RGB)相机)来捕捉可视数据、深度相机来检测实体在场以及离设备的前面的距离,麦克风阵列来捕捉物理环境内的音频数据等等。[0033]在一个实现中,运动传感输入设备202i提供各种环境和/或实体数据,诸如对应于表示一个或多个实体(例如人、动物、机器人等等)的图像数据的骨架跟踪信息。骨架跟踪信息可描述视野内的实体移动。可能有其中运动传感输入设备202i可能不能捕捉和/或分析实体移动的部分视野(例如盲区或中性区域)。在一个实现中,该部分内的实体移动或姿势可校准由运动传感输入设备202i采用的捕捉机制。
[0034]在一个实现中,运动传感输入设备202i也可提供由XYZ深度相机生成的环境和/或实体数据,深度相机检查彩色相机流数据和深度数据来计算对象或实体和相机之间的距离。在另一个实现中,运动传感输入设备2021可处理由四元麦克风阵列提供的音频数据。例如,运动传感输入设备202i可应用声学噪声和回声抵销技术和/或束形成来标识当前声音源。
[0035]在一个实现中,语音识别模块20?可根据所说语言的语法将音频数据译解为词/句。语音识别模块20?可处理来自任何源(诸如运动传感输入设备202i的麦克风阵列或一个或多个“其它”源202m,诸如计算机麦克风、移动电话录音机等等)的音频数据。语音识别模块20?可用包括所说的语言的语法中所使用的词的字典启动。语音识别模块20?可将任何技术应用于音频以将语音标识/分类为词。
[0036]在一个实现中,消费设备2023可包括任何计算设备(例如膝上电脑、台式机、平板电脑等)、移动设备(例如任何手持设备,诸如移动电话、智能电话等)、游戏控制台控制器、运动指示器遥控器等。消费设备2023可包括一个或多个传感器模块和/或一个或多个(输入)设备。例如 ,消费设备2023可包括内建陀螺仪以及加速计和接口(例如,外部总线和端口),用于与磁力计(指南针)通信。消费设备2023还可包括(具有或不具有麦克风的)相机,其提供与一个或多个实体相关联的图像数据。这些低功率高准确度MEMS设备提供关于实体姿态和/或设备姿态(例如,实体或设备的位置和/或朝向)的非常精细粒度的信肩、O
[0037]在一个实现中,面部识别模块2024可检测并标识图像数据(例如,一个图像或一组图像)和/或视频数据(例如,视频帧)中的(人)脸。面部识别模块2024的实施例可包括硬件组件和/或软件组件。面部识别模块2024可在部署之前使用具有先前验证了的实体脸的正确标记的特征的一组图像来进行训练。在被训练之后,面部识别模块2024可处理由运动传感输入设备2021、消费设备2023和/或其它源202m (例如web相机、移动电话相机、属于另一个实体的三维或二维数码相机等)之一所捕捉的图像,并确定来自该组图像的哪个实体可被呈现在环境中。训练组的大小可依赖于环境类型。例如,相对小的图像组对于家庭或小办公室足够,然而,更大的图像组可被用于全球组织。作为验证环境内实体身份的替换机制,附连到实体上的个人射频(RF)标识标签可周期性地发射位置数据。
[0038]在一个实现中,姿势识别模块2025可使用各种技术(例如计算机视觉和图像处理技术),解释源自任何身体运动和/或状态的实体(例如,人)的姿势。姿势识别库可被用来从脸和手的姿势来标识姿势和人身体语言,诸如情感、姿势/姿态、步态和/或空间关系。姿势识别模块2025可使用已记录的以及先前从合适的设备(诸如运动传感输入设备202ρ消费设备2023、陀螺仪、运动处理单元2026等)验证过的姿势来进行训练,姿势识别模块2025可对姿势建模以便识别相同姿势的未来调用。
[0039]在一个实现中,运动处理单元2026可包括嵌入在另一个设备或结构内的集成电路(例如芯片)。例如,运动处理单元2025的实施例可提供包括平板计算机、移动电话、(远程)运动控制器、运动指示器遥控器等等。在一个实现中,运动处理单元2026可包括嵌入式的三(3)-轴陀螺仪、3-轴加速计以及具有接口到第三方数字化传感器(诸如磁力计)的辅助端口的硬件加速器引擎。因此,运动处理单元可促进集成的九(9)-轴传感器融合以及准确的六(6)自由度运动捕捉。示例运动处理单元可以是INVENSESNE? MPU-60X0运动处理单元。
[0040]运动处理单元2026可将加速度和转动的运动加上前进信息组合成单数据流给通用知识数据组件204。数据流可根据陀螺仪、加速器和/或磁力计指示实体/设备朝向和/或姿态的改变。数据流可能会在数据流中展示不想要的扰乱,诸如漂移一段时间,其可通过将加速计数据与陀螺仪数据融合、将卡尔曼(Kalman)滤波器用于数据流和/或周期性地用磁指南针校准陀螺仪来部分纠正。
[0041]通用知识数据组件204 (例如,黑板,在本领域中通常指公知软件设计模式)可定义被配置在知识的全部源上的全局数据结构、模式或类型系统。使用全局数据结构、模式或类型系统,通用知识数据组件204维持原始输入数据、问题、部分解决方案、替换、建议、所贡献的信息、结局、解决方案、控制信息和通信介质/缓冲器的共享库。通用知识数据组件204实现定义所有设备的共同属性(例如,方法、属性、数据成员等等)的传感器接口,和提供多传感器输入数据206的传感器模块(以下统称为传感器)。例如,传感器接口可创建对象实例,对象实例具有传感器名称、初始化/去初始化方法、校准方法和指示传感器是否在跟踪实体的状态标志。传感器接口可被扩展以与任何传感器通信。
[0042]在一个实现中,通用知识数据组件204还可以实现显式的控制机制,允许源202r202m机会主义地响应通用知识数据组件204的改变。被通用知识数据组件204解决的一种类型的问题是用细节定义实体活动背后的含义和企图,并且将含义和其它翻译成计算机化的设备组件(例如,应用)的行为。
[0043]在一个实现中,通用知识数据组件204包括集中可存取数据存储,设备102和/或传感器模块118可从中读取/向其写入,并且传感器融合接口 208可向计算机化的计算设备210提供对其的访问。传感器融合接口 204还可以将数据存储的内容发送给接收方。通用知识数据组件204存储当前和/或历史数据,诸如相机图像、话音/姿势命令、相机图像中的实体身份、实体(例如玩家)列表等等。通用知识数据组件204可被动态修改以适应来自任何传感器的在特定情形中初始化的输入数据。
[0044]如果通用知识数据组件204的内容改变(例如,新相机图像帧到来),通用知识数据组件204生成事件并将该事件展示给计算机化的设备组件210。想要消费该内容的其它模块可订阅此事件并从通用知识数据组件204实例读取新鲜数据。以此方式传感器可按照干净且高效的方式交叉通信,无需有彼此存在的任何密切知识。
[0045]通用知识数据组件204还可以跟踪、监视和/或分析实体状态。作为示例,当一个传感器或一组传感器检测到实体/玩家在场(例如,运动传感输入设备202i识别到骨架和/或面部识别模块检测到脸),该传感器或该组传感器调用通用知识数据组件204AddPlayer()(添加玩家)方法,其将实体作为新玩家添加到当前跟踪的实体的列表,配置通用知识数据组件204来聚合并融合与所添加的实体相关联的输入数据,并将全局事件发射到计算机化的设备组件210,其它传感器可订阅它。[0046]在一个实现中,与所添加的实体相关联的数据,诸如身份214、位置216、朝向218、语音/姿势等等,可被追加到一组简档212中的对应的一个。位置216可以指三维空间中整个身体位置和/或身体部位的位置(例如,手位置)。类似地,朝向218可以指身体朝向和/或特定身体部位的朝向,诸如脸的朝向。此外,位置216和朝向218可以指正被实体操纵的设备,诸如移动电话或定点设备。在一个实现中,简档212的一个示例封装捕捉任何特定实体的多传感器输入数据的以下数据:骨架位置、手位置、当前语音命令、头位置和身份。一旦这些字段基本上完成,传感器融合接口 208可将简档发送给计算机化的设备组件210。
[0047]传感器融合接口 208通过向计算机化的设备组件210和/或程序开发者提供实体相关信息来促进多传感器和多人程序开发。在一个实现中,传感器融合接口 208对于其中实体离开与传感器相关联的检测边界或范围的情况展示例如当前实体状态和一个或多个事件(挂钩)220。传感器融合接口 208还向计算机化的设备组件210展示实体发出的当前命令/控制输入。在另一个实现中,传感器融合接口 208还向计算机化的设备组件210提供使用默认选项和/或所选传感器自定义选项的传感器初始化。
[0048]在另一个实现中,传感器融合接口 208还提供一个或多个支持工具222用于与实体交互。一个示例支持工具222包括软件代码,在被执行时,将原始方向输入数据或来自传感器(诸如运动传感输入设备202i或消费设备2023)的其它运动数据转换成语义控制输入,这可通过在此一般描述的校准和盲区分配来实现。
[0049]另一个示例支持工具222包括软件代码,在被执行时,允许开发者创建抽象环境模型(例如示出房子里面的房间和房间之间的连接的模型)。特定传感器可被添加到环境模型的特定区域(例如房间)。例如,三个房间的房子中的每个房间可安装允许在环境周围进行实体跟踪的运动传感输入设备202i。随着实体移入不同区域,计算机化的设备组件210可将实体跟踪任务从一个传感器转换到更靠近实体的另一个传感器。
[0050]作为示例,计算机化的设备组件210可以是身临其境的第一人称射击游戏体验,它采用运动传感输入设备202i和消费设备2023 (例如,嵌入在定点设备内的陀螺仪)作为输入数据的源。运动传感输入设备202i提供与身体关节移动和玩家位置相关联的粗略/低分辨率/高级别信息。此外,消费设备2023提供与设备朝向相关联的精细粒度的、高分辨率信息。如果消费设备2023是手持的,消费设备2023可确定实体是正在“看”还是在瞄准。
[0051]继续该示例,传感器融合接口 208使用来自运动传感输入设备202i的位置数据和合适的一个支持工具222来确定虚拟角色如何移动。从中间的盲区,向前移动一步导致虚拟角色向前移动,而回到中性的盲区导致虚拟角色停下。来自消费设备2023的数据可控制实体“看”或虚拟角色面对的方向。通过将消费设备2023握在他或她手中,作为指示器或棒,实体可对虚拟角色的看和走的方向进行引导。通过组合输入的这两个模式,实体能够通过I)向前、后、左或右移动,并将消费设备2023指向特定方向来控制虚拟角色。
[0052]作为另一个示例,计算机化的设备组件210可以是多房间、多传感器音乐播放列表系统(例如硬件或软件组件,诸如应用或操作系统组件),其围绕房子、办公室或其它室内环境跟踪实体移动。传感器融合接口通过实体状态数据或简档212向音乐播放列表系统提供所跟踪的实体移动数据,使得与播放列表相关联的数字音乐(声音)跟随实体进入不同房间。运动传感输入设备202i的相机可安装在每个参与的房间,并在实体走进房间时捕捉他/她的脸。相机可被连接到中央个人计算机,该个人计算机正在运行音乐播放列表系统并通过扬声器系统播放音乐。根据一个实现,实体可向音乐播放列表系统提供由家庭成员创建的播放列表。在用每个成员的十一十五张图像训练面部识别模块2024后,音乐播放列表系统可在不同成员之间进行区分并播放合适的列表。
[0053]如果实体走到相机前面,传感器融合接口 208引发有人进入房间的事件。一旦接收该事件,面部识别模块2024就从相 机捕捉图像并处理该图像以识别脸。一旦将图像中的脸与玩家之一进行了匹配,与该玩家相关联的播放列表就被检索并播放。当相机在房间中跟踪实体的位置时,音乐播放列表系统可基于实体距视觉显示器的距离来调节视觉显示器的细节水平。尽管不是必要的,如果玩家离显示器近,音乐播放列表系统呈现播放列表中的歌曲的一首或多首的专辑图片的表示。当玩家站在远处时,音乐播放列表系统仅示出当前播放的歌曲的图片的放大版本。另一个交互模式是话音。根据前缀是关键词“融合”的命令,实体可“暂停”、“恢复”、“再次开始”或“跳过”歌曲。前缀关键词允许语音识别模块20?排除语音识别模块20?可能在分析环境噪音、在房间中人们在他们本身之间谈话、或实际上来自正被播放的歌曲的歌词时遇到的任何歧义。
[0054]当实体离开房间时,音乐播放列表系统保存播放列表状态(例如,当前歌曲,歌曲内的位置等)。如果同一实体进入另一个房间或再次进入同一个房间并且被肯定地标识,音乐播放列表系统从最后的位置恢复播放音乐。考虑其中实体正在卧室听歌曲的情形。当他或她离开卧室进入厨房、歌曲在卧室中减弱并开始在厨房播放,提供了无缝的收听体验。如果两个或多个实体在同一房间中,计算机化的设备组件210标识同时处于两个玩家的播放列表中的歌曲并交替播放或以其它方式在那些歌曲中切换。作为替换,计算机化的设备组件可播放“合作创建的”播放列表或使用基于个人兴趣的音乐推荐服务。
[0055]图3是示出根据一个实现的、用于将传感器融合接口展示给计算机化的设备组件的示例步骤流程图。示例步骤可在步骤302开始,并前进到步骤304,在此传感器融合接口 208处理来自计算机化的设备组件的请求。在一个实现中,传感器融合接口 208向计算机化的设备组件提供对由监视机制104(诸如组合游戏控制台和运动传感输入设备(例如Microsoft? Kinect?和Xbox?)的监视机制)跟踪并集成的多传感器输入数据的访问。
[0056]步骤306涉及访问包括来自传感器模块和设备的多传感器输入的共享库。在一个实现中,共享库可被实现软件设计模式(被称为黑板设计模式)的系统创建。可选步骤308涉及移除多传感器输入中的不想要的扰乱以从输入数据中消除噪音。步骤310涉及提取一个或多个实体的实体状态数据。步骤312涉及向计算机化的设备组件提供对实体状态数据的访问。在一个实现中,实体状态数据可以是多模态输入数据的部分,多模态输入数据包括实体姿态、计算机化的设备组件的当前命令/控制输入、以及一个或多个事件(例如,指示实体行进到传感范围之外的事件)。步骤314终止图3中所描绘的示例步骤。
[0057]图4是根据一个实现的、示出用于从多个传感器输入中生成控制数据的示例步骤的流程图。示例步骤在402开始,并前进到404,在此交互机制处理定义实体活动的配置数据,实体活动转换成计算机化的设备组件(诸如程序或其它软件组件,例如游戏应用)的控制输入。交互机制通过传感器融合接口接收配置数据。实体活动可包括(多模态)象征活动,诸如表示特定命令的组合语音/姿势数据。实体活动还可包括要被投影到显示器并由虚拟角色(例如表示实体的化身)执行的实际移动。
[0058]步骤406涉及实体姿态和/或设备姿态的确定。设备可以是正由实体操纵或操作的手持设备。步骤408表示对实体姿态和/或设备姿态从先前时间点是否发生改变的判断。如果实体姿态和/或设备姿态发生改变,步骤408前进到步骤410。如果实体姿态和/或设备姿态维持和先前时间点时的实体姿态和/或设备姿态相同,步骤408回到步骤406并重复姿态计算。步骤410涉及更新实体状态数据和/或环境模型的当前表示。
[0059]步骤412涉及将实体姿态改变和/或设备姿态改变解释为物理环境或虚拟环境的命令/控制输入。如果姿态改变和/或设备姿态改变表示物理环境中的计算机化的设备的命令/控制输入,则步骤412前进到步骤414,在此实体使用程序来操作计算机化的设备。如果姿态改变和/或设备姿态改变表示对虚拟环境(即显示器上)的化身或其它对象的命令/控制输入,则步骤412前进到416,在此实体使用程序来控制虚拟环境中的化身和/或对象。步骤418表示对是否有更多传感器输入要融合的判断。如果有更多传感器输入要融合,则步骤418回到步骤406。如果没有更多传感器输入要融合,则步骤418前进到步骤420。步骤420终止示例步骤。
[0060]图5是根据一个实现的、用于管理实体交互的示例步骤的流程图。示例步骤从502开始并前进到504,在此交互机制106配置传感器模块并基于来自计算机化的设备组件的配置数据来选择一种或多种输入模式。默认地,交互机制可采用所有可能的输入模式。在一个实现中,配置数据可指示如果所选输入模式之一不可用则应当返回错误。步骤506表示展示物理环境内多个实体的简档。步骤508涉及检查实体交互。例如,如果计算机化的设备组件是第一人称射击游戏,则交互组件106检查指示虚拟环境中哪个实体被射中/杀死的各个实体相关测量。步骤510涉及标识冲突。如果计算机化的设备组件是“围绕房子播放音乐”的计算机化设备组件,则当具有播放列表的两个实体占据房子中的同一房间时可能有冲突。步骤512涉及将冲突相关事件传输给计算机化设备组件以解决该冲突。步骤514终止图5中所描绘的步骤。
[0061]示例性联网以及分布式环境
[0062]本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户机计算机的环境。
[0063]分布式计算通过计算设备和系统之间的通信交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件等对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化,等等。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
[0064]图6提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象610、612等以及计算对象或设备620、622、624、626、628等,这些计算对象或设备可包括如由示例应用630、632、634、636、638表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象610、612等以及计算对象或设备620、622、624、626、628等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
[0065]每一个计算对象610、612等以及计算对象或设备620、622、624、626、628等可通过通信网络624直接或间接与一个或多个其他计算对象610、612等以及计算对象或设备620、622、626、628、640等进行通信。尽管在图6中被示为单个元件,但通信网络640可包括向图6的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象610、612等或计算对象或设备620、622、624、626、628等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实现所提供的应用实现与其进行通信的应用630、632、634、636、638。
[0066]存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
[0067]由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其他程序或服务本身的任何工作细节。
[0068]在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图6的图示中,作为非限制性示例,计算对象或设备620、622、624、626、628等可被认为是客户机而计算对象610、612等可被认为是服务器,其中计算对象610、612等担当提供数据服务的服务器,诸如从客户机计算对象或设备620、622、624、626、628等接收数据、存储数据、处理数据、向客户机计算对象或设备620、622、624、626、628等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
[0069]服务器通常是可通过诸如因特网或无线网络基础结构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
[0070]在其中通信网络640或总线例如是因特网的网络环境中,计算对象610、612等可以是其他计算对象或设备620、622、624、626、628等通过诸如超文本传输协议(HTTP)等多种已知协议中的任一种与其通信的web服务器。担当服务器的计算对象610、612等还可用作客户机,例如计算对象或设备620、622、624、626、628等,这是分布式计算环境的特性。
[0071]示例计算设备
[0072]如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图7中所述的通用远程计算机只是计算设备的一个示例。
[0073]各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
[0074]图7由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境700的一个示例,尽管如上所述,计算系统环境700仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境700解释为对在示例性计算系统环境700中所示的组件中的任何一个或其组合有任何依赖。
[0075]参考图7,用于实现一个或多个实施例的示例性远程设备包括计算机710形式的通用计算设备。计算机710的组件可包括,但不限于,处理单元720、系统存储器730、以及将包括系统存储器的各种系统组件耦合到处理单元722的系统总线720。
[0076]计算机710通常包括各种计算机可读介质,并且可以是可由计算机710访问的任何可用介质。系统存储器730可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器730还可包括操作系统、应用程序、其他程序模块、以及程序数据。
[0077]用户可通过输入设备740向计算机710输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口 750之类的接口连接到系统总线722。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口 750连接。
[0078]计算机710可使用到一个或多个其他远程计算机(诸如远程计算机770)的逻辑连接在联网或分布式环境中操作。远程计算机770可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机710所述的任何或全部元件。图7所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络772,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
[0079]如上所述,尽管结合各种计算设备和网络架构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
[0080]而且,存在实现相同或相似功能的多种方法,例如适当的AP1、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的实施例从API (或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象来构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
[0081]本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
[0082]如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
[0083]如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件中,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
[0084]鉴于本文所述的示例系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或相似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
[0085]结语
[0086]尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
[0087]除此处所述的各实施例以外,应当理解,可使用其他相似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且相似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。
【权利要求】
1.一种在计算环境中的、至少部分地在至少一个处理器上执行的方法,包括: 处理经由允许在一个或多个实体和计算机化的设备组件之间进行交互的传感器融合接口接收的请求,包括:访问耦合到多个传感器模块的共享库,其中所述共享库包括与一个或多个实体相关联的多传感器输入数据,从所述共享库提取实体状态数据,并向所述计算机化的设备组件提供对所述实体状态数据的访问。
2.如权利要求1所述的方法,其特征在于,向所述计算机化的设备组件提供对所述实体状态数据的访问还包括发送对应于实体姿态改变的事件。
3.如权利要求1所述的方法,其特征在于,向所述计算机化的设备组件提供对所述实体状态数据的访问还包括发送来自所述一个或多个实体的对所述计算机化的设备的一个或多个命令。
4.如权利要求1所述的方法,其特征在于,向所述计算机化的设备组件提供对所述实体状态数据的访问还包括基于对应于不同时间点的所述实体状态数据生成控制数据。
5.如权利要求1所述的方法,其特征在于,提取所述实体状态数据还包括确定正被所述一个或多个实体操纵的设备的位置和朝向。
6.如权利要求1所述的方法,其特征在于,提取所述实体状态数据还包括在所述多传感器输入数据中移除不想要的扰乱。
7.如权利要求1所述的方法,其特征在于,访问所述共享库还包括配置所述多个传感器模块来细化所述多传感器输入数据。
8.如权利要求1所述的方法,其特征在于,提取所述实体状态数据还包括定义转换成对计算机化的设备组件的命令的象征活动。
9.如权利要求1所述的方法,其特征在于,还包括响应于实体移动更新所述实体状态数据。
10.如权利要求1所述的方法,其特征在于,提取所述实体状态数据还包括产生与所述一个或多个实体相关联的环境模型。
11.如权利要求1所述的方法,其特征在于,提取所述实体状态数据还包括提取与第一实体相关联的所述实体状态数据的第一部分,以及与第二实体相关联的所述实体状态数据的第二部分,并将所述第一部分与所述第二部分关联以确定实体交互。
12.—种在计算环境中的系统,包括,配置用于向计算机化的设备组件提供传感器融合接口的交互机制,其中,对于环境中的每个实体,所述传感器融合接口被配置来生成包括实体状态数据的简档、将所述简档展示给所述计算机化的设备组件、并指令通用知识数据组件响应于实体活动更新所述简档,其中所述通用知识数据组件被配置以根据一模式来集成来自多个传感器模块的多传感器输入数据,并基于所述多传感器输入数据标识所述实体活动。
13.如权利要求12所述的系统,其特征在于,所述交互机制还被配置来基于所述实体活动操作所述物理环境中的计算机化的设备。
14.如权利要求12所述的系统,其特征在于,所述交互机制还被配置来控制由所述计算机化的设备组件生成的虚拟环境上的虚拟角色。
15.如权利要求12所述的系统,其特征在于,所述交互机制还被配置以响应于所述计算机化的设备组件来初始化所述多个传感器模块。
16.如权利要求12所述的系统,其特征在于,所述交互机制还被配置来标识两个或更多个实体之间的冲突。
17.如权利要求12所述的系统,其特征在于,所述交互机制还被配置来展示指示实体移出设备的范围的事件。
18.如权利要求12所述的系统,其特征在于,所述多个传感器模块包括相机、麦克风、数字化仪、运动处理器、游戏控制器、语音识别模块、姿势识别模块、面部识别模块、移动电话或定点设备,或相机、麦克风、数字化仪、运动处理器、游戏控制器、语音识别模块、姿势识别模块、面部识别模块、移动电话或定点设备的任何组合。
19.一个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括: 监视具有实体的物理环境; 处理对与所述实体相关联的实体状态数据的请求; 基于来自计算机化的设备组件的配置数据,从用于产生实体状态数据的多个输入模式中选择至少一个输入模式;以及 将所述实体状态数据发送到所述计算机化的设备组件。
20.如权利要求19所述的一个或多个计算机可读介质,其特征在于,具有包括执行下列各步骤的进一步的计算机可执行指令: 检查与多个实体相关联的实体交互;以及 将事件发送给所述计算机化的设备组件,指示对应于所述物理环境内的所述实体交互的冲突。
【文档编号】H04L12/12GK104012038SQ201280062714
【公开日】2014年8月27日 申请日期:2012年12月15日 优先权日:2011年12月19日
【发明者】A·桑卡, W·L·波特诺依 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1