用于呈现内容的系统和方法与流程

文档序号:19792691发布日期:2020-01-24 14:38阅读:249来源:国知局
用于呈现内容的系统和方法与流程

发明领域

本技术涉及内容提供领域。更具体地,本技术涉及用于通过计算设备呈现内容的技术。

背景

现今,人们常常出于各种各样的目的而利用计算设备(或系统)。用户可以操作他们的计算设备以,例如,与彼此交互、创建内容、共享内容和访问信息。在传统方法下,内容项(例如,图像、视频、音频文件等)可以通过内容共享平台获得。用户可以操作他们的计算设备来通过平台访问内容项。典型地,内容项可以由各种实体提供或上传,实体包括例如内容发布者以及内容共享平台的用户。在一些情况下,内容项可以被分类和/或组织。

概述

本公开的各种实施例可以包括系统、方法和非暂时性计算机可读介质,其被配置成:确定内容项正在通过计算设备的显示屏呈现,确定描述在内容项的呈现期间显现的一个或更多个显著兴趣点的信息,其中显著兴趣点被预测为是访问内容项的一个或更多个用户感兴趣的,以及至少部分基于该信息,使在内容项的呈现期间至少第一显著兴趣点的呈现被增强。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成将对应于第一显著兴趣点的区域被呈现的视频质量增加某个指定量。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成将对应于第一显著兴趣点的区域的缩放水平增加某个指定量。

在一些实施例中,区域对应于第一显著兴趣点的轮廓。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成使除了对应于第一显著兴趣点的区域之外的区域显现出被模糊了某个阈值量。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成使第一显著兴趣点的一部分以比该第一显著兴趣点的剩余部分更高的质量显现。

在一些实施例中,对应于第一显著兴趣点的一个或更多个帧被编码,使得对应于第一显著兴趣点的帧的区域以比帧的剩余区域更高的质量呈现。

在一些实施例中,内容项是虚拟现实内容项,其通过将捕获一个或更多个场景的一组视频流拼接在一起而创建。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成从显著性预测模型获得描述显著兴趣点的信息,该显著性预测模型被训练成预测在内容项的呈现期间显现的显著兴趣点。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成从对应于内容项的聚集的(aggregated)热图数据获得描述显著兴趣点的信息。

本公开的各种实施例可以包括系统、方法和非暂时性计算机可读介质,其被配置成:确定描述在内容项的呈现期间显现的一个或更多个显著兴趣点的显著性信息,其中显著兴趣点被预测为是访问该内容项的一个或更多个用户感兴趣的,以及,将描述显著兴趣点的显著性信息嵌入到内容项中,其中该显著性信息能够在内容项的呈现期间被处理以增强内容项的呈现。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成将显著性信息的相应部分插入内容项的帧的至少一些帧中。

在一些实施例中,插入到帧中的显著性信息的部分提供描述显现在帧中的一个或更多个显著兴趣点的信息。

在一些实施例中,描述显现在帧中的显著兴趣点的信息包括每个显著兴趣点的相应像素坐标。

在一些实施例中,描述显现在帧中的显著兴趣点的信息包括显现在帧中的显著兴趣点的相应定位(location)以及要应用于显著兴趣点的对应的滤波器,其中滤波器在内容项的呈现期间强调显著兴趣点的显现。

在一些实施例中,描述显现在帧中的显著兴趣点的信息描述对应于每个显著兴趣点的帧中的相应区域,其中使用至少一组像素坐标和源自像素坐标的半径来定义对应于显著兴趣点的区域。

在一些实施例中,插入到帧中的显著性信息的部分提供描述对应于帧的观看方向的信息。

在一些实施例中,帧的显著性信息被插入到帧的不可见扩展区域中。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成在帧中插入一个或更多个颜色序列,其中每个颜色序列能够被翻译以确定显著性信息。

在一些实施例中,系统、方法和非暂时性计算机可读介质被配置成从显著性预测模型获得描述显著兴趣点的信息,该显著性预测模型被训练成预测在内容项的呈现期间显现的显著兴趣点。

应当理解,从附图中和从下面的详细描述中,所公开的技术的许多其他特征、应用、实施例和/或变形将是明显的。本文描述的结构、系统、非暂时性计算机可读介质和方法的附加和/或替代实现可以被使用而不偏离所公开的技术的原理。

附图简述

图1示出了根据本公开实施例的示例系统,包括示例内容提供商模块。

图2示出了根据本公开实施例的内容特征模块的示例。

图3a-3f示出了根据本公开实施例的流式传输虚拟现实内容项的示例。

图4示出了根据本公开实施例的示例活动图示。

图5示出了根据本公开实施例的示例方法。

图6示出了根据本公开实施例的另一示例方法。

图7示出了根据本公开实施例的可以在各种场景中利用的示例系统的网络图,该示例系统包括示例社交网络系统。

图8示出了根据本公开实施例的可以在各种场景中利用的计算机系统或计算设备的示例。

附图仅为了说明的目的描绘了所公开的技术的各种实施例,其中附图使用相似的参考数字来标识相似的元件。本领域中的技术人员将从下面的讨论中容易认识到,在附图中示出的结构和方法的替代实施例可以被采用而不偏离本文描述的所公开的技术的原理。

具体实施方式

人们为了各种各样的目的使用计算设备(或系统)。如上所述,在传统方法下,用户可以利用计算设备来与其他用户共享内容项(例如,文档、图像、视频、音频等)。这种内容项可以通过内容共享平台获得。用户可以操作他们的计算设备来通过平台访问内容项。典型地,内容项可以由各种实体提供或上传,实体包括例如内容发布者以及内容共享平台的用户。

在某些情况下,用户可以通过内容提供商访问虚拟现实内容。这种虚拟现实内容可以在,例如,通过计算设备(例如,虚拟现实设备、头戴式耳机或能够呈现虚拟现实内容的任何计算设备)可访问的视口(viewport)中呈现。通常,虚拟现实内容项(或沉浸式视频)对应于围绕(或包围)观众(或用户)的任何虚拟现实媒体。虚拟现实内容项的一些示例包括球形视频、半球视频(例如,180度视频)、任意部分球、225度视频和3d360视频。这种虚拟现实内容项不需要局限于使用球形形状被格式化的视频,而是也可应用于使用其他形状来格式化的沉浸式视频,包括,例如立方体、金字塔、以及视频记录的三维世界的其他形状表示。在一些实施例中,虚拟现实内容项可以通过将由放置在特定地点和/或位置的摄像机捕获的各种视频流(或信息流(feeds))拼接在一起来创建,以捕获场景的视图(例如,180度视图、225度视图、360度视图等)。拼接在一起后,用户可以访问或呈现(例如,回放)虚拟现实内容项。通常,当访问虚拟现实内容项时,用户可以缩放和改变视口的方向(例如,俯仰、偏航、滚动),以访问虚拟现实内容项中场景的不同部分。视口的方向可用于确定呈现虚拟现实内容项的哪个流。

通常,内容项(例如,虚拟现实内容项)可以捕获包括各种兴趣点(例如,人、对象、风景等)的场景。在一些情况下,可以训练传统模型(例如,神经网络)来评估内容项,以识别在内容项的呈现(例如,回放)期间场景(例如,帧)中显现的兴趣点。尽管常规方法可以用于识别给定内容项中多个不同的兴趣点,但是这些常规方法通常无法指示这些识别的兴趣点中的哪些兴趣点可能与给定用户或用户组相关(或是给定用户或用户组感兴趣的)。因此,这种传统方法可能无法有效地解决计算机技术中出现的这些和其他问题。

一种改进的方法克服了与传统方法相关的前述和其他缺点。在各种实施例中,显著性预测模型可以被训练来识别在给定内容项的呈现期间用户可能感兴趣的内容(例如,显著兴趣点)。在一些实施例中,显著性预测模型预测的内容被期望与给定用户或用户组(例如,共享一个或更多个人口统计属性的用户)更相关或是该给定用户或用户组更感兴趣的。在一些实施例中,这些显著兴趣点可以用于改善内容项的传送(或流式传输)。例如,在一些实施例中,在内容项的帧中显现的显著兴趣点可以在内容项的呈现期间被增强。在一些实施例中,这种增强可以涉及以较高的质量呈现对应于显著兴趣点的区域。在一些实施例中,这些增强可以涉及以较高的缩放水平呈现显著兴趣点。因此,可以分配更多的资源来呈现在内容项的呈现期间更有可能被用户观看的内容。

