首页> 中国专利> 在基于网络的沉浸式增强现实中的保护隐私

在基于网络的沉浸式增强现实中的保护隐私

摘要

“AR隐私API”提供了用于允许应用和网页浏览器使用各个内容展现抽象来在广泛的基于网络的沉浸式增强现实(AR)场景中保护用户隐私的API。AR隐私API将传统“网页”的概念扩展到沉浸式“网络室”,其中在用户的屋子或其它空间内展现现有的或新的2D和3D内容的任意期望的组合。有利地,AR隐私API以及相关联的展现抽象由广泛的各种各样的应用和网页内容是可用的,用于通过基于网络的沉浸式AR内容来增强用户的屋子或其它空间。此外,AR隐私API是使用任意现有或新的网页编码平台来实现的,包括但不限于,HTML、XML、CSS、JavaScript等,从而使得现有的网络内容以及编码技术能够被平滑地整合到广泛的网络室AR场景中。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-04

    授权

    授权

  • 2016-08-03

    实质审查的生效 IPC(主分类):H04W12/02 申请日:20141113

    实质审查的生效

  • 2016-07-06

    公开

    公开

说明书

背景技术

在深度映射和目标识别中的新近发展已经为沉浸式室内增强现实(AR)体验铺平 了道路。存在这样的体验,定期地或连续地监测屋子的状态,之后在用户的视野内显示虚拟 目标。例如,现有的硬件和应用能够实现对整个屋子的扫描以获得屋子几何结构以及屋内 的目标或人的3D模型。被安装在屋中的投影机于是可以在屋中的各个表面上显示任意内 容。此外,可以实时地识别语音命令、手势、人、人脸、动物、家具以及其它物体,使得应用能 够感应并且响应真实世界的事件和物体。

随着这些及相关的能力变得普遍,非受信的应用可能已经增加了对有关用户及其 周边事物的各种形式的私人数据的访问。该数据的例子包括屋子大小及布局,屋内人的数 量、大小、活动及性别,诸如家具、书籍、艺术品的物体,以及屋中可视的文字等。解决与该数 据的暴露相关的隐私顾虑的现有方法典型地采用两种不同的方法中的一种方法。

例如,一种典型的方法通常忽略隐私顾虑并且允许应用获得针对原始传感器数据 的不受限的访问,该原始传感器数据为了在基于该传感器数据相对于屋子展现内容中使 用。这种类型的经展现的内容可以用在各种游戏技术、学术项目、垂直整合增强现实体验等 中。清楚的是,这种应用的劣势是期望用户信任这些应用来访问由各种传感器收集的潜在 敏感的数据。

用于解决针对传感器数据的隐私顾虑的另一种类型的方法提供一个或多个应用 程序接口(API),该API向开发者和应用提供针对特定应用所需的传感器信息的子集的大幅 受限的访问。典型地,该API严格控制应用如何来展现内容。例如,移动电话上的一个现有 “增强现实浏览器”包括用于向应用提供将文本或图形注释叠加到在该移动电话的显示器 上可视的“感兴趣点”的能力的API。该应用于是取决于该电话是否指向合适的方向,来决定 在哪里以及如何显示这些注释。例如,该应用可以使用电话的照相机来对该用户临近区域 中的可见饭店进行成像,之后将美食类型、评级或价格范围的显示叠加到该饭店的显示的 图像上。尽管在这样的场景中通过向非受信应用仅提供有限的API访问来提高了对用户隐 私的保护,但是每一有限的API仅支持有限类型的应用,并且对于每一应用来说是量身定制 的。因此,这些类型的API趋于具有有限的有用性。

发明内容

提供本发明内容来以简化的形式介绍概念的选择,其在下面的具体实施方式中被 进一步描述。本发明内容不是要识别所声明的主题的主要特征或必要特征,也不是要被用 于帮助确定所声明主题的范围。此外,尽管本文中可能指出了或讨论了现有技术的某些缺 点,但是所声明主题不是要被限于可以解决或处理那些现有技术中的缺点中的任意或所有 的实现。

通常,本文所述的“AR隐私API”提供用于实现用于允许现有的或新的应用和网页 浏览器使用各种内容展现抽象针对广泛的基于网络的沉浸式增强现实(AR)场景来保护用 户隐私的API的各种技术。AR隐私API将传统“网页”的概念扩展到沉浸式“网络室”,其中在 用户的屋子或其它空间内展现现有的或新的2D和3D内容的任意期望的组合。换言之,本文 中讨论的网络室,旨在被理解为网页到其中实现AR体验的屋子或空间的扩展。AR隐私API允 许网站使用与处理原始传感器数据的传统AR应用相比显著减少的信息,在屋子中展现内 容,并且提供丰富体验。

有利地,AR隐私API以及相关联的展现抽象通过广泛的各种各样的应用中的任意 是可用的,并且具有新的和现有的网络内容二者,用于通过基于网络的沉浸式AR内容来增 强用户的屋子或其它空间。另一优势是,AR隐私API是使用任意现有或新的网页编码平台来 实现的,包括但不限于,HTML、XML、CSS、JavaScript等,从而使得现有的网络内容能够被平 滑地整合到广泛的网络室AR场景中。

对本文描述的各种展现抽象的使用帮助防止应用直接获得与屋子或空间以及该 空间内的物体或人有关的信息,除非由用户认可,从而加强了广泛沉浸式AR场景中的用户 隐私。通常,这些抽象限制向应用发布的信息量,达到功能和用户隐私之间的平衡。这样,AR 隐私API在任意屋子或空间中实现沉浸式增强现实体验的同时,并且在不牺牲网络或基于 浏览器的性能的情况下,限制向应用公开的信息。

例如,由AR隐私API用于保护用户隐私的展现抽象中的一个在本文中被称为“屏幕 抽象”。屏幕抽象向应用公开大小,以及可选地,屋子或其它定义的空间内的可以将“内容” (即,图像、视频和音频的任意组合)投影在其上的各个表面的相对位置或位置。然而,在大 多情形下,无需公开相对位置。实际上,如果公开了该位置信息,则恶意网站可以通过在屋 中扩散众多数量的屏幕来潜在地建模屋子,这些屏幕将附着到屋中的表面中的大多或所 有。有利地,在各个实施例中,AR隐私API在多个屏幕的布置之间评估网站的约束规范,并且 于是确定将满足那些约束(例如,一个屏幕将面向另一个屏幕)的屋中的“屏幕”,而无需向 网站或托管网站的某些服务器发送那些屏幕的相对位置。

本文所述的其它抽象,诸如“输入抽象”允许与经由屏幕抽象展现的内容交互,或 相对于该内容提供输入。请注意,屏幕抽象统一投影的监视器、平板电脑、电视机以及任意 其它表面、物体或空间,在其上可以在屋中投影内容,并且简单地将这些中的每一个视为在 其上展现内容的“屏幕”。此外,屏幕抽象还被设计为允许应用发现每一“屏幕”的能力,诸如 触摸事件的存在,而依然保护用户隐私。此外,在各个实施例中,隐私等级与各个“屏幕”相 关联。例如,在各个实施例中,AR隐私API考虑“屏幕”是否对于屋中的其它人可见,从门是否 可见“屏幕”,“屏幕”显示质量(例如,大小,分辨率、它们是否被投影在有颜色或纹理的区域 上等),并且于是决定使用这些能力中的哪些以及如何使用它们。有利地,屏幕抽象通过在 不向对屏幕抽象进行使用的应用提供原始视频、深度数据或其它潜在敏感信息的情况下来 进行操作,加强了用户隐私。

由AR隐私API提供的另一展现抽象在本文中被称为“语义注释抽象”。通常,语义注 释抽象允许应用描述性地指定内容如何适配于屋中的物体(或“屏幕”)的存在和位置,而无 需向应用泄露或公开该信息。换言之,语义注释抽象允许应用相对于屋中的人、物体以及表 面的任意组合来放置、投影或以其它方式展现内容,而无需向该应用透露这些人、物体和表 面的存在或位置。有利地,这意味着语义注释抽象通过在不向基于网络的应用提供针对与 屋子或屋中的人、物体和表面有关的信息(这可以用于损害用户隐私)的访问情况下来进行 操作,增强了用户隐私。

根据以上的概述,清楚的是本文所述的AR隐私API提供了用于实现用于使用各种 内容展现抽象针对广泛的基于网络的沉浸式增强现实(AR)场景来保护用户隐私的API的各 种技术。除了刚描述的益处外,当结合所附的附图考虑下面的具体实施方式时,AR隐私API 的其它优势将是显而易见的。

附图说明

通过参考下面的描述、所附的权利要求以及附图,将会更好地理解所声明主题的 特定特征、方面和优势,其中:

图1提供了示出了用于与本文所述的AR隐私API的各个实施例一起使用的、用于在 初始化屋子或空间中使用的程序模块的示例性架构流图。

图2示出了关于如何使用各个传感器来导出相对于要由本文所述的AR隐私API展 现内容的环境的潜在特许资源或信息的示例性说明。

图3示出了本文所述的集中于展现任务的AR隐私API的示例性架构概览。

图4示出了本文所述的AR隐私API的受信展现器部件的示例性架构概览。

图5是AR隐私API的测试实施例的示例性架构概览,其中各个“网络室”在分别的管 理网页浏览器控制中是孤立的,以及通过使用用于保护用户隐私的各个扩展的JavaScript 库来与受信展现器通信。

图6是描绘了用于在实现本文所述的AR隐私API的各个实施例中使用的、具有简化 计算和I/O能力的简化通用计算设备的通用系统图。

图7示出了可以用于实现在前面的附图以及如贯穿说明书所描述的任意组合中示 出的特征的任意方面的示例性计算功能。

具体实施方式

在下面所声明主题的实施例的描述中,参照了附图,其构成了本文的一部分,并且 在其中以说明性的方式示出了可以实现所声明的主题的特定实施例。应当理解的是,在不 脱离目前所声明的主题的范围的情况下,可以采用其它实施例以及可以做出结构上的改 变。

1.0引言

通常,如本文所述的“AR隐私API”提供用于实现允许应用和网络浏览器使用各种 内容展现抽象来在广泛的基于网络的沉浸式增强现实(AR)场景中保护用户隐私的API的各 种技术。AR隐私API将传统的“网页”概念扩展到了沉浸式“网络室”,在那里现有的或新2D和 3D内容的任何期望的组合被展现在用户的屋子或其它空间内。

由AR隐私API用来保护用户隐私的展现抽象中的一个在本文中被称为“屏幕抽 象”,其用于在沉浸式室内增强现实的环境中进行展现。该屏幕抽象获得内容(即,图像、视 频和音频的任意组合)可以被投影或以其它方式被显示在其上的屋中的表面(例如,监视 器、平板电脑、电视机和其它任意表面、物体或空间)的相对位置、方位,以及分辨率。本文中 将这些表面中的每一个统称为“屏幕”。此外,屏幕抽象结合诸如输入抽象之类的抽象允许 应用学习哪些交互事件由哪些“屏幕”来支持,诸如,触摸事件对于平板电脑,或鼠标和键盘 对于桌面屏幕。有利地,屏幕抽象通过在无需向使用了屏幕抽象的应用提供原始视频、深度 数据或其它潜在敏感的信息的情况下进行操作,来加强了用户隐私。

