基于位置的增强现实系统的制作方法

文档序号:28592513发布日期:2022-01-22 09:06阅读:139来源:国知局
基于位置的增强现实系统的制作方法
基于位置的增强现实系统
1.相关申请的交叉引用
2.本技术要求于2020年3月13日提交的序列号为16/818,540的美国专利申请和于2019年4月4日提交的序列号为62/829,571的美国临时申请的优先权的权益,其整体内容通过引用并入本文。
技术领域
3.本公开的实施例总体上涉及移动计算技术,并且更具体地但非限制性地涉及增强现实和虚拟现实显示的呈现。


背景技术:

4.增强现实(ar)是物理、真实世界环境的实时直接或间接图,其元素通过计算机生成的感官输入(例如声音、视频、图形等)补充或“增强”。因此,该技术用于增强用户对现实的感知。
附图说明
5.为了容易界标识对任何特定元素或动作的讨论,附图标记中最高的一个或多个有效数字是指首先引入该元素的附图编号。
6.图1是示出根据一些实施例的用于通过网络交换数据(例如消息和相关联的内容)的示例消息传递系统的框图,其中,消息传递系统包括基于位置的增强现实(ar)系统。
7.图2是示出根据示例实施例的关于消息传递系统的更多细节的框图。
8.图3是示出根据某些示例实施例的基于位置的ar系统的各种模块的框图。
9.图4是示出根据某些示例实施例的生成和引起基于位置的ar内容的显示的方法的流程图。
10.图5是示出根据某些示例实施例的生成和引起基于位置的ar内容的显示的方法的流程图。
11.图6是示出根据某些示例实施例的用于生成和引起基于位置的ar内容的显示的方法的流程图。
12.图7是示出根据某些示例实施例的用于生成和引起基于位置的ar内容的显示的方法的流程图。
13.图8是示出根据某些示例实施例的基于位置的ar内容的呈现的界面流程图。
14.图9是示出可以与本文所描述的各种硬件架构结合使用并用于实现各种实施例的代表性软件架构的框图。
15.图10是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质)读取指令并执行本文讨论的方法中的任何一种或多种方法的机器的组件的框图。
具体实施方式
16.如上文所讨论的,增强现实或“ar”是物理、真实世界环境的实时直接或间接图,物理、真实世界环境的元素通过计算机生成的感官输入(例如声音、视频、图形等)补充或“增强”。因此,“ar内容”包括媒体内容,该媒体内容包括将要在真实世界环境的呈现中呈现的ar特征,例如在客户端设备的显示器内。根据某些实施例,基于位置的ar系统被配置为将ar内容与位置相关联,并且响应于检测到在该位置处或该位置内的客户端设备而在该客户端设备处访问以及呈现ar内容。
17.在某些实施例中,ar内容包括媒体叠加或“镜头”,其中,镜头以某种方式修改或转换在客户端设备处呈现的图像或视频。例如,可以使用镜头数据(即ar内容)对图像或视频执行复杂的添加或转换,例如在视频片段中向人的头部添加兔子耳朵,向视频片段添加带有背景颜色的浮动心,改变视频片段中的人物特征的比例,或许多其他此类转换。基于位置的ar内容可以与一组地理位置坐标相关联,以使得响应于在该位置处检测到客户端设备,可以在客户端设备的显示器上访问并呈现与该位置相关联的镜头。
18.现在将详细参考用于执行本公开的发明主题的特定示例实施例。在以下描述中,阐述了特定细节以便提供对主题的透彻理解。应当理解,可以在没有这些特定细节中的一些或全部的情况下实践这些实施例。因此,所公开的是执行包括以下操作的基于位置的ar系统,该操作包括:访问对象或环境的表面模型,其中,表面模型包括多个三维(3d)特征;基于客户端设备的位置来确定多个3d特征的相对定位;基于客户端设备的位置和多个3d特征的相对定位来确定客户端设备的视角;访问与客户端设备的位置相关联的媒体内容;以及将媒体内容应用于在客户端设备处呈现的图像的呈现内的定位,该定位是基于客户端设备的视角的。
19.在一些示例实施例中,媒体内容包括3d排版(topography)。例如,基于位置的ar系统可以将一组地理位置坐标分配给3d排版并且在客户端设备处的图像的呈现中将3d排版呈现为ar内容。3d排版的文本串可以基于用户输入、基于与客户端设备相关联的用户简档数据生成,或者在一些实施例中可以是预定义的。
20.在一些示例实施例中,基于客户端设备的视角呈现媒体内容可以包括基于视角通过扭曲、拉伸、扩展、分裂、投影或以其他方式改变视角的过程而对媒体内容应用一个或多个转换以便给出相对于客户端设备的观看点(即,视角)的高度、宽度、深度和定位的印象。
21.基于位置的ar系统可以包括记录和/或呈现环境的图像的视频和图像采集系统,以及被配置为显示环境的呈现(即,客户端设备的显示)的图形界面。在一些示例实施例中,为了将媒体内容应用于环境的呈现,基于位置的ar系统访问与和环境对应的位置相关联的表面模型,其中,表面模型是环境的地形表示,或环境中的一个或多个对象,其包括3d特征,诸如表面、轮廓和形状。例如,表面模型可包括线网形式,其包括环境内的对象或环境的形式的3d表示。
22.在一些实施例中,基于位置的ar系统可以基于从客户端设备接收的图像数据生成表面模型。在此类实施例中,为了生成表面模型,基于位置的ar系统对图像数据应用各种计算机视觉技术。
23.在进一步的实施例中,基于位置的ar系统访问表面模型数据库,该数据库包括基于由表面模型描绘的对应位置的地理位置坐标来组织的环境的表面模型。例如,基于位置
的ar系统确定客户端设备的位置并且基于该位置从表面模型数据库取得或以其他方式访问对应的表面模型。
24.基于位置的ar系统识别由表面模式表示的一组特征以确定客户端设备的视角。一组特征可包括区别点或特征,诸如空间中的轮廓、标记或可用作图形标记的其他特征。例如,区别点或特征可以包括界标以及诸如窗户和/或门的可标识对象。标识了表面模型的一组特征,基于位置的ar系统确定每个区别点或特征相对于彼此的相对定位。例如,相对定位可以指示区别点或特征之间的距离。基于位置的ar系统基于区别点或特征的相对定位来确定客户端设备的视角,其中,视角指示空间相对于移动设备的表示。
25.从用户视角考虑说明性示例。客户端设备的用户可以引起对由与客户端设备相关联的相机生成的图像数据的显示。基于位置的ar系统可以从客户端设备接收请求,其中,该请求包括标识客户端设备的位置的位置数据。基于位置的ar系统然后可以访问媒体存储库以访问包括3d排版的ar内容,其中,ar内容与位置相关联。
26.为了在客户端设备处呈现ar内容,基于位置的ar系统访问表示环境的一个或多个表面的表面模型,并且基于表面模型的3d特征和客户端设备的位置确定客户端设备的视角。然后可以基于客户端设备的视角将ar内容应用于图像。从用户的视角,图像数据的呈现可包括描绘区域的图像数据的显示,诸如包括一个或多个建筑物的街道或市区,其中,每个建筑物可以与由基于位置的ar系统生成的对应的表面模型相关联。然后可以向用户呈现3d排版,以使得看起来好像3d排版漂浮在建筑物的表面周围。用户然后可以提供输入以编辑或改变3d排版的文本串,或者在一些实施例中,基于位置的ar系统可以基于与客户端设备的用户相关联的用户简档数据来修改或编辑3d排版的一个或多个特性。
27.图1是示出了用于通过网络交换数据(例如消息和相关联的内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如因特网)通信地耦接到消息传递客户端应用104的其他实例和消息传递服务器系统108。
28.因此,每个消息传递客户端应用104能够经由网络106与另一个消息传递客户端应用104和消息传递服务器系统108进行通信并交换数据。在消息传递客户端设备104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如调用函数的命令)以及有效载荷数据(例如文本、音频、视频或其他多媒体数据)。
29.消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器端功能。尽管在本文中将消息传递系统100的某些功能描述为由消息传递客户端应用104或由消息传递服务器系统108执行,但是应当理解,某些功能在消息传递客户端应用104或消息传递服务器系统108中的位置是设计选择。例如,在技术上优选地是首先在消息传递服务器系统108内部署某些技术和功能,然后将该技术和功能迁移到其中客户端设备102具有足够处理能力的消息传递客户端应用104。
30.消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据,以及处理由消息传递客户端应用104生成的数据。在一些实施例中,作为示例,该数据包括消息内容、客户端设备信息、地理位置信息、媒体注释和叠加(overlay)、消息内容持久性条件、社交网络信息,和现场事件信息。其他实施例中,使用其他数据。消息传递系统100中的
数据交换通过经由消息传递客户端应用104的用户界面(ui)可用的功能来调用和控制。
31.现在具体转到消息传递服务器系统108,应用程序接口(api)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到(一个或多个)数据库服务器118,数据库服务器118促进对(一个或多个)数据库120的访问,数据库120中存储有与由应用服务器112处理的消息相关联的数据。
32.特别处理应用程序接口(api)服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(api)服务器110提供可被消息传递客户端应用104调用或查询的一组接口(例如例程和协议),以便调用应用服务器112的功能。应用程序接口(api)服务器110公开由应用服务器112支持的各种功能,包括:帐户注册、登录功能、经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息、从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如图像或视频)并且以供另一消息传递客户端应用104进行可能的访问、媒体数据(例如故事)集合的设置、此类集合的取得、客户端设备102的用户的好友列表的取得、消息和内容的取得、在社交图中添加和删除好友、好友在社交图内的位置、打开和应用事件(例如与消息传递客户端应用104有关)。
33.应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122,和基于位置的ar系统124。消息传递服务器应用114实现多个消息处理技术和功能,其特别涉及包括在从消息传递客户端应用104的多个实例接收的消息中的内容(例如文本和多媒体内容)的聚合和其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如被称为故事或图库(gallery))。然后,消息传递服务器应用114使得这些集合对于消息传递客户端应用104可用。考虑到此类处理的硬件要求,对数据的其他处理器和存储器密集型处理还可以在服务器端由消息传递服务器应用114来执行。
34.应用服务器112还包括图像处理系统116,该图像处理系统116专用于通常关于在消息传递服务器应用114处的消息的有效载荷内接收到的图像或视频来执行各种图像处理操作。
35.社交网络系统122支持各种社交网络功能服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并且访问(一个或多个)数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括标识特定用户与其具有关系或者该特定用户“正在关注”其的消息传递系统100的其他用户,以及还标识特定用户的其他实体和兴趣。基于位置的ar系统124提供在空间的呈现内生成并引起变形媒体的显示的功能。
36.应用服务器112通信地耦接到一个或多个数据库服务器118,数据库服务器118促进对(一个或多个)数据库120的访问,在数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。
37.图2是示出根据示例实施例的关于消息传递系统100的更多细节的框图。具体地,消息传递系统100被示出为包括消息传递客户端应用104和应用服务器112,它们进而体现了多个一些子系统,即短时计时器系统202、集合管理系统204和注释系统206。
38.短时计时器系统202负责对由消息传递客户端应用104和消息传递服务器应用114
所允许的内容执行临时访问。为此,短时计时器系统202并入了多个计时器,这些计时器基于与消息、或消息集合(例如snapchat故事)相关联的持续时间和显示参数经由消息传递客户端应用104选择性地显示并使能对消息和相关联内容(诸如变形媒体)的访问。下面提供有关短时计时器系统202的操作的更多细节。
39.集合管理系统204负责管理媒体的集合(例如文本、图像、视频和音频数据的集合)。在一些示例中,内容的集合(例如包括变形媒体、图像、视频、文本和音频的消息)可以被组织成“事件图库”或“事件故事”。此类集合可在指定时间段(例如与内容相关的事件的持续时间)内可用。例如,与音乐会有关的内容(诸如在特定位置处显示的变形媒体)可在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可负责发布图标,该图标向消息传递客户端应用104的用户界面提供特定集合的存在的通知。
40.集合管理系统204还包括策展界面208,该策展界面208允许集合管理器管理和策展特定内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容的集合(例如删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可对于将用户生成的内容包括进集合中向用户支付补偿。在这种情况下,策展界面208操作以自动向此类用户就使用其内容而支付费用。
41.注释系统206提供使用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与针对由消息传递系统100处理的消息产生和发布媒体叠加有关的功能。注释系统206基于客户端设备102的地理位置向消息传递客户端应用104可操作地提供媒体叠加(例如,snapchat滤镜)。在另一个示例中,注释系统206基于其他信息(诸如,客户端设备102的用户的社交网络信息)可操作地向消息传递客户端应用104提供媒体叠加。媒体叠加可包括音频和视觉内容以及视觉效果。音频和视频内容的示例包括变形媒体、图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色叠加或将变形媒体项投影到描绘空间的呈现方式上。音频和视觉内容或视觉效果可在客户端设备102处被应用于媒体内容项(例如照片)。例如,媒体叠加包括可被叠加在由客户端设备102拍摄生成的照片或视频流之上的文本。在另一个示例中,媒体叠加包括位置叠加(例如威尼斯海滩)的标识、现场事件的名称、或商家名称的叠加(例如海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别媒体叠加,该媒体叠加包括在客户端设备102的地理位置处的商家的名称。媒体叠加可包括与商家相关联的其他标记。媒体叠加可被存储在(一个或多个)数据库120中并且可通过(一个或多个)数据库服务器118来访问。
42.在一个示例实施例中,注释系统206提供基于用户的发布平台,该平台使用户能够在地图上选择地理位置并上载与所选地理位置相关联的内容。用户还可指定在什么情况下应将特定媒体叠加提供给其他用户。注释系统206生成包括所上载内容的媒体叠加,并将所上载内容与所选地理位置相关联。
43.在另一个示例实施例中,注释系统206提供基于商家的发布平台,该平台使商家能够通过投标过程选择与地理位置相关联的特定媒体叠加。例如,注释系统206在预定的时间量内将出价最高的商家的媒体叠加与对应的地理位置相关联。
44.图3是示出根据各种示例实施例的基于位置的ar系统124的组件的框图300,其配置基于位置的ar系统124以呈现包括基于客户端设备的位置和视角的3d排版的ar内容。基
于位置的ar系统124被示出为包括位置模块302、呈现模块304、标识模块306和ar模块308,所有这些被配置为彼此通信(例如,经由总线、共享存储器或开关)。这些模块中的任何一个或多个可使用一个或多个处理器310来实现(例如,通过配置此类一个或多个处理器来执行针对该模块描述的功能)并且因此可包括处理器310中的一个或多个。
45.所描述的模块中的任何一个或多个可以单独使用硬件(例如,机器的处理器310中的一个或多个)或硬件和软件的组合来实现。例如,所描述的基于位置的ar系统124的任何模块可以物理地包括被配置为执行本文针对该模块所描述的操作的处理器310中的一个或多个(例如,机器的一个或多个处理器的子集或其中的子集)的布置。作为另一示例,参与跟踪系统310的任何模块可包括软件、硬件或两者,其配置一个或多个处理器310(例如,在机器的一个或多个处理器中)的布置以执行本文针对该模块所描述的操作。因此,基于位置的ar系统124的不同模块可包括并且配置该处理器310的不同布置或该处理器310在不同时间点的单一布置。此外,基于位置的ar系统124的任意两个或更多模块可以组合成单个模块,并且本文针对单个模块所描述的功能可以细分到多个模块中。此外,根据各种示例实施例,本文中描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器、数据库或设备上。
46.图4是示出根据某些示例实施例的基于位置的ar系统124执行用于在客户端设备处生成以及引起ar内容的显示的方法400中的各种操作的流程图。方法400的操作可以由上文相对于图3所描述的模块来执行。如图4所示,方法700包括一个或多个操作402、404、406、408和410。
47.在操作402处,位置模块302访问环境的表面模型,其中,表面模型包括多个3d特征。在一些实施例中,为了访问环境的表面模型,位置模块302可以访问包括与位置或界标相关联的表面模型的集合的存储库,其中,表面模型的集合包括与上文引用的环境相关联的表面模型。
48.例如,位置模块302可以基于由客户端设备102生成的位置数据或者通过识别在客户端设备102处生成和显示的图像数据中的一个或多个界标来确定客户端设备102的位置。响应于确定客户端设备102的位置,位置模块302可以访问存储库(即,数据库120)以取得对应于该位置的环境的表面模型。因此,表面模型可包括环境的地形表示或环境中的一个或多个对象,其包括诸如表面、轮廓和形状的3d特征。例如,表面模型可包括线网形式,其包括环境内的对象或环境的形式的3d表示。
49.在操作404处,标识模块306确定多个3d特征的相对定位。在一些实施例中,标识模块306可标识由环境的表面模型描绘的一组特征,其可包括区别点或特征,诸如空间中的轮廓、标记或可以用作图形标记的其他特征。在该实施例中,标识了表面模型的一组特征,标识模块306确定每个区别点或特征相对于彼此的相对定位,其中,相对定位指示在区别点或特征之间的距离。
50.在操作406处,ar模块308基于客户端设备102的位置和多个3d特征的相对定位来确定客户端设备102的视角,其中,视角表示客户端设备102的观看定位。
51.在操作408处,ar模块308访问与客户端设备102处的位置相关联的媒体内容。在一些实施例中,媒体存储库(即,数据库120)可包含媒体内容的集合,其中,媒体内容的集合在存储库内基于位置、界标或位置属性来索引。因此,通过参考特定位置标识符、界标或位置
属性,ar模块308可以标识对应的媒体内容。
[0052]“位置”可包括可基于坐标标识的实际地理位置,以及位置的类型,如企业(即餐厅、咖啡店)、特定企业(即snap总部)或地点(即公园、海滩)。位置的属性可包括天气条件(即阴天、晴天)、环境的拥挤程度、温度和一天中的时间。
[0053]
在操作410处,呈现模块304对在客户端设备102处呈现的图像内的定位应用媒体内容,其中,该定位以客户端设备102的视角为基础。在一些实施例中,基于客户端设备102的视角呈现媒体内容可以包括通过扭曲、拉伸、扩展、分裂、投影或以其他方式改变视角的过程来基于视角对媒体内容应用一个或多个转换,以给出相对于客户端设备102的观看点(即,视角)的高度、宽度、深度和定位的印象。
[0054]
图5是示出根据某些示例实施例的基于位置的ar系统124在执行用于在客户端设备处生成和引起ar内容的显示的方法500中的各种操作的流程图。方法500的操作可以由上文相对于图3所描述的模块来执行。如图5所示,根据一些示例实施例,方法500包括一个或多个操作502和504,其可以作为方法400的一部分(例如,前驱任务、子例程或一部分)来执行。
[0055]
在操作502处,呈现模块304访问与客户端设备102相关联的用户简档,其中,用户简档包括用户简档数据。在一些实施例中,响应于检测到与某个位置处的用户相关联的客户端设备(即,客户端设备102),呈现模块304可以访问该用户的用户简档以取得用户简档数据。
[0056]
根据某些示例实施例,用户简档数据可包括限定用户的亲和度和兴趣的用户选择,以及用户人口统计信息、语言偏好、用户连接列表(即,好友列表)和由用户执行的用户动作的日志。
[0057]
在操作504处,ar模块308基于来自与客户端设备102相关联的用户简档的用户简档数据来配置媒体内容。例如,如图8所描绘的界面图804所示,媒体内容806可包括包含限定词或短语的文本特征的媒体属性。在某些实施例中,ar模块308可以基于与客户端设备102相关联的用户简档数据来配置媒体内容806的媒体属性。通过这样做,媒体内容806可以针对不同的用户在其对应的设备上进行不同地呈现。
[0058]
作为说明性示例,ar模块308可以基于与用户相关联的语言偏好来翻译媒体内容806的文本特征,或者可以基于与客户端设备102相关联的用户简档数据来选择和显示媒体内容806的图形特征(即,颜色、尺寸、形状等)。
[0059]
在一些实施例中,还可以基于对应于客户端设备102的用户简档数据来确定显示媒体内容806的位置。例如,客户端设备102的用户可具有对应的用户简档数据,其基于显式用户输入或隐式用户活动(即,在一段时间内访问某个位置的频率、每次访问某个位置的持续时间等)来标识与用户相关联的一个或多个位置,诸如地址(工作地、家庭、健身房等)。在该实施例中,ar模块308可以基于来自用户简档数据的位置在位置处选择和呈现媒体内容(即,媒体内容806)。作为说明性示例,响应于标识与客户端设备102的用户相关联的家庭地址,ar模块308可以在基于用户的家庭地址的定位处呈现媒体内容。
[0060]
图6是示出根据某些示例实施例的基于位置的ar系统124在执行用于在客户端设备处生成和引起ar内容的显示的方法600中的各种操作的流程图。方法600的操作可以由上文相对于图3所描述的模块来执行。如图6所示,根据一些示例实施例,方法600包括一个或
多个操作602和604,其可以作为方法400的一部分(例如,前驱任务、子例程或一部分)来执行。
[0061]
在操作602处,ar模块308从客户端设备102接收编辑媒体内容的特征的请求,其中,特征包括第一文本串,并且请求包括第二文本串。例如,用户可以通过提供选择在客户端设备102处显示媒体内容的输入来配置媒体内容的特征。响应于该输入,呈现模块304可以导致接收用以编辑所选择的媒体内容的特征的输入的界面的显示。
[0062]
在操作604处,ar模块308基于在请求中包括的第二请求在客户端设备处编辑媒体内容的呈现。作为说明性示例,客户端设备102的用户可以提供选择媒体内容(诸如图8描绘的界面图804中的媒体内容806)的输入。客户端设备102的用户从而可以提供包括第二文本串的输入。ar模块308然后可以基于请求中的第二文本串来改变媒体内容806的呈现。
[0063]
图7是示出根据某些示例实施例的基于位置的ar系统124在执行用于在客户端设备处生成和引起ar内容的显示的方法700中的各种操作的流程图。方法700的操作可以由上文相对于图3所描述的模块来执行。如图7所示,根据一些示例实施例,方法700包括一个或多个操作702、704、706和708,其可以作为方法400的一部分(例如,前驱任务、子例程或一部分)来执行。
[0064]
在操作702处,ar模块308访问表面模型。如上文所讨论的,表面模型是环境的地形表示或环境中的一个或多个对象,其包括诸如表面、轮廓和形状的3d特征。例如,表面模型可包括线网形式,其包括环境内的对象或环境的形式的3d表示。
[0065]
在一些实施例中,访问表面模型可包括生成表面模型。例如,ar模块308可基于从客户端设备接收的图像数据生成表面模型。在该实施例中,为了生成表面模型,ar模块308对图像数据应用各种计算机视觉技术以标识表面特征并且基于表面特征生成表面模型。
[0066]
在操作704处,位置模块302基于与位置对应的表面特征中的一个或多个以及与位置相关联的地理位置坐标将由ar模块308生成的表面模型分配给该位置。在一些实施例中,位置模块302可以索引表面模型数据库(即,数据库120)内的表面模型,其中,表面模型数据库包括分配给位置的多个表面模型。
[0067]
在该实施例中,通过参考基于一组表面特征的位置或地理位置坐标,可以标识对应的表面模型。
[0068]
在操作706处,如在图4所描绘的方法400的操作402中,ar模块308从客户端设备102接收请求,其中,该请求包括位置信息(即,一组表面特征、地理位置坐标)。例如,位置信息可标识客户端设备102的当前位置。
[0069]
响应于接收到包括位置信息的请求,在操作708处,ar模块308访问与数据库120内的位置信息相关联的表面模型。因此,ar模块308然后可以基于与位置对应的表面模型在图像数据的呈现内渲染和显示媒体内容。
[0070]
图8是示出根据某些示例实施例的由基于位置的ar系统124呈现的基于位置的ar内容的呈现的界面流程图。如图8中可见,界面流程图包括界面图802和界面图804。
[0071]
根据某些示例实施例,客户端设备102可以引起界面图802的呈现的显示。例如,客户端设备102可以采集图像数据并且生成由界面图802描绘的界面。如图4所描绘的方法400和图7所描绘的方法700中所讨论的,基于位置的ar系统124的模块可以基于来自图像的表面特征或基于在客户端设备102处访问的位置数据来访问与界面图802描绘的位置相关联
的表面模型。
[0072]
如界面图804中可见,基于位置的ar系统124可以基于客户端设备102的位置访问存储库(即,数据库120)内的媒体内容。媒体内容(即,媒体内容806)可以与媒体存储库内的位置相关联,以使得对存储库内的位置的参考可以标识媒体内容806。
[0073]
然后,基于位置的ar系统124可以使得在gui内的定位处显示媒体内容806的呈现,如界面图804中可见。
[0074]
软件架构
[0075]
图9是示出了可以结合本文所描述的各种硬件架构使用的示例软件架构906的框图。图9是软件架构的非限制性示例,并且将理解到,可以实现多个其他架构以促进本文所描述的功能。软件架构906可以在诸如图10的机器1000的硬件上执行,机器1000尤其包括处理器1004、存储器1014和i/o组件1018等。代表性硬件层952被示出并且可以表示例如图10的机器1000。代表性硬件层952包括具有相关联的可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括本文所描述的方法、组件等的实现。硬件层952还包括也具有可执行指令904的存储器和/或存储模块存储器/存储设备956。硬件层952还可包括其他硬件958。
[0076]
在图9的示例架构中,软件架构906可以被概念化为层的堆叠,其中,每个层提供特定的功能。例如,软件架构906可包括诸如操作系统902、库920、应用916和呈现层914的层。在操作上,层内的应用916和/或其他组件可以通过软件堆栈调用应用程序接口(api)api调用908并且响应于api调用908来接收响应。所示出的层本质上是代表性的,并非所有软件架构都具有所有层。例如,某些移动或专用操作系统可能不提供框架/中间件918,而其他操作系统可提供此类层。其他软件架构可包括附加的或不同的层。
[0077]
操作系统902可管理硬件资源并提供公共服务。操作系统902可包括例如内核922、服务924和驱动器926。内核922可充当硬件和其他软件层之间的抽象层。例如,内核922可负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全性设置等。服务924可为其他软件层提供其他公共服务。驱动器926负责控制底层硬件或与底层硬件接口连接。例如,取决于硬件配置,驱动器926包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
[0078]
库920提供由应用916和/或其他组件和/或层使用的通用基础结构。库920提供如下功能:允许其他软件组件以比直接与基础操作系统902功能(例如内核922、服务924和/或驱动器926)接口连接更容易的方式执行任务。库920可包括系统库944(例如c标准库),该系统库944可提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。此外,库920可包括诸如媒体库的api库946(例如,用于支持各种媒体格式(诸如mpreg4、h.264、mp3、aac、amr、jpg、png)的呈现和操作的库)、图形库(例如,可用于在显示器上呈现2d和3d图形内容的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、网络库(例如,可提供网络浏览功能的webkit)等。库920还可包括各种各样的其他库948,以向应用916和其他软件组件/模块提供多个其他api。
[0079]
框架/中间件918(有时也称为中间件)提供可由应用916和/或其他软件组件/模块使用的高级通用基础设施。例如,框架/中间件918可提供各种图形用户界面(gui)功能、高
级资源管理、高级位置服务等。框架/中间件918可提供可被应用916和/或其他软件组件/模块使用的广泛的其他api,其中一些可能是特定于特定操作系统902或平台的。
[0080]
应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用、和/或游戏应用。第三方应用940可包括由特定平台的卖方以外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用,并且可以是在移动操作系统(诸如ios
tm
、android
tm
、phone或其他移动操作系统)上运行的移动软件。第三方应用940可以调用由移动操作系统(诸如操作系统902)提供的api调用908,以促进本文所描述的功能。
[0081]
应用916可使用内置操作系统功能(例如,内核922、服务924和/或驱动器926)、库920和框架/中间件918来创建用户界面以与系统的用户进行交互。可替代地或附加地,在一些系统中,与用户的交互可通过诸如呈现层914的呈现层发生。在这些系统中,可将应用/组件“逻辑”与跟用户交互的应用/组件的各方面分开。
[0082]
图10是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个的机器1000的组件的框图。具体地,图10示出了具有计算机系统的示例形式的机器1000的图解表示,在其中可以执行用于使得机器1000执行本文所讨论的任何一种或多种方法的指令1010(例如软件、程序、应用、小应用、应用程序或其他可执行代码)。因此,指令1010可用于实现本文所描述的模块或组件。指令1010将通用的、未编程的机器1000转换为被编程为以所描述的方式执行所描述和示出的功能的特定机器1000。在替代实施例中,机器1000作为独立设备运行,或者可耦接(例如联网)到其他机器。在网络部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。机器1000可包括但不限于:服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能电器)、其他智能设备、网络家电、网络路由器、网络交换机、网桥,或能够依次或以其他方式执行指令1010的任何机器,这些指令指定了机器1000将要采取的动作。此外,尽管仅示出了单个机器1000,但术语“机器”还应被认为包括单独地或共同地执行指令1010以执行本文讨论的方法中的任何一个或多个方法的机器的集合。
[0083]
机器1000可包括处理器1004、存储器存储器/存储设备1006、和i/o组件1018,它们可被配置为诸如经由总线1002彼此通信。存储器/存储设备1006可包括存储器1014(诸如主存储器或其他存储器存储设备)和存储单元1016,它们可由处理器1004诸如经由总线1002访问。存储单元1016和存储器1014存储体现本文所描述的方法或功能中的任何一个或多个的指令1010。在由机器1000执行期间,指令1010还可以全部或部分地驻留在存储器1014内、在存储单元1016内、在处理器1004的至少一个内(例如在处理器的高速缓存存储器内)、或其任何适合的组合。因此,存储器1014、存储单元1016和处理器1004的存储器是机器可读介质的示例。
[0084]
i/o组件1018可包括各种各样的组件,以接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等。包括在特定机器中的特定i/o组件1018将取决于机器的类型。例
如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他此类输入机构,而无头(headless)服务器机器将可能不包括此类触摸输入设备。应当理解,i/o组件1018可包括在图10中未示出的多个其他组件。仅出于简化下面讨论的目的,根据功能对i/o组件1018进行分组,并且分组绝不是限制性的。在各种示例实施例中,i/o组件1018可包括输出组件1026和输入组件1028。输出组件1026可包括视觉组件(例如显示器,诸如,等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪,或阴极射线管(crt))、听觉组件(例如扬声器)、触觉组件(例如振动马达、电阻机构)、其他信号发生器等。输入组件1028可包括字母数字输入组件(例如键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触知输入组件(例如物理按钮、提供触摸的位置和/或力或触摸手势的触摸屏,或其他触知输入组件)、音频输入组件(例如麦克风)等。
[0085]
在进一步的示例实施例中,i/o组件1018可包括各种各样的其他组件中的生物特征组件1030、运动组件1034、环境环境组件1036或位置组件1038。例如,生物特征组件1030可包括用于检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如血压、心率、体温、汗水或脑波)、识别人(例如语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1034可包括加速度传感器组件(例如加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1036可包括例如照明传感器组件(例如光度计)、温度传感器组件(例如检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如一个或多个检测背景噪声的麦克风)、接近度传感器组件(例如检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测有害气体的浓度或测量大气中的污染物的气体检测传感器)、或可提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件1038可包括位置传感器组件(例如全球定位系统(gps)接收器组件)、高度传感器组件(例如检测可从哪个高度获得该空气压力的高度计或气压计)、取向传感器组件(例如磁力计)等。
[0086]
可使用多种技术来实现通信。i/o组件1018可包括通信组件1040,该通信组件1040可操作以分别经由耦接(coupling)1022和耦接1024将机器1000耦接到网络1032或设备1020。例如,通信组件1040可包括网络接口组件或与网络1032接口连接的其它合适的设备。在进一步的示例中,通信组件1040可包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如低能耗)、组件和经由其它形态提供通信的其他通信组件。设备1020可以是另一机器或各种各样的外围设备(例如经由通用串行总线(usb)耦接的外围设备)中的任何一个。
[0087]
此外,通信组件1040可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1040可包括射频识别(rfid)标签读取器组件、nfc智能标记检测组件、光学读取器组件(例如用于检测诸如通用产品代码(upc)条形码的一维条形码、多维条形码(例如快速响应(qr)码、aztec码、数据矩阵、数字图形、最大码、pdf417、超码、ucc rss-2d条形码)和其他光学码的光学传感器),或声学检测组件(例如用于识别所标记的音频信号的麦克风)。另外,可以经由通信组件1040来获得各种信息,诸如,经由互联网协议(ip)地理位置来获得位置、经由信号三角测量来获得位置、经由检测可指示特定位置的nfc信标信号来获得位置等。
[0088]
词汇表
[0089]
在本上下文中,“载波信号”是指能够存储、编码或携带指令以由机器执行的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进此类指令的通信。指令可使用传输介质通过网络接口设备以及使用多个公知的传输协议中的任何一种在网络上发送或接收。
[0090]
在本上下文中,“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其他客户端设备获取资源的任何机器。客户端设备可以是但不限于:移动电话、台式计算机、膝上型电脑、便携式数字助理(pda)、智能电话、平板电脑、超级本、上网本、膝上型电脑、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏机、机顶盒、或用户可用来接入网络的任何其他通信设备。
[0091]
在此上下文中,“通信网络”是指网络的一个或多个部分,其可以是自组网、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网络(pstn)的一部分、老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络,或两个或更多个此类网络的组合。例如,网络或网络的一部分可包括无线或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一类型的蜂窝或无线耦接。在该示例中,耦接可实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。
[0092]
在本上下文中,“短时消息”是指在时间受限的持续时间内可访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可由消息发送器设置。替代地,访问时间可以是默认设置,也可以是接收方指定的设置。不管设置技术如何,消息都是暂时的。
[0093]
在本上下文中,“机器可读介质”是指能够临时或永久存储指令和数据的组件、设备或其他有形介质,并且可包括但不限于:随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存存储器、其他类型的存储设备(例如可擦除可编程只读存储器(eprom))和/或其任何合适的组合。术语“机器可读介质”应被理解为包括能够存储指令的单个介质或多个介质(例如集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储由机器执行的指令(例如代码)使得指令在由机器的一个或多个处理器执行时使得机器执行本文所描述的任何一种或多种方法的任何介质或多种介质的组合。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”自身不包括信号。
[0094]
在本上下文中,“组件”是指具有由功能或子例程调用、分支点、应用程序接口(api)、或其他用于特定处理或控制功能的分区或模块化的技术定义的边界的设备,物理实体或逻辑。组件可通过它们与其他组件的接口进行组合以执行机器过程。组件可以是被设计为与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用的经封装的功能硬件单元。组件可构成软件组件(例如体现在机器可读介质上的代码)或硬件组件。“硬
件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立计算机系统、客户端计算机系统,或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如处理器或一组处理器)可由软件(例如应用或应用部分)配置为操作以执行如本文所描述的某些操作的硬件组件。硬件组件也可机械地、电子地或其任何合适的组合来实现。例如,硬件组件可包括被永久性地配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可包括由通用处理器或其他可编程处理器执行的软件。一旦通过此类软件进行配置,硬件组件将成为为执行配置的功能而专门定制的特定机器(或机器的特定组件),并且不再是通用处理器。应理解,可出于成本和时间方面的考虑来作出在专用且永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实施硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应被理解为包含有形实体,是被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)为以某种方式操作或执行此处所述的某些操作的实体。考虑其中硬件组件被临时配置(例如,编程)的实施例,每个硬件组件不需要在时间的任何实例处被配置或实例化。例如,在硬件组件包括由软件配置为成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。因此,软件相应地配置一个或多个特定处理器,例如,以在一个时间实例上构成特定的硬件组件,并在不同的时间实例上构成不同的硬件组件。硬件组件可向其他硬件组件提供信息,或从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信耦接的。在同时存在多个硬件组件的情况下,通信可以通过在两个或多个硬件组件之间的信号传输(例如,在适当的电路和总线上)来实现。在其中多个硬件组件在不同时间被配置或实例化的实施例中,可以例如通过在多个硬件组件可访问的存储器结构中存储和取得信息来实现这种硬件组件之间的通信。例如,一个硬件组件可执行操作并将该操作的输出存储在其通信耦接到的存储器设备中。然后,另一硬件组件可以在以后的时间访问存储器设备以取得和处理所存储的输出。硬件组件还可发起与输入或输出设备的通信,并且可以在资源(例如,信息的集合)上进行操作。本文描述的示例方法的各种操作可以至少部分地由临时(例如,通过软件)配置或永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这种处理器都可构成处理器实现的组件,该组件操作以执行本文所述的一个或多个操作或功能。如本文所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中的相关操作的性能或者作为“软件即服务”(saas)。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,互联网)和经由一个或多个适当的接口(例如,应用程序接口(api))来访问。某些操作的性能可能会分布在处理器之间,不仅驻留在单个计算机中,而且会部署在多个计算机上。在一些示例实施例中,处理器或处理器实现的组件可位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场中)。在其他示例实施例中,处理器或处理器实现的组件可被分布在多个地理位置上。
[0095]
在此上下文中,“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值,并产生用于操作机器的相应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑仿真的物理电路)。处理器例如可以是中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)或其任意组合。处理器可进一步是具有两个或更多个可同时执行指令的独立处理器(有时称为“核”)的多核处理器。
[0096]
在此上下文中,“时间戳”是指字符或编码信息的序列,其标识何时发生特定事件,例如给出日期和时间,有时精确到几分之一秒。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1