图1示出了根据本公开实施例的示例系统100,包括示例内容提供商模块102。如图1的示例所示,内容提供商模块102可以包括内容模块104、流式传输模块106和内容特征模块108。在一些情况下,示例系统100可以包括至少一个数据储存器112。客户端模块114可以通过一个或更多个网络150(例如,互联网、局域网等)与内容提供商模块102交互。客户端模块114可以在运行在计算设备(例如,虚拟现实设备、头戴式耳机(headset)或能够呈现虚拟现实内容的任何计算设备)上的软件应用中实现。在各种实施例中,网络150可以是设备可以通过其交换数据的任何有线或无线计算机网络。例如,举例来说,网络150可以是个人区域网络、局域网或广域网。在该附图和本文的所有附图中示出的部件(例如,模块、元件等)仅仅是示例性的,且其他实现可以包括附加的、更少的、集成的或不同的部件。一些部件可能未示出,以便不使相关细节模糊。

在一些实施例中,内容提供商模块102可以部分地或整体地被实现为软件、硬件或其任何组合。通常,如本文讨论的模块可以与软件、硬件或其任何组合相关联。在一些实现中,模块的一个或更多个功能、任务和/或操作可以由软件例程、软件过程、硬件和/或其任何组合来实施或执行。在一些情形中,内容提供商模块102可以部分地或整体地被实现为运行在一个或更多个计算设备或系统上的软件,如运行在用户计算设备或客户端计算系统上的软件。例如,内容提供商模块102或其至少一部分可以被实现为在用户计算设备或客户端计算系统(如图7的用户设备710)上运行的应用(例如,app)、程序或小应用等,或者可以在这些应用、程序或小应用等内实现。进一步,内容提供商模块102或其至少一部分可以使用包括一个或更多个服务器(如网络服务器或云服务器)的一个或更多个计算设备或系统来实现。在某些情况下,内容提供商模块102可以部分地或整体地在社交网络系统(或服务)(如图7的社交网络系统730)内实现,或者可以被配置成与社交网络系统(或服务)联合操作。应当理解,可以有许多变型或其他可能。

在一些实施例中,内容提供商模块102可以被配置成与示例系统100中的至少一个数据储存器112通信和/或一起操作。在各种实施例中,至少一个数据储存器112可以存储与内容提供商模块102的功能和操作相关的数据。这种数据的一个示例可以是可用于访问(例如,流式传输)的内容项(例如,虚拟现实内容项)。在一些实现方式中,至少一个数据储存器112可以存储与社交网络系统(例如,图7的社交网络系统730)相关联的信息。与社交网络系统相关联的信息可以包括关于用户、社交关连、社交互动、定位、地理围栏区域、地图、地点、事件、页面、群组、帖子、通信、内容、信息流(feeds)、账户设置、隐私设置、社交图和各种其他类型的数据。在一些实现中,至少一个数据储存器112可以存储与用户相关联的信息,如用户身份、用户信息、简档信息、用户特定的设置、用户制造或发布的内容以及各种其他类型的用户数据。应当理解,可以有许多变型或其他可能。

在各种实施例中,内容模块104可以提供对将要通过视口呈现的各种类型的内容项(例如,虚拟现实内容项、沉浸式视频等)的访问。例如,该视口可以通过在其中实现了客户端模块114的计算设备(例如,虚拟现实计算设备)的显示器来提供。在一些情况下,计算设备可以运行被配置成呈现内容项的软件应用(例如,社交网络应用)。举例来说,虚拟现实内容的一些示例可以包括使用单视场360度视图合成的视频或者使用立体视场180度视图合成的视频。在各种实施例中,虚拟现实内容项可以在某个时间段上捕获一个或更多个场景的视图(例如,180度视图、225度视图、360度视图等)。这种场景可以从现实世界捕获和/或是计算机生成的。此外,可以通过将由放置在特定定位和/或位置的摄像机捕获的各种视频流(或信息流)拼接在一起来创建虚拟现实内容项以捕获场景的视图。这些流可以被预先确定用于可在虚拟现实内容项中访问的各种方向,例如,角度(例如,0度、30度、60度等)。拼接在一起后,用户可以访问或呈现虚拟现实内容项,以沿着某个方向(或角度)观看虚拟现实内容项的一部分。通常,可以基于三维空间中用户视口的定位和方向来确定向用户显示的虚拟现实内容项(例如,流)的部分。在一些实施例中,虚拟现实内容项(例如,流、沉浸式视频、球形视频等)可以使用多个内容项合成。例如,可以使用第一内容项(例如,第一直播)和第二内容项(例如,第二直播)来合成内容项。

在一个示例中,其中实现了客户端模块114的计算设备可以请求呈现虚拟现实内容项(例如,球形视频)。在该示例中,流式传输模块106可以提供将要通过计算设备呈现的虚拟现实内容项的一个或更多个流。所提供的流将通常对应于正被访问的虚拟现实内容项中的视口的方向。随着虚拟现实内容项的呈现的进行,客户端模块114可以持续地向内容提供商模块102提供描述视口所朝向的方向的信息。流式传输模块106可以使用该信息来确定向客户端模块114提供哪个流。例如,当访问虚拟现实内容项时,客户端模块114可以通知内容提供商模块102视口正朝向第一方向。基于该信息,流式传输模块106可以向客户端模块114提供对应于第一方向的虚拟现实内容项的第一流。

在一些实施例中,内容特征模块108提供许多不同的特征来增强内容项的呈现。例如,在一些实施例中,内容特征模块108可以生成显著性预测模型,该模型可以用于识别给定内容项中的显著兴趣点。内容特征模块108可以使用所识别的显著兴趣点来改善内容项的呈现。下面将参考图2提供描述内容特征模块108的更多细节。

图2示出了根据本公开实施例的内容特征模块202的示例。在一些实施例中,可以用内容特征模块202来实现图1的内容特征模块108。如图2的示例所示,内容特征模块202可以包括训练内容模块204、观看跟踪数据模块206、热图数据模块208、显著性模块210、头部定向预测模块212、比特率分配模块214、内容兴趣点模块216、兴趣点投影模块218和嵌入模块220。

在各种实施例中,训练内容模块204可以被配置成获得将要用于训练一个或更多个模型(例如,显著性预测模型)的内容项。这种内容项可以包括视频(例如,虚拟现实内容项、沉浸式视频等)。通常,虚拟现实内容项(或沉浸式视频)对应于围绕(或包围)观众(或用户)的任何虚拟现实媒体。虚拟现实内容项的一些示例包括球形视频、半球视频(例如,180度视频)、任意部分球、225度视频和3d360视频。这种虚拟现实内容项不需要局限于使用球形形状来格式化的视频,而是也可应用于使用其他形状格式化的沉浸式视频,包括例如立方体、金字塔、以及视频记录的三维世界的其他形状表示。

由训练内容模块204获得的内容项可以根据被训练模型的类型而变化。例如,在一些实施例中,可以使用由各种发布者创建的各种不相关的内容项以及那些内容项的对应的热图数据来训练通用显著性预测模型。这种通用显著性预测模型可用于确定各种类型的内容项中的显著兴趣点。在一些实施例中,可以使用由给定发布者(例如,内容创建者)发布的内容项以及那些内容项的对应的热图数据来训练特定于发布者的显著性预测模型。这种特定于发布者的显著性预测模型可用于确定该发布者随后发布的内容中的显著兴趣点。在一些实施例中,可以使用所有对应于给定类别(例如,流派、主题、兴趣等)的内容项以及那些内容项的对应的热图数据来训练特定于类别的显著性预测模型。这种特定于类别的显著性预测模型可用于确定对应于给定类别的新内容项中的显著兴趣点。