本文中这些展现抽象中的另一个被称为AR隐私API的“语义注释抽象”部件。语义 注释抽象(经由AR隐私API的“语义注释API”部件来实现)用于相对于屋中的物体展现内容。 更为具体地,语义注释抽象使用语义抽象来相对于屋中的人、物体和表面的任意组合放置、 投影,或以其它方式展现内容,而无需向应用透露这些人、物体和表面的存在或位置。此外, 通过使用描述性的基于约束的布局方案,语义注释使得应用能够产生利用物体识别能力的 AR体验,但是不向应用公开物体、人或其它敏感信息的存在或位置。

有利地,AR隐私API允许新的和现有的或传统的网站或内容能够适应于沉浸式网 络室AR场景。特别地,AR隐私API和相关联的展现抽象可以由广泛的各种类型的应用和网络 内容用于通过基于网络的沉浸式AR内容增强用户的屋子或其它空间。此外,使用任意现有 或新的网页编码平台(包括但不限于HTML、XML、CSS、JavaScript等)来实现AR隐私API,从而 使得现有的网络内容和编码技术能够被平滑地整合到广泛的网络室AR场景中。

1.1系统综述

如上所述,AR隐私API提供用于实现允许应用和网页浏览器使用各种内容展现抽 象来在广泛的基于网络的沉浸式增强现实(AR)场景中保护用户隐私的API的技术。通过图1 的整体系统示图示出了在与AR隐私API一起使用的初始化屋子或空间中使用的各种过程。 特别地,如本文所述,图1的系统示图示出了程序模块和用于在确定由AR隐私API用于展现 内容的各种约束中使用的传感器之间的相互关系。此外,尽管图1的系统示图示出了AR隐私 API的各个实施例的高层视图,但是图1不是要提供对贯穿本文所描述的AR隐私API的每一 可能的实施例的穷举或完整的说明。

此外,应当注意到的是,可由图1中的虚线或点线表示的任意矩形以及矩形之间的 互连接,表示本文所述的AR隐私API的替代实施例,并且这些替代实施例中的任意或所有实 施例可以与贯穿本文所述的其它替代实施例结合使用。

通常,如通过图1所示,由AR隐私API实现的过程通过确定在屋子或用户周围的空 间中什么资源是可用的,以及在该屋子或空间中什么隐私限制或约束可以与各种“屏幕”、 空间、人、物体等相关联,来开始操作。

更为具体地,环境识别模块100评估来自各种传感器(例如,传感器110、120、130, 也见图2)的数据,以及来自用户接口模块140的任意输入,以识别或更新显示器设备和可以 将内容显示或投影到其上的屋子或空间中的表面、物体等。此外,环境识别模块100识别或 确定额外的信息,包括但不限于,可用的“屏幕”的位置和配置、屋子中的人或动物,屋子中 的物体、家具等,屋子或空间的整体布局或几何结构等。如本文更为详细描述的,得到的“环 境信息”150于是被保存以由AR隐私API来使用。各个实施例中,可选地,使用传感器数据和/ 或来自用户接口模块140的额外输入来动态更新由环境识别模块100提供的环境信息150。

之后,抽象模块170评估环境信息150并且生成语义注释抽象160,使得AR隐私API 可以在不向外部的站点公开或透露潜在私人信息的情况下,在该环境信息上或相对其来展 现内容。

用户接口模块140被用于各种目的。例如,用户接口模块140在各个实施例中被用 于定义或设置各种“屏幕”的可用性以及定义或设置与这些屏幕或与有关屋子或在用户周 围的空间中的人、物体、布局等的广泛信息相关联的各种许可165(例如,许可状态、状况、标 志、小型文本文件(cookie)等)(见章节2.5中对许可的讨论)。在各个实施例中,这些许可被 包含在各种语义注释抽象160中,可以经由用户接口模块140对其进行设置或编辑。

2.0AR隐私API的操作细节

上述程序模块用于实现AR隐私API的各个实施例。如上面概括的,AR隐私API提供 用于实现允许应用和网页浏览器使用各种内容展现抽象来在广泛的基于网络的沉浸式增 强现实(AR)场景中保护用户隐私的API的各种技术。下面的章节提供了对AR隐私API的各个 实施例的操作的更为详细的讨论,以及对用于实现针对图1的章节1中所述的程序模块的示 例性方法的更为详细的讨论。特别地,下面的章节提供了AR隐私API的各个实施例的例子和 操作细节,包括:

·对AR隐私API的操作综述;

·使用屏幕抽象和语义注释的“网络室”展现;

·使用输入抽象来接收用户输入;

·AR隐私API对网络环境的适配;

·各种隐私和安全考虑;

·AR隐私API的示例性体系架构;

·AR隐私API的示例性实现;以及

·对现有的网络内容的优化的各种考虑。

2.1操作概述:

如上所述,AR隐私API提供用于在广泛的基于网络的沉浸式AR场景中保护用户隐 私的各种内容展现抽象。AR隐私API将传统的“网页”概念扩展到沉浸式“网络室”,在那里现 有或新2D和3D内容的任意期望的组合被展现在用户的屋子或其它空间内。

AR隐私API和相关联的展现抽象可广泛的应用和网络内容用于通过基于网络的沉 浸式AR内容来增强用户的屋子或其它空间。此外,使用任意现有或新的网页编码平台(包括 但不限于HTML、XML、CSS、JavaScript等)来实现AR隐私API,从而使得现有的网络内容和编 码技术能够被平滑地整合到广泛的网络室AR场景中。

2.2网络室展现

通常,AR隐私API的展现抽象提供用于展现屋子或其它空间周围的2D和3D浏览器 内容的任意组合以实现上面提及的“网络室”的概念的强大工具。测试环境中,AR隐私API由 三种主要展现抽象组成。然而,应当理解的是,在AR隐私API的各个实现中可以使用更多或 更少类型的展现抽象,以及出于解释的目的,下面对该三种主要展现抽象进行了详细描述。

本文中将该三种示例性展现抽象中的第一展现抽象称为“片段抽象”。通常,片段 抽象表示网络内容的单元(例如,完整的网页、页面的视频部分、帧中的广告、网页登录GUI、 新闻报道、天气显示等)。第二展现抽象是前面提及的“屏幕抽象”,其表示屋中的在其上网 页可以显示片段的矩形或任意其它形状。更为具体地,这些屏幕抽象对应于可以在其上投 影或显示内容的任意表面或物体,或对应于诸如监视器、电视机、媒体设备等的任意显示设 备。这些展现抽象中的第三展现抽象是前面提及的语义注释抽象。语义注释抽象允许网页 相对于屋中的注释的内容来放置片段。在下面的章节中对这些展现抽象中的每一个进行更 为详细的讨论。

2.2.1片段

通常,网页以被称为元素的内容矩形块为中心,网页设计者将该被称为元素的内 容矩形块聚集在一起形成紧密结合的树结构:已知的文档对象模型(DOM)树,浏览器将该树 结构显示为网页。这些元素中的许多元素对应于HTML容器标签,该容器标签封装网页内容 的子树。AR隐私API通过提供在本文中被称为“片段”的容器标签来向传统的DOM树添加新的 容器标签。AR隐私API解释片段标签以允许设计者将内容子树分解为用户屋中的任意表面 和显示。在章节2.4中进一步详细描述了用于实现片段标签的示例性语法。请注意,AR隐私 API可以使用其它现有的容器标签(例如,头文件、分区标记(div)、区段(span)等)来执行相 同的功能。然而,对具有新名字的容器的使用(例如,对“片段”标签的使用)允许设计者快速 地将片段与DOM中的其它容器进行区分。

有利地,通过显示DOM树的子树,而非为每个片段生成新的DOM树,AR隐私API使得 网页能够如单个单元而非一组分离的单元来运行。这从开发的立场来看是便利的,因为网 页开发者可以以与网页或网站相同的方式来开发网络室,并且现有的网页或网站可以容易 地适配网络室以实现广泛的沉浸式AR场景。

2.2.2屏幕抽象

AR隐私API以一种在保护用户隐私的同时使得网站能够在除了常规的输出设备 (诸如监视器、TV、媒体播放器等)之外的、屋子或其它空间周围的任意表面上显示内容的方 式来使用屏幕抽象。此外,这些不同类型的显示器和表面中的每一个在“屏幕抽象”下统一, 其中,这些实体中的每一个被称为“屏幕”。见章节2.6.1对于在屋子或空间中围绕用户的 “屏幕”检测的讨论。

如上所述,屏幕抽象表示在屋子中网页可以在其上显示片段的矩形或其它任意形 状。然而,出于解释的目的,下面的讨论将通常涉及矩形片段。

在矩形片段的情形下,“屏幕”具有四个属性:大小、方位、位置和能力。大小属性指 示“屏幕的”以像素为单位的高度和宽度。方位指定“屏幕”是水平放置、还是垂直放置(以及 可选地它是斜的或经旋转的)。请注意,如果“屏幕”对应于物理可移动的设备、物体或表面, 则方位属性可以是动态的。位置属性是在屋子中相对于屋子中的特定原点的“屏幕的”(x, y,z)坐标。能力属性是用于描述在“屏幕”上局部支持的交互类型(例如,触摸、音频等)的数 据集。请注意,章节2.3.1提供了关于屏幕局部输入和事件的额外讨论。

通过使用AR隐私API,网页可以向每一“屏幕”分配片段以在屋子中显示其内容。当 发生上述情形时,片段扩展或收缩以填充“屏幕”,利用浏览器的现有的用于将内容适配于 变化的视窗大小的能力。请注意,这是取决于网站的。还可以维持某一固定的大小,并且不 使用整个屏幕。有利地,由于AR隐私API不向网站或托管该站点的服务器公开该缩放信息, 从而网站或服务器不知道片段是否被缩放,或在固定大小的“屏幕”的情形下在片段中是否 存在未被使用的更多区域。在测试实施例中,如在章节2.4中更为详细讨论的,通过 JavaScript来知悉用于向任意特定“屏幕”分配任意特定片段的机制。然而,应当理解的是, 可以用任意期望的编码或脚本语言来实现该能力,并且AR隐私API的该实施例不限于基于 JavaScript的实现。

2.2.3语义注释

