CN116582634A - 利用增强现实数据信道实现共享增强现实视频通话 - Google Patents

利用增强现实数据信道实现共享增强现实视频通话 Download PDF

Info

Publication number
CN116582634A
CN116582634A CN202310143210.5A CN202310143210A CN116582634A CN 116582634 A CN116582634 A CN 116582634A CN 202310143210 A CN202310143210 A CN 202310143210A CN 116582634 A CN116582634 A CN 116582634A
Authority
CN
China
Prior art keywords
video
augmented reality
data
video call
client device
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
CN202310143210.5A
Other languages
English (en)
Inventor
乔纳森·迈克·谢尔曼
迈克·斯莱特
汉内斯·吕克·赫尔曼·维林德
马库斯·维尼修斯·巴博萨达席尔瓦
布莱特·霍布斯
巴勃罗·戈麦斯·巴桑塔
艾哈迈德·谢哈塔
奥列格·波格丹诺夫
萨蒂什·库马尔·斯里尼瓦桑
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.)
Meta Platforms Inc
Original Assignee
Meta Platforms 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 Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN116582634A publication Critical patent/CN116582634A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • 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
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-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/10Multimedia information
    • 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/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Abstract

公开了用于利用增强现实(AR)数据信道来实现共享增强现实视频通话的系统、方法、客户端设备和非暂态计算机可读介质,共享增强现实视频通话有利于在视频通话期间共享AR元素以及与AR元素的交互。例如,所公开的系统可以在多个客户端设备之间建立视频通话,该视频通话包括视频(和音频)数据信道和AR数据信道。此外,在一个或多个实施例中,所公开的系统使得多个客户端设备中的一个客户端设备能够通过AR数据信道发送AR数据,以使得在视频通话期间另一客户端设备在由该另一客户端设备采集的视频上渲染AR元素。实际上,所公开的系统可以在视频通话期间利用AR数据信道实现AR环境、AR效果、基于AR的活动、和/或单独的AR元素。

Description