在一些实施例中,观看跟踪数据模块206可以被配置成获得用来训练模型的每个内容项的相应观看跟踪数据。例如,可以针对已经访问了内容项的每个用户(或观众)收集给定内容项的观看跟踪数据。用户的观看跟踪数据可以识别在内容项的呈现期间通过用户的视口访问的区域。可以针对每个帧收集对应于内容项的这种观看跟踪数据。在一些实施例中,可以基于内容项呈现期间用户视口的改变来确定内容项的用户观看跟踪数据。视口的这种改变可以使用各种方法来测量,这些方法可以单独使用或组合使用。例如,可以使用传感器数据(例如,陀螺仪数据、惯性测量单元数据等)来测量视口的改变,该传感器数据描述正用于呈现内容项的计算设备的移动。在另一示例中,可以使用手势数据来测量视口的改变,该手势数据描述在内容项呈现期间执行的手势的类型(例如,平移、缩放等)。举例来说,用于测量视口改变的一些其他示例包括使用描述在内容项的呈现期间执行的输入操作(例如,鼠标移动、拖动等)的输入设备数据、描述在内容项的呈现期间视口方向改变的头戴式耳机移动数据、以及在内容项的呈现期间收集的眼睛跟踪数据。

在一些实施例中,热图数据模块208可以被配置成生成(或获得)用来训练模型的每个内容项的热图。在一些实施例中,给定内容项的热图可以基于该内容项的观看跟踪数据来生成。如上所述,观看跟踪数据模块206可以获得观看内容项的用户的相应观看跟踪数据。每个用户的观看跟踪数据可以指示在内容项的呈现期间使用用户的视口访问了给定帧(或一组帧)的哪些区域。也就是说,对于内容项中的任何给定帧,热图数据模块208可以生成(或获得)特定于用户的热图,该热图以图形方式表示给定用户感兴趣的帧中的区域。在一些实施例中,可以为对应于某个时间间隔的一组帧生成热图。例如,可以针对内容项的每一秒生成相应热图。在一些实施例中,给定内容项的特定于用户的热图可以被组合以生成聚集的热图,该聚集的热图表示对应于内容项的帧中聚集的感兴趣区域。因此,例如,特定于用户的相应热图可以逐帧聚集,使得内容项的每一帧与它自己的聚集的热图相关联,该聚集的热图以图形方式识别帧中的感兴趣区域。这些感兴趣的区域可以对应于各种兴趣点,这些兴趣点显现在帧中并被确定为是观看内容项的一些或所有用户感兴趣的。在一些实施例中,这些感兴趣区域可以对应于各种兴趣点,这些兴趣点显现在帧中并被确定为对与要观看内容项的用户共享一个或更多个公共特征的用户来说是感兴趣的。

在一些实施例中,显著性模块210可以被配置成训练显著性预测模型。在这种实施例中,显著性预测模型可用于识别访问其中显现所识别内容的内容项的给定用户可能感兴趣的内容(例如,兴趣点)。例如,显著性预测模型可以确定用户对显现在内容项的给定帧中的第一兴趣点的兴趣可能超过也显现在该帧中的第二兴趣点。在一些实施例中,使用由训练内容模块204获得的内容项和它们相应的聚集的热图来训练显著性预测模型。例如,在一些实施例中,可以向显著性预测模型提供内容项的每一帧及其对应的聚集热图作为训练示例。在一些实施例中,显著性预测模型使用已经被标识来识别兴趣点的聚集的热图数据进行训练。聚集的热图可用于识别被观看的比其他区域更多的帧的区域。这种观看活动可以使用描述观看区域大小的各种形状和/或指示帧的任何给定区域中观看活动的集中度(concentration)的颜色来在聚集的热图中进行表示。基于该信息,显著性预测模型可以学习帧中的哪些像素总体上是用户感兴趣(或相关)的。在一些实施例中,落入聚集的热图中所表示的形状和/或颜色内的帧像素可以被识别为总体上是用户感兴趣(或相关)的。在一些实施例中,这些像素与显现在帧中的兴趣点关联。因此,显著性预测模型可以学习显现在帧中的哪些兴趣点相对于也显现在帧中的其他兴趣点总体上是用户感兴趣的。被训练后,显著性预测模型可以用于识别新内容项中可能会被感兴趣的内容(例如,兴趣点)。在一些实施例中,显著性预测模型可以用于预测存储的内容项(例如,视频点播)的显著兴趣点。在一些实施例中,显著性预测模型可用于预测直播内容项(例如,直播视频广播)的显著兴趣点(例如,可能感兴趣的兴趣点)。

在各种实施例中,聚集的或其他的热图数据不必是以图形方式表示的实际热图,而可以是观看跟踪数据的某种表示。例如,在一些实施例中,热图数据可以识别内容项的单个帧内的观看活动集群。在一些实施例中,从热图数据中识别的观看活动集群可以独立地用于识别各种内容项中的显著兴趣点。例如,在一些实施例中,识别直播视频广播期间(例如,在广播的过去n秒上)帧中观看活动集群的热图数据可以用于识别显现在后续帧中的显著兴趣点。

预测新内容项中显著内容(例如,兴趣点)的能力提供了许多优点。例如,在一些实施例中,头部定向预测模块212可以被配置成在给定内容项的呈现期间确定用户头部定向的改变。在这样的实施例中,正在被观看的内容项(或内容项的帧)可以被提供作为由显著性模块210训练的显著性预测模型的输入。显著性预测模型可以输出指示观看内容项的用户可能对帧中的哪些内容感兴趣的信息。通常,用户的头部定向(例如,视口)预期与帧中包括可能被感兴趣的内容的区域对齐。在一些实施例中,预测的用户头部定向的改变可用于改善内容项的流式传输。例如,在一些实施例中,预测的用户头部定向的改变可用于改善内容项的观看相关流式传输。在一些实施例中,预测的用户头部定向的改变可用于改善内容项的动态流式传输。例如,在一些实施例中,可以仅生成对应于内容项呈现期间用户头部定向的预测方向的视口,而不是为内容项生成所有可能的视口,这些视口可能包括用户不期望观看的内容。

在一些实施例中,比特率分配模块214可以被配置成将更多比特(或宏块)分配给帧中包括被确定是感兴趣的内容(例如,兴趣点)的区域。帧中给定区域的附加比特分配允许该区域比帧中的其他区域以更高的质量被呈现。在一些实施例中,可以使用如上所述的显著性预测模型来确定这种内容。例如,被观看的内容项(或内容项的帧)可以被提供作为显著性预测模型的输入。显著性预测模型可以输出指示观看内容项的用户可能对帧中的哪些内容感兴趣的信息。帧中对应于可能感兴趣的内容的区域可以比帧中的其他区域被分配更多的比特。在帧的不同区域之间分配的实际比特数可以根据实现方式而变化。因此,可以在允许为帧中更感兴趣的区域分配更多比特的同时,限制在流式传输内容项时用户的数据使用。

在一些实施例中,内容兴趣点模块216可以被配置成对显现在内容项的帧中的内容(例如,兴趣点)进行评分。例如,在一些实施例中,帧中的内容可以基于反映该帧的用户观看活动的聚集的热图来评分。如所提到的,帧的聚集的热图可以识别对应于帧中不同区域(或兴趣点)的相应观看活动量。这种观看活动可以使用描述观看区域大小的各种形状和/或指示帧的任何给定区域中观看活动的集中度的颜色在聚集的热图中进行表示。在一些实施例中,帧中的内容(例如,兴趣点)相对于聚集的热图中表示的形状和/或颜色被评分。例如,显现在具有由聚集热图测量的观看活动的阈值集中度的区域中的内容(例如,兴趣点、显著兴趣点等)可以比接收较少观看活动的其他区域中的内容评分更高。

在一些实施例中,兴趣点投影模块218可以被配置成增强显现在内容项中的显著兴趣点的呈现。例如,在一些实施例中,在访问虚拟现实内容项(例如沉浸式视频、球形视频等)时,与流的低分辨率版本相对应的数据被提供给访问该虚拟现实内容项的计算设备,该流的低分辨率版本与虚拟现实内容项中的所有可观看方向相对应。该数据可以被存储(或缓存)以在球形视频的呈现期间使用。在这样的实施例中,当视口朝向给定方向时,计算设备可以通知兴趣点投影模块218。基于该信息,兴趣点投影模块218可以向计算设备提供对应于给定方向的流的更高分辨率版本。