通常,AR隐私API允许网络室来指定HTML(或其它网络语言或脚本)中的内容,该内 容要相对于包括静态和动态标记之一或两者的各种语义注释,被展现到各种“屏幕”。AR隐 私API的受信展现器于是显示由网络室指定的内容(如果可能),但是不向网络室或其它应 用发布标记的位置或存在。此外,如本文所讨论的,旨在将网络室理解为将网页(例如,展现 在用户的显示器设备上)扩展到屋子或空间,贯穿该屋子或空间来展现网络室的AR内容。

更为具体地,语义注释被当作标记来使用以确定在网络室中的哪里以及如何来展 现内容。语义注释包括静态和动态标记类型二者。静态标记涉及屋子中的将要被AR隐私API 视为“屏幕”的固定或静止表面的位置。动态标记涉及屋子中的移动的物体或人。例如,使用 诸如设备之类的设备的传感器,各种动态标记可以包括,例如,针对屋子中的用户所 识别的骨架的头、左手以及右手。

在各个实施例中,网络室使用描述性展现用于放置片段。每一片段使用语义注释 抽象和用于确保内容被放置在(即,被展现到)特定类型的表面(例如,诸如墙、门的垂直表 面或其它表面)上的可选展现约束,以及用于将内容与网络室的一个或多个其它片段对齐 (水平和垂直之一或两者)的另一可选约束。

屏幕抽象给予了网络室在内容布置上的特定控制,但是相对地,通过不允许网络 室利用目标识别能力来保护隐私(例如,除非经授权,否则没有对原始照相机或音频数据的 直接访问)。更为具体地,在各个实施例中,屏幕抽象确保网页甚至没有对得到的用于放置 以及展现图像的3D结构的访问。这样,在各个实施例中,当访问照相机或音频时,除非特别 授权,否则不能启动,但是屏幕API允许元素知道它们在3D中在哪里被展现,这是因为这些 元素指定了该位置。这防止被托管在任意服务器或云环境上的网络室获得有关用户或由AR 隐私API要将内容展现到的屋子或用户周围的空间的潜在私人信息。例如,想要在用户的头 附近显示仪表盘的网络室没有办法知道哪些“屏幕”是用户可见的或在用户的头附近。此 外,想要在识别的真实世界物体附近显示虚拟物体(例如,在紧邻地球仪的表面上的旅行广 告)的网络室不能够检测出哪些“屏幕”是最靠近该真实世界物体的。因此,屏幕抽象凭借其 自身,是不能完全解决关于帮助网络室使用物体识别用于展现的同时保护用户隐私的问题 的。

然而,结合由语义注释提供的在屋子中标记特定条目或位置的概念,AR隐私API使 用标记来在不向网页(或相关联的服务器或云主机)公开潜在私人信息的情况下指导片段 布局。如上所述,可以静态放置语义注释;例如,在各个实施例中,AR隐私API使用语义注释 来向各个表面添加“垂直”或“水平”注释以反映屋子或空间中的特定表面的方位。此外,注 释还可以是动态的,诸如在物体在屋子周围移动时追踪该物体的位置、追踪用户的位置、读 取用于编码注释信息的QR代码等。

结合AR隐私API,网页或网络室可以在不知道注释是否存在或其位置的情况下相 对于语义注释放置内容片段,从而防止公开潜在私人信息。特别地,网页或网络室使用字符 串(或其它数据元素)来识别语义注释,并且于是指定它希望片段相对于该注释如何来显 现。此外,可以相对于多个注释来放置片段。在该情形下,AR隐私API的约束求解器部件用来 确定要在屋中的哪里放置片段,而不将结果回报给网页或网络室。换言之,约束求解器用于 在不向网页公开语义注释的条目的存在或位置的情况下,来确定网站放置在屋中的语义注 释的条目附近的片段的位置。

有利地,在各个实施例中,注释可以映射到屋子或空间中的多个位置。例如,“椅 子”注释可以注释屋中的每一把椅子。约束求解器在这些注释之间不做区分,并且在多个可 能的注释的前提下,将会把片段放置在最接近最充分满足由网页指定的约束的注释实例。 通常,约束求解器用于在不向网页公开语义注释的条目的存在或位置的情况下,确定网站 放置在屋中的语义注释的条目附近的片段的位置。

此外,AR隐私API的语义注释部件还允许片段相对于其它片段来放置自己,如该语 义注释部件将每个片段的展现位置披露为语义注释。通过这些在适当位置的注释,网页能 够依赖于语义注释系统来满足其所有的布局需求,而无需将片段不得不贴附到特定的“屏 幕”。尽管AR隐私API能够使用完全的特定于约束的布局,但是通常来说使用结合上面提及 的屏幕抽象的语义注释更为简单。

在各个实施例中,AR隐私API被允许直接向网页公开选择语义注释的位置以向网 站提供在其如何在屋子或空间中显示内容上的更多控制。这尤其在注释映射到多个位置时 是有用的。对于每一这样的注释,网站具有在3D空间中对其位置的访问,并且可以确定何时 或是否该注释与屋子中的特定“屏幕”联系。然而,准确的位置和联系信息依然是特许的,使 得不公开潜在私人信息。请注意,章节2.4提供了关于如何以对网页开发者友好的方式来公 开涉及语义注释的事件,而与此同时依然保护用户隐私的讨论。

2.3输入抽象

AR隐私API提供了用于自然实现在章节2.2中所述的展现抽象的同时保持可操作 于常规网页上的现有事件的输入事件的综合框架。AR隐私API支持广泛的输入事件,并且可 以简单地适应于包括在本文提及的讨论的角度上的任意期望类型的输入。在各个实施例 中,这些输入事件被分类为三种事件类型,包括:1)屏幕局部事件;2)全局事件,以及3)用于 维持与当前的网络后向兼容性的传统输入事件(也被称为传统模拟)。下面对这些事件类型 中的每一种进行了更为详细的讨论。

2.3.1屏幕局部事件

屏幕局部事件被定义为发生在特定“屏幕”上的事件。这有两种形式:准确屏幕局 部事件以及非准确屏幕局部事件。

准确屏幕局部事件发生在“屏幕”上的特定(x,y)坐标处。与常规网页上的鼠标事 件类似,屏幕局部事件转化为用于可以“捕捉”到DOM树中的目标元素或从DOM树中的目标元 素“冒泡的”各个网页元素上的事件。在各个实施例中,准确屏幕局部事件以其将会是最常 见的方式实现为代码。例如,可以在触摸平板电脑显示器或触摸墙之后或根据玩具枪上的 激光指针,来发起准确屏幕局部位置事件。服务器不知道“屏幕”的性质或用于产生该位置 的事件,除非特别要求。

有利地,向网站或服务器发送回尽可能少的信息的原则引起了对浏览器的更多能 力的定义。例如,假设“屏幕”上的显示要始终面向用户。在该情形下,代替向服务器发送用 户的方向,服务器可以替代地提供足够的信息以实现向不同的方向展现(诸如,3D模型、全 景以及多视图),其中AR隐私API以及浏览器于是选择在正确的方向上展现“屏幕”。

非准确屏幕局部事件发生在“屏幕”上。然而,非准确屏幕局部事件对于指定其在 “屏幕”上的哪里发生的来说不够准确。这允许网页开发者向贴附到“屏幕”的片段添加事件 监听器以捕获这些事件。此外,与准确屏幕局部事件相反,非准确屏幕局部事件不“冒泡”, 这是由于不存在动作所针对的明确的根元素。

通常,每一“屏幕”描述其通过其能力属性支持的输入事件集合。请注意,能力属性 是上面在章节2.2.2中讨论的四个“屏幕”属性中的一个。能力集合中的每一条目是与屏幕 局部事件名称对应的字符串或数据元素,该字符串或数据元素可以在JavaScriptAPI中 (或在任何其它脚本或基于编码语言的API中)用于向事件分配事件监听器。

2.3.2全局事件

某些类型的输入事件不明确地针对屋子或空间中的任何特定的“屏幕”或位置。在 常规的网页上存在类似的输入事件。例如,在许多移动设备上,网站可以响应于方位改变而 注册事件处理器(例如,当设备从竖向变化到横向时,改变显示的网页的布局和/或内容)。 AR隐私API框架中的全局输入事件以相同的方式工作。然而,应当理解的是,全局输入事件 包括广泛的事件集合(例如,手势、语音命令、传感器数据等),其不限于设备方位改变。

大量的输入设备自然地映射到全局输入事件。例如,如果人在深度照相机处做手 势,那么在没有额外的可能不可获得的信息的情况下(诸如,目光),这些手势的目标是什么 可能是不清楚的。当可获得该信息时,AR隐私API提供用于将这些事件组合为新屏幕局部事 件的能力。

2.3.3传统输入事件(传统模拟)

常规网站通常依赖于具有为导航和输入存在的键盘和鼠标(或相应的输入形态)。 尽管许多触摸设备不具有这两者,它们使用触摸事件以及屏幕上的键盘来模拟这些输入类 型。然而,许多AR输入设备对于模拟较大区域上的精确到像素的鼠标移动来说不够准确。例 如,深度传感器目前提供640×480的分辨率。可以使用语音识别来模拟键盘输入,但 是这不适用于所有形式的文本输入。

在各个实施例中,AR隐私API提供一种妥协类型的解决方案。特别地,在各个实施 例中,AR隐私API在那些提供适用于模拟鼠标和键盘事件的屏幕局部输入的“屏幕”上支持 鼠标和键盘事件。例如,触摸显示器可以以常规的方式来模拟鼠标和键盘事件。类似地,具 有精确的目光跟踪的系统可以利用针对目标的注视和针对动作的手势的组合来模拟鼠标 和键盘。该概念的其它例子包括但不限于,使用激光指针在屏幕上标记点、用手指或在屏幕 上放置物理物体。从而,如在章节2.3.1中所讨论的,将键盘和鼠标(以及相应的输入形态) 视为屏幕局部事件。

为了提供与现有的网页和技术的兼容性,AR隐私API设置包括用于支持鼠标和键 盘事件的至少一个“屏幕”。然而,应当理解的是,在增加各种AR设备的分辨率和能力的前提 下,许多或所有此种设备将能够以足够精度模拟指向型输入以提供针对屋子中的所有“屏 幕”的鼠标模拟。例如,在足够分辨率的前提下,有可能通过以足够的分辨率和频率追踪用 户的手指(或目光)来从屋子的各个角落确定用户在特定的“屏幕”上指向(或看向)哪里,来 模拟动态鼠标或指针输入。

2.4对网络环境的适配:

通常,常规的网站是围绕三种核心技术来构建的,包括:1)用于描述内容的布局以 及结构的HTML(或其它脚本语言);2)用于描述内容样式的CSS;以及3)用于描述交互的 JavaScript(或其它可执行的编码语言)。AR隐私API提供用于描述网络室布局、样式以及交 互的这三种技术中的现有浏览器功能,以及用于允许在用户的屋子的3D空间中展现现有网 页或网站的超集合。此外,应当理解的是,AR隐私API不是要限于与HTML、CSS、JavaScript或 任何其它特定的脚本或语言一起使用,并且本文中提供的对该脚本和语言的讨论是出于解 释的目的提出的。

