首页> 中国专利> 在增强现实环境中的多设备地图构建和协作

在增强现实环境中的多设备地图构建和协作

摘要

在一个实施例中,一种方法包括:从与第一计算设备相关联的传感器接收第一信息,其中第一信息包括与在第一传感器处捕获的第一图像相关联的信息;从第二计算设备接收第二信息,其中第二信息包括与在与第二计算设备相关联的第二传感器处捕获的第二图像相关联的信息;识别在第一图像内的第一点;识别在第二图像内的第二点;以及通过基于图像定义坐标空间并基于识别出的共享点组合坐标空间来在共享增强现实环境内重新定位第一计算设备和第二计算设备。

著录项

说明书

相关申请

本申请要求于2018年8月24日提交的美国申请号16/112,475的优先权。美国申请号16/112,475为了所有目的通过引用被全部并入本文。

技术领域

本公开总体上涉及增强或虚拟现实环境。

背景

增强现实(AR)效果是叠加或集成到现实世界场景的用户视野中的计算机生成的视觉效果(例如,图像和动画)。某些AR效果可以被配置为跟踪在现实世界中的对象。例如,计算机生成的独角兽可以被放置在视频中捕获的现实世界桌子上。当桌子在所捕获的视频中移动(例如,由于摄像机移动或桌子被搬走)时,所生成的独角兽可以跟随桌子,使得它继续出现在桌子的顶部上。为了实现这个效果,AR应用可以使用跟踪算法来跟踪出现在现实世界场景中的对象的位置和/或定向,并且使用得到的跟踪数据来生成适当的AR效果。因为当场景被观察时AR效果可以实时或接近实时地增强现实世界场景,所以可能需要实时或接近实时地生成跟踪数据,使得AR效果如所期望的出现。

可以包括社交网络网站的社交网络系统可以使它的用户(例如个人或组织)能够与它互动以及通过它彼此互动。社交网络系统可以利用来自用户的输入来创建并在社交网络系统中存储与用户相关联的用户简档(user profile)。用户简档可以包括人口统计信息、通信渠道信息以及关于用户的个人兴趣的信息。社交网络系统还可以用来自用户的输入来创建并存储用户与社交网络系统的其他用户的关系的记录,以及提供服务(例如,发帖墙(wall post)、照片分享、事件组织、消息传送、游戏或广告)以便于在用户之间或当中的社交互动。

特定实施例的概述

在特定实施例中,提供了一种方法,其包括:

由第一计算设备的处理器从与第一计算设备相关联的第一传感器接收第一信息,其中第一信息包括与在第一传感器处捕获的一个或更多个第一图像相关联的信息;

从第二计算设备接收第二信息,其中第二信息包括与在与第二计算设备相关联的第二传感器处捕获的一个或更多个第二图像相关联的信息;

识别在第一图像内的一个或更多个第一点;

识别在第二图像内的一个或更多个第二点;以及

在共享增强现实环境内重新定位第一计算设备和第二计算设备,其中重新定位包括定义包括第一点的第一坐标空间,其中第一点中的每个基于第一信息与在第一坐标空间内的坐标相关联;

定义包括第二点的第二坐标空间,其中第二点中的每个基于第二信息与在第二坐标空间内的坐标相关联;

识别一个或更多个共享点,其中每个共享点是特定的第一点和特定的第二点相交的点;

基于识别出的共享点组合第一坐标空间与第二坐标空间以创建对应于共享增强现实环境的共享坐标空间;以及

在共享增强现实环境内确定第一传感器的位置和第二传感器的位置。

可选地,该方法还可以包括:

从第二计算设备接收内容信息,其中内容信息包括定义在共享增强现实环境中的一个或更多个位置的信息和指定增强现实内容项目的信息;

在共享增强现实环境内将增强现实内容项目放置在与已定义的位置相关联的位置处;以及

在与第一设备相关联的显示器上渲染(render)共享增强现实环境和增强现实内容项目。

可选地,第二设备还可以包括惯性测量单元和处理器,并且第二传感器可以是摄像机。

可选地,第二设备可以是触笔设备。

可选地,增强现实内容项目可以包括图形的一部分,其中该图形可以基于内容创建设备的手势来被构建。

可选地,增强现实内容项目可以包括照片、视频、图像文件或虚拟对象。

可选地,增强现实内容项目可以包括:

面具(mask),其被配置为叠加在共享增强现实环境中识别的对象上,或者

滤镜叠加层(filter overlay),其被配置为叠加在共享增强现实环境的渲染图(rendering)上。

可选地,增强现实内容项目可以包括在线社交网络上的通信的视觉表示。

可选地,第一传感器可以包括摄像机、LiDAR传感器或雷达传感器。

可选地,第一计算设备可以与第一用户相关联,以及第二计算设备可以与第二用户相关联,该方法还包括:

访问包括多个节点和连接节点的多条边的社交图,在节点中的两个节点之间的在这些边中的每条边表示这两个节点之间的单一分离度,节点包括:

第一节点,其对应于第一用户,以及

第二节点,其对应于第二用户;

确定直接连接第一节点和第二节点的至少一条边的存在;以及

响应于确定至少一条边的存在,授权对第一计算设备和第二计算设备的重新定位。

可选地,第一计算设备可以与第一用户相关联,以及第二计算设备可以与第二用户相关联,该方法还包括:

确定第一用户和第二用户正在第一地点处参加公共事件,其中第一地点与共享增强现实环境相关联;以及

响应于确定第一用户和第二用户正在第一地点处参加公共事件,授权第一计算设备和第二计算设备的重新定位。

可选地,第一点可以对应于特征,特征可以包括边或角。

在实施例中,该方法还可以包括:

接收定义共享增强现实环境的信息;

从第二计算设备接收更新信息,其中更新信息定义一个或更多个附加第二点;以及

基于附加第二点来更新共享增强现实环境。

可选地,附加第二点可以被周期性地接收。

可选地,当阈值数量的附加第二点被识别出时,附加第二点可以被接收。

可选地,该方法还可以包括:

在第一计算设备上渲染共享增强现实环境;

使共享增强现实环境的渲染图叠加有视觉标记的矩阵,其中:

每个视觉标记对应于在增强现实环境内的相应坐标,以及

每个视觉标记被配置为基于在与第一计算设备相关联的显示器和在共享增强现实环境内的视觉标记的位置之间的距离来在外观方面改变。

可选地,可以在第一时间点接收第一信息,并且可以在第二时间点接收第二信息。

在特定实施例中,提供体现软件的一个或更多个计算机可读非暂时性存储介质,软件在被执行时可操作来:

由第一计算设备的处理器从与第一计算设备相关联的第一传感器接收第一信息,其中第一信息包括与在第一传感器处捕获的一个或更多个第一图像相关联的信息;

从第二计算设备接收第二信息,其中第二信息包括与在与第二计算设备相关联的第二传感器处捕获的一个或更多个第二图像相关联的信息;

识别在第一图像内的一个或更多个第一点;

识别在第二图像内的一个或更多个第二点;以及

在共享增强现实环境内重新定位第一计算设备和第二计算设备,其中重新定位包括:

定义包括第一点的第一坐标空间,其中第一点中的每个基于第一信息与在第一坐标空间内的坐标相关联;

定义包括第二点的第二坐标空间,其中第二点中的每个基于第二信息与在第二坐标空间内的坐标相关联;

识别一个或更多个共享点,其中每个共享点是特定的第一点和特定的第二点相交的点;

基于识别出的共享点组合第一坐标空间与第二坐标空间以创建对应于共享增强现实环境的共享坐标空间;以及

在共享增强现实环境内确定第一传感器的位置和第二传感器的位置。

可选地,软件在被执行时还可操作来:

从第二计算设备接收内容信息,其中内容信息包括定义在共享增强现实环境中的一个或更多个位置的信息和指定增强现实内容项目的信息;

在共享增强现实环境内将增强现实内容项目放置在与已定义的位置相关联的位置处;以及

在与第一设备相关联的显示器上渲染共享增强现实环境和增强现实内容项目。

在特定实施例中,提供了一种系统,其包括:一个或更多个处理器;以及一个或更多个计算机可读非暂时性存储介质,其耦合到处理器中的一个或更多个并包括指令,所述指令在由处理器中的一个或更多个执行时可操作来使系统:

由第一计算设备的处理器从与第一计算设备相关联的第一传感器接收第一信息,其中第一信息包括与在第一传感器处捕获的一个或更多个第一图像相关联的信息;

从第二计算设备接收第二信息,其中第二信息包括与在与第二计算设备相关联的第二传感器处捕获的一个或更多个第二图像相关联的信息;

识别在第一图像内的一个或更多个第一点;

识别在第二图像内的一个或更多个第二点;以及

在共享增强现实环境内重新定位第一计算设备和第二计算设备,其中重新定位包括:

定义包括第一点的第一坐标空间,其中第一点中的每个基于第一信息与在第一坐标空间内的坐标相关联;

定义包括第二点的第二坐标空间,其中第二点中的每个基于第二信息与在第二坐标空间内的坐标相关联;

识别一个或更多个共享点,其中每个共享点是特定的第一点和特定的第二点相交的点;

基于识别出的共享点组合第一坐标空间与第二坐标空间以创建对应于共享增强现实环境的共享坐标空间;以及

在共享增强现实环境内确定第一传感器的位置和第二传感器的位置。

在特定实施例中,第一计算设备的处理器可以从与第一计算设备相关联的一个或更多个传感器接收第一信息。这可以包括关于在传感器处捕获的图像的信息。例如,传感器可以包括捕获照片图像的摄像机。在特定实施例中,计算系统(例如第一计算设备、服务器)可以从第二计算设备接收第二信息。第二信息可以包括关于在与第二计算设备相关联的一个或更多个传感器处捕获的图像的信息。在特定实施例中,计算系统可以识别在第一图像内的一个或更多个第一点和在第二图像内的一个或更多个第二点。这些点可以对应于在图像中的感兴趣的特征。在特定实施例中,计算系统可以在共享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环境中的对象交互作用。建议工具可以允许在任何给定的时间发现可能与用户特别相关的内容(例如,由用户的朋友创建的内容、对用户的兴趣定制的内容等)。

这里公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文公开的实施例的组件、要素、特征、功能、操作或步骤中的所有、一些或不包括它们。根据本发明的实施例在所附权利要求中具体公开,涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征,也可以在另一个权利要求类别(例如系统)中要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。

附图简述

图1示出了被配置成与彼此传递信息的多个设备的示例实施例。

图2示出了在图像或视频帧内捕获的示例现实世界场景。

图3示出了具有与某些感兴趣的对象相关联的识别出的点的图像的示例。

图4示出了具有与感兴趣的对象相关联的识别出的点的图像的另一个示例。

图5示出了重新定位多个坐标空间的概念的示例抽象。

图6示出了在AR环境内放置AR内容项目的示例。

图7A-7B示出了在AR环境内放置社交网络帖子的视觉表示的示例。

图8示出了用于构建具有第一计算设备和第二计算设备的环境的地图的示例方法。

图9示出了用于在共享AR环境内重新定位第一计算设备和第二计算设备的示例方法。

图10示出了在AR环境的视图中渲染的AR内容项目的示例。

图11示出了在AR环境的视图内渲染的用户帖子的示例。

图12示出了在AR环境中检测到的脸上画的AR胡子的示例。

图13示出了用于在第一用户的计算设备上渲染由第二用户在AR环境内放置的AR内容项目的示例方法。

图14示出了包括所建议的AR内容的AR环境的视图的示例。

图15示出了用于向用户建议AR内容项目的示例方法。

图16示出了与社交网络系统相关联的示例网络环境。

图17示出了示例社交图。

图18示出了示例计算机系统。

示例实施例的描述

在特定实施例中,AR应用可以被配置为在任何计算设备(包括移动设备(例如智能手机、平板计算机、膝上型计算机、AR眼镜)和其他类型的计算设备(例如台式计算机))上操作。在特定实施例中,AR应用可以被配置成获得由通信地耦合到设备的摄像机捕获的现实世界环境的图像(例如视频帧),AR应用在该设备上运行。通过处理图像,AR应用可以跟踪在图像内捕获的现实世界对象。