利用增强现实数据信道实现共享增强现实视频通话
相关申请的交叉引用
本申请要求于2022年2月9日提交的第17/650484号美国非临时申请的优先权的权益,该申请的内容通过引用全部并入本文。
技术领域
本公开总体上涉及视频通话系统。
背景技术
本公开总体上涉及视频通话系统。视频通话系统允许多个用户经由多个计算设备(例如,智能手机、笔记本电脑、平板电脑、台式计算机)、通过使用音频和视频输入(例如,内置数字摄像头、数字网络摄像头)进行电子通信。实际上,近年来通过视频通话和视频会议的电子通信有所增加,视频通话和视频会议使多个用户能够经由计算设备进行通信,以彼此共享用户的视频和音频这两者。然而,传统视频通话系统通常局限于非交互式视频通话,而非交互式视频通话会简单地且严格地使多个用户设备能够在这些用户设备之间呈现并观看所采集的视频。
发明内容
本公开的实施例通过利用专用的增强现实数据信道而实现共享增强现实视频通话的系统、非暂态计算机可读介质和方法,来提供多种优势和/或解决本领域中的前述或其它问题中的一个或多个,这有利于在视频通话期间共享增强现实元素并与增强现实元素交互。例如,所公开的系统可以在多个客户端设备之间建立包括视频(和音频)数据信道和AR数据信道的视频通话。此外,在一个或多个实施例中,所公开的系统使多个客户端设备中的一个客户端设备能够经由AR数据信道发送AR数据(例如,AR元素标识符(也称为AR标识符)、AR元素信息(也称为AR元素)、逻辑数据对象、对象向量、参与者标识符),以使得另一客户端设备在该另一客户端设备所采集的视频上渲染AR元素。
例如,所公开的系统可以在视频通话期间实现对AR环境场景(和效果)进行共享的共享AR环境(和/或AR效果)。除了视频通话内的AR环境场景之外,所公开的系统还可以有利于AR对象(例如,AR环境场景内的AR对象)在参与视频通话的多个客户端设备的所采集的视频之间的过渡(以及与多个AR对象的交互)。此外,所公开的系统还可以利用AR对象在多个客户端设备的所采集的视频之间的过渡(以及与AR对象的交互),来实现视频通话中的多个参与客户端设备之间的基于AR的游戏。
在随后的描述中概述本公开一个或多个实施例的附加特征和优势,这些附加特征和优势将部分地从该描述中显而易见,或者可以通过对这些示例实施例进行实践而获知。
附图说明
参考附图对具体实施方式进行描述,在附图中:
图1示出了根据一个或多个实施方式的共享AR视频通话系统可在其中运行的示例环境。
图2示出了根据一个或多个实施方式的共享AR视频通话系统在多个参与者设备之间建立共享AR视频通话从而有助于该共享AR视频通话的示例。
图3示出了根据一个或多个实施方式的、在视频通话期间共享AR视频通话系统建立AR数据信道、以及多个客户端设备传送AR数据的流程图。
图4示出了根据一个或多个实施方式的共享AR视频通话系统在多个客户端设备之间建立具有共享AR环境场景的视频通话。
图5示出了根据一个或多个实施方式的、在视频通话期间共享AR视频通话系统使AR元素能够从一个客户端设备移动到另一个客户端设备。
图6A至图6D示出了根据一个或多个实施方式的、共享AR视频通话系统使用AR数据信道在视频通话中的多个客户端设备之间实现了基于AR的活动。
图7示出了根据一个或多个实施方式的、共享AR视频通话系统在视频通话中的多个客户端设备之间实现了共享的AR效果。
图8示出了根据一个或多个实施方式的用于在视频通话内渲染AR元素的一系列动作的流程图。
图9示出了根据一个或多个实施方式的用于建立共享增强现实视频通话的一系列动作的流程图。
图10示出了根据一个或多个实施方式的示例计算设备的框图。
图11示出了根据一个或多个实施方式的具有共享增强现实视频通话系统的联网系统的示例环境。
图12示出了根据一个或多个实施方式的示例社交图谱。
具体实施方式
本公开描述了共享增强现实(augmented reality,AR)视频通话系统的一个或多个实施例,该AR视频通话系统建立增强现实数据信道以实现共享增强现实视频通话,该共享增强现实视频通话有助于在视频通话期间在多个客户端设备之间共享增强现实元素以及与增强现实元素进行交互。特别地,在一个或多个实施例中,共享AR视频通话系统建立用于多个客户端设备之间的视频通话的视频数据信道和AR数据信道。实际上,在一个或多个实施例中,共享AR视频通话系统使正在进行视频通话的多个客户端设备能够在视频通话期间通过AR数据信道在多个客户端设备之间发送(或共享)AR数据,使得该视频通话有助于共享AR元素和/或交互式的AR对象实现共享AR环境场景、AR效果和/或基于AR的游戏。
在一个或多个实施例中,共享AR视频通话系统建立(或利用)用于共享AR视频通话的多对等(multi-peer)应用程序编程接口(application programming interface,API),该多对等应用程序编程接口使多个客户端设备能够在视频通话期间发送(和接收)除视频和音频数据之外的AR数据。例如,共享AR视频通话系统使多个参与者客户端设备(也称为参与者设备)能够通过AR数据信道发送(和接收)AR标识符,该AR标识符提供用于使得在客户端设备的所采集的视频内渲染一个或多个AR元素的指令(或其他信息)。在一些情况下,共享AR视频通话系统使多个参与者客户端设备能够发送(和接收)AR对象向量数据,该AR对象向量数据用于提供被用于确定AR对象在其正在接收客户端设备的所采集视频内被渲染时的定位和/或其它空间信息的指令(或其它信息)。此外,共享AR视频通话系统还使多个参与者客户端设备能够发送(和接收)AR数据,该AR数据例如但不限于,用于指定哪个视频通话参与者设备渲染特定AR元素的标识符、和/或针对特定AR效果指定主参与者客户端设备(例如,生日效果所针对的主参与者客户端设备)的选择符。
在一些实施例中,共享AR视频通话系统建立使多个客户端设备能够在视频通话期间发送(和接收)AR数据的共享AR视频通话,以在该视频通话中创建或渲染共享AR环境场景。例如,共享AR视频通话系统可以使多个参与者客户端设备能够发送(和接收)AR标识符数据,使得该多个参与者客户端设备在进行视频通话时均渲染共享AR环境场景。例如,在视频通话期间,当参与者客户端设备发起基于AR的环境场景时,该参与者客户端设备向该视频通话中的一个或多个其他客户端设备发送AR数据。然后,该一个或多个其他接收客户端设备利用该AR数据在它们各自的所采集的视频内渲染基于AR的环境场景。如此一来,视频通话中的多个参与客户端设备渲染一AR环境场景,该AR环境场景结合在该视频通话的每个单独的参与客户端设备(也称为参与者设备)的视频内。
在一些情况下,共享AR视频通话系统还使多个参与者客户端设备能够与AR环境场景交互和/或与AR环境场景中的对象交互,使得在各个参与客户端设备中的一个或多个参与客户端设备的AR环境场景内反映这些交互。例如,一经与第一参与者客户端设备的所采集的视频中的AR元素交互,第一参与者客户端设备可以渲染修改后的AR元素(由于交互),并且还向视频通话中的第二参与客户端设备发送用于与AR元素交互的AR数据。当第二参与客户端设备通过视频通话中的AR数据信道接收到该AR数据时,该第二参与客户端设备可以渲染考虑了发生在第一参与客户端设备上的交互的、修改后的AR元素。
另外,在一些实施例中,共享AR视频通话系统使AR对象能够在多个参与者客户端设备之间的视频通话的AR环境场景之中移动或过渡。例如,第一参与者客户端设备可以使用AR对象在第一采集视频中渲染第一采集视频。然后,第一参与者客户端设备可以检测到第一采集视频中的AR对象正向第一采集视频的观看画面之外的位置移动。第一参与者客户端设备可以经由AR数据信道发送AR数据,该AR数据包括AR对象的信息、AR对象的对象向量、以及AR对象的参与者标识符(例如,用于指示哪个参与者客户端设备将渲染AR对象)。然后,视频通话中的第二参与者客户端设备可以通过AR数据信道接收AR数据,以利用AR对象的信息、AR对象的对象向量以及AR对象的参与者标识符在第二参与者客户端设备的第二采集视频内渲染AR对象。
此外,在一些实施例中,共享AR视频通话系统使多个参与者客户端设备能够在视频通话期间与AR活动交互。例如,多个参与者客户端设备在视频通话期间通过利用AR数据信道(由共享AR视频通话系统建立的),渲染多个客户端设备之间的用于一个或多个AR活动(例如,基于AR的游戏)的多个AR对象,并与这些AR对象进行交互。作为一示例,第一参与者客户端设备可以在第一参与者客户端设备的第一视频内渲染作为AR游戏的一部分的AR对象(例如,冰球、乒乓球)。然后,在一个或多个实施例中,第一参与者客户端设备可以检测到对AR对象进行修改(例如,移动冰球,移动乒乓球)的用户交互,并且向第二参与者客户端设备发送用于修改后的AR对象的AR数据。随后,第二参与者客户端设备可以检测到AR对象正向由第二参与者客户端设备采集的第二视频过渡,并且可以在第二参与者客户端设备内渲染该AR对象(例如,接收朝向第二参与者设备的用户击打的冰球,接收朝向第二参与者设备的用户击打的乒乓球)。实际上,在视频通话期间,第一参与者设备和第二参与者设备可以在这些设备之间移动AR对象,以与基于AR的游戏交互。
另外,共享AR视频通话系统可以使多个参与者客户端设备能够向视频通话中的其他参与者客户端设备发送(和渲染)AR效果。例如,第一参与者客户端设备可以接收对AR效果的选择,并经由AR数据信道向第二参与者客户端设备发送用于该AR效果的AR标识符数据。然后,第二参与者设备可以接收用于该AR效果的AR标识符数据,并且在第二参与者设备的第二采集视频上渲染AR效果。特别地,在一个或多个实施例中,第二参与者设备可以渲染用于与第二采集视频中所描绘的用户交互的AR效果(例如,描绘了正由所描绘的用户穿戴的生日帽的AR对象,描绘了坐在所描绘的用户的肩上的动画角色的AR对象)。
如以上所提及的,共享AR视频通话系统提供了优于传统系统的许多技术优势和优点。例如,共享AR视频通话系统可以在多个参与者设备之间建立和实现包括共享和交互式的AR内容的、动态且灵活的视频通话。实际上,与局限于呈现由参与者设备针对所采集的视频而选择的AR效果、且向其他客户端设备流式传输描绘了非交互式的(重叠的)AR效果的所采集的视频的许多传统视频通话系统不同,共享AR视频通话系统使多个参与者设备能够发起多种AR效果(和/或其他AR元素),这些AR效果使得视频通话上的其他参与者设备也渲染共享的AR效果。
作为一示例,通过在视频通话期间利用多个参与者设备之间的AR数据信道,共享AR视频通话系统使该多个参与者设备能够在该多个参与者设备之间共享AR数据(例如,多个AR元素、以及与这些AR元素相对应的空间和属性)。通过在视频通话期间实现对AR数据的共享,共享AR视频通话系统有利于视频通话内的各种AR效果和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视频通话系统利用诸如JavaScript对象表示法(JavaScript Object Notation,JSON)、实时协议(real time protocol,RTP)和/或可扩展标记语言(extensible markup language,XML)等数据交换格式从AR数据信道写入、发送、接收和/或读取AR数据。
如本文所使用的,术语“增强现实元素”(有时被称为“增强现实对象”)是指由计算设备(例如,智能手机或头戴式显示器)在真实世界的视频(例如,实时视频馈送)(例如,采集了视频通话中的真实世界环境和/或用户的视频)上显示(或施加)的视觉内容(二维和/或三维)。特别地,术语“增强现实元素”可以包括在计算设备上(或内)显示的图形对象、数字图像、数字视频、文本、和/或图形用户界面,该计算设备也渲染视频或其他数字媒体。例如,增强现实元素可以包括图形对象(例如,三维和/或二维对象),该图形对象是交互式的、可操纵的、和/或被配置为与计算设备的视频中所采集的环境(或人)真实地交互(例如,基于用户交互、移动、点亮、阴影)。实际上,在一个或多个实施例中,AR元素可以修改视频的前景和/或背景,和/或修改视频的滤镜。
如本文所使用的,术语“增强现实标识符”是指对特定AR元素进行指代或寻址的信息。特别地,术语“增强现实标识符”可以包括指代特定AR元素的值(例如,数字、字母数字、地址、API调用)。例如,参与者设备可以在接收到AR标识符时,利用该AR标识符从AR元素的存储器和/或库(例如,在视频通话期间,在参与者设备上下载的、和/或在云服务上可访问的)中检索和/或识别特定AR元素。
另外,如本文所使用的,术语“增强现实环境场景”是指一个或多个增强现实元素,该一个或多个增强现实元素是交互式的、可操纵的、和/或被配置为彼此逼真地交互和/或与在计算设备上检测到的用户交互逼真地交互。在一些实施例中,增强现实环境场景包括修改和/或描绘图形环境的一个或多个增强现实元素,该图像环境代替计算设备的视频中所采集的真实世界环境。作为一示例,共享AR视频通话系统可以渲染增强现实环境场景,以将视频通话中的一个或多个参与者描绘为在计算设备的采集视频内的图形环境内(例如,在空间中、在水下、在篝火处、在森林中、在海滩处)。在一些情况下,共享AR视频通话系统还使增强现实环境场景内的多个增强现实元素能够是交互式的、可操纵的、和/或被配置为与在多个参与者设备上检测到的用户交互逼真地交互。
此外,如本文所使用的,术语“增强现实效果”是指呈现(或显示)交互式图形动画、可操纵图形动画和/或空间感知图形动画的一个或多个增强现实元素。特别地,术语“增强现实效果”可以包括与在视频内采集的人(或用户)逼真地交互的图形动画,使得该图形动画看起来在所采集的视频内的人的环境中逼真地存在。作为一示例,增强现实效果可以包括图形化五彩纸屑、由视频通话参与者佩戴的图形化帽子、对在视频通话内所采集的人的修改(例如,佩戴面罩、改变参与用户在视频通话中的外观、改变服装、添加图形化配饰)。
如本文中所进一步使用的,术语“增强现实对象向量”是指表示AR元素(例如,图形化AR对象)的空间信息的数据的集合。特别地,术语“增强现实对象向量”可以包括方向值(例如,二维和/或三维坐标、角度)和/或幅度值(例如,表示速度和/或加速度)。实际上,在一个或多个实施例中,共享AR视频通话系统利用AR对象向量来确定AR元素的移动方向。
如本文中所进一步使用的,术语“参与者标识符”是指指向或唯一地识别电子通信(例如,视频通话)内的参与者设备(或参与者)的值。例如,共享AR视频通话系统利用参与者标识符来确定发送的AR标识符或AR元素的接收方参与者设备。在一些实例中,参与者设备包括具有AR元素或AR标识符的参与者标识符,该参与者标识符用于在发送AR元素或AR标识符时指定主参与者设备。随后,主参与者设备可以检测参与者标识符,并因此利用AR元素或AR标识符在所采集的视频内渲染AR环境(例如,在确定参与者标识符与分配给主参与者设备的标识符匹配时)。
如本文中所进一步使用的,术语“用户交互”是指由参与者设备经由摄像头、触摸屏和/或计算机外围设备(例如,鼠标、键盘、控制器)检测到的动作或输入。在一些情况下,术语“用户交互”包括与所显示的AR元素交互的用户输入。此外,术语“用户交互”可以包括由客户端设备的摄像头检测到的移动交互。例如,移动交互可以包括由摄像头检测到的、与AR元素的位置相关联(或相关)的用户的物理移动(例如,面部移动、手臂移动、腿部移动)。作为一示例,移动交互可以包括但不限于,使用客户端设备摄像头来检测用户轻拍AR元素、击打AR元素、踢AR元素。另外,移动交互可以包括但不限于,使用客户端设备摄像头来检测用户的眼睛睁开、用户在基于AR的对象处进行吹气的动作(例如,吹灭基于AR的蜡烛、吹走基于AR的树叶)、和/或用户进行的咬基于AR的对象的动作(例如,吃基于AR的食物、使用头部移动来移动基于AR的对象)。
现将参考附图提供关于共享AR视频通话系统的附加细节。例如,图1示出了示例性系统环境(“环境”)100的示意图,共享增强现实视频通话系统104(也被称为“共享AR视频通话系统104”)可以在该环境100中实现。如图1所示,环境100包括一个或多个服务器设备102、网络106、以及多个客户端设备108a和108b-108n。
尽管图1中的环境100被描绘为具有特定数量的部件,但环境100可以具有任何数量的附加部件或任何数量的替代部件(例如,与共享AR视频通话系统104直接通信或经由网络106与共享AR视频通话系统104通信的、任何数量的服务器设备和/或任何数量的客户端设备)。类似地,尽管图1示出了该一个或多个服务器设备102、网络106、该多个客户端设备108a和108b-108n的特定布置,但也可以是各种另外的布置。该一个或多个服务器设备102、网络106以及该多个客户端设备108a和108b-108n可以彼此直接地通信耦接,也可以彼此间接地通信耦接(例如,通过以下关于图11和图12更详细论述的网络106来通信耦接)。此外,该一个或多个服务器设备102和该多个客户端设备108a和108b-108n可以包括各种计算设备(这些计算设备包括如关于图10所更详细论述的一个或多个计算设备)。
如以上所提及的,环境100包括一个或多个服务器设备102。在一个或多个实施例中,该一个或多个服务器设备102生成、存储、接收和/或发送数字数据,该数字数据包括与用于多个客户端设备(例如,客户端设备108a和108b-108n)之间的视频通话的视频数据和AR数据有关的数字数据。在一些实施例中,该一个或多个服务器设备102包括数据服务器。在一个或多个实施例中,该一个或多个服务器设备102包括通信服务器或网站托管(web-hosting)服务器。
如图1进一步所示,该一个或多个服务器设备102包括共享AR视频通话系统104。在一个或多个实施例中,共享AR视频通话系统104在多个客户端设备之间建立视频数据信道和AR数据信道,以在这些客户端设备之间实现具有共享AR元素的视频通话。实际上,在一个或多个实施例中,共享AR视频通话系统104在该多个客户端设备108a和108b-108n中的各种数量的客户端设备之间建立具有交互式共享AR元素的视频通话。此外,在一个或多个实施例中,共享AR视频通话系统104被实现为社交网络系统的一部分,该社交网络系统有助于诸如即时消息传递、视频通话和/或社交网络帖子的电子通信(例如,如关于图11和图12所更详细论述的)。
此外,在一个或多个实施例中,环境100包括多个客户端设备108a和108b-108n。例如,客户端设备108a、108b-108n可以包括能够与共享AR视频通话系统交互、以与一个或多个其他客户端设备进行视频通话(和/或其他电子通信)的计算设备。实际上,客户端设备108a、108b-108n可以因该客户端设备108a和108b-108n的数字摄像头而采集视频,并且还可以利用来自视频通话的AR数据信道的AR数据在所采集的视频内渲染AR元素。在一些实施方式中,客户端设备108a、108b-108n包括以下中的至少一种:智能手机、平板电脑、台式计算机、膝上型计算机、头戴式显示设备、或其他电子设备。
另外,在一些实施例中,该多个客户端设备108a和108b-108n中的每个客户端设备与社交网络系统中的一个或多个用户账户相关联(例如,如关于图11和图12所描述的)。在一个或多个实施例中,客户端设备108a、108b-108n包括能够与共享AR视频通话系统104交互(例如,通过发起视频通话、发送视频数据和/或AR数据、和/或接收视频数据和/或AR数据而与共享AR视频通话系统104交互)的一个或多个应用程序(例如,视频通话应用程序110a、110b-110n)。此外,视频通话应用程序110a和110b-110n还能够利用视频通话数据和/或AR数据,在所采集的正操作客户端设备的用户的视频内渲染AR元素。在一些实例中,视频通话应用程序110a和110b-110n包括安装在客户端设备108a和108b-108n上的软件应用程序。然而,在其他情况下,视频通话应用程序110a和110b-110n包括对托管在该一个或多个服务器设备102上的软件应用程序进行访问的网页(web)浏览器或其他应用程序。
共享AR视频通话系统104可以全部地或部分地由环境100中的各个元件实现。实际上,尽管图1示出了共享AR视频通话系统104的实现与该一个或多个服务器设备102有关,但共享AR视频通话系统104的不同部件可以由环境100内的各种设备来实现。例如,共享AR视频通话系统104中的一个或多个(或全部)部件可以由一不同的计算设备(例如,该多个客户端设备108a和108b-108n中的一个)、或与该一个或多个服务器设备102分开的服务器来实现。
如以上所提及的,共享AR视频通话系统104可以在多个客户端设备之间建立用于实现共享AR视频通话的AR数据信道,该共享AR视频通话有助于在视频通话期间对AR元素的共享、以及与AR元素的交互。例如,图2示出了共享AR视频通话系统104在多个参与者设备之间建立共享AR视频通话从而有助于该共享AR视频通话的示例。如图2所示,共享AR视频通话系统104在客户端设备204与客户端设备205之间建立视频通话流202。实际上,如图2所进一步示出的,共享AR视频通话系统104建立了视频通话流202,该视频通话流202包括视频数据信道206、音频数据信道208和AR数据信道210。
如图2所示,客户端设备204在数字视频通话界面212内显示由客户端设备204采集的视频214、以及由客户端设备205采集(且经由视频数据信道206发送到客户端设备204)的视频216这两者。类似地,如图2所示,客户端设备205在数字视频通话界面218内显示由客户端设备205采集的视频216、以及由客户端设备204采集(且经由视频数据信道206发送到客户端设备205)的视频214这两者。在一些情况下,客户端设备204和客户端设备205还通过音频数据通道208发送来自各自客户端设备上所采集的音频的音频数据。
如图2进一步所示的,客户端设备204和客户端设备205在视频通话期间利用AR数据信道210在客户端设备之间发送(和接收)AR数据,以渲染共享AR元素。如图2所示,客户端设备204和客户端设备205在视频通话期间均渲染共享的AR元素220。在一个或多个实施例中,如以下所描述(例如,参考图3至图8),客户端设备204和客户端设备205可以与在客户端设备204和客户端设备205之间共享的AR元素220交互(和/或移动该共享的AR元素220)。
如图2所示,客户端设备204在所采集的视频214上渲染AR元素220。然后,客户端设备204向客户端设备205发送具有所渲染的AR元素220的所采集视频214。类似地,如图2所示,客户端设备205在所采集的视频216上渲染AR元素220。随后,客户端设备205向客户端设备204发送具有渲染的AR元素220的所采集视频216。通过在本地渲染AR元素,客户端设备可以利用非压缩的所采集的视频,该非压缩的所采集的视频包括视频传感器数据,例如但不限于,深度信息、面部追踪信息、和/或其他身体移动追踪信息。
在一些实施例中,在视频通话期间,共享AR视频通话系统104利用AR数据信道来促进AR数据的实时传送。例如,在视频通话期间,共享AR视频通话系统104可以建立AR数据信道,该AR数据信道有助于在视频通话期间发送(和接收)附加数据(例如,除视频数据和音频数据之外),以在视频通话期间共享交互式的AR环境、AR效果、基于AR的活动、和/或单独的AR元素。例如,在视频通话期间,共享AR视频通话系统104可以使多个客户端设备能够发送AR数据,该AR数据例如为AR标识符(例如,指向AR元素的AR标识符)、AR元素、AR对象向量(用于AR元素的位置和方向)、与AR元素的用户交互、对AR元素的修改、和/或与AR环境、AR效果、基于AR的活动、和/或单独的AR元素相对应的其他更新。
在一些情况下,共享AR视频通话系统104建立AR数据信道,以利用一种或多种数据交换格式来促使AR数据在AR数据信道内的传输。例如,共享AR视频通话系统104可以使AR数据信道能够以多种格式传输AR数据,这些格式例如但不限于JSON、纯文本和/或XML。另外,在一个或多个实施例中,共享AR视频通话系统104利用端到端网络协议来建立AR数据信道,该端到端网络协议有利于实时数据流在多个客户端设备之间对AR数据进行流式传输。例如,共享AR视频通话系统104可以使AR数据信道能够经由端到端网络协议传输AR数据,该端对端网络协议例如但不限于,实时传输协议(Real-Time Transport Protocol,RTP)、实时流传输协议(real time streaming protocol,RTSP)、实时数据传输(real datatransport,RDT)、和/或另一数据同步服务。
此外,在一个或多个实施例中,共享AR视频通话系统104向一个或多个客户端设备提供应用程序编程接口(API),以在视频通话期间彼此通信且与共享AR视频通话系统104通信。特别地,共享AR视频通话系统104可以提供包括对在AR数据信道(其由共享AR视频通话系统104建立)上传送针对AR数据的请求、信息和/或通知的调用的API。例如,在视频通话期间,客户端设备可以利用API来与共享AR视频通话系统104通信,以请求AR效果(或其他AR数据),从而初始化传输的AR环境、AR效果、基于AR的活动、和/或单独的AR元素。另外,在视频通话期间,客户端设备可以利用API通过AR数据信道向其他客户端设备传送AR数据。实际上,根据本文中的一个或多个实施例,在视频通话期间,共享AR视频通话系统104可以利用API来促进共享AR视频通话系统104与一个或多个客户端设备之间的通信,以在视频通话期间共享AR数据,从而创建AR环境、AR效果、基于AR的活动、和/或单独的AR元素。
例如,在一个或多个实施例中,共享AR视频通话系统104利用经由多个客户端设备之间的AR数据信道广播的JSON格式化消息来传送AR数据。特别地,在视频通话期间,共享AR视频通话系统104建立能够传输JSON格式化消息的数据消息信道作为AR数据信道。实际上,在视频通话期间,共享AR视频通话系统104可以建立在一个或多个AR效果期间持续的数据消息信道。此外,共享AR视频通话系统104可以建立名为双向通信数据信道的数据消息信道,该双向通信数据信道有助于请求发送AR数据和请求接收AR数据。
此外,在一个或多个实施例中,共享AR视频通话系统104利用作为JSON对象的JSON格式化消息,该JSON对象包括一个或多个可访问值。特别地,JSON对象可以包括一个或多个变量和/或一个或多个数据引用(例如,经由布尔值、字符串、数字),可经由对特定变量的调用而访问上述变量和/或数据引用。实际上,共享AR视频通话系统104可以有助于对多个JSON对象的发送和接收,这些JSON对象被访问以确定诸如AR标识符、AR效果长度、AR对象向量和/或参与者标识符等信息。
此外,在一些实施例中,共享AR视频通话系统104建立数据消息信道(作为该AR数据信道)以包括针对客户端设备订阅而启动的数据流。例如,共享AR视频通话系统104可以接收来自客户端设备的订阅AR数据信道的请求。然后,共享AR视频通话系统104使该客户端设备能够监听通过数据流传输(或广播)的数据消息。
另外,共享AR视频通话系统104可以建立利用实时异步数据信道(异步信道)的AR数据信道。在一个或多个实施例中,共享AR视频通话系统104建立包括高吞吐量和高带宽的异步信道,使得数据被实时广播到多个客户端设备。在一些情况下,共享AR视频通话系统104建立异步信道来广播AR数据(或AR数据消息),而不管消息顺序如何。在一些实例中,共享AR视频通话系统104可以建立利用同步数据信道(同步信道)的AR数据信道。在一些实施例中,共享AR视频通话系统104建立按消息顺序传输AR数据(或AR数据消息)的同步信道,以在多个客户端设备上同步AR数据。
此外,共享AR视频通话系统104可以建立在视频通话期间传输AR数据的AR数据信道,该AR数据具有一个或多个逻辑数据对象(例如,多对等数据补丁),该一个或多个逻辑数据对象提供用于执行AR效果的指令。在一个或多个实施例中,共享AR视频通话系统104使视频通话中的多个客户端设备能够打包和/或发送逻辑数据对象,接收逻辑数据对象,对逻辑数据对象进行解包以访问用于执行AR效果的逻辑指令,和/或配置逻辑数据对象的打包事件、发送事件、接收事件和/或解包事件的持续时间和/或时机。
在某些实例中,共享AR视频通话系统104生成逻辑数据对象,作为经由AR数据信道传输的AR数据,该逻辑数据对象包括AR效果的实例的数字数据、布尔值数据、文本数据、或向量(例如,向量2、向量3、向量4)数据。实际上,逻辑数据对象可以包括密钥(例如,用于识别或表示正被发送的AR数据)、参与者标识符(例如,用于识别视频通话中的一个或多个所选择的主参与者)、和/或AR数据信道的标识符(例如,逻辑数据对象将被发送到哪条数据信道)。
在一个或多个实施例中,共享AR视频通话系统104使客户端设备能够发送作为AR数据的多个逻辑数据对象,该多个逻辑数据对象用于表示AR效果的各个组件。例如,第一逻辑数据对象可以表示所选择的、视频通话的参与者(其作为AR效果的主参与者)。另外,第二逻辑数据对象可以表示AR效果的位置数据(例如,针对位置的对象向量或特定对象选择)。作为一示例,位置数据可以包括针对方向的对象向量、或特定对象选择,该特定对象选择例如但不限于,面部追踪器选择、眼动追踪器选择、和/或鼻追踪器选择。实际上,共享AR视频通话系统104可以使客户端设备能够在视频通话期间发送多个逻辑数据对象的各种组合,以在另一客户端设备上渲染共享的AR效果的各种组合。
此外,逻辑数据对象可以包括用于指定待渲染的一个或多个AR元素的一个或多个AR元素标识符。此外,逻辑数据对象可以包括修改器、定时器和/或动作,上述修改器、定时器和/或动作指定AR元素的持续时间(例如,节流(throttle)对象)和/或AR元素的特定渲染指令(例如,位置、速度、数量)。另外,逻辑数据对象还可以包括在时间上和/或逻辑上链接逻辑数据对象内的各种信息和/或指令的一个或多个链接,使得客户端设备可以利用时间和/或逻辑链接来确定如何渲染AR对象。实际上,如以下所更详细描述的(例如,关于图6A至图6D),在视频通话期间,共享AR视频通话系统104可以利用作为AR数据的多个逻辑数据对象来实现多个共享的AR效果中的一个或多个。
为了说明共享AR视频通话系统104在视频通话期间利用逻辑数据对象来实现共享的AR效果的示例,共享AR视频通话系统104可以使第一客户端设备能够在视频通话期间检测第一客户端设备上的参与者做出的亲吻动作,使得第二客户端设备接收到AR数据对象(其包括逻辑数据对象),该AR数据对象使得第二客户端设备在第二客户端设备所采集的参与者的鼻子上渲染AR红心(例如,AR元素)。实际上,作为AR效果的一部分,共享AR视频通话系统104可以检测到在第一客户端设备上所采集的参与者正在做出亲吻动作(例如,使用视频通话上的脸部追踪器部件)。
第一客户端设备可以在检测到亲吻动作时,检测亲吻的数量并生成逻辑数据对象,该逻辑数据对象包括亲吻事件的标识符(例如,指示针对该亲吻事件渲染AR效果的AR标识符)和亲吻数量的计数器。然后,第一客户端设备可以经由AR数据信道向第二客户端设备发送该逻辑数据对象。此外,第二客户端设备可以对该逻辑数据对象进行解包,以识别该亲吻事件的标识符和该计数器。
作为逻辑数据对象的一部分,第二客户端设备还可以识别与AR效果相对应的持续时间的指令、AR元素标识符、以及用于渲染AR元素的指令(例如,节流对象)。就这一点而言,第二客户端设备可以在指定位置(例如,经由用于追踪第二客户端设备上的参与者的鼻子或其他特征的指令,第二客户端设备的所采集的视频内的静态位置)处,渲染由逻辑数据对象标识的AR元素(例如,AR红心)达指定的持续时间和指定的次数(基于计数器)。
在一些情况下,如图2所示,客户端设备包括用于视频通话流(其由共享AR视频通话系统104建立)的客户端设备层。特别地,客户端设备可以利用对AR数据的经由AR数据信道的发送和/或接收进行控制的客户端设备层(例如,API内的和/或网络协议内的层)。例如,客户端设备可以利用客户端设备层,对来自参与视频通话的一个或多个客户端设备的、经由AR数据信道广播(或传输)的AR数据进行接收和/或过滤。特别地,在一个或多个实施例中,多个客户端设备经由AR数据信道向参与(同一)视频通话的每个客户端设备发送AR数据。此外,客户端设备可以利用客户端设备层来识别所发送的AR数据,并对该AR数据进行过滤(例如,以利用或忽略AR数据)。例如,客户端设备可以利用客户端设备层来基于与AR数据相对应的参与者标识符来对AR数据进行过滤(如以下所描述的)。
如图2所示,在一些情况下,共享AR视频通话系统104可以在多个客户端设备之间实现共享AR视频通话。例如,如图2所示,共享AR视频通话系统104可以在客户端设备204、客户端设备205、以及多个客户端设备222中的一个或多个客户端设备222之间建立视频通话流202(例如,视频数据信道206、音频数据信道208和AR数据信道210)。实际上,一经通过AR数据信道210传输AR数据,客户端设备204、客户端设备205、以及多个客户端设备222中的一个或多个客户端设备222可以渲染共享的AR元素,以在视频通话内在多个客户端设备之间创建共享的AR环境场景、AR活动、和/或AR效果(根据本文中的一个或多个实施例)。
实际上,如以上所提及的,在一个或多个实施例中,共享AR视频通话系统104在视频通话期间建立用于传递(或传送)AR数据的AR数据信道,以在视频通话内在多个客户端设备之间创建交互式的且自由流动的AR元素。图3示出了在视频通话期间共享AR视频通话系统104建立AR数据信道、且多个客户端设备利用该AR数据信道来传送AR数据(由此渲染AR元素)的流程图。例如,如图3所示,在动作302中,共享AR视频通话系统104接收来自客户端设备1的、与客户端设备2进行视频通话的请求(例如,发起视频通话的请求)。然后,如图3的动作304所示,共享AR视频通话系统104在客户端设备1与客户端设备2之间建立共享AR视频通话(例如,其包括视频数据信道、音频数据信道和AR数据信道)。
然后,如图3的动作306所示,客户端设备1通过视频数据信道和音频数据信道向客户端设备2发送第一视频流(例如,在客户端设备1上采集的视频流)。如图3的动作308进一步所示,客户端设备2通过视频数据信道和音频数据信道向客户端设备1发送第二视频流(例如,在客户端设备2上采集的视频流)。此外,如图3的动作310所示,客户端设备1渲染第一视频流和第二视频流。类似地,如图3的动作312所示,客户端设备2也渲染第一视频流和第二视频流。
如图3的动作314进一步所示,客户端设备1在客户端设备1的第一视频流内发起共享AR元素。此外,如图3的动作316所示,客户端设备1向客户端设备2发送(或传输)AR元素的AR标识符(经由AR数据信道)。此外,如图3的动作318所示,客户端设备2用AR元素渲染第一视频流。如图3的动作320所示,客户端设备2响应于接收到AR标识符,用与所接收的AR标识符相关联的AR元素渲染第二视频流。实际上,如以下所描述的(例如,关于图4至图8),客户端设备1的视频流和客户端设备2的视频流各自在本地渲染共享AR元素,以创建共享的AR环境场景、AR活动、和/或AR效果。
在一些实施例中,当这些客户端设备在AR数据信道上共享AR元素时,这些客户端设备在渲染AR元素之前初始化AR元素。特别地,如图3的动作322a和动作322b所示,多个客户端设备均在渲染AR元素之前初始化该AR元素。在一个或多个实施例中,一个或多个客户端设备接收到AR标识符并等待直到每个客户端设备初始化了AR元素,以在视频通话中的多个客户端设备上同步共享的AR体验。实际上,一经初始化,这些客户端设备就可以向其他客户端设备发送(通过AR数据信道发送)指示客户端设备已经准备好渲染AR元素(或者已初始化了AR元素)的消息。在一些情况下,客户端设备可以通过检索AR元素、加载AR元素和/或下载用于渲染AR元素的特定AR数据包来初始化AR元素。一经接收到来自视频通话中的每个客户端设备的初始化消息,各个客户端设备就可以继续渲染AR元素。
此外,在一个或多个实施例中,多个客户端设备(或共享AR视频通话系统104)暂停视频通话的一个或多个视频流,直到在多个参与的客户端设备中的每个客户端设备上完成共享AR元素的初始化。在一些情况下,共享AR视频通话系统104对加载屏幕(或加载动画)进行流式传输(或显示),直到在多个参与的客户端设备中的每个客户端设备上初始化了共享AR元素。另外,在一个或多个实施例中,当共享AR元素在多个客户端设备上初始化时,共享AR视频通话系统104使这些客户端设备能够经由音频数据信道继续发送和/或接收音频数据,并在视频通话中播放一个或多个客户端设备的音频。
如图3的动作324进一步所示,客户端设备1与第一视频流(即,由客户端设备1采集的视频流)内的AR元素交互。一经与AR元素交互,客户端设备1还向客户端设备2发送用于该交互的附加AR标识符(如图3的动作326所示)。然后,如图3的动作328所示,客户端设备2接收该附加AR标识符,并利用来自该用于交互的附加AR标识符(来自客户端设备1)的信息来基于该附加AR标识符(表示来自动作324的交互)修改第二视频流内的AR元素(或添加附加AR元素)。例如,如以下所描述的(例如,关于图4),客户端设备2可以修改AR元素。在一些情况下,如以下所描述的(例如,关于图5、图6A和图6B),客户端设备2利用来自附加AR标识符的信息来向第二视频流添加AR元素(或从第二视频流中移除AR元素)。
在一个或多个实施例中,多个客户端设备(参考图3)可以继续在视频通话中的这些客户端设备之间传输各种数据组合(例如,通过视频数据信道、音频数据信道和/或AR数据信道)。实际上,该多个客户端设备可以在视频通话期间传输以下数据的各种组合:视频数据、音频数据和/或AR数据,以呈现各种AR体验。此外,尽管图3示出了在视频通话内交互的两个客户端设备之间的数据传输的流程图,但共享AR视频通话系统104可以建立用于在视频通话期间在各种数量的客户端设备之间传输视频数据、音频数据和/或AR数据的各种组合以呈现各种AR体验的视频通话。另外,多个客户端设备(参与视频通话的客户端设备)中的一个或多个客户端设备可以在视频通话期间通过选择一不同的AR环境、一不同的AR活动和/或一不同的AR效果,来改变AR环境、AR活动和/或AR效果。
如以上所提及的,在视频通话期间,共享AR视频通话系统104利用用于在参与视频通话的多个客户端设备之间传输AR数据的AR数据信道,来建立共享AR环境场景。例如,图4示出了共享AR视频通话系统104在多个客户端设备之间建立具有共享AR环境场景的视频通话。如图4所示,一经接收到来自客户端设备402a(或客户端设备408a)的、发起视频通话的请求,共享AR视频通话系统104就建立包括视频数据信道422、音频数据信道424和AR数据信道426的视频通话流420。
如图4进一步所示,客户端设备402a通过AR数据信道426发送AR标识符,并且在数字视频通话界面404中的所采集的视频406内渲染AR元素414a。一经接收到该AR标识符,客户端设备408a(如图4所示)也在数字视频通话界面410中的所采集的视频412内渲染AR元素414b。同样如图4所示,客户端设备402a和客户端设备408a还显示描绘了以下内容的视频流(例如,在视频通话时):具有AR元素414b的所采集的视频412、以及具有AR元素414a的所采集的视频406。实际上,关于图4,共享AR元素在视频通话中的多个客户端设备之间创建具有单个蛋糕(例如,通过AR元素414a和AR元素414b)的AR环境场景。
尽管一个或多个实施例示出了共享AR视频通话系统104建立一视频通话(在该视频通话中客户端设备发起了显示基于AR的蛋糕的共享AR环境场景),但共享AR视频通话系统104使这些客户端设备能够发送用于在视频通话中创建各种共享AR环境场景的各种数量的AR标识符(用于多个AR元素)。作为一示例,在一些情况下,客户端设备发送指代视频通话内的AR篝火环境的AR元素的一个或多个AR标识符。实际上,视频通话中的多个客户端设备可以接收该一个或多个AR标识符以渲染AR元素,从而在视频通话内创建共享的图形化AR篝火。
作为另一示例,在一些情况下,客户端设备发送指代视频通话内的AR外空间环境(outer space environment)的AR元素的一个或多个AR标识符。因此,视频通话中的多个客户端设备可以接收该一个或多个AR标识符以渲染AR元素,从而在视频通话内创建共享的图形化AR外空间环境(例如,以将视频通话中的参与者置于同一外空间环境中)。此外,在一些实施例中,客户端设备发送指代视频通话内的AR水下环境的AR元素的一个或多个AR标识符。实际上,视频通话中的多个客户端设备可以接收该一个或多个AR标识符以渲染AR元素,从而在视频通话内创建共享的图形化水下环境(例如,将视频通话中的参与者置于同一水下环境中)。
同样如以上所提及的,共享AR视频通话系统104可以使多个客户端设备(或多个客户端设备的用户)能够与视频通话内的AR元素交互,以影响在视频通话中多个参与客户端设备中的一个或多个参与客户端设备上渲染的AR元素。例如,图4还示出了客户端设备检测到与AR元素的交互,并且利用AR数据信道在视频通话的其他客户端设备上反映与AR元素的交互。实际上,如图4所示,客户端设备402b(客户端设备402a的过渡版本)检测到所采集的视频406内的用户交互418(例如,所采集的参与者吹灭表示蛋糕的AR元素414a的蜡烛),以渲染修改后的AR元素416a。
然后,如图4进一步所示,客户端设备402b经由AR数据信道426向客户端设备408b(客户端设备408a的过渡版本)发送具有交互数据的AR标识符(用于指示修改后的AR元素和/或与AR元素的交互)。一经接收到表示修改后的AR元素和/或与AR元素的交互的AR标识符,客户端设备408b也在所采集的视频412内渲染AR元素414b,以将在客户端设备402b上检测到的交互反映为修改后的AR元素416b。
同样如图4所示,客户端设备402b和客户端设备408b显示视频流,该视频流用于在客户端设备402b上描绘具有修改后的AR元素416b的所采集的视频412、且在客户端设备408b上描绘具有修改后的AR元素416a的所采集的视频406(例如,在视频通话时)。实际上,如图4所示,由于在客户端设备402b上的所采集的视频406上检测到用户交互418(例如,移动交互),客户端设备402b和客户端设备408b均显示(分别显示)修改后的AR元素416b和416a(作为具有熄灭的蜡烛的蛋糕)。如图4所示,共享AR视频通话系统104建立视频通话,在该视频通话中多个客户端设备的参与用户可以与AR元素交互,使得在视频通话期间这些交互创建了和操纵了共享AR环境,以产生视频通话正在同一物理位置(例如,在同一房间或空间内)发生的感知。
在一个或多个实施例中,共享AR视频通话系统104使多个客户端设备能够检测和发送关于AR元素的各种类型的交互数据。例如,交互数据可以包括多种交互类型,例如但不限于,手部移动、手臂移动、头部移动、眼睛移动、身体移动、与一个或多个AR元素相关联(和/或交互)的触摸屏输入。另外,交互数据可以包括发生交互的AR元素(例如,该AR元素的与之交互的部分)的位置数据。实际上,在一些实施例中,交互数据被应用于AR元素,以基于该特定交互数据来确定AR元素的反应状态(例如,特定动作引起AR元素的特定反应状态)。实际上,客户端设备可以接收(经由AR数据信道接收)交互数据,并利用该交互数据来确定由交互数据而引起的AR元素的反应状态,并相应地渲染修改后的AR元素。
在一些实例中,客户端设备可以利用在本地检测到的交互数据来确定AR元素的反应状态,并相应地渲染修改后的AR元素。然后,客户端设备可以向视频通话中的其他客户端设备发送(经由AR数据信道发送)AR元素的修改后状态,该AR元素的修改后状态用于指示AR元素的修改、位置和/或状态。此外,这些其他客户端设备可以接收来自AR数据信道的AR元素的修改后状态的信息,并渲染具有与经由AR数据信道而接收的AR数据所标识的类似状态的修改后的AR元素。
在一个或多个实施例中,共享AR视频通话系统104使多个客户端设备能够发送各种类型的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视频通话系统104可以响应于检测到另一客户端设备上的交互数据,使AR元素能够在一个客户端设备中被渲染(或呈现)。例如,客户端设备可以检测到来自所采集的视频上的参与者的交互数据(例如,挥手、拍手、飞吻)。然后,该客户端设备可以通过AR数据信道向参与视频通话的一个或多个其他客户端设备发送所检测到的交互数据(和附加AR数据)。一经接收到该交互数据(和该附加AR数据),该一个或多个其他客户端设备可以根据该交互数据和该附加AR数据渲染AR元素。例如,如以上所提及的,一经接收到亲吻动作的交互数据,客户端设备可以根据AR数据在该客户端设备的所采集的视频内的指定位置处渲染AR元素(例如,AR红心)。作为另一示例,一经接收到指示第一客户端设备上的拍手的交互数据(以及用于所得到的AR效果的AR数据),第二客户端设备可以在该第二客户端设备的所采集的视频内渲染基于AR的烟花。
如以上所进一步提及的,共享AR视频通话系统104可以利用视频通话的AR数据信道使AR元素能够在视频通话的多个客户端设备之间移动。特别地,在一个或多个实施例中,共享AR视频通话系统104使在一客户端设备的所采集的视频中渲染的AR元素,能够移动到该视频通话中的另一客户端设备的另一所采集的视频(例如,由该另一所采集的视频呈现)。例如,图5示出了在视频通话期间共享AR视频通话系统104使AR元素能够从一个客户端设备移动到另一个客户端设备。
如图5所示,共享AR视频通话系统104通过建立包括视频数据信道520、音频数据信道524和AR数据信道526的视频通话流518,在客户端设备502a和客户端设备508a之间建立视频通话。如图5所示,客户端设备508a在数字视频通话界面510上的客户端设备508a上的所采集的视频512内渲染AR元素516a。实际上,如图5所示,客户端设备502a接收视频数据,以在数字视频通话界面504上显示具有AR元素516a的所采集视频512(来自客户端设备508a)。
此外,如图5所示,客户端设备502a还采集视频506并在数字视频通话界面504内显示所采集的视频506。此外,如图5所示,客户端设备508a接收视频数据,以在数字视频通话界面510上显示来自客户端设备502a的所采集的视频506。同样如图5所示,客户端设备502a和客户端设备508a还在视频通话中渲染用于AR篝火环境场景的附加AR元素(如以上所描述的)。
此外,参考图5,客户端设备508a可以追踪AR元素516a在所采集的视频512内的移动。然后,如图5所示,一经检测到AR元素516a正退出(或离开)所采集的视频512的画面,客户端设备508a可以发送指示AR元素的移动(使用对象向量指示)的AR数据。例如,如图5所示,当AR元素516a离开客户端设备508a的屏幕时,客户端设备508b(客户端设备508a的过渡)通过AR数据信道526发送AR数据,该AR数据包括AR元素516a的对象向量和AR标识符。然后,如图5进一步所示,客户端设备502b(客户端设备502a的过渡)接收该AR数据,并使用AR标识符和对象向量(用于正确地定位AR元素516b)在所采集的视频506内渲染AR元素516b,以显示AR元素516b正进入所采集的视频506的画面。
同样如图5所示,客户端设备502b采集具有AR元素516b的视频506,并且在数字视频通话界面504内显示所采集的视频506。此外,如图5所示,客户端设备508b接收视频数据,以在数字视频通话界面510上显示具有AR元素516b的所采集的视频506(来自客户端设备502b)。实际上,如图5所示,共享AR视频通话系统104使多个客户端设备能够在视频通话期间在这些客户端设备之间传输AR数据,以在这些客户端设备之间移动AR元素(例如,如图5所示的围绕视频通话而在不同的所采集的视频中飞行的AR鸟)。
在一个或多个实施例中,共享AR视频通话系统104使客户端设备能够通过AR数据信道利用AR数据来向视频通话中的其他客户端设备广播AR元素。特别地,在一些实例中,客户端设备确定AR元素正退出所采集的视频的画面(例如,通过AR元素的基于编程或人工智能的移动和/或通过由与AR元素的用户交互而引起的移动)。一经确定AR元素正退出所采集视频的画面,客户端设备通过AR数据信道广播AR数据,该AR数据向视频通话中的其他客户端设备通知AR元素正进入一个或多个其他客户端设备的所采集的视频(或多个所采集的视频)的画面(或多个画面)。实际上,在一个或多个实施例中,该一个或多个其他客户端设备通过AR数据信道接收AR数据,并且渲染AR元素(例如,渲染成进入或加入该一个或多个其他客户端设备的所采集的视频(或多个所采集的视频))。
在一些实例中(如以上所提及的),客户端设备还可以利用用于所广播的AR元素的AR数据发送对象向量。实际上,在一个或多个实施例中,对象向量包括用于指示AR元素的定位的数据(例如,AR元素正进入所采集的视频的画面的位置,AR元素即将存在于所采集的视频中的位置)。另外,对象向量还可以包括移动数据,例如但不限于,AR元素移动的速度(例如,行进速度、加速度)、和/或AR元素移动的其他轨迹或基于物理的数据(例如,AR元素的摩擦系数、向心加速度、重力因子)。实际上,接收客户端设备可以利用AR元素的对象向量来渲染AR元素移动,以描绘从先前的客户端设备采集的视频到该客户端设备的所采集的视频的平滑过渡。
在一些实施例中,在AR元素的广播期间,共享AR视频通话系统104还使视频通话中的多个客户端设备能够利用AR数据发送参与者标识符,该参与者标识符用于指示一个或多个接收客户端设备。例如,当多于两个客户端设备正在进行视频通话时,一客户端设备发送(或利用)作为传输(或广播)的AR元素的一部分的参与者标识符,来指定该AR元素的一个或多个目标客户端设备。为了说明,第一客户端设备(在与第二客户端设备和第三客户端设备的视频通话期间)可以以包括寻址第二客户端设备的参与者标识符的方式来发送AR数据,以将AR元素从第一客户端设备的所采集的视频广播(或移动)到第二客户端设备(而不是第三客户端设备)的所采集的视频。实际上,第二客户端设备和第三客户端设备可以对来自AR数据信道的AR数据进行过滤,以利用与正确的参与者标识符相对应的AR数据。在一些情况下,AR数据传输可以包括多个参与者标识符,使得基于该多个参与者标识符的多个客户端设备渲染AR数据传输的AR元素。在一些情况下,共享AR视频通话系统104可以在客户端设备之间建立视频通话的同时,为每个参与客户端设备分配参与者标识符(例如,数字值和/或字母数字值)。
在一些情况下,共享AR视频通话系统104使AR元素能够在视频通话期间在多个客户端设备之间随机移动。例如,共享AR视频通话系统104(作为控制器)可以包括对用于所广播AR元素的AR数据的随机标识符选择,以设置所广播AR元素的随机目的地。例如,共享AR视频通话系统104可以识别AR数据信道内的AR数据,该AR数据信道正广播来自第一客户端设备(其参与在该第一客户端设备、第二客户端设备和第三客户端设备之间的视频通话)的AR元素。然后,在一个或多个实施例中,共享AR视频通话系统104可以将所广播的AR元素分配给第三客户端设备,使得第三客户端设备渲染该AR元素,而第二客户端设备不渲染该AR元素(例如,基于过滤AR数据信道)。在某些实例中,在视频通话期间,共享AR视频通话系统104利用具有参与视频通话的多个客户端设备的随机化的标识符列表的阵列,并且通过该阵列选择将随机地来自一个客户端设备的所广播AR元素随机地分配给另一个客户端设备。
在一个或多个实施例中,共享AR视频通话系统104使多个客户端设备能够发送各种类型的AR数据(就AR元素的AR标识符而言),这些类型的AR数据指示各种AR元素在视频通话中的多个客户端设备之间的各种移动。作为一示例,客户端设备可以经由AR数据信道(其由共享AR视频通话系统104建立)发送AR数据,该AR数据指示多个基于AR的鱼在AR水下环境中的移动,该AR水下环境正在视频通话中的多个客户端设备之间共享。实际上,视频通话中的一个或多个客户端设备可以接收指示该多个基于AR的鱼的移动的AR数据,并在特定位置处渲染这些基于AR的鱼(和/或渲染这些基于AR的鱼进入这些客户端设备上的所采集的视频的画面)。实际上,共享AR视频通话系统104可以在视频通话期间通过AR数据信道实现各种AR元素在多个客户端设备之间的移动。
作为另一示例,一客户端设备可以检测到与所渲染的AR元素的交互,该交互移动该客户端设备的所采集视频内的AR元素(例如,在所采集视频上从左到右移动基于AR的蛋糕的移动交互)。作为响应,该客户端设备经由AR数据信道向视频通话中的其他客户端设备广播该AR元素的移动信息。一经接收到该AR元素的移动信息,这些其他客户端设备也可以在新的位置处渲染该基于AR的蛋糕,以匹配在该客户端设备上所检测到的移动。实际上,共享AR视频通话系统104可以实现各种AR元素的移动,使得在视频通话中的其他客户端设备的AR渲染中模仿该移动,以产生对共享AR环境的感知。
同样如以上所提及的,在视频通话期间,共享AR视频通话系统104可以使用AR数据信道在多个客户端设备之间实现基于AR的活动。例如,图6A和图6B示出了共享AR视频通话系统104使用AR数据信道在视频通话的多个参与者用户(通过对应的客户端设备)之间实现基于AR的活动。如图6A所示,共享AR视频通话系统104通过建立包括视频数据信道614、音频数据信道616和AR数据信道618的视频通话流612,来在客户端设备602a、客户端设备602b和客户端设备602c之间建立视频通话。如图6A进一步所示,客户端设备602a采集视频604a并在数字视频通话界面606内显示视频604a,客户端设备602b采集视频604b并在数字视频通话界面608内显示所采集的视频604b,并且客户端设备602c采集视频604c并在数字视频通话界面610内显示视频604c。此外,如图6A所示,客户端设备602a、602b和602c中的每个客户端设备通过视频数据信道614接收来自这些参与者客户端设备的视频数据(以及通过音频数据信道616接收来自这些参与者客户端设备的音频数据),以显示客户端设备视频流(例如,以建立视频通话)。
此外,如图6A所示,客户端设备602a在所采集的视频604a(其还在客户端设备602b和602c上流式传输)内渲染AR元素620a(例如,一基于AR的圆环)。如图6A进一步所示,客户端设备602a检测到与AR元素620a有关的移动交互,该移动交互来自所采集视频604a内的被拍摄参与者用户。在一些实施例中,客户端设备602a渲染AR元素620a,以使AR元素620a遵循来自所采集视频604a内的被拍摄参与者用户的移动交互而移动。
如由从图6A到图6B的过渡所示,AR元素620a被移动为退出客户端设备602a的数字视频通话界面606中的所采集视频604a的画面。作为响应,客户端设备602a经由AR数据信道618利用AR数据(该AR数据指示AR元素620a的AR标识符、和AR元素620a的对象向量)来广播AR元素620a,以将AR元素620a移动到视频通话中的另一客户端设备(如以上所描述的)。特别地,如图6B所示,客户端设备602b通过AR数据信道618接收AR数据,该AR数据指示AR元素620a(来自图6A)的AR标识符、和针对AR元素620a的位置和方向的对象向量,并且客户端设备602b利用该AR数据在客户端装置602b上的数字视频通话界面608中渲染AR元素620b进入所采集视频604b的画面。
如图6B进一步所示,客户端设备602b在由来自AR数据信道618的对象向量所指示的位置处渲染AR元素620b。然后,如图6B所示,客户端设备602b检测来自所采集视频604b内被拍摄参与者用户的、与AR元素620b的移动交互。实际上,在一个或多个实施例中,客户端设备602b渲染AR元素620b,该AR元素620b根据检测到的、来自所采集视频604b上的参与者用户的与AR元素620b的移动交互而移动。另外,一经检测到AR元素620b正退出所采集视频604b的画面,客户端设备602b可以将AR元素620b广播到视频通话中的另一客户端设备(例如,客户端设备602c和/或602a)。如图6A和图6B所示,在视频通话期间,共享AR视频通话系统104在进行视频通话的多个客户端设备之间实现与AR元素的交互(以及AR元素的移动),以在多个客户端设备之间创建基于AR的活动。
在一些实例中,参考图6B,客户端设备602b和602c均通过AR数据信道618接收AR元素620a(来自图6A)的AR数据。如以上所说明的,共享AR视频通话系统104使多个客户端设备能够发送参与者标识符,该参与者标识符用于对一个或多个AR元素指定一个或多个目标客户端设备。在图6B的示例中,客户端设备602a发送将客户端设备602b指定为AR标识符的接收方客户端设备的参与者标识符,并因此,客户端设备602b在所采集的视频604b内渲染AR元素620b。类似地,参考图6B,客户端设备602c检测AR数据信道内的AR数据,并且在AR数据不包括将客户端设备602c指定为接收方客户端设备的参与者标识符时过滤掉该AR数据。就这一点而言,如图6B所示,客户端设备602c不采取动作来渲染来自由客户端设备602a经由AR数据信道618而发送的AR数据的新的AR元素。
在一个或多个实施例中且参考图6B,客户端设备602a、602b和602c在视频通话期间利用包括一个或多个逻辑数据对象(如以上所描述的)的AR数据,来使AR元素(例如,基于AR的圆环)能够从一个客户端设备移动到另一个客户端设备。作为一示例,图6C示出了在视频通话期间被客户端设备(例如,客户端设备602a)利用并作为AR数据经由AR数据信道618而发送、以实现共享的AR效果的多个逻辑数据对象。此外,图6D示出了在视频通话期间被其他客户端设备(例如,客户端设备602b和602c)接收和/或利用、以接收和渲染共享的AR效果的多个逻辑数据对象。
例如,如图6C所示(并且参考图6B),客户端设备602a利用多个逻辑数据对象来跟踪所采集的视频604a中的面部(例如,经由人脸识别(Face Finder)逻辑数据对象、人脸选择(Face select)逻辑数据对象和面部跟踪(Facetracker0)逻辑数据对象)。一经依据面部跟踪逻辑数据对象而检测到参与者的鼻子正在离开所采集的视频604a内画面,客户端设备602a就激活鼻子移动离开屏幕(Nose Movement Off-Screen)逻辑数据对象,该NoseMovement Off-Screen逻辑数据对象发起AR数据的打包(例如,脉冲包),并且还确定鼻子的位置对象向量(例如,具有x、y和/或z坐标的鼻子位置向量NosePositionV)。实际上,如图6C所示,客户端设备602a对针对鼻子位置的逻辑数据对象进行打包(例如,针对“鼻子位置(NosePosition)”的脉冲包(Pulse Pack))。然后,如图6C所示,客户端设备602a经由逻辑数据对象向AR数据信道618(如图6B所示)发送AR数据,该逻辑数据对象包括AR标识符(例如,主题:发送圆环(SendDonut))、经打包的位置数据、以及参与者标识符(“参与者ID”)。
随后,如图6D所示(并参考图6B),客户端设备602b和602c接收(例如,多对等接收(Multipeer receive))来自AR数据信道618(如图6B所示)的包括逻辑数据对象的AR数据,该逻辑数据对象指示了AR识别符(例如,主题:发送圆环(SendDonut))和参与者标识符(例如,“参与者ID”)。在一个或多个实施例中,接收客户端设备可以利用参与者标识符来确定是否对AR数据进行解包。例如,如在图6B中所描述的,客户端设备602b匹配参与者标识符,而客户端设备602c不匹配参与者标识符。就这一点而言,客户端设备602b对图6所示的AR数据进行解包,以渲染图6B所示的AR效果。
例如,一经对AR数据包解包(例如,脉冲解包(Pulse Unpack)),客户端设备602b识别AR标识符“发送圆环(SendDonut)”的对象位置向量(例如,NosePositionV)。利用该AR标识符,客户端设备602b还利用切换(switch)逻辑数据对象,该切换逻辑数据对象使得在所采集的视频604b内的、由对象位置向量(例如,NosePositionV)的逻辑数据对象所指示的位置处,渲染与AR标识符“SendDonut”相对应的AR元素(“圆环(Donut)”)(或切换该AR元素的可见性)。实际上,如图6B所示,客户端设备602b利用一个或多个接收到的逻辑数据对象(图6D中所描述的)在所采集的视频604b内渲染进入客户端设备602b的屏幕的基于AR的圆环。
在一个或多个实施例中,共享AR视频通话系统104使视频通话中的一个或多个客户端设备能够利用对象向量和/或参与者标识符,来在客户端设备上与AR元素交互、移动AR元素和/或操纵AR元素(如以上所描述的),以建立AR活动。此外,在一些情况下,共享AR视频通话系统104还启用其它AR数据,以有利于视频通话中的多个客户端设备之间的基于AR的活动。例如,共享AR视频通话系统104启用其他AR数据,该其他AR数据例如但不限于,得分信息、AR元素尺寸信息、和/或其他基于游戏的机制(例如,生命数、项目数、定时器、速度)。在一些实施例中,客户端设备经由AR数据信道发送这种AR数据,以使视频通话中的其他客户端设备渲染AR元素,以显示(或描绘)与基于AR的活动(例如,AR游戏)相对应的信息。
此外,共享AR视频通话系统104可以使客户端设备能够在视频通话期间发送各种类型的AR数据(例如,AR元素的AR标识符、对象向量、和/或参与者识别符),以创建各种交互式的且移动的AR元素,以有利于基于AR的活动(例如,AR游戏)。例如,一个或多个客户端设备可以在视频通话期间发送和/或接收(经由AR数据信道发送和/或接收)AR元素,以促进与基于AR的空中冰球比赛的图形化冰球的交互(例如,其中,在视频通话期间,基于AR的冰球基于在多个客户端设备上检测到的移动交互而在这些客户端设备上移动)。
类似地,在一个或多个实施例中,一个或多个客户端设备可以在视频通话期间发送和/或接收(经由AR数据信道发送和/或接收)AR元素,以促进与基于AR的乒乓球比赛的图形化乒乓球的交互(例如,其中,在视频通话期间,基于AR的乒乓球基于在多个客户端设备上检测到的移动交互而在这些客户端设备上移动)。在一些情况下,一个或多个客户端设备可以在视频通话期间发送和/或接收(经由AR数据信道发送和/或接收)AR元素,以有利于与对所呈现问题(例如,数学问题、细节考问(trivia question))的基于AR的文本答案选项的交互,使得在客户端设备上检测到的移动交互可以指示用户对基于AR的文本答案选项的选择。
尽管本文中的一个或多个实施例示出了共享AR视频通话系统104利用AR数据信道在视频通话中的多个客户端设备之间实现基于AR的游戏(作为AR活动),但共享AR视频通话系统104可以在视频通话中的多个客户端设备之间实现各种类型的AR活动。例如,在一个或多个实施例中,共享AR视频通话系统104实现了AR数据在视频通话的多个客户端设备之间的传输(如以上所描述的),以创建AR活动,该AR活动例如但不限于,共享的AR绘画活动、共享的AR素描(sketching)活动、共享的AR白板(white board)、和/或共享AR拼图(puzzle)活动。
例如,在视频通话期间,一个或多个客户端设备可以通过AR数据信道利用AR数据来渲染共享的AR绘画环境,其中来自视频通话中的多个客户端设备的用户交互与具有绘画颜料和其他美术工具的基于AR的画布进行交互,并修改该基于AR的画布,以在视频通话中创建共享的AR绘画。作为另一示例,在视频通话期间,一个或多个客户端设备可以通过AR数据信道利用AR数据来渲染共享的AR白板,其中来自视频通话中的多个客户端设备的用户交互与基于AR的白板进行交互并修改该基于AR的白板,以在视频通话中对所共享的AR白板内的笔记和/或观点进行共享。
此外,如以上所提及的,共享AR视频通话系统104可以在视频通话中的多个客户端设备之间实现AR效果。例如,图7示出了共享AR视频通话系统104在视频通话中的多个客户端设备之间实现共享的AR效果。特别地,如图7所示,一客户端设备可以经由AR数据信道向视频通话中的其他客户端设备发送AR数据(例如,AR标识符)以在视频通话中发起AR效果。实际上,在视频通话期间,一经接收到该AR数据,一个或多个客户端设备呈现AR效果。
例如,如图7所示,共享AR视频通话系统104通过建立包括视频数据信道714、音频数据信道716和AR数据信道718的视频通话流712,来在客户端设备702a、客户端设备702b和客户端设备702c之间建立视频通话。如图7进一步所示,客户端设备702a采集视频704a并在数字视频通话界面706内显示该视频704a,客户端设备702b采集视频704b并在数字视频通话界面708内显示该视频704b,并且客户端设备702c采集视频704c并在数字视频通话界面710内显示该视频704c。此外,如图7所示,客户端设备702a、702b和702c中的每个客户端设备通过视频数据信道714接收来自参与者客户端设备的视频数据(并且通过音频数据信道716接收来自参与者客户端设备的音频数据),以显示客户端设备视频流(例如,以建立视频通话)。
此外,如图7所示,客户端设备702a经由AR数据信道718发送AR数据,该AR数据包括用于AR效果的AR标识符。然后,如图7所示,客户端设备702a在所采集的视频704a(其也在客户端设备702b和702c上流式传输)内渲染用于该AR效果的AR元素715a。此外,参考图7,客户端设备702b和702c也通过AR数据信道718接收该用于AR效果的AR标识符。作为响应,如图7所示,客户端设备702b在所采集的视频704b(其也在客户端设备702a和702c上流式传输)内渲染用于AR效果的AR元素720。此外,如图7所示,客户端设备702c在所采集的视频704c(其在客户端设备702a和702b上流式传输)内渲染用于AR效果的AR元素715b。
如图7所示,客户端设备702a、702b和702c在视频通话的所采集视频内针对所发送的AR效果渲染AR元素,以渲染基于AR的生日场景。在一些情况下(如图7所示),该AR效果可以包括各个客户端设备所不同的经渲染的AR元素(例如,在使用同一AR效果主题时)。例如,如图7所示,AR效果可以使得客户端设备702b在所采集的视频704b上渲染描绘了生日消息的AR元素720,同时使其他客户端设备(例如,客户端设备702a和702c)在它们各自的所采集视频中针对该基于AR的生日消息渲染相关的AR元素(例如,基于AR的庆祝五彩纸屑)。
在一些实施例中,客户端设备发送包括AR效果的AR数据。例如,AR效果可以包括以下内容的集合:基于AR的指令、基于AR的动画和/或基于AR的元素。一经接收到AR效果和/或指代AR效果的AR标识符,客户端设备可以利用基于AR的指令和/或AR元素的动画来渲染来自AR效果的AR元素。例如,基于AR的指令和/或动画可以包括用于将AR元素定位在特定位置处(例如,在视频的顶部处、在视频内的参与者用户的面部上、作为视频内的参与者用户上的可穿戴物品)的指令。另外,基于AR的指令和/或动画还可以包括用于AR元素的特定移动(例如,速度,诸如爬行、倒下和/或飞溅等特定动作)的指令。实际上,共享AR视频通话系统104使多个客户端设备能够发送具有AR元素、AR指令和/或AR动画的各种组合的AR效果。此外,在一个或多个实施例中,如以上所描述的(例如关于图3至图6D),AR效果的AR元素也可以是可交互的和/或可操纵的。
在一些实例中,客户端设备还包括在视频通话期间为AR效果而与AR数据一起被发送的参与者标识符。例如,如以上所描述的,客户端设备可以发送参与者标识符,该参与者标识符用于指定AR效果的一个或多个目标客户端设备。另外,在一些实施例中,客户端设备可以发送参与者标识符,该参与者标识符用于指定(或区分)视频通话中的多个客户端设备之间的多个AR效果。例如,在一些情况下,客户端设备发送参与者标识符,该参与者标识符用于指定AR效果的主客户端设备。然后,被指定为主客户端设备的客户端设备在视频通话期间,渲染不同于在其他客户端设备上呈现的AR效果的AR效果。
例如,主客户端设备可以渲染主(或主要)AR效果,而其他客户端设备在通过AR数据信道接收到AR效果的参与者标识符和AR数据时,渲染次要AR效果。实际上,在一些实施例中,主要AR效果可以不同于次要AR效果。作为一示例,如图7所示,在生日主题AR效果期间,主客户端设备702b可以渲染显示了生日消息的主AR效果(通过AR元素720),而其他客户端设备702a和702c可以通过AR元素715a和715b渲染显示了基于AR的五彩纸屑的次要AR效果。
在一些实例中,客户端设备在视频通话中接收AR数据并渲染相同的AR效果。在一些实施例中,客户端设备接收AR数据并且渲染统一主题但在动画上具有轻微变化(例如,生日主题,其中在视频通话期间,各个客户端设备的AR五彩纸屑具有不同颜色和尺寸)的AR效果。此外,在一些情况下,客户端设备在视频通话期间渲染临时的AR效果(例如,AR效果在从所采集视频中消失之前,渲染并显示达阈值时间量)。
在一个或多个实施例中,客户端设备发送针对视频通话中的特定客户端设备的AR效果的AR数据。实际上,共享AR视频通话系统104可以使客户端设备能够在视频通话期间发送AR效果并使得另一客户端设备单独地呈现该AR效果(例如,仅单个客户端设备或选择数量的客户端设备渲染该AR效果)。例如,在一些情况下,客户端设备在视频通话期间将AR效果的AR数据与参与者识别符(如以上所描述的)一起发送,以使得一个或多个特定其它客户端设备渲染AR效果。
另外,尽管本文中的一个或多个实施例示出了共享AR视频通话系统104在视频通话期间实现了生日主题AR效果,但在一个或多个实施例中,共享AR视频通话系统104利用AR数据信道在视频通话中的多个客户端设备之间实现各种类型的AR效果。作为一示例,客户端设备可以经由AR数据信道(其由共享AR视频通话系统104建立)来发送AR数据,以使得视频通话中的其他客户端设备在所采集视频内渲染描绘了下雪的AR效果。实际上,共享AR视频通话系统104可以实现各种AR效果,这些AR效果例如但不限于,下雨、五彩纸屑、烟花、祝贺玫瑰、周年纪念主题AR效果、婚礼主题AR效果、毕业主题AR效果、和/或节日主题AR效果。
此外,在一个或多个实施例中,共享AR视频通话系统104还可以实现修改一个或多个参与者用户的被采集的、位于视频通话中的一个或多个客户端设备的视频内的外观的AR效果。例如,共享AR视频通话系统104可以实现各种AR效果,这些AR效果例如但不限于,帽子、眼镜、胡须、服装、装束、发型、动画面罩(例如,面部彩绘、面罩、卡通耳朵、卡通眼睛)、和/或视频采集风格变化(例如,视频上的卡通效果、视频上的漫画书效果、视频上的滤镜)。实际上,在一个或多个实施例中,客户端设备接收这种AR效果并且利用客户端设备上的视频采集功能(例如,面部追踪、图形处理器、运动追踪、光追踪)来在所采集的视频内和/或在所采集的视频内所采集的参与者用户上渲染和应用AR效果。
在一些实施例中,共享AR视频通话系统104还提供用于在客户端设备的数字视频通话界面内显示的、针对AR环境、AR效果、基于AR的活动、和/或单独的AR元素的一个或多个可选AR选项。特别地,一经接收到来自该客户端设备上的数字视频通话界面的、对一个或多个可选AR选项的选择,客户端设备可以发送AR数据,以在参与视频通话的一个或多个客户端设备上共享和渲染所选择的AR选项。在一些情况下,共享AR视频通话系统104可以响应于接收到来自客户端设备的、对一个或多个可选AR选项的选择,向视频通话中的一个或多个客户端设备提供一个或多个AR元素(和/或其他AR数据),以在该一个或多个客户端设备上对AR环境、AR效果、基于AR的活动、和/或单独的AR元素进行初始化。
此外,在一些情况下,多个参与客户端设备中的一个或多个参与客户端设备可以发送附加的(或替代的)AR环境、AR效果、基于AR的活动、和/或单独的AR元素(例如,经由对替代的AR环境、AR效果、基于AR的活动、和/或单独的AR元素的选择)。实际上,在一个或多个实施例中,共享AR视频通话系统104使视频通话中的多个客户端设备能够在识别到AR数据信道内的指示该选择的AR数据(或新共享的AR数据)时,改变或渲染新的AR环境、AR效果、基于AR的活动、和/或单独的AR元素。特别地,共享AR视频通话系统104可以使多个客户端设备能够在视频通话期间通过利用AR数据信道,而在各种AR环境、各种AR效果、各种基于AR的活动、和/或各种单独的AR元素之间切换。
在一些情况下,在视频通话期间,共享AR视频通话系统104还可以提供用于在客户端设备的数字视频通话界面内显示的一个或多个可选选项,该一个或多个可选项用于为共享的AR环境、AR效果、基于AR的活动、和/或单独的AR元素选择一个或多个主参与者设备。例如,在对共享的AR环境、AR效果、基于AR的活动、和/或单独的AR元素的选择期间,客户端设备还可以接收对一个或多个主用户(或主客户端设备)的选择。然后,客户端设备可以通过AR数据信道发送AR数据,以利用所选择的一个或多个主用户的一个或多个参与者标识符来共享AR环境、AR效果、基于AR的活动、和/或单独的AR元素。实际上,视频通话中的一个或多个接收客户端设备可以(如以上所描述的)利用参与者标识符来确定是否渲染AR环境、AR效果、基于AR的活动、和/或单独的AR元素,和/或确定是否渲染主要AR效果与次要AR效果。
此外,在一个或多个实施例中,共享AR视频通话系统104可以在视频通话期间将音频部件实现到共享的AR环境、AR效果、基于AR的活动、和/或单独的AR元素。例如,客户端设备还可以通过AR数据信道发送音频信息(或音频标识符),使得视频通话中的客户端设备播放用于AR环境、AR效果、基于AR的活动、和/或单独的AR元素的音频(例如,与AR元素相关的音频)。在一些情况下,共享AR视频通话系统104可以在多个客户端设备之间的视频通话期间,为一个或多个AR环境、一个或多个AR效果、一个或多个基于AR的活动、和/或一个或多个AR元素提供可利用的音频数据的库。
另外,在一个或多个实施例中,共享AR视频通话系统104生成图形用户界面以提供用于共享AR视频通话的调试工具。特别地,在一些实施例中,在视频通话期间,共享AR视频通话系统104利用一个或多个模拟视频通话参与者,提供用于预览共享AR效果的可选选项。实际上,共享AR视频通话系统104可以提供用于选择预览视频通话的一个或多个模拟视频通话参与者(例如,被描绘为视频通话参与者的、预先录制的视频通话参与者或基于AI的视频通话参与者)的可选选项。另外,共享AR视频通话系统104可以提供用于选择特定AR效果的可选选项。一经接收到对AR效果的选择,共享AR视频通话系统104可以提供用于显示的、在一个或多个模拟视频通话参与者上的AR效果的模拟预览。在一些情况下,共享AR视频通话系统104还可以在具有AR效果预览的模拟视频通话期间,提供用于显示AR数据消息、用于发送AR数据消息、用于显示AR数据传输历史的一个或多个可选选项。
在一个或多个实施例中,共享AR视频通话系统104在具有各种部件和能力的计算设备上实现。共享AR视频通话系统104的一个或多个部件可以包括软件、硬件、或它们两者。例如,共享AR视频通话系统104的一个或多个部件可以包括存储在计算机可读存储介质上的、可被一个或多个计算设备(例如,客户端设备或服务器设备)的处理器执行的一个或多个指令。共享AR视频通话系统104的计算机可执行指令在被一个或多个处理器执行时,可以使一个或多个计算设备执行本文所描述的方法。替代地,共享AR视频通话系统104的一个或多个部件可以包括硬件,例如执行某种功能或某一组功能的专用处理设备。替代地,共享AR视频通话系统104的一个或多个部件可以包括计算机可执行指令和硬件的组合。
此外,共享AR视频通话系统104的一个或多个部件例如可以被实现为一个或多个操作系统,被实现为一个或多个独立应用程序,被实现为应用程序的一个或多个模块,被实现为一个或多个插件,被实现为可由其他应用程序调用的一个或多个库函数或函数,和/或被实现为云计算模型。因此,共享AR视频通话系统104的一个或多个部件可以被实现为独立应用程序,例如桌面或移动应用程序。此外,共享AR视频通话系统104的一个或多个部件可以被实现为托管在远程服务器上的一个或多个基于web的应用程序。替代地或附加地,共享AR视频通话系统104的一个或多个部件可以在一套移动设备应用程序(application)或“应用程序(app)”中实现。
图1至图7、对应的文本和示例提供了共享AR视频通话系统104的许多不同的方法、系统、设备和非暂态计算机可读介质。除了前述内容之外,如图8和图9所示,还可以根据包括用于实现特定结果的多个动作的流程图来描述一个或多个实施例。图8和图9可以用更多或更少的动作来执行。此外,图8和图9所示的多个动作可以以不同的顺序来执行。另外,图8所描述的多个动作和图9所描述的多个动作可以重复或彼此并行地执行,或者与相同或类似动作的不同实例并行地执行。
例如,图8示出了根据一个或多个实施方式的用于在视频通话内渲染AR元素的一系列动作800的流程图。尽管图8示出了根据一个或多个实施例的多个动作,但替代实施例可以省略、增加、重新排序和/或修改图8所示的多个动作中的任何动作。在一些实施方式中,图8中的多个动作作为方法的一部分来执行。替代地,非暂态计算机可读介质可以在其上存储多个指令,这些指令在被至少一个处理器执行时,使得计算设备执行图8中的动作。在一些实施例中,系统执行图8中的动作。例如,在一个或多个实施例中,系统包括至少一个处理器。该系统还可以包括非暂态计算机可读介质,该非暂态计算机可读介质包括多个指令,这些指令在被该至少一个处理器执行时,使得该系统执行图8中的动作。
如图8所示,一些列动作800包括与接收方参与者设备进行视频通话的动作810。特别地,动作810可以包括,由客户端设备通过经由为视频通话建立的视频数据信道接收来自接收方参与者设备的视频数据,来与该接收方参与者设备进行视频通话。
此外,一系列动作800包括在数字视频通话界面内显示视频的动作820。特别地,动作820可以包括在数字视频通话界面内显示由客户端设备采集的第一视频。另外,动作820可以包括通过渲染经由视频数据通道接收到的视频数据,在数字视频通话界面内显示来自接收方参与者设备的第二视频。另外,动作820可以包括在数字视频通话界面内显示来自接收方参与者设备的、描绘了与该第二视频内所描绘的接收方用户交互的附加增强现实效果的第二视频。另外,动作820可以包括检测由客户端设备采集的第一视频内的用户移动交互,并且基于该用户移动交互来修改第一视频内的增强现实元素。
一系列动作800包括通过增强现实数据信道接收增强现实数据的动作830。特别地,动作830可以包括通过增强现实数据信道接收来自接收方参与者设备的、指示增强现实元素的增强现实数据,该增强现实数据信道是针对与接收方参与者设备的视频通话而建立的。另外,动作830可以包括通过增强现实数据信道接收来自接收方参与者设备的、指示对增强现实元素的修改的附加增强现实数据。
此外,动作830可以包括从附加的增强现实数据中识别参与者标识符。另外,动作830可以包括从附加增强现实数据中识别对象向量。此外,动作830可以包括在增强现实数据内识别指示了一客户端设备作为主参与者的选择。此外,动作830可以包括通过对增强现实数据信道中的一组增强现实数据进行过滤,来接收指示了增强现实元素的增强现实数据。
此外,一系列动作800包括渲染增强现实元素的动作840。特别地,动作840可以包括基于接收到的增强现实数据,在数字视频通话界面内所显示的第一视频内渲染增强现实元素。此外,动作840可以包括在数字视频通话界面内所显示的第一视频内渲染、用于共享在来自接收方参与者设备的第二视频内所描绘的增强现实环境场景的增强现实元素。例如,增强现实元素可以修改第一视频的背景、前景或视频滤镜中的至少一者。此外,动作840可以包括在第一视频内渲染用于显示与第一视频内所描绘的用户交互的增强现实效果的增强现实元素。另外,动作840可以包括基于将客户端设备指示为主参与者的选择,在客户端设备上的第一视频内,渲染与在第二视频中显示的附加增强现实效果不同的增强现实效果。
另外,动作840可以包括基于附加增强现实数据,来修改第一视频内的增强现实元素。在一些情况下,动作840包括:通过渲染经由视频数据信道接收到的视频数据,在数字视频通话界面内显示来自接收方参与者设备的、描绘了附加增强现实元素正退出该第二视频的画面的第二视频;以及基于所接收的附加增强现实数据在第一视频内渲染描绘了附加增强现实元素正进入第一视频的画面的附加增强现实元素。此外,动作840可以包括:通过参与者标识符与客户端设备匹配,来确定在第一视频内渲染附加增强现实元素。另外,动作840可以包括利用对象向量,在第一视频内的特定位置处渲染附加增强现实元素并使该附加增强现实元素沿特定方向移动。
现转到图9,图9示出了根据一个或多个实施方式的用于建立共享增强现实视频通话的一系列动作900的流程图。尽管图9示出了根据一个或多个实施例的多个动作,但替代实施例可以省略、增加、重新排序和/或修改图9所示的多个动作中的任何动作。在一些实施方式中,图9中的多个动作作为一方法的一部分来执行。替代地,非暂态计算机可读介质可以在其上存储多个指令,这些指令在被至少一个处理器执行时,使得计算设备执行图9中的动作。在一些实施例中,系统执行图9中的动作。例如,在一个或多个实施例中,系统包括至少一个处理器。该系统还可以包括非暂态计算机可读介质,该非暂态计算机可读介质包括多个指令,这些指令在被该至少一个处理器执行时,使得该系统执行图9中的动作。
如图9所示,一系列动作900包括在多个参与者设备之间建立共享增强现实视频通话的动作910。特别地,动作910可以包括通过在第一参与者设备与第二参与者设备之间建立视频数据信道和增强现实数据信道,而在该第一参与者设备和该第二参与者设备之间建立共享增强现实视频通话。
一系列动作900还包括第一参与者设备和第二参与者设备发送视频的动作920。特别地,动作920可以包括第一参与者设备采集第一视频流并且经由视频数据信道向第二参与者设备发送该第一视频流。此外,动作920可以包括第二参与者设备采集第二视频流并且经由视频数据信道向第一参与者设备发送该第二视频流。动作920还可以包括第一参与者设备经由视频数据信道向第二参与者设备发送在第一视频流内描绘了增强现实元素的第一视频流。
此外,一系列动作900包括第一参与者设备经由增强现实数据信道发送增强现实标识符的动作930。特别地,动作930可以包括第一参与者设备经由增强现实数据信道向第二参与者设备发送增强现实标识符。此外,动作930可以包括第一参与者设备发送用于指示与增强现实元素的交互的附加增强现实标识符。另外,动作930可以包括第一参与者设备经由增强现实数据信道向第二参与者设备发送,用于指示增强现实元素的对象向量的增强现实标识符。另外,动作930可以包括第一参与者设备经由增强现实数据信道向多个参与者设备发送增强现实标识符。
一系列动作900还包括第二参与者设备渲染增强现实元素的动作940。特别地,动作940可以包括第二参与者设备使用与增强现实标识符相关联的增强现实元素渲染第二视频流。此外,动作940可以包括:第一参与者设备使用与增强现实标识符相关联的附加增强现实元素渲染第一视频流,以共享在来自第二参与者设备的第二视频流内所描绘的增强现实环境场景。此外,动作940可以包括第二参与者设备基于附加增强现实标识符,使用对增强现实元素的修改渲染第二视频流。
另外,动作940可以包括:一经经由增强现实数据信道向第二参与者设备发送了增强现实标识符,第一参与者设备经由视频数据信道向第二参与者设备发送描绘了增强现实元素正退出第一视频流的画面的第一视频流。此外,动作940可以包括:一经第一参与者设备经由增强现实数据信道向第二参与者设备发送增强现实标识符,第二参与者设备使用与增强现实标识符相关联的正进入第二视频流的画面的增强现实元素渲染第二视频流。此外,动作940可以包括第二参与者设备利用对象向量使用与增强现实标识符相关联的、在特定位置处且沿特定方向移动的增强现实元素渲染第二视频流。
此外,动作940可以包括第二参与者设备使用用于显示与第二视频流内所描绘的用户交互的增强现实效果的增强现实元素渲染第二视频流。另外,动作940可以包括第一参与者设备使用与第一视频流内所描绘的用户交互的附加增强现实效果渲染第一视频流。此外,动作940可以包括多个参与者设备使用与增强现实标识符相关联的增强现实元素渲染视频流。
本公开的实施例可以包括或利用包括计算机硬件(例如,一个或多个处理器和系统存储器)的专用或通用计算机,如以下更详细论述的。本公开范围内的实施例还包括用于携载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。特别地,本文所描述的多个过程中的一个或多个过程可以至少部分地被实现为体现在非暂态计算机可读介质中且可被一个或多个计算设备(例如,本文所描述的媒体内容访问设备中的任何一个)执行的多个指令。一般来说,处理器(例如,微处理器)接收来自非暂态计算机可读介质(例如,存储器)的多个指令,并执行那些指令,从而执行一个或多个过程,该一个或多个过程包括本文所描述的多个过程中的一个或多个过程。
计算机可读介质可以是可被通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种明显不同种类的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括随机存取存储器(Random-AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、电子可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)、固态驱动器(solid state drive,“SSD”)(例如,基于RAM)、闪存、相变存储器(phase-change memory,“PCM”)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备、或可用于存储计算机可执行指令或数据结构的形式的期望的程序代码工具且可被通用或专用计算机访问的任何其他介质。
“网络”被定义为使能够在多个计算机系统和/或多个模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或另一通信连接(要么硬连线、无线,要么硬连线或无线的组合)向计算机传送或提供信息时,该计算机将该连接适当地视为传输介质。传输介质可以包括网络和/或数据链路,该网络和/或数据链路可以用于传输计算机可执行指令或数据结构的形式的期望的程序代码工具,并且可以被通用或专用计算机访问。以上的各种组合也应被包括在计算机可读介质的范围内。
此外,计算机可执行指令或数据结构形式的程序代码工具可以在到达各种计算机系统组件时,从传输介质自动传送到非暂态计算机可读存储介质(装置)(或从非暂态计算机可读存储介质自动传送到传送介质)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“网络接口控制器(network interfacecontroller,NIC)”)内的RAM中,并且然后被最终传送到计算机系统RAM和/或被最终传送到计算机系统处的较不易失性的计算机存储介质(设备)。因此,应当理解的是,非暂态计算机可读存储介质(设备)可以被包括在也(或甚至主要)利用传输介质的计算机系统部件中。
计算机可执行指令例如包括多个指令和数据,这些指令和数据在被处理器执行时使得通用计算机、专用计算机或专用处理设备执行某种功能或某一组功能。在一些实施例中,计算机可执行指令被通用计算机执行,以将该通用计算机变成实现本公开的元件的专用计算机。计算机可执行指令例如可以是二进制代码、诸如汇编语言的中间格式指令、或甚至源代码。尽管已经用针对结构特征和/或方法动作的语言描述了本主题,但将理解的是,所附权利要求中所限定的主题不必限于以上所描述的特征或动作。而是,所描述的特征和动作是作为实现权利要求的示例形式而公开的。
本领域技术人员将认识到,本公开可以在具有许多类型的计算机系统配置的多种网络计算环境中实践,这些网络计算环境包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、移动电话、个人数字助理(personal digitalassistant,PDA)、平板电脑、寻呼机、路由器和交换机等。本公开还可以在分布式系统环境中实践,在这些分布式系统环境中,通过网络而连接(要么通过硬连线数据链路、无线数据链路来连接,要么通过硬连线数据链路和无线数据链路的组合来连接)的本地和远程计算机系统均执行任务。在分布式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。
本公开的实施例还可以在云计算环境中实现。如本文所使用的,术语“云计算”是指用于实现对可配置计算资源的共享池进行按需网络访问的模型。例如,可以在市场环境中采用云计算来提供对可配置计算资源的共享池的普遍存在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化而快速供应,并且以低的管理精力或服务提供交互而发布,并且然后被相应地改变规模。
云计算模型可以由各种特性组成,这些特性例如为按需自助服务、宽带接入、资源池、快速弹性、测量服务等。云计算模型还可以体验各种服务模型,例如,软件即服务(Software as a Service,“SaaS”)、平台即服务(Platform as a Service,“PaaS”)和基础设施即服务(Infrastructure as a Service,“IaaS”)。云计算模型也可以使用不同的部署模型来部署,这些部署模型例如为私有云、社区云、公共云、混合云等。另外,如本文所使用的,术语“云计算环境”是指在其中采用云计算的环境。
图10示出了可被配置为执行以上所描述的多个过程中的一个或多个过程的、示例计算设备1000的框图。将认识到,一个或多个计算设备(例如,计算设备1000)可以表示以上所描述的计算设备(例如,一个或多个服务器设备102、和/或客户端设备108a和108b-108n)。在一个或多个实施例中,计算设备1000可以是移动设备(例如,移动电话、智能手机、PDA、平板电脑、笔记本电脑、摄像头、追踪器、手表、可穿戴设备、头戴式显示器等)。在一些实施例中,计算设备1000可以是非移动设备(例如,台式计算机、或另一类型的客户端设备)。此外,计算设备1000可以是包括基于云的处理能力和存储能力的服务器设备。
如图10所示,计算设备1000可以包括可通过通信基础设施(例如,总线1012)通信耦接的一个或多个处理器1002、存储器1004、存储设备1006、输入/输出接口1008(或“I/O接口1008”)和通信接口1010。尽管在图10中示出了计算设备1000,但图10所示的多个部件不旨在进行限制。在其他实施例中,可以使用附加的部件或替代的部件。此外,在某些实施例中,计算设备1000包括比图10所示的那些部件更少的部件。现将更详细地描述图10所示的计算设备1000的多个部件。
在特定实施例中,该一个或多个处理器1002包括用于执行多个指令(例如,构成计算机程序的那些指令)的硬件。作为示例而非通过限制,为了执行多个指令,该一个或多个处理器1002可以从内部寄存器、内部高速缓冲存储器、存储器1004、或存储设备1006中检索(或提取)多个指令并对这些指令进行解码和执行。
计算设备1000包括存储器1004,该存储器1004耦接到该一个或多个处理器1002。存储器1004可以用于存储数据、元数据、和供一个或多个处理器执行的程序。存储器1004可以包括易失性存储器和非易失性存储器中的一者或多者,例如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储器。存储器1004可以是内部存储器或分布式存储器。
计算设备1000包括存储设备1006,该存储设备1006包括用于存储数据或指令的存储器。作为示例而非通过限制,存储设备1006可以包括以上所描述的非暂态存储介质。存储设备1006可以包括硬盘驱动器(hard disk drive,HDD)、闪存、通用串行总线(UniversalSerial Bus,USB)驱动器、或这些存储设备或其他存储设备的组合。
如图所示,计算设备1000包括一个或多个I/O接口1008,该一个或多个I/O接口1008被提供以允许用户向计算设备1000提供输入(例如,用户轻触),接收来自计算设备1000的输出,以及以其他方式向计算设备1000传送数据和传送来自计算设备1000的数据。这些I/O接口1008可以包括鼠标、小键盘或键盘、触摸屏、摄像头、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备、或这些I/O接口1008的组合。触摸屏可用触笔或手指激活。
I/O接口1008可以包括用于向用户呈现输出的一个或多个设备,包括但不限于,图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、和一个或多个音频驱动器。在某些实施例中,I/O接口1008被配置为向显示器提供图形数据以用于呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可服务于特定实施方式的任何其他图形内容。
计算设备1000还可以包括通信接口1010。通信接口1010可以包括硬件、软件或它们两者。通信接口1010为计算设备与一个或多个其他计算设备或一个或多个网络之间的通信(例如,基于数据包的通信)提供一个或多个接口。作为示例而非通过限制,通信接口1010可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或者用于与无线网络(例如,WI-FI)进行通信的无线网络接口控制器(wireless NIC,WNIC)或无线适配器。计算设备1000还可以包括总线1012。总线1012可以包括将计算设备1000的多个部件彼此连接的硬件、软件或它们两者。作为一示例,总线1012可以包括一种或多种类型的总线。
本发明的实施例可以包括人工现实系统或者结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(virtual reality,VR)、增强现实(AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成内容、或与采集的内容(例如,真实世界照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中的任何一种可以在单个通道中或在多个通道(例如,向观看者产生三维效果的立体视频)中呈现。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务、或它们的某种组合相关联,这些应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一个或多个观看者提供人工现实内容的任何其它硬件平台。
如以上所提及的,通信系统可以被包括在社交网络系统中。社交网络系统可以使它的多个用户(例如,个人或组织)能够与该系统交互并且彼此交互。社交网络系统可以利用来自用户的输入,在社交网络系统中创建并存储与用户相关联的用户资料。如以上所描述的,用户资料可以包括人口统计信息、通信信道信息和关于用户的个人兴趣的信息。
更详细地,用户资料信息例如可以包括生物信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息,这些类型的描述性信息例如为工作经历、教育历史、爱好或偏好、兴趣、亲密度、或位置。兴趣信息可以包括与一个或多个类别相关的兴趣,该一个或多个类别可以是通用的或特定的。作为一示例,如果用户“喜欢”关于鞋的品牌的物品,则该类别可以是品牌。
社交网络系统还可以利用来自用户的输入,创建和存储该用户与社交网络系统的其他用户的关系的记录,以及提供用于促进用户之间或用户之中的社交交互的服务(例如,涂鸦墙、照片共享、在线日历和事件组织、消息收发、游戏、或广告)。而且,社交网络系统可以允许用户将照片和其他多媒体内容项目公布到用户的资料页面(通常被称为“涂鸦墙(wall post)”或“时间轴帖子(timeline post)”)或相册中,依据用户的配置隐私设置,以上的两者对社交网络系统的其他用户而言是可访问的。本文中,术语“朋友”可以指用户经由社交网络系统已与之形成连接、关联或关系的社交网络系统中的任何其他用户。
图11示出了社交网络系统的示例网络环境1100。网络环境1100包括客户端设备1106、联网系统1102(例如,社交网络系统和/或电子消息收发系统)以及通过网络1104而连接到彼此的第三方系统1108。尽管图11示出了客户端设备1106、联网系统1102、第三方系统1108和网络1104的特定布置,但本公开考虑了客户端设备1106、联网系统1102、第三方系统1108和网络1104的任何合适的布置。作为示例而非通过限制,客户端设备1106、联网系统1102和第三方系统1108中的两者或更多者可以绕过网络1104而直接连接到彼此。作为另一示例,客户端设备1106、联网系统1102和第三方系统1108中的两者或更多者可以彼此在物理上或逻辑上整体或部分地位于同一位置。此外,尽管图11示出了特定数量的客户端设备1106、联网系统1102、第三方系统1108和网络1104,但本公开考虑任何合适数量的客户端设备1106、联网系统1102、第三方系统1108和网络1104。作为示例而非通过限制,网络环境1100可以包括多个客户端设备1106、多个联网系统1102、多个第三方系统1108和多个网络1104。
本公开考虑了任何合适的网络1104。作为示例而非通过限制,网络1104的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线局域网(wireless LAN,WLAN)、广域网(widearea network,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitan areanetwork,MAN)、因特网的一部分、公共交换电话网络(Public Switched TelephoneNetwork,PSTN)的一部分、蜂窝电话网络、或这些网络中的两个或更多个网络的组合。网络1104可以包括一个或多个网络1104。
链路可以将客户端设备1106、联网系统1102和第三方系统1108连接到通信网络1104或连接到彼此。本公开考虑任何合适的链路。在特定实施例中,一个或多个链路包括一个或多个有线链路(例如数字用户线路(Digital Subscriber Line,DSL)或电缆数据服务接口规范(Data Over Cable Service Interface Specification,DOCSIS))、无线链路(例如Wi-Fi或全球微波接入互操作性(Worldwide Interoperability for MicrowaveAccess,WiMAX))或光学链路(例如同步光纤网络(Synchronous Optical Network,SONET)或同步数字系列(Synchronous Digital Hierarchy,SDH))。在特定实施例中,一条或多条链路各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路、或两条或更多条这些链路的组合。在整个网络环境1100中,多条链路不一定是相同的。在一个或多个方面,一条或多条第一链路可以不同于一条或多条第二链路。
在特定实施例中,客户端设备1106可以是包括硬件、软件、或嵌入式逻辑部件或两个或更多个这种部件的组合的电子设备,并且该电子设备能够执行由客户端设备1106实现或支持的适当功能。作为示例而非通过限制,客户端设备1106可以包括计算机系统,该计算机系统例如为增强现实显示设备、台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、其他合适的电子设备、或它们的任何合适的组合。本公开考虑了任何合适的客户端设备1106。客户端设备1106可以使客户端设备1106处的网络用户能够接入网络1104。客户端设备1106可以使其用户能够与其他客户端设备1106处的其他用户通信。
在特定实施例中,客户端设备1106可以包括网页浏览器,并且可以具有一个或多个附属件、插件或其他扩展件。客户端设备1106处的用户可以进入全球资源定位器(Uniform Resource Locator,URL)或进入将网页浏览器引导到特定服务器(例如,服务器或与第三方系统1108相关联的服务器)的其它地址,并且该网页浏览器可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并将该HTTP请求传送到服务器。服务器可以接收HTTP请求,并且响应于该HTTP请求向客户端设备1106传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端设备1106可以基于来自服务器的HTML文件呈现网页以用于呈现给用户。本公开考虑了任何合适的网页文件。作为示例而非通过限制,网页可以根据特定需要而根据HTML文件、可扩展超文本标记语言(ExtensibleHyper Text Markup Language,XHTML)文件或可扩展标记语言(Extensible MarkupLanguage,XML)文件来呈现。这些页面还可以执行脚本,例如但不限于,用JAVASCRIPT、JAVA、MICROSOFTSILVERLIGHT、以及标记语言和诸如AJAX(异步JAVASCRIPT和XML)等脚本的组合等编写的那些脚本。在本文中,在适当的情况下,对网页的引用包含一个或多个对应的网页文件(浏览器可以使用该一个或多个对应的网页文件来呈现网页),反之亦然。
在特定实施例中,联网系统1102可以是可托管在线社交网络的网络可寻址计算系统。联网系统1102可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为用户资料数据、概念资料(concept-profile)数据、社交图谱信息、或与在线社交网络相关的其他合适的数据。联网系统1102可以要么被网络环境1100中的其他组件直接访问,要么经由网络1104被网络环境1100中的其他组件访问。在特定实施例中,联网系统1102可以包括一个或多个服务器。每个服务器可以是单一服务器、或跨越多个计算机或多个数据中心的分布式服务器。服务器可以具有各种类型,例如但不限于,网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文所描述的功能或过程的另一服务器、或它们的任何组合。在特定实施例中,每个服务器可以包括用于执行由服务器实现或支持的适当功能的硬件、软件、或嵌入式逻辑部件或两个或更多个这种部件的组合。在特定实施例中,联网系统1102可以包括一个或多个数据存储库。数据存储库可以用于存储各种类型的信息。在特定实施例中,可以根据特定数据结构来组织存储在数据存储库中的信息。在特定实施例中,每个数据存储器可以是关系型(relational)数据库、列式(columnar)数据库、关联(correlation)数据库、或其他合适的数据库。尽管本公开描述了或示出了特定类型的数据库,但本公开考虑了任何合适类型的数据库。特定实施例可以提供使客户端设备1106、联网系统1102或第三方系统1108能够管理、检索、修改、添加或删除存储在数据存储中的信息的接口。
在特定实施例中,联网系统1102可以将一个或多个社交图谱存储在一个或多个数据存储库中。在特定实施例中,社交图谱可以包括多个节点—其可以包括多个用户节点(每个用户节点对应于特定用户)或多个概念节点(每个概念节点对应于特定概念)—以及连接这些节点的多条边。联网系统1102可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由联网系统1102加入在线社交网络,并且然后将连接(例如,关系)添加到联网系统1102中他们想要连接到的多个其他用户。在本文中,术语“朋友”可以指联网系统1102中的、一用户已经经由联网系统1102与之形成连接、关联或关系的任何其他用户。
在特定实施例中,联网系统1102可以向用户提供对由联网系统1102支持的各种类型的项目或对象采取行动的能力。作为示例而非通过限制,项目和对象可以包括联网系统1102的用户可以属于的组或社交网络、用户可能感兴趣的事件或日程表条目、用户可以使用的基于计算机的应用、允许用户经由服务购买或售卖项目的交易、用户可执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在联网系统1102中展示的或由第三方系统1108的外部系统展示的任何事物交互,该第三方系统1108的外部系统与联网系统1102分开并且经由网络1104耦接到联网系统1102。
在特定实施例中,联网系统1102可能能够链接各种实体。作为示例而非通过限制,联网系统1102可以使多个用户能够彼此交互,以及接收来自第三方系统1108或其他实体的内容,或者允许用户通过应用程序编程接口(API)或其他通信信道与这些实体交互。
在特定实施例中,第三方系统1108可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口,该一个或多个接口包括但不限于,API、一个或多个网页服务、一个或多个内容源、一个或多个网络、或任何其他合适的部件(例如,服务器可以与其通信)。第三方系统1108可以由与操作联网系统1102实体不同的实体操作。然而,在特定实施例中,联网系统1102和第三方系统1108可以彼此结合操作,以向联网系统1102或第三方系统1108的用户提供社交网络服务。在这种意义中,联网系统1102可以提供平台或中枢(backbone),其他系统(例如,第三方系统1108)可以使用该平台或中枢在因特网上向用户提供社交网络服务和功能。
在特定实施例中,第三方系统1108可以包括第三方内容对象提供器。第三方内容对象提供器可以包括内容对象的一个或多个源,该内容对象的一个或多个源可以被传送到客户端设备1106。作为示例而非通过限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为另一示例而非通过限制,内容对象可以包括激励内容对象,例如优惠券、折扣券、礼品券、或其它合适的激励内容对象。
在特定实施例中,联网系统1102还包括多个用户生成的内容对象,这些用户生成的内容对象可以加强用户与联网系统1102的交互。用户生成的内容对象可以包括用户可向联网系统1102添加、上传、发送、或“发布”的任何内容。作为一示例而非通过限制,用户将帖子从客户端设备1106传送到联网系统1102。帖子可以包括诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐、或其他类似数据或媒体等数据。还可由第三方系统1108通过“通信信道”(例如,新闻馈送或流)将内容添加到联网系统1102。
在特定实施例中,联网系统1102可以包括各种服务器、子系统、程序、模块、日志和数据存储库。在特定实施例中,联网系统1102可以包括以下中的一个或多个:网页服务器、操作日志记录器(action logger)、API请求服务器、相关性和排名引擎(relevance-and-rank engine)、内容对象分类器、通知控制器、操作日志、第三方内容对象公布日志(third-party-content-object-exposure log)、推理模块、授权/隐私服务器、搜索模块、广告定向模块(advertisement-targeting module)、用户界面模块、用户资料存储库、连接存储库、第三方内容存储库、或位置存储库。联网系统1102还可以包括诸如网络接口、安全机构、负载平衡器(load balancer)、故障切换(failover)服务器、管理和网络操作控制台(management-and-network-operation console)、其他合适的部件、或它们的任何合适组合等合适的部件。在特定实施例中,联网系统1102可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料例如可以包括生物信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息,这些类型的描述性信息例如为工作经历、教育历史、爱好或偏好、兴趣、亲密度、或位置。兴趣信息可以包括与一个或多个类别相关的兴趣。这些类别可以是通用的或特定的。作为一示例而非通过限制,如果用户“喜欢”关于鞋的品牌的物品,则该类别可以是品牌、或“鞋”或“衣服”的一般类别。连接存储库可以用于存储关于用户的连接信息。连接信息可以指示具有相似或共同工作经历、组成员资格、爱好、教育历史的用户,或者指示以任何方式与共同属性相关或共享共同属性的用户。连接信息还可以包括不同用户和内容(内部和外部两者)之间的用户定义连接。网页服务器可以用于经由网络1104将联网系统1102链接到一个或多个客户端设备1106或一个或多个第三方系统1108。网页服务器可以包括邮件服务器、或用于在联网系统1102与一个或多个客户端设备1106之间接收和路由消息的其他消息收发功能。API请求服务器可以允许第三方系统1108通过调用一个或多个API从联网系统1102访问信息。操作日志记录器可以用于接收来自网页服务器的关于用户打开或关闭联网系统1102的动作的信息。结合操作日志,可以维护对第三方内容对象的用户公布的第三方内容对象日志。通知控制器可以向客户端设备1106提供关于内容对象的信息。可以将信息作为通知推送到客户端设备1106,或者可以响应于接收到来自客户端设备1106的请求而从客户端设备1106提取信息。
授权服务器可以用于对联网系统1102执行一个或多个用户的隐私设置。用户的隐私设置确定可以如何共享与用户相关联的特定信息。授权服务器例如可以通过设置合适的隐私设置,来允许用户选择允许或选择不允许联网系统1102记录它们的动作或与其他系统(例如,第三方系统1108)共享它们的动作。第三方内容对象存储库可以用于存储接收到的来自第三方(例如,第三方系统1108)的内容对象。位置存储库可以用于存储接收到的来自与用户相关联的客户端设备1106的位置信息。广告定价模块(Advertisement-pricingmodule)可以结合社交信息、当前时间、位置信息或其他合适的信息,来以通知的形式向用户提供相关广告。
图12示出了示例社交图谱1200。在特定实施例中,联网系统1102可以将一个或多个社交图谱1200存储在一个或多个数据存储库中。在特定实施例中,社交图谱1200可以包括多个节点—其可以包括多个用户节点1202或多个概念节点1204—以及连接这些节点的多条边1206。出于教导的目的,图12所示的示例社交图谱1200以二维可视化图谱表示形式显示。在特定实施例中,联网系统1102、客户端设备1106或第三方系统1108可以访问社交图谱1200和相关的社交图谱信息,以用于合适的应用。社交图谱1200的多个节点和多条边例如可以作为数据对象而存储在数据存储库(例如社交图谱数据库)中。这种数据存储库可以包括社交图谱1200的多个节点或多条边的一个或多个可搜索或可查询的索引。
在特定实施例中,用户节点1202可以对应于联网系统1102的用户。作为一示例而非通过限制,用户可以是个体(人类用户)、实体(例如,企业、公司或第三方应用)、或与联网系统1102交互或通信或通过联网系统1102交互或通信的组(例如,个体组或实体组)。在特定实施例中,当用户在联网系统1102上注册账户时,联网系统1102可以创建与该用户相对应的用户节点1202,并将该用户节点1202存储在一个或多个数据存储库中。在适当的情况下,本文所描述的用户和用户节点1202可以指注册用户和与注册用户相关联的用户节点1202。附加地或作为替代,在适当的情况下,本文所描述的用户和用户节点1202可以指未在联网系统1102上注册的用户。在特定实施例中,用户节点1202可以与由用户提供的信息或由各种系统(其包括联网系统1102)收集的信息相关联。作为一示例而非通过限制,用户可以提供他或她的姓名、资料图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣、或其他人口统计信息。在特定实施例中,用户节点1202可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与用户相关联的信息。在特定实施例中,用户节点1202可以对应于一个或多个网页。
在特定实施例中,概念节点1204可以对应于概念。作为一示例而非通过限制,概念可以对应于地点(例如,电影院、餐馆、地标、或城市)、网站(例如,与联网系统1102相关联的网站、或与web应用服务器相关联的第三方网站)、实体(例如,人、公司、组、运动队、或名人)、可位于联网系统1102内或外部服务器(例如,web应用服务器)上的资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档、或应用程序)、不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、想法、照片、或书面作品)、游戏、活动、想法或理论、另一合适的概念、或两个或更多个这种概念。概念节点1204可以与由用户提供的概念的信息或由各种系统(其包括联网系统1102)收集的信息相关联。作为示例而非通过限制,概念的信息可以包括名称或标题、一个或多个图像(例如,书的封面页的图像)、位置(例如,地址或地理位置)、网站(其可以与URL相关联)、联系信息(例如,电话号码或电子邮件地址)、其他合适的概念信息、或这种信息的任何合适的组合。在特定实施例中,概念节点1204可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与概念节点1204相关联的信息。在特定实施例中,概念节点1204可以对应于一个或多个网页。
在特定实施例中,社交图谱1200中的节点可以表示网页(其可以被称为“资料页面”)或者由网页表示。资料页面可以由联网系统1102托管或访问。资料页面还可以被托管在与第三方系统1108相关联的第三方网站上。作为一示例而非通过限制,对应于特定外部网页的资料页面可以是特定外部网页,并且该资料页面可以对应于特定概念节点1204。资料页面可以由所有其他用户或所选择的其他用户的子集查看。作为一示例而非通过限制,用户节点1202可以具有对应的用户资料页面,在对应的用户资料页面中,对应的用户可以添加内容、做出声明、或以其他方式表达他自己或她自己。作为另一示例而非通过限制,概念节点1204可以具有对应的概念资料页面,在对应的概念资料页面中,一个或多个用户可以添加内容、做出声明、或表达他们自己,特别是在对应于概念节点1204的概念方面。
在特定实施例中,概念节点1204可以表示由第三方系统1108托管的第三方网页或资源。第三方网页或资源可以包括其他元素之中的内容、可选图标或其他图标、或表示动作或活动的其他可交互对象(其例如可以用JavaScript、AJAX或PHP代码实现)。作为一示例而非通过限制,第三方网页可以包括诸如“喜欢”、“签到”、“吃”、“推荐”或其他合适的动作或活动等可选图标。查看第三方网页的用户可以通过选择多个图标中的一个图标(例如,“吃”)来执行动作,从而使得客户端设备1106向联网系统1102发送指示用户动作的消息。响应于该消息,联网系统1102可以在对应于用户的用户节点1202与对应于第三方网页或资源的概念节点1204之间创建边(例如,“吃”边),并且将边1206存储在一个或多个数据存储库中。
在特定实施例中,社交图谱1200中的一对节点可以通过一个或多个边1206而连接到彼此。连接一对节点的边1206可以表示这对节点之间的关系。在特定实施例中,边1206可以包括或表示与一对节点之间的关系相对应的一个或多个数据对象或属性。作为一示例而非通过限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,联网系统1102可以向第二用户发送“朋友请求”。如果第二用户确认该“朋友请求”,则联网系统1102可以在社交图谱1200中创建将第一用户的用户节点1202连接到第二用户的用户节点1202的边1206,并将该边1206作为社交图谱信息存储在多个数据存储库中的一个或多个数据存储库中。在图12的示例中,社交图谱1200包括指示用户“A”与用户“B”的用户节点1202之间的朋友关系的边1206、以及指示用户“C”与用户“B”的用户节点1202之间的朋友关系的边。尽管本公开描述或示出了具有连接特定用户节点1202的特定属性的特定边1206,但本公开考虑具有连接用户节点1202的任何合适属性的任何合适的边1206。作为一示例而非通过限制,边1206可以表示朋友关系、家庭关系、商业或雇佣关系、粉丝关系、随从关系、访客关系、订户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或两种或更多种这种关系。此外,尽管本公开总体上将节点描述为正被连接,但本公开也将用户或概念描述为正被连接。在本文中,在适当的情况下,对正被连接的用户或概念的引用可以指对应于那些用户或概念的节点正在社交图谱1200中被一条或多条边1206连接。
在特定实施例中,用户节点1202和概念节点1204之间的边1206可以表示由与用户节点1202相关联的用户向与概念节点1204相关联的概念执行的特定动作或活动。作为一示例而非通过限制,如图12所示,用户可以“喜欢”、“定期去”、“播放”、“收听”、“烹饪”、“工作在”或“观看”概念,以上中的每个可以对应于边类型或子类型。对应于概念节点1204的概念资料页面例如可以包括可选的“签到”图标(例如,可点击的“签到”图标)或可选的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,联网系统1102可以响应于与相应动作相对应的用户动作而创建“喜欢”边或“签到”边。作为另一示例而非通过限制,用户(用户“C”)可以使用特定应用程序(音乐(MUSIC),其是在线音乐应用程序)来收听特定歌曲(“继续漫步(Ramble On)”)。在这种情况下,联网系统1102可以在对应于用户的用户节点1202与对应于歌曲和应用程序的概念节点1204之间创建“收听”边1206和“使用”边(如图12所示),以指示用户收听歌曲并使用该应用程序。此外,联网系统1102可以在对应于歌曲的多个概念节点1204与应用程序之间创建“播放”边1206(如图12所示),以指示特定应用程序播放了特定歌曲。在这种情况下,“播放”边1206对应于由外部应用程序(MUSIC)在外部音频文件(歌曲“想象(Imagine)”)上执行的动作。尽管本公开描述了具有连接用户节点1202和概念节点1204的特定属性的特定边1206,但本公开考虑了具有连接用户节点1202和概念节点1204的任何合适的属性的任何合适的边1206。此外,尽管本公开描述了用户节点1202和概念节点1204之间的表示单个关系的边,但本公开考虑了用户节点1202和概念节点1204之间的表示一个或多个关系的边。作为一示例而非通过限制,边1206可以表示用户喜欢特定概念和用户已使用特定概念这两者。替代地,另一边1206可以表示用户节点1202和概念节点1204之间(如图12所示的、用户“E”的用户节点1202与“MUSIC”的概念节点1204之间)的每种类型的关系(或单个关系的倍数)。
在特定实施例中,联网系统1102可以在社交图谱1200中的用户节点1202与概念节点1204之间创建边1206。作为一示例而非通过限制,查看概念资料页面(例如,通过使用由用户的客户端设备1106托管的web浏览器或专用应用程序)的用户可以通过点击或选择“喜欢”图标,来指示他或她喜欢由概念节点1204表示的概念,这可以使得用户的客户端设备1106向联网系统1102发送指示用户喜欢与概念资料页面相关联的概念的消息。响应于该消息,联网系统1102可以在与用户相关联的用户节点1202与概念节点1204之间创建边1206,如用户节点与概念节点1204之间的“喜欢”边1206所示。在特定实施例中,联网系统1102可以将边1206存储在一个或多个数据存储库中。在特定实施例中,边1206可以由联网系统1102响应于特定用户动作而自动形成。作为一示例而非通过限制,如果第一用户上传图片、看电影或听歌,则可以在对应于第一用户的用户节点1202与对应于这些概念的概念节点1204之间形成边1206。尽管本公开描述了以特定方式形成特定边1206,但本公开考虑了以任何合适的方式形成任何合适的边1206。
在特定实施例中,广告可以是文本(其可以是HTML链接的)、一个或多个图像(其可以是HTML链接的)、一个或多个视频、音频、一个或多个动画制作(ADOBE FLASH)文件、这些的合适组合,或以任何合适的数字格式在一个或多个网页上、在一个或多个电子邮件中、或结合用户请求的搜索结果而呈现的任何其他合适的广告。附加地或作为替代,广告可以是一个或多个赞助商内容(sponsored story)(例如,联网系统1102上的新闻馈送或报价项目)。赞助商内容可以是广告商推广(例如,通过使社交动作呈现在用户或其他页面的资料页面的预定区域内、呈现有与广告商相关联的附加信息、在其他用户的新闻馈送或报价内凸出或以其他方式突出显示、或以其他方式推广)的用户的社交动作(例如,“喜欢”页面、“喜欢”或评论页面上的帖子、对与页面相关联的事件进行回应、对在页面上发布的问题进行投票、到一地方签到、使用应用程序或玩游戏、或“喜欢”或共享网站)。广告商可以付费以使社交动作被推广。作为一示例而非通过限制,广告可以被包括在搜索结果页面的搜索结果之中,其中赞助商内容在非赞助商内容上被推广。
在特定实施例中,可以请求广告以用于在社交网络系统网页、第三方网页或其他页面内显示。广告可以显示在页面的专用部分中,例如在页面顶部的横幅广告区域中,在页面的侧面处的列中,在页面的图形用户界面(GUI)中,在弹出窗口中,在下拉菜单中,在页面的输入信息栏中,在页面内容的顶部上,或者在相对于页面的其他地方。附加地或作为替代,广告可以显示在应用程序内。广告可以显示在专用页面内,从而在用户可以访问页面或利用应用程序之前,要求用户与广告交互或者看广告。用户例如可以通过web浏览器查看广告。
用户可以以任何合适的方式与广告交互。用户可以点击或以其他方式选择广告。通过选择广告,用户可被引导到与该广告相关联的页面(或正被用户使用的浏览器或其它应用程序)。在与广告相关联的页面处,用户可以进行附加动作,例如购买与广告相关联的产品或服务、接收与广告相关联的信息、或订阅与广告相关联的简报(newsletter)。可以通过选择广告的组件(如“播放按钮”)来播放具有音频或视频的广告。替代地,联网系统1102可以通过选择广告,来执行或修改用户的特定动作。
广告还可以包括用户可与之交互的社交网络系统功能。作为一示例而非通过限制,广告可以使用户能够通过选择与签发(endorsement)相关联的图标或链接来“喜欢”或以其他方式签发该广告。作为另一示例而非通过限制,广告可以使用户能够搜索(例如,通过执行查询来搜索)与广告商相关的内容。类似地,用户可以与另一用户共享广告(例如,通过联网系统1102)或对与广告相关联的事件进行回应(RSVP)(例如,通过联网系统1102)。另外或作为替代,广告可以包括针对用户的社交网络系统环境。作为一示例而非通过限制,广告可以在联网系统1102内显示关于已经采取与广告的主题相关联的动作的用户的朋友的信息。
在特定实施例中,联网系统1102可以确定各种社交图谱实体对于彼此的社交图谱亲密度(在本文中可以称为“亲密度”)。亲密度可以表示与在线社交网络相关联的特定对象(例如,用户、概念、内容、动作、广告、与在线社交网络相关联的其他对象、或它们的任何合适的组合)之间的关系或感兴趣程度的强度。还可以确定关于与第三方系统1108或其他合适的系统相关联的对象的亲密度。可以建立每个用户、每个主题或每种类型的内容的社交图谱实体的总亲密度。总亲密度可以基于对与社交图谱实体相关联的动作或关系的继续监测而改变。尽管本公开描述了以特定方式确定特定亲密度,但本公开考虑了以任何合适的方式确定任何合适的亲密度。
在特定实施例中,联网系统1102可以使用亲密度系数(在本文中可以被称为“系数”)来测量或量化社交图谱亲密度。系数可以表示或量化与在线社交网络相关联的特定对象之间的关系的强度。系数还可以表示基于用户对动作的兴趣来测量用户将执行特定动作的预测概率的概率或函数。以这种方式,可以基于用户的先前动作来预测用户的未来动作,其中可以至少部分地基于用户动作的历史来计算系数。系数可用于预测任何数目的动作,该任何数量的动作可在在线社交网络内或外部。作为一示例而非通过限制,这些动作可以包括各种类型的通信(例如,发送消息、发布内容或评论内容)、各种类型的观察动作(例如,访问或查看资料页面、媒体或其他合适的内容)、关于两个或更多个社交图谱实体的各种类型的一致性信息(例如,在同一组中的信息、在同一照片中标记的信息、在同一位置签到的信息、或定期去同一事件的信息)、或其他合适的动作。尽管本公开描述了以特定方式测量亲密度,但本公开考虑了以任何合适的方式测量亲密度。
在特定实施例中,联网系统1102可以使用各种因素来计算系数。这些因素例如可以包括用户动作、对象之间的关系类型、位置信息、其他合适的因素、或它们的任意组合。在特定实施例中,当计算系数时,可以对不同的因素进行不同地加权。每个因素的权重可以是静态的,或者这些权重可以例如根据用户、关系类型、动作类型、用户的位置等改变。可以根据这些因素的权重对这些因素的等级进行组合,以确定用户的总系数。作为一示例而非通过限制,可以为特定用户动作分配等级和权重两者,同时为与该特定用户动作相关联的关系分配等级和相关权重(例如,使得权重总和为100%)。为了计算用户对于特定对象的系数,分配给用户动作的等级例如可以包括总系数的60%,而分配给用户和对象之间的关系的等级可以包括总系数的40%。在特定实施例中,联网系统1102在确定用于计算系数的各种因素的权重时,可以考虑各种变量,这些变量例如为,自访问信息以来的时间、衰减因子、访问频率、与信息的关系或与被访问信息的对象的关系、与连接到对象的社交图谱实体的关系、用户动作的短期平均值或长期平均值、用户反馈、其他合适的变量、或它们的任意组合。作为一示例而非通过限制,当计算系数时,系数可以包括衰减因子,该衰减因子使由特定动作提供的信号的强度随时间衰减,使得更近的动作更相关。可以基于对系数所基于的动作的持续追踪来持续地更新等级和权重。可以采用任何类型的过程或算法,来对每个因素的等级以及分配给这些因素的权重进行分配、组合、平均等。在特定实施例中,联网系统1102可以使用基于历史动作和过去的用户响应而训练的机器学习算法、或者通过向用户暴露各种选项并测量响应而获取的来自用户的数据来确定系数。尽管本公开描述了以特定方式计算系数,但本公开考虑了以任何合适方式计算系数。
在特定实施例中,联网系统1102可以基于用户的动作来计算系数。联网系统1102可以在在线社交网络上、在第三方系统1108上、在其他合适的系统上、或它们的任何组合上监视这种动作。可以追踪或监视任何合适类型的用户动作。典型的用户动作包括查看资料页面、创建或发布内容、与内容交互、加入组、列出和确认出席事件、在位置处签到、喜欢特定页面、创建页面、以及执行有利于社交动作的其他任务。在特定实施例中,联网系统1102可以基于用户对特定类型的内容的动作来计算系数。内容可以与在线社交网络、第三方系统1108或其他合适的系统相关联。内容可以包括用户、资料页面、帖子、新闻故事、标题、即时消息、聊天室对话、电子邮件、广告、图片、视频、音乐、其他合适的对象、或它们的任意组合。联网系统1102可以分析用户的动作以确定多个动作中的一个或多个动作是否指示对主题、内容、其他用户等的亲密度。作为一示例而非通过限制,如果用户可能频繁地发布与“咖啡”或其变型相关的内容,则联网系统1102可以确定用户相对于概念“咖啡”具有高系数。可以为特定动作或特定类型的动作分配比其它动作更高的权重和/或等级,跟高的权重和/或等级可以影响所计算的总系数。作为一示例而非通过限制,在第一用户向第二用户发送电子邮件的情况下,该动作的权重或等级可以比在第一用户仅查看第二用户的用户资料页面的情况下的权重或等级高。
在特定实施例中,联网系统1102可以基于特定对象之间的关系的类型来计算系数。参考社交图谱1200,当计算系数时,联网系统1102可以分析连接特定用户节点1202和概念节点1204的边1206的数量和/或类型。作为一示例而非通过限制,与通过朋友型边而连接的多个用户节点1202相比,通过配偶型边(表示两个用户已结婚)而连接的用户节点1202可以被分配更高的系数。也就是说,取决于分配给特定用户的动作和关系的权重,可以确定关于用户的配偶的内容的总亲密度比关于用户的朋友的内容的总亲密度更高。在特定实施例中,用户与另一对象的关系可以影响用户关于计算该对象的系数的动作的权重和/或等级。作为一示例而非通过限制,如果用户在第一照片中被标记,但该用户仅仅喜欢第二照片,则联网系统1102可以确定用户相对于第一照片的系数高于用户相对于第二照片的系数,因为相比于与内容具有喜欢类型的关系,与内容具有标记类型的关系可以被分配更高的权重和/或等级。在特定实施例中,联网系统1102可以基于一个或多个第二用户与特定对象的关系来计算第一用户的系数。也就是说,其他用户与对象的连接和系数可以影响第一用户与对象的系数。作为一示例而非通过限制,如果第一用户被连接到一个或多个第二用户或对一个或多个第二用户具有高系数,并且那些第二用户被连接到特定对象或对特定对象具有高系数,则联网系统1102可以确定第一用户也应对特定对象具有相对较高的系数。在特定实施例中,系数可以基于特定对象之间的分开度。较低系数可以表示降低第一用户共享与社交图谱1200中第一用户间接连接的用户的内容对象的兴趣的可能性。作为一示例而非通过限制,与在社交图谱1200中更分开的社交图谱实体相比,在社交图谱1200中更接近的社交图谱实体(即,更少的分开度)可以具有更高的系数。
在特定实施例中,联网系统1102可以基于位置信息来计算系数。在地理上更靠近彼此的对象可以被认为彼此比更远的对象更相关或更感兴趣。在特定实施例中,用户对于特定对象的系数可以基于对象的位置同与用户相关联的当前位置(或用户的客户端设备1106的位置)的接近度。第一用户可能对更靠近第一用户的其他用户或概念更感兴趣。作为一示例而非通过限制,如果用户距机场一英里且距加油站两英里,则联网系统1102可以基于机场与用户的接近度,来确定用户对于机场比对于加油站具有更高的系数。
在特定实施例中,联网系统1102可以基于系数信息来执行关于用户的特定动作。系数可以用于基于用户对动作的兴趣来预测用户是否将执行特定动作。当生成或向用户呈现任何类型的对象时,可以使用系数,这些类型的对象例如为广告、搜索结果、新闻故事、媒体、消息、通知、或其他合适的对象。在适当的情况下,系数还可以用于对这些对象进行排名(rank)和排序(order)。以这种方式,联网系统1102可以提供与用户的兴趣和当前环境相关的信息,从而增加他们将找到这种感兴趣的信息的可能性。在特定实施例中,联网系统1102可以基于系数信息生成内容。可以基于特定于一用户的系数来提供或选择内容对象。作为一示例而非通过限制,系数可以用于生成针对用户的媒体,其中可以向用户呈现用户相对于媒体对象具有高总系数的媒体。作为另一示例而非通过限制,系数可以用于生成针对用户的广告,其中可以向用户呈现用户相对于所广告的对象具有高总系数的广告。在特定实施例中,联网系统1102可以基于系数信息生成搜索结果。可以基于与关于查询用户的搜索结果相关联的系数,来对针对特定用户的搜索结果进行评分或排名。作为一示例而非通过限制,在搜索结果页面上,与具有较高系数的对象相对应的搜索结果可以比与具有较低系数的对象相对应的结果排名更高。
在特定实施例中,联网系统1102可以响应于对来自特定系统或进程的系数的请求来计算系数。为了预测用户在给定情况下可能采取的可能动作(或者可能是动作的主题),任何过程都可以请求所计算的针对用户的系数。该请求还可以包括用于各种因素的一组权重,这些因素用于计算系数。该请求可以来自在在线社交网络上运行的过程、来自第三方系统1108(例如,经由API或其他通信信道)、或来自另一合适的系统。响应于该请求,联网系统1102可以计算系数(或者,在系数信息先前已经被计算和存储的情况下,访问该系数信息)。在特定实施例中,联网系统1102可以测量关于特定过程的亲密度。不同的过程(在线社交网络的内部的过程和外部的过程这两者)可以请求特定对象的系数或一组对象的系数。联网系统1102可以提供与请求亲密度测量的特定过程相关的亲密度的测量结果。以这种方式,每个过程接收针对不同背景定制的亲密度测量结果,在该背景下,过程将使用该亲密度测量结果。
结合社交图谱亲密度和亲密度系数,特定实施方式可以利用于2006年8月11日提交的第11/503093号美国专利申请、于2010年12月22日提交的第12/9711027号美国专利申请、于2010年12月23日提交的第12/978265号美国专利申请、以及于2012年10月1日提交的第13/632869号美国专利申请中所公开的一个或多个系统、部件、元件、功能、方法、动作或步骤,这些申请中的每个通过引用被结合。
在特定实施例中,在线社交网络的多个内容对象中的一个或多个内容对象可以与隐私设置相关联。可以以任何合适的方式存储对象的隐私设置(或“访问设置”),这些合适的方式例如为与对象相关联、以授权服务器中的索引的方式、以另一合适的方式、或它们的任意组合。对象的隐私设置可以指定可以如何使用在线社交网络访问(例如,查看或共享)对象(或与对象相关联的特定信息)。在对象的隐私设置允许特定用户访问该对象的情况下,该对象可以被描述为相对于该用户是“可见的”。作为一示例而非通过限制,在线社交网络的用户可以为用户资料页面指定隐私设置,该隐私设置标识可以访问用户资料页面上的工作经历信息的一组用户,从而排除其他用户来访问该信息。在特定实施例中,隐私设置可以指定不应被允许访问与对象相关联的某些信息的用户的“被阻挡列表”。也就是说,被阻挡列表可以指定对象对其不可见的一个或多个用户或实体。作为一示例而非通过限制,用户可以指定可不访问与用户相关联的相册的一组用户,从而排除那些用户来访问相册(同时还可允许不在该组用户内的某些用户访问相册)。在特定实施例中,隐私设置可以与特定社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图谱元素、与社交图谱元素相关联的信息、或与社交图谱元素相关联的内容对象。作为一示例而非通过限制,与特定照片相对应的特定概念节点1204可以具有指定照片可以仅由照片中所标记的用户及其朋友访问的隐私设置。在特定实施例中,隐私设置可以允许用户选择允许或选择不允许使他们的动作被联网系统1102记录或与其他系统(例如,第三方系统1108)共享。在特定实施例中,与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为一示例而非通过限制,可以针对特定用户(例如,仅我、我的室友和我的老板)、特定分开度内的用户(例如,朋友、或朋友的朋友)、用户组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、没有用户(“私人”)、第三方系统1108的用户、特定应用程序(例如,第三方应用程序、外部网站)、其他合适的用户或实体、或它们的任意组合来指定访问或拒绝访问。尽管本公开描述了以特定方式使用特定隐私设置,但本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,一个或多个服务器可以是用于执行隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的对存储在数据存储库中的特定对象的请求,联网系统1102可以向数据存储库发送对对象的请求。如果授权服务器基于与对象相关联的隐私设置确定用户被授予了访问对象的权限,则该请求可以识别与该请求相关联的用户并且可以仅被发送到该用户(或该用户的客户端设备1106)。如果请求用户未被授予访问对象的权限,则授权服务器可以防止从数据存储库检索所请求的对象,或者可以防止向用户发送所请求的对象。在搜索查询情况中,如果查询用户被授予了访问对象的权限,则仅可以将该对象生成为搜索结果。也就是说,对象必须具有对查询用户可见的可见性。如果对象具有对用户不可见的可见性,则可以从搜索结果中排除该对象。尽管本公开描述了以特定方式执行隐私设置,但本公开考虑了以任何合适的方式执行隐私设置。
参考前述说明书中的特定示例性实施例对前述说明书进行了描述。参考本文所论述的细节描述了本公开的各种实施例和方面,并且附图示出了各种实施例。以上描述和附图是说明性的,且不应被解释为限制性的。描述了许多具体细节以提供对各种实施例的透彻理解。
在不脱离其精神或本质特征的情况下,可以以其他特定形式来体现附加或替代实施例。所描述的实施例在所有方面都应被认为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指定。在权利要求书的等同方案的含义和范围的范围内的所有变化都将包含在权利要求书的范围内。