2.4.1示例性HTML适配:

在各个实施例中,AR隐私API的展现抽象使用如上面在本文的章节2.2中讨论的被 称为片段的内容的紧密结合的矩形(或任意其它形状)。通过向HTML添加片段容器标签(即, “<segment></segment>”)来增强常规HTML。片段容器标签用于将任意HTML内容注释为片 段。例如,片段容器标签可以用于,例如通过使用诸如“<segment>HelloWorld</segment>” 的HTML脚本语言来注释诸如“HelloWorld”的文本字符串的内容。

请注意,片段容器标签的内容不限于文本。换言之,任何可以被放置在任何常规 HTML容器(例如,“<div></div>”容器)中的内容同样可以被放置在片段容器标签中。此外, 可以使用除了“片段”之外的用于界定这些标签的术语(例如,“区段”、“部分”等)来实现包 含在片段容器标签中的概念,只要AR隐私API被编码为理解使用的术语是单独的容器,该容 器旨在表示用于要以本文中所述的片段的方式来处理的内容的紧密结合的部分。此外,通 过使用诸如CSS的样式清单等,片段标签还可以指定其它容器标签支持的各种与大小有关 的属性,诸如,例如,最小宽度、最小高度、宽度和高度。在各个实施例中,除了大小属性之 外,片段标签不影响其所包含的内容的2D布局。然而,若需要,额外属性可以与片段标签相 关联,以解决特定的内容布局问题。

片段标签以各种方式区别于其它HTML标签。首先,它们在屋子或空间中是不可见 的,除非网页使用CSS(见章节2.4.2)、JavaScript(见章节2.4.3)或其它网络编码语言为它 们指定目标“屏幕”或注释约束。

此外,诸如例如如下的嵌套片段标签:

可以用于一次在屋中的多个地点中显示内容。请注意,这可能会给传统的网站造 成额外的复杂性,因为传统的鼠标输入事件等假定内容是在单个显示器设备上被展现的。 从而,在嵌套的片段容器标签的情形下,现有的网站将不会在来源于一个屋子位置与另一 个屋子位置的鼠标事件等之间相互区分。因此,在该情形下,AR隐私API可选地充当以一种 允许传统网页将特定输入事件处理为仿佛它们是相对于在单个显示器设备上展现的内容 被接收到的方式,来截获这些输入事件并且将其报告给传统网页的中间媒介。

2.4.2示例性CSS适配:

许多网站使用层叠样式表(CSS)来设计他们的网页。此外,CSS标准的更新版本指 定了用于有条件地设计网页的丰富功能。例如,CSS媒体查询允许响应于诸如显示器方位改 变、鼠标悬停上的颜色改变等事件来将样式应用于内容。如在下面的段落中进一步详细讨 论的,AR隐私API构建在这些技术的基础之上,并且额外地增加了各种CSS约束属性用于描 述性地指定片段相对于语义注释的布局。

2.4.2.1媒体查询

媒体查询允许网页响应于变化的环境来改变内容的样式。例如,媒体查询允许站 点的移动版本响应于当用户旋转电话时方位的改变来调整内容。此外,媒体查询允许网页 响应在用户调整浏览器窗口的大小时的高度和宽度的改变。

通常,常规媒体查询的结构如下:media<mediatype>and<mediaexpressions> {…}。例如,如果“屏幕”具有16:9的宽高比,则调用如下的媒体查询:media“screen”and (device-aspect-ratio:16/9){…}。由于用户的屋子或空间中的各个“屏幕”可以具有广泛 变化的大小、形状、配置文件等,AR隐私API将“屏幕”媒体类型进行扩展以允许网页指定用 于片段的有条件样式,以适应于跨屋子的变化的“屏幕”属性。

不幸的是,由于常规媒体查询假定了单个显示器设备,所以它们对于整个网页来 说是全局的。因此,AR隐私API将媒体查询的范围扩展到了由AR隐私API在屋子或用户周围 的空间中展现的多屏幕和多片段AR环境中的各个“屏幕”或各个片段。

有利地,在各个实施例中,AR隐私API通过允许样式根据“屏幕”的上下文具有多个 值,来使用现有的针对“屏幕”的媒体查询。换言之,AR隐私API使得能够针对每个“屏幕”评 估一次CSS,并且根据元素要被投影到其上的“屏幕”来将CSS应用于该元素。对于使用语义 注释约束放置的片段而言,“屏幕”是片段的大小。有利地,该特征在将内容适配改变的“屏 幕”状况中为网页设计者提供了灵活性。

2.4.2.2语义注释

AR隐私API为片段元素添加了用于指定关于在屋子或用户周围的空间中的什么位 置来显现特定片段的约束的各种CSS属性。在下面的表1中列出了该约束的例子。这些示例 性约束中的每一个采用了可以包括注释名称和实例GUID的混合的列表。注释名称标识注释 的类型(诸如,椅子、桌子、墙、猫、人等),而实例GUID表示注释的实例(诸如,屋中的特定椅 子)。如下面在章节2.4.3中讨论的,通过JavaScript语义注释API来取回实例GUID。

表1:示例性AR隐私APICSS约束

2.4.2.3其它可能的使用

清楚地,在由AR隐私API实现的环境中存在广泛的各种各样的CSS的可能的使用和 应用。本文中只对一小分部这样的例子进行了讨论,并且应当理解的是,本文中所述的例子 不是要限制AR隐私API要如何与各种CSS能力一起使用。例如,CSS动画允许网页设计者在无 需做任何GPU编程的情况下使用GPU加速动画。在各个实施例中,AR隐私API适用于利用基于 CSS3的动画技术(例如,3DCSS动画),允许网页在无需使用任何屋子信息的情况下指定动 画。浏览器展现器于是与AR隐私API对接以确定如何使用其关于该屋子已知的来执行动画。 此外,在各个实施例中,AR隐私API还利用基于CSS3的技术,用于允许使用各种透视技术(例 如,投影到倾斜面板,或使投影到非倾斜面板的内容倾斜)将2D样式展现在3D中。

2.4.3示例性JavaScript适配

大多数常规的浏览器通过JavaScript公开综合功能用于动态响应事件以及改变 网页结构、内容和样式。如网页编码和构建领域的技术人员所熟知的,有可能使用 JavaScript和标准浏览器API将HTML和CSS加入到网页来在空中构建整个网页或网站。在各 个实施例中,AR隐私API通过经由JavaScript(或其它网页编码或脚本语言)公开本文所述 的功能中的一些或所有,来在沉浸式AR体验的背景中实现这些能力。

如网页编码和构建领域的技术人员所熟知的,许多网页浏览器公开用于在被称为 “addEventListener”的网页浏览器中订阅事件的标准化方法。典型地,该方法在作为事件 的目标的网页元素上被调用,并且将用于唯一标识被订阅的事件的字符串(或数据元素)以 及用于当事件激发时浏览器调用的回调函数一起传递给该网页元素。

在各个实施例中,AR隐私API为其展现抽象和传感器输入增强了现有事件与新事 件的集合。类似于网页上的现有事件,这些事件在它们是“捕捉”到文件对象模型(DOM)树中 的它们的目标,还是从文档对象模型(DOM)树中的它们的目标“冒泡”方面变化,其通常被称 为“起泡”。如在章节2.3.1中所述,各种准确屏幕局部事件支持起泡。

请注意下面的表2,其示出了传统事件的示例性集合,其中的一些支持起泡,而其 中的一些不支持。表2中的传统事件描述源自知名的摩斯拉开发者网络(Mozilla DeveloperNetwork)。此外,表2还提供了被添加到传统事件集合用于在实现AR隐私API的 各个实施例中使用的若干新事件的例子。请注意,用于描述表2中示出的各个新事件的名称 不具有特定意义,而旨在概括性地描述与这些事件有关的功能。请注意,AR隐私API在支持 各个新增事件之外,直接支持或模拟传统事件。请注意,在下面表3中提供的新的全局事件 的各个例子中,用于描述这些事件的名称,除了概括性描述与这些全局事件有关的功能之 外,不具有特定意义。此外请注意,在表2和表3二者中的新增事件中的一些或全部提供了潜 在敏感信息。因此,在各个实施例中,AR隐私API允许或拒绝(取决于自动的或用户指定的隐 私设置)用于网页访问这些新事件的提升特许。

表2:准确屏幕局部事件

表3:全局事件

2.4.3.1屏幕

在各个实施例中,“屏幕”是展现AR体验的当前屋子或空间的全局属性。在各个实 施例中,尽管不要求,该全局属性是只读的。由表4提供了AR隐私API的“屏幕”部件(本文中 被称为“屏幕API”)的各种示例性属性。例如,经由getAll()属性提供所有“屏幕”的阵列(例 如,“screen.getAll()”)。每个“屏幕”的属性可以用于确定如何在它们之间放置内容。请注 意,用于描述表4中示出的各个属性的名称,除了概括性描述与这些属性有关的功能之外, 不具有特定意义。

通常,涉及“屏幕”的事件是全局的(见表3),或通过附着其的片段被透露给网页 (见表5)。请注意,用于描述在表5中示出的各个属性和事件的名称,除了概括性地描述与这 些属性和事件有关的功能之外,不具有特定意义。还请注意,如需要,可以将额外的属性添 加到屏幕API中,以解决特定的布局或展现问题。这些属性中的一些或全部可以提供潜在敏 感信息。因此,AR隐私API允许或拒绝(取决于自动的或用户隐私设置)用于网页访问这些属 性的提升特许。

表4:屏幕API的属性

2.4.3.2片段

表5提供了用于AR隐私API的片段部件(本文被称为“片段API”)的各种示例性非准 确屏幕局部事件和属性。当片段API使用AR隐私API的语义注释部件时,这些事件中的一些 可能是不可用的,因为它们可能取决于不是在所有“屏幕”上都存在的特定“屏幕”能力。就 其它属性和事件而言,这些属性和事件中的一些或全部可以提供潜在敏感信息。因此,在各 个实施例中,AR隐私API允许或拒绝(取决于自动的或用户指定的隐私设置)用于网页访问 这些属性和事件的提升特许。

表5:片段API

在由片段API提供的属性和事件前提下,可以像任何其它HTML元素那样动态地构 建片段。例如,诸如“document.createElement(“segment”)”的脚本可以由AR隐私API用来 生成新<segment>标签,修改其属性,并且之后将其插入到DOM树中使之成为“活动的”。上面 示出的表5概括了AR隐私API的片段API部件的示例性实现。请注意,如果片段不依赖于语义 注释来放置,则网页开发者可以在该片段可见之前将其明确地分配给该片段的“屏幕”属 性。还请注意,可以使用用于操作CSS属性的标准JavaScriptAPI来指定片段的大小以及语 义注释约束。

2.4.3.3语义注释

