掌桥专利:专业的专利平台
掌桥专利
首页

共享增强现实系统

文献发布时间:2023-06-19 18:32:25


共享增强现实系统

优先权要求

本申请要求于2020年3月27日提交的美国专利申请第16/833,087号的优先权的权益,该美国专利申请的内容通过引用整体并入本文。

技术领域

本公开内容的实施方式总体上涉及移动计算技术,并且更具体地但非限制性地涉及用于生成和使得显示增强现实媒体的系统。

背景技术

增强现实(AR)是物理真实世界环境的实况直接或间接视图,视图的元素通过计算机生成的感官输入来增强。

附图说明

为了容易地标识对任何特定元素或动作的讨论,附图标记中的一个或多个最高位数字指代该元素被首次引入时所在的图号。

图1是示出根据一些实施方式的用于通过网络来交换数据(例如,消息和相关内容)的示例消息传送系统的框图,其中,该消息传送系统包括增强现实系统。

图2是示出根据示例实施方式的关于消息传送系统的另外的细节的框图。

图3是示出根据某些示例实施方式的增强现实系统的各种模块的框图。

图4是描绘根据某些示例实施方式的呈现共享增强现实界面的方法的流程图。

图5是描绘根据某些示例实施方式的呈现共享增强现实界面的方法的流程图。

图6是描绘根据某些示例实施方式的在共享增强现实界面中呈现增强现实内容的方法的流程图。

图7是描绘根据某些示例实施方式的在共享增强现实界面中呈现增强现实内容的方法的流程图。

图8是描绘根据某些示例实施方式的共享增强现实界面的界面图。

图9是示出可以与本文中描述的各种硬件架构结合使用并且可以用于实现各种实施方式的代表性软件架构的框图。

图10是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所讨论的方法中的任何一种或更多种方法的机器的部件的框图。

具体实施方式

如以上所讨论的,AR系统在图形用户界面(GUI)内向用户提供以显示物理真实世界环境的实况直接或间接视图,其中视图的元素通过计算机生成的感官输入来增强。例如,AR界面可以在对真实世界环境的视图的显示内的位置处呈现媒体内容,使得媒体内容看起来与真实世界环境中的元素交互。因此,本文中讨论的某些示例实施方式提供用于生成并呈现“共享”AR体验的AR系统,其中多个用户可以实时参与同一AR会话。

因此,公开了一种共享AR系统,该共享AR系统执行包括以下操作的操作:访问客户端设备处的图像数据,该图像数据包括一组图像特征,该组图像特征限定对象的表面;基于该组图像特征来确定客户端设备的用户的位置;使得在客户端设备处呈现图像数据时显示从用户的位置延伸的投影,该投影包括图形属性并且具有基于客户端设备的用户的位置的轨迹;基于该轨迹来检测投影与对象的表面的相交,该相交对应于对象的表面的一部分;生成包括对象的表面的所述部分在客户端设备处的标识的请求;以及响应于包括对象的表面的所述部分的标识的请求,在客户端设备处基于投影的图形属性来呈现对象的表面的所述部分。

在一些实施方式中,可以响应于在客户端设备处接收的用户输入而显示投影(projection)。例如,客户端设备的用户可以在客户端设备处提供触觉输入,其中,触觉输入包括对客户端设备处的图像数据的呈现内的点或图形图标的选择。响应于接收到输入,共享AR系统可以在客户端设备处呈现从图像数据的呈现内的用户位置延伸的投射物(projectile)。作为说明性示例,在客户端设备处,投射物可以被呈现为从图像数据的呈现内的定位延伸的绘画流,使得客户端设备的用户可以通过移动和重新定向客户端设备来改变投射物的轨迹。因此,用户可以通过将在客户端设备处呈现的投射物(即,绘画流)指向在客户端设备处的图像数据的呈现中检测到的对象来对这些对象进行“绘画”。在一些实施方式中,仅区域(即,建筑物的表面)的一些部分和特定区域可以利用AR绘画来增强。

在一些实施方式中,对象可以包括在客户端设备处的图像数据的呈现内呈现的其他虚拟(即,AR)对象。例如,在这样的实施方式中,共享AR系统可以基于来自客户端设备的定位数据以及与AR内容相关联的定位数据来检测在图像数据的呈现内显示的AR内容。由此,用户可以通过将从客户端设备延伸的投射物指向对象来绘制在图像数据的呈现内显示的AR内容。