在特定实施例中,AR应用可以支持一种或更多种类型的跟踪算法,其可以用于创建现实世界环境的地图以创建AR环境(例如现实世界环境的AR表示)。用户可以在任何AR兼容计算设备上观看AR环境、与AR环境交互作用或以其他方式与AR环境衔接。作为示例而不是作为限制,用户可以观看在AR环境内的AR内容项目(例如涂鸦、GIF、化身、滤镜(filter)、面具)。尽管本公开聚焦于AR设备和环境,但是它设想在虚拟现实(VR)设备和环境的上下文中应用相同的概念。为了本公开的目的,术语“增强现实(或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环境中的对象交互作用。建议工具可以允许在任何给定的时间发现可能与用户特别相关的内容(例如,由用户的朋友创建的内容、对用户的兴趣定制的内容等)。

跟踪算法的一个示例是同时定位与地图构建(SLAM)。在高级别处,SLAM是可以用于(例如实时地)生成未知环境的3D地图的技术。SLAM技术可以采用来自各种传感器——包括例如摄像机、LiDAR传感器、雷达、陀螺仪和任何其他合适类型的传感器——的传感器数据。在特定实施例中,在常规移动电话上实现的SLAM可以使用电话的摄像机、陀螺仪和/或加速度计。在概念上,给定视频帧,SLAM可以估计摄像机与在场景中的感兴趣的特征(例如,通常是边、角等)的相对位置和定向,并基于运动迭代地更新估计结果和和因而得到的特征观测值(observation)。基于这些特征由于移动而产生的位置偏差,SLAM可以使用三角测量技术来生成捕获场景中的可识别对象的3D模型。例如,当摄像机移动时,与感兴趣的特征相关联的标志点(landmark point)可以移动。该标志(和其他标志)移动可以用于估计对象的3D位置和定向。

跟踪算法的另一示例是脸部跟踪。在特定实施例中,脸部检测算法可以使用机器学习模型来检测脸部特征(例如,眼睛、鼻子、嘴巴等),并使用映射到那些特征的点生成脸部网格。本质上,可以生成脸的3D模型以跟踪人脸(和/或特征)移动和定向。在特定实施例中,脸部网格可以是多个(例如32、64个等)多边形(例如三角、正方形等)的集合,其接近检测到的脸的轮廓。使用脸部网格,跟踪算法可以尝试将脸部网格与在每个视频帧中检测到的脸相匹配。脸部网格与在视频帧中捕获的脸相符程度的可以被表示为置信度分数(例如,基于距离测量以及对应于特定多边形的脸部特征是否是可检测的)。当用户的脸被遮挡时(例如,由于另一个对象或者脸以掩蔽用户的脸而看不到的方式转动),置信度分数可下降。在特定实施例中,置信度分数可以是0或1,其中0表示不可检测的脸,1表示可检测的脸(或1表示不可检测的脸,0表示可检测的脸)。在特定实施例中,简单脸部跟踪算法可以基于脸或脸部特征的估计尺寸来跟踪脸。作为示例而不是作为限制,简单脸部跟踪算法可以基于已知的平均值(其可以使用分析图像的机器学习模型来确定)来估计出脸为9英寸,并且叠加脸部网格,其基于脸部特征的平均比例来映射脸部特征。

跟踪算法的另一个示例是区域跟踪,其是根据特定实施例的基于外观的跟踪器。在特定实施例中,区域跟踪算法主要处理2D像素或纹理信息(除了可能生成平面以对在视频帧中的对象的位置建模以及使用陀螺仪数据来确定平面在3D空间中的定向之外)。在高级别处,区域跟踪算法可以设法识别在视频帧中的对应于对象的区域,并查看它在下一帧中如何变换。在特定实施例中,区域跟踪算法可以识别和跟踪对象在一系列视频帧中的连续位置。可以使用分割算法来处理每个视频帧的像素,以识别可对应于现实世界对象的片段。所使用的特定分割算法可以是例如本领域中的普通技术人员已知的基于运动或基于强度的算法。可以使用多边形来标记和表示每个识别出的片段,以粗略估计它的形状和在场景中的位置。每个多边形在帧之间的运动可以假定为2D仿射变换(affinetransformation)。使用对象的多边形表示和相应的运动模型(例如机器学习分类器),可以做出关于多边形在下一帧中出现在哪里和如何出现的预测。可以将预测与在该帧中观察到的实际片段进行比较,并且可以相应地更新对象的多边形和运动模型。经过几次迭代,该算法可以以一定的置信度水平检测到出现在它们各自的帧中的两个多边形可能是相同的对象,并将它们标记为相同的对象。然而,如果对象被充分遮挡(例如,被另一个对象遮蔽),被变换而超出当前模型的预测能力,和/或照明条件显著改变而妨碍图像处理,则置信度水平可能下降。

另一个示例跟踪算法可以简单地使用陀螺仪数据。作为示例而不是作为限制,移动设备可以具有内置陀螺仪,其可以提供描述相关移动设备的定向的陀螺仪数据。定向数据可以完全基于陀螺仪传感器,且因此没有图像处理可以是需要的。关于AR跟踪或地图构建算法的更多信息可以在2017年11月3日提交的美国专利申请号15/803,428中找到,该专利申请通过引用被并入本文。

在特定实施例中,第一计算设备的处理器可以从与第一计算设备相关联的一个或更多个传感器接收第一信息。第一信息可以包括与在传感器处捕获的一个或更多个图像相关联的信息。如在本文别处所述的,术语“传感器”可以包括能够捕获图像的任何合适的传感器(例如摄像机、LiDAR传感器、雷达传感器)。术语“图像”当在本文用于描述在传感器处捕获的事物时指环境的表示(例如,围绕传感器的环境的表示)。作为示例而不是作为限制,该术语可以描述如由摄像机捕获的环境的视觉表示(例如照片)。作为另一个示例而不是作为限制,该术语可以描述表示到如由LiDAR传感器捕获的环境的有形表面的距离的数据的集合。在特定实施例中,第一信息可以是足以重建图像的一些或全部的信息。作为示例而不是作为限制,在传感器是智能手机摄像机的情况下,第一信息可以以原始图像格式(例如,直接源自摄像机的未处理的像素缓冲)或任何其他合适的图像文件格式(例如JPEG、BMP、GIF、PNG)对图像编码。

在特定实施例中,第一计算设备可以是客户端计算设备(例如移动计算设备、台式设备、触笔设备)。在特定实施例中,第一计算设备可以包括处理器、传感器和用于确定它的位置、方向或定向的功能(例如GPS接收器、惯性运动单元(IMU)、罗盘、陀螺仪、加速度计)。第一计算设备还可以包括用于有线通信或无线通信例如蓝牙通信、近场通信(NFC)、红外(IR)通信或与无线局域网(WLAN)或蜂窝电话网络的通信的功能。

在特定实施例中,第一计算设备可以包括能够(例如在AR应用上)渲染AR环境的显示器。在这些实施例中,第一计算设备可以渲染AR环境,其基于在与第一计算设备相关联的一个或更多个传感器处捕获的图像。作为示例而不是作为限制,第一计算设备可以是具有显示基于用一个或更多个相关本地摄像机捕获的图像的AR环境的屏幕的智能手机。

在特定实施例中,第一计算设备可以不包括能够渲染AR环境的显示器。作为示例而不是作为限制,第一计算设备可以是可以类似于触笔或标记器(在本文被称为“触笔设备”)的移动计算设备。在该示例中,第一计算设备仍然可以包括捕获图像的传感器。作为另一个示例而不是作为限制,计算设备可以是具有摄像机的智能手机。在这个例子中,智能手机的摄像机可以捕获一个或更多个图像,该一个或更多个图像可以被发送到智能手机的处理器用于处理。

图1示出了被配置成彼此传递信息的多个设备的示例实施例。在特定实施例中,计算系统可以从第二计算设备接收第二信息。第二信息可以包括与在与第二计算设备相关联的一个或更多个传感器处捕获的一个或更多个第二图像相关联的信息。在特定实施例中,第二计算设备可以是客户端计算设备(例如移动计算设备、台式设备、触笔设备)。在特定实施例中,计算系统可以是第一计算设备。作为示例而不是作为限制,第二计算设备可以与第一计算设备进行直接有线或无线通信(例如,经由蓝牙)。在这个例子中,参考图1,第一计算设备110可以经由连接140从第二计算设备120接收第二信息。在特定实施例中,参考图1中的示例,第二计算设备120可以经由连接140从第一计算设备110接收信息(例如,与在第一传感器处捕获的第一图像相关联的第一信息)。

在特定实施例中,计算系统可以是服务器计算机器。在这些实施例中,服务器计算机器可以充当媒介物。作为示例而不是作为限制,参考图1,第一计算设备110可以经由连接115向服务器计算机器130发送第一信息。类似地,在该示例中,第二计算设备120可以经由连接125向服务器计算机器130发送第二信息。在特定实施例中,混合通信系统可以是用户,其中不是所有的计算设备都可以与服务器计算机器通信。作为示例而不是作为限制,参考图1,第一通信设备110可以经由连接140向第二计算设备120发送第一信息,并且第二计算设备120可以经由连接125向服务器计算机器130发送第一信息和第二信息。在该示例中,计算设备110可能不建立连接115(例如,因为它可能缺乏这样做的授权,或者它可能在其他情况下由于硬件或软件原因而不能这样做)。

在特定实施例中,第一计算设备和第二计算设备都可以由单个用户操作。作为示例而不是作为限制,第一计算设备可以是具有显示器的设备(例如智能手机),以及第二计算设备可以是没有显示器的设备(例如触笔设备、控制器)。在该示例中,用户可以用第一计算设备观看AR环境,并且用第二计算设备与AR环境交互作用(例如,通过在AR环境中放置AR内容项目)。在特定实施例中,第一计算设备可以由第一用户操作,以及第二计算设备可以由第二用户操作。尽管本公开聚焦于具有两个计算设备的示例,但是它设想任何数量的这样的设备可以彼此通信(例如,在它们本身当中接收和发送图像信息)。

在特定实施例中,计算系统可以识别在第一图像内的一个或更多个第一点。在特定实施例中,计算系统可以识别在第二图像内的一个或更多个第二点。在特定实施例中,计算系统可以是第一计算设备或第二计算设备。作为示例而不是作为限制,第一计算设备(或第二计算设备)可以在本地处理图像以识别在图像中的点。在特定实施例中,计算系统还可以是服务器计算机器。作为示例而不是作为限制,计算系统可以是与本文所述的社交网络系统1660相关联的远程服务器。在特定实施例中,计算系统可以是多个设备的组合。作为示例而不是作为限制,识别在图像内的点所需的处理任务可以由第一计算设备和服务器计算机器两者执行。作为另一示例而不是作为限制,处理任务可以由第一计算设备、第二计算设备和服务器计算机器执行。

在特定实施例中,计算系统可以使用一个或更多个合适的跟踪算法来识别在第一和第二图像中的这些点。如在本文所使用的,术语“点”指在图像或一系列图像中的感兴趣的特征。在特定实施例中,点可以指可以在图像中识别的特征,例如角或边。在特定实施例中,点可以指在图像中识别的对象(例如,对应于在相应现实世界环境中的对象或脸的多边形)。

图2示出了在图像或视频帧205内捕获的示例现实世界场景200。所示场景200包括顶部有猫220的箱210。场景200还包括坐在桌子旁的人,他的脸230和手240可见。在特定实施例中,可以由AR应用使用一个或更多个跟踪算法来处理视频帧205以及连续帧,以跟踪感兴趣的对象。在特定实施例中,感兴趣的对象可以包括任何对象,AR应用的用户点击该对象或通过AR应用与该对象交互作用(例如,用户可以将AR效果与特定对象相关联,修改对象,放大对象,等等)。在特定实施例中,感兴趣的对象可以此外或可选地包括通过跟踪算法可辨别或可检测的任何对象。

图3示出了具有与某些感兴趣的对象相关联的识别出的点的图像的示例。图4示出了具有与感兴趣的对象相关联的识别出的点的图像的另一个示例。跟踪数据的视觉表示300可以与图2所示的现实世界场景200(例如,表示现实世界环境的至少一部分的图像)相关联。作为示例而不是作为限制,图3中的箱310可以表示图2中的现实世界箱210的跟踪数据;图3中的多边形320可以表示图2中的猫220的跟踪数据;图3中的脸部网格330可以表示图2中的人脸230的跟踪数据;以及图3中的圆圈340可以表示图2中的人的手240的跟踪数据。在特定实施例中,这些形状和网格中的每一个可以作为在图像内(以及最终在可以基于图像而生成的AR环境内)的点被跟踪。在特定实施例中,点可以是在图像内的跟踪感兴趣的对象的较小视觉标记。作为示例而不是作为限制,参考图3,一系列视觉标记310可以跟踪在图像中的箱310的角,箱310可以对应于图2中的现实世界箱210。在特定实施例中,可以使用同时操作的一个或更多个跟踪算法来生成与在场景中的感兴趣的对象相关联的跟踪数据。例如,可以使用同时定位与地图构建(SLAM)来生成由箱310表示的跟踪数据;可以使用区域跟踪算法来生成由多边形320表示的跟踪数据;可以使用脸部跟踪算法来生成由脸部网格330表示的跟踪数据;以及可以使用手部跟踪算法来生成由圆圈340表示的跟踪数据。在特定实施例中,用于跟踪特定对象或区域的跟踪算法可以独立于用于跟踪场景中其他对象或区域的任何其他跟踪算法来切换或调整。例如,当用于跟踪人脸230的跟踪算法可以从脸部跟踪算法动态地切换到区域跟踪算法时,用于跟踪其他对象(例如箱210、猫220和/或手240)的跟踪算法可以保持不变。在特定实施例中,一个或更多个跟踪算法可以跟踪可以对应于现实世界对象的特征,例如角和边。作为示例而不是作为限制,参考图4,跟踪算法可以跟踪箱420的角(例如角410)。

在特定实施例中,计算系统可以在共享AR环境内重新定位第一计算设备和第二计算设备。如在本文所使用的,术语“relocalizing(重新定位)”和“relocalization(重新定位)”可以指可以用于在AR环境内为AR设备定向的初始化或重新初始化过程。在有观看AR环境、构建AR环境的地图或以其他方式与AR环境交互作用的单个计算设备的情况下,当存在跟踪失败时,重新定位可能是必要的。作为示例而不是作为限制,当单个计算设备的摄像机暂时被遮挡时,它可能失去它相对于AR环境的方位(例如位置、定向)。在这个示例中,单个计算设备将需要被重新定位(“或重新初始化”)到AR环境,使得它理解它在哪里。这可以通过将新近获取的图像的特征或点与在存储器中的从在跟踪失败之前获取的图像提取的特征或点进行比较来完成。在多个计算设备(例如第一计算设备和第二计算设备)的情况下,类似的重新定位过程可以作为第一初始化过程(或者如果跟踪失败出现在任何点处,则是重新初始化)出现。作为示例而不是作为限制,第一计算设备可以通过将(例如,由它自己的相关传感器捕获的)第一图像的特征或点与(例如,由第二计算设备的传感器捕获的)第二图像的特征或点进行比较来重新定位到共享AR环境。在该示例中,第一计算设备和第二计算设备可以在共享AR环境内彼此定向和定位。

图5示出了重新定位多个坐标空间的概念的示例抽象。在特定实施例中,重新定位过程可以包括定义包括从第一图像确定的第一点的第一坐标空间。作为示例而不是作为限制,参考图5,第一坐标空间510可以包括从由第一计算设备捕获的图像确定的几个点(例如512、514和516)。这些点可以对应于图像中的形状(例如图5中的正方形和三角形)的角或任何其他合适的特征(例如,纹理、颜色等的变化)。这些第一点中的每一个可以基于第一信息与在第一坐标空间内的相应坐标相关联。在特定实施例中,重新定位过程可以包括定义包括从第二图像确定的第二点的第二坐标空间。作为示例而不是作为限制,参考图5,第二坐标空间520可以包括从由第一计算设备捕获的图像确定的几个点(例如522、524和526)。在该示例中,这些点可以对应于图像中的形状(例如图5中的三角形和圆圈)的角。这些第二点中的每一个可以基于第二信息与在第二坐标空间内的坐标相关联。在特定实施例中,重新定位过程可以包括识别一个或更多个共享点。每个共享点可以是特定的第一点和特定的第二点相交的点。作为示例而不是作为限制,参考图5,在第一坐标空间510中的点514和516可以被确定为分别与在第二坐标空间520中的点524和526相交,并且因此可以被识别为共享点。在特定实施例中,重新定位过程可以包括组合第一坐标空间与第二坐标空间以创建对应于共享AR环境的共享坐标空间。可以基于识别出的共享点来创建该共享AR环境。作为示例而不是作为限制,参考图5,第一坐标空间510可以与第二坐标空间520组合以创建可以对应于共享AR环境的共享坐标空间530。在该示例中,点514和524可以被确定为对应于在现实世界环境中的相同特征(例如,图5所示的三角形的顶角),并且点516可以被确定为对应于在现实世界环境中的相同特征。作为结果,点514和524可以被重叠(collapse)成在共享坐标空间530中的单个点534,并且点516和526可以被重叠成在共享坐标空间530中的单个点536。在特定实施例中,一旦计算设备用公共参考点被重新定位,计算设备(或它们的相关传感器)的位置可以在共享坐标空间内并从而在共享AR环境内被确定。

在特定实施例中,只有当计算设备的相应用户已经授权配对或计算设备时,重新定位才可以在计算设备当中出现。作为示例而不是作为限制,当确定第一计算设备在现实世界环境中跟踪了预定数量的点时并且当确定第二计算设备也在现实世界环境中时,提示可以被提供到第一计算设备的第一用户以询问第一用户是否想要用(例如第二用户或同一第一用户的)第二计算设备重新定位。第一用户和第二用户都可以接收类似的提示。在该示例中,如果两个用户都接受,则两个计算设备可以重新定位,且然后可以在构建环境的地图时协作。

在特定实施例中,如果第一计算设备和第二计算设备彼此相距不超过阈值距离,则可以确定它们在同一现实世界环境中。作为示例而不是作为限制,该距离可以由蓝牙配对范围确定,并且计算设备可以通过蓝牙发现协议来发现彼此。作为另一个示例而不是作为限制,该距离可以是预定半径,并且计算设备的位置可以由GPS确定。作为另一示例而不是作为限制,可以运用与计算设备的一个或更多个用户相关联的社交网络信息来确定计算设备在同一现实世界环境中。例如,如果第一用户喜爱比萨饼并且不喜欢汉堡包并且如果第二用户有相反的品味以及如果比萨饼餐馆在汉堡包餐馆的隔壁,则可以确定第一用户在比萨饼餐馆中以及第二用户在汉堡包餐馆中。这在比萨饼餐馆和汉堡包餐馆是相同的并且非常接近于彼此的情况下可能是有用的,在这种情况下,这两个用户的计算设备可能错误地在不正确的共享AR环境中重新定位。在这个例子中通过考虑第一用户和第二用户不可能在同一个餐馆的事实,可以防止这个错误的重新定位。

在特定实施例中,一旦多个计算设备被重新定位到共享AR环境,它们就可以每个单独地知道它们在共享AR环境中的位置和定向(例如,因为它们可以各自具有能够捕获图像信息以保持被锚定在共享AR环境中的传感器)。这可能是有利的,因为每个设备可以单独地与共享AR环境可靠地交互作用而不需要来自其他设备的确证。作为示例而不是作为限制,用户可以通过用触笔设备描画AR图形的轮廓来在AR环境中创建AR图形,并且这个过程可以通过被重新定位到AR环境的平板设备来查看。在该示例中,即使平板设备远离触笔设备转动,绘图过程也可以不间断地继续,因为在触笔设备上的摄像机确保触笔保持被锚定到AR环境。

在特定实施例中,一旦多个计算设备在计算设备被初始化以具有公共参考点的情况下被重新定位到共享AR环境,它们就可以协作来实时地构建AR环境的地图。作为示例而不是作为限制,参考图5,由第一计算设备和第二计算设备单独地发现的点可以聚集在共享坐标空间530中。在该示例中,用户可以继续通过跟踪附加点(例如,对应于六边形540的点)来构建环境的地图。在特定实施例中,这个地图构建可以实时地出现,并且正在协作的计算设备可以重复地同步以共享指示自从上次同步以来的附加点(例如新近发现的点)的更新信息。作为示例而不是作为限制,计算设备可以基于预定时间段(例如每两分钟)或者每当阈值数量的附加第二点被识别出时(例如,每当新点被发现时,每当五个新点被发现时,等等)周期性地同步。在特定实施例中,与整个地图相关联的信息可以从一个计算设备发送到另一个。作为示例而不是作为限制,新近重新定位的计算设备可以简单地从另一个计算设备(例如,具有最新地图的计算设备)接收地图。

在特定实施例中,两个或更多个地图可以被智能地合并以创建主地图。作为示例而不是作为限制,如果两个地图具有被确定为与在两个地图中的相同对象或位置匹配或相关联的两个点(例如,对应于对象的多边形),则这两个点中的一个可以被选择用于合并到主地图中。点可以每个具有可以指示该点是准确的可能性的置信度分数。可以基于例如(例如,如由不同图像提供的)视角的数量来确定点的这个置信度分数,相应点从所述视角被识别出。更高数量的视角可以为该点产生更高的置信度分数。例如,在来自十个不同的视角的图像中识别的点可以比在来自五个不同的视角的图像中识别的点具有更高的置信度分数。在这个例子中,具有较高置信度的点可以被合并到主地图中。这个智能合并可以提高主地图的准确性。在特定实施例中,主地图可以被认为是最新的地图,并且可以被发送到一个或更多个设备(例如,在它的创建之后)。在特定实施例中,从一个视角(例如从第一设备)描述特定点的信息可以与从另一个视角(例如从第二设备)描述该点的信息组合。这可以提高地图构建过程的效率,并最大化得到的地图的置信度。

在特定实施例中,在环境中出现的任何变化可以连续或半连续地传递到观看AR环境的计算设备。作为示例而不是作为限制,如果特定用户移动或创建AR内容,则检测到该变化的计算设备(例如,特定用户的计算设备)可以将该变化传递到正在观看AR环境的其他计算设备。其他计算设备可以相应地更新它们的AR环境的局部渲染和相关局部地图。作为另一示例而不是作为限制,如果在环境内的现实世界对象被移动(例如,人可以移动了椅子),则计算设备可以将该变化传递到其他计算设备。

在特定实施例中,只有当所涉及的用户明确地授权协作时,协作才可以被发起。作为示例而不是作为限制,在AR环境内重新定位的用户可以接收询问他们是否想要在进一步构建AR环境的地图时一起协作的提示。

在特定实施例中,可以仅向在特定用户群组内的计算设备提供重新定位或协作的提示。作为示例而不是作为限制,如果与第二计算设备相关联的隐私设置明确地将第一计算设备包括为该群组的一部分,则第一计算设备可以相对于第二计算设备在该群组中。作为另一个示例而不是作为限制,可以仅为是在线社交网络上的同一社交网络群组(例如,被命名为“酷狗群组”的群组)的一部分的用户或者观看网球的用户(例如,如基于相关社交图信息来确定的)提供该提示。在特定实施例中,提示可以仅被提供给共享特定特征的用户(例如,基于人口统计信息、基于简档信息、基于如由社交图信息确定的用户亲和力(affinity)等)。在特定实施例中,可以仅为被确定为正在参加公共事件的用户(例如,基于他们的位置、基于他们的相应日历数据、基于他们对事件的RSVP或注册)提供该提示。作为示例而不是作为限制,在主办医学会议和《星际迷航》(Star Trek)大会两者的酒店处,参加医学会议的用户可以被提示与彼此但不与参加《星际迷航》大会的用户协作。在特定实施例中,可以仅针对社交关连者(social connection)提供重新定位或协作。作为示例而不是作为限制,只有至少是一级(或二级)社交关连者的用户可以被提示重新定位。在该示例中,可以(例如,通过用户的计算设备)查询在线社交网络以确定用户是否是一级社交关连者。相关社交网络系统可以访问社交图,并确定对应于相应用户的节点是否由单条边连接(以及可选地,如果该边是朋友类型的边,则指示用户是在线社交网络上的朋友)。在特定实施例中,重新定位或协作可以自动发生(例如,对于用户的朋友,对于参加相同事件的用户,对于是同一群组的部分的用户)而不需要相关用户是否在相关隐私设置中明确地允许此的提示。在特定实施例中,如果所有方持相同意见,用户可以无视这些限制中的任一个并且重新定位或与他们希望的任何用户协作。

通过减少将现实世界环境映射到AR环境上所花费的时间和努力,所公开的协作过程可以显著地改进地图构建过程。这个改进在将被构建地图的现实世界环境是非常大的情况下可以是特别显著的并且它的益处可以显著增强。作为示例而不是作为限制,如果三十个用户可以分别重新定位和构建运动场的地图以创建包括(他们各自单独地在地图上被绘制出的)所有点的共享AR环境,则大型足球运动场的地图构建所涉及的时间和努力可以显著减少。作为另一个示例而不是作为限制,可以通过众包(crowdsource)来自大量用户的信息来构建同一个足球运动场的地图。例如,如果在运动场中的足球比赛的参加者的子集肯定地请求或以其他方式明确地授权网络(例如在线社交网络、对等网络、朋友的设备)从他们的计算设备收集点数据,则他们的计算设备可以将点数据传输到网络(例如在线社交网络的服务器、直接到对等网络的用户、直接到朋友的设备)。在特定实施例中,现实世界环境可以由在现实世界环境内的不同位置处拍摄照片或视频的多个计算设备构建地图,如果它们的相应用户明确地授权了这个地图构建和协作的话。作为示例而不是作为限制,如果参加音乐会的一组用户明确地授权了这个地图构建和协作(例如,通过转到隐私设置菜单并启用这个功能),则每当他们在音乐会地点内用他们的智能手机拍摄照片或视频时,得到的图像可以用于构建环境的地图。可选地,单独的传感器可以用于为了地图构建目的而捕获图像(例如,由不同的摄像机捕获的低分辨率图像)。在这些示例中,还可以捕获在用户实际上拍摄照片或视频的时刻之前的一个或更多个图像(即,当用户给照片或视频配框时在拍摄照片或视频之前的一段时间),以进一步帮助跟踪点和构建环境的地图。

在特定实施例中,地图构建和协作特征可以仅被启用一段时间,并且可以在该段时间到期之后被自动禁用。在特定实施例中,地图构建和协作特征可以仅当计算设备在指定的现实世界区域内时被启用,并且可以在设备离开该区域之后被自动禁用。作为示例而不是作为限制,当用户正在参加音乐会时,用户可以启用该特征,但是用户一离开音乐会地点,该特征就可以被自动禁用。

在特定实施例中,计算设备可以用于在AR环境内放置AR内容项目。作为示例而不是作为限制,服务器(或例如在客户端计算设备进行直接通信而没有作为媒介物的服务器的情况下的客户端计算设备)可以从计算设备接收内容信息,其中内容可以包括定义在AR环境中的一个或更多个位置的信息和指定AR内容项目的信息。在特定实施例中,AR内容项目可以在AR环境内被放置在与所定义的位置相关联的位置处。在特定实施例中,AR环境和AR可以在与计算设备相关联的显示器上被渲染。

图6示出了在AR环境内放置AR内容项目的例子。多个用户可以协作以放置AR内容项目。在特定实施例中,在AR环境内“放置”AR内容项目可以包括绘制AR内容项目的行动。参考图6,作为示例而不是作为限制,第一用户610和第二用户620可以协作来在第三用户的计算设备的显示器600中所示的AR环境内放置图形630。在该示例中,第一用户可以使用触笔设备615,以及第二用户可以使用智能手机625来创建图形630。在该示例中,第一用户可以用触笔设备615使用一系列手势,用触笔设备615的尖端在空中描摹图形630。图形630可以从绘图点出现在AR环境内,该绘图点可以是触笔设备615的尖端。类似地,第二用户620可以使用智能手机625从另一侧绘图。在该示例中,绘图点可以远离智能手机625间隔开预定距离640。在该示例中,在计算设备(例如触笔设备615、智能手机625)上的传感器可以在图形被描摹时(例如,基于多个所获取的图像、基于陀螺仪等)确定计算设备的位置以确定图形及其位置。

在特定实施例中,AR内容项目可以是帖子或其他通信的视觉表示。图7A-7B示出了在AR环境内放置社交网络帖子的视觉表示的示例。作为示例而不是作为限制,参考图7A,第一计算设备例如虚拟现实设备的用户可以访问在线社交网络的界面720(例如动态消息(newsfeed)界面),该界面720可以显示在第一计算设备的显示单元710(例如虚拟现实头戴式耳机和AR头戴式耳机)上的视图的一部分中。在该示例中,用户可以操纵用户的手的表示730(例如,用使用控制器的手势输入,用使用显示单元710的凝视(gaze)输入)以从界面720“拾取”或以其他方式选择用户帖子740的表示。在这个示例中,现在参考图7B,用户可以将用户帖子740的视觉表示放置在AR环境内的特定位置处——在绘画750之下(例如,因为用户帖子可以是来自朋友的关于绘画750的评论)。

在特定实施例中,AR内容项目可以包括照片、视频、图像文件(例如GIF、meme)、表情符号(emoji)、贴纸(sticker)、文本、滤镜、面具、图画或任何其他合适的项目。在特定实施例中,AR内容项目可以包括虚拟对象。作为示例而不是作为限制,AR内容项目可以是对象例如气球或树的三维虚拟表示。作为另一个示例而不是作为限制,AR内容项目可以是交互式虚拟对象,例如视频播放器或视频游戏窗口,在AR环境中的用户可以在该视频游戏窗口内交互作用。

在特定实施例中,AR内容项目可以与在AR环境中的一个或更多个检测到的对象相关联地放置。作为示例而不是作为限制,计算设备的用户可以在被确定为是在AR环境中的另一用户的脸的对象上画胡子。在这个示例中,胡子可以无限期地、在规定的一段时间内或者在某个行动被执行以移除胡子(例如,“洗掉”胡子的手势)之前保留在另一个用户的脸上。在特定实施例中,AR内容项目可以是被配置为叠加在共享AR环境中识别的对象上的面具。作为示例而不是作为限制,计算设备的用户可以在出现在AR环境中的另一用户的脸上叠加面具。该面具可以应用于脸的脸部网格,使得在AR环境中,可以看起来脸具有在它之上的面具。面具可以覆盖整个脸或脸的仅仅一部分(例如,它可以仅是胡子面具)。在特定实施例中,AR内容项目可以是滤镜叠加层,其被配置为叠加在共享AR环境的渲染图上。作为示例而不是作为限制,用户可以将假日主题的滤镜应用于环境,这可以将虚拟对象(例如虚拟花环、虚拟雪)自动添加到在AR环境内的位置,或者影响颜色、亮度、对比度或其他合适的显示设置。

在特定实施例中,任何特定AR环境或其相关内容可以仅在被授权访问AR环境和/或其相关内容的计算设备上被渲染。如果与AR环境和/或内容相关联的隐私设置准许对计算设备或与计算设备相关联的用户的访问,则计算设备可以被授权访问AR环境和/或其相关内容。作为示例而不是作为限制,特定的AR环境可以仅对协作来构建AR环境的地图的用户的朋友(例如,一级社交关连者)是可见的。在特定实施例中,如果相关用户被确定为正在参加特定事件(例如,基于他们的位置、基于他们的相应日历数据、基于他们对事件的RSVP或注册),则计算设备可以被授权访问与特定事件相关联的AR环境。作为示例而不是作为限制,参加《星球大战》(Star Wars)大会的用户也许只能够看到包括与《星球大战》大会相关的内容(例如,关于事件的信息、来自电影《星球大战》的角色的化身)的AR环境,并且在同一区域参加医学会议的用户可以看到包括与医学会议相关的内容(例如,关于研讨会的信息、在门上方的通向相应研讨会的研讨会的标题、通向在午休期间的提供的午餐的箭头)的AR环境。在特定实施例中,如果计算设备与在特定群组内的用户相关联,则该计算设备可以被授权。作为示例而不是作为限制,如果用户是在线社交网络群组“酷狗群组”的一部分,则计算设备可以被授权观看由该群组放置的内容。作为另一示例而不是作为限制,如果用户被确定为是网球爱好者,则计算设备可以被授权观看与网球比赛相关的内容。

在特定实施例中,AR深度辅助界面可以在显示AR环境的计算设备上实现。深度感知对于在AR设备上观看AR环境的用户来说可能是一个问题,尤其是当AR设备不提供立体视觉(例如,在提供单个手持显示屏的智能手机的情况下)时。不能够感知深度可以使用户在AR环境内放置AR内容项目变得有挑战性。这也可以使用户将AR内容项目感知为连接到现实世界环境变得有挑战性,并且可以产生在AR环境和现实世界环境之间的分离,减少沉浸式体验。为了解决这个问题,视觉标记的矩阵或网格可以叠加在AR环境的渲染图上,每个视觉标记对应于在AR环境内的相应坐标。这些视觉标记可以被配置为基于渲染AR环境的计算设备相关联的显示器和视觉标记在AR环境内的位置的距离来在外观方面改变。作为示例而不是作为限制,虚拟球体(或点)可以被显示为对应于在整个AR环境中的特定坐标点,其中球体可以组合地创建网格图案。在该示例中,当用户接近特定位置(通过将用户的计算设备的显示器带到该特定位置)时,环绕该位置(以及在整个网格中)的球体可以以任何合适的方式改变它们的外观以反映用户的新的有利位置。例如,球体的大小可以改变(例如,当用户接近时变得更大),它的透明度级别可以改变(例如,当用户接近时变得更不透明),它的亮度级别可以改变(例如,变得更亮),和/或它的颜色可以改变(例如,它的阴影或色调可以基于距离而改变)。

尽管本公开主要用涉及第一计算设备和第二计算设备的示例来描述本发明,但是它设想具有任何数量的这样的设备。作为示例而不是作为限制,可以有在彼此当中捕获和传输图像信息的十个这样的计算设备。例如,这十个计算设备中的一些或全部可以一起在现实世界环境(例如房间)内,每个计算设备具有从现实世界环境内的不同位置捕获图像的传感器。在这个示例中,可以有多达十组图像(第一图像、第二图像、…第十图像)和图像信息(第一信息、第二信息、…第十信息)。这十个计算设备都可以基于这些图像被重新定位。以该示例为基础,第十一个计算设备可以加入以远程地与其他十个计算设备协作。第十一计算设备可以是虚拟现实设备,其可以接收在其他十个计算设备处捕获的关于现实世界环境的图像信息。即使第十一个计算设备不在由共享AR环境建模的现实世界环境中,第十一个计算设备也可以向其他十个计算设备发送图像信息以在共享AR环境中重新定位第十一个计算设备。一旦第十一个计算设备被重新定位,第十一个计算设备的用户就可以与共享AR环境交互作用。作为示例而不是作为限制,第十一个计算设备的用户可以在共享AR环境内的特定位置处画笑脸。当其他十个用户在他们各自的计算设备上观看共享AR环境时,该笑脸可以在共享AR环境中对他们是可见的。类似地,第十一个计算设备的用户可以在共享AR环境内看到由其他十个用户进行的交互作用。作为示例而不是作为限制,其他十个用户中的一个可以对由第十一个设备的用户做出的图形进行添加(例如,在由第十一个计算设备的用户画的笑脸上画帽子)。

图8示出了用于构建具有第一计算设备和第二计算设备的环境的地图的示例方法800。该方法可以在步骤810开始,其中第一计算设备的处理器可以从与第一计算设备相关联的第一传感器接收第一信息,其中第一信息包括与在第一传感器处捕获的一个或更多个第一图像相关联的信息。在步骤820,计算系统可以从第二计算设备接收第二信息,其中第二信息包括与在与第二计算设备相关联的第二传感器处捕获的一个或更多个第二图像相关联的信息。在步骤830,可以在第一图像内识别一个或更多个第一点。在步骤840,可以在第二图像内识别一个或更多个第二点。在步骤850,第一计算设备和第二计算设备可以在共享AR环境内被重新定位。在适当的情况下,特定实施例可以重复图8的方法的一个或更多个步骤。尽管本公开将图8的方法的特定步骤描述和示为以特定的顺序出现,本公开设想图8的方法的任何合适的步骤以任何合适的顺序出现。在特定实施例中,步骤的任何合适的组合可以并行地出现。此外,尽管本公开描述并示出了用于构建具有第一计算设备和第二计算设备的环境的地图的示例方法,包括图8的方法的特定步骤,本公开设想用于构建具有第一计算设备和第二计算设备的环境的地图的任何合适的方法,包括任何合适的步骤,其可以在适当的情况下包括图8的方法的步骤中的全部、一些或不包括图8的方法的步骤。此外,尽管本公开描述并示出了执行图8的方法的特定步骤的特定组件、设备或系统,本公开设想执行图8的方法的任何合适的步骤的任何合适的组件、设备或系统的任何合适的组合。

图9示出了用于在共享AR环境内重新定位第一计算设备和第二计算设备的示例方法900。该方法可以在步骤910开始,其中重新定位过程被开始。在步骤920,定义包括第一点的第一坐标空间,其中每个第一点基于第一信息与在第一坐标空间内的坐标相关联。在步骤930,定义包括第二点的第二坐标空间,其中每个第二点基于第二信息与在第二坐标空间内的坐标相关联。在步骤940,识别一个或更多个共享点,其中每个共享点是特定的第一点和特定的第二点相交的点。在步骤950,基于识别出的共享点组合第一坐标空间与第二坐标空间以创建共享AR环境。在步骤960,在共享AR环境内确定第一传感器(例如,与第一计算设备相关联的传感器)的位置和第二传感器(例如,与第二计算设备相关联的传感器)的位置。在适当的情况下,特定实施例可以重复图9的方法的一个或更多个步骤。尽管本公开将图9的方法的特定步骤描述和示为如以特定的顺序出现,本公开设想图9的方法的任何合适的步骤9以任何合适的顺序出现。在特定实施例中,步骤的任何合适的组合可以并行地出现。此外,尽管本公开描述并示出了用于在共享AR环境内重新定位第一计算设备和第二计算设备的包括图9的方法的特定步骤的示例方法,本公开设想用于在共享AR环境内重新定位第一计算设备和第二计算设备的任何合适的方法,包括任何合适的步骤,其可以在适当的情况下包括图9的方法的步骤中的全部、一些或不包括图9的方法的步骤。此外,尽管本公开描述并示出了执行图9的方法的特定步骤的特定组件、设备或系统,本公开设想执行图9的方法的任何合适步骤的任何合适的组件、设备或系统的任何合适的组合。

在特定实施例中,与第一用户相关联的第一计算设备可以在与第一计算设备相关联的显示器上渲染AR环境。在特定实施例中,计算系统可以基于与第一用户相关联的社交网络信息来确定第一计算设备被授权访问与在AR环境内的位置相关联的特定AR内容项目。特定AR内容项目可以与第二用户相关联。在特定实施例中,做出关于第一用户是否被授权访问特定AR内容项目的确定的计算系统可以是服务器计算机器(例如在线社交网络的远程服务器)。在特定实施例中,可以基于任何其他合适的因素或因素的组合例如上面公开的那些因素(例如,关于对重新定位/协作的授权,或者关于对在AR环境内访问AR内容项目的授权)来授权计算设备。作为示例而不是作为限制,社交网络信息可以包括关于与第一用户相关联的亲和力的信息、与第一用户相关联的人口统计信息、与第一用户相关联的事件信息或者第一用户的群组亲和力。作为另一示例而不是作为限制,计算设备被授权的确定可以进一步基于与AR内容项目相关联的一个或更多个隐私设置。隐私设置可以例如由第二用户设置。例如,隐私设置可以指定只有第一用户的一级社交关连者被授权。

在特定实施例中,第一计算设备可以接收被配置为在AR环境内的相关位置处渲染AR内容项目的信息。在特定实施例中,AR内容项目可以是已经存在于AR环境内的内容。作为示例而不是作为限制,AR内容项目可以是由其他用户在AR环境中先前创建并放置的内容。在特定实施例中,当内容被放置在AR环境内时,AR内容项目可以实时地在第一计算设备上被渲染。作为示例而不是作为限制,当第二用户创建图形时,第一用户的计算设备可以渲染由第二用户创建的图形。

在特定实施例中,AR内容项目可以在与第一计算设备相关联的显示器上被渲染。AR内容项目可以在AR环境内(例如在相关位置处)被渲染。图10示出了在AR环境的视图内被渲染的AR内容项目的示例。作为示例而不是作为限制,参考图10,对应于音乐会地点的AR环境可以显示在第一计算设备的显示器1000上。该AR环境可以包括由用户上传的AR内容项目。在特定实施例中,只有某些AR内容项目可以对第一计算设备是可见的。在特定实施例中,只有第一用户被授权访问的AR内容项目可以是可见的(例如,基于上面公开的适当因素的任何组合)。作为示例而不是作为限制,只有具有授权第一用户观看AR内容项目的隐私设置的AR内容项目可以是可见的。例如,参考图10,只有AR内容项目1015和AR内容项目1025可以对第一用户是可见的。在该示例中,AR内容项目1015可以是由用户1010放置的自拍照片,且AR内容项目1025可以是由用户1020放置的视频。在特定实施例中,可以仅显示由第一用户的一级关连者放置的AR内容项目。

在特定实施例中,AR内容项目可以包括在由作者用户共享的在线社交网络上的通信(例如,帖子)。这些通信可以在AR环境中显示给有访问权的用户(例如,如基于与在线社交网络相关联的社交图确定的作者用户的朋友)。图11示出了在AR环境的视图内渲染的用户帖子的示例。作为示例而不是作为限制,参考图11,用户1110可以在在线社交网络上共享帖子1115,其包括自拍照片1116和该帖子的相关文本(例如,“在具有我的bae#mansNotHot#letMeTakeASelfie的Big Shaq音乐会处”)。在特定实施例中,用户1110可以在与用户1110相关联的隐私设置中明确地规定在特定在线社交网络上的社交网络帖子被自动放置在AR环境中(并且被显示给可以访问帖子的其他用户,例如,如由与帖子相关联的隐私设置所指定的)。作为示例而不是作为限制,每当用户1110在在线社交网络上共享帖子(例如帖子1115)时,该帖子可以被放置在用户1110所在的AR环境中。

在特定实施例中,可以以任何合适的方式强调或突出特定AR内容项目。作为示例而不是作为限制,参考图11,帖子1115可以被放大并被带到在显示器1100中所示的视图的最前面(例如,在由用户1120放置的AR内容项目1125上显示它)。被强调的AR内容项目可以基于它的最近度(例如,将最近放置的AR内容项目带到最前面)或任何其他合适的因素(例如,放大由用户放置的AR内容项目,观看AR环境的用户具有对该AR内容项目的高亲和力)来确定。在特定实施例中,可以基于用户输入(例如,如在本文别处公开的内容选择输入)来强调特定AR内容项目。

在特定实施例中,第一用户可以指定可被应用来使仅仅某些AR内容项目被显示的滤镜。作为示例而不是作为限制,第一用户可以指定只有在过去两分钟内被放置在AR环境中的AR内容项目可以被显示。作为另一个示例而不是作为限制,第一用户可以指定只有由指定的一组朋友放置的AR内容项目可以被显示。作为另一个示例而不是作为限制,第一用户可以指定只有某些内容类型可以被显示或者某些内容类型不可以被显示。例如,第一用户可以指定没有视频被显示。所公开的过滤功能在大AR环境中可能是特别有利的,大量用户可能已经在该大AR环境中放置了内容(例如在体育赛事时)。它还可以用来减少在渲染AR环境的客户端计算设备上的处理负载,因为更少的AR内容项目(包括资源密集型视频、照片和3D对象)需要在任何给定时间在客户端计算设备上被渲染。减少AR内容项目的数量还可以通过减少需要被传输到单独的客户端计算设备的数据量来减少在网络上的负载(例如,在中间服务器被需要的情况下)。

在特定实施例中,对于AR内容项目,AR环境可以包括放置了AR内容项目的用户的指示(但是只有当用户明确地授权该指示的提供时)。作为示例而不是作为限制,参考图10,用户1010可以在视觉上看起来不同于没有放置当前正在显示器1000上显示的任何AR内容项目的其他用户。作为另一个例子而不是作为限制,再次参考图10,可以有将用户(例如用户1010)连接到由用户放置的AR内容项目(例如AR内容项目1015)的线(例如1017)或某个其他可见指示。

在特定实施例中,与AR环境交互作用的用户可以观看在AR环境中的AR内容并与AR内容交互作用。在特定实施例中,用户可以与AR环境交互作用,即使用户不亲自存在于对应于AR环境的现实世界环境中。作为示例而不是作为限制,用户可以远程地访问AR环境(例如,经由虚拟现实设备或者经由AR设备),并且可以观看AR环境及其AR内容并与AR环境及其AR内容交互作用。

图12示出了在AR环境中检测到的脸上画的AR胡子的示例。在特定实施例中,AR内容项目可以持续一个或更多个时间段。在特定实施例中,AR内容项目可以保持与在AR空间内的特定位置相关联,并且可以存留在该位置处。作为示例而不是作为限制,AR内容项目可以存留在与AR环境相关联的坐标空间内的特定坐标点处。在特定实施例中,可以相对于在AR环境内检测到的其他对象(例如表)来确定位置。在特定实施例中,该位置可以是基于另一个对象(例如脸)的位置的浮动位置。作为示例而不是作为限制,参考图12,由第一用户(例如,握着设备1200的用户)用触笔设备1230在第二用户(例如,在AR环境内的另一用户)的脸1220上画胡子1210,并且该胡子可以在第二用户的脸1220上存留预定的时间段(例如五分钟),即使第二用户四处走动。作为另一个示例而不是作为限制,在多个预定时间段期间,例如每当用户在下午5点之后与AR环境交互作用时,胡子可以出现在第二用户上。在特定实施例中,持续的预定时间段可以由用户(例如,在AR环境中创建或放置AR内容项目的用户)定义或者由相关AR应用默认地设置。在特定实施例中,可以基于与和AR环境相关联的现实世界位置相关联的信息(例如,预定在该位置处出现的事件)来确定一个或更多个时间段。作为示例而不是作为限制,在对应于现实世界地点的AR环境中,每当音乐会正在或将要在该地点处出现时,相关元素(例如主题元素,例如海报、虚拟吉他对象)可以出现。当单口喜剧表演正在或将要在同一地点出现时,其他相关元素(例如,关于表演的喜剧演员的信息)可以出现。作为另一个示例而不是作为限制,对应于餐馆的AR餐馆可以在午餐时间显示午餐菜单,且在晚餐时间显示晚餐菜单(例如,当用户通过AR设备的显示器观看现实世界菜单时)。作为另一个例子而不是作为限制,AR环境可以基于一年中的时间来在主题方面改变(例如,在夏天合并夏天相关元素、在冬天合并冬天相关元素、在情人节合并情人节相关元素)。

在特定实施例中,在AR环境中的AR内容可以基于与用户(或用户群组)相关联的信息针对用户(或用户群组)被个性化。作为示例而不是作为限制,AR环境可以包括占位符元素,其允许定制的内容基于正在观看AR环境的用户在环境内被显示。例如,对应于酒店房间的AR环境可以包括与现实世界图片框相关联的占位符元素,使得与在AR环境中观看图片框的酒店客人相关联的图片可以设想(see)与酒店客人相关联的照片(例如,由酒店客人上传到在线社交网络的照片、在本地驻留在酒店客人的计算设备上的照片等)。

在特定实施例中,AR内容项目可以无限期地存留,直到移除AR内容项目的事件出现为止。作为示例而不是作为限制,在用户的脸上画的胡子可以无限期地保留在用户的脸上,直到用户提交移除胡子的输入(例如,使用计算设备或相关控制器来“擦掉”胡子的手势)为止。

在特定实施例中,观看AR环境的用户可以与在AR环境内的内容交互作用。作为示例而不是作为限制,用户可以修改AR内容项目,如在本文别处更详细讨论的。在特定实施例中,用户可以使用计算设备(例如,向用户显示AR环境的计算设备)来提交内容选择输入,该内容选择输入选择AR环境中的特定AR内容。这可以使计算设备能够与AR内容项目交互作用。可以通过任何合适的输入手段(例如触摸手势,例如轻击、手的手势、按下控制器上的按钮)来执行内容选择输入。在特定实施例中,交互作用可以包括在AR环境内将AR内容项目从一个位置移动到另一个位置。作为示例而不是作为限制,用户可以将在AR环境内的虚拟对象移动到不同的位置。在特定实施例中,交互作用可以涉及利用AR内容项目执行内容特定行动。作为一个示例而不是作为限制,用户可以通过捡起AR保龄球并将它投向一组AR保龄球瓶来用AR保龄球玩游戏。在特定实施例中,交互作用可以包括放大AR内容项目或以其他方式观看AR内容项目。作为示例而不是作为限制,参考图10,用户可以提交与AR内容项目1015(例如,通过点击它)相关联的内容选择输入。作为响应,AR内容项目1015的放大版本可以显示在用户的计算设备上。作为另一个示例而不是作为限制,参考图10,用户可以点击AR内容项目1025,其可以是视频。作为响应,相关视频可以开始播放。

在特定实施例中,在AR环境中访问AR内容项目的第一用户可以与正在或已经在AR环境内放置AR内容项目的第二用户在同一现实环境中。在这些实施例中,AR内容项目可以由第二用户在先前的时间点由第二用户放置。例如,第二用户可以在一年前当第二用户最后一次在相应的现实环境中时将照片放置在AR环境中。在这个示例中,第一用户可以在今天当第一用户访问现实世界环境并观看相应的AR环境时看到照片。可选地,在这些实施例中,AR内容项目可以当第一用户与第二用户在现实世界环境中时被放置。作为示例而不是作为限制,当第一用户和第二用户都存在于相应的现实世界环境中时,第一用户可以实时地观看第二用户将照片放置在AR环境中。

在特定实施例中,在AR环境中访问AR内容项目的第一用户可以与正在或已经在AR环境内放置AR内容项目的第二用户在不同的现实环境中。在这些实施例中,AR内容项目可以由第二用户在先前的时间点由第二用户放置。例如,第二用户可以在一年前当第二用户最后一次在AR环境中时将照片放置在AR环境中,该照片可以远程地被访问(例如,经由VR设备)。在这个例子中,第一用户可以在今天当第一用户访问相应的现实世界环境并观看相应的AR环境时看到照片。可选地,在这些实施例中,AR内容项目可以当两个用户都访问AR环境时被放置。作为示例而不是作为限制,当第一用户和第二用户都访问AR环境时,第一用户可以实时地观看第二用户将照片放置在AR环境中。

在特定实施例中,AR内容项目可以被配置为基于检测到的AR环境的照明和颜色设置并且进一步基于在AR环境内的AR内容项目的位置来在外观方面改变。这个改变可以模拟在现实世界环境内的现实世界对象中出现的变化,因为光被吸收并从现实世界对象反射。这个特征对于在AR环境中合并到AR内容内可能是有益的,因为它可以进一步增强AR内容项目被合并到现实世界环境中或者至少它被现实世界环境影响的感觉。在特定实施例中,AR内容项目的颜色、阴影和/或纹理可以动态地改变。作为示例而不是作为限制,AR内容项目的颜色和阴影可以在它被移动到它存在于的AR环境的不同位置时自动改变。例如,如果它被移动到在颜色上是粉红色的光源附近,则AR内容项目的部分可以呈现带粉红色的色调(例如,粉红色的色调在光源附近最强,以及在它变得更远离光源时逐渐减弱)。AR内容项目的外观也可以基于用户观看AR内容项目的视角而变化。作为示例而不是作为限制,AR内容项目的阴影可以基于用户是从将光投射到现实世界环境(以及相应的AR环境)中的现实世界窗口的左侧还是从现实世界窗口的右侧来观看它而改变。

图13示出了用于在第一用户的计算设备上渲染由第二用户在AR环境内放置的AR内容项目的示例方法1300。该方法可以在步骤1310开始,其中与第一用户相关联的第一计算设备可以在与第一计算设备相关联的显示器上渲染AR环境。在步骤1320,计算系统(例如服务器计算机器、第一计算设备)可以基于与第一用户相关联的社交网络信息来确定第一计算设备被授权访问与在AR环境内的位置相关联的AR内容项目,其中AR内容项目与第二用户相关联。在步骤1330,第一计算设备可以接收被配置为在AR环境内的相关位置处渲染AR内容项目的信息。在步骤1340,可以在与第一计算设备相关联的显示器上在AR环境内渲染AR内容项目。在适当的情况下,特定实施例可以重复图13的方法的一个或更多个步骤。尽管本公开将图13的方法的特定步骤描述和示为以特定的顺序出现,本公开设想图13的方法的任何合适的步骤以任何合适的顺序出现。在特定实施例中,步骤的任何合适的组合可以并行地出现。此外,尽管本公开描述并示出了用于在第一用户的计算设备上渲染由第二用户在AR环境内放置的AR内容项目的包括图13的方法的特定步骤的示例方法,本公开设想用于在第一用户的计算设备上渲染由第二用户在AR环境内放置的AR内容项目的任何合适的方法,包括任何合适的步骤,其可以在适当的情况下包括图13的方法的步骤中的全部、一些或不包括图13的方法的步骤。此外,尽管本公开描述并示出了执行图13的方法的特定步骤的特定组件、设备或系统,本公开设想执行图13的方法的任何合适步骤的任何合适的组件、设备或系统的任何合适的组合。

在特定实施例中,可以渲染AR环境。在特定实施例中,一个或更多个对象(例如脸、动物、现实世界的无生命对象、虚拟对象等)可以在与和第一用户相关联的第一计算设备相关联的显示器上渲染的AR环境内被识别。在特定实施例中,可以使用任何合适的方法例如本文公开的跟踪算法(例如SLAM、区域跟踪、脸部跟踪)来识别对象。在特定实施例中,对象可以由计算设备(例如第一计算设备)在本地识别,AR环境可以在该计算设备上被渲染。在特定实施例中,对象可以由远程服务器(例如,与在线社交网络相关联的远程服务器)识别。作为示例而不是作为限制,在第一计算设备处捕获的图像信息可以被发送到远程服务器,该远程服务器可以识别在图像中的对象并将识别对象的信息发送到第一计算设备。在特定实施例中,处理任务/资源可以在多个计算设备当中被划分。作为示例而不是作为限制,第一计算设备可以结合远程服务器(或第二计算设备)来工作以识别在AR环境中的对象。

图14示出了包括所建议的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内容。作为示例而不是作为限制,如果第一用户是25岁,包括由20-30岁的人使用的俚语(slang)词的AR内容项目比其他内容项目可以得到更高的分数。例如,具有词“bae”(用于一个人的重要的另一个人的俚语)的表情符号在其他都相同的情况下对于20岁的人可以比70岁的人得到更高的分数。在特定实施例中,可以基于与第一用户相关联的一种或更多种语言(例如,由第一用户在在线社交网络上的通信中使用的语言、在第一用户的简档信息中指定的语言)来确定所建议的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内容。在特定实施例中,可以确定事件当前正在出现。作为示例而不是作为限制,参考图14,计算系统可以确定在第一用户的客户端计算设备1400上渲染的AR环境可以与《星际迷航》大会相关联。在特定实施例中,这个确定可以基于预定日程(例如,如由与客户端计算设备1400相关联的第一用户的日历确定的,如由区域中的事件的日历确定的,等等)和/或基于第一用户的位置。例如,第一用户可以被确定为位于在当前时间主办《星际迷航》大会的特定会议中心处(例如,经由与客户端计算设备1400相关联的GPS)。在特定实施例中,多个用户的信息和关于公共位置的信息可用于确定第一用户在特定事件中。作为示例而不是作为限制,如果第一用户和第二用户的几个朋友(例如,如基于社交图信息所确定的)在第二用户的住宅处并且如果当天是第二用户的生日(例如,如基于第二用户的简档信息所确定的),则计算系统可以确定第一用户正在参加第二用户的生日聚会。在特定实施例中,基于在AR环境中检测到的对象,第一用户可以被确定为在特定事件中。作为示例而不是作为限制,对象1430可以是与《星际迷航》大会相关联的海报,这可以使第一用户在《星际迷航》大会中变得可能。参考图14,当确定第一用户在《星际迷航》大会中时,AR内容项目1412、1414和1416可以得到相对高的分数,至少部分地因为它们与《星际迷航》相关联。

在特定实施例中,可以基于当前日期或时间独立于任何特定事件而确定所建议的AR内容项目。作为示例而不是作为限制,AR内容项目例如万圣节面具在当日是万圣节时可以比其他内容项目得到更高的分数。

在特定实施例中,所建议的AR内容项目可以作为建议呈现在与第一计算设备相关联的显示器上。在特定实施例中,这些建议可以显示在建议界面内,该建议界面可以被渲染为占据与第一计算设备相关联的显示器的子区域。作为示例而不是作为限制,参考图14,建议界面1410可以被显示在第一用户的计算设备上。在该示例中,可以向第一用户呈现三个所建议的AR内容项目(例如耳朵1412、宇宙飞船对象1414和照片1416)。在特定实施例中,观看显示器的第一用户可以检查并选择一个或更多个所建议的AR内容项目。在特定实施例中,第一用户可以在AR环境内放置所建议的AR内容项目。

在特定实施例中,被用作确定所建议的AR内容项目的基础的识别出的对象可以是在AR环境内的被确定为第一用户当前感兴趣的对象。在特定实施例中,如果对象出现在与第一计算设备相关联的显示器的焦点区域内,则该对象可以被确定为是第一用户当前感兴趣的。作为示例而不是作为限制,当被识别为脸的对象出现在焦点区域内时,在其他都相同的情况下,AR胡子可以比AR照片得到更高的分数。在特定实施例中,显示器的焦点区域可以是显示器的中心、在显示器上显示的标线周围的区域或者第一用户的凝视的预测焦点(例如,如由可以跟踪第一用户的头定向或瞳孔的摄像机或其他传感器确定的)。在2017年10月2日提交的美国专利申请号15/722,437号中可以找到关于确定用于确定在环境内的感兴趣对象的焦点区域的更多信息,该专利申请通过引用被并入本文。

在特定实施例中,第一用户可以用所建议的AR内容项目来修改在AR环境中的识别出的对象。作为示例而不是作为限制,参考图14,AR内容项目可以是第一用户可以在AR环境内放置在用户的脸1420上的面具,例如耳朵1412。在该示例中,耳朵1412可以在一个或更多个时间段期间或者无限期地直到事件出现为止(如在本文别处所公开的)存留在用户的脸1420上。作为示例而不是作为限制,AR内容项目可以是万圣节滤镜。在这个示例中,可以修改整个AR环境,使得它变成万圣节主题的。

在特定实施例中,第一用户可以修改所建议的AR内容项目(或任何AR内容,无论它是否被建议)或其实例。作为示例而不是作为限制,第一用户可以在AR内容项目上画图(例如,在所建议的表情符号贴纸上画帽子)、调整内容的大小、裁剪内容、旋转内容或以任何合适的方式改变它。

在特定实施例中,用户可以创建或修改AR内容项目(例如,所建议的AR内容项目),并将它上传到服务器。在特定实施例中,修改AR内容项目可以涉及创建AR内容项目的新实例并修改该新近创建的实例,使得原始AR内容项目可以保持未修改。在特定实施例中,修改AR内容项目可以涉及修改原始AR内容。在这些实施例中,修改AR内容项目的用户可能需要被授权以进行修改(例如,用户可能创建了AR内容项目或者由创建AR内容项目的用户给予了修改的权利)。在特定实施例中,将AR内容项目上传到服务器的用户可以指定AR内容项目的隐私设置。隐私设置可以指定可用于确定可以被授权访问或修改上传的AR内容的用户的标准。在特定实施例中,可以访问内容项目的用户可以搜索并选择上传的AR内容。在特定实施例中,如在本文别处所公开的,这个用户上传的AR内容可以被自动建议给用户(例如,在建议界面内)。

图15示出了用于向用户建议AR内容项目的示例方法1500。该方法可以在步骤1510开始,其中AR环境可以在与和第一用户相关联的第一计算设备相关联的显示器上被渲染。在步骤1520,可以在AR环境内识别一个或更多个对象。在步骤1530,可以基于与第一用户相关联的社交网络信息并且进一步基于与识别出的对象相关联的特征来确定所建议的AR内容项目。在步骤1540,可以在与第一计算设备相关联的显示器上呈现所建议的AR内容项目。在适当的情况下,特定实施例可以重复图15的方法的一个或更多个步骤。尽管本公开将图15的方法的特定步骤描述和示为以特定的顺序出现,本公开设想图15的方法的任何合适的步骤以任何合适的顺序出现。在特定实施例中,步骤的任何合适的组合可以并行地出现。此外,尽管本公开描述并示出了用于向用户建议AR内容项目的示例方法,包括图15的方法的特定步骤,本公开设想用于向用户建议AR内容项目的任何合适的方法,包括任何合适的步骤,其可以在适当的情况下包括图15的方法的步骤中的全部、一些或不包括图15的方法的步骤。此外,尽管本公开描述并示出了执行图15的方法的特定步骤的特定组件、设备或系统,本公开设想执行图15的方法的任何合适步骤的任何合适的组件、设备或系统的任何合适的组合。

图16示出了与社交网络系统相关联的示例网络环境1600。网络环境1600包括通过网络1610连接到彼此的客户端系统1630、社交网络系统1660和第三方系统1670。虽然图16示出了客户端系统1630、社交网络系统1660、第三方系统1670和网络1610的特定布置,但是本公开设想客户端系统1630、社交网络系统1660、第三方系统1670和网络1610的任何合适的布置。作为示例而不是作为限制,客户端系统1630、社交网络系统1660和第三方系统1670中的两个或更多个可以直接连接到彼此,绕过网络1610。作为另一示例,客户端系统1630、社交网络系统1660和第三方系统1670中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,虽然图16示出了特定数量的客户端系统1630、社交网络系统1660、第三方系统1670和网络1610,但是本公开设想任何合适数量的客户端系统1630、社交网络系统1660、第三方系统1670和网络1610。作为示例而不是作为限制,网络环境1600可以包括多个客户端系统1630、社交网络系统1660、第三方系统1670和网络1610。

本公开设想了任何合适的网络1610。作为示例而不是作为限制,网络1610的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络1610可以包括一个或更多个网络1610。

链路1650可以将客户端系统1630、社交网络系统1660和第三方系统1670连接到通信网络1610或连接到彼此。本公开设想了任何合适的链路1650。在特定实施例中,一个或更多个链路1650包括一个或更多个有线链路(诸如例如数字用户线路(DSL)或有线数据服务接口规范(DOCSIS))、无线链路(诸如例如Wi-Fi或全球微波接入互操作性(Wi-MAX))或光链路(诸如例如同步光网络(SONET)或同步数字体系(SDH))。在特定实施例中,一个或更多个链路1650各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路1650、或两个或更多个这种链路1650的组合。链路1650不需要在整个网络环境1600中一定是相同的。一个或更多个第一链路1650可以在一个或更多个方面上不同于一个或更多个第二链路1650。

在特定实施例中,客户端系统1630可以是包括硬件、软件或嵌入式逻辑组件、或两个或更多个这样的组件的组合,并且能够执行由客户端系统1630实现或支持的适当功能的电子设备。作为示例而非限制,客户端系统1630可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备或其任何合适的组合。本公开设想了任何合适的客户端系统1630。客户端系统1630可以使在客户端系统1630处的网络用户能够访问网络1610。客户端系统1630可以使它的用户能够与在其他客户端系统1630处的其他用户进行通信。

在特定实施例中,客户端系统1630可以包括web浏览器1632,例如MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或更多个附加件、插件或其他扩展件,例如TOOLBAR或YAHOO TOOLBAR。在客户端系统1630处的用户可以输入统一资源定位符(URL)或将web浏览器1632引导到特定的服务器(例如服务器1662或与第三方系统1670相关联的服务器)的其他地址,并且web浏览器1632可以生成超文本传输协议(HTTP)请求并将HTTP请求传递到服务器。服务器可以接受该HTTP请求,并响应于该HTTP请求向客户端系统1630传送一个或更多个超文本标记语言(HTML)文件。客户端系统1630可以基于来自服务器的HTML文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的脚本、标记语言和脚本的组合(例如AJAX(异步JAVASCRIPT和XML))等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。

在特定实施例中,社交网络系统1660可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统1660可以生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统1660可以由网络环境1600的其他组件直接地或经由网络1610来访问。作为示例而不是作为限制,客户端系统1630可以使用web浏览器1632或与社交网络系统1660相关联的原生(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络1610来访问社交网络系统1660。在特定实施例中,社交网络系统1660可以包括一个或更多个服务器1662。每个服务器1662可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器1662可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器1662可以包括硬件、软件或嵌入式逻辑组件、或用于执行由服务器1662实现或支持的适当功能的两个或更多个这样的组件的组合。在特定实施例中,社交网络系统1660可以包括一个或更多个数据储存器1664。数据储存器1664可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器1664中的信息。在特定实施例中,每个数据储存器1664可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统1630、社交网络系统1660或第三方系统1670能够管理、检索、修改、添加或删除存储在数据储存器1664中的信息的接口。

在特定实施例中,社交网络系统1660可以在一个或更多个数据储存器1664中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及连接节点的多条边。社交网络系统1660可以向在线社交网络的用户提供与其他用户通信和互动的能力。在特定实施例中,用户可以经由社交网络系统1660加入在线社交网络,且然后将关连(例如,关系)添加到社交网络系统1660中的他们想要关连到的多个其他用户。在本文,术语“朋友”可以指社交网络系统1660的任何其他用户,用户经由社交网络系统1660与该任何其他用户形成关连(connection)、关联(association)或关系。

在特定实施例中,社交网络系统1660可以向用户提供对由社交网络系统1660支持的各种类型的项目或对象采取行动的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统1660的用户可以属于的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的互动、或其他合适的项目或对象。用户可以与能够在社交网络系统1660中或者由第三方系统1670的外部系统表示的任何事物进行互动,第三方系统1070与社交网络系统1660分离并且经由网络1610耦合到社交网络系统1660。

在特定实施例中,社交网络系统1660能够链接各种实体。作为示例而不是作为限制,社交网络系统1660可以使用户能够彼此互动以及从第三方系统1670或其他实体接收内容,或者允许用户通过应用编程接口(API)或其他通信渠道与这些实体互动。

在特定实施例中,第三方系统1670可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于API)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的组件(例如,服务器可以与这些组件通信)。第三方系统1670可以由与操作社交网络系统1660的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统1660和第三方系统1670可以结合彼此来操作以向社交网络系统1660或第三方系统1670的用户提供社交网络服务。在这个意义上,社交网络系统1660可以提供平台或骨干网,其他系统(例如第三方系统1670)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。

在特定实施例中,第三方系统1670可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传递到客户端系统1630的内容对象的一个或更多个源。作为示例而不是作为限制,诸如,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。

在特定实施例中,社交网络系统1660还包括用户生成的内容对象,其可以增强用户与社交网络系统1660的互动。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统1660的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统1630传送到社交网络系统1660。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如新闻提要或流)来添加到社交网络系统1660。

在特定实施例中,社交网络系统1660可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统1660可以包括下列项中的一个或更多个:web服务器、行动记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、行动日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器(connection store)、第三方内容储存器或位置储存器。社交网络系统1660还可以包括合适的组件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件、或其任何合适的组合。在特定实施例中,社交网络系统1660可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如,传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、密切关系或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“赞”关于一种品牌的鞋的文章,该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络1610将社交网络系统1660链接到一个或更多个客户端系统1630或一个或更多个第三方系统1670。web服务器可以包括邮件服务器或用于在社交网络系统1660和一个或更多个客户端系统1630之间接收并按规定路线发送消息的其他消息传送功能。API请求服务器可以允许第三方系统1670通过调用一个或更多个API来访问来自社交网络系统1660的信息。行动记录器可以用于从web服务器接收关于用户在社交网络系统1660上或之外的行动的通信。结合行动日志,可以维护用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统1630提供关于内容对象的信息。信息可以作为通知被推送到客户端系统1630,或者信息可以响应于从客户端系统1630接收的请求而从客户端系统1630中被拉取。授权服务器可以用于实施社交网络系统1660的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。授权服务器可以例如通过设置适当的隐私设置来使用户允许或不允许使他们的行动由社交网络系统1660记录或者与其他系统(例如,第三方系统1670)共享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统1670)接收的内容对象。位置储存器可以用于存储从与用户相关联的客户端系统1630接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。

