CN111433782A - 用于基于面部识别交换面部和面部部件的系统和方法 - Google Patents
用于基于面部识别交换面部和面部部件的系统和方法 Download PDFInfo
- Publication number
- CN111433782A CN111433782A CN201880079364.XA CN201880079364A CN111433782A CN 111433782 A CN111433782 A CN 111433782A CN 201880079364 A CN201880079364 A CN 201880079364A CN 111433782 A CN111433782 A CN 111433782A
- Authority
- CN
- China
- Prior art keywords
- face
- user
- image
- facial
- photograph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
- G06V40/171—Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
Abstract
系统、方法和非暂时性计算机可读介质可以获得描绘用户面部的第一图像。可以识别描绘用户面部的多个图像。可以基于一个或更多个因素来识别多个图像中的第二图像。可以用第二图像中用户的面部或面部的一部分替换第一图像中用户的面部或面部的一部分。
Description
发明领域
本技术涉及社交网络领域。更具体地,本技术涉及基于面部识别生成各种媒体效果的技术。
背景
现今,人们常常出于各种各样的目的而利用计算设备(或系统)。例如,用户可以使用他们的计算设备来彼此交互、创建内容、分享内容和查看内容。在某些情况下,用户可以利用他或她的计算设备来访问社交网络系统(或服务)。用户可以经由社交网络系统提供、发布、分享和访问各种内容项,例如状态更新、图像、视频、文章和链接。
概述
本公开的各种实施例可以包括被配置为获得描绘用户面部的第一图像的系统、方法和非暂时性计算机可读介质。可以识别描绘用户面部的多个图像。可以基于一个或更多个因素来识别多个图像中的第二图像。可以用第二图像中用户的面部或面部的一部分替换第一图像中用户的面部或面部的一部分。
在一些实施例中,一个或更多个因素包括以下中的一个或更多个:图像中的照明条件、图像中用户面部的取向(orientation)、图像的分辨率、用户面部上配饰(accessory)的存在或用户面部上化妆品的存在。
在某些实施例中,基于面部识别来从计算设备上的一组图像中识别描绘用户面部的多个图像。
在一个实施例中,替换第一图像中用户的面部或面部的一部分包括将第二图像中用户的面部或面部的一部分的面部点(facial point)映射到第一图像中用户的面部或面部的一部分的面部点。
在一些实施例中,替换第一图像中用户的面部或面部的一部分包括混合与用户的面部或面部的一部分相对应的第一图像的一部分和与用户的面部或面部的一部分相对应的第二图像的一部分。
在某些实施例中,替换第一图像中用户的面部或面部的一部分是实时执行的,并且第一图像是在相机视图中提供的图像数据。
在一个实施例中,在捕获第一图像之后,执行替换第一图像中用户的面部或面部的一部分。
在一些实施例中,面部的部分是面部部件(face component),并且面部部件包括眼睛、鼻子、嘴或耳朵中的一个或更多个。
在某些实施例中,一个或更多个因素包括与面部部件相关的因素。
在一个实施例中,第一图像与视频相关联。
应当理解,从附图中和从下面的详细描述中,所公开的技术的许多其他特征、应用、实施例和/或变型将是明显的。本文描述的结构、系统、非暂时性计算机可读介质和方法的附加和/或替代实现可以被使用而不偏离所公开的技术的原理。
附图简述
图1示出了根据本公开的实施例的示例系统,该系统包括被配置为基于面部识别来生成媒体效果的示例面部效果生成模块。
图2示出了根据本公开的实施例的被配置为交换照片中的面部或面部部件的示例面部交换模块。
图3A示出了根据本公开的实施例的用于交换照片中的面部的示例场景。
图3B示出了根据本公开的实施例的用于交换照片中的面部部件的示例场景。
图4示出了根据本公开的实施例的用于基于面部识别来生成媒体效果的示例第一方法。
图5示出了根据本公开的实施例的用于基于面部识别来生成媒体效果的示例第二方法。
图6示出了根据本公开的实施例的可以在各种场景中使用的示例系统的网络图。
图7示出了根据本公开的实施例的可以在各种场景中使用的计算机系统的示例。
附图仅为了说明的目的描绘了所公开的技术的各种实施例,其中附图使用相似的参考数字来标识相似的元素。本领域中的技术人员将从下面的讨论中容易认识到,在附图中示出的结构和方法的替代实施例可以被采用而不偏离本文描述的所公开的技术的原理。
详细描述
基于面部识别的面部和面部部件交换
人们出于各种各样的目的使用计算设备(或系统)。计算设备可以提供不同种类的功能。用户可以利用他们的计算设备来产生信息、访问信息和分享信息。在一些情况下,用户可以利用计算设备来与传统社交网络系统(例如,社交网络服务、社交网络等)进行交互或参与传统社交网络系统。社交网络系统可以提供用户可以通过其发布内容项的资源。在一个示例中,内容项可以呈现在用户的简档页面上。作为另一个示例,内容项可以通过供用户访问的信息流(feed)来被呈现。
用户可以创建各种类型的媒体内容并将其上传到社交网络系统。媒体内容的示例可以包括照片、图像、视频等。在一些情况下,可以使用用户的客户端计算设备来捕获用户的照片。用户可能总体上更喜欢第一张照片,但是可能特别喜欢第二张照片中用户的面部或者第二张照片中用户面部的一部分。例如,第二张照片中的照明条件或面部取向可能比第一张照片中的好。然而,在计算机技术领域中特别出现的传统方法下,用户可能无法组合来自用户的不同照片的部分。例如,用户可能无法从照片中选择用户的面部或面部的一部分,并且无法用所选择的面部或部分替换另一张照片中用户的面部或面部的相应部分。
植根于计算机技术的改进的方法可以克服与在计算机技术领域中特别出现的传统方法相关联的前述和其他缺点。基于计算机技术,所公开的技术可以基于面部识别技术来交换不同的照片中用户的面部或面部部件。例如,所公开的技术可以在客户端计算设备上执行面部识别,以便识别描绘用户面部的照片。可以基于各种因素来选择已识别的用户照片中的特定照片。因素的示例可以包括照明条件、角度或取向、用户输入或选择、分辨率等。所选照片中的用户面部可以用于替换另一张照片中的用户面部。类似地,所选照片中的用户的面部部件可以用于替换另一张照片中的用户的相应面部部件。面部部件的示例可以包括眼睛、鼻子、嘴等。可以在拍摄照片之前或之后交换用户的面部或面部部件。以这种方式,所公开的技术可以允许用户在用户的其他照片中的用户喜欢的照片中使用用户的面部或面部部件。下面提供了与所公开的技术相关的附加细节。
图1示出了根据本公开的实施例的示例系统100,系统100包括被配置为基于面部识别来生成媒体效果的示例面部效果生成模块102。面部效果生成模块102可以包括面部检测模块104和面部交换模块106。在一些情况下,示例系统100可以包括至少一个数据储存器120。在该附图和本文的所有附图中示出的部件(例如,模块、元件、步骤、块等)仅仅是示例性的,且其他实现可以包括附加的、更少的、集成的、或不同的部件。一些部件可能未被示出,以便不使相关细节模糊。在各种实施例中,结合面部效果生成模块102描述的一个或更多个功能可以以任何合适的组合来被实现。虽然出于说明性的目的,结合与社交网络系统相关联的媒体内容来描述所公开的技术,但是所公开的技术可以应用于任何其他类型的系统和/或内容。此外,出于说明性的目的,本文将照片作为媒体内容的示例来进行讨论,但是所公开的技术可以应用于任何类型的媒体内容,例如图像、视频等。
面部检测模块104可以检测或识别照片中的面部。例如,面部检测模块104可以检测照片中面部的面部点。面部点也可以被称为“面部标志(facial landmark)”。面部点涉及与人的面部上的解剖点相对应的图像数据,在各种条件(例如照明条件、取向等)下,对于不同的人可以以一致的方式自动检测该图像数据。例如,面部点可以指示嘴唇、眼睛、鼻子、眉毛、下巴、前额、耳朵或其他面部特征的某些突出点(prominent point)的位置。面部点的具体位置可以根据特定的人而变化,并且仅举一些例子,可以例如使用所选的基于照片尺寸的坐标系或在图像中被描绘的主题来被表达,在该照片中面部点被描绘。面部检测模块104还可以检测或识别检测到的面部的面部部件。面部部件的示例可以包括眼睛、鼻子、嘴、耳朵等。面部检测模块104可以基于与检测到的面部相关联的面部点来检测面部部件。本文提供的所有示例都是为了说明性的目的,并且可以有许多变型和其他可能性。
面部交换模块106可以交换照片中的面部或面部部件。面部交换模块106可以识别描绘用户面部的照片,并将另一张照片中用户的面部或面部部件与所识别的照片中用户的面部或相应面部部件进行交换。因此,用户可以选择提供用户希望与其他人分享的用户表示,例如用户的“最佳”表示。本文更详细地描述了面部交换模块106的功能。
在一些实施例中,面部效果生成模块102可以部分或全部地被实现为软件、硬件或其任意组合。通常,如本文讨论的模块可以与软件、硬件或其任何组合相关联。在一些实现中,模块的一个或更多个功能、任务和/或操作可以由软件例程、软件过程、硬件和/或其任何组合来实施或执行。在一些情况下,面部效果生成模块102可以部分或全部地被实现为在一个或更多个计算设备或系统上(例如在服务器系统或客户端计算设备上)运行的软件。在一些情况下,面部效果生成模块102可以部分或全部地在诸如图6的社交网络系统630的社交网络系统(或服务)内实现,或者被配置为与社交网络系统(或服务)结合或集成进行操作。类似地,在一些实例中,面部效果生成模块102可以部分或全部地在客户端计算设备(例如图6的用户设备610)内实现,或被配置为与客户端计算设备结合或集成进行操作。例如,面部效果生成模块102可以被实现为运行在用户计算设备或客户端计算系统上的专用应用(例如,app)、程序或小应用(applet),或在这些专用应用(例如,app)、程序或小应用中被实现。包含或实现用于执行面部效果生成模块102的功能的指令的应用可以由开发者创建。应用可以被提供给存储库或在存储库中被维护。在某些情况下,可以通过网络(例如,互联网)将应用上传或以其他方式传输到存储库。例如,与应用的开发者相关联或受其控制的计算系统(例如,服务器)可以向存储库提供或传输应用。存储库可以包括例如“app”商店,在该商店中可以维护应用以供用户访问或下载。响应于用户下载应用的命令,可以通过网络将应用从存储库提供或以其他方式传输到与用户相关联的计算设备。例如,与存储库的管理者相关联或在其控制下的计算系统(例如,服务器)可以使得或允许应用被传输到用户的计算设备,从而用户可以安装并运行应用。在某些情况下,应用的开发者和存储库的管理者可以是不同的实体,但在其他情况下可以是同一实体。应当理解,许多变型是可能的。
数据储存器120可以被配置成存储并维护各种类型的数据,例如与面部效果生成模块102的支持和操作相关的数据。由数据储存器120维护的数据可以包括例如与媒体内容、照片、图像、视频、面部、面部部件、面部点、面部或面部部件的因素交换等相关的信息。数据储存器120还可以维护与社交网络系统相关联的其他信息。与社交网络系统相关联的信息可以包括关于用户、社交关连(connection)、社交互动、位置、地理围栏区域、地图、地点、事件、群组、帖子、通信、内容、账户设置、隐私设置和社交图的数据。社交图可以反映社交网络系统的所有实体及其交互。如示例系统100中所示,面部效果生成模块102可以被配置为与数据储存器120通信和/或操作。在一些实施例中,数据储存器120可以是客户端计算设备内的数据储存器。在一些实施例中,数据储存器120可以是与客户端计算设备通信的服务器系统的数据储存器。
图2示出了根据本公开的实施例的被配置为交换照片中的面部或面部部件的示例面部交换模块202。在一些实施例中,图1的面部交换模块106可以用示例性面部交换模块202来实现。如图2的示例所示,示例面部交换模块202可以包括面部选择模块204、面部部件选择模块206和交换模块208。
面部选择模块204可以确定描绘用户面部的照片,该照片可以用于交换或替换在其他照片中的用户的面部或面部部件。如本文所讨论的,可以被用来交换其他照片中的用户的面部或面部部件的、描绘用户的面部的照片可以被称为“源照片”。可以从描绘用户面部的照片中选择一张或更多张源照片。在一些实施例中,描绘用户面部的照片可以由用户提供或指示。在其他实施例中,可以在客户端计算设备上维护的照片上执行基于例如机器学习模型的传统面部识别技术,以便识别描绘用户面部的照片。
面部选择模块204可以基于各种因素来识别用于交换用户面部的一张或更多张源照片。因素的示例可以包括照明条件、用户面部的取向或角度、分辨率、配饰的存在、化妆品的存在等。许多变型是可能的。照明条件可以指示照片中反射的照明量是否足够、照明方向、光源等。例如,不太亮或不太暗且来自前方的照明可以被认为是良好的照明。面部选择模块204可以确定照片中照明的亮度是否满足阈值、照明的方向是否来自前方等,以便选择源照片。关于用户面部的取向或角度,正面可以被认为是良好的取向或角度。面部选择模块204可以确定面部的取向或角度是否面向前方,以便选择源照片。分辨率可以指示照片的像素分辨率。面部选择模块204可以确定照片的分辨率是否满足阈值,以便选择源照片。配饰的存在可以指示照片中的面部是否包括各种配饰,例如眼镜、首饰等。例如,用户可能更喜欢描绘不戴眼镜的用户面部的照片。或者用户可能更喜欢描绘戴眼镜的用户面部的照片。面部选择模块204可以确定照片是否描绘了具有诸如眼镜的配饰的用户面部,以便选择源照片。化妆品的存在可以指示照片中的面部是否化妆。例如,用户可能更喜欢描绘化妆的用户面部的照片。或者用户可能更喜欢描绘不化妆的用户面部的照片。面部选择模块204可以确定照片是否描绘化妆的用户面部,以便选择源照片。在某些实施例中,面部选择模块204可以允许用户指定与因素相关的偏好或值,并基于源照片是否反映或满足指定的偏好或值或者源照片反映或满足指定的偏好或值的程度来识别一张或更多张源照片。在这点上,与因素相关的值可以是关于照片反映因素的程度或水平的定量度量。在其他实施例中,面部选择模块204可以基于与因素相关的默认值或最佳值来自动识别一张或更多张源照片。在一些实施例中,面部选择模块204可以基于用户输入来识别一张或更多张源照片。例如,用户可以指示一张照片用作源照片,以用于替换另一张照片中用户的面部。
面部部件选择模块206可以基于各种因素来识别用于交换用户的面部部件的一张或更多张源照片。如上所讨论的,这些因素可以包括用来识别用于交换用户面部的源照片的一个或更多个因素。此外,这些因素可以包括特定面部部件特有的因素。例如,如果要被替换的面部部件是眼睛,则这些因素可以包括指示照片中用户的眼睛是否睁开的因素。作为另一个示例,如果要被替换的面部部件是嘴,则这些因素可以包括指示用户的嘴是微笑还是呈现特定表情的因素。许多变型是可能的。在某些实施例中,面部部件选择模块206可以允许用户指定与因素相关的偏好或值,并基于指定的偏好或值来识别一张或更多张源照片。在其他实施例中,面部部件选择模块206可以基于源照片是否或在多大程度上反映与因素相关的默认值或最佳值来自动识别一张或更多张源照片。在一些实施例中,面部部件选择模块206可以基于用户输入来识别一张或更多张源照片。例如,用户可以指示一张照片用作源照片,以用于替换另一张照片中用户的面部部件。
交换模块208可以用源照片中用户的面部或相应面部部件替换照片或图像数据中用户的面部或面部部件。如本文所讨论的,其中用户的面部或面部部件将被替换的照片或图像数据可以被称为“目标照片”或“目标图像数据”。交换模块208可以将目标照片或目标图像数据中的用户面部替换为源照片中的用户面部。在一些实施例中,交换模块208可以在目标照片被捕获之后,用源照片中的面部替换目标照片中的面部。在其他实施例中,交换模块208可以在目标图像数据被捕获为照片之前,用源照片中的面部替换在相机视图中提供的目标图像数据中的面部。例如,可以在用户的客户端计算设备上提供相机视图。在这些实施例中,交换模块208可以实时执行面部交换。因此,交换模块208可以提供与面部交换相关的增强现实(AR)效果。
交换模块208可以通过将源照片中用户面部的面部点映射到目标照片或图像数据中用户面部的面部点,来替换目标照片或图像数据中的面部。例如,源照片中的面部和目标照片中的面部可能不完全对应。因此,交换模块208可以确定将源照片中面部的面部点映射到目标照片或图像数据中面部的面部点的转换。交换模块208可以混合源照片和目标照片或图像数据,以便使被替换的面部看起来更加自然且平滑。例如,交换模块208可以混合源照片和目标照片或图像数据的像素数据。交换模块208可以围绕被替换的面部的边缘混合源照片和目标照片或图像数据。交换模块208还可以混合源照片和目标照片或图像数据,以便补偿源照片和目标照片或图像数据中的照明差异。许多变型是可能的。
类似于替换面部,交换模块208可以用源照片中用户的相应面部部件替换目标照片或目标图像数据中用户的选定面部部件。在一些实施例中,交换模块208可以在目标照片被捕获之后,用源照片中的面部部件替换目标照片中的面部部件。在其他实施例中,交换模块208可以在目标图像数据被捕获为照片之前,用源照片中的面部部件替换相机视图中提供的目标图像数据中的面部部件。在这些实施例中,交换模块208可以实时执行面部部件的交换。
在一些实施例中,目标图像数据可以与视频相关联。作为示例,目标图像数据可以是已经记录的视频帧。交换模块208可以用源照片中用户的面部或相应面部部件替换视频帧中用户的面部或面部部件。作为另一示例,目标图像数据可以是相机视图中的图像数据。交换模块208可以在图像数据被记录为视频帧之前,用源照片中用户的面部或相应面部部件替换图像数据中用户的面部或面部部件。
交换模块208可以针对各种场景替换用户的面部或面部部件。在一些实施例中,交换模块208可以在视频会议期间交换用户的面部或面部部件。可以替换在视频会议期间传输的图像数据中的用户的面部或面部部件。在某些实施例中,在用户已经将用户的照片或视频上传到社交网络系统之后,交换模块208可以交换用户的面部或面部部件。在一些实施例中,交换模块208可以交换照片或视频中多个用户的面部或面部部件。例如,多个用户可以各自授予替换在照片或视频中的他们的面部或面部部件的许可。类似地,与照片或视频相关联的用户(例如照片或视频的发布者)可以授予对照片或视频进行面部交换相关编辑的许可。许多变型是可能的。
图3A示出了根据本公开的实施例的用于交换照片中的面部的示例场景300。在示例场景300中,描绘用户面部的源照片310被识别。如上所述,可以基于各种因素来识别源照片310。可以用源照片310中用户的面部替换目标照片320中用户的面部,以便生成照片330。如本文所讨论的,照片330可以由面部效果生成模块102从源照片310和目标照片320生成。照片330可以将用户描绘为目标照片320中的用户,其中用户的面部被源照片310中用户的面部替换。例如,源照片310中用户面部的面部点可以被映射到目标照片320中用户面部的面部点。对应于面部的源照片310的一部分和对应于面部的目标照片320的一部分可以被混合,以使照片330看起来自然或平滑。在一些实施例中,可以直接在目标照片320内替换目标照片320中的面部,而不生成单独的照片330。本文提供的所有示例都是为了说明性的目的,并且可以有许多变型和其他可能性。
图3B示出了根据本公开的实施例的用于交换照片中的面部部件的示例场景350。在示例场景350中,描绘用户面部的源照片360被识别。如上所述,可以基于各种因素来识别源照片360。目标照片370描绘了用户的面部。在示例场景350中,用户的眼睛在目标照片370中是闭着的。用户可能希望将目标照片370中用户的眼睛替换为在另一张照片(例如源照片360)中睁开的用户的眼睛。因此,目标照片370中的用户的面部部件(例如眼睛)可以被替换为源照片360中用户的相应面部部件,以生成照片380。照片380可以将用户描绘为目标照片370中的用户,其中用户的面部部件被源照片360中用户的面部部件替换。如本文所讨论的,照片380可以由面部效果生成模块102从源照片360和目标照片370生成。例如,源照片360中面部部件的面部点可以被映射到目标照片370中面部部件的面部点。对应于面部部件的源照片360的一部分和对应于面部部件的目标照片370的一部分可以被混合,以使照片380看起来自然或平滑。在一些实施例中,目标照片370中的面部部件可以直接在目标照片370内被替换,而不生成单独的照片380。本文提供的所有示例都是为了说明性的目的,并且可以有许多变型和其他可能性。
图4示出了根据本公开的实施例的用于基于面部识别来生成媒体效果的示例第一方法400。应当理解,除非另有说明,否则基于本文讨论的各种特征和实施例可以以类似或替代的顺序或并行地执行额外的、更少的或替代的步骤。
在框402,示例方法400可以获得描绘用户面部的第一图像。在框404,示例方法400可以识别描绘用户面部的多个图像。在框406,示例方法400可以基于一个或更多个因素来识别多个图像中的第二图像。在框408,示例方法400可以用第二图像中用户的面部或面部的一部分替换第一图像中用户的面部或面部的一部分。结合本公开的各种特征和实施例的其他合适的技术是可能的。
图5示出了根据本公开的实施例的用于基于面部识别来生成媒体效果的示例第二方法500。应当理解,除非另有说明,否则基于本文讨论的各种特征和实施例可以以类似或替代的顺序或并行地执行额外的、更少的或替代的步骤。方法500的某些步骤可以结合上述示例方法400来被执行。
在框502,示例方法500可以将第二图像中用户的面部或面部的一部分的面部点映射到第一图像中用户的面部或面部的一部分的面部点。在框504,示例方法500可以混合对应于用户的面部或面部的一部分的第一图像的一部分和对应于用户的面部或面部的一部分的第二图像的一部分。结合本公开的各种特征和实施例的其他合适的技术是可能的。
设想了可以有与本公开的各种实施例相关联的许多其他用途、应用、特征、可能性和/或变型。例如,在某些情况下,用户可以选择是否选择加入(opt-in)以利用所公开的技术。例如,所公开的技术还可以确保保持各种隐私设置、偏好和配置,并且可以防止私人信息被泄露。在另一示例中,本公开的各种实施例可以随着时间的推移而学习、改进和/或被完善。
社交网络系统-示例实现
图6示出了根据本公开实施例的可以在各种场景中被利用的示例系统600的网络图。系统600包括一个或更多个用户设备610、一个或更多个外部系统620、社交网络系统(或服务)630和网络650。在实施例中,关于上述实施例讨论的社交网络服务、提供者和/或系统可以被实现为社交网络系统630。为了说明的目的,图6所示的系统600的实施例包括单个外部系统620和单个用户设备610。然而在其他实施例中,系统600可以包括更多个用户设备610和/或更多个外部系统620。在某些实施例中,社交网络系统630由社交网络提供者操作,而外部系统620与社交网络系统630分离,因为它们可以由不同的实体操作。然而在各种实施例中,社交网络系统630和外部系统620协同操作以向社交网络系统630的用户(或成员)提供社交网络服务。在这个意义上,社交网络系统630提供了平台或骨干网,其他系统(例如外部系统620)可以使用该平台或骨干网来通过互联网向用户提供社交网络服务和功能。
用户设备610包括可以接收来自用户的输入并经由网络650来传输并接收数据的一个或更多个计算设备。在一个实施例中,用户设备610是执行例如Microsoft Windows兼容操作系统(OS)、Apple OS X和/或Linux发行版的传统计算机系统。在另一个实施例中,用户设备610可以是具有计算机功能的设备,例如智能手机、平板电脑、个人数字助理(PDA)、移动电话等。用户设备610被配置成经由网络650进行通信。用户设备610可以执行允许用户设备610的用户与社交网络系统630交互的应用(例如,浏览器应用)。在另一实施例中,用户设备610通过由用户设备610的原生(native)操作系统(例如iOS和ANDROID)提供的应用编程接口(API)来与社交网络系统630交互。用户设备610被配置成使用有线和/或无线通信系统经由网络650来与外部系统620和社交网络系统630进行通信,网络650可以包括局域网和/或广域网的任何组合。
在一个实施例中,网络650使用标准通信技术和协议。因此,网络650可以包括使用诸如以太网、802.11、全球互通微波接入(WiMAX)、3G、4G、CDMA、GSM、LTE、数字用户线路(DSL)等技术的链路。类似地,在网络650上使用的网络协议可以包括多协议标签交换(MPLS)、传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)等。可以使用包括超文本标记语言(HTML)和可扩展标记语言(XML)的技术和/或格式来表示通过网络650交换的数据。此外,可以使用诸如安全套接字层(SSL)、传输层安全(TLS)和互联网协议安全(IPsec)的常规加密技术来对所有或一些链路进行加密。
在一个实施例中,用户设备610可以通过使用浏览器应用612处理从外部系统620和从社交网络系统630接收的标记语言文档614来显示来自外部系统620和/或来自社交网络系统630的内容。标记语言文档614识别内容以及描述内容的格式或呈现的一个或更多个指令。通过执行包括在标记语言文档614中的指令,浏览器应用612使用由标记语言文档614所描述的格式或呈现来显示所识别的内容。例如,标记语言文档614包括用于生成并显示具有多个帧(frame)的网页的指令,这些帧包括从外部系统620和社交网络系统630检索的文本和/或图像数据。在各种实施例中,标记语言文档614包括数据文件,该数据文件包括可扩展标记语言(XML)数据、可扩展超文本标记语言(XHTML)数据或其他标记语言数据。此外,标记语言文档614可以包括JavaScript对象简谱(JSON)数据、带填充的JSON(JSONP)和JavaScript数据,以便于在外部系统620和用户设备610之间的数据交换。用户设备610上的浏览器应用612可以使用JavaScript编译器来对标记语言文档614进行解码。
标记语言文档614还可以包括或链接到应用或应用框架,例如FLASHTM或UnityTM应用、SilverLightTM应用框架等。
在一个实施例中,用户设备610还包括一个或更多个cookie 616,cookie 616包括指示用户设备610的用户是否登录到社交网络系统630内的数据,这可以实现从社交网络系统630传递到用户设备610的数据的修改。
外部系统620包括一个或更多个web服务器,其包括一个或更多个网页622a、622b,这些网页使用网络650被传递到用户设备610。外部系统620与社交网络系统630分离。例如,外部系统620与第一域相关联,而社交网络系统630与单独的社交网络域相关联。被包括在外部系统620中的网页622a、622b包括标记语言文档614,其识别内容并且包括指定所识别的内容的格式或呈现的指令。
社交网络系统630包括用于社交网络(包括多个用户)并且向社交网络的用户提供与社交网络的其他用户通信并交互的能力的一个或更多个计算设备。在一些实例中,社交网络可以由图(即,包括边和节点的数据结构)表示。其他数据结构也可以用来表示社交网络,包括但不限于数据库、对象、类、meta元素、文件或任何其他数据结构。社交网络系统630可以由操作者掌管、管理或控制。社交网络系统630的操作者可以是人、自动化应用或用于管理内容、调整策略和收集在社交网络系统630内的使用度量的一系列应用。可以使用任何类型的操作者。
用户可以加入社交网络系统630,且然后添加对他们希望关连到的社交网络系统630的任何数量的其他用户的关连。如在本文所使用的,术语“朋友”指社交网络系统630的任何其他用户,用户经由社交网络系统630与任何其他用户形成关连、关联(association)或关系。例如在实施例中,如果在社交网络系统630中的用户被表示为在社交图中的节点,则术语“朋友”可以指在两个用户节点之间形成的并直接连接两个用户节点的边。
关连可以由用户明确地添加,或者可以由社交网络系统630基于用户(例如,作为同一教育机构的校友的用户)的共同特性来自动创建。例如,第一用户特别地将特定的其他用户选择为朋友。在社交网络系统630中的关连通常在两个方向上,但不需要是这样,因此术语“用户”和“朋友”取决于参考系。在社交网络系统630的用户之间的关连通常是双边的(“双向的”)或“相互的”,但是关连也可以是单边的或“单向的”。例如,如果鲍勃和乔都是社交网络系统630的用户并且关连到彼此,则鲍勃和乔是彼此的关连。另一方面,如果鲍勃希望关连到乔以查看由乔传递到社交网络系统630的数据,但是乔不希望形成相互关连,则单边连接可以被建立。在用户之间的关连可以是直接关连;然而,社交网络系统630的一些实施例允许经由一个或更多个级别的关连或分离度的关连是间接的。
除了建立并维护在用户之间的关连并允许在用户之间的交互之外,社交网络系统630还向用户提供对由社交网络系统630支持的各种类型的项目采取动作的能力。这些项目可以包括社交网络系统630的用户可能属于的群组或网络(即,人、实体和概念的社交网络)、用户可能感兴趣的事件或日历条目、用户经由社交网络系统630可以使用的基于计算机的应用、允许用户借助由社交网络系统630提供或通过社交网络系统630提供的服务来购买或销售项目的交易、以及用户可以在社交网络系统630上或外执行的与广告的交互。这些仅仅是用户可以在社交网络系统630上对其作用的项目的几个示例,并且许多其他项目是可能的。用户可以与能够在社交网络系统630中或在外部系统620中被表示的、与社交网络系统630分离的、或者经由网络650耦合到社交网络系统630的任何事物进行交互。
社交网络系统630也能够链接各种实体。例如,社交网络系统630使用户能够通过API、web服务或其他通信渠道来与彼此以及外部系统620或其他实体进行交互。社交网络系统630生成并维护包括由多条边互连的多个节点的“社交图”。社交图中的每个节点可以表示可以作用于另一个节点和/或可以由另一个节点作用的实体。社交图可以包括各种类型的节点。节点的类型的示例包括用户、非个人实体、内容项、网页、群组、活动、消息、概念以及可以由社交网络系统630中的对象表示的任何其他事物。在社交图中的两个节点之间的边可以表示在两个节点之间的特定类型的关连或关联,这可以由节点关系或由节点中的一个节点在另一个节点上所执行的动作产生。在一些情况下,在节点之间的边可以被加权。边的权重可以表示与该边相关联的属性,例如在节点之间的关连或关联的强度。不同类型的边可以具有不同的权重。例如,当一个用户“赞(like)”另一个用户时创建的边可以被赋予一个权重,而当一个用户加另一个用户为好友(befriend)时创建的边可以被赋予不同的权重。
作为示例,当第一用户将第二用户识别为朋友时,在社交图中生成将表示第一用户的节点和表示第二用户的第二节点连接的边。当各种节点与彼此关联(relate)或交互时,社交网络系统630修改连接各种节点的边以反映关系和交互。
社交网络系统630还包括用户生成的内容,这增强了用户与社交网络系统630的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统630的任何内容。例如,用户将帖子从用户设备610传递到社交网络系统630。帖子可以包括数据(例如状态更新或其他文本数据)、定位信息、图像(例如照片)、视频、链接、音乐或其他类似数据或媒体。内容也可以由第三方添加到社交网络系统630。内容“项”被表示为在社交网络系统630中的对象。以这种方式,通过经由各种通信渠道发布各种类型的媒体的文本和内容项来鼓励社交网络系统630的用户与彼此进行通信。这种通信增加了用户与彼此的交互,并增加了用户与社交网络系统630交互的频率。
社交网络系统630包括web服务器632、API请求服务器634、用户简档储存器636、关连储存器638、动作记录器640、活动日志642和授权服务器644。在本发明的实施例中,社交网络系统630可以包括用于各种应用的附加的、更少的或不同的部件。没有示出其他部件(例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台等),以便不使系统的细节模糊。
用户简档储存器636维护关于用户账户的信息,包括传记、人口统计和其他类型的描述性信息,例如工作经历、教育历史、爱好或偏好、定位以及由用户声明或由社交网络系统630推断的信息等。该信息存储在用户简档储存器636中,使得每个用户被唯一地识别。社交网络系统630还在关连储存器638中存储描述在不同用户之间的一个或更多个关连的数据。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好或教育历史的用户。另外,社交网络系统630包括在不同用户之间的用户定义的关连,允许用户指定他们与其他用户的关系。例如,用户定义的关连允许用户生成与其他用户的关系,这些关系并行于用户的真实生活关系,例如朋友、同事、伙伴等。用户可以从预定义类型的关连中进行选择,或者根据需要定义他们自己的关连类型。与社交网络系统630中的其他节点(例如非个人实体、存储桶(bucket)、集群中心、图像、兴趣、页面、外部系统、概念等)的关连也存储在关连储存器638中。
社交网络系统630维护关于对象的数据,用户可以与该对象交互。为了维护该数据,用户简档储存器636和关连储存器638存储由社交网络系统630维护的相应类型的对象的实例。每种对象类型都有适于存储适合于对象的类型的信息的信息字段。例如,用户简档储存器636包含具有适于描述用户的账户的字段和与用户的账户相关的信息的数据结构。当特定类型的新对象被创建时,社交网络系统630初始化相应类型的新数据结构,给它分配唯一的对象标识符,并开始根据需要来向对象添加数据。例如,这可能在用户成为社交网络系统630的用户时出现,社交网络系统630在用户简档储存器636中生成用户简档的新实例,给用户账户分配唯一标识符,并开始用由用户提供的信息来填充用户账户的字段。
关连储存器638包括适于描述用户与其他用户的关连、与外部系统620的关连或与其他实体的关连的数据结构。关连储存器638还可以使关连类型与用户的关连相关联,用户的关连可以结合用户的隐私设置来被使用以调节对关于用户的信息的访问。在本发明的实施例中,用户简档储存器636和关连储存器638可以被实现为联合数据库(federateddatabase)。
存储在关连储存器638、用户简档储存器636和活动日志642中的数据使社交网络系统630能够生成社交图,该社交图使用节点来识别各种对象并且使用连接节点的边来识别在不同对象之间的关系。例如,如果第一用户与社交网络系统630中的第二用户建立关连,则来自用户简档储存器636的第一用户和第二用户的用户账户可以充当社交图中的节点。由关连储存器638存储的在第一用户和第二用户之间的关连是在与第一用户和第二用户相关联的节点之间的边。继续该示例,第二用户然后可以在社交网络系统630内向第一用户发送消息。可以被存储的发送消息的动作是在社交图中的表示第一用户和第二用户的两个节点之间的另一条边。另外,消息本身可以被识别并被包括在社交图中,作为关连到表示第一用户和第二用户的节点的另一个节点。
在另一示例中,第一用户可以在由社交网络系统630维护的图像中(或者可选地,在由在社交网络系统630外部的另一系统维护的图像中)标记第二用户。图像本身可以被表示为社交网络系统630中的节点。该标记动作可以在第一用户和第二用户之间创建边,以及在每个用户和图像之间创建边,图像也是社交图中的节点。在又一示例中,如果用户确认参加事件,则用户和事件是从用户简档储存器636获得的节点,其中事件的参加是在可以从活动日志642检索的节点之间的边。通过生成并维护社交图,社交网络系统630包括描述许多不同类型的对象以及在这些对象当中的交互和关连的数据,提供了社交相关信息的丰富源。
web服务器632经由网络650来将社交网络系统630链接到一个或更多个用户设备610和/或一个或更多个外部系统620。web服务器632提供网页以及其他网络相关内容,例如Java、JavaScript、Flash、XML等。web服务器632可以包括邮件服务器或用于在社交网络系统630和一个或更多个用户设备610之间接收并按规定路线发送消息的其他消息传送功能。消息可以是即时消息、排队消息(例如,电子邮件)、文本和SMS消息或者任何其他合适的消息格式。
API请求服务器634允许一个或更多个外部系统620和用户设备610通过调用一个或更多个API函数来调用来自社交网络系统630的访问信息。API请求服务器634还可以允许外部系统620通过调用API来向社交网络系统630发送信息。在一个实施例中,外部系统620经由网络650向社交网络系统630发送API请求,并且API请求服务器634接收该API请求。API请求服务器634通过调用与API请求相关联的API来处理该请求以生成适当的响应,API请求服务器634经由网络650来将该响应传递到外部系统620。例如,响应于API请求,API请求服务器634收集与用户相关联的数据(例如已经登录到外部系统620内的用户的关连),并将所收集的数据传递到外部系统620。在另一实施例中,用户设备610以与外部系统620相同的方式经由API来与社交网络系统630进行通信。
动作记录器640能够从web服务器632接收关于在社交网络系统630上和/或外的用户动作的通信。动作记录器640用关于用户动作的信息来填充活动日志642,使社交网络系统630能够发现由它的用户在社交网络系统630内和在社交网络系统630外采取的各种动作。特定用户相对于在社交网络系统630上的另一个节点采取的任何动作可以通过在活动日志642中或在类似数据库或其他数据仓库中维护的信息来与每个用户的账户相关联。被识别并存储的由用户在社交网络系统630内采取的动作的示例可以包括例如,添加到另一个用户的关连、向另一个用户发送消息、从另一个用户读取消息、查看与另一个用户相关联的内容、参加由另一个用户发布的事件、发布图像、尝试发布图像、或与另一个用户或另一个对象交互的其他动作。当用户在社交网络系统630内采取动作时,该动作被记录在活动日志642中。在一个实施例中,社交网络系统630将活动日志642维护为条目的数据库。当在社交网络系统630内采取动作时,该动作的条目被添加到活动日志642。活动日志642可以被称为动作日志。
此外,用户动作可以与在社交网络系统630外部的实体(例如与社交网络系统630分离的外部系统620)内出现的概念和动作相关联。例如,动作记录器640可以从web服务器632接收描述用户与外部系统620的交互的数据。在该示例中,外部系统620根据在社交图中的结构化动作和对象来报告用户的交互。
用户与外部系统620交互的动作的其他示例包括用户表达对外部系统620或另一实体的兴趣、用户将讨论外部系统620或在外部系统620内的网页622a的评论发布到社交网络系统630、用户将统一资源定位符(URL)或与外部系统620相关联的其他标识符发布到社交网络系统630、用户参加与外部系统620相关联的事件、或者由用户进行的与外部系统620相关的任何其他动作。因此,活动日志642可以包括描述在社交网络系统630的用户和与社交网络系统630分离的外部系统620之间的交互的动作。
授权服务器644实施社交网络系统630的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。隐私设置包括与用户相关联的特定信息的规范以及信息可以被分享的一个或更多个实体的规范。信息可以被分享的实体的示例可以包括其他用户、应用、外部系统620、或可能潜在地访问信息的任何实体。可以由用户分享的信息包括用户账户信息(例如简档照片)、与用户相关联的电话号码、用户的关连、由用户采取的动作(例如添加关连)、改变用户简档信息等。
可以以不同的粒度水平提供隐私设置规范。例如,隐私设置可以识别要与其他用户分享的特定信息;隐私设置识别工作电话号码或一组特定的相关信息(例如,包括简档照片、家庭电话号码和状态的个人信息)。可选地,隐私设置可以应用于与用户相关联的所有信息。也可以以不同的粒度水平指定可以访问特定信息的该组实体的规范。信息可以分享的不同组的实体可以包括例如,用户的所有朋友、朋友的所有朋友、所有应用、或所有外部系统620。一个实施例允许该组实体的规范包括实体的枚举。例如,用户可以提供被允许访问某些信息的外部系统620的列表。另一实施例允许规范包括一组实体以及不被允许访问信息的例外。例如,用户可以允许所有外部系统620访问用户的工作信息,但是指定不被允许访问工作信息的外部系统620的列表。某些实施例将不被允许访问某些信息的例外的列表称为“黑名单”。属于由用户指定的黑名单的外部系统620被阻止访问在隐私设置中指定的信息。信息的规范的粒度和信息被分享的实体的规范的粒度的各种组合是可能的。例如,所有个人信息可以和朋友分享,而所有工作信息可以和朋友的朋友分享。
授权服务器644包含确定与用户相关联的某些信息是否可以由用户的朋友、外部系统620和/或其他应用和实体访问的逻辑。外部系统620可能需要来自授权服务器644的授权来访问用户的更私密且敏感的信息,例如用户的工作电话号码。基于用户的隐私设置,授权服务器644确定另一用户、外部系统620、应用、或另一实体是否被允许访问与用户相关联的信息,包括关于由用户采取的动作的信息。
在一些实施例中,用户设备610可以包括面部效果生成模块620。如本文更详细讨论的,可以用面部效果生成模块102来实现面部效果生成模块620。在一些实施例中,可以在社交网络系统630中实现面部效果生成模块620的一个或更多个功能。
硬件实现
前述过程和特征可以由各种机器和计算机系统架构以及在各种网络和计算环境中实现。图7示出了根据本发明实施例的可以用于实现本文描述的一个或更多个实施例的计算机系统700的示例。计算机系统700包括用于使计算机系统700执行本文讨论的过程和特征的指令集。计算机系统700可以连接(例如,联网)到其他机器。在联网部署中,计算机系统700可以在客户端-服务器网络环境中的服务器机器或客户端机器的能力下进行操作,或者作为在对等(peer-to-peer)(或分布式)网络环境中的对等机器来进行操作。在本发明的实施例中,计算机系统700可以是社交网络系统630、用户设备610和外部系统720、或者其部件。在本发明的实施例中,计算机系统700可以是在构成全部或部分社交网络系统630的许多服务器当中的一个服务器。
计算机系统700包括处理器702、高速缓存704以及存储在计算机可读介质上的指向本文描述的过程和特征的一个或更多个可执行模块和驱动程序。另外,计算机系统700包括高性能输入/输出(I/O)总线706和标准I/O总线708。主桥(host bridge)710将处理器702耦合到高性能I/O总线706,而I/O总线桥712将两个总线706和708耦合到彼此。系统存储器714和一个或更多个网络接口716耦合到高性能I/O总线706。计算机系统700还可以包括视频存储器和耦合到视频存储器的显示设备(未示出)。大容量存储装置718和I/O端口720耦合到标准I/O总线708。计算机系统700可以可选地包括键盘和定点设备、显示设备、或耦合到标准I/O总线708的其他输入/输出设备(未示出)。共同地,这些元件旨在表示广泛类别的计算机硬件系统,包括但不限于基于由加利福尼亚州圣克拉拉(Santa Clara)的英特尔公司制造的x86兼容处理器和由加利福尼亚州森尼维尔(Sunnyvale)的超威半导体(AMD)公司制造的x86兼容处理器以及任何其他合适的处理器的计算机系统。
操作系统管理并控制计算机系统700的操作,包括往返软件应用(未示出)的数据输入和输出。操作系统提供在系统上执行的软件应用和系统的硬件部件之间的接口。可以使用任何合适的操作系统,例如LINUX操作系统、可从加利福尼亚州库比蒂诺(Cupertino)的苹果计算机公司获得Apple Macintosh操作系统、UNIX操作系统、操作系统、BSD操作系统等。其他实现方式是可能的。
将在下面更详细地描述计算机系统700的元件。特别是,网络接口716提供在计算机系统700和各种网络(诸如以太网(例如,IEEE 802.3)网络)中的任一种、背板等之间的通信。大容量存储装置718提供数据和编程指令的永久存储,以执行由上面识别的相应计算系统实现的上述过程和特征,而系统存储器714(例如,DRAM)提供当由处理器702执行时的数据和编程指令的临时存储。I/O端口720可以是提供在可以耦合到计算机系统700的附加外围设备之间的通信的一个或更多个串行和/或并行通信端口。
计算机系统700可以包括各种系统架构,并且计算机系统700的各种部件可以被重新排列。例如,高速缓存704可以与处理器702一起在芯片上。可选地,高速缓存704和处理器702可以封装在一起作为“处理器模块”,其中处理器702被称为“处理器核心”。此外,本发明的某些实施例可以既不需要也不包括所有上述部件。例如,耦合到标准I/O总线708的外围设备可以耦合到高性能I/O总线706。此外,在一些实施例中,可以仅存在单个总线,其中计算机系统700的部件耦合到该单个总线。此外,计算机系统700可以包括附加部件,例如附加处理器、存储设备或存储器。
一般来说,本文描述的过程和特征可以被实现为操作系统或特定应用、部件、程序、对象、模块、或被称为“程序”的指令系列的一部分。例如,一个或更多个程序可以用于执行本文描述的特定过程。程序通常包括在计算机系统700中的各种存储器和存储设备中的一个或更多个指令,其当由一个或更多个处理器读取并执行时使计算机系统700执行操作以执行本文描述的过程和特征。可以在软件、固件、硬件(例如,专用集成电路)、或其任何组合中实现本文描述的过程和特征。
在一个实现中,本文描述的过程和特征被实现为由计算机系统700在分布式计算环境中单独或共同地运行的一系列可执行模块。前述模块可以由硬件、存储在计算机可读介质(或机器可读介质)上的可执行模块、或者两者的组合来实现。例如,模块可以包括由在硬件系统中的处理器(例如处理器702)执行的多个指令或指令系列。最初,指令系列可以存储在存储设备(例如大容量存储装置718)上。然而,指令系列可以存储在任何合适的计算机可读存储介质上。此外,指令系列不需要存储在本地,并且可以经由网络接口716从远程存储设备(例如网络上的服务器)被接收。指令从诸如大容量存储装置718的存储设备被复制到系统存储器714中,且然后由处理器702进行访问和执行。在各种实现中,一个或更多个模块可以由在一个或更多个位置上的一个或多个处理器(例如在并行处理环境中的多个服务器)执行。
计算机可读介质的示例包括但不限于可记录类型的介质(例如易失性和非易失性存储器设备);固态存储器;软盘和其他可移动盘;硬盘驱动器;磁性介质;光盘(例如,光盘只读存储器(CDROM)、数字通用盘(DVD));其他类似的非暂时性(或暂时性)、有形(或非有形)存储介质;或任何类型的介质,其适用于存储、编码或携带用于由计算机系统700执行的一系列指令,以执行本文描述的过程和特征中的任一个或更多个。
为了解释的目的,阐述了许多具体细节,以便提供对本描述的透彻理解。然而对于本领域中的技术人员将明显,可以在没有这些具体细节的情况下实践本公开的实施例。在一些实例中,以框图形式示出了模块、结构、过程、特征和设备,以便避免使本描述模糊。在其他实例中,功能框图和流程图被示出为表示数据和逻辑流。框图和流程图的部件(例如,模块、块、结构、设备、特征等)可以以不同于如在本文明确描述并描绘的方式来被不同地组合、分离、移除、重新排序和替换。
在本说明书中对“一个实施例”、“实施例”、“其他实施例”、“一系列实施例”、“一些实施例”、“各种实施例”等的提及意指关于实施例描述的特定特征、设计、结构或特性被包括在本公开的至少一个实施例中。例如,短语“在一个实施例中”或“在实施例中”在说明书中的不同地方中的出现并不一定都指同一实施例,也不是与其他实施例相互排斥的单独的或可选的实施例。此外,无论是否存在对“实施例”等的明确提及,都描述了各种特征,这些特征可以多方面地被组合并且包括在一些实施例中,但是在其他实施例中也可以多方面地被省略。类似地,描述了各种特征,其可以是对于一些实施例而不是其他实施例的优先选择或要求。
本文使用的语言主要为了可读性和教学目的而被选择,并且它可以不被选择为描写或限制创造性主题。因此,意图是本发明的范围不由该详细描述限制,而是由在基于它的申请上发布的任何权利要求进行限制。因此,本发明的实施例的公开旨在是说明性的,而不是对在所附权利要求中阐述的本发明的范围的限制。
Claims (20)
1.一种计算机实现的方法,包括:
由计算系统获得描绘用户的面部的第一图像;
由所述计算系统识别描绘所述用户的面部的多个图像;
由所述计算系统基于一个或更多个因素来识别所述多个图像中的第二图像;和
由所述计算系统用所述第二图像中所述用户的面部或面部的一部分替换所述第一图像中所述用户的面部或面部的一部分。
2.根据权利要求1所述的计算机实现的方法,其中,所述一个或更多个因素包括以下中的一个或更多个:图像中的照明条件、图像中所述用户的面部的取向、图像的分辨率、所述用户的面部上配饰的存在或所述用户的面部上化妆品的存在。
3.根据权利要求1所述的计算机实现的方法,其中,基于面部识别来从计算设备上的一组图像中识别描绘所述用户的面部的所述多个图像。
4.根据权利要求1所述的计算机实现的方法,其中,替换所述第一图像中所述用户的面部或面部的一部分包括将所述第二图像中所述用户的面部或面部的一部分的面部点映射到所述第一图像中所述用户的面部或面部的一部分的面部点。
5.根据权利要求1所述的计算机实现的方法,其中,替换所述第一图像中所述用户的面部或面部的一部分包括混合与所述用户的面部或面部的一部分相对应的所述第一图像的一部分和与所述用户的面部或面部的一部分相对应的所述第二图像的一部分。
6.根据权利要求1所述的计算机实现的方法,其中,替换所述第一图像中所述用户的面部或面部的一部分是实时执行的,并且其中,所述第一图像是在相机视图中提供的图像数据。
7.根据权利要求1所述的计算机实现的方法,其中,在所述第一图像被捕获之后,执行替换所述第一图像中所述用户的面部或面部的一部分。
8.根据权利要求1所述的计算机实现的方法,其中,所述面部的所述一部分是面部部件,并且所述面部部件包括眼睛、鼻子、嘴或耳朵中的一个或更多个。
9.根据权利要求8所述的计算机实现的方法,其中,所述一个或更多个因素包括与所述面部部件相关的因素。
10.根据权利要求1所述的计算机实现的方法,其中,所述第一图像与视频相关联。
11.一种系统,包括:
至少一个硬件处理器;和
存储器,其存储指令,当由所述至少一个处理器执行时,所述指令使得所述系统执行:
获得描绘用户的面部的第一图像;
识别描绘所述用户的面部的多个图像;
基于一个或更多个因素来识别所述多个图像中的第二图像;和
用所述第二图像中所述用户的面部或面部的一部分替换所述第一图像中所述用户的面部或面部的一部分。
12.根据权利要求11所述的系统,其中,所述一个或更多个因素包括以下中的一个或更多个:图像中的照明条件、图像中所述用户的面部的取向、图像的分辨率、所述用户的面部上配饰的存在或所述用户的面部上化妆品的存在。
13.根据权利要求11所述的系统,其中,替换所述第一图像中所述用户的面部或面部的一部分包括将所述第二图像中所述用户的面部或面部的一部分的面部点映射到所述第一图像中所述用户的面部或面部的一部分的面部点。
14.根据权利要求11所述的系统,其中,替换所述第一图像中所述用户的面部或面部的一部分包括混合与所述用户的面部或面部的一部分相对应的所述第一图像的一部分和与所述用户的面部或面部的一部分相对应的所述第二图像的一部分。
15.根据权利要求11所述的系统,其中,所述面部的所述一部分是面部部件,并且所述面部部件包括眼睛、鼻子、嘴或耳朵中的一个或更多个。
16.一种包括指令的非暂时性计算机可读介质,当由计算系统的至少一个硬件处理器执行时,所述指令使所述计算系统执行一种方法,所述方法包括:
获得描绘用户的面部的第一图像;
识别描绘所述用户的面部的多个图像;
基于一个或更多个因素来识别所述多个图像中的第二图像;和
用所述第二图像中所述用户的面部或面部的一部分替换所述第一图像中所述用户的面部或面部的一部分。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述一个或更多个因素包括以下中的一个或更多个:图像中的照明条件、图像中所述用户的面部的取向、图像的分辨率、所述用户的面部上配饰的存在或所述用户的面部上化妆品的存在。
18.根据权利要求16所述的非暂时性计算机可读介质,其中,替换所述第一图像中所述用户的面部或面部的一部分包括将所述第二图像中所述用户的面部或面部的一部分的面部点映射到所述第一图像中所述用户的面部或面部的一部分的面部点。
19.根据权利要求16所述的非暂时性计算机可读介质,其中,替换所述第一图像中所述用户的面部或面部的一部分包括混合与所述用户的面部或面部的一部分相对应的所述第一图像的一部分和与所述用户的面部或面部的一部分相对应的所述第二图像的一部分。
20.根据权利要求16所述的非暂时性计算机可读介质,其中,所述面部的所述一部分是面部部件,并且所述面部部件包括眼睛、鼻子、嘴或耳朵中的一个或更多个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/857,200 | 2017-12-28 | ||
US15/857,200 US11010944B2 (en) | 2017-12-28 | 2017-12-28 | Systems and methods for swapping faces and face components based on facial recognition |
PCT/US2018/012101 WO2019133028A1 (en) | 2017-12-28 | 2018-01-02 | Systems and methods for swapping faces and face components based on facial recognition |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111433782A true CN111433782A (zh) | 2020-07-17 |
Family
ID=67057762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880079364.XA Pending CN111433782A (zh) | 2017-12-28 | 2018-01-02 | 用于基于面部识别交换面部和面部部件的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11010944B2 (zh) |
EP (1) | EP3732614A4 (zh) |
CN (1) | CN111433782A (zh) |
WO (1) | WO2019133028A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018033137A1 (zh) * | 2016-08-19 | 2018-02-22 | 北京市商汤科技开发有限公司 | 在视频图像中展示业务对象的方法、装置和电子设备 |
US11146514B2 (en) * | 2018-05-07 | 2021-10-12 | Apple Inc. | Sharing content in a messaging application |
CN109447895B (zh) * | 2018-09-03 | 2021-06-08 | 腾讯科技(武汉)有限公司 | 图片生成方法和装置、存储介质及电子装置 |
US10803646B1 (en) | 2019-08-19 | 2020-10-13 | Neon Evolution Inc. | Methods and systems for image and voice processing |
US10949715B1 (en) | 2019-08-19 | 2021-03-16 | Neon Evolution Inc. | Methods and systems for image and voice processing |
US10552667B1 (en) | 2019-08-19 | 2020-02-04 | Neon Evolution Inc. | Methods and systems for image processing |
US10671838B1 (en) | 2019-08-19 | 2020-06-02 | Neon Evolution Inc. | Methods and systems for image and voice processing |
WO2021034463A1 (en) * | 2019-08-19 | 2021-02-25 | Neon Evolution Inc. | Methods and systems for image and voice processing |
US10658005B1 (en) | 2019-08-19 | 2020-05-19 | Neon Evolution Inc. | Methods and systems for image and voice processing |
CN111104878A (zh) * | 2019-12-06 | 2020-05-05 | 江西开心玉米网络科技有限公司 | 一种图像处理方法、装置、服务器及存储介质 |
US11120595B2 (en) * | 2019-12-27 | 2021-09-14 | Ping An Technology (Shenzhen) Co., Ltd. | Face swap method and computing device |
US20210390752A1 (en) * | 2020-06-12 | 2021-12-16 | Disney Enterprises, Inc. | Real-time animation motion capture |
KR102251781B1 (ko) * | 2020-12-30 | 2021-05-14 | (주)라이언로켓 | 인공신경망을 이용한 입모양 합성 장치 및 방법 |
US11914745B2 (en) | 2021-04-14 | 2024-02-27 | Ford Global Technologies, Llc | Personally identifiable information in encrypted data streams |
US11308657B1 (en) | 2021-08-11 | 2022-04-19 | Neon Evolution Inc. | Methods and systems for image processing using a learning engine |
US11922825B2 (en) | 2021-08-27 | 2024-03-05 | Anjali CHAKRADHAR | System and method for privacy-preserving online proctoring |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050286799A1 (en) * | 2004-06-23 | 2005-12-29 | Jincheng Huang | Method and apparatus for converting a photo to a caricature image |
US20060204055A1 (en) * | 2003-06-26 | 2006-09-14 | Eran Steinberg | Digital image processing using face detection information |
US20070237421A1 (en) * | 2006-03-29 | 2007-10-11 | Eastman Kodak Company | Recomposing photographs from multiple frames |
GB201501397D0 (en) * | 2015-01-28 | 2015-03-11 | Sony Comp Entertainment Europe | Image processing |
WO2015038144A1 (en) * | 2013-09-13 | 2015-03-19 | Intel Corporation | Processing of images of a subject individual |
US20150117786A1 (en) * | 2013-10-28 | 2015-04-30 | Google Inc. | Image cache for replacing portions of images |
CN105874474A (zh) * | 2013-11-04 | 2016-08-17 | 脸谱公司 | 用于面部表示的系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8620038B2 (en) * | 2006-05-05 | 2013-12-31 | Parham Aarabi | Method, system and computer program product for automatic and semi-automatic modification of digital images of faces |
US8831379B2 (en) | 2008-04-04 | 2014-09-09 | Microsoft Corporation | Cartoon personalization |
US8818131B2 (en) * | 2010-08-20 | 2014-08-26 | Adobe Systems Incorporated | Methods and apparatus for facial feature replacement |
JP5962383B2 (ja) | 2012-09-25 | 2016-08-03 | 大日本印刷株式会社 | 画像表示システムおよび画像処理装置 |
JP2014085796A (ja) | 2012-10-23 | 2014-05-12 | Sony Corp | 情報処理装置およびプログラム |
US11068696B2 (en) * | 2016-08-24 | 2021-07-20 | International Business Machines Corporation | Protecting individuals privacy in public through visual opt-out, signal detection, and marker detection |
US10733699B2 (en) * | 2017-10-24 | 2020-08-04 | Deep North, Inc. | Face replacement and alignment |
-
2017
- 2017-12-28 US US15/857,200 patent/US11010944B2/en active Active
-
2018
- 2018-01-02 EP EP18895242.8A patent/EP3732614A4/en not_active Withdrawn
- 2018-01-02 WO PCT/US2018/012101 patent/WO2019133028A1/en unknown
- 2018-01-02 CN CN201880079364.XA patent/CN111433782A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060204055A1 (en) * | 2003-06-26 | 2006-09-14 | Eran Steinberg | Digital image processing using face detection information |
US20050286799A1 (en) * | 2004-06-23 | 2005-12-29 | Jincheng Huang | Method and apparatus for converting a photo to a caricature image |
US20070237421A1 (en) * | 2006-03-29 | 2007-10-11 | Eastman Kodak Company | Recomposing photographs from multiple frames |
WO2015038144A1 (en) * | 2013-09-13 | 2015-03-19 | Intel Corporation | Processing of images of a subject individual |
US20150117786A1 (en) * | 2013-10-28 | 2015-04-30 | Google Inc. | Image cache for replacing portions of images |
CN105684038A (zh) * | 2013-10-28 | 2016-06-15 | 谷歌公司 | 用于替换图像的部分的图像缓存 |
CN105874474A (zh) * | 2013-11-04 | 2016-08-17 | 脸谱公司 | 用于面部表示的系统和方法 |
GB201501397D0 (en) * | 2015-01-28 | 2015-03-11 | Sony Comp Entertainment Europe | Image processing |
Non-Patent Citations (1)
Title |
---|
林源等: "基于真实感三维头重建的人脸替换" * |
Also Published As
Publication number | Publication date |
---|---|
WO2019133028A1 (en) | 2019-07-04 |
EP3732614A1 (en) | 2020-11-04 |
US11010944B2 (en) | 2021-05-18 |
US20190206101A1 (en) | 2019-07-04 |
EP3732614A4 (en) | 2021-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010944B2 (en) | Systems and methods for swapping faces and face components based on facial recognition | |
US10452898B2 (en) | Systems and methods for providing augmented reality overlays | |
US10573349B2 (en) | Systems and methods for generating personalized emoticons and lip synching videos based on facial recognition | |
US10025972B2 (en) | Systems and methods for dynamically generating emojis based on image analysis of facial features | |
US10839221B2 (en) | Systems and methods for compiled video generation | |
US10325154B2 (en) | Systems and methods for providing object recognition based on detecting and extracting media portions | |
US20190205627A1 (en) | Systems and methods for generating amplified facial expressions based on facial recognition | |
US10652465B2 (en) | Systems and methods for combining multiple frames to produce media content with simulated exposure effects | |
US9779519B2 (en) | Systems and methods for color-based dynamic modification of shadows and highlights within media content | |
US10621417B2 (en) | Systems and methods for generating content | |
CN111512337A (zh) | 用于增强内容的系统和方法 | |
WO2018125762A1 (en) | Systems and methods for providing augmented reality overlays | |
US20190280999A1 (en) | Systems and methods for providing communications with obscured media content backgrounds | |
US9767848B2 (en) | Systems and methods for combining drawings and videos prior to buffer storage | |
US10163193B2 (en) | Systems and methods for providing progressive images based on image features | |
US11321411B1 (en) | Systems and methods for providing content | |
US11127184B1 (en) | Systems and methods for content creation | |
US10600254B1 (en) | Systems and methods for content creation | |
US10593124B1 (en) | Systems and methods for content creation | |
US10805249B1 (en) | Systems and methods for sharing content |
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. |