CN111226262A - 合成动画 - Google Patents

合成动画 Download PDF

Info

Publication number
CN111226262A
CN111226262A CN201780095595.5A CN201780095595A CN111226262A CN 111226262 A CN111226262 A CN 111226262A CN 201780095595 A CN201780095595 A CN 201780095595A CN 111226262 A CN111226262 A CN 111226262A
Authority
CN
China
Prior art keywords
image
user
animation
images
social
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
CN201780095595.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
Facebook 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 Facebook Inc filed Critical Facebook Inc
Publication of CN111226262A publication Critical patent/CN111226262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在一个实施例中,一种方法包括接收由一个或更多个相机捕获的至少两个图像,其中,该至少两个图像中的第一图像具有主体,并且该至少两个图像中的第二图像包括与第一图像不同的地理位置的视角;识别该至少两个图像共有的对象;基于第一图像中的对象和第二图像中的对象之间的尺寸和形状的差异来计算图像之间的视角差异;基于视角差异生成从第一图像到第二图像的过渡的动画,其中,动画包括第一图像和第二图像,并且其中,动画将主体的修改版本添加到第二图像。

Description

合成动画
技术领域
本公开总体上涉及生成从两个或更多个不同视角描绘图像的动画。
背景
可以包括社交网络网站的社交网络系统可以使它的用户(例如个人或组织)能够与它互动以及通过它彼此互动。社交网络系统可以用来自用户的输入来创建并在社交网络系统中存储与用户相关联的用户简档(user profile)。用户简档可以包括人口统计信息、通信渠道信息以及关于用户的个人兴趣的信息。社交网络系统还可以用来自用户的输入来创建并存储用户与社交网络系统的其他用户的关系的记录,以及提供服务(例如,发帖墙(wall post)、照片分享、事件组织、消息传送、游戏或广告)以便于在用户之间或当中的社交互动。
社交网络系统可以通过一个或更多个网络向用户的移动设备或其他计算设备发送与它的服务相关的内容或消息。用户还可以在用户的移动设备或其他计算设备上安装软件应用,用于访问用户的用户简档和在社交网络系统内的其他数据。社交网络系统可以生成一组个性化的内容对象以显示给用户,例如聚集了关连(connect)到该用户的其他用户的动态(story)的动态消息(newsfeed)。
移动计算设备(例如智能手机、平板计算机或膝上型计算机)可以包括用于确定它的位置、方向或定向的功能,例如GPS接收器、罗盘、陀螺仪或加速度计。这种设备还可以包括用于无线通信(例如蓝牙通信、近场通信(NFC)、或红外(IR)通信、或与无线局域网(WLAN)或蜂窝电话网络的通信)的功能。这种设备还可以包括一个或更多个相机、扫描仪、触摸屏、麦克风或扬声器。移动计算设备还可以执行软件应用,例如游戏、web浏览器或社交网络应用。使用社交网络应用,用户可以与他们的社交网络中的其他用户关连、交流和分享信息。
特定实施例的概述
在特定实施例中,一个或更多个计算设备可以基于两个或更多个图像创建合成动画(composited animation),其中,该动画包括转换视角动画(shifting-perspectiveanimation)。作为这种合成动画及可以生成合成动画的过程的示例而非限制,第一用户可以在华盛顿州西雅图市的太空针塔(Space Needle)顶部捕获自己的人像图像(例如进行“自拍”)。用户可以以任何合适的方式触发用于生成合成(或转换视角)动画过程的过程。作为响应,通信系统(例如,社交网络系统)可以生成转换视角动画。继续该示例,转换视角动画可以包括用户在太空针塔顶部的自拍图像,并且然后可以显示其中用户的视图缩小的动画,使得用户的照片看起来是从距太空针塔的平台100英尺远处拍摄的。捕获动画中最后一帧的相机可以看起来漂浮在半空中或者附接到飞行的无人机。因此,动画可以以从第一视角拍摄的用户图像开始,并以看起来从不同视角拍摄的用户图像结束。这可能是本公开将动画称为“转换视角动画”的原因。通信系统可以通过以下操作来创建转换视角动画:(1)接收开始生成转换视角动画的过程的触发;(2)接收由一个或更多个相机捕获的至少两个图像,其中,该至少两个图像中的第一图像包括主体(subject),并且该至少两个图像中的第二图像包括与第一图像不同的地理位置的视角;(3)从该至少两个图像中识别该至少两个图像共有的对象;(4)至少部分地基于第一图像中的对象和第二图像中的几何对象之间的尺寸和形状的差异,来计算该至少两个图像之间的视角差异;(5)基于视角差异生成动画,以示出从第一图像到第二图像的过渡,其中,动画包括第一图像和第二图像,并且其中,动画将主体的修改版本添加到第二图像;以及(6)向用户的客户端系统发送指示,以在客户端系统的显示屏上显示动画。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些或没有一个被包括。根据本发明的实施例在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中被具体公开,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
附图简述
图1A-图1D示出了示例转换视角动画。
图2示出了可以用于创建转换视角动画的三个示例图像。
图3示出了用于基于一个或更多个用户生成的图像来生成转换视角动画的示例方法。
图4示出了与社交网络系统相关联的示例网络环境。
图5示出了示例社交图。
图6示出了示例计算机系统。
示例实施例的描述
在特定实施例中,一个或更多个计算设备可以基于两个或更多个图像创建动画,其中,该动画包括转换视角动画。在特定实施例中,一个或更多个计算设备可以是由通信系统或社交网络系统维护的服务器端计算机器。在特定实施例中,一个或更多个计算设备可以是与通信系统或社交网络系统的一个或更多个用户相关联的一个或更多个客户端系统。作为示例而非限制,第一用户可以在华盛顿州西雅图市的太空针塔顶部捕获自己的人像图像(例如进行“自拍”)。用户可以以任何合适的方式触发用于生成转换视角动画过程的过程。作为响应,通信系统(例如,社交网络系统)可以生成转换视角动画。继续该示例,转换视角动画可以包括用户在太空针塔顶部的自拍图像,并且然后可以显示其中用户的视图缩小的动画,使得用户的照片看起来是从距太空针塔的平台100英尺远处拍摄的。捕捉动画中最后一帧的相机可以看起来漂浮在半空中或者附接到飞行的无人机。因此,动画可以以从第一视角拍摄的用户图像开始,并以看起来从不同视角拍摄的用户图像结束。这可能是本公开将动画称为“转换视角动画”的原因。通信系统可以通过以下操作来创建转换视角动画:(1)接收开始生成转换视角动画的过程的触发;(2)接收由一个或更多个相机捕获的至少两个图像,其中,该至少两个图像中的第一图像包括主体,并且该至少两个图像中的第二图像包括与第一图像不同的地理位置的视角;(3)从该至少两个图像中识别该至少两个图像共有的对象;(4)至少部分地基于第一图像中的对象和第二图像中的几何对象之间的尺寸和形状的差异来计算该至少两个图像之间的视角差异;(5)基于视角差异生成动画,以示出从第一图像到第二图像的过渡,其中,动画包括第一图像和第二图像,并且其中,动画将主体的修改版本添加到第二图像;以及(6)向用户的客户端系统发送指示,以在客户端系统的显示屏上显示动画(例如,显示为动画对象)。动画对象可以被理解为包括动画的内容对象,该动画可以是转换视角动画。动画对象可以与社交网络数据相关联,社交网络数据为例如用户互动,其可以在用户与动画对象互动时被显示(例如,赞(like)、反应(reaction)、分享和评论可以连同与动画对象互动的用户的用户名一起被显示)。尽管本公开描述了由社交网络系统执行的各种方法和过程,但是本公开设想了本文描述的方法和过程由任何合适的通信网络执行,而不一定由社交网络系统执行。尽管本公开将生成的动画讨论为转换视角动画,但是生成的动画也可以被认为是合成动画,因为动画通常可以由两个或更多个图像构成。因此,“合成动画”和“转换视角动画”都可以被认为是指从两个或更多个图像生成的动画。
图1A-图1D示出了示例转换视角动画。图1A示出了示例图像。在特定实施例中,该图像可以由用户拍摄并发送到社交网络系统。该图像可以由用户直接拍摄(例如,“自拍”),或者可以由第三方(例如,另一个人或场地内的相机)拍摄。该图像可以用作转换视角动画中的第一图像。图1B和图1C可以是示例“动画”图像,其是由社交网络系统响应于触发而生成的动画的一部分。尽管本公开示出了两个示例动画图像,但是本公开设想了包括更多个图像(例如二十个或更多个图像)的转换视角动画。这些中间图像可以由社交网络系统生成,以显示第一图像和最后一个图像之间的平滑过渡。在该示例中,最后一个图像是图1D。这可以是用户发送到社交网络系统的第二图像,或者可以是用户或不同的用户或实体先前上传的第二图像。作为示例而非限制,太空针塔的管理员可能已经上传了图1D的图像(不具有用户110)作为营销材料的一部分,或者用于在转换视角动画中使用它的明确目的。尽管本公开描述了具有特定图像的特定转换视角动画,但是本公开设想了具有任何合适图像的任何合适的转换视角动画。
在特定实施例中,社交网络系统可以接收开始生成转换视角动画的过程的触发。开始生成转换视角动画的过程的触发可以是任何合适的动作,包括通过将图像发布到在线社交网络并提供特定的#标签(hashtag)作为评论、通过用户位于特定地理区域或通过任何其他合适的方式,来向被编程为接收图像并促进动画模板过程的专用机器人(bot)发送消息。作为示例而非限制,图像可以是Alex站在华盛顿州西雅图市的太空针塔顶部的自拍。在用户通过提供特定的#标签来触发动画模板过程的示例中,Alex可以将图像与#标签#SpaceNeedleSelfie一起发送到社交网络系统,该标签可以是由社交网络系统指定的触发用于生成转换视角动画的过程的#标签。在特定实施例中,照片可以由场地内相机而不是与用户相关联的客户端系统拍摄。在这种情况下,场地内相机可以被设置在拍摄照片的位置。场地内相机可以与矩阵条形码(例如,二维码(QR CODE))相关联,用户可以扫描矩阵条形码并将其发送到社交网络系统。在特定实施例中,当用户的客户端系统向社交网络系统发送矩阵条形码时,或者在特定实施例中,当用户的客户端系统移动到无线信标的阈值接近度内时,自动消息传送机器人可以简单地创建与用户和社交网络系统的互消息线程。当用户将条形码发送到社交网络系统,或者以其他方式正确地触发过程时,场地内相机可以捕获图像并将图像发送到社交网络系统进行处理。尽管本公开描述了以特定方式从客户端系统接收图像,但是本公开设想了以任何合适的方式从客户端系统接收图像。
在特定实施例中,用于开始动画模板过程的触发可以在社交网络系统没有接收到图像的情况下进行。在特定实施例中,当用户的客户端系统位于距无线信标设备(例如,蓝牙设备、Wi-Fi路由器)阈值距离内时,可以触发动画模板过程。社交网络系统可以检测用户在海报或其他内容项目或媒体空间(media space)的阈值距离内。可以通过GPS数据或通过蓝牙或其他NFC检测进行检测。作为示例而非限制,社交网络系统可以接收用户刚刚连接了与媒体空间或内容项目相关联的蓝牙或Wi-Fi信号的指示。在特定实施例中,当社交网络系统接收到触发时,它可以向用户发送通知或消息,邀请用户开始动画模板过程。作为示例而非限制,用户Amy可以来到在太空针塔顶部处的无线信标设备的阈值距离(例如,25英尺)内。社交网络系统可以使用本文描述的任何一种或更多种方法来检测这一点,并且可以向与Amy相关联的客户端系统发送消息。消息可以说:“Amy,拍张‘不可能的自拍(ImpossibleSelfie)’来与你的朋友们分享吧。回复是以获取指示。”可选择地,Amy可以通过轻击(tap)消息上的适当图标来选择接收更多指示。如果Amy选择接收更多的指示,则社交网络系统可以指示她为转换视角动画适当地定位自己。作为示例而非限制,社交网络系统可以向Amy的客户端系统发送指示,该指示说:“双脚站在太空针塔西北角的‘X’上,面朝外。”然后,社交网络系统可以指示Amy拍摄照片或短视频,或者它可以指示Amy为通过场地内相机拍摄的照片摆姿势。尽管本公开描述了以特定方式实施的特定动画过程,但是本公开设想了以任何合适的方式实施的任何合适的动画过程。
在特定实施例中,社交网络系统可以接收由一个或更多个相机捕获的至少两个图像,其中,该至少两个图像中的第一图像包括主体,并且该至少两个图像中的第二图像包括与第一图像不同的地理位置的视角。第一图像可以是由在线社交网络的用户生成的图像。第一图像可以包括主体,且主体可以是在线社交网络的用户。作为示例而非限制,第一图像可以是用户Amy站在华盛顿州西雅图市的太空针塔顶部的自拍图像。作为另一个示例而非限制,第一图像可以是用户的狗在加利福尼亚州亨廷顿海滩市(Huntington Beach)的亨廷顿海滩码头(Huntington Beach Pier)上的图像。在特定实施例中,第一图像可以包括是对象的主体,例如餐馆中的食品或者沿着太平洋海岸高速公路(Pacific Coast Highway)行驶的车辆。在特定实施例中,第二图像可以包括与第一图像不同的地理位置的视角。第二图像可以与第一图像同时或接近同时被拍摄,或者可以在第一图像之前(例如,在拍摄第一图像之前一个月、一年或甚至50年)被拍摄。继续上面的示例,第二图像可以是在与太空针塔顶部相同的高度处距太空针塔100英尺远处拍摄的太空针塔的图像。作为另一个示例,第二图像可以是在码头上方50英尺的高度处距码头150英尺远处拍摄的亨廷顿海滩码头的图像。这种图像可以是通过无人机或直升机拍摄的。作为另一个示例而非限制,第二图像可以是在200英尺的高度处拍摄的太平洋海岸高速公路的鸟瞰图(具有或不具有第一图像中的汽车)。在特定实施例中,第二图像不需要与第一图像位于相同的位置。生成的转换视角动画可以转换到完全不同的位置。作为示例而非限制,第一图像可以是用户在太空针塔顶部的自拍图像,而第二图像可以是同一用户站在埃及的金字塔前的自拍图像。为了更容易理解,下表总结了这些示例。
表1:示例第一图像和第二图像
Figure BDA0002436955530000071
在特定实施例中,社交网络系统可以从至少两个图像中识别该至少两个图像共有的对象。可以使用对象识别来进行识别。对象可以采取几何形状的形式(例如,矩形窗户),或者可以不具有任何特定形状(例如,岩石)。作为示例而非限制,对象可以是位于太空针塔上的用户后面或前面的矩形。在特定实施例中,对象可以包括包含多边形的平坦前表面。平坦表面可以是墙板或窗户或任何其他合适的平坦表面。如果对象不具有任何定义的类似多边形的形状,社交网络系统仍可以使用该对象来创建转换视角动画。作为示例而非限制,如果第一图像是用户在约书亚树国家公园(Joshua Tree National Park)的自拍图像,并且图像中仅有的对象是岩石和仙人掌,而第二图像是约书亚树的岩层的航摄照片,其仅包括岩石和仙人掌,则社交网络系统可以识别该至少两个图像共有的特定岩石。注意,如果两个图像是不同位置的图像(例如上面示例4中的位置),社交网络系统不会识别两个图像共有的对象。社交网络系统可以使用与图像相关联的、指定图像拍摄地点的元数据(例如,地理标签)来做出这一决定。尽管本公开描述了以特定方式识别对象,但是本公开设想了以任何合适的方式识别对象。
在特定实施例中,社交网络系统可以至少部分地基于第一图像中的对象和第二图像中的几何对象之间的尺寸和形状的差异来计算至少两个图像之间的视角差异。视角差异可以通过测量至少两个图像共有的对象的一个或更多个部分之间的尺寸差异来被确定。作为示例而非限制,参考图1A-图1D,对象可以是位于主体110附近的矩形之一。对象可以在图1A中占据100×300个像素,而在图1D中占据10×30个像素。社交网络系统可以使用该信息来计算在最终图像和中间图像中渲染主体时的视角差异。继续该示例,社交网络系统可以将主体110缩放10倍,并且向中间动画(例如,包括中间动画的图像)提供也被适当缩放的对象。在特定实施例中,对主体的缩放、斜置(angle)和任何其他修改可以被称为主体的变换。换句话说,如果主体已经被“变换”,则主体可能已经被缩放、可能已经被倾斜、或者可能已经被缩放且倾斜。倾斜可以意味着图像可以被处理成使得主体看起来已经相对于捕获图像的相机以一定角度被定位。这通过图2和伴随的讨论被示出并讨论。作为示例而非限制,社交网络系统可以生成20帧,这20帧可以包括在图1A和图1D之间显示的动画。每一帧可以将主体和背景(例如,构成太空针塔的对象)显示为按连续缩放因子缩小(例如,每一帧将图像和背景显示成比它前一帧小5%)。每一帧的缩放可以产生动画,该动画看起来是从图1A中描绘的场景“缩小”直到它到达图1D描绘的场景。在特定实施例中,计算可能不仅仅涉及直接缩小。作为示例而非限制,第一图像可以是从特定角度(例如,正前方(straight-on))拍摄的,而第二图像可以是在同一位置但以不同的角度(例如,以45°的角度偏移)拍摄的。社交网络系统可以通过计算第一图像中的对象和第二图像中的对象之间的差异来确定两个角度之间的差异。作为示例而非限制,从正前方拍摄的矩形可能具有平行的上边(topside)和下边(bottom side),并且左边和右边可能具有相同的长度。然而,从45°的角度拍摄的矩形可能具有歪斜的(skewed)上边和上边,并且左边和右边可能看起来具有不同的长度。作为示例而非限制,图2示出了同一张哈利波特(Harry Potter)海报的三张不同照片。海报220可以是从正前方拍摄的,而海报210和230可以是以不同的角度拍摄的。这可以说明社交网络系统可以通过计算海报210、220和230的外观之间的差异来计算的视角差异。尽管本公开描述了以特定方式计算两个图像之间的视角差异,但是本公开设想了以任何合适的方式计算两个图像之间的视角差异。
在特定实施例中,社交网络系统可以基于视角差异生成动画,以示出从第一图像到第二图像的过渡,其中,动画包括第一图像和第二图像,并且其中,动画将主体的修改版本添加到第二图像。动画可以包括作为动画中第一个图像的第一图像和作为动画中最后一个图像的第二图像。可选择地,动画可以倒放(例如,如同图1A-图1D的示例图像的“放大”),其中,第二图像是动画中的第一个图像,而第一图像是动画中的最后一个图像。动画可以包括基于第一图像或基于第二图像或者基于第一图像和第二图像两者的多个中间图像。中间图像可以被连续地显示,以便显示动画中第一个图像和动画中最后一个图像之间的平滑过渡。它们可以以足够快的帧速率(例如,每秒30帧)被显示,以示出平滑过渡。动画可以包括主体的修改版本。主体的修改版本可以是主体的缩放版本(如图1B、图1C和图1D所示),或者可以是主体的倾斜版本(如下面讨论的图2中的哈利波特图所示)。在特定实施例中,如果基于第一图像和第二图像之间的视角差异是合适的,动画可以包括已经被缩放且倾斜的主体。尽管本公开描述了以特定方式生成动画,但是本公开设想了以任何合适的方式生成动画。
在特定实施例中,社交网络系统可以调整第一图像和第二图像之间的差异,或者如果转换视角动画是基于两个以上图像生成的,则调整每个图像之间的差异。社交网络系统可以进行的调整包括照明调整、景深调整、饱和度调整、白平衡调整、ISO调整或任何其他合适的调整。对第一图像或第二图像(或任何其他图像,如果适用的话)进行这样的调整的目的可以是创建逼真且统一的动画。作为示例而非限制,用户Amy可以在多云天在太空针塔顶部拍摄自己的照片。这可以是“第一图像。”“第二图像”可以是在Amy捕获第一图像之前数月拍摄的,且第二图像可以显示在100英尺远处但在晴天的太空针塔。因此,这两个图像在照明、色彩、ISO等方面具有差异。社交网络系统可以分析每个图像并对一个或两个图像进行调整,使得它们的照明、色彩、ISO、白平衡等看起来类似。因此,转换视角动画中产生的图像可以看起来都是在同一天在同一环境中捕获的。在特定实施例中,确定需要进行的调整的一种方式可以是在几个不同类别中的每个类别中计算照片之间的平均值,然后调整每张照片以基本上匹配每个类别中的平均值。作为示例而非限制,第一图像可以是具有以下值的RGB照片:红色:24;绿色:102;蓝色:68。第二图像可以是具有以下值的RGB照片:红色:16;绿色:111;蓝色:74。因此,第一图像和第二图像之间的平均色彩平衡可以是红色:20;绿色:106(从106.5向下取整);以及蓝色:71。可以对其他类别(例如白平衡和ISO水平)执行类似的过程。尽管本公开描述了以特定方式调整图像中的差异,但是本公开设想了以任何合适的方式调整图像中的差异。
图2示出了可以用于生成转换视角动画的三个示例图像。在特定实施例中,转换视角动画可以包括视角的改变。视角的改变可以被理解为意指在动画序列期间,感知的相机角度看起来从第一视点移动到至少一个其他视点。在图2的示例中,海报210描绘了《哈利波特》电影海报,其看起来是从电影海报的左侧拍摄的。海报220描绘了《哈利波特》电影海报,其看起来是直接从电影海报的前面拍摄的。海报230描绘了《哈利波特》电影海报,其看起来是从电影海报的右侧拍摄的。社交网络系统可以要求用户发送第一图像和至少一个其他图像,以便生成具有变化视角的动画,或者社交网络系统可以使用计算机图形渲染技术从单个图像生成具有变化视角的动画。在特定实施例中,社交网络系统可以接收第一图像。作为示例而非限制,社交网络系统可以接收如海报220所示的《哈利波特》电影海报的图像。在特定实施例中,社交网络系统可以从客户端系统接收第二图像,其中,第二图像是从与第一图像不同的视角捕获的。作为示例而非限制,社交网络系统可以接收如海报210所示的《哈利波特》电影海报的图像。在特定实施例中,社交网络系统可以从至少两个图像中识别该至少两个图像共有的几何对象。作为示例而非限制,海报210和海报220共有的几何对象可以是电影海报的轮廓(例如矩形)。在特定实施例中,社交网络系统可以至少部分地基于第一图像中的几何对象和第二图像中的几何对象之间的尺寸和形状的差异来计算至少两个图像之间的视角差异。作为示例而非限制,社交网络系统可以处理海报210和220所描绘的两个图像,以确定这两个图像之间的视角差是45°。换句话说,如果发送用户在她捕获海报220所描绘的图像时正站在电影海报的正前方,那么发送用户站在电影海报左侧几英尺处使得产生的视角变化为45°。在特定实施例中,社交网络系统可以基于视角差异生成转换视角动画,以显示从第一图像到第二图像的过渡,其中,转换视角动画包括第一图像、第二图像和动画。动画可以包括几个图像,这些图像显示了看起来是从第一图像到第二图像的平滑过渡,就好像图像捕获设备正以围绕主体旋转的方式捕获主体的视频一样。尽管本公开描述了以特定方式生成动画,但是本公开设想了以任何合适的方式生成动画。
在特定实施例中,社交网络系统可以向用户的客户端系统发送指示,以在客户端系统的显示屏上显示动画。用户可以将动画保存到她的客户端系统,或者她可以将其发布到在线社交网络。用户也可以将动画发送给她的朋友。尽管本公开描述了以特定方式向客户端系统发送指示,但是本公开设想了以任何合适的方式向客户端系统发送指示。
在特定实施例中,社交网络系统可以检测它为与第一用户是朋友或者以其他方式与第一用户共享一级关连(first-degree connection)的另一用户生成过类似的动画。如果两个动画共享地理位置或者包括相同的主体(例如,一组用户中的同一用户),则它们可以是类似的。作为示例而非限制,社交网络系统可以确定它为与用户Amy是朋友的另一用户Jacob生成过动画,并且它为Jacob和Amy创建的动画共享共同的位置:华盛顿州西雅图市的太空针塔。响应于这一确定,社交网络系统可以向Amy和Jacob中任一个人或两个人发送消息,向他们通知他们的朋友之一生成了相同的动画。作为示例而非限制,给Jacob的信息可以写道:“Jacob,你的朋友Amy也在太空针塔拍摄了一张不可能的自拍。轻击查看它。”这可以增加用户对在线社交网络的参与度。尽管本公开描述了以特定方式检测类似的动画,但是本公开设想了以任何合适的方式检测类似的动画。
在特定实施例中,社交网络系统可以跟踪针对给定地理位置生成的所有动画。作为示例而非限制,社交网络系统可以对针对太空针塔、埃及的金字塔、自由女神像、犹他州(Utah)拱门国家公园(Arches National Park)的玲珑拱门(Delicate Arch)以及用于转换视角动画的任何数量的附加位置生成了多少转换视角动画进行计数。社交网络系统另外可以跟踪与帖子相关联的一个或更多个用户参与度度量,该帖子包括针对每个离散位置的转换视角动画。用户参与度可以由特定内容对象具有的边连接的数量来度量。作为示例而非限制,用户参与度度量可以是帖子拥有的赞的总数、照片拥有的分享的数量或者任何合适的内容对象的任何其他合适的度量。包括转换视角动画的帖子可以被认为是内容对象。如下面解释的,当在线社交网络的其他用户点赞、评论、分享内容对象或以其他方式与内容对象互动时,可以形成边连接。社交网络系统可以跟踪与帖子相关联的位置,该帖子包括具有最多的边连接并因此具有最大的用户参与度的转换视角动画。社交网络系统可以识别与具有高用户参与度(例如,超过连接的阈值数量的边连接数量)的转换视角动画相关联的一个或更多个地理位置。一旦识别出这些位置,社交网络系统可以访问用户的社交图,以确定向用户发送关于在流行地理位置处创建转换视角动画的推荐。作为示例而非限制,社交网络系统可以确定大盆地红木森林(Big Basin Redwood Forest)与具有高水平的用户参与度的转换视角动画相关联(例如,对应于包括大盆地红木森林中的转换视角动画的帖子的节点平均每个超过100个边连接)。社交网络系统可以访问用户的社交图,并确定用户正计划在一周内参加名为“在大盆地的天际线到大海(Hike Skyline to Sea at Big Basin)徒步”的活动。由此,社交网络系统可以确定用户将位于大盆地红木森林。作为响应,社交网络系统可以通过遵循本文解释的过程向用户发送制作转换视角动画的推荐。例如,信息可以写道:“Kevin,当你下周末在大盆地时,拍一张不可能的自拍。点击(click)此处查看如何操作。”可选择地,社交网络系统可以等待发送消息,直到用户在大盆地红木森林附近时才发送消息。尽管本公开描述了以特定方式跟踪与转换视角动画相关的信息,但是本公开设想了以任何合适的方式跟踪与转换视角动画相关的信息。
在特定实施例中,社交网络系统可以将其他动画应用于转换视角动画。其他动画可以是“特殊效果”,例如改变文本、闪烁的灯光或任何其他合适的动画。动画可以通过社交网络系统搜索动画模板的数据库来被确定。在特定实施例中,一种方法可以提供来将一个或更多个动画模板应用于图像或视频。在特定实施例中,社交网络系统的用户可以捕获图像或视频,并将其发送到社交网络系统进行处理(例如,如本文讨论的第一图像)。社交网络系统可以分析图像或视频,并识别图像内的媒体空间。媒体空间可以具有一个或更多个内容项目。社交网络系统可以识别这些内容项目,并且基于下列项将一个或更多个动画模板应用于图像或视频:(1)识别出的内容项目和(2)与捕获图像或视频并将其发送到社交网络系统的用户相关联的社交网络数据。然后,社交网络系统可以向用户发送动画。作为示例而非限制,用户Tim可以拍摄包括内容项目的媒体空间的照片。在该示例中,媒体空间可以是墙,内容项目可以是阿诺德·施瓦辛格(Arnold Schwarzenegger)主演的电影《终结者》的电影海报。Tim可以将这张照片作为消息或者通过将其发布到由社交网络系统维护的在线社交网络上来发送到社交网络系统。社交网络系统可以分析照片并(例如,经由对象识别)识别它包含《终结者》电影海报。社交网络系统可能已经在它的服务器上存储了与《终结者》电影海报相关联的一个或更多个动画模板。如果对于《终结者》电影只有一个动画模板可用,则社交网络系统可以选择该动画模板并将其应用于电影海报所位于的图像上的位置中的图像。在该示例中,动画模板可以包括位于电影海报角落的闪烁激光以及周期性地闪烁的红色终结者眼睛。动画模板还可以包括写着“我会回来的。”的闪烁的文本。社交网络系统可以将动画模板应用于《终结者》电影海报所在区域中的照片,使得电影海报看起来具有激光、闪烁的红色眼睛和变化的文本。社交网络系统可以将图像和动画模板作为单个动画对象发送给用户。然后,用户可以将动画对象发布到在线社交网络、将动画对象发送给朋友、或者利用动画对象执行任何其他合适的功能。尽管本公开描述了以特定方式将特定动画应用于转换视角动画,但是本公开设想了以任何合适的方式将任何合适的动画应用于转换视角动画。
在特定实施例中,第一图像可以是在人口稠密的地区拍摄的。例如,太空针塔经常在它最上面的平台附近有几十个人。结果,第一图像或第二图像中可能有人群。对于希望生成转换视角动画的用户来说,这可能是不期望的。因此,社交网络系统可以采用从图像中去除人群的技术。社交网络系统可以经由面部识别软件识别用户,然后去除面部与用户的面部不匹配的人。在特定实施例中,社交网络系统可以“众包(crowd-source)”第一图像或第二图像。众包图像可表示拍摄同一地理位置的若干个图像,以创建其中没有额外的人的合成图像,或者去除了不想要的元素(例如电线杆、电话线)的合成图像。在特定实施例中,社交网络系统可以使用与在线社交网络相关联地存储的图像来生成更好的转换视角动画,其比仅使用第一图像和第二图像可能生成的转换视角动画更好。作为示例而非限制,可能有几千张金门大桥(Golden Gate Bridge)的图片通过社交网络系统被存储或与社交网络系统相关联地被存储。社交网络系统可以采用所有这些图像,并创建金门大桥的360°视角。转换视角动画可以从用户站在金门大桥上的第一图像开始,并且可以继续显示金门大桥的缩小动画以及大桥的360°环绕视图(circling view)。这可以通过利用上传到在线社交网络的金门大桥的全部照片来创建。尽管本公开描述了以特定方式生成特定动画,但是本公开设想了以任何合适的方式生成任何合适的动画。
在特定实施例中,社交网络系统可以通过使用从房间中的不同位置捕获的图像来生成转换视角动画。为了说明这一概念,设想是用户的生日。用户可以有生日蛋糕。相机可以放置在生日蛋糕上,就好像它是蜡烛之一。社交网络系统可以使用面部识别来识别用户何时接近生日蛋糕(例如,以吹灭蜡烛)。当它检测到用户正在接近生日蛋糕时,社交网络系统可以向相机发送开始记录的指示。当用户吹灭蜡烛时,第二用户可以拍摄生日用户的照片。该照片可以从任何角度(例如,在用户的正前方,从侧面)拍摄。由生日蛋糕上的相机拍摄的照片可以是第一图像,而由第二用户拍摄的照片可以是第二图像。然后,社交网络系统可以生成从第一图像过渡到第二图像的转换视角动画。作为另一个示例而非限制,设想去一家餐馆或其他有包间(private room)或半包间(semi-private room)的地方。房间的墙壁、桌子等上可以装有几台相机。相机可以在整个晚上定期拍摄照片和视频。在特定实施例中,相机可以由笑声或其他合适的触发器触发。社交网络系统可以拍摄这些照片和视频,并生成一个或更多个转换视角动画,每个动画包括在晚间捕获的一个或更多个图像和视频。在特定实施例中,两个以上相机可以捕获多个图像。在这种情况下,转换视角动画可以包括从一侧到另一侧的放大、缩小或平移。转换视角动画还可以包括倾斜效果、三维效果或利用从多个角度拍摄的对象或场景的多个图像可能制作成的任何其他合适的效果。作为示例而非限制,当相机捕获了很多图像时,社交网络系统可以在装有几台相机的餐馆中确定对象和人之间的距离。社交网络系统可以使用这一信息来创建环境的三维渲染,并生成一个或更多个具有三维效果的转换视角动画。尽管本公开描述了以特定方式生成特定动画,但是本公开设想了以任何合适的方式生成任何合适的动画。
图3示出了用于基于一个或更多个用户生成的图像来生成转换视角动画的示例方法300。该方法可以从步骤310开始,在步骤310,社交网络系统可以接收由一个或更多个相机捕获的地理位置的至少两个图像,其中,该至少两个图像中的第一图像包括主体,并且该至少两个图像中的第二图像包括与第一图像不同的地理位置的视角。在步骤320,社交网络系统可以从该至少两个图像中识别该至少两个图像共有的对象。在步骤330,社交网络系统可以至少部分地基于第一图像中的对象和第二图像中的几何对象之间的尺寸和形状的差异来计算该至少两个图像之间的视角差异。在步骤340,社交网络系统可以基于视角差异生成动画,以示出从第一图像到第二图像的过渡,其中,动画包括第一图像和第二图像,并且其中,动画将主体的修改版本添加到第二图像。在步骤350,社交网络系统可以向用户的客户端系统发送指示,以在客户端系统的显示屏上显示动画。在适当的情况下,特定实施例可以重复图3的方法的一个或更多个步骤。尽管本公开将图3的方法的特定步骤描述并示出为以特定的顺序出现,但本公开设想了图3的方法的任何合适的步骤以任何合适的顺序出现。此外,尽管本公开描述并示出了用于基于一个或更多个用户生成的图像创建转换视角动画的示例方法,其包括图3的方法的特定步骤,但是本公开设想了用于基于一个或更多个用户生成的图像创建转换视角动画的任何合适的方法,其包括任何合适的步骤,在适当情况下可以包括图3的方法的所有、一些步骤或不包括任何步骤。此外,尽管本公开描述并示出了执行图3的方法的特定步骤的特定部件、设备或系统,但本公开设想了执行图3的方法的任何合适步骤的任何合适部件、设备或系统的任何合适组合。
图4示出了与社交网络系统相关联的示例网络环境400。网络环境400包括通过网络410连接到彼此的客户端系统430、社交网络系统460和第三方系统470。尽管图4示出了客户端系统430、社交网络系统460、第三方系统470和网络410的特定布置,但本公开设想了客户端系统430、社交网络系统460、第三方系统470和网络410的任何合适的布置。作为示例而不是作为限制,客户端系统430、社交网络系统460和第三方系统470中的两个或更多个可以直接连接到彼此,绕过网络410。作为另一示例,客户端系统430、社交网络系统460和第三方系统470中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,尽管图4示出了特定数量的客户端系统430、社交网络系统460、第三方系统470和网络410,但本公开设想了任何合适数量的客户端系统430、社交网络系统460、第三方系统470和网络410。作为示例而不是作为限制,网络环境400可以包括多个客户端系统430、社交网络系统460、第三方系统470和网络410。
本公开设想了任何合适的网络410。作为示例而不是作为限制,网络410的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网或这些中的两个或更多个的组合。网络410可以包括一个或更多个网络410。
链路450可以将客户端系统430、社交网络系统460和第三方系统470连接到通信网络410或连接到彼此。本公开设想了任何合适的链路450。在特定实施例中,一个或更多个链路450包括一个或更多个有线(例如数字用户线路(DSL)或基于电缆的数据服务接口规范(DOCSIS))链路、无线(例如Wi-Fi或全球互通微波接入(WiMAX))链路、或光(例如同步光网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或更多个链路450各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路450、或两个或更多个这种链路450的组合。链路450不需要在整个网络环境400中是相同的。一个或更多个第一链路450可以在一个或更多个方面上不同于一个或更多个第二链路450。
在特定实施例中,客户端系统430可以是包括硬件、软件或嵌入式逻辑部件、或两个或更多个这样的部件的组合,并且能够执行由客户端系统430实现或支持的适当功能的电子设备。作为示例而不是作为限制,客户端系统430可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、相机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或其任何合适的组合。本公开设想了任何合适的客户端系统430。客户端系统430可以使在客户端系统430处的网络用户能够访问网络410。客户端系统430可以使它的用户能够与在其他客户端系统430处的其他用户进行通信。
在特定实施例中,客户端系统430可以包括web浏览器432,例如MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或更多个附加件、插件或其他扩展件,例如TOOLBAR或YAHOO TOOLBAR。在客户端系统430处的用户可以输入统一资源定位符(URL)或将web浏览器432引导到特定的服务器(例如服务器462或与第三方系统470相关联的服务器)的其他地址,并且web浏览器432可以生成超文本传输协议(HTTP)请求并将HTTP请求传递到服务器。服务器可以接受HTTP请求,并响应于HTTP请求而向客户端系统430传递一个或更多个超文本标记语言(HTML)文件。客户端系统430可以基于来自服务器的HTML文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的脚本、标记语言和脚本(例如AJAX(异步JAVASCRIPT和XML))的组合等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。
在特定实施例中,社交网络系统460可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统460可以例如生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统460可以由网络环境400的其他部件直接地或经由网络410来访问。作为示例而不是作为限制,客户端系统430可以使用web浏览器432或与社交网络系统460相关联的本机(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络410来访问社交网络系统460。在特定实施例中,社交网络系统460可以包括一个或更多个服务器462。每个服务器462可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器462可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器462可以包括硬件、软件或嵌入式逻辑部件、或用于执行由服务器462实现或支持的适当功能的两个或更多个这样的部件的组合。在特定实施例中,社交网络系统460可以包括一个或更多个数据储存器464。数据储存器464可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器464中的信息。在特定实施例中,每个数据储存器464可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统430、社交网络系统460或第三方系统470能够管理、检索、修改、添加或删除存储在数据储存器464中的信息的接口。
在特定实施例中,社交网络系统460可以在一个或更多个数据储存器464中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及连接节点的多条边。社交网络系统460可以向在线社交网络的用户提供与其他用户通信和互动的能力。在特定实施例中,用户可以经由社交网络系统460加入在线社交网络,且然后将关连(connection)(例如,关系)添加到社交网络系统460中的他们想要关连到的多个其他用户。在本文,术语“朋友”可以指社交网络系统460的任何其他用户,用户经由社交网络系统460与任何其他用户形成关连、关联(association)或关系。
在特定实施例中,社交网络系统460可以向用户提供对由社交网络系统460支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统460的用户可以属于的组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的互动、或其他合适的项目或对象。用户可以与能够在社交网络系统460中或者由第三方系统470的外部系统表示的任何事物进行互动,第三方系统470与社交网络系统460分离并且经由网络410耦合到社交网络系统460。
在特定实施例中,社交网络系统460能够链接各种实体。作为示例而不是作为限制,社交网络系统460可以使用户能够彼此互动以及从第三方系统470或其他实体接收内容,或者允许用户通过应用编程接口(API)或其他通信渠道与这些实体互动。
在特定实施例中,第三方系统470可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于API)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的部件(例如,服务器可以与这些部件通信)。第三方系统470可以由与操作社交网络系统460的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统460和第三方系统470可以结合彼此来操作以向社交网络系统460或第三方系统470的用户提供社交网络服务。在这个意义上,社交网络系统460可以提供平台或骨干网,其他系统(例如第三方系统470)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。
在特定实施例中,第三方系统470可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传递到客户端系统430的内容对象的一个或更多个源。作为示例而不是作为限制,诸如,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。
在特定实施例中,社交网络系统460还包括用户生成的内容对象,其可以增强用户与社交网络系统460的互动。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统460的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统430传送到社交网络系统460。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如动态消息或流)来添加到社交网络系统460。
在特定实施例中,社交网络系统460可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统460可以包括下列项中的一个或更多个:web服务器、动作记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器、第三方内容储存器或位置储存器。社交网络系统460还可以包括合适的部件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或其任何合适的组合。在特定实施例中,社交网络系统460可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、喜好或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“点赞”关于一种品牌的鞋的文章,该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络410将社交网络系统460链接到一个或更多个客户端系统430或一个或更多个第三方系统470。web服务器可以包括邮件服务器或用于在社交网络系统460和一个或更多个客户端系统430之间接收并按规定路线发送消息的其他消息传送功能。API请求服务器可以允许第三方系统470通过调用一个或更多个API来访问来自社交网络系统460的信息。动作记录器可以用于从web服务器接收关于用户在社交网络系统460上或之外的动作的通信。结合动作日志,可以维护对第三方内容对象的用户暴露的第三方内容对象日志。通知控制器可以向客户端系统430提供关于内容对象的信息。信息可以作为通知被推送到客户端系统430,或者信息可以响应于从客户端系统430接收的请求而从客户端系统430中被拉取。授权服务器可以用于实施社交网络系统460的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。授权服务器可以例如通过设置适当的隐私设置来允许用户决定加入或决定退出使他们的动作由社交网络系统460记录或者与其他系统(例如,第三方系统470)分享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统470)接收的内容对象。位置储存器可以用于存储从与用户相关联的客户端系统430接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。
图5示出了示例社交图500。在特定实施例中,社交网络系统460可以在一个或更多个数据储存器中存储一个或更多个社交图500。在特定实施例中,社交图500可以包括多个节点——其可以包括多个用户节点502或多个概念节点504——以及连接这些节点的多条边506。为了教导目的,在二维视觉地图表示中示出了在图5中示出的示例社交图500。在特定实施例中,社交网络系统460、客户端系统430或第三方系统470可以访问社交图500和相关社交图信息以用于合适的应用。社交图500的节点和边可以作为数据对象被存储在例如数据储存器(例如社交图数据库)中。这种数据储存器可以包括社交图500的节点或边的一个或更多个可搜索或可查询的索引。
在特定实施例中,用户节点502可以对应于社交网络系统460的用户。作为示例而不是作为限制,用户可以是与社交网络系统460或通过社交网络系统460互动或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)团体。在特定实施例中,当用户向社交网络系统460注册账户时,社交网络系统460可以创建对应于用户的用户节点502,并将用户节点502存储在一个或更多个数据储存器中。本文描述的用户和用户节点502在适当的情况下可以指注册的用户和与注册的用户相关联的用户节点502。另外或作为备选方案,在适当的情况下,本文描述的用户和用户节点502可以指没有向社交网络系统460注册的用户。在特定实施例中,用户节点502可以与由用户提供的信息或由各种系统(包括社交网络系统460)收集的信息相关联。作为示例而不是作为限制,用户可以提供他或她的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点502可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点502可以对应于一个或更多个网页。
在特定实施例中,概念节点504可以对应于概念。作为示例而不是作为限制,概念可以对应于地点(例如,电影院、餐馆、陆标或城市);网站(例如,与社交网络系统460相关联的网站或与web应用服务器相关联的第三方网站);实体(例如,个人、企业、团体、运动队或名人);资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用),其可以位于社交网络系统460内或外部服务器(例如web应用服务器)上;不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;在增强/虚拟现实环境中的对象;另一个合适的概念;或者两个或更多个这样的概念。概念节点504可以与由用户提供的概念的信息或由各种系统(包括社交网络系统460)收集的信息相关联。作为示例而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点504可以与对应于与概念节点504相关联的信息的一个或更多个数据对象相关联。在特定实施例中,概念节点504可以对应于一个或更多个网页。
在特定实施例中,社交图500中的节点可以表示网页(其可以被称为“简档页面”)或者由网页表示。简档页面可以由社交网络系统460托管或是社交网络系统460可访问的。简档页面也可以在与第三方系统470相关联的第三方网站上被托管。作为示例而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点504。简档页面可以由其他用户的全部或选定子集可查看。作为示例而不是作为限制,用户节点502可以具有相应的用户简档页面,其中相应的用户可以添加内容、做出声明或以其他方式表达他或她自己。作为另一示例而不是作为限制,概念节点504可以具有相应的概念简档页面,其中一个或更多个用户可以添加内容、做出声明或表达他们自己,特别是关于对应于概念节点504的概念。
在特定实施例中,概念节点504可以表示由第三方系统470托管的第三方网页或资源。第三方网页或资源除了其它元素以外还可以包括表示动作或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用JavaScript、AJAX或PHP代码实现)。作为示例而不是作为限制,第三方网页可以包括可选择的图标(例如“赞”、“签到”、“吃”、“推荐”)或其他合适的动作或活动。查看第三方网页的用户可以通过选择图标之一(例如,“签到”)来执行动作,使客户端系统430向社交网络系统460发送指示用户的动作的消息。响应于该消息,社交网络系统460可以在对应于用户的用户节点502和对应于第三方网页或资源的概念节点504之间创建边(例如,签到类型边),并将边506存储在一个或更多个数据储存器中。
在特定实施例中,社交图500中的一对节点可以通过一条或更多条边506连接到彼此。连接一对节点的边506可以表示在该对节点之间的关系。在特定实施例中,边506可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为示例而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统460可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统460可以在社交图500中创建将第一用户的用户节点502连接到第二用户的用户节点502的边506,并将边506作为社交图信息存储在一个或更多个数据储存器464中。在图5的示例中,社交图500包括指示在用户“A”和用户“B”的用户节点502之间的朋友关系的边506,以及指示在用户“C”和用户“B”的用户节点502之间的朋友关系的边。尽管本公开描述或示出了连接特定用户节点502的具有特定属性的特定边506,但是本公开设想了连接用户节点502的具有任何适当属性的任何适当边506。作为示例而不是作为限制,边506可以表示友谊、家庭关系、商业或雇佣关系、粉丝关系(包括例如,赞等)、关注者关系、访问者关系(包括例如,访问、查看、签到、分享等)、订购者关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系、或两种或更多种这样的关系。此外,尽管本公开一般将节点描述为被连接,但是本公开也将用户或概念描述为被连接。在本文,对被连接的用户或概念的引用在适当的情况下可以指对应于在社交图500中由一条或更多条边506连接的那些用户或概念的节点。
在特定实施例中,在用户节点502和概念节点504之间的边506可以表示由与用户节点502相关联的用户朝着与概念节点504相关联的概念执行的特定动作或活动。作为示例而不是作为限制,如图5所示,用户可以“赞”、“出席”、“播放”、“收听”、“烹饪”、“工作”或“观看”概念,其中每个可以对应于边类型或子类型。对应于概念节点504的概念简档页面可以包括例如可选择的“签到”图标(例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统460可以响应于对应于相应动作的用户动作来创建“收藏夹”边或“签到”边。作为另一示例而不是作为限制,用户(用户“C”)可以使用特定的应用(声田(SPOTIFY),其为在线音乐应用)来收听特定的歌曲(“想象(Imagine)”)。在这种情况下,社交网络系统460可以在对应于用户的用户节点502和对应于歌曲和应用的概念节点504之间创建“收听”边506和“使用”边(如图5所示),以指示用户收听了歌曲并使用了应用。此外,社交网络系统460可以在对应于歌曲和应用的概念节点504之间创建“播放”边506(如图5所示),以指示特定歌曲由特定应用播放。在这种情况下,“播放”边506对应于由外部应用(声田)对外部音频文件(歌曲“想象”)执行的动作。尽管本公开描述了连接用户节点502和概念节点504的具有特定属性的特定边506,但是本公开设想了连接用户节点502和概念节点504的具有任何适当属性的任何适当边506。此外,尽管本公开描述了表示单个关系的在用户节点502和概念节点504之间的边,但是本公开设想了表示一个或更多个关系的在用户节点502和概念节点504之间的边。作为示例而不是作为限制,边506可以表示用户喜欢并使用了特定概念。可选地,另一条边506可以表示在用户节点502和概念节点504之间(如图5所示,在用户“E”的用户节点502和“声田”的概念节点504之间)的每种类型的关系(或多个单一关系)。
在特定实施例中,社交网络系统460可以在社交图500中的用户节点502和概念节点504之间创建边506。作为示例而不是作为限制,查看概念简档页面的用户(例如,通过使用web浏览器或由用户的客户端系统430托管的专用应用)可以通过点击或选择“赞”图标来指示他或她喜欢由概念节点504表示的概念,这可以使用户的客户端系统430向社交网络系统460发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统460可以在与用户相关联的用户节点502和概念节点504之间创建边506,如由在用户和概念节点504之间的“赞”边506所示的。在特定实施例中,社交网络系统460可以将边506存储在一个或更多个数据储存器中。在特定实施例中,边506可以由社交网络系统460响应于特定用户动作而自动形成。作为示例而不是作为限制,如果第一用户上传图片、观看电影或收听歌曲,则可以在对应于第一用户的用户节点502和对应于那些概念的概念节点504之间形成边506。尽管本公开描述了以特定方式形成特定边506,但是本公开设想了以任何合适的方式形成任何合适的边506。
在特定实施例中,广告可以是文本(其可以是HTML链接的)、一个或更多个图像(其可以是HTML链接的)、一个或更多个视频、音频、其他合适的数字对象文件、这些的合适组合、或者在一个或更多个网页上、在一个或更多个电子邮件中或者结合由用户请求的搜索结果呈现的以任何合适的数字格式的任何其他合适的广告。另外或作为备选方案,广告可以是一个或更多个赞助动态(sponsored story)(例如,在社交网络系统460上的动态消息或即时动态栏(ticker item))。赞助动态可以是用户的社交动作(例如“点赞”页面、“点赞”或评论页面上的帖子、对与页面相关联的事件进行回复(RSVP)、对在页面上发布的问题进行投票、在某个地方签到、使用应用或玩游戏、或者“赞”或分享网站),广告商例如,通过使社交动作呈现在用户的简档页面或其他页面的预定区域内、与和广告商相关联的附加信息一起呈现、在其他用户的动态消息或即时动态中被提升顺序(bump up)或以其他方式突出显示来推广社交动作、或者以其他方式推广社交动作。广告商可以付费来推广社交动作。作为示例而不是作为限制,广告可以被包括在搜索结果页面的搜索结果当中,其中赞助内容优于非赞助内容被推广。
在特定实施例中,广告可以被请求用于在社交网络系统网页、第三方网页或其他页面中显示。广告可以显示在页面的专用部分中,例如在页面的顶部处的标语(banner)区域中、在页面的侧面处的栏中、在页面的GUI中、在弹出窗口中、在下拉菜单中、在页面的输入字段中、在页面的内容的顶部之上或相对于页面的其他地方。另外或作为备选方案,广告可以显示在应用中。广告可以显示在专用页面内,在用户可以访问页面或利用应用之前要求用户与广告互动或观看广告。用户可以例如通过web浏览器来观看广告。
用户可以以任何合适的方式与广告交互。用户可以点击或以其他方式选择广告。通过选择广告,用户可以被引导到(或由用户正在使用的浏览器或其他应用)与广告相关联的页面。在与广告相关联的页面处,用户可以采取额外的动作,例如购买与广告相关联的产品或服务、接收与广告相关联的信息、或者订阅与广告相关联的简讯。可以通过选择广告的部件(如“播放按钮”)来播放具有音频或视频的广告。可选地,通过选择广告,社交网络系统460可以执行或修改用户的特定动作。
广告还可以包括社交网络系统功能,用户可以与社交网络系统功能互动。作为示例而不是作为限制,广告可以使用户能够通过选择与赞同(endorsement)相关联的图标或链接来“点赞”或以其他方式来赞同该广告。作为另一示例而不是作为限制,广告可以使用户能够(例如,通过执行查询)搜索与广告商相关的内容。类似地,用户可以与另一用户(例如,通过社交网络系统460)分享广告或(例如,通过社交网络系统460)回复(RSVP)与广告相关联的事件。另外或作为备选方案,广告可以包括被引导到用户的社交网络系统内容。作为示例而不是作为限制,广告可以显示关于在社交网络系统460内的已经采取与广告的主题相关联的动作的用户的朋友的信息。
在特定实施例中,社交网络系统460可以确定各种社交图实体对彼此的社交图亲和力(social-graph affinity)(在本文可以被称为“亲和力”)。亲和力可以表示在与在线社交网络相关联的特定对象(例如用户、概念、内容、动作、广告)、与在线社交网络相关联的其他对象或其任何合适的组合之间的关系强度或兴趣水平。也可以关于与第三方系统470或其他合适的系统相关联的对象来确定亲和力。可以为每个用户、主题或内容类型建立对社交图实体的总体亲和力。基于对与社交图实体相关联的动作或关系的持续监测,总体亲和力可以改变。尽管本公开描述了以特定方式确定特定亲和力,但是本公开设想了以任何合适的方式确定任何合适的亲和力。
在特定实施例中,社交网络系统460可以使用亲和力系数(其在本文可以被称为“系数”)来测量或量化社交图亲和力。该系数可以表示或量化与在线社交网络相关联的特定对象之间的关系强度。该系数还可以表示基于用户对动作的兴趣来测量用户将执行特定动作的预测概率的概率或函数。以这种方式,可以基于用户的先前动作来预测用户的未来动作,其中可以至少部分地基于用户的动作的历史来计算系数。系数可以用于预测可以在线社交网络内或外部的任何数量的动作。作为示例而不是作为限制,这些动作可以包括各种类型的通信,例如发送消息、发布内容或对内容进行评论;各种类型的观察动作,例如访问或查看简档页面、媒体或其他合适的内容;关于两个或更多个社交图实体的各种类型的重合信息,例如在同一组中、在同一照片中被标记、在同一位置处签到或参加同一事件;或其他合适的动作。尽管本公开描述了以特定方式测量亲和力,但是本公开设想了以任何合适的方式测量亲和力。
在特定实施例中,社交网络系统460可以使用各种因素来计算系数。这些因素可以包括例如用户动作、对象之间的关系类型、位置信息、其他合适的因素或其任何组合。在特定实施例中,当计算系数时,不同的因素可以被不同地加权。每个因素的权重可以是静态的,或者权重可以根据例如用户、关系的类型、动作的类型、用户的位置等而改变。可以根据因素的权重来组合这些因素的评级,以确定用户的总体系数。作为示例而不是作为限制,特定用户动作可以被分配等级和权重,而与特定用户动作相关联的关系被分配等级和相关权重(例如,因此权重总计为100%)。为了计算用户对特定对象的系数,分配给用户的动作的等级可以包括例如总系数的60%,而在用户和对象之间的关系可以包括总系数的40%。在特定实施例中,当确定用于计算系数的各种因素的权重时,社交网络系统460可以考虑各种变量,例如自信息被访问以来的时间、衰减因子、访问频率、与信息的关系或与对象(关于该对象的信息被访问)的关系、与连接到对象的社交图实体的关系、用户动作的短期或长期平均值、用户反馈、其他合适的变量或其任何组合。作为示例而不是作为限制,系数可以包括衰减因子,该衰减因子使由特定动作提供的信号的强度随时间而衰减,使得在计算系数时更近的动作更相关。等级和权重可以基于系数所基于的动作的持续跟踪而被持续地更新。可以采用任何类型的过程或算法来分配、组合、平均等每个因素的等级和分配给这些因素的权重。在特定实施例中,社交网络系统460可以使用根据历史动作和过去的用户响应而训练的机器学习算法或者使用通过将用户暴露于各种选项并测量响应而从用户那里传送(farm)的数据来确定系数。尽管本公开描述了以特定方式计算系数,但是本公开设想了以任何合适的方式计算系数。
在特定实施例中,社交网络系统460可以基于用户的动作来计算系数。社交网络系统460可以在在线社交网络上、在第三方系统470上、在其他合适的系统上或其任何组合监测这些动作。可以跟踪或监测任何合适类型的用户动作。典型的用户操作包括查看简档页面、创建或发布内容、与内容交互、在图像中标记或被标记在图像中、加入群组、列出并确认事件出席情况、在不同地点签到、点赞特定页面、创建页面以及执行有助于社交动作的其他任务。在特定实施例中,社交网络系统460可以基于用户对特定类型内容的动作来计算系数。内容可以与在线社交网络、第三方系统470或另一个合适的系统相关联。内容可以包括用户、简档页面、帖子、新闻动态(news stories)、标题、即时消息、聊天室会话、电子邮件、广告、图片、视频、音乐、其他合适的对象或其任何组合。社交网络系统460可以分析用户的动作以确定一个或更多个动作是否指示对主题、内容、其他用户等的亲和力。作为示例而不是作为限制,如果用户频繁发布与“咖啡”或其变形相关的内容,则社交网络系统460可以确定用户关于概念“咖啡”具有高系数。特定的动作或特定类型的动作可以被分配比其他动作更高的权重和/或等级,这可能影响整体计算的系数。作为示例而不是作为限制,如果第一用户向第二用户发送电子邮件,则该动作的权重或等级可能比如果第一用户简单地查看第二用户的用户简档页面更高。
在特定实施例中,社交网络系统460可以基于在特定对象之间的关系类型来计算系数。参考社交图500,社交网络系统460可以在计算系数时分析连接特定用户节点502和概念节点504的边506的数量和/或类型。作为示例而不是作为限制,通过配偶型(spouse-type)边连接的用户节点502(表示两个用户已婚)可以被分配比通过朋友型边连接的用户节点502更高的系数。换句话说,根据分配给特定用户的动作和关系的权重,可以确定对于关于用户的配偶的内容的总体亲和力比对于关于用户的朋友的内容的总体亲和力更高。在特定实施例中,用户与另一个对象的关系可以影响关于计算该对象的系数的用户动作的权重和/或等级。作为示例而不是作为限制,如果用户在第一张照片中被标记但仅仅赞第二张照片,则社交网络系统460可以确定用户关于第一张照片具有比第二张照片更高的系数,因为具有与内容的标记类型关系可以被分配比具有与内容的赞类型关系更高的权重和/或等级。在特定实施例中,社交网络系统460可以基于一个或更多个第二用户与特定对象的关系来计算第一用户的系数。换句话说,其他用户与对象的关连和系数可能影响该对象的第一用户的系数。作为示例而不是作为限制,如果第一用户关连到一个或更多个第二用户或者对于一个或更多个第二用户具有高系数,并且那些第二用户关连到特定对象或者对于特定对象具有高系数,则社交网络系统460可以确定第一用户对于特定对象也应当具有相对高的系数。在特定实施例中,系数可以基于在特定对象之间的分离度。较低的系数可以表示第一用户将与在社交图500中间接地关连到的第一用户的用户分享内容对象的兴趣的降低的可能性。作为示例而不是作为限制,在社交图500中更靠近(即,分离度更少)的社交图实体可以比在社交图500中更远离的实体具有更高的系数。
在特定实施例中,社交网络系统460可以基于位置信息来计算系数。地理上彼此靠近的对象可以被认为比更远的对象彼此更相关或更感兴趣。在特定实施例中,用户对特定对象的系数可以基于对象的位置与和用户相关联的当前位置(或用户的客户端系统430的位置)的接近度。第一用户可能对更接近第一用户的其他用户或概念更感兴趣。作为示例而不是作为限制,如果用户距机场1英里且距加油站2英里,则社交网络系统460可以基于机场与用户的接近度来确定用户对机场比对加油站有更高的系数。
在特定实施例中,社交网络系统460可以基于系数信息来执行关于用户的特定动作。系数可以用于基于用户对动作的兴趣来预测用户是否将执行特定动作。当生成或向用户呈现任何类型的对象(例如广告、搜索结果、新闻动态、媒体、消息、通知或其他合适的对象)时,可以使用系数。该系数也可以被用来适当地对这样的对象进行排列(rank)和排序(order)。以这种方式,社交网络系统460可以提供与用户的兴趣和当前环境相关的信息,增加了他们找到这种感兴趣的信息的可能性。在特定实施例中,社交网络系统460可以基于系数信息来生成内容。可以基于特定于用户的系数来提供或选择内容对象。作为示例而不是作为限制,该系数可以用于为用户生成媒体,其中可以向用户呈现用户关于媒体对象具有高总体系数的媒体。作为另一示例而不是作为限制,该系数可以用于为用户生成广告,其中可以向用户呈现其关于广告对象具有高总体系数的广告。在特定实施例中,社交网络系统460可以基于系数信息来生成搜索结果。可以基于与关于查询用户的搜索结果相关联的系数来对特定用户的搜索结果进行评分或排序。作为示例而不是作为限制,对应于具有较高系数的对象的搜索结果在搜索结果页面上的排名可以高于对应于具有较低系数的对象的结果。
在特定实施例中,社交网络系统460可以响应于来自特定系统或过程的系数的请求来计算系数。为了预测用户在给定情况下可能采取的动作(或者可能是其主题),任何过程都可以向用户请求计算出的系数。该请求还可以包括用于计算系数的各种因素一组权重。该请求可以来自在在线社交网络上运行的进程、来自第三方系统470(例如,经由API或其他通信渠道)或者来自另一个合适的系统。响应于该请求,社交网络系统460可以计算系数(或者如果系数信息先前已经被计算并存储,则访问该系数信息)。在特定实施例中,社交网络系统460可以测量关于特定过程的亲和力。不同的过程(在在线社交网络的内部和外部)可以请求特定对象或对象集的系数。社交网络系统460可以提供与请求亲和力度量的特定过程相关的亲和力度量。以这种方式,每个过程接收针对不同上下文定制的亲和力度量,其中该过程将使用亲和力度量。
结合社交图亲和力以及亲和力系数,特定实施例可以利用在2006年8月11日提交的第11/503093号美国专利申请、2010年12月22日提交的第12/977027号美国专利申请、2010年12月23日提交的第12/978265号美国专利申请和2012年10月1日提交的第13/632869号美国专利申请中公开的一个或更多个系统、部件、元件、功能、方法、操作或步骤,这些专利申请中的每一个通过引用被并入。
图6示出了示例计算机系统600。在特定实施例中,一个或更多个计算机系统600执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统600提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统600上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统600的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
本公开设想了任何合适数量的计算机系统600。本公开设想了计算机系统600采取任何合适的物理形式。作为示例而不是作为限制,计算机系统600可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统600可以包括一个或更多个计算机系统600;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统600可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统600可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统600可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机系统600包括处理器602、存储器604、存储装置606、输入/输出(I/O)接口608、通信接口610和总线612。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器602包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器602可以从内部寄存器、内部高速缓存、存储器604或存储装置606中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器604或存储装置606。在特定实施例中,处理器602可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器602包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器602可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器604或存储装置606中的指令的副本,并且指令高速缓存可以加速处理器602对那些指令的检索。在数据高速缓存中的数据可以是在存储器604或存储装置606中的数据的副本,用于使在处理器602处执行的指令进行操作;在处理器602处执行的先前指令的结果,用于由在处理器602处执行的后续指令访问或者用于写到存储器604或存储装置606;或其他合适的数据。数据高速缓存可以加速由处理器602进行的读或写操作。TLB可以加速关于处理器602的虚拟地址转换。在特定实施例中,处理器602可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器602包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器602可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器602。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器604包括用于存储用于使处理器602执行的指令或用于使处理器602操作的数据的主存储器。作为示例而不是作为限制,计算机系统600可以将指令从存储装置606或另一个源(例如,另一个计算机系统600)加载到存储器604。处理器602然后可以将指令从存储器604加载到内部寄存器或内部高速缓存。为了执行指令,处理器602可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器602可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器602然后可以将这些结果中的一个或更多个写到存储器604。在特定实施例中,处理器602仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器604(与存储装置606相对或其它地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器604(与存储装置606相对或其它地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器602耦合到存储器604。如下所述,总线612可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器602和存储器604之间,并且便于由处理器602请求的对存储器604的访问。在特定实施例中,存储器604包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器604可以包括一个或更多个存储器604。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置606包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置606可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置606可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置606可以在计算机系统600的内部或外部。在特定实施例中,存储装置606是非易失性固态存储器。在特定实施例中,存储装置606包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置606。在适当的情况下,存储装置606可以包括便于在处理器602和存储装置606之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置606可以包括一个或更多个存储装置606。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口608包括为在计算机系统600和一个或更多个I/O设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统600可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统600之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触笔、平板计算机、触摸屏、跟踪球、视频相机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口608。在适当的情况下,I/O接口608可以包括使处理器602能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口608可以包括一个或更多个I/O接口608。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口610包括提供用于在计算机系统600和一个或更多个其他计算机系统600或一个或更多个网络之间的通信(例如,基于分组的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口610可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口610。作为示例而不是作为限制,计算机系统600可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统600可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统600可以包括用于这些网络中的任一个的任何合适的通信接口610。在适当的情况下,通信接口610可以包括一个或更多个通信接口610。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线612包括将计算机系统600的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线612可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(扩展)(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线612可以包括一个或更多个总线612。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的部件的引用包括该装置、系统、部件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或部件是如此被调整、被布置、有能力的、被配置、实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

Claims (20)

1.一种方法,所述方法包括通过服务器计算机器:
接收由一个或更多个相机捕获的至少两个图像,其中,所述至少两个图像中的第一图像包括主体,并且所述至少两个图像中的第二图像包括与所述第一图像不同的地理位置的视角;
从所述至少两个图像中识别所述至少两个图像共有的对象;
至少部分地基于所述第一图像中的对象和所述第二图像中的对象之间的尺寸和形状的差异来计算所述至少两个图像之间的视角差异;
基于所述视角差异生成动画以示出从所述第一图像到所述第二图像的过渡,其中,所述动画包括所述第一图像和所述第二图像,并且其中,所述动画将所述主体的修改版本添加到所述第二图像;和
向用户的客户端系统发送指示,以在所述客户端系统的显示屏上显示所述动画。
2.根据权利要求1所述的方法,其中,所述主体是在线社交网络的用户,所述方法还包括向该用户发送该用户的一级关连者已经接收到关于所述地理位置的动画的消息。
3.根据权利要求1所述的方法,其中,所述主体的所述修改版本已经基于所述视角差异进行了变换。
4.根据权利要求3所述的方法,其中,所述变换包括所述主体的缩放和所述主体的倾斜。
5.根据权利要求1所述的方法,其中,所述第一图像是由第一用户响应于发送给所述第一用户的、发送图像的提示而发送的,其中,所述提示基于与所述地理位置相关联的用户参与度度量而被发送。
6.根据权利要求1所述的方法,其中,所述至少两个图像共有的所述对象包括包含多边形的平坦前表面。
7.根据权利要求1所述的方法,其中,所述第二图像是从被发布到在线社交网络的多个图像创建的合成图像,其中,所述多个图像中的每个图像包括所述地理位置的一个视角。
8.体现软件的一个或更多个计算机可读非暂时性存储介质,所述软件在被执行时可操作来:
接收由一个或更多个相机捕获的至少两个图像,其中,所述至少两个图像中的第一图像包括主体,并且所述至少两个图像中的第二图像包括与所述第一图像不同的地理位置的视角;
从所述至少两个图像中识别所述至少两个图像共有的对象;
至少部分地基于所述第一图像中的对象和所述第二图像中的对象之间的尺寸和形状的差异来计算所述至少两个图像之间的视角差异;
基于所述视角差异生成动画以示出从所述第一图像到所述第二图像的过渡,其中,所述动画包括所述第一图像和所述第二图像,并且其中,所述动画将所述主体的修改版本添加到所述第二图像;和
向用户的客户端系统发送指示,以在所述客户端系统的显示屏上显示所述动画。
9.根据权利要求8所述的介质,其中,所述主体是在线社交网络的用户,并且其中,所述软件在被执行时还可操作来向该用户发送该用户的一级关连者已经接收到关于所述地理位置的动画的消息。
10.根据权利要求8所述的介质,其中,所述主体的所述修改版本已经基于所述视角差异进行了变换。
11.根据权利要求10所述的介质,其中,所述变换包括所述主体的缩放和所述主体的倾斜。
12.根据权利要求8所述的介质,其中,所述第一图像是由第一用户响应于发送给所述第一用户的、发送图像的提示而发送的,其中,所述提示基于与所述地理位置相关联的用户参与度度量而被发送。
13.根据权利要求8所述的介质,其中,所述至少两个图像共有的所述对象包括包含多边形的平坦前表面。
14.根据权利要求8所述的介质,其中,所述第二图像是从被发布到在线社交网络的多个图像创建的合成图像,其中,所述多个图像中的每个图像包括所述地理位置的一个视角。
15.一种系统,包括:
一个或更多个处理器;以及
一个或更多个计算机可读非暂时性存储介质,其耦合到一个或更多个所述处理器并包括指令,所述指令在由一个或更多个所述处理器执行时可操作来使所述系统:
接收由一个或更多个相机捕获的至少两个图像,其中,所述至少两个图像中的第一图像包括主体,并且所述至少两个图像中的第二图像包括与所述第一图像不同的地理位置的视角;
从所述至少两个图像中识别所述至少两个图像共有的对象;
至少部分地基于所述第一图像中的对象和所述第二图像中的对象之间的尺寸和形状的差异来计算所述至少两个图像之间的视角差异;
基于所述视角差异生成动画以示出从所述第一图像到所述第二图像的过渡,其中,所述动画包括所述第一图像和所述第二图像,并且其中,所述动画将所述主体的修改版本添加到所述第二图像;和
向用户的客户端系统发送指示,以在所述客户端系统的显示屏上显示所述动画。
16.根据权利要求15所述的系统,其中,所述主体是在线社交网络的用户,并且其中,所述处理器在执行所述指令时还可操作来向该用户发送该用户的一级关连者已经接收到关于所述地理位置的动画的消息。
17.根据权利要求15所述的系统,其中,所述主体的所述修改版本已经基于所述视角差异进行了变换。
18.根据权利要求17所述的系统,其中,所述变换包括所述主体的缩放和所述主体的倾斜。
19.根据权利要求15所述的系统,其中,所述第一图像是由第一用户响应于发送给所述第一用户的、发送图像的提示而发送的,其中,所述提示基于与所述地理位置相关联的用户参与度度量而被发送。
20.根据权利要求15所述的系统,其中,所述至少两个图像共有的所述对象包括包含多边形的平坦前表面。
CN201780095595.5A 2017-08-03 2017-08-09 合成动画 Pending CN111226262A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/668,615 2017-08-03
US15/668,615 US10275856B2 (en) 2017-08-03 2017-08-03 Composited animation
PCT/US2017/046040 WO2019027483A1 (en) 2017-08-03 2017-08-09 COMPOSITE ANIMATION

Publications (1)

Publication Number Publication Date
CN111226262A true CN111226262A (zh) 2020-06-02

Family

ID=65230359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780095595.5A Pending CN111226262A (zh) 2017-08-03 2017-08-09 合成动画

Country Status (4)

Country Link
US (1) US10275856B2 (zh)
EP (1) EP3662450A4 (zh)
CN (1) CN111226262A (zh)
WO (1) WO2019027483A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938744A (zh) * 2020-06-29 2022-01-14 北京字节跳动网络技术有限公司 视频转场类型处理方法、设备及存储介质
CN113938751A (zh) * 2020-06-29 2022-01-14 北京字节跳动网络技术有限公司 视频转场类型确定方法、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275800B (zh) 2020-01-15 2021-09-14 北京字节跳动网络技术有限公司 动画生成方法、装置、电子设备及计算机可读存储介质
WO2022109032A1 (en) * 2020-11-18 2022-05-27 HiDef Inc. Choreographed avatar movement and control

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566251A (en) * 1991-09-18 1996-10-15 David Sarnoff Research Center, Inc Video merging employing pattern-key insertion
US20120147012A1 (en) * 2010-12-13 2012-06-14 Microsoft Corporation Coordination of animations across multiple applications or processes
US20140340409A1 (en) * 2013-05-14 2014-11-20 Google Inc. Generating photo animations
CN104508597A (zh) * 2012-07-26 2015-04-08 高通股份有限公司 用于控制扩增实境的方法及设备
CN105190683A (zh) * 2013-03-01 2015-12-23 脸谱公司 照片的提示共享
US20170060857A1 (en) * 2009-10-20 2017-03-02 Doug IMBRUCE Systems and methods for assembling and/or displaying multimedia objects, modules or presentations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0729271A3 (en) * 1995-02-24 1998-08-19 Eastman Kodak Company Animated image presentations with personalized digitized images
US9064344B2 (en) * 2009-03-01 2015-06-23 Facecake Technologies, Inc. Image transformation systems and methods
US6895126B2 (en) * 2000-10-06 2005-05-17 Enrico Di Bernardo System and method for creating, storing, and utilizing composite images of a geographic location
US7024054B2 (en) * 2002-09-27 2006-04-04 Eastman Kodak Company Method and system for generating a foreground mask for a composite image
US9047692B1 (en) * 2011-12-20 2015-06-02 Google Inc. Scene scan
US8867841B2 (en) 2012-08-08 2014-10-21 Google Inc. Intelligent cropping of images based on multiple interacting variables
US9215448B2 (en) 2013-01-31 2015-12-15 Here Global B.V. Stereo panoramic images
US9453904B2 (en) * 2013-07-18 2016-09-27 Golba Llc Hybrid multi-camera based positioning
US20150130799A1 (en) * 2013-11-12 2015-05-14 Fyusion, Inc. Analysis and manipulation of images and video for generation of surround views
US10410321B2 (en) * 2014-01-07 2019-09-10 MN Netherlands C.V. Dynamic updating of a composite image
US10057562B2 (en) * 2016-04-06 2018-08-21 Facebook, Inc. Generating intermediate views using optical flow

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566251A (en) * 1991-09-18 1996-10-15 David Sarnoff Research Center, Inc Video merging employing pattern-key insertion
US20170060857A1 (en) * 2009-10-20 2017-03-02 Doug IMBRUCE Systems and methods for assembling and/or displaying multimedia objects, modules or presentations
US20120147012A1 (en) * 2010-12-13 2012-06-14 Microsoft Corporation Coordination of animations across multiple applications or processes
CN104508597A (zh) * 2012-07-26 2015-04-08 高通股份有限公司 用于控制扩增实境的方法及设备
CN105190683A (zh) * 2013-03-01 2015-12-23 脸谱公司 照片的提示共享
US20140340409A1 (en) * 2013-05-14 2014-11-20 Google Inc. Generating photo animations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ERIK JOHAN SUNDIN等: ""Image Editing from multiple photos to one single best"" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938744A (zh) * 2020-06-29 2022-01-14 北京字节跳动网络技术有限公司 视频转场类型处理方法、设备及存储介质
CN113938751A (zh) * 2020-06-29 2022-01-14 北京字节跳动网络技术有限公司 视频转场类型确定方法、设备及存储介质
CN113938751B (zh) * 2020-06-29 2023-12-22 抖音视界有限公司 视频转场类型确定方法、设备及存储介质
CN113938744B (zh) * 2020-06-29 2024-01-23 抖音视界有限公司 视频转场类型处理方法、设备及存储介质

Also Published As

Publication number Publication date
WO2019027483A1 (en) 2019-02-07
EP3662450A4 (en) 2020-06-24
US10275856B2 (en) 2019-04-30
US20190043166A1 (en) 2019-02-07
EP3662450A1 (en) 2020-06-10

Similar Documents

Publication Publication Date Title
US11468619B2 (en) Animating digital graphics overlaid on visual media items based on dynamic attributes
US9917804B2 (en) Multi-post stories
US10645460B2 (en) Real-time script for live broadcast
US20160350953A1 (en) Facilitating electronic communication with content enhancements
US10476937B2 (en) Animation for image elements in a display layout
US10425579B2 (en) Social camera for auto group selfies
US20230300292A1 (en) Providing shared augmented reality environments within video calls
KR20220112666A (ko) 증강-현실 타겟들을 검출하는 방법
US10748189B2 (en) Providing content in a timeslot on a client computing device
US20190043241A1 (en) Generating animations on a social-networking system
US20190208115A1 (en) Identifying User Intent for Auto Selfies
US10275856B2 (en) Composited animation
US10554715B2 (en) Video icons
US11425527B2 (en) Provisioning content across multiple devices
US10455135B2 (en) Enabling crowd-sourced video production
CN110852143A (zh) 在增强现实环境中的交互式文本效果

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240322