在一些实施例中,兴趣点投影模块218可以增强对应于显现在帧中的显著兴趣点的区域的视频质量,超过帧中不包括显著兴趣点的其他区域。例如,给定具有包括显著兴趣点的区域和包括非显著兴趣点的另一区域的帧,兴趣点投影模块218可以将对应于显著兴趣点的区域被呈现的质量增加某个阈值(或指定)量,超过对应于非显著兴趣点的区域。在一些实施例中,帧可以被编码,使得对应于显著兴趣点的区域以比对应于非显著兴趣点的区域更高的质量被编码。在一些实施例中,兴趣点投影模块218可以增强对应于给定显著兴趣点的某些区域的视频质量,超过该显著兴趣点的其他区域。例如,如果个人已经被识别为显现在给定帧中的显著兴趣点,兴趣点投影模块218可以将个人面部被呈现的质量增加某个阈值(或指定)量,超过帧中其他区域。在一些实施例中,这些特定区域可以基于帧的聚集热图数据(或观看跟踪数据)来确定。

在一些实施例中,兴趣点投影模块218可以使帧中的显著兴趣点以更高的缩放水平(例如,放大)被呈现,超过显现在帧中的剩余区域(或者非显著兴趣点)。例如,可以呈现包括第一显著兴趣点(例如,个人)和第二显著兴趣点(例如,另一个人)的帧,使得第一显著兴趣点和第二显著兴趣点都以比帧的剩余部分更高的缩放水平显现。在一些实施例中,兴趣点投影模块218可以偏移对应于帧的立方体贴图,使得显著兴趣点以比帧的剩余部分更高的缩放水平显现。在一些实施例中,内容项的给定帧中由兴趣点投影模块218增强的内容可以由内容项的发布者指定。如下所述,该信息可以嵌入到帧中。

在各种实施例中,嵌入模块220可以被配置成将信息(例如,元数据)嵌入内容项的帧中。嵌入的信息可以包括有助于改善给定内容项的传送和/或呈现的任何类型的信息。这种嵌入允许相关信息与内容数据(例如,帧)一起发送,而不必单独传输。在一些实施例中,信息可以嵌入内容项的一些或全部帧中。在一些实施例中,嵌入给定帧中的信息可以根据帧而变化。例如,在一些实施例中,嵌入在帧中的信息可以描述显现在帧中的兴趣点(例如,兴趣点的相应像素坐标)。在一些实施例中,嵌入在帧中的信息可以描述对应于帧的观看方向(例如,俯仰、偏航等)。在一些实施例中,嵌入在帧中的信息可以描述从显著性预测模型获得的显著性信息。在这种实施例中,该信息可以描述显现在帧中的显著兴趣点。例如,该信息可以识别帧中显著兴趣点的相应像素坐标。在一些实施例中,嵌入在帧中的信息可以指示显现在帧中的每个兴趣点和/或显著兴趣点的相应半径。给定显著兴趣点的半径和坐标可用于定义帧中对应于显著兴趣点的区域。在一些实施例中,嵌入在帧中的信息可以描述在呈现帧时要应用的动作。例如,在一些实施例中,嵌入在帧中的信息可以描述显现在帧中的显著兴趣点的相应定位以及要应用于兴趣点的对应的滤波器。这种滤波器可以命令计算设备,例如,通过应用覆盖和/或遮罩(mask)来强调给定兴趣点的显现。在各种实施例中,这种嵌入信息可以在呈现期间从内容项的帧中提取,并用于通过计算设备呈现各个帧。

在一些实施例中,信息可以作为一行或更多行颜色序列嵌入帧中。例如,在一些实施例中,颜色序列行包括红色段、绿色段和蓝色段。在这种实施例中,显示颜色段以指示值1,而不显示颜色段以指示值0。因此,在这种实施例中,每行颜色序列包括三个颜色段,每个颜色段可以被显示或不被显示。因此,每个颜色序列行都可以用来表示一个3比特的字符串。例如,其中显示红色段、绿色段和蓝色段的颜色序列行将与“111”比特的字符串相关。在另一个示例中,其中红色段被显示、绿色段不显示并且蓝色段被显示的颜色序列行将与“101”比特字符串相关。当然,颜色序列行的数量、使用的颜色和颜色段的数量可以根据实现方式而变化。此外,提供颜色段只是作为嵌入信息的一种示例方法,并且根据实现方式,可以使用其他技术嵌入这种信息。在一些实施例中,信息可以嵌入到帧的不可见区域(例如,不可见扩展区域)中,使得信息对用户不可见。在一些实施例中,信息可以嵌入在内容项呈现期间不太可能被用户观看的区域中。例如,如上所述,内容项的显著性信息可以用于确定在内容项呈现期间用户头部定向的改变。在这个示例中,信息可以嵌入用户不太可能观看的区域。在一个示例中,信息可以嵌入对应于位于用户视口后面的区域的视频流中。

图3a-3f示出了根据本公开实施例的流式传输虚拟现实内容项的示例。图3a示出了显示球形视频的视频流306的一部分的视口304的示例300。视口304在图3a的图示中被示出为位于球形视频的表示302内,以便于理解本文描述的各种实施例。在一些实施例中,球形视频捕获场景(例如,三维场景)的360度视图。可以通过将由放置在特定定位和/或位置的摄像机捕获的各种视频流或信息流拼接在一起来创建球形视频,以捕获场景的360度视图。图3a-3f仅将球形视频作为本文描述的各种技术的一个示例应用来参考。根据实现方式,这种技术可以应用于除球形视频之外的其他类型的视频。

拼接在一起后,用户就可以通过视口304来访问或呈现球形视频以在某个角度下观看球形视频的一部分。视口304可以通过运行在计算设备上的软件应用(例如,视频播放器软件)来访问。拼接的球形视频可以投影为球体,如表示302所示。通常,当访问球形视频时,用户可以改变视口304的方向(例如,俯仰、偏航、滚动),以访问球形视频捕获的场景的另一部分。图3b示出了示例350,其中视口354的方向已经在向上的方向上改变(与视口304相比)。因此,通过视口354访问的球形视频的视频流356已经被更新(例如,与视频流306相比),以显示球形视频中对应于更新的视口方向的部分。

视口304的方向可以根据实现方式以各种方式改变。例如,当访问球形视频时,用户可以使用鼠标或类似设备或者通过由计算设备识别的手势来改变视口304的方向。随着方向的改变,例如,可以从内容提供商系统对视口304提供对应于该方向的流。在另一示例中,当通过移动设备的显示屏访问球形视频时,用户可以通过改变例如使用陀螺仪、加速度计、触摸传感器和/或移动设备中的惯性测量单元所确定的移动设备的方向(例如,俯仰、偏航、滚动)来改变视口304的方向。此外,如果通过虚拟现实头戴式显示器访问球形视频,则用户可以通过改变用户头部的方向(例如,俯仰、偏航、滚动)来改变视口304的方向。自然,可以利用其他方法来导航球形视频的呈现,包括例如触摸屏或其他合适的手势。

在一些实施例中,基于所确定的视口304的方向实时提供流。例如,当视口304的方向改变到新位置时,正通过其访问视口304的计算设备和/或内容提供商系统可以确定视口304的新位置,并且内容提供商系统可以向计算设备发送对应于新位置的流数据。因此,在这样的实施例中,实时地(例如,恒定地或以指定的时间间隔)监视视口304位置的每次改变,并且与该改变相关联的信息被提供给内容提供商系统,使得内容提供商系统可以发送对应于方向改变的合适的流。在各种实施例中,捕获并存储内容项呈现期间视口304的方向改变。在一些实施例中,这种视口跟踪数据用于为内容项生成一个或更多个特定于用户的热图和/或聚集的热图。例如,

图3c示出了基于视频呈现期间用户视口方向(例如,观看活动)的改变而生成的特定于用户的示例热图360。在图3c的示例中,特定于用户的热图360指示在球形视频呈现期间,用户的注意力集中在第一兴趣点362和第二兴趣点364上。如上所述,这种热图数据可用于多种应用。例如,在一些实施例中,如上所述,这种特定于用户的热图可以被聚集并用于训练显著性预测模型。显著性预测模型可用于确定各种内容项中的显著兴趣点。例如,图3d示出了内容项的示例帧370,其包括第一兴趣点372和第二兴趣点374。帧370可以被提供给显著性预测模型,以确定显著兴趣点。在该示例中,显著性预测模型可以确定第二兴趣点374是观看内容项的用户可能感兴趣的显著兴趣点。在一些实施例中,如上所述,第二兴趣点374(或对应于第二兴趣点374的区域376)可以在内容项的呈现期间被视觉增强。在一些实施例中,区域376可以对应于第二兴趣点374的轮廓。例如,在一些实施例中,第二兴趣点374可以以比显现在帧中的剩余区域(包括非第一显著兴趣点372)更高的缩放水平(例如,放大)被呈现,如图3e的示例所示。如所提到的,有助于改善内容呈现的信息可以嵌入到帧中。在一些实施例中,这种信息可以作为一行或更多行颜色序列378被嵌入到帧370中,如图3f的示例所示。