如上所述,语义注释向网页提供在无需知道条目的位置的情况下相对于屋中的条 目放置内容的能力。注释可以可选地提供有关注释的对象的额外信息。例如,与动作角色相 对应的注释可以包括动作角色的模型编号和当前的姿势。请注意,各个注释实例可以具有 定制属性;例如,球注释可以指定球的半径。网页可以通过使用用于操作CSS的现有 JavaScript函数,使用适合的CSS约束中的注释实例的注释名称或GUID,来动态地使用约束 中的这些注释。参见章节2.4.2进行的对CSS约束的额外讨论。

表6提供了AR隐私API的基础语义注释部件(本文被称为“语义注释API”)的示例性 实现。就其它属性和事件而言,这些属性和事件中的一些或全部可以提供潜在敏感信息。因 此,在各个实施例中,AR隐私API允许或拒绝(取决于自动的或用户指定的隐私设置)用于网 页访问这些属性和事件的提升特许。请注意,用于描述在表6中示出的各个属性和事件的名 称,除了概括性地描述与这些属性和事件有关的功能之外,不具有特定意义。

表6:语义注释API

2.5隐私和安全考虑

如上所述,由AR隐私API实现的对常规网页编码的新扩展的各种属性和事件可以 提供潜在敏感信息。因此,在各个实施例中,AR隐私API允许或拒绝(取决于自动或用户指定 的隐私设置)用于网页访问这些属性和事件的提升特许。通常,AR隐私API支持针对每个网 页或网络室的细粒度的许可,并且对于支持用于实现该许可的多种方法来说是足够灵活 的。例子包括但不限于,对用于控制多个许可的清单的使用,对第一次使用允许或拒绝特定 许可的提示,用于设置一个或多个许可状态的用户驱动的访问控制UI等。

以下的段落在传统网页应用中没有发现的由那些扩展引起的各种隐私顾虑的角 度上,提供了对那些扩展的一些安全和隐私含义的讨论。然而,应当理解的是,在不脱离本 文描述的技术的范围的情况下,广泛的额外安全及隐私措施可以适用于与AR隐私API一起 使用。

此外,以下的讨论还提供了各种技术,包括前面提及的层抽象和“屏幕”隐私模式, 用于解决各种隐私顾虑。此外,以下讨论描述了基于许可的系统,其用于通过来自用户的许 可揭露API的敏感部分。通常,该许可系统中的原则是内容来源,其中,如在下面的段落中讨 论的,每一原则具有对由经过评估原始传感器数据识别的结构、物体、人脸等定义的特许资 源的访问。

2.5.1示例性隐私问题

通常,网络室的片段不具有用于可视地确定它们的来源的显而易见的方法。在传 统网页浏览器中,URL栏建立内容出处,清楚地向用户说明哪个网站提供了网页内容。相反, AR隐私API通常不将URL栏与每个显示的片段相关联,从而引起缺少内容出处的问题。该问 题与由电话和平板电脑上的“沉浸式”浏览器所面临的问题类似,该浏览器占用整个“屏幕” 而缺少可见的URL栏。然而,与那些类型的沉浸式浏览器相反,由AR隐私API实现的片段可以 在任意可见的表面上被展现。相反地,在各个实施例中,由AR隐私API将在“屏幕”上被展现 的内容的URL或源,可选地显示在该“屏幕”上。请注意,这表示了出于解释目的的当前网页 的理想化例子。URL包括来源于不同服务器的片段,无需托管服务器的控制。

缺少内容出处引起有关何如显示多个网络室的第二问题。早先,常规网页浏览器 利用现有的窗口抽象来将网站分成分别的窗口。最近,常规网页浏览器使用选项卡来可视 地描述来自不同站点的内容。尽管对于AR隐私API来说有可能允许来自不同网络室的片段 掺入到物理屋子或空间中,但是这会潜在地引起安全或隐私问题,其中,一个网络室能够模 仿另一个网络室的片段。

AR隐私API通过向网络平台添加特许资源以限制对从原始传感器数据导出的信息 的公开,来解决该问题。特别地,如贯穿章节2.4所讨论的,由AR隐私API实现的各个事件和 属性可以提供潜在敏感信息。从而,在各个实施例中,不是直接向网络室默认公开整个API, 而是AR隐私API按API关联被授予给每个网络室(或网页)的一个或多个许可的列表。AR隐私 API的受信展现器部件于是可以动态检查许可,并且当网络室(或网页)尝试访问特许API时 允许或拒绝访问。

通常,图2示出了由对从各个传感器导出的原始数据的评估产生的潜在特许资源 的列表(例如,通过图1中的环境识别模块)。特别地,信息典型地来源于三种类型的传感器: 音频传感器200、RGB传感器205(或能够以任意色彩空间来捕获图片的照相机)、深度传感器 210等。然而,应当理解的是,还可以使用其它传感器类型,例如,微波、红外、压力等。

信息被提炼到用于确定环境信息的结构中(例如,图1中的元素150),该环境信息 用于以一种允许AR隐私API在不将潜在特许的资源或信息公开给外部站点或公开给没有被 授权接收该信息的网络的情况下展现内容的方式,来实现对屋子或用户周围的空间的抽 象。

通过对各个传感器的评估导出或提取的数据或信息的例子包括但不限于,屋子几 何结构215,屋子或空间中的平面、物体等(220),关键词、语法、语音特征等(240),人脸225, 骨架轮廓230,平面纹理235。可以于是在其它原始传感器数据的上下文中评估该信息中的 一些或全部,以推出进一步信息,包括但不限于,屋中的一个或多个人的性别245,屋中的一 个或多个人的头位置、方位或追踪信息250,屋中的一个或多个人的手的位置、方位或追踪 信息255,屋中的一个或多个人的脚的位置、方位或追踪信息260,人纹理265(诸如衣服、肤 色等)。

2.5.2示例性隐私解决方案

为了解决内容出处的问题,向AR隐私API加入了受信用户接口(UI)。用户可以看着 受信UI以观察负责于当前片段的URL(在用户输入或手势上显示或自动显示),以及在标准 桌面窗口中片段和其定位的表示。有利地,该机制允许用户建立针对什么是可见的以及它 来自于哪个服务器的基础事实。

为了解决多网络室的问题,向AR隐私API的各个实施例加入层的概念。每一层由来 自于相同网络室的非重叠的片段组成。AR隐私API显示每一单独层中的所有片段或者一个 片段也不显示。这允许AR隐私API将不同的网络室干净利索地分成不同的展现单元,类似于 选项卡在今天的浏览器中区分不同的网站那样。

在各个实施例中,AR隐私API在特定“屏幕”上一次只显示一个层。只展现一个层建 立了所有被展现的内容都来自于单个来源的保证。从而,网络钓鱼和点击劫持类型的漏洞 利用变得更为困难,这是由于来自不同来源的内容不被混合以及匹配用于在单个“屏幕”上 展现。请注意,在各个实施例中,片段可以被允许完全或部分地重叠,并且可以显示该多个 层,然而,这会潜在地暴露各种安全问题,诸如,网络钓鱼和点击劫持类型的漏洞利用。网络 室的另一优势是众多的“屏幕”允许用于显示内容的广泛配置。例如,实践中,那些“屏幕”中 的仅一些会典型地用于接收输入,例如,用户伸手可及的那些“屏幕”,或在具有各个输入机 制的物理屏幕上等,而其它屏幕可以用于显示其它内容。这种类型的设置的一个简单例子 是提供主层输入“屏幕”,例如,离用户最近的“屏幕”,或在用户的视域中央,而可能试图装 扮为另一输入位置的内容的各个其它元素或层(例如,假下载按钮),在距离用户更远的“屏 幕”上被展现。这样,相对于典型的用于展现多层的一个屏幕的解决方案,在分开的“屏幕” 上展现内容的每一层典型地使得用户将不大可能意外地点击它们。

在各个实施例中,如下面所讨论的,通过提供具有对常规内容安全策略(CSP)的扩 展的HTML内嵌框架(iframe)许可,来进一步解决隐私和安全问题。例如,每一次强制单个 层,来防止网络室使用传统网页策略,诸如嵌入来自于其它来源的内容。然而,AR隐私API通 过允许网络室利用内嵌框架标签嵌入内容,来解决该问题。正如网页中的标准内嵌框架中, 该内容就网络室的剩余部分而言是沙箱化的,但是嵌入网络室增加属性以帮助受信展现器 在屋子或用户周围的空间中放置内容。

常规CSP声明一组针对网络资源的内容约束,以及用于将策略从服务器传输到执 行该策略的客户端的机制。AR隐私API提供用于嵌入网络室(或网页)的机制,以通过向常规 CSP技术增加新扩展来限制嵌入的内容的能力。例如,常规网页使用CSP头文件来指定 JavaScript评估上的限制条件,以及可以在哪里下载诸如图像的资源。通过由AR隐私API实 现的网络室,对CSP的新扩展可以指定嵌入的网页是否被允许访问AR隐私API的展现抽象。 如果不被允许,则嵌入的网页如同它是在传统浏览器中来运行,并且不可以访问由AR隐私 API实现的任何扩展的属性或JavaScript方法。所有内容在由父页建立的片段边界内来进 行展现。请注意,在各个实施例中,CSP进一步被扩展到允许嵌入的内容具有对AR隐私API的 各个抽象的细粒度的访问。

此外,在各个实施例中,AR隐私API通过定义用于与网络室一起使用的“扩展隐私 模式”,来防止泄漏敏感信息。该扩展隐私模式与现有浏览器的私人浏览模式类似,但是此 外它向网络室提供了有关可用资源的抽象的、而非实际的信息。更为具体地,代替透露实际 的“屏幕”以及那些“屏幕”在屋子中的相对位置,AR隐私API的扩展隐私模式针对网络室模 拟(以及报告)一个规范化的设置,诸如,例如,单个1080p显示器(或任意期望分辨率的显示 器)。AR隐私API的受信展现器部件于是酌情地跨屋子中的一个或若干实际的“屏幕”来映射 该模拟的显示器。通过防止在扩展隐私模式中展现的网络室具有对在章节2.4中讨论的特 许API(即,各个事件和属性)的访问,来进一步保护隐私。

2.5.3使用许可来解决隐私和安全问题

如上所述,AR隐私API与会潜在公开用户希望对其进行控制的各种类型的敏感信 息的环境信息合作。例如,在没有由AR隐私API提供的各种保护的情况下,网站会取回有关 屋子中的所有平面的信息,包括它们的规格和方位。这些站点还会从平面取回纹理,以及会 查询它们在3D空间中的位置以重构屋子的粗略几何结构。类似地,相对于用户在3D空间中 的位置,这些网站会取回有关用户的自然人、用户的头等的详细信息。