Claims (20)

1.一种计算机实现的方法,包括:
由客户端设备通过经由视频数据信道接收来自接收方参与者设备的视频数据,来与所述接收方参与者设备进行视频通话,所述视频数据信道是针对所述视频通话而建立的;
在数字视频通话界面内显示由所述客户端设备采集的第一视频;
通过渲染经由所述视频数据信道接收到的所述视频数据,在所述数字视频通话界面内显示来自所述接收方参与者设备的第二视频;
经由增强现实数据信道接收来自所述接收方参与者设备的、指示增强现实元素的增强现实数据,所述增强现实数据信道是针对与所述接收方参与者设备的所述视频通话而建立的;以及
基于接收到的所述增强现实数据,在所述数字视频通话界面内显示的所述第一视频内渲染所述增强现实元素。
2.根据权利要求1所述的计算机实现的方法,还包括:在所述数字视频通话界面内显示的所述第一视频内渲染、用于共享来自所述接收方参与者设备的所述第二视频内所描绘的增强现实环境场景的增强现实元素,其中,所述增强现实元素修改所述第一视频的背景、前景或视频滤镜中的至少一者。
3.根据权利要求1所述的计算机实现的方法,还包括:
经由所述增强现实数据信道接收来自所述接收方参与者设备的、指示对所述增强现实元素的修改的附加增强现实数据;以及
基于所述附加增强现实数据,修改所述第一视频内的所述增强现实元素。
4.根据权利要求1所述的计算机实现的方法,还包括:
通过渲染经由所述视频数据信道接收到的所述视频数据,在所述数字视频通话界面内显示来自所述接收方参与者设备的、描绘了附加增强现实元素正退出所述第二视频的画面的第二视频;
经由所述增强现实数据信道接收来自所述接收方参与者设备的、所述附加增强现实元素的附加增强现实数据;以及
基于接收到的所述附加增强现实数据,在所述第一视频内渲染所述附加增强现实元素,以描绘所述附加增强现实元素正进入所述第一视频的画面。
5.根据权利要求4所述的计算机实现的方法,还包括:
从所述附加增强现实数据中识别参与者标识符;以及
通过所述参与者标识符与所述客户端设备匹配,来确定在所述第一视频内渲染所述附加增强现实元素。
6.根据权利要求4所述的计算机实现的方法,还包括:
从所述附加增强现实数据中识别对象向量;以及
利用所述对象向量,在所述第一视频内的特定位置处渲染所述附加增强现实元素并使所述附加增强现实元素沿特定方向移动。
7.根据权利要求1所述的计算机实现的方法,还包括:
在所述第一视频内渲染用于显示与所述第一视频内所描绘的用户交互的增强现实效果的增强现实元素;以及
在数字视频通话界面内显示来自所述接收方参与者设备的、描绘了与所述第二视频内所描绘的接收方用户交互的附加增强现实效果的第二视频。
8.一种非暂态计算机可读介质,所述非暂态计算机可读介质存储有多个指令,所述多个指令在被至少一个处理器执行时,使计算设备:
由所述计算设备通过经由视频数据信道接收来自所述接收方参与者设备的视频数据,来与所述接收方参与者设备进行视频通话,所述视频数据信道是针对所述视频通话而建立的;
在数字视频通话界面内显示由所述计算设备采集的第一视频;
通过渲染经由所述视频数据信道接收到的所述视频数据,在所述数字视频通话界面内显示来自所述接收方参与者设备的第二视频;
经由增强现实数据信道接收来自所述接收方参与者设备的、指示增强现实元素的增强现实数据,所述增强现实数据信道是针对与所述接收方参与者设备的所述视频通话而建立的;以及
基于接收到的所述增强现实数据,在所述数字视频通话界面内显示的第一视频内渲染所述增强现实元素。
9.根据权利要求8所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述计算设备执行以下操作的多个指令:
检测由所述计算设备采集的所述第一视频内的用户移动交互;以及
基于所述用户移动交互,对所述第一视频内的所述增强现实元素进行修改。
10.根据权利要求8所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述计算设备执行以下操作的多个指令:
通过渲染经由所述视频数据信道接收到的所述视频数据,在所述数字视频通话界面内显示来自所述接收方参与者设备的、描绘了附加增强现实元素正退出所述第二视频的画面的第二视频;
经由所述增强现实数据信道接收来自所述接收方参与者设备的、所述附加增强现实元素的附加增强现实数据;以及
基于接收到的所述附加增强现实数据,在所述第一视频内渲染所述附加增强现实元素,以描绘所述附加增强现实元素正进入所述第一视频的画面。
11.根据权利要求8所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述计算设备执行以下操作的多个指令:
在所述第一视频内渲染所述增强现实元素,以显示与所述第一视频内所描绘的用户交互的增强现实效果;以及
在所述数字视频通话界面内显示来自所述接收方参与者设备的、描绘了与所述第二视频内所描绘的接收方用户交互的附加增强现实效果的第二视频。
12.根据权利要求11所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述计算设备执行以下操作的多个指令:
在所述增强现实数据中识别将所述计算设备指示为主参与者的选择;以及
基于将所述计算设备指示为所述主参与者的所述选择,将所述计算设备上的所述第一视频内的所述增强现实效果渲染为,不同于在所述第二视频中所显示的所述附加增强现实效果。
13.根据权利要求11所述的非暂态计算机可读介质,还包括在被所述至少一个处理器执行时使所述计算设备执行以下操作的多个指令:通过对所述增强现实数据信道中的一组增强现实数据进行过滤,来接收指示所述增强现实元素的所述增强现实数据。
14.一种共享增强现实视频通话系统,包括:
至少一个服务器,所述至少一个服务器被配置为通过在第一参与者设备与第二参与者设备之间建立视频数据信道和增强现实数据信道,来在所述第一参与者设备与所述第二参与者设备之间建立共享增强现实视频通话,其中:
所述第一参与者设备采集第一视频流,并经由所述视频数据信道向所述第二参与者设备发送所述第一视频流;
所述第二参与者设备采集第二视频流,并经由所述视频数据信道向所述第一参与者设备发送所述第二视频流;
所述第一参与者设备经由所述增强现实数据信道向所述第二参与者设备发送增强现实标识符;以及
所述第二参与者设备使用与所述增强现实标识符相关联的增强现实元素渲染所述第二视频流。
15.根据权利要求14所述的共享增强现实视频通话系统,其中,所述第一参与者设备使用与所述增强现实标识符相关联的附加增强现实元素渲染所述第一视频流,以共享在来自所述第二参与者设备的所述第二视频流内所描绘的增强现实环境场景。
16.根据权利要求14所述的共享增强现实视频通话系统,其中:
所述第一参与者设备发送用于指示与所述增强现实元素的交互的附加增强现实标识符;以及
所述第二参与者设备基于所述附加增强现实标识符,使用对所述增强现实元素的修改渲染所述第二视频流。
17.根据权利要求14所述的共享增强现实视频通话系统,其中:
所述第一参与者设备经由所述视频数据信道向所述第二参与者设备发送,用于在所述第一视频流内描绘所述增强现实元素的所述第一视频流;以及
一经经由所述增强现实数据信道向所述第二参与者设备发送所述增强现实标识符:
所述第一参与者设备经由所述视频数据信道向所述第二参与者设备发送,描绘了所述增强现实元素正退出所述第一视频流的画面的第一视频流;以及
所述第二参与者设备用与所述增强现实标识符相关联的正进入所述第二视频流的画面的所述增强现实元素渲染所述第二视频流。
18.根据权利要求14所述的共享增强现实视频通话系统,其中:
所述第一参与者设备经由所述增强现实数据信道,向所述第二参与者设备发送指示所述增强现实元素的对象向量的所述增强现实标识符;以及
所述第二参与者设备利用所述对象向量,使用与所述增强现实标识符相关联的、在特定位置处且在特定方向上移动的所述增强现实元素渲染所述第二视频流。
19.根据权利要求14所述的共享增强现实视频通话系统,其中:
所述第二参与者设备使用用于显示与所述第二视频流内描绘的用户交互的增强现实效果的增强现实元素渲染所述第二视频流;以及
所述第一参与者设备使用与所述第一视频流内描绘的用户交互的附加增强现实效果渲染所述第一视频流。
20.根据权利要求14所述的共享增强现实视频通话系统,其中:
所述第一参与者设备经由所述增强现实数据信道向多个参与者设备发送增强现实标识符;以及
所述多个参与者设备使用与所述增强现实标识符相关联的增强现实元素渲染视频流。
CN202310143210.5A 2022-02-09 2023-02-09 利用增强现实数据信道实现共享增强现实视频通话 Pending CN116582634A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/650,484 2022-02-09
US17/650,484 US20230254438A1 (en) 2022-02-09 2022-02-09 Utilizing augmented reality data channel to enable shared augmented reality video calls

