CN114730483A - 在消息传送系统中生成3d数据 - Google Patents

在消息传送系统中生成3d数据 Download PDF

Info

Publication number
CN114730483A
CN114730483A CN202080067321.7A CN202080067321A CN114730483A CN 114730483 A CN114730483 A CN 114730483A CN 202080067321 A CN202080067321 A CN 202080067321A CN 114730483 A CN114730483 A CN 114730483A
Authority
CN
China
Prior art keywords
augmented reality
depth
reality content
effect
image data
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
CN202080067321.7A
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.)
Snap Inc
Original Assignee
Snap 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 Snap Inc filed Critical Snap Inc
Publication of CN114730483A publication Critical patent/CN114730483A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • 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/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本主题技术接收图像数据和深度数据。本主题技术选择对应于三维(3D)效果的增强现实内容生成器。本主题技术至少部分地基于所选择的增强现实内容生成器将3D效果应用于图像数据和深度数据。本主题技术使用处理器来生成包括与所应用的3D效果相关的信息、图像数据和深度数据的消息。

Description

在消息传送系统中生成3D数据
相关申请的交叉引用
本申请要求以下专利申请的优先权:于2019年8月28日提交的题为“GENERATING3D DATA IN A MESSAGING SYSTEM”、序列号为62/893,037的美国临时专利申请,于2019年8月28日提交的题为“BEAUTIFICATION TECHNIQUES FOR 3D DATA IN A MESSAGINGSYSTEM”、序列号为62/893,046的美国临时专利申请,于2019年8月28日提交的题为“EFFECTS FOR 3D DATA IN A MESSAGING SYSTEM”、序列号为62/893,048的美国临时专利申请,于2019年8月28日提交的题为“PROVIDING 3D DATA FOR MESSAGES IN A MESSAGINGSYSTEM”、序列号为62/893,050的美国临时专利申请,并且上述每个美国临时专利申请的内容出于所有目的通过引用整体并入本文。
背景技术
随着数字图像使用的增加、便携式计算设备的可负担性、数字存储介质的增加的容量的可用性以及网络连接的增加的带宽和可访问性,数字图像已成为越来越多人日常生活的一部分。
附图说明
为了容易地标识对任何特定元件或动作的讨论,附图标记中的一个最高位数字或多个最高位数字指代该元件被首次引入时所在的图号。
图1是根据一些示例实施方式的可以部署本公开内容的联网环境的图形表示。
图2是根据一些示例实施方式的消息传送客户端应用的图形表示。
图3是根据一些示例实施方式的如在数据库中维护的数据结构的图形表示。
图4是根据一些示例实施方式的消息的图形表示。
图5是根据一些示例实施方式的访问限制过程的流程图。
图6是示出根据一些实施方式的包括对应于给定3D消息的附加信息的如图4中所述的消息注释的结构的示意图。
图7是示出根据一些示例实施方式的注释系统的各种模块的框图。
图8是示出根据一些示例实施方式的生成3D消息的方法的流程图。
图9是示出根据一些示例实施方式的执行用于处理图像数据和深度数据的转换通路的方法的流程图,该方法可以结合用于生成3D消息的方法来执行。
图10是示出根据一些示例实施方式的执行图像数据和深度数据的美化的方法的流程图,该方法可以结合用于生成3D消息的方法来执行。
图11是示出根据一些示例实施方式的响应于运动数据来更新3D消息的视图的方法的流程图,该方法可以结合用于生成3D消息的方法来执行。
图12示出了根据一些实施方式的描绘用于选择增强现实内容生成器并将其应用于媒体内容(例如,图像或视频)的传送带以及在消息传送客户端应用或消息传送系统中呈现所应用的增强现实内容生成器的示例用户界面。
图13是示出根据一些示例实施方式的在客户端设备的显示器中捕获图像信息并生成3D消息的示例。
图14是示出根据一些示例实施方式的原始深度图和打包的深度图的示例。
图15是示出根据一些示例实施方式的深度修复掩模和深度修复的示例。
图16是根据一些示例实施方式的示出响应于运动数据(例如,来自陀螺传感器的运动数据)而呈现的粒子、图形对象(例如,眼镜)上的反射和3D附件的3D效果的示例,以及示出响应于运动数据而呈现的后期效果和动态3D附件的3D效果的示例。
图17是根据一些示例实施方式的示出响应于运动数据而呈现的动态人工照明的3D效果的示例,以及示出响应于运动数据而呈现的眼镜上的反射/折射、3D附件和动画子画面(sprite)背景的3D效果的示例。
图18是根据一些示例实施方式的示出响应于运动数据而呈现的受控粒子系统(例如,动画弹射物)以及2D和3D附件的3D效果的示例以及示出响应于运动数据而呈现的3D附件(例如,兔子耳朵)上的联合动画的3D效果的示例的示例。
图19是根据一些示例实施方式的示出响应于运动数据而呈现的子画面、眼镜上的反射、2D和3D附件的3D效果的示例,以及示出响应于运动数据而呈现的眼镜上的反射/折射、粒子和动画背景的3D效果的示例。
图20是根据一些示例实施方式的示出响应于运动数据而呈现的附件和遮挡用户面部的动画前景的3D效果的示例,以及示出响应于运动数据而呈现的动态人工照明、粒子和眼镜上的反射/折射的3D效果的示例。
图21是根据一些示例实施方式的示出响应于运动数据而呈现的修饰、后期效果、3D附件和粒子的3D效果的示例,以及示出响应于运动数据而呈现的3D附件、子画面和粒子的3D效果的示例。
图22是示出根据一些示例实施方式的其中可以实现本公开内容的软件架构的框图。
图23是根据一些示例实施方式的呈计算机系统形式的机器的图形表示,在该计算机系统内可以执行指令的集合以使该机器执行本文中讨论的方法中任何一种或更多种。
具体实施方式
来自各种位置的兴趣广泛的用户可以捕获各种对象的数字图像,并且使其他人可经由网络(例如因特网)获得所捕获的图像。为了增强用户对数字图像的体验并提供各种特征,从而使得计算设备能够对在各种变化条件(例如,图像尺度、噪声、照明、运动或几何失真的变化)下捕获的各种对象和/或特征执行图像处理操作可能是有挑战性的并且是计算密集的。
如本文所讨论的,本主题基础结构支持在消息传送系统的各个部件中创建和共享交互式3D媒体,本文称为3D消息。本文描述的基础结构使得能够跨本主题系统提供其他形式的3D媒体,这允许跨消息传送系统以及与照片和视频消息一起共享基于深度的媒体。在本文描述的示例实施方式中,消息可以从实况摄像机或经由从存储装置(例如,其中,3D消息和/或其他消息被存储在存储器或数据库中)进入系统。本主题系统支持运动传感器输入并且管理深度数据的发送和存储以及外部效果和资产数据的加载。
如本文所述,三维(3D)消息是指包括至少图像数据和深度数据的交互式3D图像。在示例实施方式中,除了常规的图像纹理之外,还使用本主题系统来呈现3D消息,以使摄像机所看到的空间细节/几何形状可视化。当观看者通过移动客户端设备与该3D消息进行交互时,该移动触发向观看者呈现的图像和几何形状的视角的相应变化。
如本文所提及的,短语“增强现实体验”、“增强现实内容项”、“增强现实内容生成器”包括或指代与如本文进一步描述的图像修改、过滤、LENSES、媒体覆盖、变换等相对应的各种图像处理操作。
如本文所提及的,3D增强现实内容生成器指的是可以添加至消息的实时特殊效果和/或声音,并且利用AR效果和/或其他3D内容(例如3D动画图形元素)等来修改图像和/或深度数据。
图1是示出用于通过网络交换数据(例如,消息和相关联的内容)的示例消息传送系统100的框图。消息传送系统100包括客户端设备102的多个实例,每个实例托管包括消息传送客户端应用104的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接至消息传送客户端应用104的其他实例和消息传送服务器系统108。
消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104和消息传送服务器系统108进行通信和交换数据。在消息传送客户端应用104之间以及在消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息传送服务器系统108经由网络106向特定的消息传送客户端应用104提供服务器端功能。虽然消息传送系统100的某些功能在本文中被描述为由消息传送客户端应用104或由消息传送服务器系统108执行,但是在消息传送客户端应用104或消息传送服务器系统108内的某些功能的位置是设计选择。例如,在技术上可能优选的是最初在消息传送服务器系统108内部署某些技术和功能,但是稍后将该技术和功能迁移至其中客户端设备102具有足够处理能力的消息传送客户端应用104。
消息传送服务器系统108支持被提供给消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及处理由消息传送客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持续条件、社交网络信息和实况事件信息。通过经由消息传送客户端应用104的用户界面(UI)可用的功能来调用和控制消息传送系统100内的数据交换。
现在具体转到消息传送服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。
应用程序接口(API)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供接口(例如,例程和协议)的集合,所述接口的集合可以由消息传送客户端应用104调用或查询,以便调用应用服务器112的功能。应用程序接口(API)服务器110公开由应用服务器112支持的各种功能,包括帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)以及用于另一消息传送客户端应用104的可能访问、媒体数据的集合(例如,故事)的设置、客户端设备102的用户的好友列表的检索、这样的集合的检索、消息和内容的检索、向社交图添加和删除好友、社交图内好友的位置以及打开应用事件(例如,涉及消息传送客户端应用104)。
应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116和社交网络系统122。消息传送服务器应用114实现许多消息处理技术和功能,尤其涉及包括在从消息传送客户端应用104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的汇集和其他处理。如将更详细地描述的,来自多个源的文本和媒体内容可以被汇集成内容的集合(例如,被称为故事或库)。然后消息传送服务器应用114使这些集合可用于消息传送客户端应用104。鉴于用于这样的处理的硬件要求,消息传送服务器应用114还可以在服务器侧执行其他处理器和存储器密集型的数据处理。
应用服务器112还包括专用于执行各种图像处理操作的图像处理系统116,所述图像处理操作通常针对在消息传送服务器应用114处的消息的有效载荷内接收的图像或视频。
社交网络系统122支持各种社交联网功能服务,并且使这些功能和服务可用于消息传送服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304(如图3所示)。社交网络系统122支持的功能和服务的示例包括特定用户与之有关系或“关注”其的消息传送系统100的其他用户的标识,以及其他实体和感兴趣的特定用户的标识。
应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。
图2是示出根据示例实施方式的关于消息传送系统100的另外的细节的框图。具体地,消息传送系统100被示为包括消息传送客户端应用104和应用服务器112,其又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
短暂定时器系统202负责实施对消息传送客户端应用104和消息传送服务器应用114所允许的内容的短暂访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息传送客户端应用104访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件库”或“事件故事”。可以使这样的集合在指定的时间段(例如内容所涉及的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续期间作为“故事”可用。集合管理系统204还可以负责发布向消息传送客户端应用104的用户界面提供特定集合的存在性的通知的图标。
集合管理系统204还包括允许集合管理器管理和策展内容的特定集合的策展接口208。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容的集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付费用以使用其内容。
注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与生成和发布用于由消息传送系统100处理的消息的媒体覆盖相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104供应媒体覆盖或补充(例如,图像过滤)。在另一示例中,注释系统206基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息传送客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本。在另一示例中,媒体覆盖包括位置标识(例如,威尼斯海滩)覆盖、实况事件的名称或商家名称(例如,海滩咖啡馆)覆盖。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括在客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
在一个示例实施方式中,注释系统206提供基于用户的发布平台,该发布平台使得用户能够选择地图上的地理位置,并且上传与所选择的地理位置相关联的内容。用户还可以指定特定媒体覆盖应当被提供给其他用户的环境。注释系统206生成包括所上传的内容的媒体覆盖并且将所上传的内容与所选择的地理位置相关联。
在另一示例实施方式中,注释系统206提供基于商家的发布平台,该发布平台使得商家能够经由竞价过程来选择与地理位置相关联的特定媒体覆盖。例如,注释系统206在预定义时间量内将最高出价商家的媒体覆盖与对应的地理位置相关联。
图3是示出根据一些示例实施方式的可以存储在消息传送服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示为包括多个表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。其记录被维护在实体表302内的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,关于消息传送服务器系统108存储数据的任何实体都可以是被识别的实体。每个实体设置有唯一标识符以及实体类型标识符(未示出)。
实体图304还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于感兴趣的或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
数据库120还以过滤器的示例形式将注释数据存储在注释表312中。其数据存储在注释表312内的过滤器与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并且应用于视频和/或图像。在一个示例中,过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型,包括当发送用户正在编写消息时由消息传送客户端应用104向发送用户呈现的来自过滤器的库中的用户选择的过滤器。其他类型的过滤器包括地理定位过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的GPS单元确定的地理位置信息,消息传送客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置过滤器。另一类型的过滤器是数据过滤器,其可以由消息传送客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表308内的其他注释数据是增强现实内容生成器(例如,对应于应用LENSES、增强现实体验或增强现实内容项)。增强现实内容生成器可以是可以添加至图像或视频的实时特殊效果和声音。
如上所述,增强现实内容生成器、增强现实内容项、覆盖、图像变换、AR图像和类似术语是指可以对视频或图像进行的修改。这包括实时修改,实时修改在使用设备传感器捕获图像时修改该图像并且然后在设备的屏幕上显示具有修改的图像。这还包括对所存储的内容的修改,例如可以被修改的库中的视频剪辑。例如,在访问多个增强现实内容生成器的设备中,用户可以将单个视频剪辑与多个增强现实内容生成器一起使用来查看不同的增强现实内容生成器将如何修改所存储的剪辑。例如,通过针对内容选择不同的增强现实内容生成器,可以将应用不同伪随机运动模型的多个增强现实内容生成器应用于同一内容。类似地,实时视频捕获可以与所示的修改一起使用,以示出当前由设备的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上并且不存储在存储器中,或者由设备传感器捕获的内容可以在有或没有修改(或两者)的情况下被记录并存储在存储器中。在一些系统中,预览特征可以示出不同的增强现实内容生成器同时在显示器中的不同窗口内看起来如何。这可以例如使得能够同时在显示器上观看具有不同伪随机动画的多个窗口。
因此,数据以及使用增强现实内容生成器或其他这样的变换系统来使用该数据修改内容的各种系统可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;当这样的对象离开、进入视频帧中的视场以及在视场周围移动时对其进行跟踪;以及当跟踪这样的对象时对其进行修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可以涉及生成一个或多个对象的三维网格模型,并且使用视频内的模型的变换和动画纹理来实现变换。在其他实施方式中,可以使用对对象上的点的跟踪来将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在又一实施方式中,视频帧的神经网络分析可以用于将图像、模型或纹理放置在内容(例如,视频的图像或帧)中。因此,增强现实内容生成器既涉及用于创建内容中的变换的图像、模型和纹理,又涉及实现利用对象检测、跟踪和放置的这样的变换所需的附加建模和分析信息。
可以利用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将它们保存在设备的存储器中,或者可以使用设备的传感器来生成视频流。另外,可以使用计算机动画模型来处理任何对象,例如人的面部和人体的部分、动物、或非生命物体(例如椅子、汽车或其他对象)。
在一些实施方式中,当连同要变换的内容一起选择特定修改时,计算设备识别要变换的元素,并且然后如果所述元素存在于视频帧中,则检测并跟踪它们。根据针对修改的请求来修改对象的元素,从而变换视频流的帧。可以通过用于不同类型的变换的不同方法来执行视频流的帧的变换。例如,对于主要涉及改变对象元素的形式的帧的变换,计算针对对象的每个元素的特征点(例如,使用主动形状模型(ASM)或其他已知方法)。然后,针对对象的至少一个元素中的每一个元素生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,所提及的针对每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于针对修改的请求来针对每个元素生成第一点的第一集合,并且基于第一点的集合和针对修改的请求来针对每个元素生成第二点的集合。然后,可以基于第一点和第二点的集合以及网格通过修改对象的元素来对视频流的帧进行变换。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲被修改对象的背景。
在一个或更多个实施方式中,可以通过计算针对对象的每个元素的特征点并基于所计算的特征点生成网格来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,并且然后生成基于这些点的各种区域。然后通过将针对每个元素的区域与针对至少一个元素中的每一个元素的位置对准来跟踪对象的元素,并且可以基于针对修改的请求来修改区域的特性,从而变换视频流的帧。根据针对修改的特定请求,可以以不同的方式来对所提及的区域的特性进行变换。这样的修改可以涉及改变区域的颜色;从视频流的帧中去除区域的至少一些部分;将一个或更多个新对象包括到基于针对修改的请求的区域中;以及修改或扭曲区域或对象的元素。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为用于确定针对模型动画的选项的整个状态空间的控制点。
在使用面部检测来变换图像数据的计算机动画模型的一些实施方式中,使用特定的面部检测算法(例如,Viola-Jones)在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实施方式中,使用表示在所考虑的大多数图像中存在的可区别点的界标(landmark)来定位特征。例如,对于面部界标,可以使用左眼瞳孔的位置。在初始标志界标不可识别的情况下(例如,如果人具有眼罩),可以使用次级界标。这样的界标识别过程可以用于任何这样的对象。在一些实施方式中,界标的集合形成形状。可以使用形状中的点的坐标将形状表示为向量。利用使形状点之间的平均欧几里得距离最小化的相似性变换(允许平移、缩放和旋转)将一个形状与另一个形状对准。平均形状是对准的训练形状的平均。
在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和大小对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过对每个点周围的图像纹理进行模板匹配来调整形状点的位置来建议暂定形状,并且然后使暂定形状符合全局形状模型,直到出现收敛。在一些系统中,单独的模板匹配是不可靠的,并且形状模型汇集弱模板匹配器的结果以形成更强的整体分类器。在图像金字塔中的每一级从粗分辨率到细分辨率重复整个搜索。
变换系统的实施方式可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状改变、情感转移(例如,将面部从皱眉改变为微笑)、状态转移(例如,使对象老化、减小外表年龄、改变性别)、风格转移、图形元素应用以及由已经被配置成在客户端设备102上有效执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
在一些示例实施方式中,用于变换图像数据的计算机动画模型可以由如下系统使用:在该系统中,用户可以使用具有作为在客户端设备102上操作的消息传送客户端应用104的一部分而操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍照)。在消息传送客户端应用104内操作的变换系统确定图像或视频流内面部的存在性,并且提供与用于变换图像数据的计算机动画模型相关联的修改图标,或者计算机动画模型可以与本文描述的接口相关联地存在。修改图标包括可以是用于作为修改操作的一部分修改图像或视频流内的用户面部的基础的变化。一旦选择了修改图标,则变换系统发起转换用户的图像以反映所选择的修改图标的过程(例如,在用户上生成微笑面部)。在一些实施方式中,一捕获了图像或视频流并且选择了指定的修改,就可以在移动客户端设备上显示的图形用户界面中呈现修改后的图像或视频流。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,用户可以捕获图像或视频流,并且一旦选择了修改图标,就可以实时或接近实时地呈现修改后的结果。此外,在捕获视频流并且所选择的修改图标保持切换时,修改可以是持久的。机器教导的神经网络可以用于实现这样的修改。
在一些实施方式中,呈现由变换系统执行的修改的图形用户界面可以向用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的选择和内容捕获的界面(例如,从内容创建者用户界面发起)。在各种实施方式中,在初始选择修改图标之后,修改可以是持久的。用户可以通过轻敲或以其他方式选择正由变换系统修改的面部来切换修改的开或关,并将其进行存储以供稍后查看或浏览到成像应用的其他区域。在变换系统修改多个面部的情况下,用户可以通过轻敲或选择在图形用户界面内修改和显示的单个面部来全局地切换修改的开或关。在一些实施方式中,可以单独修改多个面部的组中的各个面部,或者可以通过轻敲或选择图形用户界面内显示的各个面部或一系列各个面部来单独切换这样的修改。
在一些示例实施方式中,提供了图形处理流水线架构,其使得能够在对应的不同层中应用不同的增强现实体验(例如,AR内容生成器)。这样的图形处理流水线提供了可扩展呈现引擎,所述可扩展呈现引擎用于提供复合媒体(例如,图像或视频)中包括的多个增强现实体验以由消息传送客户端应用104(或消息传送系统100)呈现。
如上面所提及的,视频表310存储视频数据,在一个实施方式中,视频数据与其记录被维护在消息表314中的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被编译成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录被维护在实体表302中的每个用户)发起。用户可以创建以已经由该用户创建和发送/广播的内容集合的形式的“个人故事”。为此,消息传送客户端应用104的用户界面可以包括用户可选择以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
集合还可以构成“实况故事”,“实况故事”是被手动地、自动地或使用手动和自动技术的组合来创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件的用户可以例如经由消息传送客户端应用104的用户界面被呈现有选项以向特定实况故事贡献内容。可以由消息传送客户端应用104基于用户的位置向用户标识实况故事。最终结果是从社群角度讲述的“实况故事”。
另一类型的内容集合被称为“位置故事”,“位置故事”使得其客户端设备102位于特定地理位置(例如,在大学或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息传送客户端应用104生成以传送至另一消息传送客户端应用104或消息传送服务器应用114。特定消息400的内容用于填充存储在消息传送服务器应用114可访问的数据库120内的消息表314。类似地,消息400的内容作为客户端设备102或应用服务器112的“运输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下部件:
●消息标识符402:标识消息400的唯一标识符。
●消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且包括在消息400中的文本。
●消息图像有效载荷406:由客户端设备102的摄像机部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的图像数据。
●消息视频有效载荷408:由摄像机部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的视频数据。
●消息音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索并且包括在消息400中的音频数据。
●消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、贴纸或其他增强)。
●消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将被呈现或使得用户可经由消息传送客户端应用104访问的时间量的参数值。
●消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数值416可以被包括在有效载荷中,这些参数值中的每一个参数值与关于包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
●消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
●消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示包括在消息有效载荷中的内容的主题。例如,在包括在消息图像有效载荷406中的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
●消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
●消息接收者标识符424:指示消息400寻址到的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
消息400的各个部件的内容(例如,值)可以是指向在其内存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
图5是示出访问限制过程500的示意图,根据该访问限制过程,对内容(例如,短暂消息502和相关联的数据的多媒体有效载荷)或内容集合(例如,短暂消息组504)的访问可以是时间受限的(例如,短暂的)。
短暂消息502被示为与消息持续时间参数506相关联,消息持续时间参数506的值确定消息传送客户端应用104将向短暂消息502的接收用户显示短暂消息502的时间量。在一个实施方式中,取决于发送用户使用消息持续时间参数506指定的时间量,接收用户可查看短暂消息502上至最多10秒。
消息持续时间参数506和消息接收者标识符424被示出为消息定时器512的输入,消息定时器512负责确定向由消息接收者标识符424标识的特定接收用户示出短暂消息502的时间量。特别地,仅在由消息持续时间参数506的值确定的时间段内向相关接收用户示出短暂消息502。消息定时器512被示出为向更一般化的短暂定时器系统202提供输出,该短暂定时器系统202负责向接收用户显示内容(例如,短暂消息502)的总体定时。
图5中示出的短暂消息502被包括在短暂消息组504(例如,个人故事或事件故事中的消息的集合)内。短暂消息组504具有相关联的组持续时间参数508,组持续时间参数508的值确定短暂消息组504被呈现并可由消息传送系统100的用户访问的持续时间。例如,组持续时间参数508可以是音乐会的持续时间,其中,短暂消息组504是属于该音乐会的内容的集合。可替选地,当执行短暂消息组504的设置和创建时,用户(拥有用户或策展者用户)可以指定组持续时间参数508的值。
另外,短暂消息组504内的每个短暂消息502具有相关联的组参与参数510,组参与参数510的值确定在短暂消息组504的上下文内可访问短暂消息502的持续时间。因此,在短暂消息组504本身根据组持续时间参数508到期之前,特定的短暂消息组504可以“到期”并且在短暂消息组504的上下文中变得不可访问。组持续时间参数508、组参与参数510和消息接收者标识符424各自向组定时器514提供输入,组定时器514可操作地首先确定短暂消息组504的特定短暂消息502是否将被显示给特定接收用户,并且如果是,则确定显示多长时间。注意,作为消息接收者标识符424的结果,短暂消息组504也知道特定接收用户的身份。
因此,组定时器514可操作地控制相关联的短暂消息组504以及包括在短暂消息组504中的单独的短暂消息502的总使用期限。在一个实施方式中,短暂消息组504内的每个短暂消息502在由组持续时间参数508指定的时间段内保持可查看和可访问。在另一实施方式中,在短暂消息组504的上下文内,某个短暂消息502可以基于组参与参数510而到期。注意,即使在短暂消息组504的上下文内,消息持续时间参数506也仍然可以确定向接收用户显示特定短暂消息502的持续时间。因此,消息持续时间参数506确定向接收用户显示特定短暂消息502的持续时间,而不管接收用户是在短暂消息组504的上下文之内还是之外查看该短暂消息502。
短暂定时器系统202还可以基于已经超过相关联的组参与参数510的确定而从短暂消息组504中可操作地移除特定的短暂消息502。例如,当发送用户已经建立了从发布起24小时的组参与参数510时,短暂定时器系统202将在指定的24小时之后从短暂消息组504中移除相关的短暂消息502。当针对短暂消息组504内的每个短暂消息502的组参与参数510已经到期时,或者当短暂消息组504本身根据组持续时间参数508已经到期时,短暂定时器系统202还进行操作以移除短暂消息组504。
在某些使用情况下,特定短暂消息组504的创建者可以指定无期限的组持续时间参数508。在这种情况下,针对短暂消息组504内最后剩余的短暂消息502的组参与参数510的到期将确定短暂消息组504本身何时到期。在这种情况下,添加至短暂消息组504的具有新的组参与参数510的新的短暂消息502有效地将短暂消息组504的寿命延长到等于组参与参数510的值。
响应于短暂定时器系统202确定短暂消息组504已经到期(例如,不再是可访问的),短暂定时器系统202与消息传送系统100(并且例如特别是消息传送客户端应用104)通信,以使得与相关短暂消息组504相关联的标记(例如,图标)不再显示在消息传送客户端应用104的用户界面内。类似地,当短暂定时器系统202确定针对特定短暂消息502的消息持续时间参数506已经到期时,短暂定时器系统202使消息传送客户端应用104不再显示与短暂消息502相关联的标记(例如,图标或文本标识)。
如本文所讨论的,本主题基础结构支持在消息传送系统100的各个部件中创建和共享交互式3D媒体,本文称为3D消息。本文所描述的基础结构使得能够跨本主题系统提供其他形式的3D媒体,这允许跨消息传送系统100以及与照片和视频消息一起共享基于深度的媒体。在本文描述的示例实施方式中,消息可以从实况摄像机或经由存储装置(例如,其中,3D消息和/或其他消息被存储在存储器或数据库中)进入系统。本主题系统支持运动传感器输入并且管理深度数据的发送和存储以及外部效果和资产数据的加载。
如上面所提及的,三维(3D)消息是指包括至少图像数据和深度数据的交互式3D图像。在示例实施方式中,除了常规的图像纹理之外,还使用本主题系统来呈现3D消息以使摄像机所看到的空间细节/几何形状可视化。当观看者通过移动客户端设备与该3D消息交互时,该移动触发向观看者呈现图像和几何形状的视角的相应改变。
在实施方式中,本主题系统提供3D效果,该3D效果与系统的其他部件结合工作以处理深度数据,这提供了可以位于消息内的不同深度平面的粒子、着色器、2D资产和3D几何形状。在示例中,这使得本主题系统能够通过改变这样的消息中的资产的物理放置和视觉外观来提供具有遮挡并且响应(例如,如通过运动传感器数据所检测的)用户的交互的LENSES和效果。在示例中,本文描述的3D效果以实时方式呈现给用户,这也使得不同的粒子和层能够针对观看这样的粒子和层的每个用户被放置在不同位置。
如本文所讨论的,2D附件或3D附件指的是可以以与附加到增强现实内容生成器相类似的方式附加到3D效果的图像(例如,子画面)或几何形状(例如,对应于3D对象)。
如本文所述,面部效果是指美化、面部修饰、拉伸以及可以应用于包含面部的图像以便通过增强现实内容生成器和/或其他媒体覆盖来使面部变形或美化的其他效果。
如本文所提及的,基于陀螺仪的交互指的是其中给定客户端设备的旋转被用作输入以改变效果的方面(例如,沿x轴旋转电话以便改变场景中的光的颜色)的交互类型。
如本文所提及的,3D增强现实内容生成器是指可以添加至3D消息的实时特殊效果和/或声音,并且修改图像和/或深度数据。
在实施方式中,当用户发起3D消息的捕获时,本主题系统使用基于深度信息和摄像机图像生成的网格来应用捆绑的或动态深度效果增强现实内容生成器。为了在将3D消息存储到云(例如,存储在消息传送服务器系统108的数据库120中)之后重新产生相同的效果,存储原始输入数据或生成的网格、增强现实内容生成器等。在示例中,为了减少存储要求,存储除了摄像机图像之外的原始输入数据。以下讨论涉及根据一些实施方式的结合这样的3D消息存储的示例数据。
图6是示出根据一些实施方式的由消息传送客户端应用104生成的包括对应于给定3D消息的附加信息的如上面在图4中所描述的消息注释412的结构的示意图。在实施方式中,包括图6所示的附加数据的特定消息400的内容被用于填充存储在数据库120内的用于给定3D消息的消息表314,该数据库120然后可由消息传送服务器应用114和/或消息传送客户端应用104访问。如示例实施方式中所示,消息注释412包括对应于3D消息的数据的以下部件:
●增强现实内容生成器标识符652:消息中使用的增强现实内容生成器(例如,动画和/或效果,包括3D效果、LENSES、过滤器等)的标识符
●消息标识符654:消息的标识符
●资产标识符656:消息中资产的标识符的集合。例如,可以针对由特定3D增强现实内容生成器确定的多个资产包括相应的资产标识符。在实施方式中,这样的资产由发送者侧的3D增强现实内容生成器创建,上传到消息传送服务器应用114,并且由接收者侧的3D增强现实内容生成器使用,以便重新创建消息。典型资产的示例包括:
○由摄像机捕获的原始静态RGB图像
○组合的深度图和肖像分割掩模,肖像分割掩模提供与其背景分离的用户的3D捕获。在本文进一步描述的实施方式中,这是根据原始深度数据和肖像分割通过3D增强现实内容生成器中的渲染通路(render pass)生成的,其可以被压缩到多通道图像(例如,具有阿尔法通道的RGB通道)中用于传输。
○置于3D用户捕获后的模糊背景图像。在实施方式中,这是由增强现实内容生成器中的渲染通路利用肖像分割掩模来执行用户背后的图像内容的修复而生成的。
○3D深度数据(下文进一步提及)
○肖像分割掩模(下文进一步提及)
●深度数据658:原始深度数据(例如,具有16位的640×360)和/或深度图
●掩模数据660:与基于原始深度数据和/或深度图的肖像分割掩模相对应的数据
●对应于附加元数据的元数据662,包括但不限于以下:
○附加到摄像机图像元数据的3D消息元数据
■摄像机内部数据
●焦距
●主点
■摄像机外部数据
●指示两个摄像机之间的旋转的四元数
●两个摄像机之间的平移
■其他摄像机信息(例如,摄像机位置)
○在相应的增强现实内容生成器中的3D深度效果的增强现实内容生成器ID
○指示消息具有深度的媒体属性
○与增强现实内容生成器相对应的增强现实内容生成器资产元数据
尽管在图6中未示出,但是在示例实施方式中,给定的3D消息还包括以下数据(例如,如之前结合图4所描述的):1)占位符2D图像(例如,具有对应于3D效果的信息的2D照片),以及2)应用于3D消息的标准2D覆盖(例如,基于地理位置的过滤器、贴纸、字幕等)。因此,在实施方式中,3D消息包括占位符图像,该占位符图像包括对应于增强现实内容生成器的配置数据(例如,摄像机内部数据、附加对象位置)的元数据以及结合3D消息对存储的资产的引用。
在示例中,用户能够从多个增强现实内容生成器中进行选择,这导致由摄像机提供的原始数据的不同视觉处理。在示例中,在消息传送客户端应用104中选择了增强现实内容生成器(其涉及3D数据)之后,摄像机捕获原始深度数据和摄像机图像。在示例中,该原始数据被提供给用于呈现包括深度数据的消息的视图的部件。另外,在实施方式中,消息传送客户端应用104(或其部件)利用该原始数据来生成肖像分割掩模。
在实施方式中,增强现实内容生成器包括用于生成被上传到消息传送服务器应用114的资产的逻辑和附加到消息的其他数据(接收机为了重建效果而需要的其他任何数据,例如视场信息、配置参数等)。
在示例中,发送者然后生成标准2D图像消息,包含由接收者用来重建3D消息的信息的增强现实内容生成器元数据被包括到该标准2D图像消息中。这包括3D消息增强现实内容生成器的ID(例如,接收者也下载并执行由发送者使用的同一增强现实内容生成器)、3D消息ID(例如,以将所有资产与该特定3D消息相关联)以及由3D增强现实内容生成器本身产生的资产ID和配置数据,包括直接嵌入在元数据中的任意结构化数据(例如,数字、文本、向量和矩阵)以及引用存储在消息传送服务器应用114中的较大资产(例如,图像、视频、3D网格)的任何数量的资产ID。
在实施方式中,面部数据处理只发生在发送者侧。该处理的结果然后被3D消息增强现实内容生成器存储为配置数据(例如,头部的3D变换被存储为变换矩阵),并且在接收者侧检索和使用该配置数据(例如,接收者不根据原始图像重新处理面部数据)。这危险地使接收设备能够呈现以显示#D。
作为示例,接收者接收标准2D图像消息,但是由于增强现实内容生成器元数据的存在性和内容,接收者基于这样的元数据来重建3D消息。这涉及首先使用3D消息增强现实内容生成器的ID来获取3D消息增强现实内容生成器,并且然后获取与3D消息ID相关联的所有资产。接收者加载3D消息增强现实内容生成器,并且增强现实内容生成器本身包含用于请求适当的资产和数据并重组3D消息的逻辑。在示例中,3D消息资产将不包括用于执行关于给定媒体覆盖的附加处理的信息,因此例如如果在3D消息上已经应用了贴纸(例如,覆盖图像),则接收者将接收下面的未模糊的3D消息资产,并且接收机将该贴纸应用为媒体覆盖。
图7是示出根据一些示例实施方式的注释系统206的各种模块的框图700。注释系统206被示出为包括图像数据和深度数据接收模块702、传感器数据接收模块704、图像数据和深度数据处理模块706、3D效果模块708、呈现模块710、共享模块712和增强现实内容生成器模块714。注释系统206的各个模块被配置成(例如,经由总线、共享存储器或交换机)彼此通信。这些模块中的任何一个或更多个模块可以使用一个或更多个计算机处理器750来实现(例如,通过将这样的一个或更多个计算机处理器配置成执行针对该模块描述的功能),并且因此可以包括计算机处理器750中的一个或更多个(例如,由客户端设备102提供的处理器的集合)。
所描述的模块中的任何一个或更多个模块可以单独使用硬件来实现(例如,机器(例如,机器2300)的计算机处理器750中的一个或更多个)或硬件和软件的组合来实现。例如,注释系统206的任何所描述的模块可以物理地包括被配置成执行本文针对该模块所描述的操作的一个或更多个计算机处理器750(例如,机器(例如,机器2300)的一个或更多个计算机处理器的子集或其中的一个或更多个计算机处理器750)的布置。作为另一示例,注释系统206的任何模块可以包括软件、硬件或软件和硬件两者,其将(例如,在机器(例如,机器2300)的一个或更多个计算机处理器中的)一个或更多个计算机处理器750的布置配置成执行本文针对该模块描述的操作。因此,注释系统206的不同模块可以包括并配置这样的计算机处理器750的不同布置或这样的计算机处理器750在不同时间点处的单个布置。此外,注释系统206的任何两个或更多个模块可以被组合成单个模块,并且本文针对单个模块描述的功能可以在多个模块之间细分。此外,根据各种示例实施方式,本文被描述为在单个机器、数据库或设备内实现的模块可以跨多个机器、数据库或设备分布。
图像数据和深度数据接收模块702接收由客户端设备102捕获的图像数据和深度数据。例如,图像是由客户端设备102的光学传感器(例如摄像机)捕获的照片。图像包括一个或更多个真实世界特征,例如在图像中检测到的用户的面部或真实世界对象。在一些实施方式中,图像包括描述该图像的元数据。例如,深度数据包括对应于深度图的数据,深度图包括基于从发光模块发射的指向有着具有不同深度的特征(例如,眼睛、耳朵、鼻子、嘴唇等)的对象(例如,用户的面部)的光线的深度信息。通过示例的方式,深度图类似于图像,但是代替每一像素提供颜色,深度图指示从摄像机到图像的该部分的距离(例如,就绝对值而言或相对于深度图中的其他像素)。
传感器数据接收模块704从客户端设备102接收传感器数据。传感器数据是由客户端设备102的传感器捕获的任何类型的数据。在示例中,传感器数据可以包括由陀螺仪收集的客户端设备102的运动、来自触摸传感器(例如,触摸屏)的触摸输入或手势输入、GPS或描述客户端设备102的当前地理位置和/或运动的客户端设备102的另一传感器。作为另一示例,传感器数据可以包括指示如由客户端设备102的传感器检测到的当前温度的温度数据。作为另一示例,传感器数据可以包括指示客户端设备102处于暗环境还是亮环境的光传感器数据。
图像数据和深度数据处理模块706对接收到的图像数据和/或深度数据执行操作。例如,由图像数据和深度数据处理模块706执行各种图像处理和/或深度处理操作,这将在本文中进一步讨论。
3D效果模块708基于与动画和/或向所接收的图像数据和/或深度数据提供视觉和/或听觉效果相对应的3D算法或技术来执行各种操作,这将在本文中进一步描述。
呈现模块710基于由之前提及的模块中的至少一个模块提供的数据来执行3D消息的呈现以由消息传送客户端应用104显示。
共享模块712生成用于存储和/或发送至消息传送服务器系统108的3D消息。共享模块712使得能够向消息传送服务器系统108的其他用户共享3D消息。
在实施方式中,增强现实内容生成器模块714使得可选图形项的显示以传送带式布置呈现。作为示例,用户可以利用各种输入来以与提供图形项的循环视图的传送带相对应的方式将可选图形项旋转到显示屏幕上以及旋转离开显示屏幕。传送带布置允许多个图形项占据显示屏上的特定图形区域。在示例中,增强现实内容生成器可以被组织成相应的组以包括在传送带布置上,从而使得能够按组旋转通过增强现实内容生成器。
在给定的3D消息中,可以使用本文描述的实施方式来捕获对象或场景的3D模型。这样的3D模型可以与增强现实内容生成器例如(LENSES和AR效果)和3D效果组合,并且在本主题系统内共享,从而为观看者提供附加的交互性元素。
在本文描述的实施方式中,通过使用深度数据和图像数据,可以执行将Z轴维度(例如,深度维度)添加到常规2D照片(例如,X轴和Y轴维度)的3D面部和场景重建。该格式使得观看者能够与3D消息交互,改变由本主题系统呈现3D消息的角度/视角,并且影响在呈现3D消息中使用的粒子和着色器。
在示例中,观看者交互输入来自在观看3D消息时的运动(例如,来自向观看者显示3D消息的设备的运动传感器),该运动又被转换成如何呈现内容、粒子和着色器的视角的改变。交互还可以来自屏幕上触摸手势和其他设备运动。
图8是示出根据一些示例实施方式的生成3D消息的方法800的流程图。方法800可以包含在计算机可读指令中,该指令用于由一个或更多个计算机处理器执行,使得方法800的操作可以由消息传送客户端应用104——特别是针对上面在图7中描述的注释系统206的各个部件——部分地或整体地执行;因此,下面通过参考其示例的方式来描述方法800。然而,应当理解,方法800的至少一些操作可以被部署在各种其他硬件配置上,并且方法800并不旨在限于消息传送客户端应用104。
在操作802处,图像数据和深度数据接收模块702接收由客户端设备102的光学传感器(例如,摄像机)捕获的图像数据和深度数据。在示例中,为了创建3D消息,用户在消息传送客户端应用104中选择3D消息摄像机模式,这使得摄像机连同摄像机图像一起捕获原始深度数据和肖像分割掩模。
在操作804处,3D效果模块708选择3D效果。在示例中,可以基于与例如在消息传送客户端应用104的用户界面中提供的3D增强现实内容生成器的选择相对应的用户输入来选择3D效果。
在操作806处,3D效果模块708将所选择的3D效果应用于图像数据和/或深度数据。在示例中,所选择的3D效果包括使得能够处理图像数据和/或深度数据的逻辑。
在操作808处,呈现模块710使用所应用的3D效果来呈现3D消息的视图。在示例中,呈现模块基于所应用的3D效果来提供由消息传送客户端应用104显示的3D消息的视图。如本文进一步描述的,3D消息的观看者可以提供附加输入(例如,运动数据和/或触摸输入),这使得3D消息响应于这样的输入而被更新和重新呈现。
在操作810处,共享模块712生成包括3D效果数据的3D消息。如之前所讨论的,3D消息可以包括图6和/或图4中描述的信息,这使得3D消息的观看者在接收到3D消息时能够对3D消息进行重建和呈现。
在操作812处,共享模块712将所生成的3D消息存储在消息传送服务器系统108处或者发送至消息传送服务器系统108。在示例中,消息传送客户端应用104将3D消息发送至消息传送服务器系统108,这使得3D消息能够被存储和/或稍后由3D消息的特定接收者或观看者观看。
在实施方式中,在接收到给定3D消息(例如,由发送方客户端设备将3D消息共享到接收方客户端设备)的情况下,可以执行在操作802至操作808中描述的类似操作,以便呈现所接收的3D消息的视图(例如,从而在前述操作810和操作812处生成3D消息并且/或者存储或发送3D消息)。
以下讨论涉及用于共享3D消息和/或将这样的3D消息存储在永久存储装置(例如,数据库120)中的示例实施方式。
在实施方式中,用户可以(例如,通过选择在消息传送客户端应用104的用户界面中提供的命令来)发起用于将3D消息存储到消息传送服务器系统108的数据库120的过程。在该示例中,存储图像数据和深度数据以及之前在图6中描述的信息(例如,与3D消息一起加载的3D增强现实内容生成器)。
在实施方式中,用户(例如,3D消息的发送者)可以(例如,通过选择在消息传送客户端应用104的用户界面中提供的命令来)发起将3D消息发送至一组接收者(例如,3D消息的一个或更多个接收者)的过程。在实施方式中,消息传送客户端应用104可以提供向用户通知关于3D消息以及它们如何不同于照片和视频(例如,2D消息)的提示和/或消息。
在实施方式中,给定的3D消息可以在存储在消息传送服务器系统108中之后导出。例如,当用户选择针对所选择的3D消息的导出命令时,检索对应于与3D消息相关联的3D效果的相应的增强现实内容生成器,并且通过循环将3D效果应用于图像数据,以便生成可以被循环的视频。在该视频中,3D网格可以360度旋转,从而在特定时间段内完成循环。
图9是示出根据一些示例实施方式的执行用于处理图像数据和深度数据的转换通路的方法900的流程图,该方法900可以结合如上所述的用于生成3D消息的方法800来执行。方法900可以包含在计算机可读指令中,所述计算机可读指令用于由一个或更多个计算机处理器执行,使得方法900的操作可以由消息传送客户端应用104——特别是针对上面在图7中描述的注释系统206的各个部件——部分地或整体地执行;因此,下面通过参考其示例的方式来描述方法900。然而,应当理解,方法900的至少一些操作可以被部署在各种其他硬件配置上,并且方法900并不旨在限于消息传送客户端应用104。
在操作902处,图像数据和深度数据接收模块702接收由客户端设备102的光学传感器(例如,摄像机)捕获的图像数据和深度数据。在示例中,深度数据包括对应于图像数据的深度图。在实施方式中,如果图像数据的高度超过特定大小(例如,2048像素),则调整图像数据(例如,颜色帧)的大小以提高处理利用率(例如,用于本文中进一步描述的图像处理操作)并且更好地确保与更广泛种类的客户端设备的兼容性。
在示例实施方式中,在给定客户端设备不包括使得能够捕获深度信息的适当硬件(例如,深度感测摄像机)的情况下,利用机器学习技术和启发式方法来生成深度图。这样的机器学习技术可以根据来自示例中的共享3D消息(或其他图像数据)的训练数据来训练机器学习模型。这样的启发式方法包括使用面部跟踪和肖像分割来生成人的深度图。
在示例实施方式中,之前提及的机器学习技术可以利用神经网络模型来生成深度图。对于深度估计,神经网络的输入是RGB图像,并且输出是深度图像。在示例中,神经网络生成分辨率低于RGB图像的分辨率的深度图。在示例中,使用这样的深度图呈现的3D效果可能受深度图的较低分辨率的限制。特别地,在该深度图的较低分辨率下保留精细细节(例如,毛发)可能是有挑战性的。因此,如本文中进一步讨论的,本主题技术提供各种技术来解决与深度图相关的该潜在缺点,以便生成在呈现并展示给3D消息的观看用户时看起来更自然且更不虚假的更多3D效果。
在示例实施方式中,利用多视图立体计算机视觉技术根据其中用户相对于场景移动摄像机的多个图像或视频生成深度图。
在另一实施方式中,客户端设备可以利用神经网络模型来生成分割掩模,所述分割掩模然后用于执行对给定图像的背景和对应深度图的修复,这将在本文中进一步讨论。
在操作904处,图像数据和深度数据处理模块706至少使用深度数据来生成深度图。如下面进一步讨论的,为了附加的技术优点,可以至少部分地基于深度图来生成称为被压缩深度图的第二深度图。
在操作906处,图像数据和深度数据处理模块706至少部分地基于图像数据来生成分割掩模。在实施方式中,图像数据和深度数据处理模块706使用卷积神经网络执行如下密集预测任务来确定分割掩模:在密集预测任务中,对每一像素进行预测以将所述像素分配给特定对象类别(例如,面部/肖像或背景),并且基于经分类的像素的分组(例如,面部/肖像或背景)来确定分割掩模。可替选地,分割掩模在由客户端设备102的硬件(例如,神经网络处理器或其他面向机器学习的处理器)生成之后可以包括在原始输入数据中而被接收。
在操作908处,图像数据和深度数据处理模块706至少使用分割掩模来对所接收的图像数据执行背景修复和模糊化以生成背景修复后的图像数据。在示例中,图像数据和深度数据处理模块706执行从背景中消除肖像(例如,包括用户的面部)以及模糊背景以聚焦于帧中的人的背景修复技术。在实施方式中,之前提及的处理中的一些(例如,转换通路)用于深度和颜色纹理,而其他图像处理用于颜色纹理(例如,使背景模糊)。在实施方式中,处理(例如,转换通路)被链接以呈现给目标,并且处理后的深度图和颜色纹理以被效果消耗的方式被呈现。
在操作910处,图像数据和深度数据处理模块706至少部分地基于深度图来生成深度修复掩模。在示例中,深度图可以对应于之前提及的压缩深度图。在示例中,图像数据和深度数据处理模块706使用深度修复掩模以便清理深度图中的伪影。可替选地,图像数据和深度数据处理模块706可以替代地利用以上提及的分割掩模来修复深度图(例如,放弃生成深度修复掩模)。
在操作912处,图像数据和深度数据处理模块706使用深度修复掩模执行深度图的修复以生成修复后的深度图。如之前所提及的,修复后的深度图对应于其中已经从原始深度图中去除了伪影(如果有的话)的后处理的深度图。在示例中,后处理的深度图包括应用于深度图的阿尔法通道(例如,除了定义针对图像中的像素的颜色值的通道之外的通道)的分割。
在操作914处,图像数据和深度数据处理模块706至少部分地基于深度图来生成深度法线图。在实施方式中,该操作中的深度图可以对应于之前提及的压缩深度图。在示例中,图像数据和深度数据处理模块706通过使用深度法线图将3D效果应用于图像数据的前景区域来提供后处理的前景图像。
在操作916处,呈现模块710至少使用作为包括在所生成的3D消息中的资产的背景修复后的图像、修复后的深度图和后处理的前景图像来生成3D消息的视图。在示例中,呈现模块710呈现3D消息的视图以供消息传送客户端应用104显示。
在实施方式中,客户端设备(例如,客户端设备102)接收从多个可选图形项中对可选图形项的选择,可选图形项对应于包括3D效果的增强现实内容生成器。客户端设备使用客户端设备的至少一个摄像机来捕获图像数据。客户端设备至少部分地基于所捕获的图像数据使用机器学习模型来生成深度数据。客户端设备至少部分地基于增强现实内容生成器向图像数据和深度数据应用3D效果。
在示例中,图像数据是利用多于一个摄像机捕获的。可替选地,使用来自单个摄像机的双像素自动聚焦来捕获图像数据(其中,可以使用通过双像素自动聚焦捕获的多个图像来导出深度信息)。如上所述,机器学习模型可以是基于所捕获的图像数据来提供深度数据的预测的深度神经网络或卷积神经网络,并且机器学习模型接收所捕获的图像数据作为输入,并且生成深度图作为输出。在一些实现方式中,机器学习模型在客户端设备的神经网络处理器或图形处理单元上执行。
以下讨论涉及各种“摄像机”,在实施方式中,摄像机被包括作为注释系统206的部件例如图像数据和深度数据处理模块706、3D效果模块708和/或呈现模块710,并且执行用于结合呈现和/或生成3D消息来处理图像数据和/或深度数据的各种操作。
在实施方式中,场景摄像机包含大部分效果。这是添加和/或配置所有3D或图形附件、基于陀螺仪的交互和粒子的情况。在示例中,通过经由永久存储装置保存位置、旋转等来在发送侧和接收侧配置附件。
在实施方式中,面部效果摄像机包含可以应用在颜色纹理和深度纹理两者上或者应用在颜色纹理上的面部效果。对于影响颜色纹理和深度图纹理两者的效果,在深度修复输出层中呈现面部效果。在示例中,这用于面部拉伸效果。
在实施方式中,对于仅影响颜色纹理的面部效果,这样的面部效果被放置在同一摄像机内的单独层中,以防止它们被应用于深度图。像这样的效果的示例是面部修饰效果和面部遮蔽效果。
在实施方式中,合成摄像机呈现场景摄像机的输出,并且应用在流水线的末端被应用于整个场景的任何效果(例如,滤色器或屏幕空间粒子)。
美化技术是指与图像数据的修饰相关的图像处理操作(例如,“美化操作”),包括与面部的表示相对应的图像数据(例如,面部图像数据)的区域,美化技术可以实现与物理世界中的整形外科或化妆类似的结果。例如,这样的美化技术可以修改数字域中的面部图像数据,例如瘦脸颊、放大眼睛、平滑皮肤、增亮牙齿或皮肤、去除瑕疵或皱纹、改变眼睛颜色、收缩下垂皮肤、增强皮肤颜色、添加面部纹身或标记等。因此,给定的美化技术可以增强面部图像的美学吸引力。以自动方式提供面部图像数据的美化以避免来自用户的冗长(例如,由用户手动选择或执行的)交互,从而产生用于展现面部美化的呈现的更方便且高效的过程是有用的。
此外,当要修改面部图像数据时,应当以准确的方式选择用于修改的图像数据的区域,以避免可能导致美化技术的不美观应用或低质量的视觉伪影。因此,有利的是利用如本文进一步讨论的肖像分割掩模来更准确地将给定的美化技术应用于面部图像数据。
在本主题系统中,所选择的AR内容生成器可以包括应用于图像数据和深度数据的至少一种美化技术,从而产生可以在所生成的3D消息的显示(例如,呈现)中提供的美化效果。
图10是示出根据一些示例实施方式的执行图像数据和深度数据的美化的方法1000的流程图,该方法1000可以结合如上所述的用于生成3D消息的方法900来执行。方法1000可以包含在计算机可读指令中,所述计算机可读指令用于由一个或更多个计算机处理器执行,使得方法1000的操作可以由消息传送客户端应用104——特别是针对上面在图7中描述的注释系统206的各个部件——部分地或整体地执行;因此,下面通过参考其示例的方式来描述方法1000。然而,应当理解,方法1000的至少一些操作可以被部署在各种其他硬件配置上,并且方法1000并不旨在限于消息传送客户端应用104。
如上所述,本主题系统使得能够应用可以应用于包含面部的图像的面部效果(例如,美化、面部修饰、拉伸和其他效果),以便通过增强现实内容生成器和/或其他图像处理操作来使面部变形或美化。如本文所讨论的,“美化”是指根据用户提供的标准分析图像来修改图像以满足该标准。这样的标准可以包括与图像中的像素的颜色和透明度相关联的X值、Y值和Z值。“美化操作”是指用于执行面部图像数据的美化的图像处理操作的集合。
在操作1002处,3D效果模块708在客户端设备(例如,客户端设备102)处接收从(例如,在以下图12中进一步讨论的界面中的)多个可选图形项中对可选图形项的选择。在示例中,可选图形项是或对应于用于应用3D效果的增强现实内容生成器,并且3D效果包括要结合3D效果执行的至少一个美化操作。
这样的美化操作的一个示例包括面部修饰,其包括多个特征以修饰用户的面部,例如柔化皮肤、牙齿增白、眼睛锐化和眼睛增白。美化操作的另一示例包括使得能够拉伸用户面部的点的面部拉伸效果。美化操作的又一示例包括改变用户眼睛的颜色和/或产生眼睛反光。美化操作的另一示例包括球形扭曲面部的面部液化效果。美化操作的另一示例包括将面部的特征(例如,眼睛)映射到面部的其他区域的面部嵌入效果。可以理解,其他类型的美化技术也是可构想的并且在本主题系统的范围内。
美化操作可以修改图像数据以增加皮肤平滑度,调整照明,并且修改面部图像数据中的颜色。实现之前提及的图像效果的示例方法包括使用肖像分割、肖像融合、颜色校正、高斯混合模型(GMM)、高斯滤波器、贝叶斯分割、肤色检测、双边滤波器、HSV颜色描述符、小波变换、梯度域图像处理、泊松图像克隆、Lee滤波器、边缘保留平滑滤波器、模糊、降噪、瑕疵去除、特征检测和提取等。本主题技术可以利用其他方法来执行给定的美化操作。例如,机器学习模型例如卷积神经网络、生成式对抗网络等可以应用于美化操作。这样的机器学习模型可以用于保留面部特征结构、平滑瑕疵或去除皱纹,或者保留面部图像数据中的面部皮肤纹理。
在操作1004处,图像数据和深度数据接收模块702从客户端设备(例如,客户端设备102)的光学传感器捕获图像数据和深度数据。在实施方式中,响应于对与特定3D效果相对应的可选择的图形时间的选择,客户端设备102可以发起图像数据和深度数据接收模块702处的操作以接收所捕获的图像数据和深度数据。如本文所讨论的,来自这样的摄像机的原始输入数据可以包括所捕获的图像数据和深度数据,并且在一些实施方式中,还包括使用客户端设备的硬件能力(例如,GPU或神经网络处理器等)生成的肖像分割掩模。
在操作1006处,3D效果模块708向图像数据和深度数据应用包括至少一个美化操作的3D效果。在实施方式中,作为应用3D效果的一部分,3D效果模块708对包括面部图像数据的至少图像数据的区域执行美化操作,其中,美化操作包括区域中的像素的颜色修改、平滑或照明调整中的至少一者。此外,美化操作包括利用机器学习模型来保留面部特征结构、平滑瑕疵、去除皱纹或保留包括在所捕获的图像数据中的面部图像数据中的面部皮肤纹理。
在操作1008处,共享模块712至少部分地基于所应用的包括至少一个美化操作的3D效果来生成3D消息。在实施方式中,对应于所应用的美化技术的信息(例如,元数据)和后处理的图像数据以及本文讨论的其他资产被包括在3D消息中,使得当3D消息被存储在消息传送服务器系统108的数据120中并且在随后由接收者观看时,利用所应用的美化操作来呈现3D消息。
在操作1010处,呈现模块710至少部分地基于所应用的包括至少一个美化操作的3D效果来呈现3D消息的视图。在替选实施方式中,应当理解,操作1008和操作1010可以以不同的顺序来执行,使得最初执行3D消息的视图(例如,提供3D消息的预览),并且然后如本文进一步描述的,利用所包括的资产和元数据来生成3D消息。
图11是示出根据一些示例实施方式的响应于运动数据来更新3D消息的视图的方法1100的流程图,该方法1100可以结合如上所述的用于生成3D消息的方法800来执行。方法1100可以包含在计算机可读指令中,所述计算机可读指令用于由一个或更多个计算机处理器执行,使得方法1100的操作可以由消息传送客户端应用104——特别是针对上面在图7中描述的注释系统206的各个部件——部分地或整体地执行;因此,下面通过参考其示例的方式来描述方法1100。然而,应当理解,方法1100的至少一些操作可以被部署在各种其他硬件配置上,并且方法1100不旨在限于消息传送客户端应用104。
在操作1102处,传感器数据接收模块704从运动传感器(例如,陀螺仪、动作传感器、触摸屏等)接收运动数据。在实施方式中,消息传送客户端应用104接收由客户端设备102的传感器(例如,位置或运动传感器)捕获的传感器数据。
在操作1104处,3D效果模块708基于运动数据来更新3D消息的视图。在实施方式中,响应于与客户端设备的滚动/偏航/俯仰方向的变化相对应的运动数据,3D消息在其如何由3D效果模块708呈现方面具有相应的变化(例如,-10度滚动的输入将使内容的视角移位+10度滚动)。在实施方式中,响应于在特定时间段(例如,3秒)内未接收到运动数据(例如,滚动/偏航/俯仰),3D效果模块708通过显示具有对俯仰、滚动和偏航的细微偏移的动画来更新3D消息的视图以演示深度和视差。另外,响应于运动,之前提及的动画将停止,并且对输入的响应由3D效果模块708处理。
在实施方式中,如前所述,可以将附加的3D效果和/或增强现实内容生成器(例如,媒体覆盖)应用于图像和/或深度数据,这改变了深度图的图像纹理、几何形状两者的属性以及重建的模型之前的深度尺寸。
在操作1106处,呈现模块710呈现更新后的3D消息的视图。更新后的3D消息的视图被提供用于在客户端设备(例如,客户端设备102)的显示器上显示。
图12示出了根据一些实施方式的描绘用于选择增强现实内容生成器并将其应用于媒体内容(例如,图像或视频)的传送带以及在消息传送客户端应用104(或消息传送系统100)中呈现所应用的增强现实内容生成器的示例用户界面。
在这样的用户界面的实施方式中,可选图形项1250可以以传送带布置来呈现,其中,可选图形项1250的一部分或子集在给定计算设备(例如,客户端设备102)的显示屏上可见。作为示例,用户可以利用各种输入来以与提供图形项的循环视图的传送带相对应的方式将可选图形项旋转到显示屏幕上以及旋转离开显示屏幕。因此,在用户界面中提供的传送带布置允许多个图形项占据显示屏上的特定图形区域。
在示例中,对应于不同AR内容生成器的相应AR体验可以被组织成相应的组以包括在传送带布置上,从而使得能够按组旋转通过媒体覆盖。尽管提供了传送带界面作为示例,但是可以理解,也可以使用其他图形界面。例如,一组增强现实内容生成器可以包括图形列表、滚动列表、滚动图形或者使得能够通过各种图形项浏览以进行选择的另一图形界面等。如本文所使用的,传送带界面是指以类似于环形列表的布置显示图形项,从而使得能够基于用户输入(例如,触摸或手势)通过环形列表进行浏览以选择或滚动通过图形项。在示例中,可以在水平(或竖直)线或轴上呈现图形项的集合,其中,每个图形项被表示为特定缩略图像(或图标、化身等)。在任何一个时刻,传送带界面中的一些图形项可以被隐藏。如果用户想要查看隐藏的图形项,则在示例中,用户可以提供用户输入(例如,触摸、手势等)以在特定方向(例如,左、右、上或下等)上滚动通过图形项。之后,显示传送带界面的后续视图,其中,提供或呈现动画来呈现一个或更多个附加图形项以包括在界面上,并且其中,先前呈现的图形项中的一些可以隐藏在该后续视图中。在实施方式中,以这种方式,用户可以以环形方式来回浏览通过图形项的集合。因此,可以理解,传送带界面可以通过在循环视图中只显示来自图形项的集合的图像的子集来优化屏幕空间。
如本文所描述的,增强现实内容生成器可以被包括在传送带布置(或如上所讨论的另一界面)上,从而使得能够旋转通过增强现实内容生成器。此外,可以基于包括例如时间、日期、地理位置、与媒体内容相关联的元数据等的各种信号来选择增强现实内容生成器以包括在内。在图12的用户界面的传送带布置示例中,从由本主题系统提供的可用增强现实内容生成器中选择相应的增强现实内容生成器。
在以下讨论中,可选图形项对应于应用于媒体内容的相应的增强现实内容生成器。如用户界面1200所示,对应于传送带布置的可选图形项1250包括电子设备(例如,客户端设备102)的显示屏中的可选图形项1251。例如,经由客户端设备102的触摸屏接收滑动手势,并且响应于接收到该滑动手势,启用通过可选图形项的浏览,以便于选择特定增强现实内容生成器。可选图形项1251由用户经由触摸输入(例如,轻击或者通过在手势结束时的触摸释放)来选择。在该示例中,可选图形项1251对应于包括3D效果的特定增强现实内容生成器。
在图12的第二示例中,在选择可选图形项1251时,呈现3D效果1260、3D效果1262和3D效果1264以在客户端设备102上显示。在该示例中,3D效果1260是基于粒子的效果,其响应于观看者的电子设备(例如,客户端设备102)上的传感器信息(例如,陀螺仪数据等)而在空间上呈现并移动。3D效果1262可以包括滤色和阴影效果,其也可以响应于传感器信息而移动。3D效果1264包括3D附件(例如,玫瑰的头带),其在一些示例中是指某种类型、形状、颜色、纹理等的可穿戴3D对象或模型。因此,相应的增强现实内容生成器包括在图像数据中的面部图像数据附近呈现的3D对象。滤色的示例包括日光效果,其与对应于创建消息的位置的一天中的时间匹配(例如,基于包括在消息中的位置元数据)。阴影效果的示例包括但不限于以下:液体在屏幕周围移动、闪烁效果、开花效果、彩虹效果以及基于移动改变背景。
在图12的第三示例中,用户在用户界面1200中的3D效果1270和3D效果1272的显示中提供客户端设备102的运动。在该示例中,3D效果1270、3D效果1272和3D效果1274分别是在第二示例中讨论的3D效果1260、3D效果1262和3D效果1264的不同版本。3D效果1270、3D效果1272和3D效果1274已经响应于客户端设备102的运动(例如,来自陀螺仪传感器的运动数据)而被呈现用于显示,并且之前提及的3D效果的视图响应于新接收的运动数据而被更新(例如,重新呈现),所述新接收的运动数据可以改变观看者正在观看的场景的视角。例如,粒子、滤色和/或3D附件响应于运动数据而改变。
在实施方式中,给定的客户端设备(例如,客户端设备102)基于与每个相应的增强现实内容生成器相关联的元数据从可用的增强现实内容生成器中选择一组增强现实内容生成器,该元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器。客户端设备接收从可选图形项中对可选图形项的选择,可选图形项包括包含3D效果的增强现实内容生成器。客户端设备使用客户端设备的至少一个摄像机来捕获图像数据和深度数据。所述至少一个摄像机包括第一摄像机和第二摄像机,第一摄像机具有第一焦距并且第二摄像机具有第二焦距,所述第一焦距和所述第二焦距不同。此外,客户端设备至少部分地基于增强现实内容生成器将3D效果应用于图像数据和深度数据。
在实施方式中,至少部分地基于由第一摄像机捕获的第一图像中的第一像素与由第二摄像机捕获的第二图像中的第二像素之间的距离来生成视差图,第一像素和第二像素对应于同一对象。视差图是其中每个像素包括第一图像中的像素到第二图像中的对应像素之间的距离值的图像。视差图中的第一对象的第一像素具有比视差图中的第二对象的第二像素的亮度更大的亮度,第一像素具有比第二像素的第二深度值更小的深度值。此外,在示例中,至少部分地基于视差图来生成深度图。
在实现方式中,之前提及的3D效果和对应的元数据被包括在消息中,该消息可以被提供(例如,共享)给消息传递系统100的另一用户。该另一用户可以接收该消息,并且在被访问时查看消息以在接收客户端设备上显示。接收客户端设备使用与以上图7中描述的部件类似或相同的部件来呈现3D效果以用于如在所接收的消息中指定的那样显示。此外,该另一用户可以向接收客户端设备提供运动,作为响应,接收客户端设备发起3D效果的重新呈现,其中,观看者正在观看的场景的视角基于所提供的运动而改变。
图13是示出根据一些示例实施方式的在客户端设备的显示器中捕获图像信息并生成3D消息的示例。
在第一示例中,提供视图1300以用于在客户端设备(例如,客户端设备102)的显示器上显示。视图1300包括用户的肖像(例如,包括面部)的表示的图像。提供可选择的图形元素1305以用于在视图1300中显示。在实施方式中,可选择的图形元素1305对应于用于生成3D消息并应用3D效果的增强现实内容生成器以及如本文进一步讨论的其他图像处理操作。在选择可选择的图形元素1305时,可以呈现第二界面,该第二界面包括用于捕获图像(例如,使用客户端设备102上具有深度捕获能力的面向前的摄像机镜头)的界面,该界面发起用于生成3D消息以进行显示的操作(如本文别处所述)。
在第二示例中,视图1350包括在具有将模糊引入图像的背景区域(例如,在用户的肖像后面)的深度效果的视图1300中的第一示例中捕获的3D消息的显示。可以响应于接收到其中用户正在移动客户端设备的传感器数据(例如,运动数据、陀螺仪传感器数据等)来更新视图1350中的该显示以呈现与3D消息相关联的3D效果。在示例中,根据客户端设备相对于观看用户的相对位置,考虑到位置的改变,可以更新3D效果以呈现在客户端设备的显示器上。例如,如果客户端设备的显示器以特定方式倾斜到第一位置,则可以呈现并提供3D效果的一个集合以用于显示,并且当客户端设备移动到不同位置时,可以呈现3D效果的第二集合以更新图像并指示观看视角的改变,这向观看用户提供了更多的3D观看体验。
以下讨论涉及根据一些实施方式的用于生成(例如,如视图1350中所示)给定3D消息以(例如,作为客户端设备上的预览或者在与客户端设备不同的接收设备处)进行呈现的各种技术。
图14是示出根据一些示例实施方式的原始深度图和压缩深度图的示例。以下示例由给定客户端设备执行,作为至少使用由客户端设备的摄像机提供的原始输入数据(例如,图像数据和深度数据)来生成给定3D消息的一部分。
在第一示例中,由给定客户端设备(例如,客户端设备102)基于由客户端设备的摄像机捕获的原始数据生成原始深度图1400的示例。这样的原始数据可以包括来自摄像机的图像数据(例如照片图像)和深度数据。在示例中,客户端设备将单通道浮点纹理转换为原始深度图,所述原始深度图允许处理的多次通过而不损失精度。客户端设备可以将单通道浮点纹理扩展(例如,发送或变换数据的部分)为多个较低精度通道,其在第二示例中示出为压缩深度图1450。在实施方式中,原始深度图1400和压缩深度图1450具有比由客户端设备的摄像机捕获的原始图像数据的分辨率更低的分辨率(例如,更少数量的总像素)。
客户端设备执行操作以将给定图像中具有给定对象(例如,用户的肖像)的前景与同一图像中的背景分离。在实施方式中,客户端设备至少使用上述原始深度图1400或压缩深度图1450来生成分割掩模。可替选地,在示例中,当客户端设备的能力包括生成分割掩模作为图像捕获过程的一部分时,分割掩模可以被包括在由摄像机捕获的原始数据中。
客户端设备使用分割掩模执行基于扩散的修复技术以从图像中的背景中去除前景对象,从而生成背景修复图像(例如,没有前景对象)。在示例中,基于扩散的修复技术试图通过将图像内容从边界传播到缺失区域的内部来填充缺失区域(例如,前景对象)。以这种方式去除前景对象是有利的,至少是因为在呈现3D消息之后,当客户端设备的摄像机移动时,有可能在前景对象未被去除时(例如,当不执行上述操作时)在背景中看到对象的图像(的部分)的“重影”(例如,导致不期望的视觉效果)。
此外,在呈现3D消息之后,当客户端设备被移动并且在图像的具有(大的)深度变化的区域中(例如,在与用户面部的一侧的一部分相对应的前景与背景之间),如果没有如本文所描述的那样执行分割掩模和修复技术,则拉伸伪影可能出现在具有用户面部的图像的部分中,并且用户面部或头部的边界可能在图像的前景与背景之间出现模糊。此外,在不执行本文中所描述的技术的情况下,当移动客户端设备时,图像的前景与背景之间的硬(例如,视觉上明显的)边界可能表现为不期望的视觉效果,从而使图像看起来更虚假、不真实、失真和夸张。
图15是示出根据一些示例实施方式的深度修复掩模和深度修复的示例。图15中的示例可以与图14中的示例相结合地执行(例如,在执行图14中的操作之后)。
在实施方式中,客户端设备使用深度修复掩模执行相同的基于扩散的修复技术(例如,如上文针对背景修复所讨论的)以扩展深度图(例如,压缩深度图1450)的前景边界。如第一示例所示,至少使用深度图来生成深度修复掩模1500。在示例中,可以使用应用于深度图的方法来确定深度修复掩模1500,所述方法包含边界检测和机器学习技术,例如执行深度图中的每一像素的分类的深度卷积神经网络、用于分割的编码器-解码器架构、完全卷积网络、特征映射、去卷积网络、无监督特征学习等。
在第二示例中,图像数据1550(例如,修复后的深度图)示出使用深度修复掩模1500对深度图进行修复的结果。在示例中,这被执行以改善毛发、耳朵或肩部的外观(例如,更准确地呈现)。如之前所提及的,深度图可以具有比图像数据(例如,RBG图像)的分辨率更低的分辨率,并且应用于深度图的3D效果或图像处理操作可能受到较低分辨率的限制。为了更好地保留诸如毛发的精细细节,由本主题技术提供之前提及的深度图修复技术。通过使用深度图和深度修复掩模1500,客户端设备可以确定并填充图像数据1550中所描绘的图像的特定区域(例如,具有缺失或不良数据的区域)。
在示例中,客户端设备至少部分地基于深度数据来确定深度图,生成与包括面部深度数据的深度图的区域相对应的深度修复掩模;以及至少使用所生成的深度修复掩模来执行深度图的深度图修复。在实施方式中,深度图可以是压缩深度图。
在实施方式中,客户端设备通过确定深度图中每个深度像素的邻域周围的平面拟合来生成深度图。这有利于确定光应当如何与表面相互作用,例如以实现有趣的照明效果和美化效果。在示例中,所生成的深度法线图是低分辨率图像,但是可以有效地用于在3D消息中提供这样的效果。在示例中,法线图使用RGB信息(例如,与3D空间中的X、Y和Z轴相对应),并且客户端设备可以利用RGB信息来针对每个多边形确定表面法线(或“法线”)定向的方向,其中,客户端设备使用所确定的表面法线的定向来确定如何遮蔽多边形。换句话说,法线图是在每个像素处存储方向的图像,并且该方向被称为法线。图像的红色、绿色和蓝色通道可以由客户端设备使用以控制每个像素的法线的方向,并且法线图可以用于模仿低分辨率图像上的高分辨率细节。
在示例中,客户端设备生成深度图的法线图,法线图用于将照明效果应用于图像数据的面部图像数据,并且至少部分地基于法线图将照明效果应用于面部图像数据。在示例中,照明效果包括至少两种不同的颜色,两种不同颜色中的第一颜色被应用于面部图像数据的第一部分,并且两种不同颜色中的第二颜色被应用于面部图像数据的第二图像。
客户端设备可以使用所生成的法线图应用美化技术(本文中进一步讨论)、照明效果和其他图像处理技术来产生对3D消息的观看用户而言看起来令人信服且自然的3D效果。客户端设备至少基于涉及所生成的法线图的上述技术来生成后处理的前景图像。
客户端设备生成3D消息,该3D消息包括各种资产,例如后处理的前景图像、后处理的深度图、修复后的背景图像和所包括的其他元数据(例如,如前所讨论的)。在实施方式中,3D消息的接收设备可以利用所包括的资产通过生成前景网格和背景网格来呈现3D消息的视图。可以使用后处理的深度图和与摄像机内部元数据(例如,如前所讨论的镜头信息等)相关的元数据来生成前景网格。可以至少使用修复后的背景图像来生成背景网格。
图16至图21的以下讨论是3D效果和其他图形效果的示例,所述3D效果和其他图形效果被呈现用于利用之前提及的技术中的至少一些技术在给定客户端设备(例如,客户端设备102)上显示。
图16是根据一些示例实施方式的示出响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的粒子、图形对象(例如,眼镜)上的反射和3D附件的3D效果的示例,以及示出响应于运动数据而呈现的后期效果和动态3D附件的3D效果的示例。
在图16的第一示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图1600,该运动数据可以改变观看者正在观看的场景的视角。例如,响应于运动数据在视图1600中改变粒子、反射和/或3D附件。
如进一步所示,3D效果的第二示例示出了响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的视图1650后期效果和动态3D附件。在图13的该第二示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图,该运动数据可以改变观看者正在观看的场景的视角。例如,3D文本(例如,“Santa Monica”)响应于运动数据而改变位置。
图17是根据一些示例实施方式的示出响应于运动数据而呈现的动态人工照明的3D效果的示例,以及示出响应于运动数据而呈现的眼镜上的反射/折射、3D附件和动画子画面背景的3D效果的示例。
在图17的第一示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图1700,该运动数据可以改变观看者正在观看的场景的视角。例如,面部上的人工照明响应于运动数据而改变。
图17中的3D效果的第二示例示出了视图1750,视图1750示出响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的眼镜上的反射/折射、3D附件和动画子画面背景。在图17的第二示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图,该运动数据可以改变观看者正在观看的场景的视角。例如,眼镜上的反射/折射和动画子画面背景响应于运动数据而改变。
图18是根据一些示例实施方式的示出响应于运动数据而呈现的受控粒子系统(例如,动画弹射物)以及2D和3D附件的3D效果的示例以及示出响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的3D附件(例如,兔子耳朵)上的联合动画的3D效果的示例的示例。
在图18的第一示例中,响应于新接收的运动数据来更新(例如,重新呈现)3D效果的视图1800,该运动数据可以改变观看者正在观看的场景的视角。例如,响应于运动数据,受控粒子系统的动画改变并且附件移动。
在图18的第二示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图1850,该运动数据可以改变观看者正在观看的场景的视角。例如,3D附件的动画响应于运动数据而改变。
图19是根据一些示例实施方式的示出响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的子画面、眼镜上的反射、2D和3D附件的3D效果的示例,以及示出响应于运动数据而呈现的眼镜上的反射/折射、粒子和动画背景的3D效果的示例。
在图19的第一示例中,响应于新接收到的运动数据来更新(例如,重新呈现)3D效果的视图1900,该运动数据可以改变观看者正在观看的场景的视角。例如,眼镜上的反射、子画面和附件响应于运动数据而改变。
在图19的第二示例中,3D效果的视图1950包括响应于运动数据而改变的眼镜上的反射/折射、粒子和背景。
图20是根据一些示例实施方式的示出响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的附件和遮挡用户面部的动画前景的3D效果的示例,以及示出响应于运动数据呈现的动态人工照明、粒子和眼镜上的反射/折射的3D效果的示例。
在图20的第一示例中,视图2000示出了关于前景的遮挡效果(例如,冰或冻结效果)响应于运动数据而变化。
在图20的第二示例中,视图2050示出了3D效果,该3D效果示出了响应于运动数据(例如,来自陀螺仪传感器的运动数据)而呈现的动态人工照明、粒子和眼镜上的反射/折射。
图21是根据一些示例实施方式的示出响应于运动数据而呈现的修饰、后期效果、3D附件和粒子的3D效果的示例,以及示出响应于运动数据而呈现的3D附件、子画面和粒子的3D效果的示例。
在图21的第一示例中,视图2100示出了被动画化的子画面(例如,来自花的花瓣),以及响应于运动数据而改变的粒子。
在图21的第二示例中,视图2150示出了被动画化并且改变位置的3D附件(例如,掩模),子画面被动画化,并且粒子响应于运动数据而改变。
图22是示出示例软件架构2206的框图,该示例软件架构2206可以与本文中描述的各种硬件架构结合使用。图22是软件架构的非限制性示例,并且应当理解的是,可以实现许多其他架构以促进本文中描述的功能。软件架构2206可以在诸如图23的机器2300的硬件上执行,机器2300包括处理器2304、存储器2314和(输入/输出)(I/O)部件2318等。示出了代表性硬件层2252并且该代表性硬件层2252可以表示例如图23的机器2300。代表性硬件层2252包括具有相关联的可执行指令2204的处理单元2254。可执行指令2204表示软件架构2206的可执行指令,可执行指令2204包括本文中描述的方法、部件等的实现方式。硬件层2252还包括也具有可执行指令2204的存储器和/或存储模块存储器/存储装置2256。硬件层2252还可以包括其他硬件2258。
在图22的示例架构中,软件架构2206可以被概念化为层的堆叠,在该层的堆叠中,每个层提供特定功能。例如,软件架构2206可以包括诸如操作系统2202、库2220、框架/中间件2218、应用2216和表示层2214的层。在操作上,这些层中的应用2216和/或其他部件可以通过软件堆栈来调用API调用2208,并且接收作为一个或更多个消息2212的响应作为对API调用2208的响应。所示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件2218,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同的层。
操作系统2202可以管理硬件资源并且提供公共服务。操作系统2202可以包括例如内核2222、服务2224和驱动器2226。内核2222可以用作硬件与其他软件层之间的抽象层。例如,内核2222可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务2224可以为其他软件层提供其他公共服务。驱动器2226负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器2226包括显示器驱动器、摄像装置驱动器、
Figure BDA0003565123360000391
驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、
Figure BDA0003565123360000392
驱动器、音频驱动器、电源管理驱动器等。
库2220提供由应用2216和/或其他部件和/或层使用的公共基础设施。库2220提供允许其他软件部件以比与底层操作系统2202功能(例如,内核2222、服务2224和/或驱动器2226)直接对接的方式更容易的方式来执行任务的功能。库2220可以包括系统库2244(例如,C标准库),系统库2244可以提供函数例如存储器分配函数、串操纵函数、数学函数等。另外,库2220可以包括API库2246诸如媒体库(例如,支持各种媒体格式诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现2D和3D的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、网络库(例如,可以提供网络浏览功能的WebKit)等。库2220还可以包括各种其他库2248,以向应用2216和其他软件部件/模块提供许多其他API。
框架/中间件2218(有时也称为中间件)提供可以由应用2216和/或其他软件部件/模块使用的较高级别的公共基础设施。例如,框架/中间件2218可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件2218可以提供可以由应用2216和/或其他软件部件/模块使用的广泛的其他API,其中,一些可以专用于特定操作系统2202或平台。
应用2216包括内置应用2238和/或第三方应用2240。代表性内置应用2238的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息传送应用和/或游戏应用。第三方应用2240可以包括由除特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在移动操作系统例如IOSTM、ANDROIDTM
Figure BDA0003565123360000401
电话或其他移动操作系统上运行的移动软件。第三方应用2240可以调用由移动操作系统(例如,操作系统2202)提供的API调用2208,以有助于本文描述的功能。
应用2216可以使用内置操作系统功能(例如,内核2222、服务2224和/或驱动器2226)、库2220和框架/中间件2218来创建用户接口以与系统的用户交互。替选地或另外地,在一些系统中,可以通过呈现层例如表示层2214来进行与用户的交互。在这些系统中,应用/部件“逻辑”可以与应用/部件的与用户交互的各方面分开。
图23是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所讨论的方法中的任一种或更多种的机器2300的部件的框图。具体地,图23示出了呈计算机系统的示例形式的机器2300的示意表示,在该机器2300中可以执行用于使机器1200执行本文讨论的方法中的任何一种或更多种的指令2310(例如,软件、程序、应用、小程序、app或其他可执行代码)。因此,指令2310可以被用来实现本文中描述的模块或部件。指令2310将通用的未编程的机器2300转换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器2300。在替选实施方式中,机器2300作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器2300可以以服务器-客户端网络环境中的服务器机器或客户端机器的身份进行操作,或者作为对等(或分布式)网络环境中的对等机器进行操作。机器2300可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器2300采取的动作的指令2310的任何机器。此外,虽然仅示出了单个机器2300,但是术语“机器”还应被视为包括单独或联合执行指令2310以执行本文中讨论的任何一种或更多种方法的机器的集合。
机器2300可以包括处理器2304(例如,处理器2308至处理器2312)、存储器/存储装置2306和I/O部件2318,它们可以被配置成例如经由总线2302彼此通信。存储器/存储装置2306可以包括诸如主存储器或其他存储器存储装置的存储器2314以及存储单元2316,处理器2304例如可经由总线2302访问上述两者。存储单元2316和存储器2314存储实现本文中描述的任何一个或更多个方法或功能的指令2310。指令2310还可以在其被机器2300执行期间完全地或部分地驻留在存储器2314内、存储单元2316内、处理器2304中的至少一个内(例如,处理器的高速缓冲存储器内)或者其任何合适的组合内。因此,存储器2314、存储单元2316以及处理器2304的存储器是机器可读介质的示例。
I/O部件2318可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种各样的部件。包括在特定机器2300中的特定I/O部件2318将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入设备或其他这样的输入机构,而无头服务器机器可能不包括这样的触摸输入设备。将理解,I/O部件2318可以包括图23中未示出的许多其他部件。I/O部件2318仅为了简化以下讨论而根据功能被分组,并且该分组决不是限制性的。在各种示例实施方式中,I/O部件2318可以包括输出部件2326和输入部件2328。输出部件2326可以包括视觉部件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件2328可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在另外的示例实施方式中,I/O部件2318可以包括生物计量部件2330、运动部件2334、环境部件2336或定位部件2338等各种其他部件。例如,生物识别部件2330可以包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件2334可以包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件2336可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声音传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件2338可以包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种技术来实现通信。I/O部件2318可以包括通信部件2340,通信部件1240能够进行操作以经由耦接2324和耦接1222分别将机器2300耦接至网络2332或设备2320。例如,通信部件2340可以包括网络接口部件或其他合适的设备以与网络2332对接。在其他示例中,通信部件2340可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、
Figure BDA0003565123360000421
部件(例如,低功耗
Figure BDA0003565123360000422
)、
Figure BDA0003565123360000423
部件和经由其他形式提供通信的其他通信部件。设备2320可以是另一机器或各种各样的外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件2340可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件2340可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)代码、Aztec代码、数据矩阵、数据图示符(Dataglyph)、麦克斯码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码和其他光学代码)、或者声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件2340得到各种信息,例如经由因特网协议(IP)地理位置的位置、经由
Figure BDA0003565123360000424
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
以下讨论涉及贯穿本公开内容提及的各种术语或短语。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以有助于软件或数据的通信。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特性中的一个或更多个以对信号中的信息进行编码的这样的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的介质,并且可以在本公开内容中互换使用。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0003565123360000431
网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通讯系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被应用以操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或其任何组合。处理器还可以是具有两个或更多个独立处理器(有时称为“核”)的多核处理器,其可以同时执行指令。
“机器存储介质”指的是存储可执行指令、例程和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。因此,上述术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪速存储器设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,载波、调制数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“部件”是指具有以下边界的设备、物理实体或逻辑:该边界由功能或子例程调用、分支点、API或被提供用于对特定处理或控制功能进行划分或模块化的其他技术来定义。部件可以经由它们的接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件部件(例如,体现在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为用于执行如本文中描述的某些操作的硬件部件。也可以机械地、电子地或其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件被短暂配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,则硬件部件成为被唯一地定制成执行配置的功能的特定的机器(或机器的特定部件),并且不再是通用处理器。将理解的是,可以出于成本和时间考虑来推动在专用且永久配置的电路中或在短暂配置(例如,通过软件配置)的电路中机械地实现硬件部件的决策。因此,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或短暂配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被短暂配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个特定处理器或多个特定处理器以例如在一个时刻处构成特定硬件部件并且在不同的时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息并且从其他硬件部件接收信息。相应地,所描述的硬件部件可以被认为是通信上耦接的。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件可以访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,另外的硬件部件可以在随后的时间处访问存储器设备,以检索和处理所存储的输出。硬件部件还可以发起与输入或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。在本文中描述的示例方法的各种操作可以至少部分地由被短暂地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是短暂配置还是永久配置,这样的处理器可以构成进行操作以执行本文描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨多个地理位置分布。
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以有助于这样的指令的通信。指令可以经由网络接口设备使用传输介质在网络上发送或接收。
“计算机可读介质”是指机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物并且可以在本公开内容中互换地使用。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、多个膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。在本公开内容中,客户端设备也被称为“电子设备”。
“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。针对短暂消息的访问时间可以由消息发送者设置。可替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,该消息都是暂时的。

Claims (80)

1.一种方法,包括:
使用处理器来接收图像数据和深度数据;
使用所述处理器来选择对应于三维(3D)效果的增强现实内容生成器;
使用所述处理器来至少部分地基于所选择的增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据;以及
使用处理器来生成包括与所应用的3D效果相关的信息、所述图像数据和所述深度数据的消息。
2.根据权利要求1所述的方法,其中,将所述3D效果应用于所述图像数据和所述深度数据包括:
至少使用所接收的深度数据来生成深度图;
至少基于所接收的图像数据来生成分割掩模;以及
至少使用所述分割掩模对所接收的图像数据执行背景修复和模糊化以生成背景修复后的图像数据。
3.根据权利要求2所述的方法,还包括:
至少部分地基于所述深度图来生成压缩深度图。
4.根据权利要求3所述的方法,其中,生成所述压缩深度图包括:
将单通道浮点纹理转换为原始深度图;以及
至少部分地基于所述原始深度图来生成多个通道。
5.根据权利要求4所述的方法,其中,所述多个通道的精度低于所述单通道浮点纹理的精度,并且在不损失额外精度的情况下经历多个图像处理操作。
6.根据权利要求2所述的方法,还包括:
至少部分地基于所述深度图来生成深度修复掩模;以及
使用所述深度修复掩模执行所述深度图的修复以生成修复后的深度图。
7.根据权利要求6所述的方法,其中,所述修复后的深度图扩展所述深度图的前景区域,所扩展的前景区域用于对所述图像数据的与面部的一部分的呈现相对应的区域执行至少一个图像处理操作,所述面部的一部分对应于毛发、耳朵或肩部。
8.根据权利要求2所述的方法,还包括:
至少部分地基于所述深度图来生成深度法线图;以及
通过使用所述深度法线图将所述3D效果应用于所述图像数据的前景区域来提供后处理的前景图像。
9.根据权利要求1所述的方法,还包括:
将所述消息发送至用于存储所述消息的消息传送服务器,所述消息包括一组资产,所述一组资产包括后处理的前景图像、后处理的深度图和背景修复后的图像。
10.根据权利要求9所述的方法,还包括:
接收命令以发起所存储的消息到至少一个接收设备的共享;以及
将所存储的消息发送到至少一个接收设备。
11.一种系统,包括:
处理器;以及
存储器,其包括指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
使用处理器来接收图像数据和深度数据;
使用所述处理器来选择对应于三维(3D)效果的增强现实内容生成器;
使用所述处理器来至少部分地基于所选择的增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据;以及
使用处理器来生成包括与所应用的3D效果相关的信息、所述图像数据和所述深度数据的消息。
12.根据权利要求11所述的系统,其中,将所述3D效果应用于所述图像数据和所述深度数据包括:
至少使用所接收的深度数据来生成深度图;
至少基于所接收的图像数据来生成分割掩模;以及
至少使用所述分割掩模对所接收的图像数据执行背景修复和模糊化以生成背景修复后的图像数据。
13.根据权利要求12所述的系统,其中,所述操作还包括:
至少部分地基于所述深度图来生成压缩深度图。
14.根据权利要求13所述的系统,其中,生成所述压缩深度图包括:
将单通道浮点纹理转换为原始深度图;以及
至少部分地基于所述原始深度图来生成多个通道。
15.根据权利要求14所述的系统,其中,所述多个通道的精度低于所述单通道浮点纹理的精度,并且在不损失额外精度的情况下经历多个图像处理操作。
16.根据权利要求12所述的系统,其中,所述操作还包括:
至少部分地基于所述深度图来生成深度修复掩模;以及
使用所述深度修复掩模执行所述深度图的修复以生成修复后的深度图。
17.根据权利要求16所述的系统,其中,所述修复后的深度图扩展所述深度图的前景区域,所扩展的前景区域用于对所述图像数据的与面部的一部分的呈现相对应的区域执行至少一个图像处理操作,所述面部的一部分对应于毛发、耳朵或肩部。
18.根据权利要求12所述的系统,其中,所述操作还包括:
至少部分地基于所述深度图来生成深度法线图;以及
通过使用所述深度法线图将所述3D效果应用于所述图像数据的前景区域来提供后处理的前景图像。
19.根据权利要求11所述的系统,其中,所述操作还包括:
将所述消息发送至用于存储所述消息的消息传送服务器,所述消息包括一组资产,所述一组资产包括后处理的前景图像、后处理的深度图和背景修复后的图像。
20.一种非暂态计算机可读介质,包括指令,所述指令在由计算设备执行时使所述计算设备执行操作,所述操作包括:
使用处理器来接收图像数据和深度数据;
使用所述处理器来选择对应于三维(3D)效果的增强现实内容生成器;
使用所述处理器来至少部分地基于所选择的增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据;以及
使用处理器来生成包括与所应用的3D效果相关的信息、所述图像数据和所述深度数据的消息。
21.一种方法,包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括用于应用3D效果的增强现实内容生成器,所述3D效果包括至少一个美化操作;
使用所述客户端设备的摄像机来捕获图像数据和深度数据;
至少部分地基于所述增强现实内容生成器将包括所述至少一个美化操作的所述3D效果应用于所述图像数据和所述深度数据,所述美化操作是作为应用所述3D效果的一部分来执行的;
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来生成3D消息;以及
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来呈现所述3D消息的视图。
22.根据权利要求21所述的方法,其中,将所述3D效果应用于所述图像数据和所述深度数据包括:
对包括面部图像数据的至少所述图像数据的区域执行所述美化操作,所述美化操作包括平滑、照明调整或颜色修改中的至少一者。
23.根据权利要求21所述的方法,其中,所述美化操作还包括使用机器学习模型来保留面部特征结构、平滑瑕疵、去除皱纹或保留面部皮肤纹理。
24.根据权利要求21所述的方法,还包括:
至少部分地基于所述深度数据来确定深度图;
生成与包括面部深度数据的所述深度图的区域相对应的深度修复掩模;以及
至少使用所生成的深度修复掩模来执行所述深度图的深度图修复。
25.根据权利要求24所述的方法,其中,所述深度图包括压缩深度图。
26.根据权利要求25所述的方法,其中,所述压缩深度图具有比所述图像数据的分辨率更低的分辨率。
27.根据权利要求24所述的方法,还包括:
生成所述深度图的法线图,所述法线图用于将照明效果应用于所述图像数据的面部图像数据;以及
至少部分地基于所述法线图将所述照明效果应用于所述面部图像数据。
28.根据权利要求27所述的方法,其中,所述照明效果包括至少两种不同的颜色,所述两种不同颜色中的第一颜色被应用于所述面部图像数据的第一部分,并且所述两种不同颜色中的第二颜色被应用于所述面部图像数据的第二图像。
29.根据权利要求21所述的方法,还包括:
使得显示包括所述多个可选图形项的界面,每个可选图形项对应于一组增强现实内容生成器中的相应的增强现实内容生成器。
30.根据权利要求29所述的方法,还包括:
经由所述客户端设备的触摸屏接收滑动手势;以及
响应于接收到所述滑动手势,使得浏览通过所述多个可选图形项。
31.一种系统,包括:
处理器;以及
存储器,其包括指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括用于应用3D效果的增强现实内容生成器,所述3D效果包括至少一个美化操作;
使用所述客户端设备的摄像机来捕获图像数据和深度数据;
至少部分地基于所述增强现实内容生成器将包括所述至少一个美化操作的所述3D效果应用于所述图像数据和所述深度数据,所述美化操作是作为应用所述3D效果的一部分来执行的;
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来生成3D消息;以及
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来呈现所述3D消息的视图。
32.根据权利要求31所述的系统,其中,将所述3D效果应用于所述图像数据和所述深度数据包括:
对包括面部图像数据的至少所述图像数据的区域执行所述美化操作,所述美化操作包括平滑、照明调整或颜色修改中的至少一者。
33.根据权利要求31所述的系统,其中,所述美化操作还包括使用机器学习模型来保留面部特征结构、平滑瑕疵、去除皱纹或保留面部皮肤纹理。
34.根据权利要求31所述的系统,其中,所述操作还包括:
至少部分地基于所述深度数据来确定深度图;
生成与包括面部深度数据的所述深度图的区域相对应的深度修复掩模;以及
至少使用所生成的深度修复掩模来执行所述深度图的深度图修复。
35.根据权利要求34所述的系统,其中,所述深度图包括压缩深度图。
36.根据权利要求35所述的系统,其中,所述压缩深度图具有比所述图像数据的分辨率更低的分辨率。
37.根据权利要求34所述的系统,其中,所述操作还包括:
生成所述深度图的法线图,所述法线图用于将照明效果应用于所述图像数据的面部图像数据;以及
至少部分地基于所述法线图将所述照明效果应用于所述面部图像数据。
38.根据权利要求37所述的系统,其中,所述照明效果包括至少两种不同的颜色,所述两种不同颜色中的第一颜色被应用于所述面部图像数据的第一部分,并且所述两种不同颜色中的第二颜色被应用于所述面部图像数据的第二图像。
39.根据权利要求31所述的系统,其中,所述操作还包括:
使得显示包括所述多个可选图形项的界面,每个可选图形项对应于一组增强现实内容生成器中的相应的增强现实内容生成器。
40.一种非暂态计算机可读介质,包括指令,所述指令在由计算设备执行时使所述计算设备执行操作,所述操作包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括用于应用3D效果的增强现实内容生成器,所述3D效果包括至少一个美化操作;
使用所述客户端设备的摄像机来捕获图像数据和深度数据;
至少部分地基于所述增强现实内容生成器将包括所述至少一个美化操作的所述3D效果应用于所述图像数据和所述深度数据,所述美化操作是作为应用所述3D效果的一部分来执行的;
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来生成3D消息;以及
至少部分地基于所应用的包括所述至少一个美化操作的3D效果来呈现所述3D消息的视图。
41.一种方法,包括:
基于与每个相应的增强现实内容生成器相关联的元数据从多个可用的增强现实内容生成器中选择一组增强现实内容生成器,所述元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器;
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据和深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
42.根据权利要求41所述的方法,还包括:
至少部分地基于所应用的3D效果来生成3D消息;以及
至少部分地基于所应用的3D效果来呈现所述3D消息的视图。
43.根据权利要求41所述的方法,其中,所述至少一个摄像机包括第一摄像机和第二摄像机,所述第一摄像机具有第一焦距并且所述第二摄像机具有第二焦距,所述第一焦距与所述第二焦距是不同的。
44.根据权利要求43所述的方法,其中,至少部分地基于由所述第一摄像机捕获的第一图像中的第一像素与由所述第二摄像机捕获的第二图像中的第二像素之间的距离来生成视差图,所述第一像素和所述第二像素对应于同一对象。
45.根据权利要求44所述的方法,其中,所述视差图包括其中每个像素包括所述第一图像中的像素到所述第二图像中的对应像素之间的距离值的图像。
46.根据权利要求45所述的方法,其中,所述视差图中的第一对象的第一像素具有比所述视差图中的第二对象的第二像素的亮度更大的亮度,所述第一像素具有比所述第二像素的第二深度值更小的深度值。
47.根据权利要求44所述的方法,其中,至少部分地基于所述视差图来生成深度图。
48.根据权利要求41所述的方法,其中,所述增强现实内容生成器包括美化操作。
49.根据权利要求48所述的方法,其中,所述增强现实内容生成器包括在所述图像数据中的面部图像数据附近呈现的3D对象。
50.根据权利要求41所述的方法,还包括:
使得显示包括多个可选图形项的界面,每个可选图形项对应于所述一组所述增强现实内容生成器中的相应的增强现实内容生成器。
51.一种系统,包括:
处理器;以及
存储器,其包括指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
基于与每个相应的增强现实内容生成器相关联的元数据从多个可用的增强现实内容生成器中选择一组增强现实内容生成器,所述元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器;
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据和深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
52.根据权利要求51所述的系统,其中,所述操作还包括:
至少部分地基于所应用的3D效果来生成3D消息;以及
至少部分地基于所应用的3D效果来呈现所述3D消息的视图。
53.根据权利要求51所述的系统,其中,所述至少一个摄像机包括第一摄像机和第二摄像机,所述第一摄像机具有第一焦距并且所述第二摄像机具有第二焦距,所述第一焦距与所述第二焦距是不同的。
54.根据权利要求53所述的系统,其中,至少部分地基于由所述第一摄像机捕获的第一图像中的第一像素与由所述第二摄像机捕获的第二图像中的第二像素之间的距离来产生视差图,所述第一像素和所述第二像素对应于同一对象。
55.根据权利要求54所述的系统,其中,所述视差图包括其中每个像素包括所述第一图像中的像素到所述第二图像中的对应像素之间的距离值的图像。
56.根据权利要求55所述的系统,其中,所述视差图中的第一对象的第一像素具有比所述视差图中的第二对象的第二像素的亮度更大的亮度,所述第一像素具有比所述第二像素的第二深度值更小的深度值。
57.根据权利要求54所述的系统,其中,至少部分地基于所述视差图来生成深度图。
58.根据权利要求51所述的系统,其中,所述增强现实内容生成器包括美化操作。
59.根据权利要求51所述的系统,其中,所述增强现实内容生成器包括在所述图像数据中的面部图像数据附近呈现的3D对象。
60.一种非暂态计算机可读介质,包括指令,所述指令在由计算设备执行时使所述计算设备执行操作,所述操作包括:
基于与每个相应的增强现实内容生成器相关联的元数据从多个可用的增强现实内容生成器中选择一组增强现实内容生成器,所述元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器;
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据和深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
61.一种方法,包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据;
至少部分地基于所捕获的图像数据使用机器学习模型来生成深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
62.根据权利要求61所述的方法,其中,利用多于一个摄像机来捕获所述图像数据。
63.根据权利要求61所述的方法,其中,使用来自单个摄像机的双像素自动聚焦来捕获所述图像数据。
64.根据权利要求61所述的方法,其中,所述机器学习模型包括基于所捕获的图像数据来提供深度数据的预测的深度神经网络或卷积神经网络。
65.根据权利要求64所述的方法,其中,所述机器学习模型接收所捕获的图像数据作为输入,并且生成深度图作为输出。
66.根据权利要求64所述的方法,其中,所述机器学习模型在所述客户端设备的神经网络处理器或图形处理单元上执行。
67.根据权利要求61所述的方法,还包括:
至少部分地基于所应用的3D效果来生成3D消息;
至少部分地基于所应用的3D效果来呈现所述3D消息的视图;
从所述客户端设备的运动传感器接收运动数据;
至少部分地基于所接收的运动数据来更新所述3D消息的视图;以及
呈现更新后的所述3D消息的视图。
68.根据权利要求61所述的方法,其中,所述至少一个摄像机包括第一摄像机和第二摄像机,所述第一摄像机具有第一焦距并且所述第二摄像机具有第二焦距,所述第一焦距与所述第二焦距是不同的。
69.根据权利要求61所述的方法,还包括:
基于与每个相应的增强现实内容生成器相关联的元数据从多个可用的增强现实内容生成器中选择一组增强现实内容生成器,所述元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器。
70.根据权利要求69所述的方法,还包括:
使得显示包括多个可选图形项的界面,每个可选图形项对应于所述一组增强现实内容生成器中的相应的增强现实内容生成器。
71.一种系统,包括:
处理器;以及
存储器,其包括指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据;
至少部分地基于所捕获的图像数据使用机器学习模型来生成深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
72.根据权利要求71所述的系统,其中,利用多于一个摄像机来捕获所述图像数据。
73.根据权利要求71所述的系统,其中,使用来自单个摄像机的双像素自动聚焦来捕获所述图像数据。
74.根据权利要求71所述的系统,其中,所述机器学习模型包括基于所捕获的图像数据来提供深度数据的预测的深度神经网络或卷积神经网络。
75.根据权利要求74所述的系统,其中,所述机器学习模型接收所捕获的图像数据作为输入,并且生成深度图作为输出。
76.根据权利要求74所述的系统,其中,所述机器学习模型在所述客户端设备的神经网络处理器或图形处理单元上执行。
77.根据权利要求71所述的系统,其中,所述操作还包括:
至少部分地基于所应用的3D效果来生成3D消息;
至少部分地基于所应用的3D效果来呈现所述3D消息的视图;
从所述客户端设备的运动传感器接收运动数据;
至少部分地基于所接收的运动数据来更新所述3D消息的视图;以及
呈现更新后的所述3D消息的视图。
78.根据权利要求71所述的系统,其中,所述至少一个摄像机包括第一摄像机和第二摄像机,所述第一摄像机具有第一焦距并且所述第二摄像机具有第二焦距,所述第一焦距与所述第二焦距是不同的。
79.根据权利要求71所述的系统,其中,所述操作还包括:
基于与每个相应的增强现实内容生成器相关联的元数据从多个可用的增强现实内容生成器中选择一组增强现实内容生成器,所述元数据包括指示相应的增强现实内容生成器包括至少3D效果的信息,所述一组增强现实内容生成器包括至少一个不具有3D效果的增强现实内容生成器和至少一个具有3D效果的增强现实内容生成器。
80.一种非暂态计算机可读介质,包括指令,所述指令在由计算设备执行时使所述计算设备执行操作,所述操作包括:
在客户端设备处接收从多个可选图形项中对可选图形项的选择,所述可选图形项包括增强现实内容生成器,所述增强现实内容生成器包括3D效果;
使用所述客户端设备的至少一个摄像机来捕获图像数据;
至少部分地基于所捕获的图像数据使用机器学习模型来生成深度数据;以及
至少部分地基于所述增强现实内容生成器将所述3D效果应用于所述图像数据和所述深度数据。
CN202080067321.7A 2019-08-28 2020-08-28 在消息传送系统中生成3d数据 Pending CN114730483A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201962893048P 2019-08-28 2019-08-28
US201962893046P 2019-08-28 2019-08-28
US201962893037P 2019-08-28 2019-08-28
US201962893050P 2019-08-28 2019-08-28
US62/893,046 2019-08-28
US62/893,037 2019-08-28
US62/893,048 2019-08-28
US62/893,050 2019-08-28
PCT/US2020/070480 WO2021042134A1 (en) 2019-08-28 2020-08-28 Generating 3d data in a messaging system

Publications (1)

Publication Number Publication Date
CN114730483A true CN114730483A (zh) 2022-07-08

Family

ID=72433132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080067321.7A Pending CN114730483A (zh) 2019-08-28 2020-08-28 在消息传送系统中生成3d数据

Country Status (4)

Country Link
EP (1) EP4022560A1 (zh)
KR (1) KR102624635B1 (zh)
CN (1) CN114730483A (zh)
WO (1) WO2021042134A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11676342B2 (en) 2019-08-28 2023-06-13 Snap Inc. Providing 3D data for messages in a messaging system
US11748957B2 (en) 2019-08-28 2023-09-05 Snap Inc. Generating 3D data in a messaging system
US11825065B2 (en) 2019-08-28 2023-11-21 Snap Inc. Effects for 3D data in a messaging system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11410401B2 (en) 2019-08-28 2022-08-09 Snap Inc. Beautification techniques for 3D data in a messaging system
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
CN112967201A (zh) * 2021-03-05 2021-06-15 厦门美图之家科技有限公司 图像光照调节方法、装置、电子设备及存储介质
US20220321769A1 (en) * 2021-03-30 2022-10-06 Snap Inc. Inclusive camera
WO2023064073A1 (en) * 2021-10-14 2023-04-20 Nvidia Corporation Automatic instantiation of native virtual interfaces for streaming applications
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat
KR102538783B1 (ko) * 2022-09-27 2023-06-01 주식회사 미러로이드 가상 헤어 스타일링 체험을 위한 민머리 인물 이미지 생성 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161532A (ja) * 1994-12-07 1996-06-21 Nec Corp 3次元描画装置および3次元描画方法
KR20090088905A (ko) * 2006-12-15 2009-08-20 톰슨 라이센싱 인터랙티브 시각 효과 합성을 위한 시스템 및 방법
US8774267B2 (en) * 2010-07-07 2014-07-08 Spinella Ip Holdings, Inc. System and method for transmission, processing, and rendering of stereoscopic and multi-view images
KR102132242B1 (ko) * 2013-11-04 2020-07-10 현대모비스 주식회사 스테레오 카메라 보정 시스템
KR20180087994A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 스테레오 매칭 방법 및 영상 처리 장치
US20180300937A1 (en) * 2017-04-13 2018-10-18 National Taiwan University System and a method of restoring an occluded background region
WO2018226264A1 (en) * 2017-06-04 2018-12-13 Apple Inc. User interface camera effects
KR20200026808A (ko) * 2017-07-13 2020-03-11 시쉐이도 아메리카스 코포레이션 가상 얼굴 메이크업 제거, 빠른 얼굴 검출, 및 랜드마크 추적
US11394898B2 (en) * 2017-09-08 2022-07-19 Apple Inc. Augmented reality self-portraits

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11676342B2 (en) 2019-08-28 2023-06-13 Snap Inc. Providing 3D data for messages in a messaging system
US11748957B2 (en) 2019-08-28 2023-09-05 Snap Inc. Generating 3D data in a messaging system
US11776233B2 (en) 2019-08-28 2023-10-03 Snap Inc. Beautification techniques for 3D data in a messaging system
US11825065B2 (en) 2019-08-28 2023-11-21 Snap Inc. Effects for 3D data in a messaging system
US11961189B2 (en) 2019-08-28 2024-04-16 Snap Inc. Providing 3D data for messages in a messaging system

Also Published As

Publication number Publication date
KR102624635B1 (ko) 2024-01-15
WO2021042134A1 (en) 2021-03-04
EP4022560A1 (en) 2022-07-06
KR20220051376A (ko) 2022-04-26

Similar Documents

Publication Publication Date Title
US11961189B2 (en) Providing 3D data for messages in a messaging system
US11776233B2 (en) Beautification techniques for 3D data in a messaging system
US11783556B2 (en) Augmented reality content generators including 3D data in a messaging system
US11410401B2 (en) Beautification techniques for 3D data in a messaging system
KR102624635B1 (ko) 메시징 시스템에서의 3d 데이터 생성
US11825065B2 (en) Effects for 3D data in a messaging system
CN116420171A (zh) 程序地生成增强现实内容生成器
KR20230162987A (ko) 서드 파티 애플리케이션들을 위한 증강 현실 콘텐츠에서의 얼굴 합성
KR20230162977A (ko) 얼굴 합성을 포함하는 상호작용적 증강 현실 콘텐츠
KR20230162096A (ko) 얼굴 표정의 선택을 사용한 온라인 커뮤니티를 위한 콘텐츠에서의 얼굴 합성
KR20230162107A (ko) 증강 현실 콘텐츠에서의 머리 회전들에 대한 얼굴 합성
KR20230162972A (ko) 광고를 위한 증강 현실 콘텐츠에서의 얼굴 합성
KR20230162971A (ko) 오버레이된 증강 현실 콘텐츠에서의 얼굴 합성
CN116235217A (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