在一些实施方式中,共享AR系统可以响应于检测到与用户相关联的客户端设备处于某个定位而将客户端设备的用户分配给“团队”。对客户端设备处于某个定位的检测可以基于包括该定位的地理栅栏、从客户端设备提取的定位数据,或者基于在客户端设备处捕获或显示的图像数据内对与该定位相关联的地标的检测。团队可以与图形属性诸如颜色或图案(或者颜色和图案)相对应,其中可以基于相应的图形属性在客户端设备处呈现投影(即,绘画)。

在一些实施方式中,共享AR系统的用户可以提供选择团队或图形属性(即,绘画颜色、绘画图案)的输入。例如,响应于检测到客户端设备处于某个定位(即,客户端设备穿越地理栅栏的边界),共享AR系统可以使得显示菜单元素,其包括对用户可以从中选择的一个或更多个图形属性的显示,或者对用户可以从中选择的一个或更多个团队的显示。然后,用户可以提供从菜单元素中选择团队或图形属性的输入,并且作为响应,共享AR系统可以将图形属性(或团队)分配给与用户相关联的用户简档。

在一些实施方式中,用户可以通过将从客户端设备延伸的投射物的显示指向在客户端设备处的图像数据的呈现内的图像数据中描绘的对象来绘制该对象,其中,该对象具有基于对象的表面的相应总面积。共享AR系统可以确定对象的由用户绘制的部分的面积与对象的表面的总面积的比值,以计算要在客户端设备处呈现给用户的得分。例如,在用户绘制对象时,可以在用户的客户端设备处显示用户对对象的覆盖的指示。该指示可以被呈现为数值(即,25,25%),或者被呈现为基于视觉指示来呈现该值的图形指示符(即,条)。

在一些实施方式中,用户的客户端设备处的图像数据的呈现中由用户绘制的对象可以被标记至该定位,使得其他用户能够看到用户已经绘制了什么。例如,第一用户可以对在第一客户端设备处的图像数据的呈现内的某个定位处的建筑物进行绘制,使得该建筑物看起来被以第一颜色的颜料覆盖。然后,第二用户可以通过第二客户端设备实时地看到建筑物正被绘制。

在一些实施方式中,共享AR系统的用户可以提供选择“橡皮擦”功能的输入,并且其中,对橡皮擦功能的选择使得用户能够将施加于客户端设备处的图像数据的呈现内的表面的“颜料”移除。在这样的实施方式中,用户可以在客户端设备处通过用从用户的位置延伸的橡皮擦投射物对AR环境内的对象的表面进行“绘制”来擦除沿所述表面呈现的AR内容。因此,用户可以“擦除”由另一用户施加的颜料。

共享AR系统的某些实施方式可以包括游戏,在游戏中,激励游戏的玩家(即,共享AR系统的用户)用其对应的颜料颜色(即,与其团队对应的图形属性)尽可能多地对某个定位进行“绘制”。可以由在预定时间段(即,5分钟)内对某个定位中最大百分比的对象进行绘制的用户或用户团队“赢得”游戏,或者可以基于哪个用户或用户团队在其他用户或用户团队之前完成对所有对象(或一组对象)的绘制来“赢得”游戏。可以在与游戏的玩家对应的客户端设备处呈现进度,其中,可以将进度指示为得分。

可以基于与地理定位的接近度以及用户的用户属性将用户招募到团队中。例如,当检测到用户的客户端设备处于某个定位时,共享AR系统可以将该用户指定给多个团队之中的团队,其中每个团队具有对应的标识符,例如颜色(即,图形属性)。然后,用户可以利用与其对应团队相关联的标识符(即,颜色)对其客户端设备处的图像数据的呈现内的对象进行绘制。

在一些实施方式中,由共享AR系统执行的游戏可以通知玩家要找到特定对象并对其进行“绘制”。特定对象可以包括地标,地标包括但不限于建筑物、标志和雕像。例如,响应于检测到客户端设备处于某个定位,共享AR系统可以基于该定位来识别一个或更多个对象。例如,共享AR系统可以对包括给定定位处的对象的列表的储存库进行维护。

共享AR系统然后可以通知玩家要识别和绘制的对象。然后,可以向共享AR系统的用户提供一段时间,在该段时间期满之前,共享AR系统的用户可以在该段时间内对尽可能多的对象进行绘制。进度可以作为共享AR体验对用户可见。