图17示出了示例社交图1700。在特定实施例中,社交网络系统1660可以在一个或更多个数据储存器中存储一个或更多个社交图1700。在特定实施例中,社交图1700可以包括多个节点——其可以包括多个用户节点1702或多个概念节点1704——以及连接这些节点的多条边1706。每个节点可以与唯一的实体(即,用户或概念)相关联,每个实体可以具有唯一的标识符(ID),例如唯一的编号或用户名。图17所示的示例社交图1700为了教导的目的以二维视觉图表示示出。在特定实施例中,社交网络系统1660、客户端系统1630或第三方系统1670可以访问社交图1700和相关社交图信息以用于合适的应用。社交图1700的节点和边可以作为数据对象被存储在例如数据储存器(如社交图数据库)中。这种数据储存器可以包括社交图1700的节点或边的一个或更多个可搜索或可查询的索引。

在特定实施例中,用户节点1702可以对应于社交网络系统1660的用户。作为示例而不是作为限制,用户可以是与社交网络系统1660或通过社交网络系统1660互动或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)群组。在特定实施例中,当用户向社交网络系统1660注册账户时,社交网络系统1660可以创建对应于用户的用户节点1702,并将用户节点1702存储在一个或更多个数据储存器中。本文描述的用户和用户节点1702在适当的情况下可以指注册的用户和与注册的用户相关联的用户节点1702。另外或作为备选方案,在适当的情况下,本文描述的用户和用户节点1702可以指没有向社交网络系统1660注册的用户。在特定实施例中,用户节点1702可以与由用户提供的信息或由各种系统(包括社交网络系统1660)收集的信息相关联。作为示例而不是作为限制,用户可以提供他或她的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点1702可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点1702可以对应于一个或更多个网页。