因此,为了防止公开潜在私人信息,AR隐私API使用基于许可的系统,来以一种防 止非授权的对私人或敏感信息的公开的方式,限制信息流。参考图2示出了该数据中的一些 的各个例子。在下面的段落中结合用于由各个网站使用的与该数据的使用、锁定或解锁相 关联的各个许可讨论了该数据中的一些。请注意,以下所述的示例性许可不是要表示对与 特定类型的信息或环境数据相关联的特定类型的许可的穷举。换言之,下面描述的许可是 作为当实现AR隐私API的各个实施例时考虑的各种类型的许可中的一些的有限例子,来被 提供的。

2.5.3.1关键词语法许可

关键词语法是在各个应用中被用作动作的口语词的列表(例如,用户可以说出术 语“加载必应”来发起必应TM搜索引擎的实例)。在每关键词的基础上授予这些许可,所以用 户会在授予网站对哪些关键词进行监听之前知道网站将监听哪些关键词。该信息被认为是 敏感的,由于这潜在允许网站监听用户所说的。

2.5.3.2平面许可

通过平面许可,网站可以取回屋子中的每个平面的规格和方位,但是将不知道它 们在3D空间中存在的位置。该信息被认为是敏感的,因为屋子中的平面的性质可以透露用 户身处哪种类型的屋子。该信息可以用于推断有关用户的其它细节,例如,在具有较大平 面、具有的IP追溯到曼哈顿的屋子中的用户可能是富人。

在各个实施例中,AR隐私API允许网站将片段“锁定”到特定的平面或“屏幕”,以使 得它可以具有屋子中的该表面的绝对控制。该能力驱逐在使用该平面的其它片段。

最后,具有与屋子中的平面有关的信息的网站可以潜在地确定当片段在屋中被投 影时其真实大小(如果不能够在平面上使它设置,则其会与实际片段大小不同),以及投影 机当前是否在投影片段。这两条信息独立提示屋子的片段大小,这解释为什么用这些许可 对它们进行解锁。

2.5.3.3几何结构许可

几何结构许可使得网页能够更了解有关屋子的几何结构,以及平面在3D空间中的 位置。该信息被认为是敏感的,因为它透露了屋子的结构的部分3D模型,这可以用于结合对 于网页来说其它可用的信息来确定屋子的位置。

该许可还对用于确定当前在什么平面或“屏幕”上展现片段的能力进行解锁。额外 的片段信息在该许可等级处被解锁,因为它可以用于粗略估计屋子的几何结构。例如,如果 约束两个片段使得一个应该出现在另一个的上面或下面,则网站可以查询它们在那个平面 上以确定平面相对于彼此是如何放置的。

2.5.3.4平面纹理许可

该许可等级对有关平面的纹理的信息进行解锁。网站还可以查询平面的主要色彩 以帮助将片段色彩适配环境(例如,在黑色表面上显示白色文本,或在白色表面上显示黑色 文本),以及可以抓取实际平面纹理的位图。该信息被认为是敏感的信息,因为纹理对于识 别用户的位置来说可以是足够独特的,并且可能包含被编码在其中的其它形式的信息(例 如,白板表面包括秘密计划或私人照片或文本)。

2.5.3.5头视景锥台许可

通过该许可,网站可以确定用户的头在3D空间中的位置,并且可以确定是否某些 片段在用户的视野内。该信息被认为是敏感的,因为它透露了用户在屋子中的位置以及用 户的高度。

2.5.3.6拖和放许可

AR隐私API允许网站明确地指定其“可拖放的”片段可以放在哪些内容来源上。网 站可以是许可的,并且利用通配符(*)允许所有内容来源。但是默认地,如果网站没有配置 该许可,则不能将它的可拖放片段放在来自任何其它网页的片段上。在各个实施例中,相同 的许可系统朝另一个方向运行,使得网站可以明确地指定哪些内容来源可以将片段放在它 的片段上。

动态地,网站可以通过标准“拖动中放下(ondropped)”事件来决定向不同的内容 来源发送什么信息,这公开目标网站的内容来源。此外,在另一方向中,通过标准拖动中放 下事件,向接收侧公开放下的片段的源。该机制允许具有许可的拖和放许可的行事小心的 网页管理与它不对其进行控制的不同内容来源的交互。

2.5.3.7内嵌框架许可

AR隐私API允许网页使用内嵌框架来嵌入来自不同内容来源的另一网页。在一些 情形下,网页可能希望嵌入的内容具有对本文所述的受信展现器的访问。在其它情形下,网 页可能希望通过经由标准“window.frames”属性访问嵌入内容的DOM树,作为单个片段或作 为多个片段,来简单地放置该嵌入的内容本身。

为了解决该问题,AR隐私API使用“内嵌框架许可”。通常,该许可允许网页授予来 自特定内容来源的内嵌框架对AR隐私API的受信展现器的访问,但是它不能将其特许转让 给该内容来源。相反,每一内嵌框架内容来源正如其父页一样请求许可。如果网页未能向内 容来源授予对AR隐私API的受信展现器的访问,则其网页将看不到AR隐私API的受信展现 器,并且会认为它在常规2D浏览器中进行展现。

2.5.3.8其它许可

其它许可的例子包括但不限于:

·手许可;

·脚许可;

·骨架许可;

·深度传感器许可;

·人脸许可;

·人纹理许可;

2.5.4请求许可

当与AR隐私API进行交互时,当用户通过针对AR隐私API的基于JavaScript的扩展 的实例化函数(例如,见图5的元素530)第一次访问网页时,网站请求许可(除非已经授予)。 例如,在AR隐私API的测试实施例中,站点传递用于封装应用在请求的整个许可集合的“许 可对象”。基本上,该许可可以被视为“安装时”类型许可,使得如果用户授予网页许可,则网 页将跨浏览会话保持该许可直到用户撤回它们为止。

直到实例化函数完成为止,应用将不能够使用针对AR隐私API的基于JavaScript 的扩展。这防止应用按需求请求许可。类似地,在各个实施例中,针对AR隐私API的基于 JavaScript的扩展防止网站实例化多于一次。从而,如果用户没能给予它它所请求的许可, 则用户将需要经由许可配置菜单来明确地修改该许可以改变针对站点的许可。通过该机制 改变的任何许可将公开给浏览器应用。

当用户授予许可时,它将许可授予内容来源。内容来源是协议(例如,http或 https)、端口以及主机的组合。例如,“http://bing.com”和“https://bing.com”是不同的 来源,如同“https://news.bing.com”和“https://bing.com”。在AR隐私API的各个实施例 中,该许可是不可转让的,所以网页不能将对针对AR隐私API的基于JavaScript的扩展的提 升的访问转让给被加载在网页上的脚本和内嵌框架,除非它通过现有的来源间通信手段, 诸如通过使用window.postMessage事件,明确地代理API请求。

2.6示例性AR隐私API架构

下面的段落描述了AR隐私API的示例性总体架构。应当理解的是,本文描述的示例 性架构提供了可以实现AR隐私API的许多方式中的一些的简单例子,而该例子不是要将AR 隐私API的范围限制到所提供的特定例子。

为了在屋子或用户周围的空间中显示网站或网络室,AR隐私API使用各种各样的 技术来检测屋中的“屏幕”、在那些“屏幕”中的一些或所有上展现片段,以及将来自输入设 备或传感器的各个输入或事件传送给具有用于观看输入的适当许可的网页或网路室。图3 提供了集中于展现任务的AR隐私API的一个示例性实现的各个部件的概览。

更为具体地,图3示出了AR隐私API的各个实施例的架构的示例性高水平概览。请 注意,可以在一个或多个计算设备上同时运行AR隐私API的多个实例或实例化(例如,300、 305),以在用户周围的空间内显示不同网站、网页和/或网络室(310、315)的内容。请注意, 出于讨论的目的,图3的以下描述将引用AR隐私API的单数形式的实例化300。

通常,AR隐私API300实现为具有本文所述功能的独立浏览器,或通过提供用于允 许任意现有的浏览器330实现本文所述功能的API扩展320的集合来实现(例如,使用HTML、 CSS、JavaScript等实现的扩展)。在各个实施例中,在浏览器初始化时,或当被网站、网页 和/或网络室310调用时,可以将该API扩展320作为插件等来加载。在任意情形下,AR隐私 API300或API扩展320,通过传递去往和来自受信展现器340的内容和输入,来充当网站、网 页和/或网络室310之间的中间媒介。受信展现器通过对本文描述的各种语言注释、抽象、许 可等的使用,来采取对它向每一网站、网页和/或网络室310透露的私人或敏感信息量的限 制。

受信展现器340从网站、网页和/或网络室310接收要被展现的内容,并且于是确定 该内容要在哪些“屏幕”上被展现。该展现的内容于是被提供给各个输出设备360用于在相 应的“屏幕”上进行显示。请注意,各个输出设备360包括但不限于,TV/监视器361、投影机 362、触摸屏363、平板电脑364、电话365、媒体播放器366等。通过使用各种各样的输入设备/ 传感器350中的任意一种输入设备/传感器,经由受信展现器与该内容进行交互,来提供与 展现的内容的用户交互。各个输入设备/传感器350的例子包括但不限于,触摸屏351、 352、麦克风353、照相机354、键盘355、鼠标356等。请注意,下面参考图4对受信展现 器进行了更为详细的描述。

2.6.1屏幕检测

如上所述,AR隐私API在“屏幕”上显示内容,包括视频输出设备,诸如TV和监视器, 以及使用投影机在屋中的任意表面或物体上。请注意,用于该目的的“屏幕”的概念在上面 的章节2.2中进行了讨论。屏幕检测涉及检测屋中或用户周围的空间中可用的各种类型的 “屏幕”的存在和物理位置。

例如,第一类别的“屏幕”涉及可移动或动态显示器设备(例如,平板电脑、媒体播 放器等)。由于它们在整个屋中或用户周围的空间中移动,所以动态地追踪该类型的物理显 示器设备的位置。使用常规技术,诸如,例如通过使用定位传感器或其它基于硬件或软件的 技术(包括但不限于,GPS、陀螺仪、RFID标签定位、扫描屋子的照相机和深度传感器等)来完 成该追踪。

第二类别的“屏幕”涉及静止的显示器设备,诸如,例如,电视机、监视器等。通过各 种手段来确定该类型的静止设备的位置和方位,诸如,例如,用于光学扫描屋中的显示的图 像的初始化序列(例如,在第一屏幕上显示的较大数字“1”,以及在第二屏幕上显示的较大 数字“2”)。用于指定该设备的位置和方位的用户输入还可以用于定义该“屏幕”。用于定位 该设备的其它技术包括但不限于,对固定定位传感器、基于射频的定位技术(例如,RFID、 等)等的使用。在AR隐私API的测试实施例的例子中,使用用于在每一“屏幕”上呈现 幻灯片的集合的校准方法。该幻灯片中的每一个具有形成鲜明对比的矩形的模式(例如,黑 色和白色的矩形),用于允许AR隐私API来测量每一“屏幕”(例如,显示器、平板电脑、投影 等)的位置和方位以及其范围。