图1是示出用于通过网络来交换数据(例如,消息和相关联的内容)的示例消息传送系统100的框图。消息传送系统100包括一个或更多个客户端设备102,客户端设备102托管包括消息传送客户端应用104的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接至消息传送客户端应用104和消息传送服务器系统108的其他实例。

因此,每个消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104以及与消息传送服务器系统108进行通信并交换数据。在消息传送客户端应用104之间以及消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。

消息传送服务器系统108经由网络106向特定消息传送客户端应用104提供服务器侧功能。虽然消息传送系统100的某些功能在本文中被描述为由消息传送客户端应用104或由消息传送服务器系统108执行,但是应当理解,某些功能的位置是在消息传送客户端应用104内还是在消息传送服务器系统108内是设计选择。例如,在技术上可能优选的是:在客户端设备102具有足够处理能力的情况下,最初将某些技术和功能部署在消息传送服务器系统108内,但是后期将该技术和功能迁移至消息传送客户端应用104。

消息传送服务器系统108支持被提供给消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及对由消息传送客户端应用104生成的数据进行处理。在一些实施方式中,作为示例,该数据包括:消息内容、客户端设备信息、地理位置信息、媒体注释和叠加、消息内容持久性条件、社交网络信息以及实况事件信息。在其他实施方式中,使用其他数据。通过经由消息传送客户端应用104的GUI可用的功能来调用和控制消息传送系统100内的数据交换。

具体地,现在转至消息传送服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。

具体讨论应用程序接口(API)服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。特别地,应用程序接口(API)服务器110提供一组接口(例如,例程和协议),消息传送客户端应用104可以调用或查询这组接口以调用应用服务器112的功能。应用程序接口(API)服务器110公开应用服务器112所支持的各种功能,包括:帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)、以及由另一消息传送客户端应用104进行的可能访问、对媒体数据(例如,故事)的集合进行设置、检索客户端设备102的用户的朋友列表、检索这样的集合、检索消息和内容、向社交图添加朋友以及从社交图删除朋友、定位社交图内的朋友、打开并应用(例如,与消息传送客户端应用104相关的)事件。

应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116、社交网络系统122和共享AR系统124。共享AR系统124被配置成在客户端设备110处生成并呈现AR内容。共享AR系统124的另外的细节可以在下面的图3中找到。

消息传送服务器应用114实现多个消息处理技术和功能,特别地涉及包括在从消息传送客户端应用104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的汇总及其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被汇总成内容集合(例如,被称为故事或图库(gallery))。然后,消息传送服务器应用114使得这些集合对消息传送客户端应用104可用。考虑到对数据的其他处理器和存储器密集处理的硬件要求,也可以由消息传送服务器应用114在服务器侧执行这样的处理。

应用服务器112还包括图像处理系统116,图像处理系统116专用于通常针对在消息传送服务器应用114处的消息的有效载荷内接收的图像或视频执行各种图像处理操作。

社交网络系统122支持各种社交联网功能服务并且使这些功能和服务对消息传送服务器应用114可用。为此,社交网络系统122维护并访问数据库120内的实体图304。社交网络系统122所支持的功能和服务的示例包括识别消息传送系统100中与特定用户具有关系或正在“追随”该特定用户的其他用户以及还识别特定用户的其他实体和兴趣。

应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。

图2是示出根据示例实施方式的关于消息传送系统100的另外的细节的框图。具体地,消息传送系统100被示出为包括消息传送客户端应用104和应用服务器112,它们又包含一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。

短暂定时器系统202负责实施对由消息传送客户端应用104和消息传送服务器应用114许可的内容的临时访问。为此,短暂定时器系统202包含多个定时器,这些定时器基于与消息、消息集合(例如,故事)或图形元素相关联的持续时间和显示参数,经由消息传送客户端应用104选择性地显示并使得能够访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。

集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件图库”或“事件故事”。可以使这样的集合在指定时间段例如内容所涉及的事件的持续时间内可用。例如,可以使与音乐会相关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息传送客户端应用104的用户界面发布提供存在特定集合的通知的图标。

集合管理系统204还包括策展接口208,策展接口208使得集合管理者能够管理和策展特定内容集合。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿,以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付使用他们的内容的费用。