Publications (1)

Publication Number Publication Date
CN116582634A true CN116582634A (zh) 2023-08-11

Family

ID=85221870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310143210.5A Pending CN116582634A (zh) 2022-02-09 2023-02-09 利用增强现实数据信道实现共享增强现实视频通话

Country Status (3)

Country Link
US (1) US20230254438A1 (zh)
EP (1) EP4240012A1 (zh)
CN (1) CN116582634A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11949527B2 (en) * 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat
US20240054688A1 (en) * 2022-08-11 2024-02-15 Qualcomm Incorporated Enhanced Dual Video Call with Augmented Reality Stream

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170243403A1 (en) * 2014-11-11 2017-08-24 Bent Image Lab, Llc Real-time shared augmented reality experience
US10554908B2 (en) * 2016-12-05 2020-02-04 Facebook, Inc. Media effect application
US10785443B2 (en) * 2017-12-18 2020-09-22 Streem, Inc. Augmented reality video stream synchronization across a network
US11202035B2 (en) * 2020-04-24 2021-12-14 Facebook, Inc. Dynamically modifying live video streams for participant devices in digital video rooms
US20220334789A1 (en) * 2021-04-20 2022-10-20 Streem, Llc Augmented reality video stream synchronization

Also Published As

Publication number Publication date
US20230254438A1 (en) 2023-08-10
EP4240012A1 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
US10511833B2 (en) Controls and interfaces for user interactions in virtual spaces
US11645806B2 (en) Animating digital graphics based on dynamic attributes
US20200250221A1 (en) Dynamically ranking media effects based on user and device characteristics
EP3306444A1 (en) Controls and interfaces for user interactions in virtual spaces using gaze tracking
EP3306445A1 (en) Controls and interfaces for user interactions in virtual spaces
US20180096507A1 (en) Controls and Interfaces for User Interactions in Virtual Spaces
US10032303B2 (en) Scrolling 3D presentation of images
EP4246963A1 (en) Providing shared augmented reality environments within video calls
US20210037195A1 (en) Generating customized, personalized reactions to social media content
EP4240012A1 (en) Utilizing augmented reality data channel to enable shared augmented reality video calls
US20230281940A1 (en) Providing context-aware avatar editing within an extended-reality environment
US20190200064A1 (en) Customizing a video trailer based on user-selected characteristics
US11557093B1 (en) Using social connections to define graphical representations of users in an artificial reality setting
US20230360282A1 (en) Generating shared augmented reality scenes utilizing video textures from video streams of video call participants
US20230368444A1 (en) Rendering customized video call interfaces during a video call
CN116781853A (zh) 在视频通话中提供共享增强现实环境
US20230370408A1 (en) Generating and surfacing messaging thread specific and content-based effects
WO2023172471A1 (en) Providing context-aware avatar editing within an extended-reality environment

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