图4示出了根据本公开实施例的示例活动图示400。应当认识到,在本文所讨论的各种实施例的范围内,除非另有说明,否则可以以类似的或替代的顺序或者并行地执行额外的、更少的或替代的步骤。

在框402,获得用于训练一个或更多个模型(例如,显著性预测模型)的内容项。如上所述,这种内容项可以包括视频(例如,虚拟现实内容项、沉浸式视频等)。通常,虚拟现实内容项(或沉浸式视频)对应于围绕(或包围)观众(或用户)的任何虚拟现实媒体。虚拟现实内容项的一些示例包括球形视频、半球视频(例如,180度视频)、任意部分球、225度视频和3d360视频。这种沉浸式视频不需要局限于使用球形形状格式化的视频,而是也可应用于使用其他形状格式化的沉浸式视频,包括,例如立方体、金字塔、以及视频记录的三维世界的其他形状表示。

在框404,获得用于训练模型的每个内容项的相应观看跟踪数据。例如,可以针对访问了内容项的每个用户(或观众)收集给定内容项的观看跟踪数据。用户的观看跟踪数据可以识别在内容项的呈现期间通过用户的视口访问的区域。可以针对每个帧收集对应于内容项的这种观看跟踪数据。在一些实施例中,如上所述,给定内容项的热图可以基于该内容项的观看跟踪数据来生成。例如,可以基于那些用户的相应观看活动为给定的内容项生成特定于用户的热图。在一些实施例中,这种特定于用户的热图可以被组合以生成内容项的聚集的热图。这种聚集的热图可以指示内容项的给定帧中哪些区域对观看该内容项的用户是最受欢迎或最感兴趣的。

在框406,可以应用用于分析用户观看活动的各种方法来确定(或预测)给定内容项中特定于用户的兴趣点。例如,在一些实施例中,可以使用用户观看的内容项和相应的特定于用户的热图数据来训练特定于用户的显著性模型。如所提到的,在一些实施例中,热图数据可以逐帧地识别给定内容项中用户感兴趣的区域。如上所述,这种热图数据可以基于用户在呈现期间与内容项的交互来确定(例如,传感器数据、手势数据、输入设备数据、头戴式耳机移动数据、眼睛跟踪数据等)。在一些实施例中,特定于用户的模型可用于预测用户访问的其他内容项中用户可能感兴趣的兴趣点。可以对存储的内容项(例如,视频点播)和直播内容项(例如,直播视频广播)做出这种预测。在一些实施例中,例如,可以通过将比特(或宏块)分配给帧中对应于这种兴趣点的区域来增强显著兴趣点的视频质量。

在一些实施例中,给定内容项的一个或更多个帧可以被自动提取以创建附加内容。例如,已经被确定为感兴趣的内容的一部分(例如,一个或更多个帧)可以从内容项被提取,例如,作为一个或更多个图像或短视频。在一些实施例中,感兴趣内容的这些部分可以基于内容项呈现期间的用户交互来识别。举例来说,可以使用传感器数据、手势数据、输入设备数据、头戴式耳机移动数据、眼睛跟踪数据来测量这种用户交互。描述用于自动提取内容的方法的更多细节在2016年5月2日提交的题为“systemsandmethodsforpresentingcontent”的美国专利申请第15/144,695号中进行了描述,该申请通过引用并入本文。

在框408,可以生成一个或更多个显著性预测模型。例如,在一些实施例中,如上所述,可以使用描述各种内容项的用户观看跟踪数据的聚集的热图来训练通用显著性预测模型。在一些实施例中,该显著性预测模型可用于在内容项呈现期间预测用户可能感兴趣的内容(例如,兴趣点)。

在框410,被显著性预测模型预测为感兴趣的内容(例如,兴趣点)可以用于在给定内容项呈现期间确定用户头部定向的改变。例如,用户正在观看的内容项(或内容项的帧)可以被提供作为显著性预测模型的输入。显著性预测模型可以输出指示帧中的哪些内容是观看内容项的用户可能感兴趣的信息。通常,用户的头部定向(例如,视口)预期与帧中包括可能被感兴趣的内容的区域对齐。如上所述,这种头部定向预测可用于改善内容向用户的传送。

在框412,比特率分配技术可以被应用来提高被预测为感兴趣的内容被呈现的质量。例如,如上所述,可以将附加的比特分配给帧中的与帧中的其他区域相比包括可能感兴趣的内容(例如,兴趣点)的区域。

在框414,可以对显现在内容项的帧中的内容(例如,兴趣点)进行评分。在一些实施例中,如上所述,参照在内容项的聚集热图中表示的形状和/或颜色对帧中的内容进行评分。

在框416,可以应用各种投影来增强兴趣点的呈现,如上所述。在一些实施例中,这种投影可以包括锐化帧中对应于显著兴趣点的区域。在一些实施例中,这种投影可涉及模糊帧中不对应于显著兴趣点的区域。

在框418,信息可以嵌入到内容项的帧中,如上所述。在一些实施例中,帧相关的信息被嵌入给定内容项的每个帧。

图5示出了根据本公开实施例的示例方法500。应当认识到,在本文所讨论的各种实施例的范围内,除非另有说明,否则可以以类似的或替代的顺序或者并行地执行额外的、更少的或替代的步骤。

在框502,确定正在通过计算设备的显示屏呈现内容项。在框504,确定描述在内容项呈现期间显现的一个或更多个显著兴趣点的信息。预测访问内容项的一个或更多个用户对该显著兴趣点感兴趣。在框506,至少部分基于该信息,在内容项的呈现期间增强至少第一显著兴趣点的呈现。

图6示出了根据本公开实施例的示例方法600。应当认识到,在本文所讨论的各种实施例的范围内,除非另有说明,否则可以以类似的或替代的顺序或者并行地执行额外的、更少的或替代的步骤。

在框602,确定描述在内容项呈现期间显现的一个或更多个显著兴趣点的显著性信息。预测访问内容项的一个或更多个用户对该显著兴趣点感兴趣。在框604,描述显著兴趣点的显著性信息被嵌入到内容项中。显著性信息能够在内容项的呈现期间被处理,以增强内容项的呈现。

设想可以有与本公开的各种实施例相关联的许多其他用途、应用和/或变型。例如,在一些情形中,用户可以选择是否选择加入(opt-in)以利用所公开的技术。所公开的技术还可以确保各种隐私设置和偏好被维护,并且可以防止隐私信息被泄露。在另一示例中,本公开的各种实施例可以随着时间的推移而学习、改进和/或被完善。

社交网络系统——示例实现方式

图7示出了根据本公开实施例的可以在各种场景中被利用的示例系统700的网络图。系统700包括一个或更多个用户设备710、一个或更多个外部系统720、社交网络系统(或服务)730和网络750。在实施例中,关于上述实施例讨论的社交网络服务、提供者和/或系统可以被实现为社交网络系统730。为了说明的目的,图7所示的系统700的实施例包括单个外部系统720和单个用户设备710。然而在其他实施例中,系统700可以包括更多个用户设备710和/或更多个外部系统720。在某些实施例中,社交网络系统730由社交网络提供者操作,而外部系统720与社交网络系统730分离,因为它们可以由不同的实体进行操作。然而在多种实施例中,社交网络系统730和外部系统720协同操作以向社交网络系统730的用户(或成员)提供社交网络服务。在这个意义上,社交网络系统730提供了平台或骨干网,其他系统(如外部系统720)可以使用该平台或骨干网来通过互联网向用户提供社交网络服务和功能。