注释系统206提供使得用户能够对与消息相关联的媒体内容进行注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与生成和发布由消息传送系统100处理的消息的媒体叠加(media overlay)相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104提供媒体叠加(例如,过滤器、透镜)。在另一示例中,注释系统206基于其他信息例如客户端设备102的用户的社交网络信息可操作地向消息传送客户端应用104提供媒体叠加。媒体叠加可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标识、动画和音效,以及动画面部模型。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可以被应用于客户端设备102处的媒体内容项(例如,照片或视频)。例如,媒体叠加包括可以叠加在由客户端设备102拍摄所生成的照片之上的文本。在另一示例中,媒体叠加包括定位标识叠加(例如,威尼斯海滩)、实况事件的名称或商家名称叠加(例如,海滩咖啡馆)。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括客户端设备102的地理位置处的商家的名称的媒体叠加。媒体叠加可以包括与商家相关联的其他标记。媒体叠加可以被存储在数据库120中并通过数据库服务器118访问。

在一个示例实施方式中,注释系统206提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择地图上的地理位置并上传与所选择的地理位置相关联的内容。用户还可以指定应当向其他用户提供特定媒体叠加的环境。注释系统206生成包括所上传的内容的媒体叠加并将所上传的内容与所选择的地理位置相关联。

在另一示例实施方式中,注释系统206提供基于商家的发布平台,该基于商家的发布平台使得商家能够经由投标过程选择与地理位置相关联的特定媒体叠加。例如,注释系统206将最高出价商家的媒体叠加与相应地理位置相关联达预定义时间量。

图3是示出根据某些示例实施方式的共享AR系统124的部件的框图,这些部件将共享AR系统124配置成执行操作以基于与用户连接相关联的分类来生成并使得显示通知。

共享AR系统124被示出为包括用户简档模块302、通知模块304和呈现模块306,所有这些模块被配置成(例如,经由总线、共享存储器或交换机)彼此通信。这些模块中的任何一个或更多个模块可以使用一个或更多个处理器308来实现(例如,通过对这样的一个或更多个处理器进行配置以执行针对该模块所描述的功能)并且因此可以包括一个或更多个处理器308。在某些实施方式中,头像(avatar)通知系统124可以包括数据库120或者可以访问数据库120,其中,数据库120可以包括基于用户属性和占星符号索引的媒体内容的集合。

所描述的模块中的任何一个或更多个模块可以使用硬件(例如,机器的一个或更多个处理器308)或者使用硬件和软件的组合来实现。例如,所描述的头像通知系统124的任何模块可以在物理上包括被配置成执行本文针对该模块所描述的操作的一个或更多个处理器308(例如,机器的一个或更多个处理器的子组或者机器的一个或更多个处理器中的处理器)的布置。作为另一示例,头像通知系统124的任何模块可以包括软件、硬件或者软件和硬件两者,其对(例如,机器的一个或更多个处理器中的)一个或更多个处理器308的布置进行配置以执行本文针对该模块所描述的操作。因此,头像通知系统124的不同模块可以包括并配置这样的处理器308的不同布置或者这样的处理器308在不同的时间点的单个布置。此外,头像通知系统124的任何两个或更多个模块可以被组合成单个模块,并且本文针对单个模块描述的功能可以在多个模块之间细分。此外,根据各种示例实施方式,本文中描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器、数据库或设备上。

图4是描绘根据某些示例实施方式的在客户端设备102处呈现共享AR接口的方法400的流程图。方法400的操作可以由以上关于图3描述的模块来执行。如图4所示,方法400包括一个或更多个操作402、404、406、408、410和412。

在操作402处,定位模块302访问客户端设备102处的图像数据,其中图像数据包括限定对象的表面的一组图像特征。例如,图像数据可以由与客户端设备102相关联(或通信地耦接至客户端设备102)的摄像机生成。

在一些实施方式中,图像数据可以包括由客户端设备102生成并在客户端设备102处的GUI内呈现的视频流。

在操作404处,定位模块302确定客户端设备102的位置。在一些实施方式中,定位模块302可以基于在客户端设备102处呈现的图像数据中所描绘的一组图像特征来确定客户端设备102的位置。例如,该组图像特征可以与储存库(即,数据库120)内的定位或地标对应。在一些实施方式中,定位模块302可以基于在客户端设备102处访问的定位数据来确定客户端设备102的位置。