在特定实施例中,概念节点1704可以对应于概念。作为示例而不是作为限制,概念可以对应于地点(诸如例如,电影院、餐馆、陆标或城市);网站(诸如例如,与社交网络系统1660相关联的网站或与web应用服务器相关联的第三方网站);实体(诸如例如,个人、企业、群组、运动队或名人);资源(诸如例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用),其可以位于社交网络系统1660内或外部服务器(例如web应用服务器)上;不动产或知识产权(诸如例如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;在增强/虚拟现实环境中的对象;另一个合适的概念;或者两个或更多个这样的概念。概念节点1704可以与用户提供的概念信息或包括社交网络系统1660在内的各种系统收集的信息相关联。作为示例而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点1704可以与一个或更多个数据对象相关联,该一个或更多个数据对象对应于与概念节点1704相关联的信息。在特定实施例中,概念节点1704可以对应于一个或更多个网页。

在特定实施例中,社交图1700中的节点可以表示网页或由网页表示(其可以被称为“简档页面”)。简档页面可以由社交网络系统1660托管或是社交网络系统1660可访问的。简档页面也可以在与第三方系统1670相关联的第三方网站上被托管。作为示例而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点1704。简档页面可以由其他用户的全部或选定子集可查看。作为示例而不是作为限制,用户节点1702可以具有相应的用户简档页面,其中相应的用户可以添加内容、作出声明或以其他方式表达他或她自己。作为另一示例而不是作为限制,概念节点1704可以具有对应的概念简档页面,其中一个或更多个用户可以添加内容、作出声明或表达他们自己,特别是关于对应于概念节点1704的概念。

在特定实施例中,概念节点1704可以表示由第三方系统1670托管的第三方网页或资源。第三方网页或资源可以包括表示行动或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用JavaScript、AJAX或PHP代码实现)、以及其他元素。作为示例而不是作为限制,第三方网页可以包括可选择的图标(例如“赞”、“签到(check-in)”、“吃”、“推荐”)或其他合适的行动或活动。观看第三方网页的用户可以通过选择图标之一(例如“签到”)来执行行动,使客户端系统1630向社交网络系统1660发送指示用户的行动的消息。响应于该消息,社交网络系统1660可以在对应于用户的用户节点1702和对应于第三方网页或资源的概念节点1704之间创建边(例如,签到型边),并将边1706存储在一个或更多个数据储存器中。