第三类别的“屏幕”是屋子或用户周围的空间中可以在其上进行投影的那些表面 (平的、弯曲的、平面的、倾斜的等)或物体。在各个实施例中,可以如离线或在线过程,发生 对该表面和物体的检测。用于识别该表面的各种技术的例子包括自动光学扫描以及用于定 位合适表面的评估技术、手动或计算机指导的用户输入等。

例如,在各个实施例中,用于“屏幕”检测的离线方法对屋中的投影机可以到达的 非遮挡或部分遮挡表面或物体进行一次扫描,并且将该表面或物体识别为AR隐私API允许 将内容投影到其上的“屏幕”的静态集合。该方法将AR隐私API限制到静止的表面和物体。对 在该方式下检测的“屏幕”的更新是通过当发生改变时重新扫面屋子或用户周围的空间来 完成的。

在线方法与离线方法类似,但是代替单个扫描的是,针对可投影的表面或物体对 屋子或用户周围的空间进行连续或周期性地扫描。这使得AR隐私API能够追踪移动的表面 和物体,以及当新的表面和物体进入屋子或用户周围的空间时能够适应它们。还请注意,可 以通过JavaScript事件等向网页或网络室传送对于该可投影的表面和物体的“屏幕”改变。 例如,如上面参考表3中的“全局事件”所讨论的,诸如“屏幕进入”和“屏幕离开”的事件用于 当屏幕进入或离开屋子或用户周围的空间时进行传送。

2.6.2语义注释检测

通常,语义注释可以是静止的或移动的,并且可以包括比仅仅位置更多的信息。此 外,如通过上面所讨论的许多类型的输入事件,注释可以携带变化等级的敏感信息,可以使 用与本文讨论的那些技术类似的技术来限制对该变化等级的敏感信息的访问。从而,出于 解释的目的,下面的讨论解决在没有特定解决基于许可的隐私问题及相关顾虑的情况下, 语义注释如何在AR隐私API的上下文中运行。

语义注释可以被认为是当需要时可以被添加到浏览器的“插件”。当在浏览器可以 正确地展现内容之前需要下载或授权特定插件(例如,音频、视频等)时,该技术通常与大多 数现有的浏览器一起使用。该方法允许AR隐私API预先通知网页浏览器支持哪些注释类型 (但不一定是那些活动的),给予网页用于检查浏览器满足其要求的选项。

在运行时间期间的任何时间处,可以将注释的属性(包括其位置)传送给AR隐私 API。例如,该属性中的一些可以是由用户手动注释的静态位置,其它的可以是由追踪屋子 中的物体、人、“屏幕”等的位置的现场对象识别器返回的。

2.6.3内容展现

有利地,如参考图3所示(上面讨论的),AR隐私API的展现器的架构容易适用于利 用常规网页浏览器来操作。类似地,还可以以本文所述的技术的角度上来实现包括AR隐私 API的功能中的一些或全部地专用浏览器。如上所述,图3的受信展现器340用于当在各个 “屏幕”上展现内容以及经由各个输入设备与该内容进行交互时,保护用户隐私和安全。下 面讨论的图4,提供了示出图3的受信展现器的示例性实现的额外细节。

如上所述,AR隐私API封装现有的浏览器功能,包括但不限于,HTML、CSS以及 JavaScript功能,结合针对贯穿本文所述的该功能的各个额外扩展。如上面参照图3所述, 这些扩展(即,API扩展320)与受信展现器340通信,如图4所示的受信展现器340使用2D片段 展现器模块400来展现网页或网络室识别的各个片段。2D片段展现器模块400使用常规浏览 器展现技术和工艺用于展现片段。

此外,尽管未示出,3D片段展现器可以使用常规技术来展现包括3D信息的片段用 于在有3D能力的设备上进行显示。在任意情形下,受信展现器340的片段放置模块410部件 于是将每一展现的片段和网络室提供的信息进行组合,以确定在哪里放置每一独立的片段 (即,在哪个“屏幕”、物体等上)。使用片段放置模块410的屏幕API420部件或语音注释API 来做出该放置确定。屏幕API420识别用于在其上显示内容的特定“屏幕”,这反过来识别片 段要在哪里被展现。

如上面在章节2.6.1中所讨论的,经由用于识别屋子或用户周围的空间中的各个 “屏幕”的位置和特征的屏幕检测过程,来确定由屏幕API420管理的可用的“屏幕”。与此相 对,语义注释API425向下编译到接通约束求解器模块430的约束,约束求解器模块430基于 注释确定片段的展现位置。

将所有的最终展现位置从片段放置模块410传送到层展现模块440,层展现模块 440向“屏幕”增加新的层用于新的或重叠片段。展现的层于是被传送给各个视频输出设备 用于在屋子中显示(例如,见图3的元素360)。请注意,取决于在其上进行内容展现的设备, 可以使用众多技术中的任意技术来完成“屏幕”上的实际展现,包括但不限于,投影机、显示 器设备、平板电脑、电话、头戴显示器(不透明的或透明的)、智能窗等。

2.6.4输入处理

由AR隐私API提供的各个API扩展可以被扩展到支持广泛的输入设备/传感器(例 如,图3的元素350)。例如,章节2.3描述了由AR隐私API支持的各种类型的事件。通常,AR隐 私API在向站点公布输入数据之前,确保网站、网页或网络室具有适当许可。

在各个实施例中,尽管不是要求,AR隐私API一次只支持一个活动的站点,使得输 入事件仅被传送给当前活动的站点。请注意,同一时间处可以跨各个“屏幕”来显示多个活 动的站点,以及可选地将AR隐私API限制到一个活动的站点或者按“屏幕”限制到一个活动 的网站帮助防止各种安全顾虑,诸如,例如,来自一个站点的隐藏可点击内容显示为另一网 站的内容的叠加(例如,点击劫持)、跨脚本语言的安全问题,或其它各种安全顾虑。通常,由 AR隐私API支持的输入事件的集合取决于连接的传感器或输入设备,但是它们将落入在前 面的段落中讨论的事件类型的类别中。

2.7示例性AR隐私API实现

下面的段落描述了被设计用于通过使用各个JavaScript和元素实现本 文所述的功能,操作在现有的浏览器的上下文内的AR隐私API的测试实施例的示例性描述。 应当理解的是,本文描述的测试实施例的示例性描述提供了可以实现AR隐私API的多种方 式中的一些的简单例子,并且该例子不是要将AR隐私API的范围限制到所提供的特定例子。

请注意,下面的讨论描述了对.NET网页浏览器控制的使用,以用于在实现AR隐私 API的测试实施例中使用。.NET网页浏览器控制对于本领域的普通技术人员来说是熟知的, 其作为基于软件的工具,提供用于控制的管理封装器。管理封装器允许在作为 .NET框架的一部分被包含其中的图形API中显示网页。有利地,网页浏览器控制提供用于在 无需使用或修改现有的浏览器的情况下,允许在应用中复制现有的网页浏览器功能的测试 平台。

通常,如图5所示,经由.NET管理网页浏览器控制的实例(500、510)来实现AR隐私 API的前面提及的测试实施例。.NET管理网页浏览器控制的每一实例(500、510)与要用于为 屋子或用户周围的空间中的一个或多个“屏幕”提供内容的分别的网站(505、515)或分别的 网页通信。.NET管理网页浏览器控制的每一实例(500、510)结合新的基于JavaScript的扩 展530提供常规浏览器展现引擎520,用于实现本文描述的功能的各个元素。在受信展现器 540的替代实施例中实现的对象550被用于跨JavaScript-.NET边界。

为了避免复杂的编组和解组,该对象550用静态函数公开简单API。这允 许各个网页或网络室在分别的管理网页浏览器控制中是孤立的,并且允许那些网页或网路 室通过由基于JavaScript的扩展530提供的JavaScript库来与受信展现器通信,基于 JavaScript的扩展530用于实现针对HTML、CSS以及JavaScript的各种AR隐私API扩展的功 能。

下面的段落描述了如何实现AR隐私API的前面提及的测试实施例,以及该测试实 施例如何处理实例化、在屋子或用户周围的空间中展现内容,以及简要地解决AR隐私API如 何处理输入事件。

2.7.1模拟AR隐私API

在各个实施例中,现有的浏览器应用(例如,Internet)适用于包括本 文所述的针对贯穿本文描述的HTML和CSS扩展的功能。然而,在其它实施例中,通过经由 JavaScript库模拟AR隐私API的HTML和CSS扩展来实现与各种现有的浏览器应用的兼容性 (例如,图5中示出的基于JavaScript的扩展530)。

通常,AR隐私API的JavaScript库使得运行在测试实施例中的网络室能够使用贯 穿本文描述的HTML和JavaScript扩展。典型的浏览器允许JavaScript应用检查DOM树,这使 得AR隐私API的JavaScript库能够找到并且处理片段标签。JavaScript功能被容易地公开, 如浏览器允许脚本向全局范围添加条目。CSS功能不通过CSS被公开,因为浏览器不公开它 通过它的JavaScriptCSSAPI不理解的任何CSS标签。相反,CSS功能作为片段HTML标签的 属性被公开。

AR隐私API的JavaScript库将针对AR隐私API的调用转换为通过前面提及的 对象的更简单的调用。由于网页是具有事件循环的单线程GUI应用,所以浏览器 等待直到事件循环释放为止,以处理针对UI的更新。AR隐私API的JavaScript库通过当事件 循环释放时,跨边界以块应用API调用,来模拟该行为。请注意,由于AR隐私API可 以通过简单地修改该浏览器的源来直接在该浏览器中实现API扩展,所以不详细描述本文 中概述的简单API,因为这在理解本文所述的概念中没有特定关联。

2.7.2实例化

在网络室导航之前,AR隐私API的测试实施例利用确定离线的语义注释信息和“屏 幕”来实例化现有的约束求解器。约束求解器使用该信息来确定要显示片段的物理位置。

通常,网络室可以使用用于定位片段的描述性展现。每一片段使用可以与各种展 现约束(诸如,例如,要在垂直表面上放置特定片段,或要与一个或多个其它片段一致地放 置特定内容)组合的前面提及的语义注释抽象。约束求解器评估与每一片段相关联的约束, 并且导出用于放置这些片段的解决方案。

2.7.3展现

当用户导航到网页时,AR隐私API的测试实施例首先在网页浏览器控制中展现整 个网页。AR隐私API于是使用在网页浏览器控制上可用的现有方法提取针对每一片段标签 的独立PNG(或诸如JPG、TIF等的其它任意图像格式)。