定位数据可以包括指示客户端设备102的地理定位的坐标、指示客户端设备102的朝向(heading)的方向数据以及以六个自由度指示客户端设备102的取向的平移和旋转数据。

在操作406处,呈现模块306使得在客户端设备102处的图像数据的呈现内显示从客户端设备102的位置延伸的投影,其中,投影具有基于客户端设备102的位置的相应轨迹。例如,投影可以被显示为AR绘画流,客户端设备102的用户可以使用该AR绘画流虚拟地绘制在客户端设备102的GUI内呈现的用户的周围环境。

在一些实施方式中,投影可以与图形属性例如颜色或图案对应,该图形属性可以与和客户端设备102的用户相关联的用户简档关联。

在操作408处,呈现模块306检测投影与在客户端设备102处的图像数据中描绘的对象的表面的一部分之间的相交,其中,对象的表面的所述部分与包括一组表面特征的属性对应。

在操作410处,呈现模块306生成请求,所述请求包括对象的表面的所述部分在客户端设备102处的标识,其中,所述部分的标识可以包括一组表面特征以及指示客户端设备102的定位的定位数据。

在操作412处,呈现模块306基于投影的图形属性来呈现对象的表面的所述部分。作为说明性示例,投影的图形属性可以包括特定颜色或图案。响应于检测到投影与表面的所述部分的相交,呈现模块306可以基于特定颜色或图案来显示所述部分,使得看起来好像所述部分是用投影绘制的。

图5是描绘根据某些示例实施方式的呈现共享AR界面的方法500的流程图。方法500的操作可以由以上关于图3描述的模块来执行。如图5所示,方法500包括一个或更多个操作502和504。方法500可以作为图4中所描绘的方法400的一部分来执行,例如作为方法400中所描绘的一个或更多个操作的一部分来执行。在一些实施方式中,方法500可以作为方法400的操作404的子例程来执行,其中客户端设备102的位置是基于定位数据和图像数据而确定的。

在操作502处,定位模块304基于包括客户端设备102(即,第一客户端设备102)的用户的位置的一个或更多个因素来识别第二客户端设备102。定位模块304可以识别在第一客户端设备102的位置的阈值距离内的客户端设备,或者可以识别位于由定位模块304限定的边界内的所有客户端设备。例如,可以限定边界并将其与定位相关联。响应于检测到客户端设备(即,第一客户端设备102)在与该定位相关联的边界内,定位模块304可以识别同样位于与该定位相关联的边界内的第二客户端设备102。

在这样的实施方式中,将边界与定位相关联可以包括基于与该定位内的一个或更多个地标相关联的图像特征来将边界与地标相关联。在另外的实施方式中,边界可以包括由定位模块304维护的地理栅栏,其中,基于可以在相应设备处访问的定位数据来确定用户在地理栅栏的边界内。

在一些实施方式中,定位模块304可以基于诸如包括用户属性和用户喜好的用户简档数据的因素来识别客户端设备。例如,响应于检测到第一客户端设备102的定位,定位模块304可以识别第一客户端设备102的用户的用户属性,并且然后基于第一客户端设备102的定位和第一客户端设备102的用户属性来识别第二客户端设备102。

在操作504处,用户简档模块302发起至少第一客户端设备102与第二客户端设备102之间的通信会话。在一些实施方式中,发起第一客户端设备102与第二客户端设备102之间的通信会话可以包括将第一客户端设备102和第二客户端设备102添加至与定位相关联的现有通信会话,其中现有通信会话包括同样位于与该定位相关联的边界中的多个客户端设备。

在一些实施方式中,响应于识别到第二客户端设备102,呈现模块306可以使得在第一客户端设备102处显示通知,其中该通知包括加入与第二客户端设备102的共享通信会话的邀请。

在一些实施方式中,通信会话可以包括共享AR界面,其中,由第一客户端设备102的用户执行的动作(即,利用AR内容对建筑物进行绘制)在第二客户端设备102处经由通信会话的共享AR界面可见。

图6是描绘根据某些示例实施方式的在共享AR界面中呈现AR内容的方法600的流程图。方法600的操作可以由以上关于图3描述的模块来执行。如图6所示,方法600包括一个或更多个操作602和604。方法600可以作为图4中所描绘的方法400的一部分来执行,例如作为方法400中所描绘的一个或更多个操作的一部分来执行。在一些实施方式中,方法600可以作为方法400的操作404的子例程来执行,其中客户端设备102的位置是基于定位数据和图像数据而确定的。