在特定实施例中,社交图1700中的一对节点可以通过一条或更多条边1706关连到彼此。关连一对节点的边1706可以表示在该对节点之间的关系。在特定实施例中,边1706可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为示例而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统1660可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统1660可以在社交图1700中创建将第一用户的用户节点1702连接到第二用户的用户节点1702的边1706,并将边1706作为社交图信息存储在一个或更多个数据储存器1664中。在图17的示例中,社交图1700包括指示在用户“A”和用户“B”的用户节点1702之间的朋友关系的边1706以及指示在用户“C”和用户“B”的用户节点1702之间的朋友关系的边。尽管本公开描述或示出了连接特定用户节点1702的具有特定属性的特定边1706,但是本公开设想连接用户节点1702的具有任何适当属性的任何适当边1706。作为示例而非限制,边1706可以代表友谊、家庭关系、商业或雇佣关系、粉丝关系(包括,例如,点赞等),关注者关系,访问者关系(包括,例如,访问、查看、签到、分享等)、订户关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系或两种或多种这样的关系。此外,尽管本公开一般将节点描述为被关连,但是本公开也将用户或概念描述为被关连。在本文,对被关连的用户或概念的引用在适当的情况下可以指在社交图1700中由一条或更多条边1706关连的对应于那些用户或概念的节点。分别由两个节点表示的两个对象之间的分离度是连接社交图1700中的两个节点的最短路径中的边数。作为示例而非限制,在社交图1700中,用户“C”的用户节点1702经由多条路径连接到用户“A”的用户节点1702,该多条路径包括例如,直接通过用户“B”的用户节点1702的第一路径,通过公司“Acme”的概念节点1704和用户“D”的用户节点1702的第二路径,以及通过代表学校“斯坦福”、用户“G”、公司“Acme”和用户“D”的用户节点1702和概念节点1704的第三路径。用户“C”和用户“A”具有两个分离度,因为连接它们相应节点的最短路径(即第一路径)包括两条边1706。