用户设备710包括可以接收来自用户的输入并经由网络750来传输并接收数据的一个或更多个计算设备(或系统)。在一个实施例中,用户设备710是执行例如microsoftwindows兼容操作系统(os)、appleosx和/或linux发行版的传统计算机系统。在另一实施例中,用户设备710可以是计算设备,或具有计算机功能的设备,如智能电话、平板电脑、个人数字助理(pda)、移动电话、膝上型计算机、可佩戴设备(例如,眼镜、手表、手链等)、摄像机、家用电器等。用户设备710被配置成经由网络750进行通信。用户设备710可以执行允许用户设备710的用户与社交网络系统730交互的应用(例如,浏览器应用)。在另一实施例中,用户设备710通过由用户设备710的本机(native)操作系统(例如ios和android)提供的应用编程接口(api)来与社交网络系统730交互。用户设备710被配置成使用有线和/或无线通信系统经由网络750来与外部系统720和社交网络系统730进行通信,网络750可以包括局域网和/或广域网的任何组合。

在一个实施例中,网络750使用标准通信技术和协议。因此,网络750可以包括使用诸如以太网、802.11、全球互通微波接入(wimax)、3g、4g、cdma、gsm、lte、数字用户线路(dsl)等的技术的链路。类似地,在网络750上使用的网络协议可以包括多协议标签交换(mpls)、传输控制协议/互联网协议(tcp/ip)、用户数据报协议(udp)、超文本传输协议(http)、简单邮件传输协议(smtp)、文件传输协议(ftp)等。可以使用包括超文本标记语言(html)和可扩展标记语言(xml)的技术和/或格式来表示通过网络750交换的数据。此外,可以使用诸如安全套接字层(ssl)、传输层安全(tls)和互联网协议安全(ipsec)的常规加密技术来对所有或一些链路进行加密。

在一个实施例中,用户设备710可以通过使用浏览器应用712处理从外部系统720和从社交网络系统730接收的标记语言文档714来显示来自外部系统720和/或来自社交网络系统730的内容。标记语言文档714识别内容以及描述内容的格式或呈现的一个或更多个指令。通过执行在标记语言文档714中包括的指令,浏览器应用712使用由标记语言文档714所描述的格式或呈现来显示所识别的内容。例如,标记语言文档714包括用于生成并显示具有多个帧的网页的指令,这些帧包括从外部系统720和社交网络系统730检索的文本和/或图像数据。在各种实施例中,标记语言文档714包括数据文件,该数据文件包括可扩展标记语言(xml)数据、可扩展超文本标记语言(xhtml)数据或其他标记语言数据。此外,标记语言文档714可以包括javascript对象简谱(json)数据、带填充的json(jsonp)和javascript数据,以便于在外部系统720和用户设备710之间的数据交换。用户设备710上的浏览器应用712可以使用javascript编译器来对标记语言文档714进行解码。

标记语言文档714还可以包括或链接到应用或应用框架(例如flashtm或unitytm应用)、silverlighttm应用框架等。

在一个实施例中,用户设备710还包括一个或更多个cookie716,cookie716包括指示用户设备71的用户是否登录到社交网络系统730内的数据,这可以实现从社交网络系统730传递到用户设备710的数据的修改。

外部系统720包括一个或更多个web服务器,其包括一个或更多个网页722a、722b,这些网页使用网络750被传递到用户设备710。外部系统720与社交网络系统730分离。例如,外部系统720与第一域相关联,而社交网络系统730与单独的社交网络域相关联。被包括在外部系统720中的网页722a、722b包括标记语言文档714,其识别内容并且包括指定所识别的内容的格式或呈现的指令。如前所述,应当理解,可以有许多变型或其他可能。

社交网络系统730包括用于社交网络(包括多个用户)并且向社交网络的用户提供与社交网络的其他用户通信并交互的能力的一个或更多个计算设备。在一些实例中,社交网络可以由图形(即,包括边和节点的数据结构)表示。其他数据结构也可以用来表示社交网络,包括但不限于数据库、对象、类、meta元素、文件或任何其他数据结构。社交网络系统730可以由操作者掌管、管理或控制。社交网络系统730的操作者可以是人、自动化应用或用于管理内容、调整策略和收集在社交网络系统730内的使用度量的一系列应用。可以使用任何类型的操作者。

用户可以加入社交网络系统730,且然后添加对他们希望关连到的社交网络系统730的任何数量的其他用户的关连。如在本文所使用的,术语“朋友”指社交网络系统730的任何其他用户,用户经由社交网络系统730与任何其他用户形成关连、关联(association)或关系。例如在实施例中,如果在社交网络系统730中的用户被表示为在社交图中的节点,则术语“朋友”可以指在两个用户节点之间形成的并直接连接两个用户节点的边。

关连可以由用户明确地添加,或者可以由社交网络系统730基于用户(例如,作为同一教育机构的校友的用户)的共同特性来自动创建。例如,第一用户特别地将特定的其他用户选择为朋友。在社交网络系统730中的关连通常在两个方向上,但不需要是这样,因此术语“用户”和“朋友”取决于参考系。在社交网络系统730的用户之间的关连通常是双边的(“双向的”)或“相互的”,但是关连也可以是单边的或“单向的”。例如,如果鲍勃和乔都是社交网络系统730的用户并且关连到彼此,则鲍勃和乔是彼此的关连。另一方面,如果鲍勃希望关连到乔以查看由乔传递到社交网络系统730的数据,但是乔不希望形成相互关连,则单边连接可以被建立。在用户之间的关连可以是直接关连;然而,社交网络系统730的一些实施例允许经由一个或更多个水平的关连或分离的程度的关连是间接的。

除了建立并维护在用户之间的关连并允许在用户之间的交互之外,社交网络系统730还向用户提供对由社交网络系统730支持的各种类型的项目采取动作的能力。这些项目可以包括社交网络系统730的用户可能属于的群组或网络(即,人、实体和概念的社交网络)、用户可能感兴趣的事件或日历条目、用户经由社交网络系统730可以使用的基于计算机的应用、允许用户借助由社交网络系统730提供或通过社交网络系统730提供的服务来购买或销售项目的交易、以及用户可以在社交网络系统730上或外执行的与广告的交互。这些仅仅是用户可以在社交网络系统730上对其作用的项目的几个示例,并且许多其他项目是可能的。用户可以与能够在社交网络系统730中或在外部系统720中被表示的、与社交网络系统730分离的、或者经由网络750耦合到社交网络系统730的任何事物进行交互。

社交网络系统730也能够链接各种实体。例如,社交网络系统730使用户能够通过api、web服务或其他通信渠道来与彼此以及外部系统720或其他实体进行交互。社交网络系统730生成并维护包括由多个边互连的多个节点的“社交图”。社交图中的每个节点可以表示可以作用于另一个节点和/或可以由另一个节点作用的实体。社交图可以包括各种类型的节点。节点的类型的示例包括用户、非个人实体、内容项目、网页、群组、活动、消息、概念以及可以由社交网络系统730中的对象表示的任何其他事物。在社交图中的两个节点之间的边可以表示在两个节点之间的特定类型的关连或关联,这可以由节点关系或由节点中的一个节点在另一个节点上所执行的动作产生。在一些情况下,在节点之间的边可以被加权。边的权重可以表示与该边相关联的属性,例如在节点之间的关连或关联的强度。不同类型的边可以具有不同的权重。例如,当一个用户“赞”另一个用户时创建的边可以被赋予一个权重,而当一个用户加另一个用户为好友(befriend)时创建的边可以被赋予不同的权重。

作为示例,当第一用户将第二用户识别为朋友时,生成将表示第一用户的节点和表示第二用户的第二节点连接的在社交图中的边。当各种节点与彼此关联(relate)或交互时,社交网络系统730修改连接各种节点的边以反映关系和交互。

社交网络系统730还包括用户生成的内容,这增强了用户与社交网络系统730的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统730的任何内容。例如,用户将帖子从用户设备710传递到社交网络系统730。帖子可以包括数据(例如状态更新或其他文本数据)、定位信息、图像(例如照片)、视频、链接、音乐或其他类似数据或媒体。内容也可以由第三方添加到社交网络系统730。内容“项”被表示为在社交网络系统730中的对象。以这种方式,通过经由各种通信渠道发布各种类型的媒体的文本和内容项来鼓励社交网络系统730的用户与彼此进行通信。这种通信增加了用户与彼此的交互,并增加了用户与社交网络系统730交互的频率。