在操作602处,用户简档模块302将多个图形属性中的图形属性分配给与客户端设备102相关联的用户简档。在某些实施方式中,用户简档模块302可以响应于检测到客户端设备102的定位而将图形属性分配给与客户端设备102相关联的用户简档。例如,响应于确定客户端设备102的定位,用户简档模块302可以选择图形属性并将该图形属性分配给与客户端设备102相关联的用户简档。

在一些实施方式中,用户简档模块302可以基于包括定位的定位属性以及来自与客户端设备102相关联的用户简档的用户属性的因素,从多个图形属性中选择图形属性。

在一些实施方式中,用户简档模块302可以基于与定位相关联的上下文数据从多个图形属性中选择图形属性。例如,上下文数据可以包括以下项中的一个或更多个:在与定位相关联的边界内的客户端设备的数量;已经分配了多个图形属性之中的图形属性的客户端设备的数量;以及指示客户端设备102进入与该定位相关联的边界的时间的时间数据。

在操作604处,呈现模块306基于分配给用户简档的图形属性来生成AR内容并使得在客户端设备102处显示该AR内容。例如,AR内容可以包括在客户端设备处呈现的“绘画”流的显示,其中,该绘画的颜色或图案基于与用户简档相关联的图形属性。例如,如在图8的界面图800中描绘的共享AR界面805中所看到的,AR内容可以包括绘画流的呈现,其中,该绘画流的图形属性基于被分配给用户简档的图形属性。

图7是描绘根据某些示例实施方式的在共享AR界面中呈现AR内容的方法700的流程图。方法700的操作可以由以上关于图3描述的模块来执行。如图7所示,方法700包括一个或更多个操作702和704。方法700可以作为图5中所描绘的方法500的子例程来执行。

在操作702处,呈现模块306接收标识第二客户端设备102的定位的定位数据,其中定位数据指示第二客户端设备102的位置、朝向和取向。例如,响应于将第一客户端设备102和第二客户端设备102分配给共享通信会话,呈现模块306可以向共享通信会话中的每个客户端设备提供标识参与共享通信会话的多个客户端设备的定位的定位数据。在一些实施方式中,呈现模块306可以识别在第一客户端设备102的阈值距离内的一个或更多个客户端设备102。

在操作704处,呈现模块306使得在第一客户端设备102处显示AR内容,其中,该AR内容基于第二客户端设备102的定位,并且包括基于与第二客户端设备102相关联的图形属性的图形属性(即,第二图形属性)。

图8是描绘根据某些示例实施方式的由共享AR系统124生成并且在客户端设备102处显示的共享AR界面805的界面图800。

例如,如在图8的界面图800中描绘的共享AR界面805中所看到的,AR内容可以包括绘画流815的呈现,其中绘画流815的图形属性基于向与绘画流815所源自的用户(即,用户810)相关联的用户简档分配的图形属性。

如在界面图800中所看到的,AR内容还可以包括经绘制表面820的显示,其中,经绘制表面820的图形属性基于与用户简档相关联的图形属性以及与对象(例如建筑物825)相关联的一组表面特征。

如在界面图800中所看到的,可以基于来自与用户810相关联的客户端设备102的定位数据在AR界面805内呈现绘画流815。例如,定位数据可以指示客户端设备102的定位以及以6个自由度指定客户端设备102的取向的信息。相应地,绘画流815的取向可以基于在与用户810相关联的客户端设备102处生成的定位数据。

软件架构

图9是示出示例软件架构906的框图,示例软件架构906可以与本文中描述的各种硬件架构结合使用。图9是软件架构的非限制性示例,并且应当理解,可以实现许多其他架构以促进本文中描述的功能。软件架构1006可以在硬件例如图10的机器1000上执行,所述硬件包括处理器1004、存储器1014和I/O部件1018等。代表性硬件层952被示出并且可以表示例如图9的机器900。代表性硬件层952包括具有相关联的可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括本文中描述的方法、部件等的实现。硬件层952还包括同样具有可执行指令904的存储器和/或存储模块,即存储器/存储装置956。硬件层952还可以包括其他硬件958。

