显现增强现实对象的制作方法

文档序号:31129782发布日期:2022-08-13 05:09阅读:44来源:国知局
显现增强现实对象的制作方法
显现增强现实对象
1.要求优先权
2.本专利申请要求于2019年12月30日提交的美国申请序列号16/729,775的优先权的权益,该申请的全部内容通过引用并入本文。
技术领域
3.本文中描述的实施方式涉及增强现实,并且更具体地但不作为限制,涉及用于可以支持混合现实的增强现实对象的登记表的系统、方法、设备和指令。


背景技术:

4.目前,可以使用地理空间数据库来向移动设备提供世界的三维(3d)地理空间地图。通常,诸如智能电话的移动设备使用全球定位系统(gps)来将移动设备与地球上的坐标位置规范地相关联,并且坐标位置可以用于查询地理空间数据库以获取3d地图数据。例如,给定相对于移动设备的坐标位置的中心点,可以查询地理空间数据库以获取中心点的特定半径内的3d地图对象的所有数据,或者获取离中心点最近的3d地图对象的数据。
附图说明
5.各种附图仅示出了本公开内容的一些实施方式并且不应被视为限制其范围。附图不一定按比例绘制。为了容易地标识任何特定要素或动作的讨论,附图标记中的一个或多个最高有效数字指的是第一次引入该要素的附图标记,并且相同的附图标记可以在不同的视图中描述相似的组件。
6.图1是示出根据一些实施方式的用于通过网络交换数据(例如,与ar对象有关)的示例系统的框图,该示例系统可以包括增强现实(ar)对象系统。
7.图2是示出根据一些实施方式的ar对象系统的示例逻辑架构的框图。
8.图3是示出根据一些实施方式的ar对象交互式会话服务的示例的框图。
9.图4是示出根据一些实施方式的由ar对象交互式会话服务进行会话处理的示例的流程图。
10.图5是示出根据一些实施方式的使用一个或更多个排序器为客户端设备提供一个或更多个ar对象的示例的流程图。
11.图6是示出根据一些实施方式的ar对象系统的示例实现的框图。
12.图7至图13是示出根据一些实施方式的与ar对象登记表相关的方法的流程图。
13.图14是示出代表性软件架构的框图,该代表性软件架构可以与本文中描述的各种硬件架构结合使用。
14.图15是示出根据一些实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中所讨论的任何一种或更多种方法的机器组件的框图。
具体实施方式
15.各种实施方式提供用于增强现实对象的登记表的系统、方法、设备和指令,其可以向客户端设备提供增强现实对象以支持各种软件或硬件应用(例如,混合现实软件应用)。例如,一些实施方式提供了增强现实(ar)对象登记表,该登记表促进或使实现对与行星上(例如,在世界范围内)的一个或更多个位置相关联的一个或更多个ar对象的登记。例如,ar对象登记表可以使实现一个或更多个ar对象与行星地球上的一个或更多个位置或物理对象之间的关联。这样做时,这样的ar对象登记表可以允许用户使用他们的客户端设备来探索地球上任何地方的ar对象。此外,本文中描述的ar对象登记表还可以支持或使得能够例如实现基于空间的(例如,基于增强现实的)万维网。
16.本文中描述的一些实施方式的架构允许缩放以服务于与地球上的位置相关的ar对象登记,并允许缩放以提供或支持使世界各地的多个用户(例如,大量用户)能够与登记的ar对象一起交互的交互式会话。对于一些实施方式,实施方式的ar登记表可以将(例如,地球的)拓扑图数据与ar对象数据相关联(例如,联合),使得现实世界的信息被带入虚拟模型,这使实现ar登记表的可缩放性。此外,一些实施方式实施一个或更多个排序器或排序器机制(例如,排序器算法)以确定(例如,通过过滤或排序)哪些ar对象被提供给客户端设备(例如,响应于从客户端设备对ar对象的请求/查询)。以这种方式,这样的实施方式可以影响由客户端设备显示或显现该客户端设备在地图(例如,地理空间地图)上的当前坐标集处和周围的哪些ar对象。
17.与常规技术(例如,传统地理空间数据库)不同,各种实施方式的ar登记表可以更好地支持用户与登记的ar对象的交互。此外,与常规技术不同,各种实施方式的ar登记表不需要依赖严格的(例如,严密的)地理围栏来向客户端设备提供ar对象。
18.如本文所使用的,ar对象可以包括可以被呈现在客户端设备生成的现实世界环境的视图(例如,呈现在移动客户端设备的显示器上的视图)中的虚拟对象,其中虚拟对象可以与视图中呈现的现实世界环境的现实世界物理对象进行交互或增强视图中呈现的现实世界环境的现实世界物理对象。例如,可以将ar对象与现场(例如,实时或接近实时)相机馈送相结合,使得当呈现ar对象时,ar对象看起来位于现场三维环境中(例如,ar对象看起来占据一致的三维体积,并且以与ar对象是现实世界物理对象的情况类似的方式响应于相机的移动而动态地改变方面)。登记的ar对象可以包括通过本文中描述的实施方式登记的ar对象,从而经由ar对象登记表将ar对象与坐标集相关联。可用于通过实施方式登记的ar对象的交互级别(例如,用户交互)可以变化。例如,ar对象可以是静态的,并且与用户或现实世界环境没有交互级别。已登记的ar对象(例如,虚拟球)可以具有一个或更多个可用交互(例如,旋转、弹跳、投掷等),其中对ar对象的状态的任何更改(通过那些可用交互的方式)被局限(例如,约束或限制)于客户端设备处的用户(例如,对ar对象的状态更改不会传播到另一个客户端设备处的另一个用户),并且对ar对象的状态的任何更改都不会改变如存储在ar对象登记表中的ar对象的当前初始状态。登记的ar对象(例如,虚拟涂鸦)可以具有一个或更多个可用交互(例如,绘制、生成或应用虚拟涂鸦),其中对ar对象的状态的任何更改(通过那些可用交互的方式)被传播到另一个客户端设备处的另一个用户(例如,在由其他客户端设备显示的视图中被呈现),而无需与其他用户的交互(即,不需要交互式会话)。此外,登记的ar对象可以允许两个或更多个用户在交互式会话期间同时与登记的ar对象(例
如,实时地)进行交互(例如,旋转、弹跳或投掷虚拟球)。例如,第一用户可以在同一交互式会话内在一个或更多个其他用户之间投掷虚拟球,其中数据通过交互式会话在用户的客户端设备之间传输。根据登记的ar对象,在交互式会话结束时,登记的ar对象的最终状态(如通过用户在交互式会话期间的交互被更改)可能会或可能不会被保存到ar对象登记表,从而更新ar对象的初始状态以用于后续单用户交互式会话或多用户交互式会话。
19.对于一些实施方式,ar对象或排序器的登记可以是短暂的(例如,在第一次被访问之后仅可访问一段时间)。登记的短暂性可能会导致用户需要定期(例如,每24小时)重新登记ar对象或排序器,这可以阻止或防止登记滥用(例如,垃圾邮件)。
20.对于一些实施方式,关于给定ar对象的用户交互可以由与ar对象相关联的规则集(例如,交互规则)来限定。例如,ar对象的规则可以确定关于ar对象的交互的可用性(例如,可以投掷或弹跳虚拟球),或者可以限定关于ar对象的交互约束(例如,关于虚拟球的交互限于客户端,或者虚拟球只能被投掷这么远)。
21.下面的描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员来说明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。一般来说,众所周知的指令实例、协议、结构和技术不一定详细地被示出。
22.现在将详细参考本公开内容的实施方式,这些实施方式的示例在附图中被示出。然而,本公开内容可以以许多不同的形式被体现并且不应被解释为限于本文所阐述的实施方式。
23.图1是示出根据一些实施方式的用于通过网络106交换数据(例如,与ar对象有关)的示例系统100的框图,示例系统100可以包括增强现实(ar)对象系统。系统100包括多个客户端设备102,多个客户端设备102中的每一个托管多个应用,所述多个应用包括客户端应用104。每个客户端应用104经由网络106(例如,因特网)通信地耦接至客户端应用104和服务器系统108的其他实例。
24.因此,每个客户端应用104可以经由网络106与另一个客户端应用104以及与服务器系统108进行通信和交换数据。客户端应用104之间交换的数据以及客户端应用104与服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,ar对象、文本、音频、视频或其他多媒体数据)。
25.对于一些实施方式,特定客户端应用104为其各自的客户端设备102提供一个或更多个增强现实/混合现实特征。例如,特定客户端应用104可以表示增强现实(ar)客户端软件应用或包括增强现实/混合现实特征的消息收发软件应用。特定客户端应用104可以获得一个或更多个ar对象(例如,来自具有ar对象系统116的增强现实(ar)对象系统,以下被称为ar对象系统116),以生成包括一个或更多个ar对象的混合现实环境(例如,基于客户端设备102的现实世界环境)。例如,特定客户端应用104可以使得客户端设备102例如智能电话能够(例如,使用智能电话相机)捕获现实世界环境的图像帧并生成如下视图(例如,在智能电话显示器上),该视图呈现具有与现实世界环境相关联的一个或更多个ar对象(例如,通过与现实世界环境相关联的一个或更多个ar对象增强)的现实世界环境。特别地,特定客户端应用104可以通过例如使用与客户端设备102相关联的信息(例如,关于客户端设备102的
用户的信息、客户端设备102的当前坐标集(例如,gps坐标)或客户端设备102周围的指定半径)从ar对象系统116请求或查询一个或更多个ar对象来从ar登记表(例如,由ar对象系统116实现)获得ar对象。当获得一个或更多个ar对象(例如,ar对象系统116)时,特定客户端应用104可以接收那些ar对象的数据。那些ar对象的数据可以例如包括:用于在客户端设备102上渲染和显示获得的ar对象的一个或更多个三维模型(例如,3d图形内容)的模型数据;描述一个或更多个规则的规则数据,所述一个或更多个规则确定用户通过特定客户端应用104与获得的ar对象的交互;或描述获得的ar对象的初始状态(例如,将由客户端设备102上的特定客户端应用104呈现获得的ar对象的初始状态)的状态数据。
26.关于所获得的ar对象的使用,特定客户端应用104可以通过确定显示器上的ar对象相对于现实世界环境的定位来在客户端设备102的显示器上显示所获得的ar对象。特定客户端应用104可以通过以下操作来这样做:执行通过组合来自客户端设备102的各种传感器(例如,图像传感器、惯性测量单元(imu)和gps传感器)的数据来生成(或构造)虚拟相机的过程,并且然后使用虚拟相机将获得的ar对象定位在客户端设备102的显示器上。特定客户端应用104可以例如使用同时定位和映射(slam)或视觉里程计(vio)系统或方法来生成虚拟相机。当特定客户端应用104显示ar对象时,ar对象的3d模型可以被渲染和显示为由客户端设备102呈现的现实世界环境上的覆盖。
27.对于一些实施方式,特定客户端应用104使得用户能够利用与地图(例如,地理空间地图)上的坐标集相关联的ar登记表(例如,通过ar对象系统116实现)来登记一个或更多个ar对象。
28.服务器系统108经由网络106向特定客户端应用104提供服务器端功能。虽然系统100的某些功能在本文中被描述为由客户端应用104或由服务器系统108执行,但将理解的是,某些功能在客户端应用104、服务器系统108内的位置是设计选择。例如,以下在技术上可能是优选的:最初在服务器系统108内部署某些技术和功能,但稍后将该技术和功能迁移到客户端设备102具有足够处理能力的客户端应用104。
29.服务器系统108支持被提供给客户端应用104的各种服务和操作。这样的操作包括:向客户端应用104发送数据;从客户端应用104接收数据;以及处理由客户端应用104生成的数据。作为示例,该数据可以包括消息内容、ar对象相关信息(例如,模型数据、取向、交互规则或逻辑、状态信息、交互、会话信息等)、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息以及现场事件信息。可以通过经由客户端应用104的用户界面(ui)可用的功能来调用和控制系统100内的数据交换。
30.现在具体转向服务器系统108,应用程序接口(api)服务器110耦接至应用服务器112,并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,这促进访问其中存储了与应用服务器112执行的操作相关联的数据的数据库120。
31.具体处理应用程序接口(api)服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效负载)。具体地,api服务器110提供可以由客户端应用104调用或查询以调用应用服务器112的功能的接口集合(例如,例程和协议)。api服务器110显露应用服务器112支持的各种功能,所述各种功能包括例如:账户登记;登录功能;经由应用服务器112从ar对象系统116向特定客户端应用104发送ar对象相关信息(例如,模型数据、取向、交互规则或逻辑、状态信息、交互、会话信息等);经由应用服务
器112从特定客户端应用104向ar对象系统116发送ar对象相关信息(例如,查询或请求信息、用户输入信息、状态信息、新ar对象的模型数据等);经由应用服务器112从特定客户端应用104向另一个客户端应用104发送消息;将媒体文件(例如,数字图像或视频)从客户端应用104发送到消息收发服务器应用114,并且供另一个客户端应用104可能访问;媒体内容项(例如故事)集合的设置,客户端设备102的用户的朋友列表的检索;检索这样的集合;检索消息和内容,向社交图谱添加朋友以及从社交图谱删除朋友;朋友在社交图谱中的位置;以及打开应用事件(例如,与客户端应用104有关)。
32.应用服务器112托管多个应用、系统和子系统,包括消息收发服务器应用114、ar对象系统116和社交网络系统122。消息收发服务器应用114实现多种消息处理技术和功能,特别是与从客户端应用104的多个实例接收的消息中包括的媒体内容项(例如,文本和多媒体内容项)的聚合和其他处理有关的消息处理技术和功能。如本文中将描述的,来自多个源的媒体内容项可以被聚合成媒体内容项的集合(例如,故事或图库),媒体内容项的集合可以由本文中描述的各种实施方式自动注释。例如,可以通过将集合与字幕、地理位置、类别、事件、突出显示媒体内容项等相关联来注释媒体内容项的集合。媒体内容项的集合对于由消息收发服务器应用114访问客户端应用104可用。鉴于针对此类处理的硬件要求,也可以由消息收发服务器应用114在服务器端执行数据的其他处理器和存储器密集型处理。
33.对于给定的媒体内容集合,给定集合的一个或更多个注释可以表示给定集合的特征,并且那些特征可以包括一个或更多个图形元素(例如,表情符号(emojis)或情感符(emoticons)),当自动地将一个或更多个图形元素与给定集合关联时,本文中描述的各种实施方式可以使用所述一个或更多个图形元素。访问媒体内容项的给定集合可以包括:访问给定集合的注释中的一个或更多个以及通过本文中描述的各种实施方式与给定集合相关联的一个或更多个图形元素。
34.如所示的,应用服务器112还包括ar对象系统116,该ar对象系统116实现本文中描述的各种实施方式的一个或更多个方面,例如ar登记表和基于排序器的ar查询。在本文中关于图2描述了有关ar对象系统116的更多内容。
35.社交网络系统122支持各种社交联网功能和服务,并使这些功能和服务对于消息收发服务器应用114和ar对象系统116可用。为此,社交网络系统122维护和访问数据库120内的实体图。社交网络系统122支持的功能和服务的示例包括:标识系统100的特定用户与其有关系或正在“关注”其的其他用户以及还标识其他实体和感兴趣的特定用户。
36.应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进访问其中存储了与由消息收发服务器应用114或ar对象系统116执行的操作相关联的数据的数据库120。
37.图2是示出根据一些实施方式的用于ar对象系统116的示例逻辑架构的框图。具体地,ar对象系统116被示出为包括数据层210和增强现实(ar)对象服务230,它们支持ar对象系统116的各种特征和功能。如所示的,数据层210包括三维(3d)拓扑数据层212、逻辑拓扑数据层214、用户数据层216和增强现实(ar)对象模型数据层218。还如所示的,ar对象服务230包括增强现实(ar)对象交互式会话服务232、增强现实(ar)对象查询服务234和增强现实(ar)对象登记服务236。对于各种实施方式,ar对象系统116的组件和组件的布置可以与图2中所示的不同。ar对象系统116的任何组件都可以使用一个或更多个处理器来实现(例
如,通过配置这样的一个或更多个计算机处理器来执行针对该组件描述的功能),并且因此可以包括处理器中的一个或更多个。此外,根据各种实施方式,图2中所示的任何组件可以在单个机器、数据库或设备内一起或单独被实现,或者可以分布在多个机器、数据库或设备上。例如,数据层210可以由一个或更多个数据库(例如,数据库120)实现,并且ar对象服务230可以由一个或更多个服务器(例如,应用服务器112)实现。
38.3d拓扑数据层212包括描述现实世界环境的内部表示的数据。数据可以包括但不限于现实世界环境的3d建模信息以及将3d建模信息与一个或更多个坐标(例如,在拓扑图上)相关联的信息。对3d拓扑数据层212的查询可以包括地图(例如,拓扑图)上的一个或更多个坐标以及与所述一个或更多个坐标对应的点周围的半径值。3d拓扑数据层212提供的查询结果可以包括落入以一个或更多个坐标为中心的半径内的一个或更多个3d模型对象。3d拓扑数据层212的数据可以源自一个或更多个数据源,包括第三方供应商。此外,3d拓扑数据层212的数据可以被分为两种或更多种,例如较低分辨率的数据(以下被称为世界数据)和较高分辨率的数据(以下被称为深度世界数据)。世界数据可以表示ar对象系统116的默认真实(ground truth)数据(其可以为ar对象模型放置提供快速基础)。与深度世界数据相比,世界数据可能具有较低的精确度(例如,大约3m的精确度),并且通常缺乏现实世界结构(例如,建筑物等)的室内数据。深度世界数据可以表示在ar对象系统116内具有最高精确度(例如,厘米级的精确度)的3d拓扑数据,并且可以包括现实世界结构的室内数据。
39.逻辑拓扑数据层214包括与可以应用于由3d拓扑数据层212提供的数据的逻辑(例如,业务或操作逻辑)相关的数据。由逻辑拓扑数据层214提供的数据的至少一部分可以以地理空间矢量类型格式被存储。由逻辑拓扑数据层214提供的两种类型的数据可以包括地区数据和地理位置(geolocation)数据。
40.根据一些实施方式,(逻辑拓扑数据层214的)地区数据标记或标识现实世界环境中的一个或更多个区域,并且还可以将一个或更多个属性值与那些一个或更多个区域相关联。例如,地区数据可以根据以下中的一个或更多个来标记/标识现实世界环境的区域:州界线、县界线、城市范围、宗地(parcel)特征或分区区域。这些标记/标识的区域也可以被称为或被视为地区。在地区数据中,现实世界环境的区域可以由非标量多边形数据类型限定。对于一些实施方式,地区数据促进对大的现实世界环境(例如,地球)的地理分区,这可以支持如本文所述的由ar对象交互式会话服务232对交互式会话和会话相关计算资源(例如,会话服务器)的分配和管理。
41.对于一些实施方式,地区数据标记或标识对给定区域的一个或更多个许可(例如,作为给定区域的一个或更多个属性值)。对给定区域的许可(体现为许可数据)可以使得ar对象系统116(例如,其ar对象登记服务236)能够确定例如给定用户是否可以在与地图(例如,拓扑图)上的坐标集对应的位置处登记(例如,放置)他们选择的ar对象(例如,新的ar对象或现有的ar对象)。以此方式,一些实施方式的地区数据可以将特定的现实世界空间与可以阻止滥用ar对象系统116的一个或更多个许可相关联。例如,许可数据(由地区数据提供)可以防止代表第一企业(例如,比萨饼店#1)的第一用户在与作为第一企业的竞争对手的第二企业(例如,比萨饼店#2)对应的位置处登记ar对象(例如,代表第一企业的优惠券的ar对象)。另一方面,相同的许可数据可以允许被确认为第二企业的所有者的第二用户在与第二企业对应的位置处登记他们选择的ar对象。以类似的方式,由地区数据提供的一个或更多
个许可可以控制和与私人住宅对应的位置相关的ar对象的登记。
42.此外,由地区数据提供的对于给定区域的一个或更多个许可可以使得ar对象系统116(例如,其ar对象登记服务236)能够确定给定用户是否可以关于与地图(例如,拓扑图)上的坐标集相对应的位置来登记(例如,关联)排序器。如本文所述,排序器可以响应于来自客户端设备的对ar对象的请求或查询,确定哪些ar对象被提供(例如,显现)给客户端设备。
43.下面的表1可以表示用于存储逻辑拓扑数据层214的地区数据的数据库表的示例结构。
[0044][0045]
根据一些实施方式,(逻辑拓扑数据层214的)地理位置数据包括以下数据:用于存储和与地图(例如,拓扑图)上的位置对应的一个或更多个坐标相关联的ar对象的登记的数据、用于存储将与地图上的位置相对应的一个或更多个坐标相关联的排序器的登记的数据、或这两者的某种组合。特别地,对于一些实施方式,地理位置数据可以将来自3d拓扑数据层212的数据(例如,地理空间数据)与来自ar对象模型数据层218的模型数据相关联。以此方式,地理位置数据可以促进与对应于地图上的位置的坐标集相关联的ar对象的登记(例如,放置)。对于一些实施方式,地理位置数据将ar对象的中心(例如,质心)与该坐标集相关联。ar对象的中心可以对应于ar对象的3d边界框的中心。当ar对象最终由客户端设备显示时,ar对象的显示位置和取向可以相对于ar对象的中心来确定。此外,对于各种实施方式,地理位置数据通过将来自3d拓扑数据层212的数据(例如,地理空间数据)与和排序器关联的标识符相关联来促进与对应于地图上的位置的坐标集相关联的排序器的登记。
[0046]
根据实施方式,地理位置数据可以被实现为数据库的连接表。下面的表2可以表示用于存储逻辑拓扑数据层214的地理位置数据的数据库表的示例结构。
[0047][0048][0049]
用户数据层216包括与ar对象系统116的用户相关联的数据。由用户数据层216提供的数据可以包括但不限于:关于给定用户拥有或控制哪些ar对象的数据、关于给定ar对象相对于给定用户的最后状态的数据、或关于与给定用户关联的一个或更多个会话的数据。下面的表3可以表示用于存储用户数据层216的用户数据的数据库表的示例结构。
[0050]
[0051]
下面的表4可以表示用于存储用户数据层216的数据以用于查找用户对ar对象的所有权/控制的数据库表的示例结构。
[0052][0053][0054]
ar对象模型数据层218包括可能利用ar对象系统116登记的一个或更多个ar对象的数据。由ar对象模型数据层218存储的数据可以包括但不限于:用于生成(例如,渲染)视觉上表示给定ar对象的3d模型的模型数据、描述给定ar对象的(例如,预先计算的)3d边界框的数据、描述用于与给定ar对象交互的一个或更多个规则的规则数据。如本文所述,与给定ar对象相关联的3d边界框的中心可以确定:给定ar对象在由客户端设备相对于现实世界环境显示时如何被定位和定向(例如,给定ar对象如何被嵌入在由客户端设备呈现的现实世界空间中)。此外,如本文所述,与给定ar对象相关联的一个或更多个规则可以确定相对于给定ar对象可用的用户交互的级别。例如,给定ar对象的一个或更多个规则可以确定:ar对象是否是静态的、是否具有仅限于客户端设备的交互、或者是否允许通过交互式会话进行多用户交互。
[0055]
根据实施方式,ar对象模型数据层218可以被实现为实现键值存储的数据结构。下面的表5可以表示用于存储ar对象模型数据层218的数据的数据库表的示例结构。
[0056][0057]
ar对象交互式会话服务232促进或管理交互式会话(以下称为会话)的操作,该交互式会话使实现关于一个或更多个登记的ar对象(例如,ar对象组)的多用户交互。如本文所述,通过会话,可以在与一个或更多个ar对象联合地交互的用户的客户端设备之间传送
交互数据。对于一些实施方式,当用户请求与一个或更多个给定ar对象交互时,ar对象交互式会话服务232将用户分配给会话,其中分配的会话将处理用户关于一个或更多个给定ar对象的交互。此外,对于一些实施方式,当用户请求多个用户关于一个或更多个给定ar对象一起交互(即,请求多用户交互)时,ar对象交互式会话服务232将用户分配给会话。根据实施方式,ar对象交互式会话服务232可以使用不同的方法将用户分配给给定的会话(例如,用用户填充给定的会话),例如优先分配给作为朋友的用户或者基于先到先服务来分配。
[0058]
响应于来自用户的客户端设备的参与会话以与ar对象集合进行交互(例如,促进多用户交互)的请求,ar对象交互式会话服务232可以将用户分配给可以服务于请求的现有会话(例如,已经在会话服务器上操作的会话),或者生成并将用户分配给新会话(例如,在会话服务器上启动新会话)以服务于请求。在本文中关于图3和图4描述了更多关于使用映射服务器(例如,世界服务器)和会话服务器的会话分配和会话操作。
[0059]
对于一些实施方式,用户被限制为一次参与一个会话。参与给定会话的用户可以闲置给定会话(例如,基于一段时间后会话内缺乏活动或交互)。此外,可以为给定会话分配用户参与者计数限制,以确保给定会话按参与用户的预期操作。用户参与者计数限制可能因不同会话而异。例如,用户参与者计数限制可以基于不同会话所服务的地理区域/分区(例如,地标周围的区域,例如华盛顿纪念碑,可能涉及更多的用户ar对象交互,因此比覆盖小的城市公园的区域具有更低的计数限制)。
[0060]
对于一些实施方式,参与给定会话的每个用户的客户端设备与参与给定会话的所有其他用户的客户端设备共享关于该用户参与给定会话的数据。数据可以包括但不限于用户对给定会话的输入(例如,滑动、头部倾斜等)以及由用户的交互引起的给定会话中涉及的ar对象的状态的变化。对于各种实施方式,通过给定会话的操作来促进客户端设备之间的数据共享。
[0061]
会话中涉及的ar对象的状态可以被称为ar对象的会话状态。会话的ar对象的当前会话状态可以充当用户通过会话与ar对象交互的“基本事实(ground truth)”。对于与一个或更多个给定ar对象交互的给定会话,参与(例如,被分配和涉及)给定会话的用户的客户端设备可以在用户参与会话开始时接收那些给定ar对象中的每一个的起始状态,客户端设备使用该会话在客户端设备处初始化那些给定ar对象中的每一个的会话状态。然后,用户可以通过例如以下操作来参与会话:与给定ar对象中的一个或更多个交互,或者用户观察会话的另一用户与给定ar对象中的一个或更多个交互。当用户参与给定会话时,用户的客户端设备可以在本地工作和维护(例如,存储和更新)客户端设备处的给定ar对象中的每一个的会话状态的本地副本。例如,客户端设备可以基于用户与第一ar对象的交互来更新给定会话的第一ar对象的本地维护的会话状态。同时,客户端设备可以基于客户端设备接收到的关于参与给定会话的另一个用户与第一ar对象的交互的会话状态更新数据来更新给定会话的第一ar对象的本地维护的会话状态(例如,由其他用户的客户端设备通过给定会话向所有用户客户端设备广播的会话状态更新数据)。根据给定ar对象的交互级别(例如,由与给定ar对象关联的规则限定),在给定会话终止时,可以将给定ar对象的最终会话状态存储(例如,持久存储)到ar对象系统116(例如,关于给定会话的用户存储到用户数据层216,或经由ar对象模型数据层218针对所有用户被存储)。例如,给定ar对象的规则可以限定给定ar对象可以通过会话进行交互,并且对给定ar对象的会话状态的任何更改最终都将
被保存到ar对象系统116。一旦这个最终会话状态被存储到ar对象系统116,下次一个或更多个用户再次开始与给定ar对象交互时(例如,在新会话中),存储的会话状态就可以被用作给定ar对象的初始/起始状态。通过在客户端设备处维护会话状态的本地副本并在会话结束时保存给定ar对象(在适用的情况下)的最终状态,各种实施方式可以使实现ar对象交互式会话服务232的可缩放性,还可以促进ar对象交互式会话服务232的稳定性,并减少或可以避免/减少ar对象交互式会话服务232的覆盖抖动(overwrite thrash)。
[0062]
ar对象交互式会话服务232可以支持涉及同一ar对象的交互的多个同时会话。ar对象交互式会话服务232支持的会话可以独立地操作。因此,对于给定会话的给定ar对象,可以维护对给定会话内给定ar对象的状态(给定ar对象的会话状态)的访问,使得不能在给定会话之外(例如,由未参与给定会话的用户)访问会话状态。这意味着两个独立的同时会话可能涉及与相同的特定ar对象交互的用户,但那些独立的同时会话中的每一个都针对该特定ar对象维护其自己的会话状态。如本文中所描述的,会话的独立性可以使得一些实施方式能够使用映射服务器和多个会话服务器(例如,负责基于现实世界的地理分区来服务于会话的独立会话服务器)来管理(例如,生成、分配和操作)会话,这可以为用户提供可缩放性和稳定性。例如,独立会话方法意味着实施方式可以向一个或更多个用户(在单个会话内)提供以下体验:在令人满意的时间量内(而不是少于少量时间,如果所有用户都在与被操作成分配给同一会话的给定ar对象进行交互或者给定ar对象的会话状态在多个会话之间被共享,则会导致这种情况)看到单个会话的用户相对于现实世界对象创建的ar对象(例如,在现实世界雕像上放置虚拟仇恨)。在两个或更多个同时会话涉及一个或更多个相同ar对象的情况下,如果要在同时会话终止后存储这些相同ar对象的最终会话状态,则可以使用合并规则功能来合并这些相同ar对象的最终会话状态。
[0063]
在本文中关于图3和图4描述了更多关于ar对象交互式会话服务232的操作。
[0064]
ar对象查询服务234处理来自客户端设备的对来自由ar对象系统116实现(例如,经由逻辑拓扑数据层214的地理位置数据实现)的ar登记表的一个或更多个ar对象的请求或查询。基于接收到的请求/查询,ar对象查询服务234可以确定一个或更多个ar对象(来自ar登记表)以被发送回客户端设备以供使用。以这种方式,ar对象查询服务234作为ar对象表面服务进行操作,假设由ar对象查询服务234提供给客户端设备的一个或更多个ar对象(例如,基于客户端请求或查询)导致(或可能导致)客户端设备在客户端设备上呈现或显现那些一个或更多个ar对象。对ar对象查询服务234的请求/查询可以由客户端设备上的客户端应用(例如104)生成,其中客户端应用可以使用由ar对象查询服务234提供的一个或更多个ar对象来相对于现实世界环境的视图呈现(例如,提供混合的现实用户体验)。如本文所述,请求/查询可以包括与客户端设备相关联的信息,诸如关于客户端设备的用户的信息、客户端设备的当前坐标集(例如,gps坐标)或围绕客户端设备的指定半径。
[0065]
对于一些实施方式,ar对象查询服务234使用一个或更多个排序器来确定响应于请求/查询而将哪些一个或更多个ar对象发送回客户端设备。通过排序器,ar对象查询服务234可以对ar对象进行优先化、过滤或排序以确定发送到客户端设备的最终ar对象集合。例如,ar对象查询服务234可以基于客户端请求/查询从ar登记表中确定(例如,标识)中间/初始ar对象集合,然后使用排序器对中间/初始ar对象集合进行过滤和排序,以确定要发送到客户端设备的最终ar对象集合。替选地,排序器可以接收客户端请求/查询并生成基于排序
器的查询,该查询包括用于对ar对象进行优先化、过滤或排序的一个或更多个参数,并且结果响应于基于排序器的查询而被提供。例如,可以对与来自逻辑拓扑数据层214的地理位置数据相关联的属性执行过滤、排序或这两者。
[0066]
可以实现排序器,使得排序器可以是水平可缩放的。根据实施方式,ar对象查询服务234可以具有一个或更多个排序器可供使用。ar对象查询服务234可以基于包括例如基于在客户端请求/查询中提供的信息(例如,客户端设备地理位置或特定半径)或用户选择或偏好的许多因素(从多个可用排序器中)选择和使用一个或更多个排序器。如本文所述,ar对象登记服务236可以促进利用ar对象系统116登记新的或现有的排序器,从而使得那些新的/现有的排序器的可用性能够被ar对象查询服务234使用。示例排序器可以包括查询结果限制(例如,限制为25个ar对象)。另一个示例排序器可以包括基于伪随机公平性来选择ar对象并且然后对选择的ar对象进行排序的算法。
[0067]
对于一些实施方式,ar对象查询服务234可以使用访问竞价数据(例如,由竞价系统提供)的排序器来确定ar对象集合的优先级,这可以使得ar对象查询服务234能够基于确定的优先级对ar对象集合进行过滤。例如,对于落在以与客户端设备的位置相对应的位置为中心的特定半径内的ar对象集合,排序器可以(例如,实时)访问一个或更多个ar对象(在ar对象集合中)的竞价数据,其可以确定那些一个或更多个ar对象的优先级。通过对每个ar对象执行货币化查找,可以访问每个ar对象的竞价数据。
[0068]
竞价数据可以由竞价系统提供,该竞价系统可以是独立的或者是ar对象系统116的一部分。在独立的情况下,竞价系统可以至少具有对ar对象系统116的数据(例如,逻辑拓扑数据层214的地理位置数据)的读取访问权,这可以促进对ar对象的登记/放置的竞价。
[0069]
一些实施方式提供或利用竞价系统,该竞价系统允许一个或更多个用户(例如,代表第三方组织)就他们选择的ar对象优先于其他ar对象(显现)进行竞价。例如,一个或更多个用户可以针对某些用户或某些类型的用户等,与坐标集、相对于(例如,围绕)坐标集的区域、标记的区域(例如,由来自逻辑拓扑数据层214的地区数据描述)相关联地对他们选择的ar对象优先化(例如,提高优先级)来竞价。例如,对于已登记的ar对象(与对应于地图上的位置的坐标集相关联地登记的ar对象),用户可以对提高已登记的ar对象的优先级(例如,高于相对于相同坐标集处或周围的位置登记/放置的其他ar对象)来竞价。通过经由获胜竞标来提高登记的ar对象的优先级,用户可以有效地提高登记的ar在客户端设备上的显示/呈现/显现排名。例如,基于与竞价数据相关联的排序器,提供给客户端设备的请求/查询结果可以包括预定数量的最高竞价的ar对象。竞价可以包括由竞价提供的价值(例如,货币价值或虚拟信用),并且还可以包括通过竞价请求的优先级值(例如,优先级提升的量或实际优先级值)。在竞价系统上,竞价可以包括用户将货币价值/虚拟信用与逻辑拓扑数据层214的地理位置数据记录(例如,对应于记录的postion_id)相关联。
[0070]
通过使用排序器可以使得ar对象系统116能够分散查询ar登记表以查找ar对象的能力。此外,排序器的使用可以通过改进在客户端设备处向用户呈现/显现哪些ar对象来改进用户体验。例如,通过使用排序器,ar对象查询服务234可以使得用户能够基于例如一年中的时间或地理位置来查看不同类型的ar对象。例如,用户希望在拉斯维加斯看到的ar对象不一定是希望在家庭感恩节晚餐上看到的。
[0071]
关于ar对象查询服务234的操作的更多信息在本文中关于图5进行描述。
[0072]
通过ar对象登记服务236,用户可以管理(例如,添加、移除或修改)与对应于地图(例如,拓扑图)上的位置的一个或更多个坐标相关联的ar对象的登记,可以管理与对应于地图上的位置的一个或更多个坐标相关联的排序器的登记,或者这两者。例如,用户可以使用ar对象登记服务236来生成关于与地图上的位置对应的一个或更多个坐标的ar对象的新登记。新登记可以针对新添加到ar对象模型数据层218或已经存储在ar对象模型数据层218上的ar对象。如本文所述,登记与坐标集相关联的ar对象可以有效地将ar对象放置在与坐标集对应的位置(例如,相对于现实世界地图放置ar对象以实现混合现实)。根据实施方式,ar对象或排序器的登记可以是短暂的。
[0073]
对于一些实施方式,ar对象登记服务236使用许可数据来确定给定用户是否可以相对于地图上的一个或更多个坐标来登记给定ar对象、给定排序器或这两者。例如,如本文所述,来自逻辑拓扑数据层214的地区数据可以提供与现实世界环境的一个或更多个区域(例如,由地区数据描述的标记的区域)相关联的许可数据。此外,对于一些实施方式,ar对象登记服务236实施关于登记请求(例如,添加、移除或更新登记的请求)的一个或更多个速率限制。例如,速率限制可以限定给定用户限于每天通过ar对象登记服务236进行五次登记。在另一个示例中,速率限制可以限定给定用户被限制为每天预定数目的登记,并且给定用户必须在一天内支付超过预定数目的登记。通过速率限制,一些实施方式可以避免向ar对象登记服务236发送登记请求的垃圾邮件。
[0074]
根据实施方式,ar对象登记服务236可以允许或促进公共域(例如,公共登记)登记ar对象、排序器或这两者。例如,用户(例如,来自公众)可以构造新的ar对象或新的排序器,并经由ar对象登记服务236登记这个新项目。
[0075]
对于一些实施方式,ar对象登记服务236在如本文所述的逻辑拓扑数据层214的地理位置数据中存储ar对象的登记(关于与地图上的位置相对应的坐标集)(例如,使用表2的model_id)。类似地,对于一些实施方式,ar对象登记服务236将排序器的登记(例如,关于与地图上的位置对应的坐标集)存储为如本文所述的逻辑拓扑数据层214的地理位置数据(例如,使用表2的ranker_id)。一些实施方式可以促进与客户端设备的属性(例如,特定客户端设备的身份、客户端设备类型、操作系统的版本等)或客户端应用的属性(例如,特定客户端应用或特定客户端应用类型的身份或版本,例如web浏览器、社交网络或消息收发软件应用)相关的ar对象或排序器的登记。
[0076]
图3是示出根据一些实施方式的ar对象交互式会话服务232的示例的框图。如图3所示,ar对象交互式会话服务232包括一个或更多个映射服务器302(例如,世界服务器)以及一个或更多个会话服务器304。根据实施方式,特定的映射服务器302可以确定(在特定的会话服务器304上操作的)会话并将该会话分配给客户端设备,并且特定的会话服务器304可以操作支持用户与一个或更多个ar对象的交互(例如,多用户交互)的一个或更多个会话。根据一些实施方式,用户的客户端设备发送用以使用会话来与ar对象集合进行交互(例如,促进多用户交互)的请求。一个或更多个映射服务器302可以接收该请求,确定会话服务器中的特定会话服务器304(下文中被称为确定的会话服务器304)来服务于该请求,将用户或客户端设备分配给在可以服务于该请求的确定的会话服务器304上操作的新的或现有的会话,并且将客户端设备重新路由或以其他方式重定向到确定的会话服务器304。根据实施方式,映射服务器302可以基于例如客户端设备的坐标集、用户的身份、会话服务器的当前
负载、会话服务器304与真实世界环境的标记的区域(例如,地理分区(geopartitioning))的关联来确定会话服务器中的哪个会话服务器304将服务于给定请求。例如,映射服务器302可以确定会话服务器中的哪个会话服务器304将服务于给定请求,使得与同一ar对象集合交互的多个同时用户以如下方式被划分:不使会话服务器304中的任何会话服务器过载,同时维持会话中的优先用户分组(例如,将作为好友的用户一起放置在同一会话中)。
[0077]
给定会话服务器304可以(例如,基于其特定负载或容量)操作多个同时会话。如本文中所描述的,给定会话维护其自己的在给定会话中涉及的ar对象中的每个ar对象的会话状态,并且那些会话状态被维护成在给定会话之外不可访问。给定会话服务器304可以操作会话的虚拟、规范的副本。一旦参与(在给定会话服务器304上操作的)给定会话的用户的多个客户端设备已经建立了与给定会话的数据连接,每个客户端设备就可以向给定会话传送数据(诸如用户输入(例如,滑动、头部倾斜等))或对ar对象的会话状态更新,并且给定会话可以与连接至给定会话的其他客户端设备共享数据。客户端设备可以使用例如低延迟、基于用户数据报协议(udp)的连接来与给定会话共享数据。在从客户端设备接收到用户输入后,给定会话可以验证用户输入(例如,以阻止或避免机器人或骗子),并且可以(例如,使用相同的低延迟、基于udp的连接)向所有其他客户端设备共享经验证的用户输入,因此客户端设备可以相应地基于经验证的用户输入来更新它们的ar对象的会话状态的本地副本。给定会话还可以基于经验证的用户输入来更新一些会话信息。
[0078]
图4是示出根据一些实施方式的由ar对象交互式会话服务(例如,232)进行的会话处理的示例的流程图。开始时,在客户端设备404上操作的客户端应用可以使客户端设备404向ar对象查询服务402请求/查询一个或更多个ar对象(例如,基于与客户端设备404的当前位置和半径值对应的坐标集的请求/查询)。在操作420处,客户端设备404可以下载由请求/查询产生的一个或更多个ar对象的数据,该数据可以包括一个或更多个ar对象的模型数据和规则数据。随后,用户可以根据由规则数据描述的一个或更多个规则来与一个或更多个ar对象交互。最终,用户可以请求会话以促进关于一个或更多个ar对象中的至少一个ar对象的多用户交互。因此,在操作422处,客户端设备404可以初始化与映射服务器406(例如,世界服务器)的连接,这可以使得客户端设备404能够发送其对会话的请求。响应于该请求,在操作424处,映射服务器406可以检查ar对象交互式会话高速缓冲存储器410,以确定是否存在与所述至少一个ar对象相关联的任何现有会话(客户端设备404可以被分配给所述任何现有会话)或者是否需要针对该请求创建新的会话。在图4中,ar对象交互式会话高速缓冲存储器410可以对关于当前由一个或更多个会话服务器正在操作的会话的信息进行缓存。因此,诸如会话服务器408的会话服务器可以周期性地更新存储在ar对象交互式会话高速缓冲存储器410上的信息(如操作428所表示)。在映射服务器406标识客户端设备404并将其分配给新的会话或现有会话之后,在操作426处,映射服务器406可以将客户端设备404重定向到对所分配的会话进行操作的会话服务器(由会话服务器408表示)。一旦客户端设备404被重定向到会话服务器408并且与所分配的会话的数据连接被建立,则在操作430处,客户端设备就可以将其用户的输入发送到所分配的会话(该用户的输入由所分配的会话与连接至所分配的会话的其他客户端设备共享),并且客户端设备可以从参与所分配的会话的其他用户的客户端设备接收用户输入。基于所接收的用户输入,客户端设备404可以更新该客户端设备的在所分配的会话中涉及的ar对象的会话状态的本地副本。
[0079]
图5是根据一些实施方式的使用一个或更多个排序器向客户端设备提供一个或更多个ar对象的示例的流程图。开始时,在客户端设备502上操作的客户端应用可以使客户端设备502向ar对象查询服务504请求/查询一个或更多个ar对象(例如,基于与客户端设备404的当前位置对应的坐标集和半径值的请求/查询)。操作530可以表示客户端设备502向ar对象查询服务504发送请求/查询。请求/查询可以由客户端设备502的用户使用客户端设备502(例如,智能电话)针对ar对象来扫描他们周围的真实世界环境而产生。ar对象查询服务504可以(例如,基于由请求/查询提供的坐标集)确定与接收到的请求/查询相关联的一个或更多个排序器。所确定的排序器之一可以是如下排序器,该排序器在操作532处从竞价系统506访问竞价数据并且使一个或更多个ar对象优先于其他ar对象。如本文中所描述的,竞价系统506可以使得用户能够对已登记的ar对象的优先化(例如,提升已登记的ar对象的优先级)进行竞价。在操作534处,ar对象查询服务504可以查询地理位置数据508,以确定与客户端设备502的当前地理位置的半径内的坐标相关联的中间的ar对象集合,然后将一个或更多个所确定的排序器应用于中间的ar对象集合(例如,对中间的ar对象集合进行过滤或排序)以达到最终的ar对象集合。在操作536处,ar对象查询服务504可以获得(例如,取来)最终的ar对象集合的数据,该数据可以包括例如来自ar对象模型数据510的数据和与最终的ar对象集合相关联的规则数据。在操作538处,最终的ar对象集合的数据被提供至客户端设备502并由该客户端设备502下载(如512所表示)。在操作540处,客户端设备502可以确定虚拟相机相对于客户端设备502的显示器的定位(如514所表示),并且在操作542处,客户端设备502可以基于定位的虚拟相机来显示来自最终集合的ar对象的一个或更多个ar对象的渲染的模型(如516所表示)。随后,客户端设备502的用户可以与客户端设备502上显示的ar对象进行交互。
[0080]
图6是示出根据一些实施方式的ar对象系统116的示例实现方式的框图。ar对象系统116被示出为包括增强现实(ar)对象查询模块602、增强现实(ar)对象交互式会话模块604、增强现实(ar)对象登记表模块606、增强现实(ar)对象竞价模块608、三维(3d)拓扑数据模块610、逻辑拓扑数据模块612、用户数据模块614和增强现实(ar)对象模型数据模块616。ar对象系统116的各种模块被配置成(例如,经由总线、共享的存储器或交换机)彼此进行通信。这些模块中的任何一个或更多个模块可以使用一个或更多个处理器600来实现(例如,通过将这样的一个或更多个处理器600配置成执行针对该模块描述的功能),因此可以包括处理器600中的一个或更多个处理器。
[0081]
所描述的模块中的任何一个或更多个模块可以单独使用硬件(例如,诸如机器1500的机器的计算机处理器中的一个或更多个)或使用硬件和软件的组合来实现。例如,ar对象系统116的任何描述的模块可以在物理上包括被配置成执行本文中针对该模块描述的操作的(例如,诸如机器1500的机器的一个或更多个处理器的子集或所述机器的一个或更多个处理器之中的)处理器600中的一个或更多个处理器的布置。作为另一示例,ar对象系统116的任何模块可以包括软件、硬件或这两者,所述软件、硬件或这两者将(例如,诸如机器1500的机器的一个或更多个处理器之中的)一个或更多个处理器600的布置配置成执行本文中针对该模块描述的操作。因此,ar对象系统116的不同模块可以包括和配置不同时间点处这样的处理器600的不同布置或者这样的处理器600的单个布置。此外,ar对象系统116的任何两个或更多个模块可以被组合成单个模块,并且本文中针对单个模块描述的功能可
以在多个模块之间被细分。此外,根据各种实施方式,本文中被描述为在单个机器、数据库或设备内被实现的模块可以跨多个机器、数据库或设备进行分布。
[0082]
ar对象查询模块602用以促进或实现本文中关于图2描述的ar对象查询服务234的各方面、特征或功能。ar对象交互式会话模块604用以促进或实现本文中关于图2描述的ar对象交互式会话服务232的各方面、特征或功能。ar对象登记表模块606用以促进或实现本文中关于图2描述的ar对象登记表服务236的各方面、特征或功能。对于一些实施方式,ar对象登记表模块606还支持如本文中描述的排序器的登记。ar对象竞价模块608用以促进或实现本文中关于图2的ar对象查询服务234所描述的竞价系统的各方面、特征或功能。3d拓扑数据模块610用以促进或实现本文中关于图2描述的关于3d拓扑数据层212的各方面、特征或功能。逻辑拓扑数据模块612用以促进或实现本文中关于图2描述的关于逻辑拓扑数据层214的各方面、特征或功能。用户数据模块614用以促进或实现本文中关于图2描述的用户数据层216的各方面、特征或功能。ar对象模型数据模块616用以促进或实现本文中关于图2描述的ar对象模型数据层218的各方面、特征或功能。
[0083]
对于一些实施方式,世界服务器集合和会话服务器集合用来实现或操作ar对象交互式会话模块604。另外,对于一些实施方式,ar对象查询模块602在如下查询服务器集合上被实现或操作,所述查询服务器集合与用于操作ar对象交互式会话模块604的世界服务器集合和会话服务器集合分离。将在下面关于图7至图13所描绘的方法的操作来描述关于模块602至616的更多信息。
[0084]
图7至图13是示出根据一些实施方式的与ar对象登记表相关的方法的流程图。本文中关于图7至图13描述的各种方法可以以机器可读指令体现,所述机器可读指令由一个或更多个计算机处理器执行,使得方法的操作可以部分地或全部地由服务器系统108或更具体地ar对象系统116来执行。因此,本文中参考ar对象系统116以示例的方式描述了各种方法。方法800的操作中的至少一些操作可以被部署在各种其他硬件配置上,并且本文中描述的方法并不旨在限于由服务器系统108进行操作。虽然本文中描述的方法的步骤可以以一定的顺序被描绘和描述,但是执行操作的顺序在实施方式之间可以变化。例如,一个操作可以在另一操作之前、之后或同时被执行。此外,在一些实施方式中,关于方法描述的组件仅是可以与方法一起使用的组件的示例,并且也可以利用其他组件。
[0085]
现在参照图7,示出了用于向客户端设备提供ar对象并处理用于与所提供的ar对象进行交互的会话的方法700。在操作702处,ar对象查询模块602从客户端设备接收针对一个或更多个增强现实对象的查询,其中,该查询可以包括与客户端设备在地图上的位置对应的当前坐标集,并且还可以包括相对于当前坐标集(例如,以与当前坐标集对应的位置为中心)的半径。
[0086]
响应于在操作702处接收的查询,在操作704处,ar对象查询模块602基于该查询来确定(例如,标识)增强现实对象集合,并在操作706处,向客户端设备发送查询结果,其中,查询结果包括由操作704确定的增强现实对象集合的结果数据。基于该查询来确定增强现实对象集合可以包括:ar对象查询模块602基于接收到的查询执行搜索。可以通过操作704从增强现实对象登记表上登记的多个增强现实对象(例如,经由ar对象登记表模块606登记的)中确定增强现实对象集合。如本文中所述,基于通过查询结果提供至客户端设备的结果数据,客户端设备可以显示(或显现)来自增强现实对象集合中的增强现实对象中的一个或
更多个。
[0087]
根据实施方式,结果数据可以包括至少一个增强现实对象的当前存储的状态(存储在ar对象系统116上的状态),其中,当前存储的状态一旦被提供至客户端设备就可以确定客户端设备上的用户的至少一个增强现实对象的初始状态。结果数据可以包括增强现实对象集合中的每个增强现实对象的模型数据。结果数据可以包括位置(例如,定位)数据,该位置数据针对增强现实对象集合中的每个增强现实对象描述了地图上的给定坐标集,当给定的客户端设备生成相对于给定的坐标集的增强现实视图时,给定的客户端设备将在所述给定的坐标集处显示增强现实对象。结果数据可以包括取向数据,该取向数据针对增强现实对象集合中的每个增强现实对象描述了给定取向,当客户端设备生成包括增强现实对象的增强现实视图时,给定客户端设备将以所述给定取向显示增强现实对象。另外,结果数据可以包括规则数据,该规则数据描述了与增强现实对象集合相关联的交互规则集合,其中,所述交互规则集合可以确定(第一客户端设备上的)用户关于增强现实对象集合可用的交互。ar对象系统116的增强现实登记表可以将给定增强现实对象与一个或更多个交互规则相关联。
[0088]
在操作708处,ar对象交互式会话模块604从客户端设备接收客户端设备处的用户的与增强现实对象集合中的至少一个增强现实对象进行交互的请求(在操作704处,所述增强现实对象集合在操作704处被确定;并且在操作706处,针对所述增强现实对象集合的查询结果被发送至客户端设备)。
[0089]
响应于在操作708处接收的请求,在操作710处,ar对象交互式会话模块604确定(例如,标识)用以服务于在操作708处接收的请求的给定会话服务器,并在操作712处,将客户端设备分配给在给定会话服务器上操作的给定会话。给定会话可以是由给定会话响应于请求而创建的新的会话,或者是涉及与请求相关联的同一ar对象集合的现有会话。对于一些实施方式,ar对象交互式会话模块604可以检查会话高速缓冲存储器,以确定对于该请求是否已经存在相关的现有会话。在操作710处确定的给定会话服务器可以与包含客户端设备在地图上的定位的地图的地理分区相关联。如本文所述,给定会话可以促进客户端设备的用户与至少一个增强现实对象的交互。此外,如本文所述,给定会话可以维护关于与给定会话相关联(例如,参与给定会话)的一个或更多个用户的至少一个增强现实对象的会话状态,其中,可以基于用户中的至少一个用户与至少一个增强现实对象的交互来更新会话状态。给定会话服务器可以从多个给定会话服务器(例如,304)被确定,映射服务器(例如,302)可以执行给定会话服务器的确定。对于一些实施方式,多个会话服务器在第一组计算机设备上进行操作,所述第一组计算机设备与操作映射服务器的第二组计算机设备分离。对于一些实施方式,将第一客户端设备分配给在给定会话服务器上操作的给定会话包括:将客户端设备从映射服务器重定向到给定会话服务器。一旦给定会话被分配给用户,就可以经由用户数据模块614来更新用户数据。在分配之后,可以在客户端设备与给定会话服务器上的(分配的)给定会话之间建立网络连接。
[0090]
现在参照图8,示出了用于向客户端设备提供ar对象并处理多个用户与所提供的ar对象进行交互的会话的方法800。对于一些实施方式,操作802至操作806分别类似于以上关于图7描述的方法700的操作702至操作706,并且针对(与第一用户相关联的)第一客户端设备被执行。在操作808处,ar对象交互式会话模块604从第一客户端设备接收如下请求:多
个用户一起与增强现实对象集合中的至少一个增强现实对象进行交互(例如,多用户交互式会话)(在操作804处,所述增强现实对象集合在操作804处被确定;并且在操作806处,针对所述增强现实对象集合的查询结果被发送至第一客户端设备)。如本文所述,多用户交互式会话可以促进多个用户与至少一个增强现实对象的交互。
[0091]
响应于在操作808处接收的请求,在操作810处,ar对象交互式会话模块604确定(例如,标识)用以服务于在操作808处接收的请求的给定会话服务器,并在操作812处,将第一客户端设备分配给在给定会话服务器上操作的给定会话。如本文所述,在操作810处确定的给定会话服务器可以与包含第一客户端设备在地图上的定位的地图的地理分区相关联。另外,在操作814处,ar对象交互式会话模块604将与第二用户相关联的第二客户端设备分配给(在操作810处确定的)在相同的给定会话服务器上操作的相同给定会话,其中,第一客户端设备的第一用户和第二客户端设备的第二用户是在操作808处接收到会话请求的多个用户的一部分。此外,多个用户中的其他用户可以以类似的方式被分配到同一给定会话服务器上的同一给定会话。
[0092]
现在参照图9,示出了用于向客户端设备提供ar对象并处理与所提供的ar对象进行交互的会话的方法900。对于一些实施方式,操作902至操作912类似于以上关于图7描述的方法700的操作702至操作712。在操作914处,在给定会话终止时,ar对象交互式会话模块604存储(或使存储)至少一个增强现实对象的会话状态的最终版本。如本文所述,给定增强现实对象的会话状态的最终版本可以通过参与给定会话的用户的交互来确定(例如,调整)。
[0093]
现在参照图10,示出了用于将ar对象登记到ar对象登记表的方法1000。在操作1002处,ar对象登记表模块606从与用户相关联的客户端设备接收如下请求:在增强现实对象登记表上登记与地图上的给定坐标集相关联的给定增强现实对象。
[0094]
响应于在操作1002处接收的请求,在操作1004处,ar对象登记表模块606基于许可数据确定用户是否具有登记与地图上的给定坐标集相关联的给定增强现实对象的许可。对于一些实施方式,许可数据描述了地图上的至少一个坐标集与许可集之间的关联。许可数据可以与地图的包含给定坐标集的标记的区域相关联。因此,对于一些实施方式,许可数据可以由通过逻辑拓扑数据模块612可访问的地区数据提供。
[0095]
此外,响应于在操作1002处接收的请求,执行操作1006。在操作1006处,基于确定用户是否具有许可,ar对象登记表模块606在增强现实对象登记表上登记与地图上的给定坐标集相关联的给定增强现实对象。当这样做时,ar对象登记表模块606可以将用户指定为登记的所有者或控制者。
[0096]
现在参照图11,示出了用于基于一个或更多个排序器向客户端设备提供ar对象的方法1100。在操作1102处,ar对象查询模块602从客户端设备接收针对一个或更多个增强现实对象的查询,其中,该查询可以包括与客户端设备在地图上的定位对应的当前坐标集,并且还可以包括相对于当前坐标集(例如,以与当前坐标集对应的位置为中心)的半径。
[0097]
响应于在操作1102处接收的查询,在操作1104处,ar对象查询模块602:基于该查询确定(例如,标识)中间的增强现实对象集合;在操作1106处,确定用于查询的排序器集合,其中,所述排序器集合中的至少一个排序器被配置成对增强现实对象集合进行过滤或排序;并且在操作1108处,通过将所述排序器集合应用于中间的增强现实对象集合(例如,
根据排序器进行过滤或排序)来生成最终的增强现实对象集合。示例排序器可以包括将过滤器或排序顺序中的至少一个应用于增强现实对象集合的排序器。
[0098]
另一示例排序器可以包括基于增强现实对象集合的优先级集合来过滤增强现实对象集合的排序器。可以例如由(例如,经由逻辑拓扑数据模块612提供的)地理位置数据或由与增强现实对象中的一个或更多个相关联的(例如,经由ar对象竞价模块608提供的)竞价数据来提供(或确定)优先级。如本文中所描述的,(例如,由ar对象竞价模块608实现的)竞价系统可以使得用户能够对ar对象登记进行竞价以调整(例如,提升)该ar对象登记的优先级。通过ar对象竞价模块608,排序器可以:从竞价系统请求增强现实对象集合的优先级信息;并从竞价系统接收描述增强现实对象集合中的至少一个的优先级的优先级数据。
[0099]
排序器中的至少一个排序器的确定(例如,标识)可以基于排序器与客户端设备的用户的关联(例如,用户选择使用排序器或由用户登记)。排序器中的至少一个排序器的确定可以基于与客户端设备的位置对应的当前坐标集。这样做,可以对围绕客户端设备的半径应用排序器。排序器中的至少一个排序器的确定可以基于客户端设备的属性,诸如客户端设备的身份或客户端设备的设备类型。排序器中的至少一个排序器的确定可以基于日期集合(例如,范围)或时间集合中的至少一个。这样做,可以基于年的不同部分(例如,根据一年的季节)来应用排序器。
[0100]
作为操作1104至操作1108的替代,对于一些实施方式,响应于在操作1102处接收的查询,ar对象查询模块602:确定用于客户端查询的排序器集合(例如,其中,所述排序器集合中的至少一个排序器包括用于过滤增强现实对象集合的过滤器参数或用于对增强现实对象集合进行排序的排序顺序参数);以及基于客户端查询和所述排序器集合生成(例如,构造)查询(基于排序器的查询);然后根据基于排序器的查询来确定(例如,标识)最终的增强现实对象集合。
[0101]
在操作1110处,ar对象查询模块602向客户端设备发送查询结果,其中,查询结果包括最终的增强现实对象集合(例如,由操作1108或替选方法确定的最终集合)的结果数据。如本文所述,最终的增强现实对象集合的结果数据可以包括最终集合中的增强现实对象中的一个或更多个的各种类型的数据(例如,位置数据、模型数据、取向数据等)。
[0102]
现在参照图12,示出了用于基于涉及竞价系统的一个或更多个排序器向客户端设备提供ar对象的方法1200。对于一些实施方式,操作1202至操作1206分别类似于以上关于图11描述的方法1100的操作1102至操作1106。在操作1208处,ar对象查询模块602从竞价系统(经由ar对象竞价模块608)请求在操作1204处确定的中间的增强现实对象集合的优先级信息。对于一些实施方式,基于在操作1206处确定的排序器中的至少一个排序器来执行操作1208(例如,排序器使用增强现实对象的优先级信息来对这些增强现实对象进行过滤或排序)。在操作1210处,ar对象查询模块602从竞价系统接收优先级数据(或竞价数据),该优先级数据描述了中间的增强现实对象集合中的至少一个增强现实对象的优先级。
[0103]
对于一些实施方式,操作1212和操作1214分别类似于以上关于图11描述的方法1100的操作1108和操作1110。如本文所述,经由操作1208和操作1210获得的优先级信息可以使得(通过操作1212)应用于中间的增强现实对象集合的排序器能够对中间的增强现实对象集合进行过滤或排序。
[0104]
现在参照图13,示出了用于将排序器登记到排序器登记表(该排序器登记表可以
被实现为ar对象登记表的一部分)的方法1300。在操作1302处,ar对象登记表模块606从与用户相关联的客户端设备接收用以在排序器登记表上登记给定排序器的请求(例如与地图上的给定的坐标集、标记的区域、具体客户端设备、客户端设备类型、用户、用户类型、一天中的时间、日期、季节等相关联)。
[0105]
响应于在操作1302处接收的请求,在操作1304处,ar对象登记表模块606基于许可数据来确定用户是否具有登记给定排序器的许可。对于一些实施方式,许可数据描述了地图上的至少一个坐标集与许可集合之间的关联。许可数据可以与地图的包含给定坐标集的标记的区域相关联。因此,对于一些实施方式,许可数据可以由通过逻辑拓扑数据模块612可访问的地区数据提供。
[0106]
此外,响应于在操作1302处接收的请求,执行操作1306。在操作1306处,基于确定用户是否具有许可,ar对象登记表模块606在排序器登记表上登记给定排序器(例如与地图上的给定坐标集、标记的区域、具体客户端设备、客户端设备类型、用户、用户类型、一天中的时间、日期、季节等相关联)。当这样做时,ar对象登记表模块606可以将用户指定为登记的所有者或控制者。排序器可以被登记以仅由用户使用,或者开放以供ar对象系统116上的其他用户使用。
[0107]
图14是示出示例软件架构1406的框图,该示例软件架构1406可以与本文所述的各种硬件架构结合使用。图14是软件架构的非限制性示例,并且应当理解,可以实现许多其他架构以促进本文中描述的功能。软件架构1406可以在诸如图15的机器1500的硬件上执行,机器1500包括处理器1504、存储器/存储装置1506和i/o组件1518等。示出了代表性硬件层1452,并且该代表性硬件层1452可以代表例如图15的机器1500。代表性硬件层1452包括具有相关联的可执行指令1404的处理单元1454。可执行指令1404表示软件架构1406的可执行指令,包括本文描述的方法、组件等的实现。硬件层1452还包括存储器或存储模块存储器/存储装置1456,该存储器或存储模块存储器/存储装置1456也具有可执行指令1404。硬件层1452还可以包括其他硬件1458。
[0108]
在图14的示例架构中,软件架构1406可以被概念化为层的堆叠,其中每个层提供特定功能。例如,软件架构1406可以包括诸如操作系统1402、库1420、应用1416和呈现层1414的层。在操作上,应用1416或层内的其他组件可以通过软件栈调用应用编程接口(api)调用1408,并且接收对api调用1408的以消息1412的示例形式的响应。所示出的层在本质上是代表性的,并且不是所有软件架构都具有所有的层。例如,一些移动或专用操作系统可能不提供框架/中间件1418,而其他操作系统可能提供这样的层。其他软件架构可以包括另外的或不同的层。
[0109]
操作系统1402可以管理硬件资源并提供通用服务。操作系统1402可以包括例如内核1422、服务1424和驱动器1426。内核1422可以充当硬件层与其他软件层之间的抽象层。例如,内核1422可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务1424可以向其他软件层提供其他公共服务。驱动器1426负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器1426包括显示驱动器、摄像机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
[0110]
库1420提供由应用1416或其他组件或层使用的公共基础设施。库1420提供如下功
能,该功能允许其他软件组件以比与底层操作系统1402功能(例如,内核1422、服务1424和/或驱动器1426)直接对接的方式更容易的方式来执行任务。库1420可以包括系统库1444(例如,c标准库),系统库1444可以提供函数,诸如存储器分配函数、串操纵函数、数学函数等。此外,库1420可以包括api库1446,诸如媒体库(例如,支持诸如mpeg4、h.264、mp3、aac、amr、jpg、png的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上呈现2d和3d图形内容的opengl框架)、数据库库(例如,可以提供各种关系数据库功能的sqlite)、网络库(例如,可以提供网络浏览功能的webkit)等。库1420还可以包括各种各样的其他库1448,以向应用1416和其他软件组件/模块提供许多其他api。
[0111]
框架/中间件1418(有时也被称为中间件)提供可以由应用1416或其他软件组件/模块使用的较高级别的公共基础设施。例如,框架/中间件1418可以提供各种图形用户接口(gui)功能、高级资源管理、高级位置服务等。框架/中间件1418可以提供可以由应用1416或其他软件组件/模块使用的广泛的其他api,其中一些可以专用于特定操作系统1402或平台。
[0112]
应用1416包括内置应用1438或第三方应用1440。代表性内置应用1438的示例可以包括但不限于:联系人应用、浏览器应用、书籍读取器应用、位置应用、媒体应用、消息收发应用或游戏应用。第三方应用1440可以包括由除特定平台的供应商之外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)而开发的应用,并且可以是在诸如ios
tm
、android
tm
、电话的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用1440可以调用由移动操作系统(诸如,操作系统1402)提供的api调用1408,以促进本文中描述的功能。
[0113]
应用1416可以使用内置操作系统功能(例如,内核1422、服务1424或驱动器1426)、库1420和框架/中间件1418来创建用户接口以与系统的用户进行交互。替选地或另外地,在一些系统中,与用户的交互可以通过诸如呈现层1414的呈现层来发生。在这些系统中,应用/组件“逻辑”可以与应用/组件的与用户交互的方面分开。
[0114]
图15是示出根据一些实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文所讨论的方法中的任一种或更多种方法的机器1500的组件的框图。具体地,图15示出了以计算机系统的示例形式的机器1500的图形表示,在该机器1500中可以执行用于使机器1500执行本文所讨论的方法中的任一种或更多种的指令1510(例如,软件、程序、应用、小应用、app或其他可执行代码)。这样,指令1510可以用于实现本文描述的模块或组件。指令1510将通用的未编程的机器1500转换成特定机器1500,特定机器1500被编程成以所描述的方式执行所描述和所示出的功能。在可替选实施方式中,机器1500作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1500可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。机器1500可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家用电器)、其他智能装置、网络家用电器、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其他方式执行指定由机器1500要采取的动作的指令1510的任何机器。此外,虽然仅示出了单个机器1500,但是术语“机器”还应被认为包括单独地或
联合地执行指令1510以执行本文中讨论的方法中的任一种或更多种方法的机器的集合。
[0115]
机器1500可以包括可以被配置成例如经由总线1520彼此通信的处理器1504、存储器存储器/存储装置1506和i/o组件1518。存储器/存储装置1506可以包括诸如主存储器或其他存储器存储装置的存储器1514以及存储单元1516,这两者都能够由处理器1504诸如经由总线1502访问。存储单元1516和存储器1514存储体现本文中描述的方法或功能中的任一种或更多种的指令1510。指令1510还可以在其被机器1500执行期间完全地或部分地驻留在存储器1514内、存储单元1516内、处理器1504中的至少一个内(例如,在处理器的高速缓冲存储器内)或以上任何合适的组合内。因此,存储器1514、存储单元1516和处理器1504的存储器是机器可读介质的示例。
[0116]
i/o组件1518可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种各样的组件。包括在特定机器1500中的特定i/o组件1518将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入装置或其他这样的输入机构,而无头服务器机器(headless server machine)将很可能不包括这样的触摸输入装置。应当理解的是,i/o组件1518可以包括图15中未示出的许多其他组件。仅出于简化以下讨论的目的,根据功能对i/o组件1518进行了分组,并且分组决不是限制性的。在各种实施方式中,i/o组件1518可以包括输出组件1526和输入组件1528。输出组件1526可以包括视觉组件(例如,显示器,如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、听觉组件(例如,扬声器)、触觉组件(例如,振动马达、阻力机构)、其他信号发生器等。输入组件1528可以包括字母数字输入组件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
[0117]
在其他实施方式中,i/o组件1518可以包括生物特征识别组件1530、运动组件1534、环境组件1536或定位组件1538以及各种各样的其他组件。例如,生物特征识别组件1530可以包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼部跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1534可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1536可以包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或更多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声音传感器组件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器组件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或者用于测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量结果或信号的其他组件。定位组件1538可以包括位置传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,检测可以从其得出高度的气压的高度计或气压计)、取向传感器组件(例如,磁力计)等。
[0118]
可以使用各种各样的技术来实现通信。i/o组件1518可以包括通信组件1540,该通信组件1540可操作成分别经由耦接器1522和耦接器1524将机器1500耦接至网络1532或装
置1520。例如,通信组件1540可以包括网络接口组件或与网络1532对接的其他合适的装置。在其他示例中,通信组件1540可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低功耗)、组件和经由其他形式提供通信的其他通信组件。装置1520可以是另外的机器或各种各样的外围装置(例如,经由通用串行总线(usb)耦接的外围装置)中的任一种。
[0119]
此外,通信组件1540可以检测标识符或包括可操作成检测标识符的组件。例如,通信组件1540可以包括射频识别(rfid)标签阅读器组件、nfc智能标签检测组件、光学阅读器组件(例如,用于检测一维条形码、多维条形码和其他光学码的光学传感器,一维条形码例如为通用产品代码(upc)条形码,多维条形码例如为快速反应(qr)码、阿兹特克(aztec)码、数据矩阵、数据字形(dataglyph)、最大码(maxicode)、pdf417、超码(ultra code)、ucc rss-2d条形码)或声学检测组件(例如,用于标识标记的音频信号的麦克风)。另外,可以经由通信组件1540得出各种信息,例如经由因特网协议(ip)地理位置得出位置、经由信号三角测量得出位置、经由检测可以指示特定位置的nfc信标信号得出位置等。
[0120]
遍及本说明书,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管一种或更多种方法的各个操作被示出和描述为独立的操作,但是可以同时执行各个操作中的一个或更多个操作,并且不要求以所示出的顺序执行操作。在示例配置中作为单独的组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为单独的组件。这些和其他变型、修改、添加和改进落入本文中的主题的范围内。
[0121]
尽管已经参考具体实施方式描述了本发明主题的概述,但是在不脱离本公开内容的实施方式的较宽范围的情况下,可以对这些实施方式进行各种修改和改变。
[0122]
本文示出的实施方式被足够详细地描述,以使得本领域技术人员能够实践所公开的教导。可以使用本文示出的实施方式并且从本文示出的实施方式得出其他实施方式,使得可以在不偏离本公开内容的范围的情况下进行结构和逻辑的替代和改变。因此,具体实施方式不以限制性意义被采用,并且各种实施方式的范围仅通过所附权利要求连同这样的权利要求赋予权利的等同物的全部范围来限定。
[0123]
如本文所使用的,术语“或”可以被解释为包括性或排他性意义。术语“一”或“一个”应该被解读为表示“至少一个”、“一个或更多个”等。诸如“一个或更多个”、“至少”、“但不限于”的词语和短语或其他类似的短语的使用不应被解读为意味着在这样扩展短语可能不存在的情况下意图或要求较窄的情况。
[0124]
各种资源、操作、组件、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且特定操作在特定说明性配置的背景下被示出。功能的其他分配被设想并且可以落入本公开内容的各种实施方式的范围内。通常,在示例配置中作为单独的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其他变型、修改、添加和改进落入如由所附权利要求表示的本公开内容的实施方式的范围内。因此,说明书和附图应当被认为是说明性的而不是限制性的意义。
[0125]
以上描述包括体现本公开内容的说明性实施方式的系统、方法、装置、指令和计算机介质(例如,计算机器程序产品)。在描述中,出于说明的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员来说将明显的是,本
发明主题的实施方式可以在没有这些具体细节的情况下被实践。一般地,公知的指令实例、协议、结构和技术不一定详细地被示出。
[0126]
术语表
[0127]
该上下文中的“增强现实对象”可以是指虚拟对象(例如,二维或三维虚拟对象),该虚拟对象可以被呈现在真实世界环境的客户端设备生成的视图(例如,在移动客户端设备的显示器上呈现的视图)中,其中,虚拟对象可以与视图中呈现的真实世界环境的真实世界物理对象进行交互或增强该真实世界物理对象。例如,使用智能电话的相机,用户可以通过智能电话的显示器来查看他们周围的真实世界环境,并且智能电话可以通过结合真实世界环境的一个或更多个特定真实世界物理对象在视图中显示(例如,叠加)一个或更多个虚拟对象(例如,三维虚拟对象)来增强该视图。例如,增强现实对象可以与现场(例如,实时或接近实时)摄像机馈送相结合,使得当呈现增强现实对象时,该增强现实对象看起来位于现场三维环境中(例如,增强现实对象看起来占据一致的三维体积,并且以与ar对象是真实世界物理对象的情况类似的方式响应于摄像机的移动而动态地改变方面)。除了视觉信息之外,客户端设备可以向用户传达与特定增强现实对象相关联的其他感觉信息,诸如听觉信息(例如,音乐)和触觉信息。
[0128]
该上下文中的“混合现实”可以是指真实世界环境和虚拟世界环境(其可以包括一个或更多个增强现实对象)的合并,以通过客户端设备生成新的可视化。新的可视化可以增强真实世界环境的一个或更多个真实世界物理对象。新的可视化可以创建新的混合现实环境,在该新的混合现实环境中,真实世界物理对象和增强现实对象可以实时共存并彼此交互。此外,在混合现实中,用户可以使用客户端设备来与增强现实对象实时交互。
[0129]
该上下文中的“客户端设备”可以是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏控制台、机顶盒或用户可以使用以访问网络的任何其他通信设备。
[0130]
该上下文中的“通信网络”可以是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线服务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g网络、第四代无线(4g)网络、通用移动通信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准的第三代合作伙伴计划(3gpp)、由各种标准设置组织限定的其他数据传输技术、其他远程协议或其他数据传输技术。
[0131]
该上下文中的“短暂”可以描述在时间有限的持续时间内可访问的项。短暂项可以是ar对象、文本、图像、视频等。对短暂项的访问时间可以由项所有者或发起者(例如,消息
发送者或登记ar对象的用户)来设置。可替选地,访问时间可以是默认设置或由访问用户(例如,接收者或试图访问登记的ar对象的用户)指定的设置。不管设置技术如何,短暂项是暂时的。
[0132]
该上下文中的“机器可读介质”可以是指能够临时或永久地存储指令和数据的组件、装置或其他有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(eeprom))以及/或者以上的任何合适的组合。术语“机器可读介质”应当被认为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或者相关联的高速缓冲存储器和服务器)。术语“机器可读介质”还应被认为包括任何介质或多个介质的组合,所述任何介质或多个介质的组合能够存储由机器执行的指令(例如,代码),从而使得指令在由机器的一个或更多个处理器执行时使机器执行本文中描述的任何一种或更多种方法。因此,“机器可读介质”是指单个存储设备或装置以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
[0133]
该上下文中的“组件”可以是指具有由函数或子例程调用、分支点、应用程序接口(api)或被提供用于对特定处理或控制功能进行划分或模块化的其他技术限定的边界的装置、物理实体或逻辑。组件可以经由它们的接口与其他组件组合以执行机器处理。组件可以是被设计用于与其他组件一起使用的封装功能硬件单元以及通常执行相关功能的特定功能的程序的一部分。组件可以构成软件组件(例如,在机器可读介质上嵌入的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件组件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为进行操作以执行如本文中所描述的某些操作的硬件组件。也可以机械地、电子地或其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久地配置成执行某些操作的专用电路系统或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可以包括通过软件被临时配置成执行某些操作的可编程逻辑或电路系统。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,则硬件组件成为特定的机器(或机器的特定组件),该特定的机器(或机器的特定组件)被唯一地定制成执行配置的功能并且不再是通用处理器。应当理解的是,机械地、在专用和永久配置的电路系统中、或在临时配置的(例如,由软件配置的)电路系统中实现硬件组件的决定可以由成本和时间考虑来驱动。因此,短语“硬件组件”(或“硬件实现的组件”)应当被理解成涵盖有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中所描述的某些操作的实体。考虑到硬件组件被临时配置(例如,被编程)的实施方式,硬件组件中的每一个无需在任一时刻处被配置或被实例化。例如,在硬件组件包括通过软件配置而成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间处被配置成分别不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定处理器或处理器,以例如在一个时刻处构成特定硬件组件并且在不同的时刻处构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息并且从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信上耦接的。在同时存在多个硬件组件的情况下,可以通过在
两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件组件在不同时间处被配置或被实例化的实施方式中,可以例如通过将信息存储在多个硬件组件可以访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器装置中。然后,另外的硬件组件可以在随后的时间处访问存储器装置,以检索和处理所存储的输出。硬件组件还可以发起与输入装置或输出装置的通信,并且可以对资源进行操作(例如,信息的集合)。本文中描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置成执行相关操作的一个或更多个处理器来执行。无论是临时配置还是永久配置,这样的处理器可以构成进行操作以执行本文描述的一个或更多个操作或功能的处理器实现的组件。如本文中使用的,“处理器实现的组件”是指使用一个或更多个处理器实现的硬件组件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器是组件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的组件执行。此外,所述一个或更多个处理器还可以操作成支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(saas)。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作能够经由网络(例如,因特网)并经由一个或更多个适当的接口(例如,应用程序接口(api))可访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,还被部署在多个机器之间。在一些实施方式中,处理器或处理器实现的组件可以位于单个地理位置处(例如,在家庭环境、办公室环境或服务器场内)。在其他实施方式中,处理器或处理器实现的组件可以跨多个地理位置分布。
[0134]
该上下文中的“处理器”可以是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生应用于对机器进行操作的相应输出信号的任何电路或虚拟电路(通过在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(cpu)、简化指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)或它们的任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)的多核处理器。
[0135]
该上下文中的“时间戳”可以是指标识某个事件何时发生——例如,给定日期和一天中的时间,有时精确到几分之一秒——的字符或编码的信息的序列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1