CN116171566A - 上下文触发的增强现实 - Google Patents
上下文触发的增强现实 Download PDFInfo
- Publication number
- CN116171566A CN116171566A CN202180062937.XA CN202180062937A CN116171566A CN 116171566 A CN116171566 A CN 116171566A CN 202180062937 A CN202180062937 A CN 202180062937A CN 116171566 A CN116171566 A CN 116171566A
- Authority
- CN
- China
- Prior art keywords
- trigger
- computing device
- message
- conditions
- user
- 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
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 64
- 230000001960 triggered effect Effects 0.000 title abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000009877 rendering Methods 0.000 claims abstract description 6
- 230000000007 visual effect Effects 0.000 claims description 51
- 239000003550 marker Substances 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 35
- 230000004048 modification Effects 0.000 description 32
- 238000012986 modification Methods 0.000 description 32
- 239000011521 glass Substances 0.000 description 26
- 230000009466 transformation Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 7
- 210000000887 face Anatomy 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000001815 facial effect Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000003416 augmentation Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 239000007789 gas Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 238000010079 rubber tapping Methods 0.000 description 3
- 210000003813 thumb Anatomy 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910001285 shape-memory alloy Inorganic materials 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/222—Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文中的系统和方法描述了用于上下文触发的增强现实的系统。所提出的系统和方法接收指示对与接收方用户对应的用户界面元素的选择的第一用户输入,基于来自第一计算设备的第二用户输入来生成增强现实内容项,针对所生成的增强现实内容项生成上下文触发器,上下文触发器定义用于将所生成的增强现实内容项呈现在第二计算设备上的一组条件,生成包括第一计算设备处记录的音频数据的多媒体消息,检测一组条件中的至少一个条件被满足,以及响应于检测到一组条件中的至少一个条件被满足,使得增强现实内容项和多媒体消息呈现在第二计算设备处。
Description
优先权要求
本申请要求于2020年9月16日提交的美国临时申请序列第62/706,899号的优先权权益,该美国临时申请的全部内容通过引用并入本文。
技术领域
本公开内容的实施方式总体上涉及异步通信系统。更具体地,但不作为限制,本文中的系统和方法描述了异步增强现实消息收发系统。
背景技术
同步通信平台允许人们实时高效地进行通信。用户可以在同时在线的同时向彼此传递相关的实时信息。另一方面,异步通信平台允许用户进行通信,而不管用户是否同时在线。
附图说明
在不一定按比例绘制的附图中,相似的附图标记可以在不同的视图中描述相似的部件。为了容易地识别对任何特定元素或动作的讨论,附图标记中的一个或多个最高位数字是指该元素被首次引入时的图号。在附图的图中示出了一些非限制性示例,在附图中:
图1是根据一些示例的其中可以部署本公开内容的联网环境的图解表示。
图2是根据一些示例的具有客户端侧功能和服务器侧功能两者的消息收发系统的图解表示。
图3是示出根据一些示例实施方式的用于在基于上下文的增强现实通信中使用的眼镜的示例形式的可穿戴设备的图。
图4是根据一些示例的如在数据库中维护的数据结构的图解表示。
图5是根据一些示例的消息的图解表示。
图6是根据一些示例的访问限制过程的流程图。
图7是根据一些示例实施方式的用于生成基于上下文的AR消息的流程图。
图8是根据一些示例实施方式的增强现实消息的图示。
图9是根据一些示例实施方式的增强现实消息的图示。
图10是根据一些示例实施方式的AR信使系统的图示。
图11示出了根据一些示例实施方式的基于视觉标记触发器的AR消息。
图12示出了根据一些示例实施方式的基于视觉标记触发器的AR消息。
图13示出了根据一些示例实施方式的基于视觉标记触发器的AR消息。
图14示出了根据一些示例实施方式的基于视觉标记触发器的AR消息。
图15示出了根据一些示例实施方式的基于时间段触发器和定位触发器的AR消息。
图16示出了根据一些示例实施方式的基于时间段触发器和定位触发器的AR消息。
图17示出了根据一些示例实施方式的基于时间段触发器和定位触发器的AR消息。
图18示出了根据一些示例实施方式的基于时间段触发器和定位触发器的AR消息。
图19是根据一些示例实施方式的用于生成上下文触发的AR消息的流程图。
图20示出了用于生成上下文触发的AR消息的用户界面。
图21示出了用于生成上下文触发的AR消息的用户界面。
图22示出了用于生成上下文触发的AR消息的用户界面。
图23示出了用于生成上下文触发的AR消息的用户界面。
图24示出了用于生成上下文触发的AR消息的用户界面。
图25是根据一些示例的呈计算机系统形式的机器的图解表示,在该计算机系统内可以执行一组指令以使该机器执行本文中讨论的方法中的任何一种或更多种。
图26是示出其中可以实现示例的软件架构的框图。
具体实施方式
增强现实信使系统允许用户在消息收发平台上向朋友发送增强现实(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消息的时间范围。例如,时间范围可以是9:00AM至10:30AM。时间范围可以与AR眼镜佩戴者(例如,AR消息的接收者)的时区相关联。在另一示例中,时间段触发器可以是特定的时间(例如,12:00PM)。视觉标记触发器可以是出现在AR眼镜佩戴者的视野中的对象。例如,视觉标记触发器可以是AR眼镜佩戴者的工作场所处的特定标志。一旦特定标志出现在AR眼镜佩戴者的视野中,则视觉标记触发器条件被满足,并且AR消息覆盖到AR眼镜佩戴者的视野上。在一些示例中,视觉标记触发器可以是特定的颜色或纹理。
一旦AR消息覆盖到AR眼镜佩戴者的视野上,则AR信使系统允许AR眼镜佩戴者记录对AR消息的反应。例如,AR眼镜佩戴者可以记录佩戴者对覆盖在其视野上的AR消息实时反应的音频消息。AR眼镜佩戴者具有将反应发送回给AR消息发送者的选项。在一些示例中,反应连同覆盖到AR眼镜佩戴者的视野上的AR消息被发送回给AR消息发送者。
联网计算环境
图1是示出用于通过网络来交换数据(例如消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括客户端设备102的多个实例,每个客户端设备102托管包括消息收发客户端104和其他应用106的若干应用。每个消息收发客户端104经由网络112(例如,因特网)通信地耦接至消息收发客户端104的其他实例(例如,托管在相应的其他客户端设备102上)、消息收发服务器系统108和第三方服务器110。消息收发客户端104还可以使用应用程序接口(API)与本地托管的应用106通信。
消息收发客户端104能够经由网络112与其他消息收发客户端104和消息收发服务器系统108通信并交换数据。在消息收发客户端104之间以及消息收发客户端104与消息收发服务器系统108之间交换的数据包括功能(例如,激发功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。消息收发客户端104还可以在多个客户端设备102之间生成和发送基于上下文的AR消息。
消息收发服务器系统108经由网络112向特定消息收发客户端104提供服务器侧功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端104或由消息收发服务器系统108执行,但是某些功能的在消息收发客户端104内或消息收发服务器系统108内的定位可以是设计选择。例如,在技术上可以优选的是:最初将某些技术和功能部署在消息收发服务器系统108内,但是后面将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端104。
消息收发服务器系统108支持向消息收发客户端104提供的各种服务和操作。这样的操作包括向消息收发客户端104发送数据、从消息收发客户端104接收数据以及对由消息收发客户端104生成的数据进行处理。作为示例,该数据可以包括消息内容、客户端设备信息、地理定位信息、媒体增强和覆盖、消息内容持续性条件、社交网络信息和实况事件信息。通过经由消息收发客户端104的用户接口(UI)可用的功能来激发和控制消息收发系统100内的数据交换。
现在具体地转至消息收发服务器系统108,应用程序接口(API)服务器116耦接至应用服务器114并且向应用服务器114提供编程接口。应用服务器114通信地耦接至数据库服务器120,数据库服务器120便于访问数据库126,该数据库126存储与由应用服务器114处理的消息相关联的数据。类似地,web服务器128耦接至应用服务器114,并且向应用服务器114提供基于web的接口。为此,web服务器128通过超文本传输协议(HTTP)和若干其他相关协议处理传入的网络请求。
应用程序接口(API)服务器116在客户端设备102与应用服务器114之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器116提供一组接口(例如,例程和协议),消息收发客户端104可以调用或查询该组接口以激发应用服务器114的功能。应用程序接口(API)服务器116显露由应用服务器114支持的各种功能,包括:帐户注册;登录功能;经由应用服务器114将消息从特定消息收发客户端104发送至另一消息收发客户端104;将媒体文件(例如,图像或视频)从消息收发客户端104发送至消息收发服务器118并用于另一消息收发客户端104的可能访问;设置媒体数据集合(例如,故事);检索客户端设备102的用户的朋友列表;检索这样的集合;检索消息和内容;在实体图(例如社交图)中添加和删除实体(例如朋友);在社交图中定位朋友;以及打开应用事件(例如,与消息收发客户端104有关)。
应用服务器114托管若干服务器应用和子系统,包括例如消息收发服务器118、图像处理服务器122以及社交网络服务器124。消息收发服务器118实现若干消息处理技术和功能,这些消息处理技术和功能特别地涉及被包括在从消息收发客户端104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的聚合及其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如,被称为故事或图库)。然后,使这些集合对消息收发客户端104可用。鉴于对这样的处理的硬件要求,也可以由消息收发服务器118在服务器侧执行数据的其他处理器和存储器密集型处理。
应用服务器114还包括图像处理服务器122,该图像处理服务器122专用于通常相对于从消息收发服务器118发送或在消息收发服务器118处接收的消息的有效载荷内的图像或视频,执行各种图像处理操作。
社交网络服务器124支持各种社交联网功能和服务并且使这些功能和服务可用于消息收发服务器118。为此,社交网络服务器124维护和访问数据库126内的实体图308(如图3所示)。由社交网络服务器124支持的功能和服务的示例包括识别消息收发系统100中的与特定用户有关系或该特定用户正在“关注”的其他用户,以及识别特定用户的兴趣和其他实体。
返回至消息收发客户端104,外部资源(例如,应用106或小应用(applet))的特征和功能经由消息收发客户端104的接口对用户可用。在该上下文中,“外部”是指应用106或小应用在消息收发客户端104外部的事实。外部资源通常由第三方提供,但也可以由消息收发客户端104的创建者或提供者提供。消息收发客户端104接收用户对启动或访问这样的外部资源的特征的选项的选择。外部资源可以是安装在客户端设备102上的应用106(例如,“本地app”)、或者托管在客户端设备102上或者位于客户端设备102的远端(例如,在第三方服务器110上)的应用的小规模版本(例如,“小应用”)。应用的小规模版本包括应用的特征和功能的子集(例如,应用的全规模、原生版本),并且使用标记语言文档来实现。在一个示例中,应用的小规模版本(例如,“小应用”)是应用的基于web的标记语言版本,并且嵌入在消息收发客户端104中。除了使用标记语言文档(例如,.*ml文件)之外,小应用还可以包括脚本语言(例如,.*js文件或.json文件)和样式表(例如,.*ss文件)。
响应于接收到用户对启动或访问外部资源的特征的选项的选择,消息收发客户端104确定所选择的外部资源是基于web的外部资源还是本地安装的应用106。在一些情况下,本地安装在客户端设备102上的应用106可以例如通过在客户端设备102的主页画面上选择与应用106对应的图标来独立于消息收发客户端104并且与消息收发客户端104分开地启动。这样的应用的小规模版本可以经由消息收发客户端104启动或访问,并且在一些示例中,小规模应用的各部分都不能在消息收发客户端104之外被访问或者小规模应用的有限部分才能在消息收发客户端104之外被访问。可以通过消息收发客户端104例如从第三方服务器110接收与小规模应用相关联的标记语言文档并处理这样的文档来启动小规模应用。
响应于确定外部资源是本地安装的应用106,消息收发客户端104指示客户端设备102通过执行与外部资源对应的本地存储的代码来启动外部资源。响应于确定外部资源是基于web的资源,消息收发客户端104(例如)与第三方服务器110通信以获得与所选择的外部资源对应的标记语言文档。然后,消息客户端104处理获得的标记语言文档以在消息客户端104的用户界面内呈现基于web的外部资源。
消息收发客户端104可以向客户端设备102的用户或与这样的用户相关的其他用户(例如,“朋友”)通知在一个或更多个外部资源中发生的活动。例如,消息收发客户端104可以向消息收发客户端104中的对话(例如,聊天会话)中的参与者提供与一组用户中的一个或更多个成员当前或最近使用外部资源有关的通知。可以邀请一个或更多个用户加入活动的外部资源或者启动(在朋友组中)最近使用过但当前不活动的外部资源。外部资源可以向对话中的各自使用相应的消息收发客户端104的参与者提供与进入聊天会话中的用户组中的一个或更多个成员共享外部资源中的项目、状况、状态或定位的能力。共享项可以是交互式聊天卡,聊天的成员可以利用该交互式聊天卡进行交互,例如,以启动对应的外部资源,查看外部资源内的特定信息,或者将聊天的成员带到外部资源内的特定定位或状态。在给定的外部资源内,可以在消息收发客户端104上向用户发送响应消息。外部资源可以基于外部资源的当前上下文在响应中选择性地包括不同的媒体项。
消息收发客户端104可以向用户呈现可用外部资源(例如,应用106或小应用)的列表以启动或访问给定的外部资源。该列表可以被呈现在上下文敏感菜单中。例如,表示不同的应用106(或小应用)的图标可以基于用户如何启动菜单(例如,从对话界面或从非对话界面)而变化。
系统架构
图2是示出根据一些示例的关于消息收发系统100的另外的细节的框图。具体地,消息收发系统100被显示为包括消息收发客户端104和应用服务器114。消息收发系统100包含若干子系统,这些子系统在客户端侧由消息收发客户端104支持并且在服务器侧由应用服务器114支持。这些子系统包括例如短暂定时器系统202、集合管理系统204、增强系统208、地图系统210、游戏系统212、外部资源系统214和AR信使系统216。
短暂定时器系统202负责实施由消息收发客户端104和消息收发服务器118对内容进行临时或时间受限的访问。短暂定时器系统202包含若干个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地实现经由消息收发客户端104访问(例如,用于呈现和显示)消息和相关联的内容。下面提供关于短暂定时器系统202的操作的其他细节。
集合管理系统204负责管理媒体的组或集合(例如,文本、图像、视频和音频数据的集合)。可以将内容(例如,消息,包括图像、视频、文本和音频)的集合组织成“事件库(gallery)”或“事件故事”。可以使这样的集合在指定时间段(例如在与内容有关的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息收发客户端104的用户接口发布提供关于存在特定集合的通知的图标。
此外,集合管理系统204还包括使得集合管理者能够管理和策展特定内容集合的策展接口206。例如,策展接口206使得事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些示例中,可以向用户支付对将用户生成的内容包括到集合中的补偿。在这样的情况下,集合管理系统204进行操作以自动地向这样的用户支付以使用他们的内容。
增强系统208提供使得用户能够增强(例如,标注或以其他方式修改或编辑)与消息相关联的媒体内容的各种功能。例如,增强系统208提供与生成和发布由消息收发系统100处理的消息的媒体覆盖有关的功能。增强系统208基于客户端设备102的地理定位可操作地向消息收发客户端104供应媒体覆盖或增强(例如,图像过滤器)。在另一示例中,增强系统208基于诸如客户端设备102的用户的社交网络信息的其他信息可操作地向消息收发客户端104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本或图像。在另一示例中,媒体覆盖包括定位标识覆盖(例如,威尼斯海滩)、实况事件的名称或商家名称覆盖(例如,海滩咖啡馆)。在另一示例中,增强系统208使用客户端设备102的地理定位来标识包括客户端设备102的地理定位处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以被存储在数据库126中并且通过数据库服务器120访问。
在一些示例中,增强系统208提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择地图上的地理定位并上传与所选择的地理定位相关联的内容。用户还可以指定应当向其他用户提供特定媒体覆盖的环境。增强系统208生成媒体覆盖,该媒体覆盖包括所上传的内容并将所上传的内容与所选择的地理定位相关联。
在其他示例中,增强系统208提供基于商家的发布平台,该平台使商家能够经由出价过程选择与地理定位相关联的特定媒体覆盖。例如,增强系统208使最高出价商家的媒体覆盖与对应地理定位相关联达预定义时间量。
地图系统210提供各种地理定位功能,并且支持由消息收发客户端104呈现基于地图的媒体内容和消息。例如,地图系统210使得能够在地图上显示(例如,存储在简档数据316中的)用户图标或化身,以在地图的上下文中指示用户的“朋友”的当前或过去定位,以及由这样的朋友生成的媒体内容(例如,包括照片和视频的消息的集合)。例如,可以在消息收发客户端104的地图界面上将用户从特定地理定位发布到消息收发系统100的消息在地图的该特定定位的上下文内显示给特定用户的“朋友”。用户还可以经由消息收发客户端104与消息收发系统100的其他用户(例如,使用适当的状况化身)共享他或她的定位和状况信息,其中该定位和状况信息在消息收发客户端104的地图界面的上下文内被显示给所选择的用户。
游戏系统212在消息收发客户端104的上下文内提供各种游戏功能。消息收发客户端104提供游戏界面,该游戏界面提供可以由用户在消息收发客户端104的上下文内启动并与消息收发系统100的其他用户一起玩的可用游戏的列表。消息收发系统100还使得特定用户能够通过从消息收发客户端104向其他用户发出邀请来邀请这样的其他用户参与玩特定游戏。消息收发客户端104还支持在玩游戏上下文内进行语音消息收发和文本消息收发(例如,聊天)两者,为游戏提供排行榜,并且还支持提供游戏内奖励(例如,游戏币和物品)。
外部资源系统214为消息收发客户端104提供接口以与远程服务器(例如,第三方服务器110)通信以启动或访问外部资源(即,应用或小应用)。每个第三方服务器110托管例如基于标记语言(例如,HTML5)的应用或应用的小规模版本(例如,游戏应用、实用程序应用、支付应用或乘坐共享应用)。消息收发客户端104可以通过从与基于web的资源相关联的第三方服务器110访问HTML5文件来启动基于web的资源(例如,应用)。在某些示例中,利用由消息收发服务器118提供的软件开发工具包(SDK)以JavaScript对由第三方服务器110托管的应用进行编程。SDK包括应用程序接口(API),API具有可以由基于web的应用调用或激发的功能。在某些示例中,消息收发服务器118包括JavasScript库,该JavasScript库提供对消息收发客户端104的某些用户数据的给定外部资源访问。HTML5被用作用于编程游戏的示例技术,但是可以使用基于其他技术编程的应用和资源。
AR信使系统216将AR消息从第一计算设备发送至第二计算设备。AR消息可以被立即递送,或者被预先将时间安排到由定位触发器、时间段触发器或视觉标记触发器限定的特定时刻。AR信使系统216允许智能电话用户发送AR消息。在一些示例中,AR信使系统216向佩戴AR眼镜的朋友发送AR消息。AR信使系统216将AR消息覆盖到AR眼镜佩戴者的视野上,并且捕获佩戴者对AR消息的反应。AR信使系统216还允许佩戴者将他们的反应分享回给发送者。在一些示例中,AR信使系统216向另一智能电话或任何合适的计算设备发送消息。AR信使系统216的一些方面可以在消息收发客户端上进行操作。AR信使系统216的一些方面可以在应用服务器114上进行操作。
为了将SDK的功能集成到基于web的资源中,SDK由第三方服务器110从消息收发服务器118下载或者由第三方服务器110以其他方式接收。一旦被下载或接收,则SDK作为基于web的外部资源的应用代码的一部分被包括在内。然后,基于web的资源的代码可以调用或激发SDK的某些功能以将消息收发客户端104的特征集成到基于web的资源中。
存储在消息收发服务器118上的SDK有效地提供了外部资源(例如,应用106或小程序)与消息收发客户端104之间的桥梁。这为用户提供了与消息收发客户端104上的其他用户通信的无缝体验,同时还保留了消息收发客户端104的外观和感觉。为了桥接外部资源与消息收发客户端104之间的通信,在某些示例中,SDK便于第三方服务器110与消息收发客户端104之间的通信。在某些示例中,在客户端设备102上运行的WebViewJavaScriptBridge在外部资源与消息收发客户端104之间建立两个单向通信信道。在外部资源与消息收发客户端104之间经由这些通信信道异步地发送消息。每个SDK函数调用作为消息和回调发送。每个SDK函数都是通过构建唯一的回调标识符并利用该回调标识符发送消息来实现的。
通过使用SDK,并非来自消息收发客户端104的所有信息都与第三方服务器110共享。SDK基于外部资源的需要来限制共享哪些信息。在某些示例中,每个第三方服务器110向消息收发服务器118提供与基于web的外部资源对应的HTML5文件。消息收发服务器118可以在消息收发客户端104中添加基于web的外部资源的视觉表示(例如盒设计或其他图形)。一旦用户通过消息收发客户端104的GUI选择视觉表示或指示消息客户端104访问基于web的外部资源的特征,消息收发客户端104就获得HTML5文件并且使访问基于web的外部资源的特征所需的资源实例化。
消息收发客户端104呈现用于外部资源的图形用户接口(例如,登录页面或标题画面)。在呈现登录页面或标题画面期间、之前或之后,消息收发客户端104确定所启动的外部资源是否先前已被授权访问消息收发客户端104的用户数据。响应于确定所启动的外部资源先前已被授权访问消息收发客户端104的用户数据,消息收发客户端104呈现外部资源的包括外部资源的功能和特征的另一图形用户接口。响应于确定所启动的外部资源先前未被授权访问消息收发客户端104的用户数据,在显示外部资源的登录页面或标题画面的阈值时间段(例如,3秒)之后,消息收发客户端104向上滑动菜单(例如,将菜单动画化为从画面底部浮现到画面中部或其他部分)以用于授权外部资源访问用户数据。该菜单标识了外部资源将被授权使用的用户数据的类型。响应于接收到对接受选项的用户选择,消息收发客户端104将外部资源添加至授权的外部资源的列表,并且允许外部资源从消息收发客户端104访问用户数据。在一些示例中,外部资源由消息收发客户端104根据OAuth 2框架来授权访问用户数据。
消息收发客户端104基于被授权的外部资源的类型来控制与外部资源共享的用户数据的类型。例如,包括全规模的应用(例如,应用106)的外部资源被提供有对第一类型的用户数据(例如,具有或不具有不同化身特征的用户的仅二维化身)的访问权限。作为另一示例,包括应用的小规模版本(例如,应用的基于web的版本)的外部资源被提供有对第二类型的用户数据(例如,支付信息、用户的二维化身、用户的三维化身、以及具有各种化身特征的化身)的访问权限。化身特性包括用于定制化身的外观和感觉(例如,不同的姿态、面部特征、服装等)的不同方式。
图3是示出根据一些示例实施方式的用于在基于上下文的增强现实通信中使用的眼镜331的示例形式的可穿戴设备的图。眼镜331可以包括框架332,框架332由诸如塑料或金属的任何合适的材料制成,包括任何合适的形状记忆合金。框架332可以具有前件333,前件333可以包括通过桥338连接的第一或左透镜、显示器或光学元件保持器336以及第二或右透镜、显示器或光学元件保持器337。前件333附加地包括左端部分341和右端部分342。第一光学元件或左光学元件344和第二光学元件或右光学元件343可以设置在相应的左光学元件保持器336和右光学元件保持器337内。光学元件343、光学元件344中的每一个可以是透镜、显示器(例如,透明显示器)、显示组件或前述的组合。在一些实施方式中,例如,眼镜331设置有集成的近眼显示机构,该集成的近眼显示机构使得能够例如向用户显示由眼镜331的摄像装置367捕获的视觉媒体的预览图像。在一些实施方式中,集成的近眼显示机构允许显示增强现实内容项,使得增强现实内容项覆盖在通过光学元件343和光学元件344可观看的真实世界环境上。
框架332另外包括左臂件或左镜腿件346和右臂件或右镜腿件347,它们通过诸如铰链(未示出)的任何合适手段联接至前件333的相应的左端部341和右端部342,以联接至前件333或者刚性地或可固定地固定至前件333,从而与前件333成一体。镜腿件346和镜腿件347中的每一者可以包括联接至前件333的相应端部341或342的第一部分351以及用于联接至用户的耳朵的任何合适的第二部分352例如弯曲或弓形件。在一个实施方式中,前件333可以由单件材料形成,以具有整体式或一体式构造。在一个实施方式中,整个框架332可以由单件材料形成,以具有整体式或一体式构造。
眼镜331可以包括诸如计算机361之类的设备,该设备可以具有任何合适的类型以由框架332携载,并且在一个实施方式中,该设备具有合适的大小和形状以至少部分地设置在镜腿件346和镜腿件347之一中。在一个实施方式中,计算机361具有与镜腿件346、347之一的大小和形状类似的大小和形状,并且因此即使不是完全地也几乎完全地设置在这样的镜腿件346和347的结构和界限内。在一个实施方式中,计算机361可以设置在镜腿件346、347两者中。计算机361可以包括具有存储器的一个或更多个处理器、无线通信电路和电源。计算机361包括低功率电路、高速电路和显示处理器。各种其他实施方式可以包括不同配置或以不同方式集成在一起的这些元件。
计算机361另外包括电池362或其他合适的便携式电力供应装置。在一个实施方式中,电池362设置在镜腿件346或镜腿件347之一中。在图3所示的眼镜331中,电池362被示为设置在左镜腿件346中并且使用连接件374电耦接至设置在右镜腿件347中的计算机361的其余部分。一个或更多个I/O设备可以包括适合于为电池362充电的可从框架332的外部访问的连接器或端口(未示出)、无线接收器、发射器或收发器(未示出)或者这样的设备的组合。给定计算机361和眼镜331的有限大小,诸如视频流的资源密集操作可以快速地消耗电池362并且可能是计算机361的一个或更多个处理器上的可能导致过热的重负(strain)。
眼镜331包括数字摄像装置367。尽管描绘了两个摄像装置367,但是其他实施方式考虑使用单个或附加(即,多于两个)摄像装置。为了便于描述,将仅参照单个摄像装置367进一步描述与摄像装置367相关的各种特征,但是应当理解,在合适的实施方式中,这些特征可以适用于两个摄像装置367。
与一些实施方式一致,眼镜331是客户端设备102的示例实例并且可以由用户103-1佩戴。此外,在这些实施方式中,用户103-2可以观看由摄像装置367生成的实况摄像装置馈送并且通过使虚拟增强添加至经由眼镜331对用户103-1可见的真实世界环境来与用户103-2交互。即,与由用户103-2选择的虚拟增强对应的一个或更多个增强现实内容项可以由集成的近眼显示机构来显示,该集成的近眼显示机构使得增强现实内容项能够覆盖在可通过光学元件343和光学元件344观看的真实世界环境上。
在各种实施方式中,除了摄像装置367之外,眼镜331可以包括任何数目的输入传感器或外围设备。前件333设置有:面向外的、面向前的前或外表面366,该面向外的、面向前的前或外表面366在眼镜331安装在用户的面部上时面向前方或背离用户;以及相对的面向内的、面向后的后或内表面369,该相对的面向内的、面向后的后或内表面369在眼镜331安装在用户的面部上时面向用户(例如,用户103-1)的面部。这样的传感器可以包括:面向内的视频传感器或数字成像模块,例如可以安装或设置在前件333的内表面369上或内或者框架332上的其他位置以面向用户的摄像装置;以及面向外的视频传感器或数字成像模块,例如可以安装或设置在前件333的外表面366上或内或者框架332上的其他位置以背对用户的摄像装置367。这样的传感器、外围设备或周边设备可以附加地包括生物传感器、位置传感器、加速度计或任何其他这样的传感器。
眼镜331还包括摄像装置控制机构或用户输入机构的示例实施方式,该摄像装置控制机构或用户输入机构包括安装在框架332上用于用户触觉或手动接合的摄像装置控制按钮。摄像装置控制按钮提供其可由用户仅在两种状态即接合状态与分离状态之间使用的双模态或单动作机构。在该示例实施方式中,摄像装置控制按钮是默认处于分离状态的按钮,该按钮可由用户按下以将其设置为接合状态。在释放按下的摄像装置控制按钮时,它会自动地返回至分离状态。
在其他实施方式中,单动作输入机构可以替代地由例如包括电容式传感器的触敏按钮来提供,该电容式传感器与框架332的表面邻近地安装在框架332上,用于检测用户手指的存在,以当用户将手指触摸到框架332的外表面上的相应点时将触敏按钮设置为接合状态。应当理解,上面描述的摄像装置控制按钮和电容式触摸按钮仅是用于摄像装置367的单动作控制的触觉输入机构的两个示例,并且其他实施方式可以采用不同的单动作触觉控制布置。
数据架构
图4是示出根据某些示例的可以存储在消息收发服务器系统108的数据库126中的数据结构400的示意图。虽然数据库126的内容被示出为包括若干表,但是将理解的是,数据可以以其他类型的数据结构进行存储(例如,作为面向对象数据库)。
数据库126包括存储在消息表402中的消息数据。对于任何特定的一条消息,该消息数据包括至少消息发送者数据、消息接收方(或接收者)数据和有效载荷。下面参照图5描述了关于可以被包括在消息中并且被包括在存储在消息表402中的消息数据中的信息的另外的细节。
实体表406存储实体数据,并且(例如,以参考的方式)链接至实体图408和简档数据416。在实体表406内保存其记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管实体类型如何,消息收发服务器系统108存储关于其的数据的任何实体可以是识别的实体。每个实体设置有唯一的标识符以及实体类型标识符(未示出)。
实体图408存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于兴趣或基于活动的社交关系、职业关系(例如,在共同的公司或组织工作)。
简档数据416存储关于特定实体的多种类型的简档数据。基于由特定实体指定的私密设置,简档数据416可以被选择性地使用并呈现给消息收发系统100的其他用户。在实体是个人的情况下,简档数据416包括例如用户名、电话号码、地址、设置(例如,通知和隐私设置)以及用户选择的化身表示(或这样的化身表示的集合)。然后,特定用户可以将这些化身表示中的一个或更多个选择性地包括在经由消息收发系统100传送的消息的内容中以及由消息收发客户端104向其他用户显示的地图界面上。化身表示的集合可以包括“状态化身”,其呈现用户可以选择在特定时间进行传送的状态或活动的图形表示。
在实体是团体的情况下,除了团体名称、成员以及针对相关团体的各种设置(例如,通知)之外,针对团体的简档数据416还可以类似地包括与团体相关联的一个或更多个化身表示。
数据库126还在增强表410中存储增强数据,例如覆盖或过滤器。增强数据与视频(其数据被存储在视频表404中)和图像(其数据被存储在图像表412中)相关联并且应用于视频和图像。
在一个示例中,过滤器是在呈现给接收方用户期间被显示为覆盖在图像或视频上的覆盖物。过滤器可以是各种类型的,包括当发送用户正在编写消息时由消息收发客户端104呈现给发送用户的一组过滤器中用户选择的过滤器。其他类型的过滤器包括地理定位过滤器(也称为地理过滤器),其可以基于地理定位被呈现给发送用户。例如,可以基于由客户端设备102的全球定位系统(GPS)单元确定的地理定位信息,由消息收发客户端104在用户接口内呈现特定于附近或特殊定位的地理定位过滤器。
另一种类型的过滤器是数据过滤器,其可以由消息收发客户端104基于在消息创建过程期间由客户端设备102收集的其他输入或信息选择性地呈现给发送用户。数据过滤器的示例包括特定定位处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表412内的其他增强数据包括增强现实内容项(例如,对应于应用镜头(Lenses)或增强现实体验)。增强现实内容项可以是可以被添加至图像或视频的实时特殊效果和声音。
如上所述,增强数据包括增强现实内容项、覆盖、图像变换、AR图像,以及涉及可以应用于图像数据(例如,视频或图像)的修改的类似项。这包括实时修改,其在使用客户端设备102的设备传感器(例如,一个或多个摄像装置)捕获图像时对图像进行修改并且然后在修改的情况下在客户端设备102的屏幕上显示图像。这还包括对所存储的内容的修改,例如可以被修改的图库中的视频剪辑。例如,在具有对多个增强现实内容项的访问权的客户端设备102中,用户可以使用具有多个增强现实内容项的单个视频剪辑来查看不同的增强现实内容项将如何修改存储的剪辑。例如,通过为内容选择不同的增强现实内容项,可以将应用不同伪随机运动模型的多个增强现实内容项应用于该同一内容。类似地,实时视频捕获可以与示出的修改一起使用,以显示当前由客户端设备102的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在进行或不进行修改(或两者)的情况下被记录并且存储在存储器中。在某些系统中,预览特征可以显示不同的增强现实内容项将同时在显示器的不同窗口内看起来如何。例如,这可以使得能够同时在显示器上查看具有不同伪随机动画的多个窗口。
因此,使用增强现实内容项的数据和各种系统或使用该数据修改内容的其他这样的变换系统可以涉及对象(例如,面部、手、身体、猫、狗、表面、物体等)的检测,在这些对象离开视场、进入视频帧中的视场以及在视场四处移动时跟踪这些对象,以及在跟踪这些对象时对其进行修改或变换。在各种示例中,可以使用用于实现这样的变换的不同方法。一些示例可以涉及生成一个或多个对象的三维网格模型,并且使用视频内的模型的变换和动画纹理来实现变换。在其他示例中,可以使用对象上的点的跟踪来将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在又一示例中,可以使用视频帧的神经网络分析来将图像、模型或纹理放置在内容(例如,图像或视频的帧)中。因此,增强现实内容项既指用于在内容中创建变换的图像、模型和纹理,也指通过对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
可以利用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并且将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,可以使用计算机动画模型来处理任何对象,例如人的面部和人身体的各部分、动物或非生物(例如椅子、汽车或其他对象)。
在一些示例中,当连同要变换的内容一起选择特定修改时,计算设备标识要变换的元素,并且然后如果所述元素存在于视频帧中,则检测并跟踪它们。根据修改请求修改对象的元素,从而变换视频流的帧。对于不同类型的变换,可以通过不同的方法来执行对视频流的帧的变换。例如,对于主要是指改变对象的元素的形式的帧的变换,计算对象的元素中的每一个的特征点(例如,使用主动形状模型(ASM)或其他已知方法)。然后,针对对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,将所提及的每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求针对每个元件生成第一组第一点,并且基于一组第一点和修改请求针对每个元件生成一组第二点。然后,可以通过基于该组第一点和该组第二点以及网格修改对象的元素,对视频流的帧进行变换。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲被修改对象的背景。
可以通过计算对象的每个元素的特征点并基于计算的特征点生成网格来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,并且然后生成基于这些点的各种区域。然后,通过将每个元素的区域与至少一个元素中的每个元素的位置对准来跟踪对象的元素,并且可以基于修改请求来修改区域的属性,从而变换视频流的帧。根据具体的修改请求,可以以不同的方式来变换所提及的区域的属性。这样的修改可以涉及:改变区域的颜色;从视频流的帧中删除至少一些部分区域;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种示例中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为要用于确定针对模型动画的选项的整个状态空间的控制点。
在使用面部检测来变换图像数据的计算机动画模型的一些示例中,使用特定面部检测算法(例如,Viola-Jones)在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
可以使用适合于面部检测的其他方法和算法。例如,在一些示例中,使用界标来定位特征,界标表示在所考虑的大多数图像中存在的可区分点。例如,对于面部界标,可以使用左眼瞳孔的定位。如果初始界标不可识别(例如,如果人有眼罩),则可以使用次级界标。这样的界识别过程可以用于任何这样的对象。在一些示例中,界标的集合形成形状。可以使用形状中点的坐标将形状表示为矢量。一个形状利用相似变换(允许平移、缩放和旋转)与另一个形状对准,该相似变换使形状点之间的平均欧几里德距离最小化。平均形状是经对准的训练形状的平均。
在一些示例中,从与由全局面部检测器确定的面部的位置和大小对准的平均形状开始搜索界标。然后,这样的搜索重复以下步骤直至发生收敛:通过每个点周围的图像纹理的模板匹配来调整形状点的定位而建议暂定形状,并且然后使暂定形状符合全局形状模型。在一些系统中,个别的模板匹配是不可靠的,并且形状模型将弱模板匹配的结果进行池化,以形成更强的整体分类器。整个搜索从粗略分辨率到精细分辨率在图像金字塔的每个级别上重复。
变换系统可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状变化、情绪迁移(例如,将面部从皱眉变为微笑)、状态迁移(例如,使被摄体变老、减小表观年龄、改变性别)、风格迁移、图形元素应用,以及由已经被配置成在客户端设备102上高效地执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
在一些示例中,用于变换图像数据的计算机动画模型可以由系统使用,在该系统中,用户可以使用具有作为在客户端设备102上操作的消息收发客户端104的一部分进行操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍)。在消息收发客户端104内操作的变换系统确定图像或视频流中的面部的存在并且提供与计算机动画模型相关联的修改图标以变换图像数据,或者计算机动画模型可以被呈现为与本文中描述的接口相关联。修改图标包括改变,该改变可以是作为修改操作的一部分的用于修改图像或视频流内的用户的面部的基础。一旦选择了修改图标,则变换系统发起转换用户的图像以反映所选择的修改图标(例如,在用户上生成笑脸)的处理。一旦捕获图像或视频流并且选择指定的修改,则修改的图像或视频流就可以呈现在客户端设备102上显示的图形用户接口中。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,一旦选择了修改图标,用户就可以捕获图像或视频流并且实时或近乎实时地被呈现修改结果。此外,当正在捕获视频流时,修改可以是持久的,并且所选择的修改图标保持被切换。机器教导的神经网络可以用于实现这样的修改。
呈现由变换系统执行的修改的图形用户接口可以向用户供应附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的选择和内容捕获的接口(例如,从内容创建者用户接口发起)。在各种示例中,在对修改图标进行初始选择之后,修改可以是持久的。用户可以通过敲击或以其他方式选择由变换系统修改的面部来开启或关闭修改,并且将其存储以供以后查看或浏览到成像应用的其他区域。在由变换系统修改多个面部的情况下,用户可以通过敲击或选择在图形用户接口内修改和显示的单个面部来全局开启或关闭修改。在一些示例中,可以通过敲击或选择图形用户接口内显示的单独面部或一系列面部来单独修改一组多个面部中的各个面部,或者单独切换这样的修改。
故事表414存储关于被编制成集合(例如,故事或图库)的消息以及相关联的图像、视频或音频数据的集合的数据。特定集合的创建可以由特定用户(例如,在实体表406中维持其记录的每个用户)发起。用户可以以已经由该用户创建和发送/广播的内容的集合的形式创建“个人故事”。为此,消息收发客户端104的用户接口可以包括用户可选择以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
集合还可以构成“实况故事”,该“实况故事”是手动地、自动地或者使用手动技术和自动技术的组合创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自不同定位和事件的用户提交内容的策展流。可以例如经由消息收发客户端104的用户接口向其客户端设备启用了定位服务并且在特定时间处于共同定位事件处的用户呈现选项,以将内容贡献给特定的实况故事。可以由消息收发客户端104基于他或她的定位向用户标识实况故事。最终结果是从社群视角讲述的“实况故事”。
另一类型的内容集合被称为“定位故事”,该“定位故事”使得其客户端设备102位于特定地理定位(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些示例中,对定位故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
如上所述,视频表404存储视频数据,在一个示例中,视频数据与其记录被维持在消息表402内的消息相关联。类似地,图像表412存储与其消息数据存储在实体表406中的消息相关联的图像数据。实体表406可以将来自增强表410的各种增强与存储在图像表412和视频表404中的各种图像和视频相关联。
数据库126还可以存储由AR信使系统216生成的AR消息。
数据通信架构
图5是示出根据一些示例的消息500的结构的示意图,消息500由消息收发客户端104生成,以用于传送至另外的消息收发客户端104或消息收发服务器118。特定消息500的内容用于填充存储在数据库126中的消息表402,该消息表402可由消息收发服务器118访问。类似地,消息500的内容作为客户端设备102或应用服务器114的“传输中”或“飞行中”数据存储在存储器中。消息500被示为包括以下示例组成部分:
·消息标识符502:标识消息500的唯一标识符。
·消息文本有效载荷504:要由用户经由客户端设备102的用户接口生成并且包括在消息500中的文本。
·消息图像有效载荷506:由客户端设备102的摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息500中的图像数据。发送或接收到的消息500的图像数据可以存储在图像表412中。
·消息视频有效载荷508:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息500中的视频数据。用于发送或接收的消息500的视频数据可以被存储在视频表404中。
·消息音频有效载荷510:由麦克风捕获或从客户端设备102的存储器部件检索并且包括在消息500中的音频数据。
·消息增强数据512:表示要应用于消息500的消息图像有效载荷506、消息视频有效载荷508或消息音频有效载荷510的增强的增强数据(例如,过滤器、标贴或其他注释或增强)。发送或接收到的消息500的增强数据可以存储在增强表410中。
·消息持续时间参数514:以秒为单位指示消息的内容(例如,消息图像有效载荷506、消息视频有效载荷508、消息音频有效载荷510)要经由消息收发客户端104呈现给用户或使其对于用户可访问的时间量的参数值。
·消息地理定位参数516:与消息的内容有效载荷相关联的地理定位数据(例如,纬度和经度坐标)。多个消息地理位置参数516值可以被包括在有效载荷中,这些参数值中的每个参数值与关于内容中所包括的内容项(例如,消息图像有效载荷506内的特定图像或消息视频有效载荷508中的特定视频)相关联。
·消息故事标识符518:标识与消息500的消息图像有效载荷506中的特定内容项相关联的一个或更多个内容集合(例如,在故事表414中标识的“故事”)的标识符值。例如,消息图像有效载荷506内的多个图像可以各自与使用识别符值的多个内容集合相关联。
·消息标签520:每个消息500可以用多个标签来标记,这些标签中的每个标签都指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷506中所包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以被包括在指示相关动物的消息标签520内。标签值可以基于用户输入手动地生成,或可以使用例如图像识别自动地生成。
·消息发送者标识符522:指示在其上生成消息500并且从其发送消息500的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符524:指示消息500定址到的客户端设备102的用户的标识符(例如消息收发系统标识符、电子邮件地址或设备标识符)。
消息500的各种组成部分的内容(例如,值)可以是指向表中存储内容数据值的位置的指针。例如,消息图像有效载荷506中的图像值可以是指向图像表412内的位置的指针(或位置的地址)。类似地,消息视频有效载荷508内的值可以指向存储在视频表404内的数据,存储在消息增强内的值可以指向存储在增强表410中的数据,存储在消息故事标识符518内的值可以指向存储在故事表414中的数据,并且存储在消息发送者标识符522和消息接收者标识符524内的值可以指向存储在实体表406内的用户记录。
基于时间的访问限制架构
图6是示出访问限制过程600的示意图,根据该访问限制过程,对内容(例如,短暂消息602和相关联的数据的多媒体有效载荷)或内容集合(例如,短暂消息组604)的访问可以是时间受限的(例如,使得是短暂的)。
短暂消息602被示为与消息持续时间参数606相关联,消息持续时间参数606的值确定消息收发客户端104将向短暂消息602的接收用户显示短暂消息602的时间量。在一个示例中,取决于发送用户使用消息持续时间参数606指定的时间量,接收用户可查看短暂消息602长达最多10秒。
消息持续时间参数606和消息接收者标识符524被示出为消息定时器610的输入,消息定时器610负责确定向由消息接收者标识符524标识的特定接收用户示出短暂消息602的时间量。特别地,仅在由消息持续时间参数606的值确定的时间段内向相关接收用户示出短暂消息602。消息定时器610被示出为向更一般化的短暂定时器系统202提供输出,该短暂定时器系统202负责向接收用户显示内容(例如,短暂消息602)的总体定时。
图6中示出的短暂消息602被包括在短暂消息组604(例如,个人故事或事件故事中的消息的集合)内。短暂消息组604具有相关联的组持续时间参数608,组持续时间参数608的值确定短暂消息组604被呈现并可由消息收发系统100的用户访问的持续时间。例如,组持续时间参数608可以是音乐会的持续时间,其中,短暂消息组604是涉及该音乐会的内容的集合。替选地,用户(拥有用户或者策展者用户)可以在执行短暂消息组604的设置和创建时指定组持续时间参数608的值。
另外,短暂消息组604内的每个短暂消息602具有相关联的组参与参数612,组参与参数612的值确定在短暂消息组604的上下文内将可访问短暂消息602的持续时间。因此,在短暂消息组604本身根据组持续时间参数608到期之前,特定的短暂消息组604可以“到期”并且在短暂消息组604的上下文中变得不可访问。组持续时间参数608、组参与参数612和消息接收者标识符524各自向组定时器614提供输入,组定时器614可操作地首先确定短暂消息组604的特定短暂消息602是否将被显示给特定接收用户,并且如果是,则确定显示多长时间。注意,由于消息接收者标识符524,短暂消息组604也知道特定接收用户的身份。
因此,组定时器614可操作地控制相关联的短暂消息组604以及包括在短暂消息组604中的单独的短暂消息602的总使用期限。在一个示例中,短暂消息组604内的每个短暂消息602在由组持续时间参数608指定的时间段内保持可查看和可访问。在另一示例中,在短暂消息组604的上下文内,某个短暂消息602可以基于组参与参数612而到期。注意,即使在短暂消息组604的上下文内,消息持续时间参数606也仍然可以确定向接收用户显示特定短暂消息602的持续时间。因此,消息持续时间参数606确定向接收用户显示特定短暂消息602的持续时间,而不管接收用户是在短暂消息组604的上下文之内还是之外查看该短暂消息602。
短暂定时器系统202还可以基于确定特定的短暂消息602已经超过相关联的组参与参数612而从短暂消息组604中可操作地移除该特定的短暂消息602。例如,在发送用户已经建立了从发布起24小时的组参与参数612的情况下,短暂定时器系统202将在指定的24小时之后从短暂消息组604中移除相关的短暂消息602。短暂定时器系统202还进行操作以当针对短暂消息组604内的每个短暂消息602的组参与参数612已到期时,或者当短暂消息组604本身根据组持续时间参数608已到期时,移除短暂消息组604。
在某些使用情况下,特定短暂消息组604的创建者可以指定无期限的组持续时间参数608。在这种情况下,针对短暂消息组604内最后剩余的短暂消息602的组参与参数612的到期将确定短暂消息组604本身何时到期。在这种情况下,添加至短暂消息组604的具有新的组参与参数612的新的短暂消息602,实际上将短暂消息组604的寿命延长至等于组参与参数612的值。
响应于短暂定时器系统202确定短暂消息组604已经到期(例如,不再是可访问的),短暂定时器系统202与消息收发系统100(并且例如特别是消息收发客户端104)通信,以使得与相关短暂消息组604相关联的标记(例如,图标)不再显示在消息收发客户端104的用户接口内。类似地,当短暂定时器系统202确定针对特定短暂消息602的消息持续时间参数606已到期时,短暂定时器系统202使消息收发客户端104不再显示与短暂消息602相关联的标记(例如,图标或文本标识)。
图7是根据一些示例实施方式的用于生成基于上下文的AR消息的方法700的流程图。下面描述的操作可以由AR信使系统216执行。尽管所描述的流程图可以将操作示出为顺序过程,但是操作中的很多操作可以并行或同时执行。另外,可以重新排列操作的顺序。当过程的操作完成时,该过程终止。过程可以对应于方法、程序、算法等。方法的操作可以全部或部分执行,可以与其他方法中的一些或所有操作结合执行,并且可以通过任何数目的不同系统(例如本文中描述的系统)或者其任何部分(例如包括在任何系统中的处理器)来执行。
在操作702中,AR信使系统216基于来自第一计算设备的输入来生成增强现实内容项。增强现实内容项可以是以上关于图4所讨论的增强现实内容项。AR消息的发送者(例如,第一计算设备的用户)可以访问增强现实内容项以作为AR消息的一部分进行发送。在另一示例中,发送者可以经由第一计算设备的图形用户界面生成特定的增强现实内容项。在操作704中,AR信使系统216针对所生成的增强现实内容生成上下文触发器,该上下文触发器定义用于将所生成的增强现实内容项显示在第二计算设备的图形用户界面上的一组条件。在一些示例中,上下文触发器是基于经由第一计算设备的图形用户界面指定的用户输入而生成的。在操作706中,AR信使系统216基于该组条件中的至少一个条件被满足来使得所生成的增强现实内容项呈现在第二计算设备上。在一些示例中,第一计算设备是智能电话,并且第二计算设备是一对AR眼镜。
例如,定位触发器可以是地图上的物理地址。在一些示例中,定位触发器可以是地理坐标(例如,纬度和经度)、一般城市(例如,旧金山)或两条街道的交叉点。一旦AR眼镜佩戴者处于物理地址或在物理地址的预定义阈值内,则AR消息将被触发。时间段触发器可以是其间将触发AR消息的时间范围。例如,时间范围可以是9:00AM至10:30AM。时间范围可以与AR眼镜佩戴者(例如,AR消息的接收者)的时区相关联。在另一示例中,时间段触发器可以是特定的时间(例如,12:00PM)。视觉标记触发器可以是出现在AR眼镜佩戴者的视野中的对象。例如,视觉标记触发器可以是AR眼镜佩戴者的工作场所处的特定标志。一旦特定标志出现在AR眼镜佩戴者的视野中,则视觉标记触发器条件被满足,并且AR消息被覆盖到AR眼镜佩戴者的视野上。在一些示例中,视觉标记触发器可以是特定的颜色或纹理。
在一些示例中,AR信使系统216从第二计算设备捕获视频。例如,AR信使系统216捕获接收者的视野的视频。AR信使系统216确定一组条件中的至少一个条件已被满足。响应于确定一组条件中的至少一个条件已被满足,AR信使系统216在捕获视频期间利用增强现实内容项来修改视频。AR信使系统216捕获接收者对经修改的视频的反应,并且将接收者的反应和经修改的视频发送至第一计算设备。
发送者具有经由第一计算设备的图形用户界面为AR消息设置一个或更多个触发器的选项。例如,发送者可以设置定位触发器。为了确定定位触发器已被满足,AR信使系统216使用一个或更多个传感器来识别第二计算设备的当前定位,并且确定第二计算设备的当前定位与定位触发器匹配。在一些示例中,发送者可以包括由满足定位触发器条件的定位触发器定义的预定义物理地址周围的半径。例如,发送者可以将定位触发器定义成包括接收者的家的物理地址和围绕他们家的一英里的半径。因此,如果接收者在他们的住宅或在他们住宅的一英里内,则AR信使系统216确定定位触发器条件被满足。
如果发送者设置了时间段触发器,则为了确定时间段触发器已被满足,AR信使系统216在捕获视频期间识别当前时间,并且确定当前时间落入时间段触发器内。
如果发送者设置了视觉标记触发器,则为了确定视觉标记触发器已被满足,AR信使系统216在捕获期间识别视频中的对象,并且确定该对象与视觉标记触发器匹配。
接收者具有将其反应发送回给发送者的选项。例如,在AR信使系统216已经捕获了用户反应之后,AR信使系统216使得在第二计算设备的图形用户界面上呈现弹出窗口。图形用户界面可以显示表示用于将用户反应与经修改的视频一起发送至第一计算设备的选项的视觉提示。例如,视觉提示可以包括指示接收者想要发送他们的反应的大拇指朝上或指示接收者不想要发送他们的反应的大拇指朝下。如果AR信使系统216识别出接收者的大拇指朝上提示,则其将接收者的反应和经修改的视频发送至第一计算设备。如果AR信使系统216识别出大拇指朝下提示,则其不将接收者的反应和经修改的视频发送至第一计算设备。在一些示例中,视觉提示可以包括指示接收者需要说“是”来发送他们的反应的第一图形,以及指示接收者需要说“不”来避免发送他们的反应的第二图形。在一些示例中,接收者的反应被记录为音频文件。在一些示例中,接收者可以仅将他们的反应发送回给发送者,而不发送经修改的视频。
图8是根据一些示例实施方式的AR消息的图示。而AR信使系统216允许用户与AR消息内容进行本地交互,而不是将AR消息内容作为照片或视频的一部分来观看。项802是两个用户之间的消息线程的视图。响应于将消息808打开,向用户示出消息804的内容。消息804的内容包括AR消息内容。用户可以是AR眼镜的佩戴者并在AR眼镜上观看AR消息内容,如项806中所示的。
图9是根据一些示例实施方式的AR消息的图示。在一些示例中,AR信使系统216允许AR消息的发送者906在发送者906的计算设备上看到AR眼镜佩戴者正在看的内容(如项902中所示)。例如,发送者可以看到佩戴者在冬季期间正在海滩上并且错过了下雪天。发送者可以生成带有降雪的AR消息,并且将其发送给佩戴者。如项904中所示,佩戴者908的现实被降雪增强。
图10是根据一些示例实施方式的AR信使系统的图示。在项1002处,AR消息发送者发送基于条件的AR消息。在项1004处,该AR消息被触发。例如,预定义条件中的至少一个条件(例如,时间段触发器、定位触发器、视觉标记触发器)被匹配。在项1006处,AR眼镜佩戴者1008对AR消息作出反应,并且将其反应发送回给发送者。
图11至图18示出了根据一些示例实施方式的AR信使系统的操作。发送者Caleb正在使用AR信使系统216来增强AR眼镜佩戴者Steve的生日体验。由于发送者和接收者是亲密朋友,因此发送者能够使用AR信使系统216来提供进一步增强接收者的生日体验的基于上下文的AR消息。
图11至图14示出了根据一些示例实施方式的基于视觉标记触发器的AR消息。在图11中,接收者1104进入他的办公室中的微型厨房,并且看到海报1102。发送者知道接收者通过在办公室的微型厨房中拿杯咖啡来开始他的一天,并且指定海报1102作为视觉标记触发器。在图12中,一旦AR信使系统216识别到作为视觉标记触发器1202的海报1102,则接收者1204的眼镜闪烁。在图13中,响应于视觉标记触发器,AR信使系统216将AR生日蜡烛1302覆盖到接收者1304的AR眼镜上。接收者可听地对AR消息作出反应1304,并且在图14中,AR信使系统216显示带有语音提示的弹出窗口1402,该弹出窗口1402给予接收者将他的反应发送回给发送者的选项。如果接收者说“是”,则AR信使系统216会将他的反应发送回给发送者,并且如果接收者说“不”,则AR信使系统216不会将反应发送回给发送者。
图15至图18示出了根据一些示例实施方式的基于时间段触发器和定位触发器的AR消息。在图15中,接收者1504将离开他的办公室并且步行回家。发送者知道接收者在每晚美国东部时间6:00PM到美国东部时间8:00PM之间结束他的工作日。发送者还知道接收者家的物理定位,并且设置包括接收者的家的物理地址和接收者的家周围0.5英里的半径的定位触发器。在图16中,AR信使系统216识别出时间段触发器和定位触发器两者均已被满足,并且接收者1604的眼镜闪烁1602。在图17中,AR信使系统216在接收者1704的视野中覆盖AR烟花1702。接收者可听地作出反应1704,并且在图18中,AR信使系统216显示带有语音提示的弹出窗口1802,该弹出窗口1802给予接收者1804将他的反应发送回给发送者的选项。如果接收者说“是”,则AR信使系统216会将他的反应发送回发送者,并且如果接收者说“不”,则AR信使系统216不会将反应发送回给发送者。
图19是根据一些示例实施方式的用于生成基于上下文的AR消息的方法1900的流程图。下面描述的操作可以由AR信使系统216执行。尽管所描述的流程图可以将操作示出为顺序过程,但是操作中的很多操作可以并行或同时执行。另外,可以重新排列操作的顺序。当过程的操作完成时,该过程终止。过程可以对应于方法、程序、算法等。方法的操作可以全部或部分执行,可以与其他方法中的一些或所有操作结合执行,并且可以通过任何数目的不同系统(例如本文中描述的系统)或者其任何部分(例如包括在任何系统中的处理器)来执行。
在操作1902处,AR信使系统216接收指示对与接收方用户对应的用户界面元素的选择的第一用户输入。用户输入可以经由第一计算设备上的消息收发应用的用户界面来指定。例如,发送者可以选择与接收者对应的按钮。在操作1904处,AR信使系统216基于来自第一计算设备的第二用户输入来生成增强现实内容项。该增强现实内容项可以是以上关于图4讨论的增强现实内容项。AR消息的发送者(例如,第一计算设备的用户)可以访问要作为AR消息的一部分进行发送的增强现实内容项。在另一示例中,发送者可以经由第一计算设备的图形用户界面来生成特定的增强现实内容项。
在操作1906处,AR信使系统216针对所生成的增强现实内容项生成上下文触发器。上下文触发器定义用于将所生成的增强现实内容项呈现在第二计算设备上的一组条件。在一些示例中,上下文触发器是基于经由第一计算设备的图形用户界面指定的用户输入而生成的。在一些示例中,第一计算设备是智能电话,并且第二计算设备是图3中描述的一副AR眼镜。
在操作1908处,AR信使系统216生成包括第一计算设备处记录的音频数据的多媒体消息。例如,AR信使系统216可以使用第一计算设备的一个或更多个传感器来记录音频消息。在操作1910处,AR信使系统216检测该组条件中的至少一个条件被满足。在操作1912处,响应于检测到该组条件中的至少一个条件被满足,AR信使系统216使得在第二计算设备处呈现增强现实内容项和多媒体消息。例如,接收者可以使用第二计算设备(例如,AR眼镜),利用该第二计算设备,接收者可以通过目镜(eye piece)观看其周围环境。增强现实内容项和多媒体消息覆盖在接收者的视野上。AR信使系统216可以记录覆盖在接收者的视野上的增强现实内容项和多媒体消息的视频。
发送者具有经由第一计算设备的图形用户界面为AR消息设置一个或更多个触发器的选项。例如,发送者可以设置定位触发器。为了确定定位触发器已被满足,AR信使系统216使用一个或更多个传感器来识别第二计算设备的当前定位,并且确定第二计算设备的当前定位与定位触发器匹配。在一些示例中,发送者可以包括由满足定位触发器条件的定位触发器定义的预定义物理地址周围的半径。例如,发送者可以将定位触发器定义成包括接收者的家的物理地址和围绕他们家的一英里的半径。因此,如果接收者在他们的住宅或在他们住宅的一英里内,则AR信使系统216确定定位触发器条件被满足。在一些示例中,定位触发器与定位类别触发器相关联。例如,由发送者设置的定位触发器可以包括“餐馆”的类别。如果接收者靠近被分类为餐馆的任何定位,则定位触发器被满足。发送者可以经由第一计算设备的图形用户界面来定义定位类别触发器。AR信使系统216使用一个或更多个传感器来识别与第二计算设备的当前定位相关联的定位类别,并确定与当前定位相关联的定位类别与定位类别触发器匹配。
如果发送者设置了时间段触发器,则为了确定时间段触发器已被满足,AR信使系统216在捕获视频期间识别当前时间,并且确定当前时间落入时间段触发器内。
如果发送者设置了视觉标记触发器,则为了确定视觉标记触发器已被满足,AR信使系统216在捕获期间识别视频中的对象,并且确定该对象与视觉标记触发器匹配。视觉标记触发器可以与标记类别触发器相关联。例如,由发送者设置的视觉标记触发器可以包括“蒙娜丽莎画作”的类别。如果接收者在他或她的视野中看到蒙娜丽莎画作,则视觉标记触发器被满足。
在一些示例中,AR信使系统216确定该组条件中的至少一个条件将被满足的概率,并且将表示该概率的显示元素呈现在第一计算设备的图形用户界面上。例如,当发送者建立上下文触发器时,AR信使系统216可以计算上下文触发器实际上将被接收者触发的概率。如果发送者设置越灵活的定位触发器、时间触发器和视觉标记触发器,则上下文触发器将被触发的概率越高。如果发送者设置越限制性的定位触发器、时间触发器或视觉标记触发器,则概率越低。在一些示例中,显示元素随着发送者生成上下文触发器的每个条件而实时更新。显示元素可以是具有箭头的仪表图形,该仪表图形包括在一端的绿色部分、在中间的黄色部分和在相对端的红色部分。可以由指向绿色部分的箭头表示较高的概率。可以由指向红色部分的箭头表示较低的概率。尽管被描述为使用仪表图形,但是应当理解,可以使用表示概率范围的任何合适的图形。
在一些示例中,在生成上下文触发器时,AR信使系统216接收对限定上下文触发器的明确性级别的用户界面元素的选择。例如,发送者可以从第一计算设备选择切换按钮,该切换按钮限定发送者想要用于触发AR消息的条件达到的灵活程度或严格程度。基于该选择,AR信使系统216识别为了触发AR消息并修改第二计算设备上的视频(例如,多媒体消息)而必须检测的最少数目的条件。例如,如果发送者在切换按钮上选择“灵活”选项,则AR信使系统216可以识别为了触发AR消息而必须满足的至少一个条件。如果发送者在切换按钮上选择“明确”(“specific”)选项,则AR信使系统216可以识别为了触发AR消息而必须满足的最少三个条件。
在生成上下文触发器时,AR信使系统216可以访问来自第二计算设备的数据以进一步为接收用户提供更定制化的AR体验。例如,AR信使系统216可以访问第二计算设备上的日历数据或摄像装置相册。所访问的数据(例如,日历数据或摄像装置相册上的图像)可以用于限定一组条件中的至少一个条件。例如,发送者可以访问接收者的日历数据,以确定接收者将在那天去哪里以及他将在什么时间去那里。因此,发送者可以使用接收者的日历数据来定义定位触发器和时间触发器。在另一示例中,发送者可以访问接收者的摄像装置相册以确定接收者的家中的物品看起来如何。发送者可以查看接收者的冰箱的照片并且将接收者的冰箱用作视觉标记触发器。因此,当接收者利用第二计算设备在他视野中看到他的冰箱时,将触发AR消息。在一些示例中,AR信使系统216可能需要验证对第一计算设备的访问特权,以访问来自第二计算设备的数据。
图20至图24是根据一些示例实施方式的AR消息收发系统内的用户界面的图示。在项2002处,发送者经由第一计算设备的图形用户界面可以选择发送AR消息的接收方。在项2004处,发送者可以生成作为AR消息的一部分进行发送的增强内容现实项。在项2006处,发送者为AR消息创建上下文触发器。在项2006处,发送者还可以创建到所选择的接收方的音频消息。
在项2102处,发送者可以为AR消息选择两个条件:何时(例如,时间段触发器)和何处(例如,定位触发器)。在项2104处,发送者可以通过使用用户界面元素设置开始时间和结束时间来为AR消息生成时间段触发器。在项2106处,发送者可以通过输入物理地址来设置定位触发器。在项2202处,发送者可以选择记录音频消息的选项。在项2204处,发送者可以记录音频消息。发送者可以重新记录消息或者选择所记录的消息以发送给接收方。在项2206处,发送者可以使用切换界面元素来选择上下文触发器的粒度级别。例如,发送者可以选择“我是明确的”选项来指示必须满足上下文触发器的所有条件以使AR消息被触发。
在项2302处,发送者可以生成随后的AR消息并且选择随后的增强现实内容项。在项2304处,发送者可以选择使用视觉标记触发器。在项2306处,发送者可以选择要用作视觉标记触发器的视觉标记。在一些示例中,发送者可以从第一计算设备上载图像以用作视觉标记触发器。在项2402处,发送者可以为AR消息生成时间段触发器,并且在项2404处,发送者可以通过输入物理地址来生成定位触发器。在项2406处,发送者可以使用切换界面元素来选择上下文触发器的粒度级别。例如,发送者可以选择“我是灵活的”选项来指示必须满足上下文触发器的至少一个条件以使AR消息被触发。
机器架构
图25是机器2500的图解表示,在该机器2500中可以执行用于使机器2500执行本文中所讨论的方法中的任何一种或更多种方法的指令2510(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令2510可以使机器2500执行本文中所描述的方法中的任何一种或更多种方法。指令2510将通用的未编程的机器2500转换成被编程成以所描述的方式执行所描述和所示出的功能的特定机器2500。机器2500可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网的部署中,机器2500可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器2500可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定要由机器2500采取的动作的指令2510的任何机器。此外,虽然仅示出了单个机器2500,但是术语“机器”还应被认为包括单独地或联合地执行指令2500以执行本文中讨论的方法中的任何一种或更多种方法的机器的集合。例如,机器2500可以包括客户端设备102(删除)或者形成消息收发服务器系统108(删除)的一部分的多个服务器设备中的任何一个。在一些示例中,机器2500还可以包括客户端和服务器系统二者,其中在服务器侧执行特定方法或算法的某些操作,并且在客户端侧执行特定方法或算法的某些操作。
机器2500可以包括可以被配置成经由总线2540彼此通信的处理器2504、存储器2506和输入/输出I/O部件2502。在示例中,处理器2504(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如执行指令2510的处理器2508和处理器2512。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)。虽然图25示出了多处理器2504,但是机器2500可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
存储器2506包括主存储器2514、静态存储器2516和存储单元2518,其均可由处理器2504经由总线2540访问。主存储器2506、静态存储器2516和存储单元2518存储实施本文中描述的方法或功能中的任何一个或更多个方法或功能的指令2510。指令2510还可以在其被机器2500执行期间完全地或部分地驻留在主存储器2514内、在静态存储器2516内、在存储单元2518内的机器可读介质2520内、在处理器2504中的至少一个处理器内(例如,在处理器的高速缓存存储器内)、或其任何合适的组合。
I/O部件2502可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量值等的各种部件。包括在特定机器中的特定I/O部件2502将取决于机器的类型。例如,诸如移动电话的便携式机器可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解的是,I/O部件2502可以包括图25中未示出的许多其他部件。在各种示例中,I/O部件2502可以包括用户输出部件2526和用户输入部件2528。用户输出部件2526可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号生成器等。用户输入部件2528可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和力的触摸屏、或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在另外的示例中,I/O部件2502可以包括:生物计量部件2530、运动部件2532、环境部件2534、或位置部件2536以及各种各样的其他部件。例如,生物计量部件2530包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件2532包括加速度传感器部件(例如,加速计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
环境部件2534包括例如一个或更多个摄像装置(具有静止图像/照片和视频能力)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)、或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。
关于摄像装置,客户端设备102(删除)可以具有摄像装置系统,该摄像装置系统包括例如客户端设备102(删除)的前表面上的前置摄像装置和客户端设备102(删除)的后表面上的后置摄像装置。前置摄像装置可以例如用于捕获客户端设备102(删除)的用户的静止图像和视频(例如,“自拍”),然后可以利用上面所描述的增强数据(例如,过滤器)对所述静止图像和视频进行增强。后置摄像装置可以例如用于以更传统的摄像装置模式捕获静止图像和视频,其中这些图像类似地利用增强数据进行增强。除了前置和后置摄像装置之外,客户端设备102(删除)还可以包括用于捕获360°照片和视频的360°摄像装置。
此外,客户端设备102(删除)的摄像装置系统可以包括双后置摄像装置(例如,主摄像装置以及深度感测摄像装置),或者甚至在客户端设备102(删除)的前后侧上包括三重、四重或五重后置摄像装置配置。例如,这些多个摄像装置系统可以包括广角摄像装置、超广角摄像装置、长焦摄像装置、微距摄像装置和深度传感器。
位置部件2536包括定位传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以从其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用多种技术来实现通信。I/O部件2502还包括通信部件2538,通信部件2538可操作以经由相应的耦接或连接将机器2500耦接至网络2522或设备2524。例如,通信部件2538可以包括与网络2522对接的网络接口部件或另一合适的设备。在另外的示例中,通信部件2538可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,/>低功耗)、/>部件以及经由其他模态提供通信的其他通信部件。设备2524可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件2538可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件2538可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速反应(QR)码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(UltraCode)、UCC RSS-2D条形码的多维条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件2538得出各种信息,例如经由因特网协议(IP)地理定位得出的定位、经由信号三角测量得出的定位、经由检测可以指示特定定位的NFC信标信号得出的定位等。
各种存储器(例如,主存储器2514、静态存储器2516以及处理器2504的存储器)以及存储单元2518可以存储由本文中描述的方法或功能中的任何一种或更多种实施或使用的指令和数据结构(例如,软件)中的一组或更多组。这些指令(例如,指令2510)在由处理器2504执行时使各种操作实现所公开的示例。
可以经由网络接口设备(例如,通信部件2538中包括的网络接口部件),使用传输介质并且使用若干公知的传输协议中的任何一种传输协议(例如,超文本传输协议(HTTP)),通过网络2522来发送或接收指令2510。类似地,可以使用传输介质经由到设备2524的耦接(例如,对等耦接)来发送或接收指令2510。
软件架构
图26是示出可以安装在本文中所描述的设备中的任何一个或更多个上的软件架构2604的框图2600。软件架构2604由诸如包括处理器2620、存储器2626和I/O部件2638的机器2602的硬件支持。在该示例中,可以将软件架构2604概念化为层的堆栈,在该层的堆栈中,每个层提供特定的功能。软件架构2604包括诸如操作系统2612、库2610、框架2608和应用2606的层。在操作上,应用2606通过软件堆栈来激发API调用2650,并且响应于API调用2650接收消息2652。
操作系统2612管理硬件资源并提供公共服务。操作系统2612包括例如内核2614、服务2616和驱动器2622。内核2614用作硬件与其他软件层之间的抽象层。例如,内核2614提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置等功能。服务2616可以针对其他软件层提供其他公共服务。驱动器2622负责控制底层硬件或与底层硬件接口。例如,驱动器2622可以包括显示驱动器、摄像装置驱动器、或低能量驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、/>驱动器、音频驱动器、电力管理驱动器等。
库2610提供由应用2606使用的共同低级基础设施。库2610可以包括系统库2618(例如,C标准库),系统库2618提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。另外,库2610可以包括API库2624,例如媒体库(例如,用于支持各种媒体格式的呈现和操操纵的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)进行渲染的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供web浏览功能的WebKit)等。库2610还可以包括多种其他库2628,以向应用2606提供许多其他API。
框架2608提供由应用2606使用的共同高级基础设施。例如,框架2608提供各种图形用户接口(GUI)功能、高级别资源管理和高级别定位服务。框架2608可以提供可以由应用2606使用的广泛的其他API,其中的一些API可以特定于特定的操作系统或平台。
在示例中,应用2606可以包括家庭应用2636、联系人应用2630、浏览器应用2632、书籍阅读器应用2634、定位应用2642、媒体应用2644、消息收发应用2646、游戏应用2648和诸如第三方应用2640的种类繁多的其他应用。应用2606是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式构造的应用2606中的一个或更多个,编程语言例如为面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C语言或汇编语言)。在特定示例中,第三方应用2640(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在例如IOSTM、ANDROIDTM、Phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用2640可以激发由操作系统2612提供的API调用2650以促进本文中描述的功能。
术语表
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以利于这些指令的通信。可以经由网络接口设备使用传输介质通过网络发送或接收指令。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另外类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“部件”是指设备、物理实体或具有以下边界的逻辑,该边界由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义。部件可以经由它们的接口与其他部件对接以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元,并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,实施在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实现方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置成用于执行如本文中描述的某些操作的硬件部件。也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,硬件部件就变成被独特地定制成执行所配置的功能的特定机器(或机器的特定部件),而不再是通用处理器。应当理解,可以出于成本和时间考虑来决定是机械地在专用且永久配置的电路中实现硬件部件还是在临时配置(例如,通过软件配置)的电路中实现硬件部件。因此,短语“硬件部件”(或“硬件实现的部件”)应当被理解为包含有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的示例,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置而成为专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处被配置为各自不同的专用处理器(例如,包括不同的硬件部件)。因此,软件对一个或多个特定处理器进行配置以例如在一个时刻构成特定硬件部件并且在不同时刻构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中(例如,通过适当的电路和总线)进行信号传输来实现通信。在其中多个硬件部件在不同时间处被配置或被实例化的示例中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器设备以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的集合)。在本文中描述的示例方法的各种操作可以至少部分地由临时地配置(例如,通过软件)或永久地配置成执行相关操作的一个或更多个处理器来执行。无论是临时配置还是永久配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,在本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或者处理器实现的部件执行。此外,一个或更多个处理器还可以操作成支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是跨多个机器部署。在一些示例中,处理器或处理器实现的部件可以位于单个地理定位中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例中,处理器或处理器实现的部件可以跨若干地理定位而分布。
“计算机可读存储介质”是指机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且可以在本公开内容中可互换地使用。
“短暂消息”是指可以在时间有限的持续时间内访问的消息。电子邮件消息可以是文本、图像、视频等。短暂消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或者由接收者指定的设置。不管设置技术如何,消息都是暂态的。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的缓存和服务器)。因此,术语应视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可互换地使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,其中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且“信号介质”包括数字或模拟通信信号或其他无形介质以便于软件或数据的通信。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特性中的一个或更多个特性以对信号中的信息进行编码的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的事物并且可以在本公开内容中互换使用。
Claims (20)
1.一种方法,包括:
接收第一用户输入,所述第一用户输入指示对与接收方用户对应的用户界面元素的选择,所述用户输入经由第一计算设备上的消息收发应用的用户界面来指定;
基于来自所述第一计算设备的第二用户输入来生成增强现实内容项;
针对所生成的增强现实内容项生成上下文触发器,所述上下文触发器定义用于将所生成的增强现实内容项呈现在第二计算设备上的一组条件;
生成包括所述第一计算设备处记录的音频数据的多媒体消息;
检测所述一组条件中的至少一个条件被满足;以及
响应于检测到所述一组条件中的至少一个条件被满足,使得所述增强现实内容项和所述多媒体消息呈现在所述第二计算设备处。
2.根据权利要求1所述的方法,还包括:
确定所述一组条件中的至少一个条件将被满足的概率;以及
使得在所述第一计算设备的用户界面上呈现表示所述概率的显示元素。
3.根据权利要求1所述的方法,其中,生成上下文触发器还包括:
从所述第一计算设备接收对定义所述上下文触发器的明确性级别的用户界面元素的选择;以及
基于所述选择,识别要被检测到以修改所述多媒体消息的所述一组条件中的最小数目的条件。
4.根据权利要求1所述的方法,其中,生成上下文触发器还包括:
访问所述接收方用户的日历数据;以及
使用所述日历数据来定义所述一组条件中的至少一个条件。
5.根据权利要求1所述的方法,其中,生成上下文触发器还包括:
访问存储在所述第二计算设备上的图像;以及
使用所述图像来定义所述一组条件中的至少一个条件。
6.根据权利要求1所述的方法,其中,所述一组条件包括以下中的一个或更多个:时间段触发器、定位触发器或视觉标记触发器。
7.根据权利要求6所述的方法,其中,检测所述一组条件中的至少一个条件被满足还包括:
使用一个或更多个传感器识别所述第二计算设备的当前位置;以及
确定所述第二计算设备的当前位置与所述定位触发器匹配。
8.根据权利要求6所述的方法,其中,检测所述一组条件中的至少一个条件被满足还包括:
识别捕获所述多媒体消息期间的当前时间;以及
确定所述当前时间落入所述时间段触发器内。
9.根据权利要求6所述的方法,其中,所述定位触发器与定位类别触发器相关联,并且所述视觉标记触发器与标记类别触发器相关联。
10.根据权利要求9的方法,其中,检测所述一组条件中的至少一个条件被满足还包括:
识别所述至少一个条件的类别;以及
确定所述至少一个条件的类别与所述类别触发器匹配。
11.一种系统,包括:
处理器;以及
存储器,其存储指令,所述指令在由所述处理器执行时将所述系统配置成执行操作,所述操作包括:
接收第一用户输入,所述第一用户输入指示对与接收方用户对应的用户界面元素的选择,所述用户输入经由第一计算设备上的消息收发应用的用户界面来指定;
基于来自所述第一计算设备的第二用户输入来生成增强现实内容项;
针对所生成的增强现实内容项生成上下文触发器,所述上下文触发器定义用于将所生成的增强现实内容项呈现在第二计算设备上的一组条件;
生成包括所述第一计算设备处记录的音频数据的多媒体消息;
检测所述一组条件中的至少一个条件被满足;以及
响应于检测到所述一组条件中的至少一个条件被满足,使得所述增强现实内容项和所述多媒体消息呈现在所述第二计算设备处。
12.根据权利要求11所述的系统,其中,所述操作还包括:
确定所述一组条件中的至少一个条件将被满足的概率;以及
使得在所述第一计算设备的用户界面上呈现表示所述概率的显示元素。
13.根据权利要求11所述的系统,其中,生成上下文触发器还包括:
从所述第一计算设备接收对定义所述上下文触发器的明确性级别的用户界面元素的选择;以及
基于所述选择,识别要被检测到以修改所述多媒体消息的所述一组条件中的最小数目的条件。
14.根据权利要求11所述的系统,其中,生成所述上下文触发器还包括:
访问所述接收方用户的日历数据;以及
使用所述日历数据来定义所述一组条件中的至少一个条件。
15.根据权利要求11所述的系统,其中,生成上下文触发器还包括:
访问存储在所述第二计算设备上的图像;以及
使用所述图像来定义所述一组条件中的至少一个条件。
16.根据权利要求11所述的系统,其中,所述一组条件包括以下中的一个或更多个:时间段触发器、定位触发器或视觉标记触发器。
17.一种非暂态计算机可读存储介质,包括指令,所述指令在由计算机处理时将所述计算机配置成执行操作,所述操作包括:
接收第一用户输入,所述第一用户输入指示对与接收方用户对应的用户界面元素的选择,所述用户输入经由第一计算设备上的消息收发应用的用户界面来指定;
基于来自所述第一计算设备的第二用户输入来生成增强现实内容项;
针对所生成的增强现实内容项生成上下文触发器,所述上下文触发器定义用于将所生成的增强现实内容项呈现在第二计算设备上的一组条件;
生成包括所述第一计算设备处记录的音频数据的多媒体消息;
检测所述一组条件中的至少一个条件被满足;以及
响应于检测到所述一组条件中的至少一个条件被满足,使得所述增强现实内容项和所述多媒体消息呈现在所述第二计算设备处。
18.根据权利要求17所述的非暂态计算机可读存储介质,其中,所述操作还包括:
确定所述一组条件中的至少一个条件将被满足的概率;以及
使得在所述第一计算设备的用户界面上呈现表示所述概率的显示元素。
19.根据权利要求17所述的非暂态计算机可读存储介质,其中,生成所述上下文触发器还包括:
从所述第一计算设备接收对定义所述上下文触发器的明确性级别的用户界面元素的选择;以及
基于所述选择,识别要被检测以修改所述多媒体消息的所述一组条件中的最小数目的条件。
20.根据权利要求17所述的非暂态计算机可读存储介质,其中,生成所述上下文触发器还包括:
访问所述接收方用户的日历数据;以及
使用所述日历数据来定义所述一组条件中的至少一个条件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062706899P | 2020-09-16 | 2020-09-16 | |
US62/706,899 | 2020-09-16 | ||
PCT/US2021/050445 WO2022060829A1 (en) | 2020-09-16 | 2021-09-15 | Context triggered augmented reality |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116171566A true CN116171566A (zh) | 2023-05-26 |
Family
ID=78294057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180062937.XA Pending CN116171566A (zh) | 2020-09-16 | 2021-09-15 | 上下文触发的增强现实 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11880946B2 (zh) |
EP (1) | EP4214901A1 (zh) |
KR (1) | KR20230066448A (zh) |
CN (1) | CN116171566A (zh) |
WO (1) | WO2022060829A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11611608B1 (en) | 2019-07-19 | 2023-03-21 | Snap Inc. | On-demand camera sharing over a network |
EP4211887A1 (en) * | 2020-09-09 | 2023-07-19 | Snap Inc. | Augmented reality messenger system |
US11360733B2 (en) | 2020-09-10 | 2022-06-14 | Snap Inc. | Colocated shared augmented reality without shared backend |
WO2022060829A1 (en) | 2020-09-16 | 2022-03-24 | Snap Inc. | Context triggered augmented reality |
US11763818B2 (en) * | 2020-10-14 | 2023-09-19 | Snap Inc. | Synchronous audio and text generation |
US11949527B2 (en) | 2022-04-25 | 2024-04-02 | Snap Inc. | Shared augmented reality experience in video chat |
US20230410440A1 (en) * | 2022-06-21 | 2023-12-21 | Snap Inc. | Integrating augmented reality experiences with other components |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6512919B2 (en) | 1998-12-14 | 2003-01-28 | Fujitsu Limited | Electronic shopping system utilizing a program downloadable wireless videophone |
US8412773B1 (en) | 2006-06-28 | 2013-04-02 | Insors Integrated Communications | Methods, systems and program products for initiating a process on data network |
US8769396B2 (en) | 2009-06-05 | 2014-07-01 | Microsoft Corporation | Calibration and annotation of video content |
AU2011204946C1 (en) | 2011-07-22 | 2012-07-26 | Microsoft Technology Licensing, Llc | Automatic text scrolling on a head-mounted display |
US9430876B1 (en) * | 2012-05-10 | 2016-08-30 | Aurasma Limited | Intelligent method of determining trigger items in augmented reality environments |
US9292758B2 (en) | 2012-05-14 | 2016-03-22 | Sphero, Inc. | Augmentation of elements in data content |
US9560223B2 (en) | 2012-11-05 | 2017-01-31 | Peerparazzi LLC | Personal photographer mobile application |
US9088625B1 (en) | 2012-12-12 | 2015-07-21 | Google Inc. | Obtaining an image for a place of interest |
US20140178029A1 (en) | 2012-12-26 | 2014-06-26 | Ali Fazal Raheman | Novel Augmented Reality Kiosks |
US20140245335A1 (en) | 2013-02-25 | 2014-08-28 | Comcast Cable Communications, Llc | Environment Object Recognition |
EP2992692B1 (en) | 2013-05-04 | 2018-08-29 | DECHARMS, Christopher | Mobile security technology |
US9383819B2 (en) | 2013-06-03 | 2016-07-05 | Daqri, Llc | Manipulation of virtual object in augmented reality via intent |
US9148702B1 (en) | 2013-09-19 | 2015-09-29 | Google Inc. | Extending playing time of a video playing session by adding an increment of time to the video playing session after initiation of the video playing session |
US9830567B2 (en) | 2013-10-25 | 2017-11-28 | Location Labs, Inc. | Task management system and method |
US20150254618A1 (en) | 2014-03-07 | 2015-09-10 | Krishna Shivaram | Method for Facilitating Live Stream Feeds of Remote Locations, Events or Products, in a Social, Virtual Travel, or Business Setting |
US10558338B2 (en) | 2014-05-28 | 2020-02-11 | Facebook, Inc. | Systems and methods for providing responses to and drawings for media content |
US10432996B2 (en) | 2014-11-07 | 2019-10-01 | Kube-It Inc. | Matching data objects to video content |
US20190052925A1 (en) | 2014-11-07 | 2019-02-14 | Kube-It Inc. | Method and System for Recognizing, Analyzing, and Reporting on Subjects in Videos without Interrupting Video Play |
GB2544885A (en) | 2015-10-30 | 2017-05-31 | 2Mee Ltd | Communication system and method |
CN109496331B (zh) | 2016-05-20 | 2022-06-21 | 奇跃公司 | 用户界面菜单的情景感知 |
US10515393B2 (en) | 2016-06-30 | 2019-12-24 | Paypal, Inc. | Image data detection for micro-expression analysis and targeted data services |
US20180089880A1 (en) | 2016-09-23 | 2018-03-29 | Apple Inc. | Transmission of avatar data |
US10332317B2 (en) | 2016-10-25 | 2019-06-25 | Microsoft Technology Licensing, Llc | Virtual reality and cross-device experiences |
US10762675B2 (en) | 2016-12-12 | 2020-09-01 | Facebook, Inc. | Systems and methods for interactive broadcasting |
US10452226B2 (en) | 2017-03-15 | 2019-10-22 | Facebook, Inc. | Visual editor for designing augmented-reality effects |
US10740804B2 (en) | 2017-07-28 | 2020-08-11 | Magical Technologies, Llc | Systems, methods and apparatuses of seamless integration of augmented, alternate, virtual, and/or mixed realities with physical realities for enhancement of web, mobile and/or other digital experiences |
US11176484B1 (en) | 2017-09-05 | 2021-11-16 | Amazon Technologies, Inc. | Artificial intelligence system for modeling emotions elicited by videos |
EP3682404A1 (en) | 2017-09-11 | 2020-07-22 | NIKE Innovate C.V. | Apparatus, system, and method for target search and using geocaching |
EP3682398A1 (en) | 2017-09-12 | 2020-07-22 | Nike Innovate C.V. | Multi-factor authentication and post-authentication processing system |
WO2019055473A1 (en) | 2017-09-12 | 2019-03-21 | Nike Innovate C.V. | MULTI-FACTOR AUTHENTICATION AND POST-AUTHENTICATION PROCESSING SYSTEM |
US11249714B2 (en) * | 2017-09-13 | 2022-02-15 | Magical Technologies, Llc | Systems and methods of shareable virtual objects and virtual objects as message objects to facilitate communications sessions in an augmented reality environment |
US11132703B2 (en) | 2017-09-15 | 2021-09-28 | Eric Koenig | Platform for providing augmented reality based advertisements |
WO2019079826A1 (en) * | 2017-10-22 | 2019-04-25 | Magical Technologies, Llc | DIGITAL ASSISTANT SYSTEMS, METHODS AND APPARATUSES IN AN INCREASED REALITY ENVIRONMENT AND LOCAL DETERMINATION OF VIRTUAL OBJECT PLACEMENT AND SINGLE OR MULTIDIRECTIONAL OBJECTIVES AS GATEWAYS BETWEEN A PHYSICAL WORLD AND A DIGITAL WORLD COMPONENT OF THE SAME ENVIRONMENT OF INCREASED REALITY |
US20190147481A1 (en) | 2017-11-10 | 2019-05-16 | Vikalp Shrivastava | System and method for secure delivery and payment of a product or a service |
US10862838B1 (en) | 2017-12-12 | 2020-12-08 | Amazon Technologies, Inc. | Detecting whether a message is addressed to an intended recipient |
US20190251750A1 (en) | 2018-02-09 | 2019-08-15 | Tsunami VR, Inc. | Systems and methods for using a virtual reality device to emulate user experience of an augmented reality device |
US10771852B2 (en) | 2018-06-22 | 2020-09-08 | At&T Intellectual Property I, L.P. | On-demand live media content streaming |
WO2020018431A1 (en) * | 2018-07-15 | 2020-01-23 | Magical Technologies, Llc | Systems and methods to administer a chat session in an augmented reality environment |
US10607083B2 (en) * | 2018-07-19 | 2020-03-31 | Microsoft Technology Licensing, Llc | Selectively alerting users of real objects in a virtual environment |
US11103773B2 (en) * | 2018-07-27 | 2021-08-31 | Yogesh Rathod | Displaying virtual objects based on recognition of real world object and identification of real world object associated location or geofence |
US10854004B2 (en) | 2018-08-24 | 2020-12-01 | Facebook, Inc. | Multi-device mapping and collaboration in augmented-reality environments |
US11412298B1 (en) | 2018-10-02 | 2022-08-09 | Wells Fargo Bank, N.A. | Systems and methods of interactive goal setting tools |
AU2020209737A1 (en) | 2019-01-14 | 2021-07-29 | 5 Health Inc. | Methods and systems for managing medical information |
US11611608B1 (en) | 2019-07-19 | 2023-03-21 | Snap Inc. | On-demand camera sharing over a network |
US20210319514A1 (en) | 2020-04-08 | 2021-10-14 | Aubrey Jones | System and computer-implemented method for creating digital pathways between financial service providers and consumers |
EP4211887A1 (en) | 2020-09-09 | 2023-07-19 | Snap Inc. | Augmented reality messenger system |
WO2022060829A1 (en) | 2020-09-16 | 2022-03-24 | Snap Inc. | Context triggered augmented reality |
KR20230062875A (ko) | 2020-09-16 | 2023-05-09 | 스냅 인코포레이티드 | 증강 현실 자동 반응들 |
US20220172239A1 (en) | 2020-11-30 | 2022-06-02 | Snap Inc. | Reward-based real-time communication session |
US11461986B2 (en) | 2021-01-27 | 2022-10-04 | Qualcomm Incorporated | Context-aware extended reality systems |
-
2021
- 2021-09-15 WO PCT/US2021/050445 patent/WO2022060829A1/en unknown
- 2021-09-15 US US17/476,085 patent/US11880946B2/en active Active
- 2021-09-15 CN CN202180062937.XA patent/CN116171566A/zh active Pending
- 2021-09-15 EP EP21794676.3A patent/EP4214901A1/en active Pending
- 2021-09-15 KR KR1020237012471A patent/KR20230066448A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022060829A1 (en) | 2022-03-24 |
KR20230066448A (ko) | 2023-05-15 |
US11880946B2 (en) | 2024-01-23 |
US20220084295A1 (en) | 2022-03-17 |
EP4214901A1 (en) | 2023-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117043718A (zh) | 激活操作电子镜像设备的免提模式 | |
CN115552403B (zh) | 用于媒体内容项的私人集合的邀请媒体覆盖物 | |
CN116171566A (zh) | 上下文触发的增强现实 | |
CN117043719A (zh) | 具有免提模式的镜像设备 | |
CN116134797A (zh) | 增强现实自动反应 | |
CN116076063A (zh) | 增强现实信使系统 | |
CN116783575A (zh) | 媒体内容检测和管理 | |
CN116438788A (zh) | 媒体内容回放和评论管理 | |
CN116745743A (zh) | 具有触觉反馈响应的通信界面 | |
CN115697508A (zh) | 游戏结果覆盖系统 | |
CN116685938A (zh) | 眼镜设备上的3d绘制 | |
CN116349215A (zh) | 利用微声音剪辑来聊天 | |
CN116685941A (zh) | 具有触觉反馈增强的媒体内容项 | |
CN116710885A (zh) | 具有触觉反馈响应的通信界面 | |
CN116235194A (zh) | 媒体内容传输和管理 | |
CN116724314A (zh) | 生成式对抗网络操纵的图像效果 | |
CN116648687A (zh) | 具有触觉反馈响应的电子通信界面 | |
KR20230019927A (ko) | 컨텍스트 전송 메뉴 | |
CN116670635A (zh) | 具有触觉反馈的实时视频通信界面 | |
CN117120960A (zh) | 具有触觉反馈响应和音频反馈响应的界面 | |
CN117120959A (zh) | 具有触觉反馈响应和音频反馈响应的界面 | |
CN117157609A (zh) | 具有触觉反馈响应的虚拟现实界面 | |
CN117337430A (zh) | 消息系统内根据扫描操作的快捷方式 | |
CN116648895A (zh) | 用于捕获多个视频片段的摄像装置模式 | |
KR20230022234A (ko) | 컨텍스트 액션 바 |
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 |