在图9的示例架构中,软件架构906可以被概念化为层的堆叠,其中每个层提供特定功能。例如,软件架构906可以包括诸如操作系统902、库920、应用916和呈现层914的层。在操作上,层内的应用916和/或其他部件可以通过软件堆栈来调用应用编程接口(API)API调用908以及响应于API调用908来接收响应。所示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件918,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同层。

操作系统902可以管理硬件资源并且提供公共服务。操作系统902可以包括例如核922、服务924和驱动器926。核922可以充当硬件与其他软件层之间的抽象层。例如,核922可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务924可以为其他软件层提供其他公共服务。驱动器926负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器926包括显示器驱动器、摄像装置驱动器、蓝牙

库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。

框架/中间件918(有时也称为中间件)提供可以由应用916和/或其他软件部件/模块使用的较高级别的公共基础设施。例如,框架/中间件918可以提供各种图形用户界面(GUI)功能、高级资源管理、高级定位服务等。框架/中间件918可以提供可以由应用916和/或其他软件部件/模块使用的广泛的其他API,其中一些API可以专用于特定的操作系统902或平台。

应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可以包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、定位应用、媒体应用、消息传送应用和/或游戏应用。第三方应用940可以包括由除特定平台的供应商之外的实体使用ANDROID

应用916可以使用内置操作系统功能(例如,核922、服务924和/或驱动器926)、库920和框架/中间件918来创建用户接口以与系统的用户交互。可替选地或另外地,在一些系统中,可以通过呈现层例如呈现层914来进行与用户的交互。在这些系统中,应用/部件“逻辑”可以和应用/部件的与用户交互的方面分开。

图10是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器1000的部件的框图。具体地,图10示出了呈计算机系统的示例形式的机器1000的图形表示,在机器1000内可以执行用于使机器1000执行本文中讨论的方法中的任何一种或更多种方法的指令1010(例如,软件、程序、应用、小程序、应用(app)或其他可执行代码)。因此,可以使用指令1010来实现本文中描述的模块或部件。指令1010将通用的未经编程的机器1000转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器1000。在替选实施方式中,机器1000作为独立设备操作或者可以耦接(例如,联网)到其他机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份(capacity)来操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器1000可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家用电器)、其他智能设备、网络设备(webappliance)、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1000采取的动作的指令1010的任何机器。此外,虽然仅示出了单个机器1000,但是术语“机器”还应被认为包括单独地或联合地执行指令1010以执行本文中讨论的任何一种或更多种方法的机器的集合。

机器1000可以包括可以被配置成例如经由总线1002相互通信的处理器1004、存储器/存储装置1006和I/O部件1018。存储器/存储装置1006可以包括存储器1014例如主存储器或其他存储装置以及存储单元1016,处理器1004能够例如经由总线1002访问存储器1014和存储单元1016两者。存储单元1016和存储器1014存储体现本文中描述的方法或功能中的任何一个或更多个方法或功能的指令1010。指令1010还可以在其被机器1000执行期间完全地或部分地驻留在存储器1014内、驻留在存储单元1016内、驻留在处理器1004中的至少一个处理器内(例如,在处理器的高速缓冲存储器内)或者驻留在其任何合适的组合内。因此,存储器1014、存储单元1016以及处理器1004的存储器是机器可读介质的示例。