在特定实施例中,在用户节点1702和概念节点1704之间的边1706可以表示由与用户节点1702相关联的用户对与概念节点1704相关联的概念执行的特定行动或活动。作为示例而不是作为限制,如图17所示,用户可以“赞”、“参加”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,其中每个可以对应于边类型或子类型。对应于概念节点1704的概念简档页面可以包括例如可选择的“签到”图标(例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统1660可以响应于对应于相应行动的用户行动来创建“收藏夹”边或“签到”边。作为另一示例而不是作为限制,用户(用户“C”)可以使用特定的应用(声田(SPOTIFY),其为在线音乐应用)来收听特定的歌曲(“想象(Imagine)”)。在这种情况下,社交网络系统1660可以创建在对应于用户的用户节点1702和对应于歌曲和应用的概念节点1704之间的“收听”边1706和“使用”边(如图17所示),以指示用户听了歌曲并使用了应用。此外,社交网络系统1660可以创建在对应于该歌曲和该应用的概念节点1704之间的“播放”边1706(如图17所示),以指示该特定歌曲由特定应用播放。在这种情况下,“播放”边1706对应于由外部应用(SPOTIFY)对外部音频文件(歌曲“Imagine”)执行的行动。尽管本公开描述了连接用户节点1702和概念节点1704的具有特定属性的特定边1706,但是本公开设想连接用户节点1702和概念节点1704的具有任何适当属性的任何适当边1706。此外,尽管本公开描述了表示单一关系的在用户节点1702和概念节点1704之间的边,但是本公开设想表示一个或更多个关系的在用户节点1702和概念节点1704之间的边。作为示例而不是作为限制,边1706可以表示用户喜欢并使用了特定概念。可选地,另一条边1706可以表示在用户节点1702和概念节点1704之间(如图17所示,在用户“E”的用户节点1702和“SPOTIFY”的概念节点1704之间)的每种类型的关系(或者多个单一关系)。

在特定实施例中,社交网络系统1660可以在社交图1700中的用户节点1702和概念节点1704之间创建边1706。作为示例而不是作为限制,(例如,通过使用由用户的客户端系统1630托管的web浏览器或专用应用)观看概念简档页面的用户可以通过点击或选择“赞”图标来指示他或她喜欢由概念节点1704表示的概念,这可以使用户的客户端系统1630向社交网络系统1660发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统1660可以在与用户相关联的用户节点1702和概念节点1704之间创建边1706,如由在用户和概念节点1704之间的“赞”边1706所示的。在特定实施例中,社交网络系统1660可以将边1706存储在一个或更多个数据储存器中。在特定实施例中,边1706可以由社交网络系统1660响应于特定用户行动而自动形成。作为示例而不是作为限制,如果第一用户上传图片、观看电影或收听歌曲,则可以在对应于第一用户的用户节点1702和对应于那些概念的概念节点1704之间形成边1706。尽管本公开描述了以特定方式形成特定边1706,但是本公开设想了以任何合适的方式形成任何合适的边1706。

在特定实施例中,社交网络系统1660可以确定各种社交图实体对于彼此的社交图亲和力(在本文可以称为“亲和力”)。亲和力可以表示在与在线社交网络相关联的特定对象(例如用户、概念、内容、行动、广告)、与在线社交网络相关联的其他对象或其任何合适的组合之间的关系强度或兴趣水平。也可以关于与第三方系统1670或其他合适的系统相关联的对象来确定亲和力。可以为每个用户、主题或内容类型建立对社交图实体的总体亲和力。基于对与社交图实体相关联的行动或关系的持续监测,总体亲和力可以改变。尽管本公开描述了以特定方式确定特定亲和力,但是本公开设想了以任何合适的方式确定任何合适的亲和力。

在特定实施例中,社交网络系统1660可以使用亲和力系数(在本文可以称为“系数”)来度量或量化社交图亲和力。该系数可以表示或量化与在线社交网络相关联的特定对象之间的关系强度。系数还可以表示基于用户对特定行动的兴趣来估量用户将执行该行动的预测概率的概率或函数。以这种方式,可以基于用户的先前行动来预测用户的未来行动,其中可以至少部分地基于用户的行动的历史来计算系数。系数可以用于预测可以在在线社交网络内或外部的任何数量的行动。作为示例而不是作为限制,这些行动可以包括各种类型的通信,例如发送消息、发布内容或对内容进行评论;各种类型的观察行动,例如访问或查看简档页面、媒体或其他合适的内容;关于两个或更多个社交图实体的各种类型的一致信息,例如在同一组中、在同一照片中被标记、在同一位置处签到或参加同一事件;或其他合适的行动。尽管本公开描述了以特定方式估量亲和力,但是本公开设想了以任何合适的方式估量亲和力。

在特定实施例中,社交网络系统1660可以使用各种因素来计算系数。这些因素可以包括例如用户行动、对象之间的关系类型、位置信息、其他合适的因素或其任何组合。在特定实施例中,当计算系数时,不同的因素可以被不同地加权。每个因素的权重可以是静态的,或者可以根据例如用户、关系类型、行动类型、用户的位置等来改变权重。可以根据因素的权重来组合这些因素的等级,以确定用户的总体系数。作为示例而不是作为限制,特定用户行动可以被分配等级和权重,而与特定用户行动相关联的关系被分配等级和相关权重(例如,因此权重总计为100%)。为了计算用户对特定对象的系数,分配给用户行动的等级可以包括例如,总系数的60%,而用户和该对象之间的关系可以包括总系数的40%。在特定实施例中,当确定用于计算系数的各种因素的权重时,社交网络系统1660可以考虑各种变量,例如自信息被访问以来的时间、衰减因子、访问的频率、与信息的关系或与信息被访问了的对象的关系、与连接到对象的社交图实体的关系、用户行动的短期或长期平均值、用户反馈、其他合适的变量、或它们的任意组合。作为示例而不是作为限制,系数可以包括衰减因子,该衰减因子使由特定行动提供的信号的强度随时间而衰减,使得在计算系数时更近的行动更相关。等级和权重可以基于系数所基于的行动的持续跟踪而被持续地更新。可以采用任何类型的过程或算法来分配、组合、平均等每个因素的等级和分配给这些因素的权重。在特定实施例中,社交网络系统1660可以使用根据历史行动和过去的用户响应训练的机器学习算法,或者通过将用户暴露于各种选项并测量响应而从用户获得的数据,来确定系数。尽管本公开描述了以特定方式计算系数,但是本公开设想了以任何合适的方式计算系数。

在特定实施例中,社交网络系统1660可以基于用户的行动来计算系数。社交网络系统1660可以监控在线社交网络上、第三方系统1670上、其他合适的系统上、或它们的任意组合上的这样的行动。可以跟踪或监测任何合适类型的用户行动。典型的用户行动包括查看简档页面、创建或发布内容、与内容交互、在图像中标记或被标记在图像中、加入群组、列出并确认事件出席情况、在不同地点签到、点赞特定页面、创建页面以及执行有助于社交行动的其他任务。在特定实施例中,社交网络系统1660可以基于用户对特定类型的内容的行动来计算系数。内容可以与在线社交网络、第三方系统1670或另一个合适的系统相关联。内容可以包括用户、简档页面、帖子、新闻动态(news story)、标题、即时消息、聊天室会话、电子邮件、广告、图片、视频、音乐、其他合适的对象或其任何组合。社交网络系统1660可以分析用户的行动,以确定这些行动中的一个或更多个是否指示对主题、内容、其他用户等的亲和力。作为示例而不是作为限制,如果用户频繁发布与“咖啡”或其变型相关的内容,则社交网络系统1660可以确定用户对于概念“咖啡”具有高的系数。特定的行动或特定类型的行动可以被分配比其他行动更高的权重和/或等级,这可能影响整体计算的系数。作为示例而不是作为限制,如果第一用户向第二用户发送电子邮件,则该行动的权重或等级可能比如果第一用户简单地查看第二用户的用户简档页面更高。

在特定实施例中,社交网络系统1660可以基于特定对象之间的关系的类型来计算系数。参考社交图1700,当计算系数时,社交网络系统1660可以分析连接特定用户节点1702和概念节点1704的边1706的数量和/或类型。作为示例而不是作为限制,通过配偶型边(表示两个用户结婚了)连接的用户节点1702可以比通过朋友型边连接的用户节点1702被分配更高的系数。换句话说,根据分配给特定用户的行动和关系的权重,可以确定对于关于用户的配偶的内容的总体亲和力比对于关于用户的朋友的内容的总体亲和力更高。在特定实施例中,用户与另一对象的关系可以影响关于计算该对象的系数的用户行动的权重和/或等级。作为示例而不是作为限制,如果用户在第一张照片中被标记,但仅仅赞第二张照片,则社交网络系统1660可以确定用户关于第一张照片具有比第二张照片更高的系数,因为具有与内容的标记型(tagged-in-type)关系可以被分配比具有与内容的点赞型(like-type)关系更高的权重和/或等级。在特定实施例中,社交网络系统1660可以基于一个或更多个第二用户与特定对象所具有的关系来计算第一用户的系数。换句话说,其他用户与对象的关连和系数可能影响第一用户关于该对象的系数。作为示例而不是作为限制,如果第一用户关连到一个或更多个第二用户或者对于一个或更多个第二用户具有高的系数,并且那些第二用户关连到特定对象或者对于特定对象具有高的系数,则社交网络系统1660可以确定第一用户对于该特定对象同样应该具有相对高的系数。在特定实施例中,系数可以基于在特定对象之间的分离度。较低的系数可以表示第一用户将与在社交图1700中间接地关连到的第一用户的用户分享内容对象的兴趣的降低的可能性。作为示例而不是作为限制,在社交图1700中更靠近(即,分离度更少)的社交图实体可以比在社交图1700中更远离的实体具有更高的系数。

在特定实施例中,社交网络系统1660可以基于位置信息来计算系数。在地理上彼此更靠近的对象可以被认为比更远的对象彼此更相关或更感兴趣。在特定实施例中,用户对特定对象的系数可以基于对象的位置与和用户相关联的当前位置(或用户的客户端系统1630的位置)的接近度。第一用户可能对更接近第一用户的其他用户或概念更感兴趣。作为示例而不是作为限制,如果用户距机场一英里且距加油站两英里,则社交网络系统1660可以基于机场与用户的接近度来确定用户对机场具有比对加油站更高的系数。

在特定实施例中,社交网络系统1660可以基于系数信息来执行关于用户的特定行动。系数可以用于基于用户对特定行动的兴趣来预测用户是否将执行该行动。当生成或向用户呈现任何类型的对象(例如广告、搜索结果、新闻动态、媒体、消息、通知或其他合适的对象)时,可以使用系数。该系数也可以被用来适当地对这样的对象进行排列(rank)和排序(order)。以这种方式,社交网络系统1660可以提供与用户的兴趣和当前环境相关的信息,增加了他们将找到这样的感兴趣的信息的可能性。在特定实施例中,社交网络系统1660可以基于系数信息来生成内容。可以基于特定于用户的系数来提供或选择内容对象。作为示例而不是作为限制,系数可以用于为用户生成媒体,其中可以向用户呈现用户关于媒体对象具有高的总系数的媒体。作为另一示例而不是作为限制,该系数可以用于为用户生成广告,其中可以向用户呈现其关于广告对象具有高总体系数的广告。在特定实施例中,社交网络1660可以基于系数信息来生成搜索结果。可以基于与关于查询用户的搜索结果相关联的系数来对特定用户的搜索结果进行评分或排序。作为示例而不是作为限制,对应于具有较高系数的对象的搜索结果在搜索结果页面上的排名可以高于对应于具有较低系数的对象的结果。

在特定实施例中,社交网络系统1660可以响应于来自特定系统或过程的系数请求来计算系数。为了预测用户在给定情况下可能采取的行动(或者可能是其主题),任何过程都可以向用户请求计算出的系数。该请求还可以包括用于计算系数的各种因素一组权重。该请求可以来自在在线社交网络上运行的进程、来自第三方系统1670(例如,经由API或其他通信渠道)或者来自另一个合适的系统。响应于该请求,社交网络系统1660可以计算系数(或者如果先前已经计算并存储了系数信息,则访问系数信息)。在特定实施例中,社交网络系统1660可以度量关于特定过程的亲和力。不同的过程(在在线社交网络的内部和外部)可以请求特定对象或对象集的系数。社交网络系统1660可以提供与请求了亲和力的度量的特定过程相关的亲和力的度量。以这种方式,每个过程接收针对不同上下文定制的亲和力度量,其中该过程将使用亲和力度量。

结合社交图亲和力和亲和力系数,特定实施例可以利用在2006年8月11日提交的美国专利申请号11/503093、2010年12月22日提交的美国专利申请号12/977027、2010年12月23日提交的美国专利申请号12/978265和2012年10月1日提交的美国专利申请号13/632869号中公开的一个或更多个系统、组件、元件、功能、方法、操作或步骤,其中每个专利申请通过引用被并入本文。

在特定实施例中,计算系统的一个或更多个对象(例如,内容或其他类型的对象)可以与一个或更多个隐私设置相关联。一个或更多个对象可以存储在任何合适的计算系统或应用上或者以其他方式与任何合适的计算系统或应用相关联,这些计算系统或应用是例如社交网络系统1660、客户端系统1630、第三方系统1670、社交网络应用、消息传递应用、照片共享应用或者任何其他合适的计算系统或应用。尽管本文讨论的示例是在在线社交网络的上下文中,但是这些隐私设置可以应用于任何其他合适的计算系统。对象的隐私设置(或“访问设置”)可以以任何合适的方式——诸如例如,与对象相关联地、以在授权服务器上的索引、以另一种合适的方式或其任何合适的组合——存储。对象的隐私设置可以指定如何可以在在线社交网络中访问、存储或以其他方式使用(例如,查看、共享、修改、复制、执行、显现(surfaced)或识别)该对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其他实体访问该对象时,该对象可以被描述为相对于该用户或其他实体是“可见的”。作为示例而不是作为限制,在线社交网络的用户可以指定关于用户简档页面的隐私设置,该隐私设置识别可以访问在用户简档页面上的工作经历信息的一组用户,因而排除其他用户访问该信息。

在特定实施例中,对象的隐私设置可以指定不应当被允许访问与对象相关联的某些信息的用户或其他实体的“黑名单(blocked list)”。在特定实施例中,黑名单可以包括第三方实体。黑名单可以指定一个或更多个用户或实体,对象对这些用户或实体是不可见的。作为示例而非限制,用户可以指定一组不能访问与该用户相关联的相册的用户,从而排除这些用户访问相册(同时也可能允许不在指定用户群组内的某些用户访问相册)。在特定实施例中,隐私设置可以与特定社交图元素相关联。社交图元素(例如节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图元素、与社交图元素相关联的信息、或与社交图元素相关联的对象。作为示例而不是作为限制,对应于特定照片的特定概念节点1704可以具有指定照片仅可以由在照片中标记的用户以及在照片中标记的用户的朋友访问的隐私设置。在特定实施例中,隐私设置可以使用户允许或不允许使他们的内容、信息或行动被社交网络系统1660存储/记录或与其他系统(例如第三方系统1670)共享。尽管本公开描述了以特定方式使用特定隐私设置,但是本公开设想了以任何合适的方式使用任何合适的隐私设置。

在特定实施例中,隐私设置可以基于社交图1700的一个或更多个节点或边。可以为社交图1700的一条或更多条边1706或边类型、或者关于社交图1700的一个或更多个节点1702、1704或节点类型,指定隐私设置。应用于关连两个节点的特定边1706的隐私设置可以控制对应于这两个节点的两个实体之间的关系对于在线社交网络的其他用户是否可见。类似地,应用于特定节点的隐私设置可以控制对应于该节点的用户或概念对于在线社交网络的其他用户是否可见。作为示例而不是作为限制,第一用户可以向社交网络系统1660共享对象。该对象可以与通过边1706关连到第一用户的用户节点1702的概念节点1704相关联。第一用户可以指定应用于关连到对象的概念节点1704的特定边1706的隐私设置,或者可以指定应用于关连到概念节点1704的所有边1706的隐私设置。作为另一个示例而不是作为限制,第一用户可以共享特定对象类型的对象集合(例如,图像集合)。第一用户可以针对与第一用户相关联的该特定对象类型的所有对象将隐私设置指定为具有特定的隐私设置(例如,指定由第一用户发布的所有图像仅对第一用户的朋友和/或在图像中标记的用户可见)。

在特定实施例中,社交网络系统1660可以向第一用户呈现“隐私向导(privacywizard)”(例如,在网页、模块、一个或更多个对话框或任何其他合适的界面内),以帮助第一用户指定一个或更多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于接受来自第一用户的指定隐私设置的改变或确认的一个或更多个输入的一个或更多个输入字段、或其任何合适的组合。在特定实施例中,社交网络系统1660可以向第一用户提供“仪表板(dashboard)”功能,该功能可以向第一用户显示第一用户的当前隐私设置。仪表板功能可以在任何适当的时间向第一用户显示(例如,在来自调用仪表板功能的第一用户的输入之后,在特定事件或触发行动发生之后)。仪表板功能可以允许第一用户在任何时间以任何合适的方式修改第一用户的一个或更多个当前隐私设置(例如,将第一用户重定向到隐私向导)。

与对象相关联的隐私设置可以指定允许访问或访问拒绝的任何合适的粒度。作为示例而不是作为限制,可以为特定用户(例如,只有我、我的室友、我的老板)、在特定分离度内的用户(例如,朋友、朋友的朋友)、用户群组(例如,游戏俱乐部、我的家人)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公众”)、无用户(“私人的”)、第三方系统1670的用户、特定应用(例如,第三方应用、外部网站)、其他合适的实体、或其任何合适的组合来指定访问或拒绝访问。尽管本公开描述了允许访问或拒绝访问的特定粒度,但是本公开考虑了允许访问或拒绝访问的任何合适粒度。

在特定实施例中,一个或更多个服务器1662可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的对存储在数据储存器1664中的特定对象的请求,社交网络系统1660可以向数据储存器1664发送对该对象的请求。请求可以识别与该请求相关联的用户,并且对象只有在授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象时才可以被发送给该用户(或者该用户的客户端系统1630)。如果请求用户未被授权访问该对象,则授权服务器可以阻止所请求的对象从数据储存器1664中被检索,或者可以阻止所请求的对象被发送给用户。在搜索-查询上下文中,只有当查询用户被授权访问对象时,例如,如果对象的隐私设置允许它显现给查询用户、被查询用户发现或以其他方式对查询用户可见,对象才可以被提供作为搜索结果。在特定实施例中,对象可以表示通过用户的动态消息对用户可见的内容。作为示例而非限制,一个或更多个对象对于用户的“趋势”页面可以是可见的。在特定实施例中,对象可以对应于特定用户。对象可以是与特定用户相关联的内容,或者可以是特定用户的账户或存储在社交网络系统1660或其他计算系统上的信息。作为示例而不是作为限制,第一用户可以通过在线社交网络的“你可能认识的人(People You May Know)”功能或者通过查看第一用户的朋友列表来查看在线社交网络的一个或更多个第二用户。作为示例而不是作为限制,第一用户可以指定他们不希望在他们的动态消息或朋友列表中看到与特定第二用户相关联的对象。如果对象的隐私设置不允许其被显露给用户、被用户发现或对用户可见,则该对象可以从搜索结果中排除。尽管本公开描述了以特定方式实施隐私设置,但是本公开设想了以任何合适的方式实施隐私设置。

在特定实施例中,与用户相关联的相同类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可能具有不同类型的隐私设置。作为示例而非限制,第一用户可以指定第一用户的状态更新是公开的,但是第一用户共享的任何图像仅对在线社交网络上的第一用户的朋友可见。作为另一个示例而非限制,用户可以为不同类型的实体(例如个人用户、朋友的朋友、关注者、用户群组或公司实体)指定不同的隐私设置。作为另一示例而非限制,第一用户可以指定可以观看由第一用户发布的视频的一组用户,同时防止视频对第一用户的雇主可见。在特定实施例中,可以为不同的用户群组或用户人口统计提供不同的隐私设置。作为示例而非限制,第一用户可以指定与第一用户上同一所大学的其他用户可以观看第一用户的照片,但是作为第一用户的家庭成员的其他用户不可以观看那些相同的照片。

在特定实施例中,社交网络系统1660可以为特定对象类型的每个对象提供一个或更多个默认隐私设置。设置为默认的对象的隐私设置可以由与该对象相关联的用户来改变。作为示例而非限制,由第一用户发布的所有图像可以具有仅对第一用户的朋友可见的默认隐私设置,并且对于特定图像,第一用户可以将该图像的隐私设置改变为对朋友和朋友的朋友可见。

在特定示例中,隐私设置可以允许第一用户(例如,通过允许、通过不允许)指定社交网络系统1660是否可以为了任何目的接收、收集、记录或存储与用户相关联的特定对象或信息。在特定实施例中,隐私设置可以允许第一用户指定特定应用或进程是否可以访问、存储或使用与用户相关联的特定对象或信息。隐私设置可以使第一用户允许或不允许使对象或信息被特定应用或进程访问、存储或使用。社交网络系统1660可以访问这样的信息,以便向第一用户提供特定的功能或服务,而社交网络系统1660不为了任何其他目的而访问该信息。在访问、存储或使用这样的对象或信息之前,社交网络系统1660可以在允许任何这样的行动之前提示用户提供隐私设置,该隐私设置指定哪些应用或进程(如果有的话)可以访问、存储或使用对象或信息。作为示例而不是作为限制,第一用户可以经由与在线社交网络相关的应用(例如消息传递app)向第二用户传输消息,并且可以指定这样的消息不应被社交网络系统1660存储的隐私设置。

在特定示例中,用户可以指定与第一用户相关联的特定类型的对象或信息是否可以由社交网络系统1660访问、存储或使用。作为示例而不是作为限制,第一用户可以指定由第一用户通过社交网络系统1660发送的图像不可以由社交网络系统1660存储。作为另一个示例而不是作为限制,第一用户可以指定从第一用户发送给特定的第二用户的消息不可以由社交网络系统1660存储。作为又一个示例而不是作为限制,第一用户可以指定经由特定应用发送的所有对象可以由社交网络系统1660保存。

在特定实施例中,隐私设置可以允许第一用户指定是否可以从特定客户端系统1630或第三方系统1670访问与第一用户相关联的特定对象或信息。隐私设置可以使第一用户允许或不允许从特定设备(例如,用户的智能手机上的电话簿)、从特定应用(例如,消息传递app)或从特定系统(例如,电子邮件服务器)访问对象或信息。社交网络系统1660可以提供关于每个设备、系统或应用的默认隐私设置,和/或第一用户可以被提示为每个上下文指定特定的隐私设置。作为示例而不是作为限制,第一用户可以利用社交网络系统1660的位置服务特征来提供对在用户附近的餐馆或其他地方的推荐。第一用户的默认隐私设置可以指定社交网络系统1660可以使用从第一用户的客户端设备1630提供的位置信息来提供基于位置的服务,但是社交网络系统1660不可以存储第一用户的位置信息或者将它提供到任何第三方系统1670。第一用户然后可以更新隐私设置,以允许第三方图像共享应用使用位置信息,以便对照片进行地理标记。

在特定实施例中,隐私设置可以允许用户参与在线社交网络上的对象的短暂共享。短暂共享是指在有限的时间段内共享对象(如帖子、照片)或信息。可以通过时间或日期来指定对对象或信息的访问或拒绝访问。作为示例而非限制,用户可以指定由用户上传的特定图像在接下来的一周内对用户的朋友可见,在这段时间之后该图像对于其他用户可不再是可访问的。作为另一个示例而非限制,公司可以在正式发布之前发布与产品发行相关的内容,并指定该内容直到产品发布之后才可以对其他用户可见。

在特定实施例中,对于具有指定它们是暂时的隐私设置的特定对象或信息,社交网络系统1660可以在它对这些对象或信息的访问、存储或使用方面被限制。社交网络系统1660可以临时访问、存储或使用这些特定对象或信息,以便便于与对象或信息相关联的用户的特定行动,并且可以随后删除对象或信息,如由相应的隐私设置所指定的。作为示例而不是限制,第一用户可以向第二用户传输消息,并且社交网络系统1660可以将该消息临时存储在数据储存器1664中,直到第二用户已经查看或下载了该消息为止,此时社交网络系统1660可以从数据储存器1664删除该消息。作为另一个示例而不是作为限制,继续前面的示例,消息可以被存储指定的时间段(例如2周),在该时间段之后,社交网络系统1660可以从数据储存器1664删除该消息。

在特定实施例中,隐私设置可以允许用户指定可以从其访问对象的一个或更多个地理位置。对对象的访问或拒绝访问可取决于试图访问对象的用户的地理位置。作为示例而非限制,用户可以共享对象并指定只有同一城市中的用户可以访问或查看该对象。作为另一个示例而非限制,第一用户可以共享对象,并且指定只有当第一用户在特定位置时,该对象才对第二用户是可见的。如果第一用户离开该特定位置,则对象可不再对第二用户是可见的。作为另一示例而非限制,第一用户可以指定对象仅对在距第一用户的阈值距离内的第二用户可见。如果第一用户随后改变位置,则原始具有对对象的访问权的第二用户可能会失去访问权,而新的一组第二用户可能会在他们到达第一用户的阈值距离内时获得访问权。

图18示出了示例计算机系统1800。在特定实施例中,一个或更多个计算机系统1800执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统1800提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统1800上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统1800的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。

本公开设想了任何合适数量的计算机系统1800。本公开设想了计算机系统1800采取任何合适的物理形式。作为示例而不是作为限制,计算机系统1800可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统1800可以包括一个或更多个计算机系统1800;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云组件。在适当的情况下,一个或更多个计算机系统1800可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统1800可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统1800可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。

在特定实施例中,计算机系统1800包括处理器1802、存储器1804、存储装置1806、输入/输出(I/O)接口1808、通信接口1810和总线1812。尽管本公开描述并示出了具有在特定布置中的特定数量的特定组件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适组件的任何合适的计算机系统。

在特定实施例中,处理器1802包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器1802可以从内部寄存器、内部高速缓存、存储器1804或存储装置1806中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器1804或存储装置1806。在特定实施例中,处理器1802可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器1802包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器1802可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器1804或存储装置1806中的指令的副本,并且指令高速缓存可以加速处理器1802对那些指令的获取。在数据高速缓存中的数据可以是:在存储器1804或存储装置1806中的数据的副本,用于使在处理器1802处执行的指令进行操作;在处理器1802处执行的先前指令的结果,用于由在处理器1802处执行的后续指令访问或者用于写到存储器1804或存储装置1806;或其他合适的数据。数据高速缓存可以加速由处理器1802进行的读或写操作。TLB可以加速关于处理器1802的虚拟地址转译。在特定实施例中,处理器1802可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器1802包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1802可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器1802。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。

在特定实施例中,存储器1804包括用于存储用于使处理器1802执行的指令或用于使处理器1802操作的数据的主存储器。作为示例而不是作为限制,计算机系统1800可以将指令从存储装置1806或另一个源(例如,另一个计算机系统1800)加载到存储器1804。处理器1802然后可以将指令从存储器1804加载到内部寄存器或内部高速缓存。为了执行指令,处理器1802可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器1802可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器1802然后可以将这些结果中的一个或更多个写到存储器1804。在特定实施例中,处理器1802仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器1804(而不是存储装置1806或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器1804(而不是存储装置1806或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器1802耦合到存储器1804。如下所述,总线1812可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器1802和存储器1804之间,并且便于由处理器1802请求的对存储器1804的访问。在特定实施例中,存储器1804包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器1804可以包括一个或更多个存储器1804。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。

在特定实施例中,存储装置1806包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置1806可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置1806可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置1806可以在计算机系统1800的内部或外部。在特定实施例中,存储装置1806是非易失性固态存储器。在特定实施例中,存储装置1806包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置1806。在适当的情况下,存储装置1806可以包括便于在处理器1802和存储装置1806之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置1806可以包括一个或更多个存储装置1806。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。

在特定实施例中,I/O接口1808包括为在计算机系统1800和一个或更多个I/O设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统1800可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统1800之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想任何合适的I/O设备以及用于它们的任何合适的I/O接口1808。在适当的情况下,I/O接口1808可以包括使处理器1802能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口1808可以包括一个或更多个I/O接口1808。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。

在特定实施例中,通信接口1810包括提供用于在计算机系统1800和一个或更多个其他计算机系统1800或一个或更多个网络之间的通信(例如,基于包的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口1810可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口1810。作为示例而不是作为限制,计算机系统1800可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统1800可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统1800可以包括用于这些网络中的任一个的任何合适的通信接口1810。在适当的情况下,通信接口1810可以包括一个或更多个通信接口1810。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。

在特定实施例中,总线1812包括将计算机系统1800的组件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线1812可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线1812可以包括一个或更多个总线1812。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。

在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。

本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。

本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号