社交网络系统730包括web服务器732、api请求服务器734、用户简档储存器736、关连储存器738、动作记录器740、活动日志742和授权服务器744。在本发明的实施例中,社交网络系统730可以包括用于各种应用的附加的、更少的或不同的部件。没有示出其他部件(例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台等),以便不使系统的细节模糊。

用户简档储存器736维护关于用户账户的信息,包括传记、人口统计和其他类型的描述性信息,例如工作经历、教育历史、爱好或偏好、定位以及由用户声明或由社交网络系统730推断的信息等。该信息存储在用户简档储存器736中,使得每个用户被唯一地识别。社交网络系统730还在关连储存器738中存储描述在不同用户之间的一个或更多个关连的数据。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好或教育历史的用户。另外,社交网络系统730包括在不同用户之间的用户定义的关连,允许用户指定他们与其他用户的关系。例如,用户定义的关连允许用户生成与其他用户的关系,这些关系并行于用户的真实生活关系,例如朋友、同事、伙伴等。用户可以从预定义类型的关连中进行选择,或者根据需要定义他们自己的关连类型。与社交网络系统730中的其他节点(例如非个人实体、存储桶(bucket)、集群中心、图像、兴趣、页面、外部系统、概念等)的关连也存储在关连储存器738中。

社交网络系统730维护关于对象的数据,用户可以与该对象交互。为了维护该数据,用户简档储存器736和关连储存器738存储由社交网络系统730维护的相应类型的对象的实例。每种对象类型都有适于存储适合于对象的类型的信息的信息字段。例如,用户简档储存器736包含具有适于描述用户的账户的字段和与用户的账户相关的信息的数据结构。当特定类型的新对象被创建时,社交网络系统730初始化相应类型的新数据结构,给它分配唯一的对象标识符,并开始根据需要来向对象添加数据。例如,这可能在用户成为社交网络系统730的用户时显现,社交网络系统730在用户简档储存器736中生成用户简档的新实例,给用户账户分配唯一标识符,并开始用由用户提供的信息来填充用户账户的字段。

关连储存器738包括适于描述用户到其他用户的关连、与外部系统720的关连或与其他实体的关连的数据结构。关连储存器738还可以使关连类型与用户的关连相关联,用户的关连可以结合用户的隐私设置来被使用以调节对关于用户的信息的访问。在本发明的实施例中,用户简档储存器736和关连储存器738可以被实现为联合数据库(federateddatabase)。

存储在关连储存器738、用户简档储存器736和活动日志742中的数据使社交网络系统730能够生成社交图,该社交图使用节点来识别各种对象并且使用连接节点的边来识别在不同对象之间的关系。例如,如果第一用户与社交网络系统730中的第二用户建立关连,则来自用户简档储存器736的第一用户和第二用户的用户账户可以充当社交图中的节点。由关连储存器738存储的在第一用户和第二用户之间的关连是在与第一用户和第二用户相关联的节点之间的边。继续该示例,第二用户然后可以在社交网络系统730内向第一用户发送消息。可以被存储的发送消息的动作是在社交图中的表示第一用户和第二用户的两个节点之间的另一条边。另外,消息本身可以被识别并被包括在社交图中,作为关连到表示第一用户和第二用户的节点的另一个节点。

在另一示例中,第一用户可以在由社交网络系统730维护的图像中(或者可选地,在由在社交网络系统730外部的另一系统维护的图像中)标记第二用户。图像本身可以被表示为社交网络系统730中的节点。该标记动作可以在第一用户和第二用户之间创建边,以及在每个用户和图像之间创建边,图像也是社交图中的节点。在又一示例中,如果用户确认参加事件,则用户和事件是从用户简档储存器736获得的节点,其中事件的参加是在可以从活动日志742检索的节点之间的边。通过生成并维护社交图,社交网络系统730包括描述许多不同类型的对象以及在这些对象当中的交互和关连的数据,提供了社交相关信息的丰富源。

web服务器732经由网络750来将社交网络系统730链接到一个或更多个用户设备710和/或一个或更多个外部系统720。web服务器732提供网页以及其他网络相关内容,例如java、javascript、flash、xml等。web服务器732可以包括邮件服务器或用于在社交网络系统730和一个或更多个用户设备710之间接收并按规定路线发送消息的其他消息传送功能。消息可以是即时消息、排队消息(例如,电子邮件)、文本和sms消息或者任何其他合适的消息格式。

api请求服务器734允许一个或更多个外部系统720和用户设备710通过调用一个或更多个api函数来调用来自社交网络系统730的访问信息。api请求服务器734还可以允许外部系统720通过调用api来向社交网络系统730发送信息。在一个实施例中,外部系统720经由网络750向社交网络系统730发送api请求,并且api请求服务器734接收该api请求。api请求服务器734通过调用与api请求相关联的api来处理该请求以生成适当的响应,api请求服务器734经由网络750来将该响应传递到外部系统720。例如,响应于api请求,api请求服务器734收集与用户相关联的数据(例如已经登录到外部系统720内的用户的关连),并将所收集的数据传递到外部系统720。在另一实施例中,用户设备710以与外部系统720相同的方式经由api来与社交网络系统730进行通信。

动作记录器740能够从web服务器732接收关于在社交网络系统730上和/或外的用户动作的通信。动作记录器740用关于用户动作的信息来填充活动日志742,使社交网络系统730能够发现由它的用户在社交网络系统730内和在社交网络系统730外采取的各种动作。特定用户相对于在社交网络系统730上的另一个节点采取的任何动作可以通过在活动日志742中或在类似数据库或其他数据仓库中维护的信息来与每个用户的账户相关联。被识别并存储的由用户在社交网络系统730内采取的动作的示例可以包括例如,添加到另一个用户的关连、向另一个用户发送消息、从另一个用户读取消息、查看与另一个用户相关联的内容、参加由另一个用户发布的事件、发布图像、尝试发布图像、或与另一个用户或另一个对象交互的其他动作。当用户在社交网络系统730内采取动作时,该动作被记录在活动日志742中。在一个实施例中,社交网络系统730将活动日志742维护为条目的数据库。当在社交网络系统730内采取动作时,该动作的条目被添加到活动日志742。活动日志742可以被称为动作日志。

此外,用户动作可以与在社交网络系统730外部的实体(例如与社交网络系统730分离的外部系统720)内出现的概念和动作相关联。例如,动作记录器740可以从web服务器732接收描述用户与外部系统720的交互的数据。在该示例中,外部系统720根据在社交图中的结构化动作和对象来报告用户的交互。

用户与外部系统720交互的动作的其他示例包括用户表达对外部系统720或另一实体的兴趣、用户将讨论外部系统720或在外部系统720内的网页722a的评论发布到社交网络系统730、用户将统一资源定位符(url)或与外部系统720相关联的其他标识符发布到社交网络系统730、用户参加与外部系统720相关联的事件、或者由用户进行的与外部系统720相关的任何其他动作。因此,活动日志742可以包括描述在社交网络系统730的用户和与社交网络系统730分离的外部系统720之间的交互的动作。

授权服务器744实施社交网络系统730的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。隐私设置包括与用户相关联的特定信息的规范以及信息可以被共享于的一个或更多个实体的规范。

信息可以被共享于的实体的示例可以包括其他用户、应用、外部系统720、或可能潜在地访问信息的任何实体。可以由用户共享的信息包括用户账户信息(例如简档照片)、与用户相关联的电话号码、用户的关连、由用户采取的动作(例如添加关连)、改变用户简档信息等。

可以以不同的粒度水平提供隐私设置规范。例如,隐私设置可以识别要与其他用户共享的特定信息;隐私设置识别工作电话号码或一组特定的相关信息(例如,包括简档照片、家庭电话号码和状态的个人信息)。可选地,隐私设置可以应用于与用户相关联的所有信息。也可以以不同的粒度水平指定可以访问特定信息的该组实体的规范。信息可以与其共享的不同组的实体可以包括例如,用户的所有朋友、朋友的所有朋友、所有应用、或所有外部系统720。一个实施例允许该组实体的规范包括实体的枚举。例如,用户可以提供被允许访问某些信息的外部系统720的列表。另一实施例允许规范包括一组实体以及不被允许访问信息的例外。例如,用户可以允许所有外部系统720访问用户的工作信息,但是指定不被允许访问工作信息的外部系统720的列表。某些实施例将不被允许访问某些信息的例外的列表称为“黑名单”。属于由用户指定的黑名单的外部系统720被阻止访问在隐私设置中指定的信息。信息的规范的粒度和信息与其共享的实体的规范的粒度的各种组合是可能的。例如,所有个人信息可以与朋友共享,而所有工作信息可以与朋友的朋友共享。