I/O部件1018可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器1000中的具体I/O部件1018将取决于机器的类型。例如,诸如移动电话的便携式机器将很可能包括触摸输入设备或其他这样的输入机构,而无终端(headless)服务器机器将很可能不包括这样的触摸输入设备。将理解的是,I/O部件1018可以包括图10中未示出的许多其他部件。仅出于简化以下讨论的目的,根据功能对I/O部件1018进行分组,并且该分组决不是限制性的。在各种示例实施方式中,I/O部件1018可以包括输出部件1026和输入部件1028。输出部件1026可以包括视觉部件(例如,诸如等离子体显示面板(PDP)的显示器、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件1028可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的定位和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。

在其他示例实施方式中,I/O部件1018可以包括生物计量部件1030、运动部件1034、环境部件1036或位置部件1038以及各种其他部件。例如,生物计量部件1030可以包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1034可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1036可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声音传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或者用于测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量结果或信号的其他部件。位置部件1038可以包括定位传感器部件(例如,全球定位系统(GPS)接收器部件)、海拔高度传感器部件(例如,检测可以从其得到海拔高度的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。

可以使用各种技术来实现通信。I/O部件1018可以包括通信部件1040,通信部件1040能够进行操作以分别经由耦接1022和耦接1024将机器1000耦接至网络1032或设备1020。例如,通信部件1040可以包括网络接口部件或其他合适的设备以与网络1032接口。在其他示例中,通信部件1040可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、

此外,通信部件1040可以检测标识符或者可以包括可操作以检测标识符的部件。例如,通信部件1040可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品码(UPC)条形码的一维条形码、诸如快速响应(QR)码的多维条形码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码以及其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1040得到各种信息,例如经由因特网协议(IP)地理定位得到定位、经由

该上下文中的“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字通信信号或模拟通信信号或者促进这些指令的通信的其他无形介质。可以经由网络接口设备利用传输介质并且利用多个公知的传输协议中的任何一种传输协议来通过网络发送或接收指令。

该上下文中的“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。

该上下文中的“通信网络”是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

该上下文中的“短暂消息”是指可以在时间有限的持续时间内访问的消息。短暂消息可以是文本、图像、视频等。短暂消息的访问时间可以由消息发送者设置。可替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,该消息都是暂时的。

该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的部件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应当被认为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或者相关联的高速缓冲存储器和服务器)。术语“机器可读介质”还应被认为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或更多个处理器执行时使机器执行本文中所描述的方法中的任何一种或更多种方法。因此,“机器可读介质”指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。

该上下文中的“部件”是指具有由功能或子例程调用、分支点、应用程序接口(API)或者对特定处理或控制功能提供分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,体现在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置成进行操作以执行本文中描述的某些操作的硬件部件。也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件进行配置,硬件部件就成为被独特地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将理解的是,可以出于成本和时间考虑来决定在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中机械地实现硬件部件。相应地,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置而成为专用处理器的通用处理器的情况下,可以在不同时间将该通用处理器分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。软件相应地对一个或多个特定处理器进行配置以例如在一个时刻构成特定硬件部件,并且在不同的时刻构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过(例如,通过适当的电路和总线)在两个或更多个硬件部件之间或之中进行信号传输来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在与其通信地耦接的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器装置以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。在本文中描述的示例方法的各种操作可以至少部分地由被(例如,通过软件)临时地配置或永久地配置成执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或作为“软件即服务”(SaaS)操作。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,应用程序接口(API))来访问。操作中的某些操作的执行可以分布在处理器之间,不仅可以驻留在单个机器内,而且可以跨多个机器部署。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨多个地理位置分布。

该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际的处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或其任何组合。处理器还可以是具有两个或更多个可以同时执行指令的独立处理器(有时称为“核”)的多核处理器。

该上下文中的“时间戳”指的是标识某个事件何时发生的字符或编码信息的序列,例如,从而给出日期和一天中的时间,有时精确到几分之一秒。

该上下文中的“LIFT”是针对随机选择靶向模型测量的靶向模型在将案例预测或分类为(相对于整个群体)具有增强的响应的方面的性能的量度。

该上下文中的“音素对齐”,音素是区分一个词和另一个词的语音单位。一个音素可以由一系列闭合(closure)、突发(burst)和呼出(aspiration)事件组成;或者,双元音可以从后元音过渡到前元音。因此,语音信号不仅可以用它所包含的音素来描述,而且还可以用音素的位置来描述。因此,可以将音素对齐描述为波形中的音素的“时间对齐”以确定语音信号中的每个音素的适当序列和位置。

该上下文中的“音频向可视转换”是指将可听语音信号转换为可视语音,其中可视语音可以包括表示可听语音信号的嘴形。

该上下文中的“时间延迟神经网络(TDNN)”,TDNN是人工神经网络架构,其主要目的是对顺序数据进行处理。示例是将连续音频转换成分类音素标签流以用于语音识别。

该上下文中的“双向长短期记忆(BLSTM)”是指在任意间隔内记忆值的递归神经网络(RNN)架构。存储的值不会随学习的进行而被修改。RNN允许在神经元之间进行前向连接和后向连接。在给定未知大小的时滞和事件之间的持续时间的情况下,BLSTM非常适合于时间序列的分类、处理和预测。

相关技术
  • 一种共享空气消毒装置及共享系统及共享方法
  • 分布式系统数据共享方法及装置、数据共享分布式系统
  • 在车辆乘员之间共享增强现实内容的集成增强现实系统
  • 增强现实装置、服务器、增强现实系统和共享方法
技术分类

06120115604601