如图5所示的,AR隐私API的对象于是将这些片段分组为两个组:那些使 用语义注释来放置的(经由约束求解器570),以及那些使用“屏幕”数据来放置的。对于第一 组(即,语义注释),AR隐私API将注释编译为被约束求解器570理解的断言,并且于是调用约 束求解器来确定要在哪里展现每一片段。对于后一组(即,“屏幕”数据560),AR隐私API可以 即刻识别要在哪里展现内容,因为该内容是针对特定“屏幕”的。在两种情形下,在层展现步 骤580期间,来自两组的展现的片段被组合,该步骤确定需要多少层来显示内容。最后,AR隐 私API使用运行AR隐私API的测试实施例的一个或多个计算机的各个输出设备360,在3D虚 拟室或在实际的屋子中显示展现的内容。

2.7.4输入处理

如上面在章节2.3中所讨论的,AR隐私API的测试实施例提供具有传统事件模拟的 网络室。

2.8对现有网络内容的优化

网络包含用于网站可以将其定制于不同设备的广泛的各种各样的内容。许多网站 已经提供了桌面和移动版本,而其它的正试用平板电脑布局。在类似的上下文中,AR隐私 API允许网站提供用于其现有的内容的布局,该布局被自动优化以用于与AR隐私API一起使 用。该转换对于呈现多条可概述信息(其被当作“周边内容”)的网页来说是直接的。例如,网 页可以使用用户的高分辨率或主显示器来显示主要内容,并且可以在更小“屏幕”上或位于 整个屋子中的“屏幕”上概括其它信息或内容。此外,用户可以使用片段等级的交互来将与 每一概括相关联的内容引到她的主显示器。

4.0示例性操作环境

本文所述的AR隐私API可操作于众多类型的通用或专用计算系统环境或配置。图6 示出了如本文所述的AR隐私API的各个实施例和元素可以在其上实现的通用计算机系统的 简化例子。应当注意的是,图6中由虚线或点线表示的任意矩形,表示简化计算设备的替代 实施例,并且这些替代实施例中的任意或所有实施例可以如下面所描述的,结合贯穿本文 所述的其它替代实施例使用。

例如,图6示出了通用系统示图,该示图示出了简化计算设备600。通过AR隐私API 可操作的该设备的例子包括但不限于,便携式电子设备、手持计算设备、膝上型电脑或移动 计算机、诸如蜂窝电话、智能电话以及PDA的通信设备、多处理器系统、基于微处理器的系 统、机顶盒、可编程消费者电子设备、网络PC、微型计算机、音频或视频媒体播放器、手持远 程控制设备等。还请注意的是,如上所讨论的,AR隐私API可以在拥有或以其它方式耦合到 广泛的设备或物体的手提箱或覆盖内实现。

为了允许设备实现AR隐私API,计算设备600应当具有足够的计算能力和系统存储 器,以实现基本的计算操作。此外,计算设备600包括一个或多个传感器605,包括但不限于, 加速器、照相机、电容传感器、接近传感器、麦克风、多谱传感器等。此外,计算设备600还可 以包括可选系统固件625(或其它固件或处理器可访问的存储器或存储设备),用于在实现 AR隐私API的各个实施例中使用。如图6所示,计算设备600的计算通常由一个或多个处理单 元610示出,并且可以还包括一个或多个GPU615,任一或两者与系统存储器620通信。请注 意,计算设备600的该处理单元610可以是专用微处理器,诸如DSP、VLIW,或其它微控制器, 或可以是具有一个或多个处理核的常规CPU,包括在多核CPU中的专用的基于GPU的核。

此外,简化的计算设备600还可以包括其它部件,诸如,例如通信接口630。简化的 计算设备600还可以包括一个或多个常规计算机输入设备640或这种设备(例如,指示设备、 键盘、音频输入设备、基于语音或声音的输入和控制设备、视频输入设备、触觉输入设备、触 摸输入设备、用于接收有线或无线数据传输的设备等)的组合。简化的计算设备600还可以 包括其它可选的部件,诸如,例如,一个或多个常规计算机输出设备650(例如,显示器设备 655、音频输出设备、视频输出设备、用于发送有线或无线数据传输的设备等)。请注意,用于 通用计算机的典型通信接口630、输入设备640、输出设备650以及存储设备660对于本领域 的普通技术人员来说是熟知的,所以将不在本文中对其进行详细描述。

简化的计算设备600还可以包括各种各样的计算机可读介质。计算机可读介质可 以是可以经由存储器设备660访问的任意可用的介质,并且包括可移动的670和/或不可移 动的680易失性和非易失性媒介两者,用于存储诸如计算机可读或计算机可执行指令、数据 结构、程序模块或其它数据的信息。举例但并非限制,计算机可读介质可以包括计算机存储 介质和通信介质。计算机存储介质指代有形的计算机或机器可读的介质或存储设备,诸如, DVD、CD、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、RAM、ROM、EEPROM、闪 存或其它存储器技术、磁盒带、磁带、磁盘存储或其它磁存储设备,或可以用于存储期望信 息并且可以由一个或多个计算设备存取的任意其它设备。

存储诸如计算机可读或计算机可执行指令、数据结构、程序模块等的信息,还可以 通过使用用于编码一个或多个调制的数据信号或载波波形的各种各样的前面提及的通信 介质中的任意或者其它传输机制或通信协议来实现,并且包括任意有线或无线信息传送机 制。请注意,术语“调制的数据信号”或“载波波形”通常指代具有一个或多个其特征以将信 息编码到信号中的形式来设置或改变的信号。例如,通信介质包括有线介质,诸如有线网络 或携带一个或多个调制的数据信号的直接有线连接,以及无线介质,诸如,声波、RF、红外、 激光以及用于发送和/或接收一个或多个调制的数据信号或载波波形的其它无线介质。以 上的任意组合也应当包括在通信介质的范围内。

对诸如计算机可读或计算机可执行指令、数据结构、程序模块等的信息的保留,还 可以通过使用用于编码一个或多个调制的数据信号或载波波形的各种各样的前面提及的 通信介质中的任意或者其它传输机制或通信协议来实现,并且包括任意有线或无线信息传 送机制。请注意,术语“调制的数据信号”或“载波波形”通常指代具有一个或多个其特征以 将信息编码到信号中的形式来设置或改变的信号。例如,通信介质包括有线介质,诸如有线 网络或携带一个或多个调制的数据信号的直接有线连接,以及无线介质,诸如,声波、RF、红 外、激光以及用于发送和/或接收一个或多个调制的数据信号或载波波形的其它无线介质。 以上的任意组合也应当包括在通信介质的范围内。

此外,可以以计算机可执行指令或其它数据结构的形式,从计算机或机器可读介 质或存储设备以及通信介质的任意期望的组合,存储、接收、发送或读取体现本文所述的AR 隐私API的各个实施例中的一些或全部的软件、程序和/或计算机程序产品,或其几部分。

最后,可以在计算机可执行指令,诸如由计算设备执行的程序模块的通用上下文 中进一步描述本文所述的AR隐私API。通常,程序模块包括例程、程序、对象、部件、数据结构 等,其执行特定任务或实现特定抽象数据类型。本文所述的实施例还可以在分布式的计算 环境中实现,其中,任务由一个或多个远程处理设备执行,或在一个或多个设备的云内执 行,这些设备通过一个或多个通信网络进行链接。在分布式的计算环境中,程序模块可以位 于本地和远程计算机存储介质(包括介质存储设备)中。此外,前面提及的指令可以部分或 整体实现为硬件逻辑电路,其可以包括也可以不包括处理器。

图7示出了可以用于实现AR隐私API的任意方面的示例性计算功能702。例如,图7 中示出的该类型的计算功能702可以用于实现图6的通用计算机系统和/或与AR隐私API的 各种本地和远程能力相关联的一个或多个计算机服务器或基于云的计算或存储系统。

计算功能702可以包括一个或多个处理设备704,诸如一个或多个中央处理单元 (CPU),和/或一个或多个图像处理单元(GPU)等。

计算功能702还可以包括用于存储任意种类的信息(诸如,代码、设置、数据等)的 任意存储资源706。在没有限制的情况下,例如,存储资源706可以包括以下各项中的任意一 项:任意类型的RAM、任意类型的ROM、闪存设备、硬盘、光盘等。更为具体地,任意存储资源可 以使用用于存储信息的任意技术。此外,任意存储资源可以提供对信息的易失性或非易失 性保留。此外,任意存储资源可以表示计算功能702的固定或可移除部件。计算功能702可以 当处理设备704执行存储在任意存储资源或存储资源的组合中的指令时,执行以上所述的 功能中的任意。

存储资源706中的任意,或存储资源706的任意组合,可以被视为计算机可读介质。 在许多情形下,计算机可读介质表示某种形式的物理和有形实体。术语计算机可读介质还 包含传播的信号,例如,经由物理导管和/或空中或其它无线介质等发送或接收的。然而,本 文中特别定义的特定术语“计算机可读存储介质”和“计算机可读介质设备”指代基于硬件 的存储设备。

计算功能702还包括用于与任意存储资源进行交互的一个或多个驱动机制708,诸 如,硬盘驱动机制、光盘驱动机制等。

计算功能702还包括用于(经由输入设备712)接收各种输入以及用于(经由输出设 备714)提供各种输出的输入/输出模块710。示例性输入设备包括键盘设备、鼠标输入设备、 触摸屏输入设备、数字化平板电脑、一个或多个照相机、语音识别机制、任意运动检测机制 (例如,加速器、陀螺仪等)等。一个特定的输入机制可以包括展示设备716以及相关联的图 像用户接口(GUI)718。其它输出设备包括打印机、模型生成机制、触觉输出机制、存档机制 (用于存储输出信息)等。计算功能702还可以包括用于与其它设备经由一个或多个通信管 道722交换数据的一个或多个网络接口720。一个或多个通信总线724将以上所述的部件通 信地耦合在一起。

可以以任何方式实现通信管道722,例如,通过局域网、广域网(例如,互联网),对 等连接等,或其任意组合。通信管道722可以包括硬连线链路、无线链路、路由器、网关功能、 名称服务器等的任意组合,其由任意协议或协议的组合来控制。

替代地,或此外,可以至少部分地通过一个或多个硬件逻辑部件来执行在前面章 节中描述的功能中的任意功能。例如,但没有限制,可以使用以下各项中的一项或多项来实 现计算功能702:现场可编辑门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片 上系统(SOC)、复杂可编程逻辑器件(CPLD)等。

出于说明和描述的目的,提出了前面关于AR隐私API的描述。它不是要穷举或将所 声明主题限制到所公开的精确形式。根据以上教导,许多修改和变化是可能的。此外,应当 注意到的是,可以以任意期望的组合形式来使用前面提及的替代实施例中的任意或所有, 以形成AR隐私API的额外的复合实施例。旨在的是,不是要通过本具体实施方式来限制本发 明的范围,而是要通过在此所附的权利要求。尽管已用特定于结构特征和/或方法动作的语 言描述了主题,但是应当理解的是,所附权利要求中定义的主题不一定限于以上所述的特 定特征或动作。相反,以上所述的特定特征和动作是作为实现权利要求的示例性形式被公 开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号