授权服务器744包含确定与用户相关联的某些信息是否可以由用户的朋友、外部系统720和/或其他应用和实体访问的逻辑。外部系统720可能需要来自授权服务器744的授权来访问用户的更私密且敏感的信息,例如用户的工作电话号码。基于用户的隐私设置,授权服务器744确定另一用户、外部系统720、应用、或另一实体是否被允许访问与用户相关联的信息,包括关于由用户采取的动作的信息。

在一些实施例中,社交网络系统730可以包括内容提供商模块746。内容提供商模块746可以,例如,被实现为如图1的内容提供商模块102。在一些实施例中,内容提供商模块746或其一些特征可以在计算设备(例如,用户设备710)中实现。在一些实施例中,用户设备710可以包括客户端模块718。客户端模块718可以,例如,被实现为如图1的客户端模块114。网络750可以,例如,被实现为如图1的网络150。如前所述,应当理解,可以有许多变型或其他可能。

硬件实现方式

前述过程和特征可以由各种机器和计算机系统架构以及在各种网络和计算环境中实现。图8示出了根据本发明的实施例的可以用于实现本文描述的一个或更多个实施例的计算机系统800的示例。计算机系统800包括用于使计算机系统800执行本文讨论的过程和特征的指令集。计算机系统800可以连接(例如,联网)到其他机器。在联网部署中,计算机系统800可以在客户端-服务器网络环境中的服务器机器或客户端机器的能力下进行操作,或者作为在对等(peer-to-peer)(或分布式)网络环境中的对等机器来进行操作。在本发明的实施例中,计算机系统800可以是社交网络系统730、用户设备710和外部系统820、或者其部件。在本发明的实施例中,计算机系统800可以是在构成社交网络系统730的全部或部分的许多服务器当中的一个服务器。

计算机系统800包括处理器802、高速缓存804以及存储在计算机可读介质上的指向本文描述的过程和特征的一个或更多个可执行模块和驱动程序。另外,计算机系统800包括高性能输入/输出(i/o)总线806和标准i/o总线808。主桥(hostbridge)810将处理器802耦合到高性能i/o总线806,而i/o总线桥812将两个总线806和808耦合到彼此。系统存储器814和一个或更多个网络接口816耦合到高性能i/o总线806。计算机系统800还可以包括视频存储器和耦合到视频存储器的显示设备(未示出)。大容量存储装置818和i/o端口820耦合到标准i/o总线808。计算机系统800可以可选地包括键盘和定点设备、显示设备、或耦合到标准i/o总线808的其他输入/输出设备(未示出)。共同地,这些元件旨在表示广泛类别的计算机硬件系统,包括但不限于基于由加利福尼亚州(california)圣克拉拉(santaclara)的英特尔公司制造的x86兼容处理器和由加利福尼亚州森尼维尔(sunnyvale)的高级微器件(amd)公司制造的x86兼容处理器以及任何其他合适的处理器的计算机系统。

操作系统管理并控制计算机系统800的操作,包括往返软件应用(未示出)的数据输入和输出。操作系统提供在系统上执行的软件应用和系统的硬件部件之间的接口。可以使用任何合适的操作系统,例如linux操作系统、可从加利福尼亚州库比蒂诺(cupertino)的苹果计算机公司获得applemacintosh操作系统、unix操作系统、操作系统、bsd操作系统等。其他实现方式是可能的。

将在下面更详细地描述计算机系统800的元件。特别是,网络接口816提供在计算机系统800和各种网络(诸如以太网(例如,ieee802.3)网络)中的任一种、背板等之间的通信。大容量存储装置818提供数据和编程指令的永久存储,以执行由上面识别的相应计算系统实现的上述过程和特征,而系统存储器814(例如,dram)提供当由处理器802执行时的数据和编程指令的临时存储。i/o端口820可以是提供在可以耦合到计算机系统800的附加外围设备之间的通信的一个或更多个串行和/或并行通信端口。

计算机系统800可以包括各种系统架构,并且计算机系统800的各种部件可以被重新排列。例如,高速缓存804可以与处理器802一起在芯片上。可选地,高速缓存804和处理器802可以封装在一起作为“处理器模块”,其中处理器802被称为“处理器核心”。此外,本发明的某些实施例可以既不需要也不包括所有上述部件。例如,耦合到标准i/o总线808的外围设备可以耦合到高性能i/o总线806。此外,在一些实施例中,可以仅存在单个总线,其中计算机系统800的部件耦合到该单个总线。此外,计算机系统800可以包括附加部件,例如附加处理器、存储设备或存储器。

一般来说,本文描述的过程和特征可以被实现为操作系统或特定应用、部件、程序、对象、模块、或被称为“程序”的指令系列的一部分。例如,一个或更多个程序可以用于执行本文描述的特定过程。程序通常包括在计算机系统800中的各种存储器和存储设备中的一个或更多个指令,其当由一个或更多个处理器读取并执行时使计算机系统800执行操作以执行本文描述的过程和特征。可以在软件、固件、硬件(例如,专用集成电路)、或其任何组合中实现本文描述的过程和特征。

在一种实现方式中,本文描述的过程和特征被实现为由计算机系统800在分布式计算环境中单独或共同地运行的一系列可执行模块。前述模块可以由硬件、存储在计算机可读介质(或机器可读介质)上的可执行模块、或者两者的组合来实现。例如,模块可以包括由在硬件系统中的处理器(例如处理器802)执行的多个指令或指令系列。最初,指令系列可以存储在存储设备(例如大容量存储装置818)上。然而,指令系列可以存储在任何合适的计算机可读存储介质上。此外,指令系列不需要存储在本地,并且可以经由网络接口816从远程存储设备(例如网络上的服务器)被接收。指令从诸如大容量存储装置818的存储设备被复制到系统存储器814中,且然后由处理器802进行访问和执行。在各种实现中,一个或更多个模块可以由在一个或多个位置上的一个或多个处理器(例如在并行处理环境中的多个服务器)执行。

计算机可读介质的示例包括但不限于可记录类型的介质(例如易失性和非易失性存储器设备);固态存储器;软盘和其他可移动盘;硬盘驱动器;磁性介质;光盘(例如,光盘只读存储器(cdrom)、数字通用盘(dvd));其他类似的非暂时性(或暂时性)、有形(或非有形)存储介质;或任何类型的介质,其适于存储、编码或携带用于由计算机系统800执行的一系列指令,以执行本文描述的过程和特征中的任一个或更多个。

为了解释的目的,阐述了许多具体细节,以便提供对说明书的透彻理解。然而对于本领域中的技术人员将明显,可以在没有这些具体细节的情况下实践本公开的实施例。在一些实例中,以框图形式示出了模块、结构、过程、特征和设备,以便避免使本说明书模糊。在其他实例中,功能框图和流程图被示出为表示数据和逻辑流。框图和流程图的部件(例如,模块、块、结构、设备、特征等)可以以不同于如在本文明确描述并描绘的方式来被不同地组合、分离、移除、重新排序和替换。

在本说明书中对“一个实施例”、“实施例”、“其他实施例”、“一系列实施例”、“一些实施例”、“各种实施例”等的提及意指关于实施例描述的特定特征、设计、结构或特性被包括在本公开的至少一个实施例中。例如,短语“在一个实施例中”或“在实施例中”在说明书中的不同地方中的出现并不一定都指同一实施例,也不是与其他实施例相互排斥的单独的或可选的实施例。此外,无论是否存在对“实施例”等的明确提及,都描述了各种特征,这些特征可以多方面地被组合并且包括在一些实施例中,但是在其他实施例中也可以多方面地被省略。类似地,描述了各种特征,其可以是对于一些实施例而不是其他实施例的优先选择或要求。

本文使用的语言主要为了可读性和教学目的而被选择,并且它可以不被选择为描写或限制创造性主题。因此,意图是本发明的范围不由该详细描述限制,而是由在基于它的申请上发布的任何权利要求限制。因此,本发明的实施例的公开旨在是说明性的,但不是对在所附的权利要求中阐述的本发明的范围的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1