CN113366413A - 交互增强现实系统 - Google Patents

交互增强现实系统 Download PDF

Info

Publication number
CN113366413A
CN113366413A CN202080011747.0A CN202080011747A CN113366413A CN 113366413 A CN113366413 A CN 113366413A CN 202080011747 A CN202080011747 A CN 202080011747A CN 113366413 A CN113366413 A CN 113366413A
Authority
CN
China
Prior art keywords
environment
presentation
client device
location
identifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080011747.0A
Other languages
English (en)
Inventor
D·李
P·考伯恩
I·A·穆勒桑德维克
Q·潘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snap Inc
Original Assignee
Snap Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snap Inc filed Critical Snap Inc
Publication of CN113366413A publication Critical patent/CN113366413A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在此描述的示例实施例涉及一种增强现实系统,用于在客户端设备处生成和使得显示交互增强现实内容。

Description

交互增强现实系统
优先权要求
本申请是2019年9月10日提交的序列号为16/566,379的美国申请的延续并要求其优先权,该申请要求于2019年1月31日提交的申请号为62/799,667的美国临时申请的优先权权益,它们中的每一个通过引用全文并入在此。
技术领域
本公开的实施例总体上涉及移动计算技术,并且更具体地而非限制性地涉及用于在客户端设备处生成和显示交互增强现实内容的系统。
背景技术
增强现实(AR)是物理的现实世界环境的实时直接或间接视图,其元素由计算机生成的感觉输入来增强。
附图说明
为了容易地识别对任何特定元素或动作的讨论,参考标记中的一个或多个最高有效数字指的是该元素首次引入的附图编号。
图1是示出根据一些实施例的用于在网络上交换数据(例如,消息和相关联的内容)的示例消息传递系统的框图,其中,消息传递系统包括上下文滤镜系统。
图2是示出根据示例实施例的关于消息传递系统的进一步细节的框图。
图3是示出根据某些示例实施例的上下文滤镜系统的各个模块的框图。
图4是根据某些示例实施例的描述使得在客户端设备处显示交互AR内容的方法的流程图。
图5是根据某些示例实施例的描述使得在客户端设备处显示交互AR内容的方法的流程图。
图6是根据某些示例实施例的描述使得在客户端设备处显示交互AR内容的方法的流程图。
图7是根据某些示例实施例的描绘交互AR内容的界面流程图。
图8是根据某些示例实施例的描绘交互AR内容的界面流程图。
图9是根据某些示例实施例的描绘交互AR内容的界面图。
图10是示出了代表性软件架构的框图,该软件架构可以与本文描述的各种硬件架构结合使用,并且可以用于实现各种实施例。
图11是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个的机器的组件的框图。
具体实施方式
如上所述,AR系统在图形用户界面(GUI)内向用户提供,以显示物理现实世界环境的实时直接或间接视图,其中,视图的元素由计算机生成的感觉输入来增强。例如,AR界面可在现实世界环境的视图的显示内的位置处呈现媒体内容,以使得媒体内容看起来与现实世界环境中的元素交互。
这里描述的示例实施例涉及一种AR系统,该AR系统用于在客户端设备处生成交互AR内容并使得显示交互AR内容。根据某些实施例,AR系统被配置为执行操作,该操作包括:在客户端设备处的图形用户界面内显示环境的呈现,其中,环境的呈现包括在该环境中的位置处的对象的显示;响应于使得显示包括对象的显示的环境的呈现而识别对象;访问与对象相关联的纹理贴图(texture map)和网格模型;基于与对象相关联的纹理贴图和网格模型来生成交互内容;基于对象的显示在环境的呈现中的位置,使得在环境的呈现中显示交互内容;接收来自客户端设备的交互输入;并且在环境的呈现内呈现交互输入的可视化,交互的可视化至少是基于交互内容。
交互AR内容可使用户能够通过在客户端设备处显示的环境的AR呈现来实时交互地延伸和弯曲一个或多个建筑物或其他现实世界对象。根据某些实施例,交互AR系统例如基于对象的位置(例如,地理定位数据)或基于对象的视觉特性,维护映射到或以其他方式链接到现实世界对象的网格模型的储存库。
在一些实施例中,网格模型可包括“帽状网格(cap mesh)”、“基础网格”和位于帽状网格和基础网格之间的可重复段。为了生成并使得显示AR内容,交互AR系统基于现实世界对象在环境的呈现中的位置,在环境的呈现中的该位置呈现基础网格,然后沿着长度和曲率可变的延伸的可能是非直的脊柱(基于用户输入)平铺(tile)可重复段,然后在脊柱的末端与末端脊柱方向对齐地渲染帽状网格。
在一些实施例中,对原始网格模型的待切割和平铺的段的选择可以是基于手动用户输入,或者在一些实施例中,可以是基于一种或多种自动段选择方法。例如,在一些实施例中,交互AR系统基于对象的属性生成具有类别的语义纹理贴图。交互AR系统然后可使用语义纹理贴图,基于在对象空间中在水平平面上并且在一些实施例中在垂直平面上连续的纹理贴图的类别,找到对象的其他相似属性。从对象的显示中选择并分段出最好的这样的行。
在原始网格模型的段被选择之后,该段可基于被延伸的脊柱的曲率和长度沿着被延伸的脊柱来平铺。在一些实施例中,在帽状网格和基础网格在几何上和视觉上都相似的情况下,交互AR系统简单地将可重复段直接堆叠在彼此的顶部以沿着脊柱填充帽状网格与基础网格之间的空间。在另外的实施例中,在帽状网格和基础网格在几何上或视觉上不相似的情况下,可重复段可沿脊柱平铺,以使得每隔一个可重复段是垂直(或在一些实施例中为水平)镜像,这样段顶部始终连接到下一段的原始顶部(被翻转的),底部始终连接到前一段的原始底部。
在一些实施例中,脊柱的表示可包括由N个点和将这些点连接在一起的N-1条线段组成的折线。交互AR系统可针对折线上的每个点计算正交标架(切线、法线和双切线),其从折线的起点到折线的终点平滑地变化。在此类实施例中,脊柱的第一个点可能正好在基础网格的末端,并且坐标系被设置为标识(identity),以使得第一平铺段完美地附着在基础网格上,脊柱的最后一个点是帽状网格的开始。
因此,当最终段长度变得太长以致于不能保持均匀采样时,用户可以通过将端点进一步远离倒数第二个点并在该端添加新点来交互地延伸脊柱。用户还可以通过将端点移近倒数第二个点并在它们与倒数第二个点合并时从该端移除点来交互地缩回脊柱。在一些实施例中,交互AR系统可基于环境的呈现的属性来限制延伸或缩回的曲率,该属性包括对象在环境的呈现内的相对位置、用户对环境的呈现内的对象的视角,以及其中呈现环境的呈现的GUI的显示区域。用户还可通过拖动脊柱上的任何点来交互地弯曲整个脊柱。在此类实施例中,交互AR系统可在脊柱上运行基于隐式约束的物理模拟以响应于从客户端设备接收到的交互输入而对其进行动画处理,并且保持脊柱均匀采样并去除具有过高曲率的区域。
在一些实施例中,交互AR系统还可在没有任何直接用户交互的情况下以编程方式延伸或弯曲脊柱以自动地对延伸的对象进行动画处理。为了渲染被延伸的对象,交互AR系统计算三次样条曲线,该曲线可以平滑地在折线上插入点,然后计算需要多少可重复段才能完全覆盖基础网格与帽状网格之间的脊柱。
在一些示例实施例中,对象的识别可以是基于包括位置信息、视觉信息以及用户输入的一个或多个识别因素。在某些实施例中,AR系统可从客户端设备取得位置数据并且基于位置数据识别靠近客户端设备的一个或多个对象。例如,AR系统可访问包括多个对象位置的数据储存库,其中可以基于给定对象在数据储存库中的对应位置(例如,地理位置坐标)来引用或识别该给定对象。在进一步的实施例中,识别可以是基于视觉信息,例如图像识别,或者基于与对象相关联的码图像,例如快速响应码(QR码)或条形码。
响应于识别在环境的呈现中描绘的一个或多个对象,AR系统访问与该一个或多个对象相关联的纹理贴图和网格模型。在一些实施例中,访问与一个或多个对象相关联的纹理贴图和网格模型可包括访问与客户端设备相关联的上下文数据,以及访问与该一个或多个对象和上下文数据相关联的纹理贴图和网格模型。例如,上下文数据可包括用户简档数据、位置数据以及时间数据。
作为说明性示例,AR系统可取决于客户端设备的上下文来取得与该一个或多个对象相关联的不同网格模型和纹理贴图。相应地,可以基于时间信息(例如,白天或黑夜、一天中的时间、一年中的时间)、用户简档数据(例如用户偏好和用户人口统计信息)以及与客户端设备接近的客户端设备的数量来选择不同的网格模型和纹理贴图。
在一些实施例中,AR系统可执行操作,该操作包括从客户端设备接收交互输入以及在客户端设备处的环境的呈现内呈现交互输入的可视化。例如,交互输入可包括通过拉伸或变形对象的形状和大小来变换或改变对象在空间呈现内的显示的输入。
在进一步的实施例中,交互输入可包括要应用于将要在空间的呈现内呈现的抛物体元素的轨迹。例如,客户端设备的用户可提供指示要应用到抛物体的起点、方向和大小的触觉输入。响应于接收到输入,AR系统基于轨迹在空间的呈现内显示抛物体元素,使得抛物体元素可以从输入定义的起始点开始,并穿过环境的呈现行进到终点,其中,终点是基于轨迹。
在一些实施例中,响应于确定抛物体元素的终点与交互内容的一部分重合,AR系统可使得在一个或多个客户端设备处显示通知。
作为从用户角度来看的说明性示例,交互内容可包括对象的动画描绘,该对象包括目标元素,并且交互输入可以使用户能够在对象的动画描绘处发射(launch)抛物体元素,其中抛物体元素可包括基于上下文数据(例如,用户简档数据、时间数据、位置数据)的一个或多个图形特性。响应于确定由用户发射的抛物体元素击中对象的动画描绘的目标元素,AR系统可呈现通知,例如分数的显示、或警报。
图1是示出了用于在网络上交换数据(例如消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括一个或多个客户端设备102,该客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104通过网络106(例如因特网)通信地耦接到消息传递客户端应用104和消息传递服务器系统108的其他实例。
因此,每个消息传递客户端应用104能够经由网络106与另一个消息传递客户端应用104和消息传递服务器系统108进行通信并交换数据。在消息传递客户端应用104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如调用函数的命令)以及有效载荷数据(例如文本、音频、视频或其他多媒体数据)。
消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器端功能。尽管在本文中将消息传递系统100的某些功能描述为由消息传递客户端应用104或由消息传递服务器系统108执行,但是应当理解,某些功能在消息传递客户端应用104或消息传递服务器系统108内的位置是设计选择。例如,在技术上优选地是首先在消息传递服务器系统108内部署某些技术和功能,然后将该技术和功能迁移到其中客户端设备102具有足够处理能力的消息传递客户端应用104。
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据,以及处理由消息传递客户端应用104生成的数据。在一些实施例中,作为示例,该数据包括消息内容、客户端设备信息、地理位置信息、媒体注释和叠加(overlay)、消息内容持久性条件、社交网络信息,和现场事件信息。在另一些实施例中,使用其它数据。消息传递系统100中的数据交换通过经由消息传递客户端应用104的GUI可用的功能来调用和控制。
现在具体转到消息传递服务器系统108,应用编程接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进对数据库120的访问,数据库120中存储有与由应用服务器112处理的消息相关联的数据。
特别地处理应用程序接口(API)服务器110,该服务器在客户端设备102和应用服务器112之间接收和发送消息数据(例如命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供可被消息传递客户端应用104调用或查询的一组接口(例如例程和协议),以便调用应用服务器112的功能。应用程序接口(API)服务器110公开由应用服务器112支持的各种功能,包括:账户注册,登录功能,经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息,从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如图像或视频),以供另一消息传递客户端应用104进行可能的访问,媒体数据(例如故事)集合的设置,客户端设备102的用户的好友列表的取得,此类集合的取得,消息和内容的取得,在社交图中添加和删除好友,好友在社交图中的位置,打开应用事件(例如与消息传递客户端应用104有关)。
应用服务器112托管多个应用和子系统,包括消息服务器应用114、图像处理系统116、社交网络系统122和增强现实系统124。增强现实系统124被配置为生成交互AR内容并且使得在客户端设备102处显示交互AR内容。增强现实系统124的更多细节可以在下面的图3中找到。
消息传递服务器应用114实现多个消息处理技术和功能,其特别涉及包括在从消息传递客户端应用104的多个实例接收的消息中的内容(例如文本和多媒体内容)的聚合和其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如被称为故事或图库(gallery))。然后,消息传递服务器应用114使得这些集合对于消息传递客户端应用104可用。考虑到此类处理的硬件要求,消息传递服务器应用114还可以在服务器端对数据进行其他处理器和存储器密集型处理。
应用服务器112还包括图像处理系统116,该图像处理系统116专用于通常关于在消息传递服务器应用114处的消息的有效载荷内接收到的图像或视频来执行各种图像处理操作。
社交网络系统122支持各种社交网络功能服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304。社交网络系统122支持的功能和服务的示例包括识别特定用户与其具有关系或者“正在关注”的消息传递系统100的其他用户,以及还识别特定用户的其他实体和兴趣。
应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进对数据库120的访问,在数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。
图2是示出根据示例实施例的关于消息传递系统100的更多细节的框图。具体地,消息传递系统100被示为包括消息传递客户端应用104和应用服务器112,它们又体现了多个特定子系统,即短暂定时器系统202、集合管理系统204、和注释系统206。
短暂定时器系统202负责对由消息传递客户端应用104和消息传递服务器应用114所允许的内容执行临时访问。为此,短暂定时器系统202并入了多个定时器,这些定时器基于与消息、消息集合(例如,SNAPCHAT故事)或图形元素相关联的持续时间和显示参数,选择性地经由消息传递客户端应用104显示并启用对消息和相关联内容的访问。下面提供有关短暂定时器系统202的操作的更多细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容的集合(例如包括图像、视频、文本和音频的消息)可以被组织成“事件图库”或“事件故事”。这种集合可以在指定时间段(例如与内容相关的事件的持续时间)内可用。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责发布图标,该图标向消息传递客户端应用104的用户界面提供特定集合的存在的通知。
集合管理系统204还包括策展界面208,该策展界面208允许集合管理器管理和策展特定内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容的集合(例如删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可对于将用户产生的内容包括进集合中向用户支付补偿。在这种情况下,策展界面208操作以自动向此类用户就使用其内容而支付费用。
注释系统206提供使用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与针对由消息传递系统100处理的消息产生和发布媒体叠加有关的功能。注释系统206基于客户端设备102的地理位置向消息传递客户端应用104可操作地提供媒体叠加(例如,SNAPCHAT滤镜)。在另一个示例中,注释系统206基于其他信息(例如,客户端设备102的用户的社交网络信息)可操作地向消息传递客户端应用104提供媒体叠加。媒体叠加可包括音频和视觉内容及视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画、和声音效果,以及动画化的面部模型,诸如由增强现实系统124生成的那些。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可以在客户端设备102处被应用于媒体内容项(例如,照片)。例如,媒体叠加包括可被叠加在由客户端设备102生成的照片之上的文本。在另一个示例中,媒体叠加包括位置叠加(例如威尼斯海滩)的标识、现场活动的名称或商家的名称叠加(例如海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别媒体叠加,该媒体叠加包括在客户端设备102的地理位置处的商家的名称。媒体叠加可以包括与商家相关联的其他标记。媒体叠加可被存储在数据库120中并且可以通过数据库服务器118来访问。
在一个示例实施例中,注释系统206提供基于用户的发布平台,该平台使用户能够在地图上选择地理位置并上载与所选地理位置相关联的内容。用户还可指定在什么情况下应将特定媒体叠加提供给其他用户。注释系统206生成包括所上载内容的媒体叠加,并将所上载内容与所选地理位置相关联。
在另一个示例实施例中,注释系统206提供基于商家的发布平台,该平台使商家能够经由投标过程来选择与地理位置相关联的特定媒体叠加。例如,注释系统206在预定的时间量内将出价最高的商家的媒体叠加与对应的地理位置相关联。
图3是示出根据一些示例实施例并且如在图7、8、9和10中所示的增强现实系统124的组件的框图,这些组件将增强现实系统124配置为执行操作以在客户端设备102处生成并使得显示交互AR内容。
增强现实系统124被示为包括呈现模块302、媒体模块304、增强现实(AR)模块306和识别模块308,它们均被配置为(例如,经由总线、共享存储器、或交换机)彼此通信。这些模块中的任何一个或多个可使用一个或多个处理器310(例如,通过配置此类一个或多个处理器以执行针对该模块描述的功能)来实现,并且因此可以包括处理器310中的一个或多个。
可以单独使用硬件(例如,机器的一个或多个处理器310)或硬件和软件的组合来实现所描述的任何一个或多个模块。例如,增强现实系统124的任何被描述的模块可以物理地包括被配置为执行本文针对该模块所描述的操作的一个或多个处理器310(例如,机器的一个或多个处理器的子集或在它们中)的布置。作为另一示例,增强现实系统124的任何模块可包括软件、硬件或两者,其配置一个或多个处理器310(例如,在机器的一个或多个处理器之中)的布置以执行本文针对该模块所描述的操作。因此,增强现实系统124的不同模块可包括并在不同的时间点配置此类处理器310的不同布置或此类处理器310的单个布置。此外,可以将增强现实系统124的任何两个或更多个模块组合为单个模块,并且本文中针对单个模块描述的功能可以在多个模块之间被细分。此外,根据各种示例实施例,在本文中被描述为在单个机器、数据库或设备内实现的模块可以横跨多个机器、数据库或设备分布。
图4是示出根据某些示例实施例的用于使得在客户端设备102处显示交互AR内容的方法400的流程图。方法400的操作可由以上关于图3描述的模块来执行。如图4所示,方法400包括一个或多个操作402、404、406、408、410、412和414。
在操作402处,呈现模块302生成并使得在客户端设备102处的GUI内显示环境的呈现,其中,环境的呈现包括在环境内的位置处的一个或多个对象的显示。例如,呈现模块302可访问与客户端设备102相关联的相机以通过从客户端设备102的相机流式传输(stream)图像和视频数据来生成环境的呈现。
根据某些实施例,环境的呈现包括现实世界环境的呈现。
在操作404处,响应于使得在客户端设备102处的GUI内显示环境的呈现,识别模块308识别环境的呈现内的一个或多个对象,以及环境的呈现内的一个或多个对象的位置。例如,识别模块308可执行一个或多个对象识别技术,包括但不限于基于机器学习的方法以及基于深度学习的方法。
例如,在机器学习方法中,识别模块308可使用一种或多种方法(例如,基于Haar特征的Viola-Jones对象检测框架、尺度不变特征变换(SIFT)、和方向梯度直方图(HOG)特征)来定义特征,然后使用诸如支持向量机(SVM)的技术来识别一个或多个对象。
在进一步的实施例中,识别模块308可应用深度学习技术来进行端到端的对象检测,而无需通过卷积神经网络(CNN)具体定义特征。
在一些示例实施例中,识别模块308可基于包括位置信息、视觉信息以及用户输入的一个或多个识别因素来识别一个或多个对象。例如,识别模块308可从客户端设备102取得位置数据并且基于客户端设备102的位置数据识别靠近客户端设备102的一个或多个对象。例如,AR系统可访问包括多个对象位置的数据存储库,其中可以基于给定对象在数据存储库中的对应位置(例如,地理位置坐标)来引用或识别该给定对象。在进一步的实施例中,识别可基于视觉信息,例如图像识别,或者基于与对象相关联的码图像,例如快速响应码(QR码)或条形码。
在操作406处,响应于识别模块308识别在客户端设备102的GUI内呈现的环境的呈现内的一个或多个对象,AR模块306访问在环境的呈现内的位置处与一个或多个对象相关联的纹理贴图和网格模型。
根据某些示例实施例,纹理贴图可包括语义纹理贴图,其中,AR模块306可基于环境的呈现中的一个或多个对象的一组语义特征来访问语义纹理贴图。语义特征可例如包括:与物理对象、位置或表面对应的上下文特征;引用一些其他已知分类或类别的相似特征;定义表面或对象的视觉或图形属性的视觉特征;以及定义表面或对象的属性的材料参数,其可包括“粗糙度值”、“金属值”、“镜面反射值”和“基色值”。
在一些实施例中,AR模块306访问的网格模型可包括“帽状网格”、“基础网格”和位于帽状网格和基础网格之间的可重复段。
在一些实施例中,AR模块306可基于与客户端设备102相关联的上下文数据访问与一个或多个对象相关联的纹理贴图和网格模型。例如,上下文数据可包括用户简档数据、位置数据和时间数据。作为说明性示例,AR模块305可根据客户端设备的上下文取得与一个或多个对象相关联的不同网格模型和纹理贴图。因此,可以基于时间信息(例如,白天或黑夜、一天中的时间、一年中的时间)、用户简档数据(诸如用户偏好和用户人口统计信息)、以及靠近客户端设备102的客户端设备的数量、和与靠近客户端设备102的客户端设备相关联的用户简档数据来选择不同的网格模型和纹理贴图。
在一些实施例中,纹理贴图和网格模型可基于与一个或多个对象相关联的地理位置信息与在环境的呈现中描绘的一个或多个对象相关联。例如,根据某些示例实施例,AR模块306可访问数据库120,其中,数据库120包括特定位置中的一个或多个对象的列表。因此,基于从客户端设备102取得的位置数据,AR模块306可访问该位置处的适当对象列表,其中,对象列表中的每个对象与纹理贴图和网格模型相关联。
在操作408处,媒体模块304基于与在环境的呈现中识别的一个或多个对象相关联的纹理贴图和网格模型,生成将要在客户端设备102处的环境的呈现内呈现的交互内容。在操作410处,呈现模块302基于在环境的呈现中描绘的一个或多个对象的位置以及客户端设备102相对于在环境的呈现内描绘的一个或多个对象的位置,使得在环境的呈现内的位置处显示交互内容。
在操作412处,AR模块306从客户端设备102接收交互输入。例如,交互输入可包括选择交互内容的一部分的输入。根据某些示例实施例,交互输入可实时地延伸或弯曲交互内容。响应于AR模块306从客户端设备102接收交互输入,在操作414处,AR模块306基于交互输入和交互内容在环境的呈现内呈现交互输入的可视化。
作为说明性示例,交互内容可包括媒体叠加的显示,其中,媒体叠加的外观是基于来自在环境的呈现中描绘的一个或多个对象之中的对象的属性;例如,媒体叠加可表现为灯柱。客户端设备102的用户可提供选择灯柱顶部并将其从开始位置移动到结束位置的交互输入。作为响应,AR模块306通过使灯柱移动(即,弯曲或拉伸)来基于交互输入呈现可视化。
图5是描绘根据某些示例实施例的使得在客户端设备102处显示交互AR内容的方法500的流程图。方法500的操作可以由以上关于图3描述的模块来执行。如图5所示,方法400包括一个或多个操作502、504、506和508。
根据某些示例实施例,从客户端设备102接收的交互输入可使得在环境的呈现内的位置处显示图形抛物体。例如,交互输入可选择环境的呈现内的位置,并且包括方向输入,该方向输入包括输入属性(即,方向、速度值、力值)。
在操作504处,AR模块306基于抛物体的轨迹计算抛物体在环境的呈现内的终点,其中,轨迹可以是基于交互输入的输入属性。
在操作506处,AR模块306确定抛物体的终点与在环境的呈现内呈现的交互内容的一部分重合。
在操作508处,响应于确定抛物体的终点与在环境的呈现内呈现的交互内容的一部分重合,呈现模块302使得在一个或多个客户端设备(包括客户端设备102)处显示通知。在一些实施例中,识别模块308可基于交互内容的属性或基于与客户端设备102的用户相关联的用户简档数据或基于来自一个或多个客户端设备的位置数据来识别一个或多个客户端设备。例如,识别模块308可识别位于与交互内容相关联的特定地理围栏内的一个或多个客户端设备。
图6是描绘根据某些示例实施例的使得在客户端设备102处显示交互AR内容的方法600的流程图。方法600的操作可由以上关于图3描述的模块来执行。如图6所示,方法400包括一个或多个操作602、604和606。根据某些示例实施例,方法600可以将作为图4中描绘的方法400的操作408和414的子程序来执行。
在操作602处,AR模块306使得至少基于对象在环境的呈现内的位置来在环境的呈现内显示基础网格。
在操作604处,AR模块306基于从客户端设备102接收的交互输入,使得在环境的呈现内显示帽状网格。例如,交互输入可识别在环境的呈现内的点。
在操作606处,AR模块306将纹理贴图应用到位于基础网格和帽状网格之间的可重复段,如图7所描绘的界面流程图700所示。
图7是根据某些示例实施例的并且如方法400和600中所描述的描绘交互AR内容715的界面流程图700。如图7中所见,交互AR内容715可包括基于在环境的呈现内呈现的对象(建筑物)的媒体叠加。
因此,如界面705中所见,客户端设备102的用户可提供交互输入720,其中,交互输入720选择交互AR内容715上的部分或点。如界面710中所见,交互输入720可基于输入720的一个或多个属性来拉伸交互AR内容715。
图8是描绘根据某些示例实施例的并且如方法400和600中所述的交互AR内容的界面流程图800。
如在界面805中所见,交互AR内容820可包括基于环境的呈现中描绘的对象的一个或多个属性而生成的媒体叠加(即,建筑物),其中,媒体叠加还可包括多个图形元素825。例如,如在界面流程图800中所见,多个图形元素825可包括用于拟人化在环境的呈现内识别的对象的图形特征。根据某些示例实施例,多个图形元素825可由媒体模块304基于上下文数据来生成,该上下文数据包括与客户端设备102相关联的用户简档数据。
如在界面810和815中所见,在环境的呈现内的交互AR内容820的显示可基于从客户端设备102接收的输入以及基于在客户端设备102处的环境的呈现内描绘的对象之间的交互而移动(即,拉伸、增长、屈伸、弯曲)。
作为客户端设备102的用户视角的说明性示例,响应于在相对于对象的预定义位置处或者在与对象的阈值距离处检测到客户端设备102,AR系统124可使得交互AR内容820执行相应的动画。例如,如果用户接近与交互AR内容820对应的对象(即,建筑物),则AR系统124可使得交互AR内容820基于客户端设备102的位置来延伸和弯曲。
图9是根据某些示例实施例的并且如图5中描绘的方法500中所讨论的描绘交互AR内容905的界面图900。
软件架构
图10是示出示例软件架构1006的框图,该示例软件架构1006可以与本文所述的各种硬件架构结合使用。图10仅是软件架构的非限制性示例,并且将理解,可以实现多个其他架构以促进本文描述的功能。软件架构1006可以在诸如图11的机器1100的硬件上执行,机器1100尤其包括处理器1104、存储器1214和I/O组件1218等。代表性硬件层1052被示出并且可以表示例如图11的机器1100。代表性硬件层1052包括具有相关联的可执行指令1004的处理单元1054。可执行指令1004表示软件架构1006的可执行指令,包括在此描述的方法、组件等的实现。硬件层1052还包括也具有可执行指令1004的存储器和/或存储模块1056。硬件层1052还可包括其他硬件1058。
在图10的示例架构中,软件架构1006可以被概念化为层的堆叠,其中每个层提供特定的功能。例如,软件架构1006可包括诸如操作系统1002、库1020、应用1016、和呈现层1014的层。在操作上,这些层内的应用1016或其他组件可通过软件堆栈来调用应用程序接口(API)API调用1008,并且响应于API调用1008,接收响应。所示出的层本质上是代表性的,并非所有软件架构都具有所有层。例如,某些移动或专用操作系统可能不提供框架/中间件1018,而其他操作系统可提供此类层。其他软件架构可包括附加的或不同的层。
操作系统1002可管理硬件资源并提供公共服务。操作系统1002可包括例如内核1022、服务1024和驱动器1026。内核1022可以充当硬件和其他软件层之间的抽象层。例如,内核1022可负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全性设置等。服务1024可为其他软件层提供其他公共服务。驱动器1026负责控制底层硬件或与底层硬件接口连接。例如,驱动器1026包括显示驱动器、相机驱动器、蓝牙
Figure BDA0003188124140000161
驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(USB)驱动器)、
Figure BDA0003188124140000163
Figure BDA0003188124140000162
驱动器、音频驱动器、电源管理驱动器等,取决于硬件配置。
库1020可提供可被应用1016和/或其他组件和/或层使用的公共基础结构。库1020通常提供如下功能:允许其他软件组件以比通过直接与基础操作系统1002功能(例如内核1022、服务1024和/或驱动器1026)接口连接更容易的方式执行任务。库1020可包括系统库1044(例如C标准库),该系统库1044可提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。此外,库1020可包括诸如媒体库的API库1046(例如,用于支持各种媒体格式(例如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG)的呈现和操作的库)、图形库(例如,可用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、网络库(例如,可提供网络浏览功能的WebKit),等。库1020还可包括各种各样的其他库1048,以向应用1016和其他软件组件/模块提供多个其他API。
框架/中间件1018(有时也称为中间件)提供可由应用1016和/或其他软件组件/模块使用的高级通用基础设施。例如,框架/中间件1018可提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1018可提供可被应用1016和/或其他软件组件/模块使用的广泛的其他API,其中一些可能是特定于特定操作系统1002或平台的。
应用1016包括内置应用1038和/或第三方应用1040。代表性内置应用1038的示例可包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用,和/或游戏应用。第三方应用1040可包括由特定平台的卖方以外的实体使用AndroidTM或iOSTM软件开发工具包(SDK)开发的应用,可以是在移动操作系统(例如iOSTM、AndroidTM
Figure BDA0003188124140000171
Phone或其他移动操作系统)上运行的移动软件。第三方应用1040可以调用由移动操作系统(诸如操作系统1002)提供的API调用1008,以促进本文描述的功能。
应用1016可利用内置的操作系统功能(例如内核1022、服务1024和/或驱动器1026)、库1020和框架/中间件1018来创建用户界面以与系统的用户进行交互。替代地或附加地,在一些系统中,与用户的交互可通过诸如呈现层1014的呈现层发生。在这些系统中,可将应用/组件“逻辑”与跟用户交互的应用/组件的各方面分开。
图11示出了根据一些示例实施例的机器1100的组件的框图,该组件能够从机器可读介质(例如,机器可读存储介质)读取指令,并执行本文所讨论的方法中的任何一个或多个。具体地,图11示出了具有计算机系统的示例形式的机器1100的图解表示,在其中可以执行用于使机器1100执行本文讨论的任何一种或多种方法的指令1110(例如软件、程序、应用、小应用、应用程序或其他可执行代码)。这样,指令1110可用于实现本文描述的模块或组件。指令1110将通用的、未编程的机器1100转换为被编程为以所描述的方式执行所描述和示出的功能的特定机器1100。在替代实施例中,机器1100作为独立设备运行,或者可耦接(例如联网)到其他机器。在网络部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。机器1100可包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能电器)、其他智能设备、网络家电、网络路由器、网络交换机、网桥,或能够依次或以其他方式执行指令1110的任何机器,这些指令指定了机器1100要采取的动作。此外,尽管仅示出了单个机器1100,但术语“机器”还应认为为包括单独地或共同地执行指令1110以执行本文讨论的方法中的任何一个或多个方法的机器的集合。
机器1100可包括处理器1104、存储器/存储装置1106和I/O组件1118,它们可以被配置为例如经由总线1102彼此通信。存储器/存储装置1106可包括存储器1114,(诸如,主存储器,或其它存储器存储装置)和存储单元1116,它们都可以诸如经由总线1102被处理器1104访问。存储单元1116和存储器1114存储体现本文所述方法或功能中的任何一个或多个的指令1110。在由机器1100执行期间,指令1110还可全部或部分地驻留在存储器1114内、存储单元1116内、处理器1104中的至少一个处理器内(例如在处理器的高速缓冲存储器内)或其任何组合。因此,存储器1114,存储单元1116和处理器1104的存储器是机器可读介质的示例。
I/O组件1118可以包括各种各样的组件,以接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等。包括在特定机器1100中的特定I/O组件1118将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他此类输入机构,而无头(headless)服务器机器将可能不包括此类触摸输入设备。应当理解,I/O组件1118可包括在图11中未示出的多个其他组件。仅出于简化下面讨论的目的,根据功能对I/O组件1118进行分组,并且分组绝不是限制性的。在各种示例实施例中,I/O组件1118可包括输出组件1126和输入组件1128。输出组件1126可包括视觉组件(例如显示器,诸如,等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪,或阴极射线管(CRT))、声学组件(例如扬声器)、触觉组件(例如振动马达、电阻机构)、其他信号发生器等。输入组件1128可包括字母数字输入组件(例如键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触知输入组件(例如物理按钮、提供触摸的位置和/或力或触摸手势的触摸屏,或其他触知输入组件)、音频输入组件(例如麦克风)等。
在进一步的示例实施例中,I/O组件1118可包括各种各样的其他组件中的生物特征组件1130、运动组件1134、环境组件1136或位置组件1138。例如,生物特征组件1130可包括用于检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如血压、心率、体温、汗水或脑波)、识别人(例如语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1134可包括加速度传感器组件(例如加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1136可包括例如照明传感器组件(例如光度计)、温度传感器组件(例如检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如一个或多个检测背景噪声的麦克风)、接近度传感器组件(例如检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测有害气体的浓度或测量大气中的污染物的气体检测传感器)、或可提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件938可包括位置传感器组件(例如全球定位系统(GPS)接收器组件)、高度传感器组件(例如检测可从哪个高度获得该空气压力的高度计或气压计)、取向传感器组件(例如磁力计)等。
可使用多种技术来实现通信。I/O组件1118可包括通信组件1140,该通信组件1140可操作以分别经由耦接(coupling)1122和耦接1124将机器1100耦接到网络1132或设备1120。例如,通信组件1140可包括网络接口组件或与网络1132接口连接的其它合适的设备。在进一步的示例中,通信组件1140可包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、蓝牙
Figure BDA0003188124140000191
组件(例如蓝牙
Figure BDA0003188124140000192
低能耗)、
Figure BDA0003188124140000193
组件和经由其它形态提供通信的其他通信组件。设备1120可以是另一机器或各种各样的外围设备(例如经由通用串行总线(USB)耦接的外围设备)中的任何一个。
此外,通信组件1140可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1140可包括射频识别(RFID)标签读取器组件、NFC智能标记检测组件、光学读取器组件(例如用于检测诸如通用产品代码(UPC)条形码的一维条形码、多维条形码(例如快速响应(QR)码、Aztec码、数据矩阵、数字图形、最大码、PDF417、超码、UCC RSS-2D条形码)和其他光学码的光学传感器),或声学检测组件(例如用于识别所标记的音频信号的麦克风)。另外,可以经由通信组件1140来获得各种信息,例如经由互联网协议(IP)地理位置来获得位置、经由
Figure BDA0003188124140000201
信号三角测量来获得位置、经由检测可指示特定位置的NFC信标信号来获得位置等。
词汇表
在本文中,“载波信号”是指能够存储、编码或携带指令以由机器执行的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这种指令的通信。指令可使用传输介质通过网络接口设备以及使用多个众所周知的传输协议中的任何一个在网络上发送或接收。
在本上下文中,“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其他客户端设备获取资源的任何机器。客户端设备可以是但不限于:移动电话、台式计算机、笔记本电脑、便携式数字助理(PDA)、智能电话、平板电脑、超级本、上网本、笔记本电脑、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏机、机顶盒或用户可用来接入网络的任何其他通信设备。
在此上下文中,“通信网络”是指网络的一个或多个部分,其可以是自组网、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共电话交换网(PSTN)的一部分、老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0003188124140000202
网络、另一类型的网络,或两个或多个此类网络的组合。例如,网络或网络的一部分可包括无线或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦接。在此示例中,耦接可实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其他标准、其他远程协议,或其他数据传输技术。
在本上下文中,“短暂消息”是指在时间限制的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。短暂消息的访问时间可由消息发送器设置。替代地,访问时间可以是默认设置,也可以是接收方指定的设置。不管设置技术如何,消息都是暂时的。
在本上下文中,“机器可读介质”是指能够临时或永久存储指令和数据的组件、设备或其他有形介质,并且可包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存、其他类型的存储设备(例如可擦除可编程只读存储器(EPROM))和/或其任何合适的组合。术语“机器可读介质”应被认为包括能够存储指令的单个介质或多个介质(例如集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储由机器执行的指令(例如代码)使得指令在由机器的一个或多个处理器执行时使得机器执行本文描述的任何一种或多种方法的任何介质或多种介质的组合。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”自身不包括信号。
在本上下文中,“组件”是指具有边界的设备、物理实体或逻辑,该边界由提供对特定处理或控制功能的分区或模块化的功能或子例程调用、分支点、应用程序接口(API)或其他技术来定义。组件可通过它们与其他组件的接口进行组合以执行机器过程。组件可以是被设计为与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用的经封装的功能硬件单元。组件可构成软件组件(例如体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或设置。在各种示例实施例中,一个或多个计算机系统(例如独立计算机系统、客户端计算机系统,或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如处理器或一组处理器)可以由软件(例如应用或应用部分)配置为操作以执行本文所述的某些操作的硬件组件。硬件组件也可机械地、电子地或其任何合适的组合来实现。例如,硬件组件可包括被永久性地配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可包括可编程逻辑或电路,其由软件临时配置为执行某些操作。例如,硬件组件可包括由通用处理器或其他可编程处理器执行的软件。在由此类软件进行配置之后,硬件组件变成专门被定制以执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。可以理解,机械地在专用和永久配置的电路中或者在临时配置的电路中(例如由软件配置的)实现硬件组件的决定可以由成本和时间考虑来驱动。因此,短语“硬件组件”(或“硬件实现的组件”)应理解为包括有形实体,其是物理构造的、永久配置的(例如硬连线的)或临时配置的(例如编程的),以某种方式操作或执行本文所述的某些操作的实体。考虑到其中硬件组件被临时配置(例如编程)的实施例,每个硬件组件不需要在任何时刻被配置或实例化。例如,在硬件组件包括由软件配置为成为专用处理器的通用处理器的情况下,通用处理器可在不同时间被分别配置为不同的专用处理器(例如包括不同的硬件组件)。因此,软件对应地配置特定处理器或处理器,例如以在一个时刻构成一个特定硬件组件,而在另一个不同时刻构成另一个不同硬件组件。硬件组件可向其他硬件组件提供信息并从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信耦接的。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间的信号传输(例如通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过在多个硬件组件可以访问的存储器结构中存储和取得信息来实现此类硬件组件之间的通信。例如,一个硬件组件可执行操作并将该操作的输出存储在其通信耦接到的存储器设备中。然后,另一硬件组件可以在稍后的时间访问该存储器设备以取得和处理所存储的输出。硬件组件还可发起与输入或输出设备的通信,并且可以在资源(例如信息的集合)上进行操作。本文所述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,此类处理器都可以构成处理器实现的组件,该组件操作以执行本文所述的一个或多个操作或功能。如本文中所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中特定的处理器或处理器是硬件的示例。例如,一种方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件执行。此外,一个或多个处理器还可操作以在“云计算”环境中或作为“软件即服务”(SaaS)来支持相关操作的执行。例如,操作中的至少一些操作可由一组计算机来执行(作为包括处理器的机器的示例),其中这些操作可以经由网络(例如互联网)以及经由一个或多个适当的接口(例如应用程序接口(API))来访问。某些操作的执行可分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,处理器或处理器实现的组件可位于单个地理位置中(例如在家庭环境、办公室环境,或服务器场中)。在其他示例实施例中,处理器或处理器实现的组件可分布在多个地理位置上。
在此上下文中,“处理器”是指根据控制信号(例如“命令”、“操作码”、“机器码”等)操纵数据值并产生适用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑来仿真的物理电路)。处理器可以例如是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或其任意组合。处理器可进一步是具有可同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
在本上下文中,“时间戳”是指一系列的字符或编码信息,其识别何时发生特定事件,例如给出日期和时间,有时精确到几分之一秒。
在此上下文中,“提升(LIFT)”是针对随机选择靶向模型测量的靶向模型在预测或将病例分类为具有增强的响应(相对于总体而言)方面的性能的度量。
在此上下文中,“音素对齐”,音素是区分一个词与另一个词的语音单位。一个音素可能由一系列关闭、爆发和吸入事件组成;或者,双元音可从后元音过渡到前元音。因此,语音信号不仅可以通过它包含的音素来描述,还可以通过音素的位置来描述。因此,音素对齐可以被描述为波形中音素的“时间对齐”,以便确定语音信号中每个音素的适当序列和位置。
在此上下文中,“音频到视频的转换”是指将可听语音信号转换为可见语音,其中,可见语音可包括代表可听语音信号的嘴形。
“延时神经网络(TDNN)”在此上下文中,TDNN是人工神经网络架构,其主要目的是处理顺序数据。一个示例是将连续音频转换为用于语音识别的分类音素标签流。
“双向长短期记忆(BLSTM)”在此上下文中是指记忆任意间隔内的值的循环神经网络(RNN)架构。所存储的值不会随着学习的进行而被修改。RNN允许神经元之间的前向和后向连接。考虑到事件之间未知大小和持续时间的时间滞后,BLSTM非常适合于时间序列的分类、处理和预测。

Claims (20)

1.一种方法,包括:
使得在客户端设备处的图形用户界面内显示环境的呈现,所述环境的所述呈现包括在所述环境内的位置处的对象的显示;
响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象;
响应于识别所述对象而访问与所述对象相关联的纹理贴图和网格模型;
基于与所述对象相关联的纹理贴图和网格模型来生成交互内容;
基于所述对象在所述环境中的位置,在所述环境的所述呈现中显示所述交互内容;
接收来自所述客户端设备的交互输入;以及
在所述环境的所述呈现内呈现所述交互输入的可视化,所述交互输入的所述可视化至少是基于所述交互内容。
2.根据权利要求1所述的方法,其中,响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象进一步包括:
访问标识所述客户端设备的位置的位置数据;以及
至少基于所述客户端设备的所述位置来识别所述对象。
3.根据权利要求1所述的方法,其中,响应于识别所述对象而访问与所述对象相关联的纹理贴图进一步包括:
访问与所述客户端设备相关联的上下文数据;以及
基于所述上下文数据来选择所述纹理贴图。
4.根据权利要求3所述的方法,其中,所述上下文数据包括与所述客户端设备的用户相关联的用户简档数据。
5.根据权利要求3所述的方法,其中,所述上下文数据包括时间数据。
6.根据权利要求1所述的方法,其中,所述交互输入包括起点和轨迹,在所述环境的所述呈现内呈现所述交互输入的所述可视化包括:
使得在所述客户端设备处的所述环境的所述呈现内的位置处显示抛物体,所述抛物体的位置是基于所述起点;
基于所述轨迹计算所述抛物体的终点;
确定所述抛物体的所述终点对应于所述交互内容的一部分;以及
响应于确定所述抛物体的所述终点对应于所述交互内容的一部分而呈现通知。
7.根据权利要求6所述的方法,其中,所述方法还包括:
基于所述上下文数据来生成所述抛物体。
8.根据权利要求1所述的方法,其中,所述网格模型包括在所述网格模型的第一端的基础网格、在所述网格模型的第二端的帽状网格、以及位于所述第一端和所述第一端之间的可重复段,呈现所述交互输入的所述可视化包括:
基于所述对象在所述环境中的所述位置显示所述基础网格;
基于所述交互输入在所述环境中显示所述帽状网格;以及
将所述纹理贴图应用于位于所述基础网格和所述帽状网格之间的所述可重复段。
9.一种机器可读存储介质,包括指令,所述指令在由机器的一个或多个处理器执行时使得所述机器执行操作,所述操作包括:
使得在客户端设备处的图形用户界面内显示环境的呈现,所述环境的所述呈现包括在所述环境内的位置处的对象的显示;
响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象;
响应于识别所述对象而访问与所述对象相关联的纹理贴图和网格模型;
基于与所述对象相关联的纹理贴图和网格模型来生成交互内容;
基于所述对象在所述环境中的位置,在所述环境的所述呈现中显示所述交互内容;
接收来自所述客户端设备的交互输入;以及
在所述环境的所述呈现内呈现所述交互输入的可视化,所述交互输入的所述可视化至少是基于所述交互内容。
10.根据权利要求9所述的机器可读存储介质,其中,响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象进一步包括:
访问标识所述客户端设备的位置的位置数据;以及
至少基于所述客户端设备的所述位置来识别所述对象。
11.根据权利要求9所述的机器可读存储介质,其中,响应于识别所述对象而访问与所述对象相关联的纹理贴图进一步包括:
访问与所述客户端设备相关联的上下文数据;以及
基于所述上下文数据来选择所述纹理贴图。
12.根据权利要求11所述的机器可读存储介质,其中,所述上下文数据包括与所述客户端设备的用户相关联的用户简档数据。
13.根据权利要求11所述的机器可读存储介质,其中,所述上下文数据包括时间数据。
14.根据权利要求9所述的机器可读存储介质,其中,所述交互输入包括起点和轨迹,在所述环境的所述呈现内呈现所述交互输入的所述可视化包括:
使得在所述客户端设备处的所述环境的所述呈现内的位置处显示抛物体,所述抛物体的位置是基于所述起点;
基于所述轨迹计算所述抛物体的终点;
确定所述抛物体的所述终点对应于所述交互内容的一部分;以及
响应于确定所述抛物体的所述终点对应于所述交互内容的一部分而呈现通知。
15.根据权利要求14所述的机器可读存储介质,其中,所述指令还包括:
基于所述上下文数据来生成所述抛物体。
16.根据权利要求9所述的机器可读存储介质,其中,所述网格模型包括在所述网格模型的第一端的基础网格、在所述网格模型的第二端的帽状网格、以及位于所述第一端与所述第二端之间的可重复段,呈现所述交互输入的所述可视化包括:
基于所述对象在所述环境中的所述位置显示所述基础网格;
基于所述交互输入在所述环境中显示所述帽状网格;以及
将所述纹理贴图应用于位于所述基础网格和所述帽状网格之间的所述可重复段。
17.一种系统,包括:
存储器;以及
至少一个硬件处理器,其耦接到所述存储器并包括指令,所述指令使得所述系统执行操作,所述操作包括:
使得在客户端设备处的图形用户界面内显示环境的呈现,所述环境的所述呈现包括在所述环境内的位置处的对象的显示;
响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象;
响应于识别所述对象而访问与所述对象相关联的纹理贴图和网格模型;
基于与所述对象相关联的纹理贴图和网格模型来生成交互内容;
基于所述对象在所述环境中的位置,在所述环境的所述呈现中显示所述交互内容;
接收来自所述客户端设备的交互输入;以及
在所述环境的所述呈现内呈现所述交互输入的可视化,所述交互输入的所述可视化至少是基于所述交互内容。
18.根据权利要求17所述的系统,其中,响应于使得显示包括所述对象的所述显示的所述环境的所述呈现而识别所述对象进一步包括:
访问标识所述客户端设备的位置的位置数据;以及
至少基于所述客户端设备的所述位置来识别所述对象。
19.根据权利要求17所述的系统,其中,响应于识别所述对象而访问与所述对象相关联的纹理贴图进一步包括:
访问与所述客户端设备相关联的上下文数据;以及
基于所述上下文数据来选择所述纹理贴图。
20.根据权利要求19所述的系统,其中,所述上下文数据包括与所述客户端设备的用户相关联的用户简档数据。
CN202080011747.0A 2019-01-31 2020-01-30 交互增强现实系统 Pending CN113366413A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962799667P 2019-01-31 2019-01-31
US62/799,667 2019-01-31
US16/566,379 US11107255B2 (en) 2019-01-31 2019-09-10 Interactive augmented reality system
US16/566,379 2019-09-10
PCT/US2020/015846 WO2020160245A1 (en) 2019-01-31 2020-01-30 Interactive augmented reality system

Publications (1)

Publication Number Publication Date
CN113366413A true CN113366413A (zh) 2021-09-07

Family

ID=71837065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080011747.0A Pending CN113366413A (zh) 2019-01-31 2020-01-30 交互增强现实系统

Country Status (5)

Country Link
US (4) US11107255B2 (zh)
EP (1) EP3918448A1 (zh)
KR (1) KR20210116652A (zh)
CN (1) CN113366413A (zh)
WO (1) WO2020160245A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11721072B2 (en) 2019-01-31 2023-08-08 Snap Inc. Interactive augmented reality system
US11790051B2 (en) 2018-09-28 2023-10-17 Snap Inc Collaborative public user profile

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US20230316703A1 (en) * 2022-03-31 2023-10-05 Microsoft Technology Licensing, Llc Saliency-based digital environment adaptation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116342B2 (en) 2003-07-03 2006-10-03 Sportsmedia Technology Corporation System and method for inserting content into an image sequence
US10019962B2 (en) * 2011-08-17 2018-07-10 Microsoft Technology Licensing, Llc Context adaptive user interface for augmented reality display
US11030440B2 (en) * 2016-12-30 2021-06-08 Facebook, Inc. Systems and methods for providing augmented reality overlays
US20180210628A1 (en) 2017-01-23 2018-07-26 Snap Inc. Three-dimensional interaction system
GB201709199D0 (en) * 2017-06-09 2017-07-26 Delamont Dean Lindsay IR mixed reality and augmented reality gaming system
GB2563895B (en) * 2017-06-29 2019-09-18 Sony Interactive Entertainment Inc Video generation method and apparatus
US11107255B2 (en) 2019-01-31 2021-08-31 Snap Inc. Interactive augmented reality system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11790051B2 (en) 2018-09-28 2023-10-17 Snap Inc Collaborative public user profile
US11721072B2 (en) 2019-01-31 2023-08-08 Snap Inc. Interactive augmented reality system

Also Published As

Publication number Publication date
US20230245394A1 (en) 2023-08-03
US20200250858A1 (en) 2020-08-06
US20210343050A1 (en) 2021-11-04
US11481932B2 (en) 2022-10-25
EP3918448A1 (en) 2021-12-08
US11721072B2 (en) 2023-08-08
KR20210116652A (ko) 2021-09-27
WO2020160245A1 (en) 2020-08-06
US11107255B2 (en) 2021-08-31
US20220366616A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
US20220284656A1 (en) Semantic texture mapping system
US11170035B2 (en) Context based media curation
US11875439B2 (en) Augmented expression system
US20200310601A1 (en) Dynamic media selection menu
US11721072B2 (en) Interactive augmented reality system
US11776256B2 (en) Shared augmented reality system
US11468618B2 (en) Animated expressive icon
US11915400B2 (en) Location mapping for large scale augmented-reality
US11663723B2 (en) Image segmentation system
CN113228693A (zh) 动态上下文媒体过滤器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination