CN117635414A - 实时跟踪补偿图像效果 - Google Patents

实时跟踪补偿图像效果 Download PDF

Info

Publication number
CN117635414A
CN117635414A CN202311642293.9A CN202311642293A CN117635414A CN 117635414 A CN117635414 A CN 117635414A CN 202311642293 A CN202311642293 A CN 202311642293A CN 117635414 A CN117635414 A CN 117635414A
Authority
CN
China
Prior art keywords
image
pipeline
modified
message
previous frame
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
CN202311642293.9A
Other languages
English (en)
Inventor
S·E·黑尔
F·波利亚科夫
王国晖
X·熊
杨建朝
杨林杰
S·T·阿尼尔库马尔
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 CN117635414A publication Critical patent/CN117635414A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • 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/10016Video; Image sequence
    • 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/20081Training; Learning
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

提供用于实时跟踪补偿图像效果的方法、系统和计算机可读介质。移动设备可以使用异步处理流水线来生成实时复杂视觉图像效果。第一流水线将诸如神经网络之类的复杂图像处理应用于实况图像序列的关键帧。第二流水线生成描述图像序列中的特征转换的流图。流图可以用于在运行中处理非关键帧。已处理的关键帧和非关键帧可以用于实时地或接近实时地在移动设备上显示复杂的视觉效果。

Description

实时跟踪补偿图像效果
本申请是2018年9月14日提交的申请号为201880058843.3、发明名称为“实时跟踪补偿图像效果”的专利申请的分案申请。
优先权申请
本申请要求享有于2017年9月15日提交的美国专利申请序列号15/706,096的优先权的权益,其中每个优先权的权益在此都被要求保护,并且将上述申请的内容通过引用整体并入本文。
技术领域
本公开一般涉及被配置到管理电子图像处理的专用机器的技术领域的机器以及对这种变体的改进机器,并且涉及与用于管理异步实时图像序列处理的其他专用机器相比,使这种专用机器得到了改进的技术。
背景技术
计算机可以使用复杂的计算机视觉(CV)方案(例如卷积神经网络)来执行图像处理。CV方案可能需要密集的计算,并且通常需要强大的处理器和大量的存储器。
在移动装置上执行CV方案通常是不切实际的,因为移动装置的计算资源有限的,这会导致较长的处理时间。更有甚者,使用移动设备实时(例如,每秒30帧)应用密集CV方案当前是非常困难的,如果不是不可能的话。
附图说明
为了容易地识别任何特定元件或动作的讨论,参考数字中的最高有效数字指的是首次引入该元件或动作的附图("图")编号。
图1是示出用于通过网络交换数据(例如,消息和相关的内容)的示例消息收发系统的框图。
图2是示出根据示例实施例的关于具有集成的虚拟对象机器学习系统的消息传递系统的更多细节的框图。
图3是示出根据某些示例实施例的可以存储在消息传递服务器系统的数据库中的数据的示意图。
图4是示出根据一些实施例的由消息传递客户端应用生成的用于通信的消息的结构的示意图。
图5是示出了示例访问限制过程的示意图,根据该过程,对内容(例如,短暂消息和相关联的多媒体数据有效载荷)或内容集合(例如,短暂消息故事)的访问可以是时间受限的(例如,制成短暂的)。
图6示出了根据一些示例实施例的基于跟踪的成像系统的示例内部功能组件。
图7示出了根据一些示例实施例的用于实现跟踪补偿图像效果的示例方法的流程图。
图8示出了根据一些示例实施例的用于实现对于图像处理的异步跟踪补偿的示例方法的流程图。
图9示出了根据一些示例实施例的图像和对应的图像掩模的示例。
图10示出了根据一些示例实施例的用于实现基于跟踪的成像系统的示例数据流。
图11示出了根据一些示例实施例的用于使用跟踪方案生成已修改的图像的示例数据流。
图12示出了根据一些示例实施例的用于细化图像掩模的数据流。
图13是示出了可以与本文所述的各种硬件架构结合使用的代表性软件架构的框图。
图14是示出根据一些示例实施例,能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的任何一个或多个的方法的机器的组件的框图。
具体实施方式
下面的描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说,显然,本发明主题的实施例可以在没有这些具体细节的情况下实施。通常,众所周知的指令实例、协议、结构和技术不一定被详细示出。
计算机可以使用复杂的计算机视觉(CV)方案来执行图像处理,例如使用卷积神经网络(CNN)来生成图像掩模(mask)。图像掩模是标记给定图像区域的数值的集合。在一些示例实施例中,可以通过使用CNN生成关键帧图像掩模,然后使用光流跟踪算法来创建用于非关键帧的图像掩模,从而生成实况视频的图像掩模。图9示出了图像900和相应的图像掩模905的示例。图像900是拿着酒杯的女孩的图像。CNN可被训练以检测给定图像的不同区域,诸如皮肤区域、衣服区域、帽子区域等等。经过训练的CNN然后可以接收图像作为输入,并且确定图像的哪些区域对应于例如帽子片段、皮肤片段或衣服片段,并且创建具有用于检测到的部分的像素值的新图像掩模。
在图9的示例中,CNN已经接收图像900作为输入,并且已经生成了带有标记片段的图像掩模905,所述标记片段包括帽子片段910、一个或多个皮肤片段915(女孩的脸和手)以及衣服片段920。每个片段可以具有已经被预先分配为给定片段作为标签的数值。例如,帽子片段910的像素可以具有值1,一个或多个皮肤片段915可以具有值2,并且衣服片段920可以具有值3。如下面进一步详细讨论的,根据一些示例实施例,掩模值被存储在具有与原始图像相同的尺寸维度的分开的图像中。
在一些示例实施例中,图像掩模905可以用于通过指定片段值来将效果应用到图像900的区域。例如,通过替换对应于图像900中的帽子片段910的像素值,可以将女孩帽子的颜色从红色(其原始颜色)改变为蓝色。此外,如果图像900是视频序列的一部分,则可以为视频序列中的每个图像计算图像掩模,并且女孩的帽子可以在每个图像中被重新着色为蓝色,从而使得帽子在整个视频序列中呈现蓝色。
尽管复杂的CV方案(例如基于CNN的图像分割)可以实现令人印象深刻的视觉效果,但是这些方案通常需要密集的计算,并且需要功能强大的处理器和大量的存储器。因此,从低功率计算机(例如智能手机)运行该方案通常是不切实际的。尽管一些客户端装置可能能够执行复杂CV方案,但处理时间可能比用户预期的长(例如,每个图像四秒)。考虑到较长的移动设备处理时间,大多数客户端设备无法实现CNN修改图像的实时显示,因为实时处理可能需要每秒30帧或更多帧。
为此,基于跟踪的成像系统可以通过使用复杂图像处理方案(例如,CNN)处理图像序列的关键帧,并且使用跟踪方案(例如,光流图)异步地处理非关键帧,来生成实时复杂图像效果。图10示出了根据一些示例实施例的用于实现基于跟踪的成像系统的示例数据流1000。图像序列1010是包括IMG1-IMG6的图像序列(例如,视频),其在时间1005的方向上从左到右被捕获。已修改图像序列1015是已修改的图像的序列,例如图像掩模。已修改图像序列1015可以用于生成包括输出图像O1-O6的输出图像序列1020,其被显示在客户端设备的显示屏上。
作为说明性示例,假定图像序列1010中的IMG1是图9的图像900中描绘的女孩的IMG1,并且图像序列1010中的其余图像是女孩戴着红帽在周围移动的照片。此外,(已修改的成像序列1015的)M1是图9的图像掩模905。此外,M2到M6是女孩在周围移动时跟踪该女孩的片段(例如,头发、衣服)的掩模。M1-M6掩模可以用于施加图像效果以生成输出图像序列1020,其可以描绘戴着蓝帽子移动的女孩。
根据一些示例实施例,可以利用较慢算法(诸如CNN)来处理已修改图像序列中的一些已修改的图像M1-M6,并且可以利用较快算法(诸如光流)来生成一些掩模。特别地,将缓慢或更耗时的图像处理应用于图像序列1010的关键帧,其中关键帧是图像序列1010的交替图像。
例如,假设基于CNN的图像片段应用于每一其他图像;因此,IMG1是关键帧(KF)并且用于使用CNN生成M1,IMG3是关键帧,并且用于生成M3,以此类推。为了处理非关键帧(例如,IMG2、IMG4等),生成光流图并将其应用于已修改的图像,如下面进一步详细讨论的。通过不使用慢CNN来处理一些图像掩模,可以大大加快整个处理过程;输出图像序列1020可以被实时或接近实时地显示,用户可以将其记录并发布为短暂消息,如下面进一步详细讨论的。
图11示出了根据一些示例实施例的用于使用跟踪方案生成已修改的图像的示例数据流1100。与图10类似,图11示出了由客户端设备捕获的图像序列1105,以及已修改图像序列1110,其可以是掩模或最终图像输出以供显示。在一些示例实施例中,CNN接收IMG1作为输入并且生成M1作为输出。为了生成M2,使用光流图算法。尤其是,生成描述从IMG1到IMG2的变换的光流图1115,这些是图像序列1105中的原始图像。然后将流程图1115应用于M1以创建M2,从而避免将CNN应用于IMG2以创建M2。在一些示例实施例中,用于生成流图的两个图像,被附加的的顺序图像1120隔开,如下面参考图8、11和12更详细的讨论。
图1示出了用于通过网络106交换数据(例如,使用已修改图像序列1110创建的社交媒体发布)的示例消息传递系统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的用户界面(UI)可用的功能来调用和控制消息传递系统100内的数据交换。
现在具体转到消息收发服务器系统108,应用编程接口(API)服务器110耦合到应用服务器112,并提供程序接口。应用服务器112通信地耦合到数据库服务器118,这有助于访问数据库120,其中存储了与应用服务器112所处理的消息相关联的数据。
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内的实体图(例如,图3中的实体图304)。由社交网络系统122支持的功能和服务的示例包括与特定用户有关联或者特定用户"跟随"的消息传递系统100的其他用户的标识,以及特定用户的兴趣和其他实体的标识。
应用服务器112通信地耦合到数据库服务器118,其促进对数据库120的访问,数据库120中存储有与消息传递服务器应用114所处理的消息相关联的数据。
图2是示出根据示例实施例的关于消息传递系统100的更多细节的框图。具体而言,消息传递系统100被示为包括消息传递客户端应用104和应用服务器112,它们又包含多个子系统,即短暂定时器系统202、集合管理系统204、注释系统206和基于跟踪的成像系统210。
短暂定时器系统202负责对消息传递客户端应用104和消息传递服务器应用114所允许的内容进行临时访问。为此,短时定时器系统202包括多个定时器,这些定时器基于与消息或消息集合(例如,SNAPCHAT故事)相关联的持续时间和显示参数,经由消息传递客户端应用104有选择地显示和启用对消息和相关联的内容的访问。下面提供关于短暂定时器系统202的操作的进一步细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像、视频和音频数据的集合)。在一些示例中,内容的集合(例如,包括图像、视频、文本和音频的消息)可以被组织为"事件图库"或"事件故事"。可以使这样的集合在指定的时间段内可用,所述指定的时间段诸如与内容相关的事件的持续时间。例如,可以使与音乐会有关的内容可在该音乐会的持续时间内作为"故事"可用。集合管理系统204还可负责向将提供存在特定集合的通知的图标发布到消息传递客户端应用104的用户接口。
集合管理系统204还包括策划接口(curation interface)208,该策划接口208允许集合管理器管理和策划特定的内容集合。例如,策划接口208使得事件组织者能够策划与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地组织内容集合。在某些实施例中,可以向用户支付补偿,以将用户生成的内容包括在集合中。在这样的情况下,策划接口208操作以自动向此类用户付款以使用其内容。
注释系统206提供使得用户能够注释或者修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与针对消息系统100所处理的消息的媒体覆盖的生成和发布相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息收发客户端应用104提供媒体覆盖(例如,SNAPCHAT地理过滤器或过滤器)。在另一示例中,注释系统206基于诸如客户端设备102的用户的社交网络信息之类的其他信息,可操作地向消息传递客户端应用104提供媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标识、动画和音效。视觉效果的示例包括颜色叠加。可以将音频和视觉内容或视觉效果应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖包括可以覆盖在由客户端设备102生成的照片之上的文本。在另一个示例中,媒体覆盖包括位置(例如,威尼斯海滩)的标识、实况事件的名称、或商家的覆盖的名称(例如,海滩咖啡馆)。在另一示例中,注释系统206使用客户端设备102的地理位置来识别包括在客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖图可以存储在数据库120中并且通过数据库服务器118来访问。
在一个示例实施例中,注释系统206提供基于用户的发布平台,该发布平台使用户能够选择地图上的地理位置,并且上载与所选择的地理位置相关联的内容。用户还可以指定特定这样的环境,在该环境下向其他用户提供特定媒体覆盖。注释系统206生成包括所上载的内容的媒体覆盖,并将所上载的内容与所选择的地理位置相关联。
在另一示例实施例中,注释系统206提供基于商家的发布平台,该发布平台使商家能够经由投标过程选择与地理位置相关联的特定媒体覆盖。例如,注释系统206将出价最高的商家的媒体覆盖与相应的地理位置相关联预定义的时间量。
基于跟踪的成像系统210被配置成实时应用复杂的图像处理,使得用户可以查看效果并创建图像序列。图像序列可以是使用注释系统206进行注释,并且作为短时消息502发布,这将在下面参考图5进一步详细讨论。
图3是示出根据某些示例实施例的可以存储在消息传递服务器系统108的数据库120中的数据300的示意图。虽然数据库120的内容被示为包括多个表,但是将理解,数据可以存储在其它类型的数据结构中(例如,作为面向对象的数据库)。
数据库120包括存储在消息表314中的消息数据。实体表302存储包括实体图304的实体数据。在实体表302内为其保留记录的实体可包括个人、公司实体、组织、对象、地点、事件等。无论何种类型,消息传递服务器系统108存储的数据涉及的任何实体都可以识别出的实体。每个实体具有唯一的标识符以及实体类型标识符(未示出)。
实体图304还存储关于实体之间的关系和关联的信息。例如,这种关系可以是社交的、专业的(例如,在共同的公司或组织工作)、基于兴趣的或基于活动的。
数据库120还在注释表312中存储注释数据,包括以过滤器的示例形式。在注释表312中存储有数据的过滤器与视频(其数据被存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联,并被应用于视频和/或图像。在一个示例中,过滤器是覆盖,在向接收者用户呈现期间显示为覆盖在图像或视频上。过滤器可以是各种类型的,包括来自过滤器库的用户选择的过滤器,当发送用户正在编写消息时由消息传递客户端应用104向该发送用户呈现该过滤器库。其它类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,可以通过消息传递客户端应用104用户接口内呈现特定于邻域或特殊位置的地理位置过滤器。另一种类型的过滤器是数据过滤器,其可以基于由客户端设备102在消息创建过程期间收集的其他输入或信息,由消息传递客户端应用104有选择地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命、或当前时间。
可以存储在图像表格308内的其他注释数据是所谓的"镜头"数据。"镜头"可以是可以被添加到图像或视频的实时特殊效果和声音。
如上所述,视频表310存储视频数据,在一个实施例中,该视频数据与这样的消息相关联,在消息表314内为该消息维护了记录。类似地,图像表308存储与消息314中为其存储消息数据的消息相关联的图像数据。实体表302可将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储关于消息集合和相关联的图像、视频或音频数据的数据,这些数据被编译成集合(例如,SNAPCHAT故事或图库)。特定集合的创建可由特定用户(例如,在实体表302中为其保留记录的任何用户)发起。用户可以采用已由该用户创建并发送/广播的内容的集合的形式创建"个人故事"。为此,消息传递客户端应用104的用户接口可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。
集合还可以构成"实况故事",它是来自多个用户的内容的集合,这些集合是手动、自动或者使用手动和自动技术的组合来创建的。例如,"实况故事"可以构成来自各种位置和事件的用户提交的内容的策略流。可以经由消息传递客户端应用104的用户接口向其客户端设备102已启用位置服务并且在特定时间处于共同位置或事件的用户呈现选项,以向特定实况故事贡献内容。实时故事可以由消息传递客户端应用104基于用户的位置来向该用户标识“实况故事”。最终的结果是从社区角度讲述的"实况故事"。
另一类型的内容集合被称为"位置故事",其使得其客户端设备102位于特定地理位置内(例如,在大学或大学校园内)的用户能够对特定集合作出贡献。在一些实施例中,对于位置故事的贡献可能需要第二级认证,以验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
图4是示出根据一些实施例的由消息传递客户端应用104生成的用于与另一消息传递客户端应用104或消息传递服务器应用114通信的消息400的结构的示意图。特定消息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:以秒为单位的参数值,指示消息400的内容(例如,消息图像有效载荷406、消息视频有效载荷408和消息音频有效载荷410)将通过消息传递客户端应用104向用户呈现或者使用户可以访问的的时间量的参数值。
●消息地理位置参数416:与消息400的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个与内容中包括的各自的内容项(例如,消息图像有效载荷406中的特定图像,或消息视频有效载荷408中的特定视频)相关联。
●消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或多个内容集合(例如,"故事")的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
●消息标签420:一个或多个标签,每个标签指示包括在消息有效载荷中的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如狮子)的情况下,可以在消息标记420内包括指示相关动物的标记值。标记值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
●消息发送者标识符422:指示客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符),在该客户端设备102上生成消息400并从其发送消息400。
●消息接收者标识符424:指示消息400所寻址到的客户端设备102的用户的标识符(例如,消息传递系统标识符、电子邮件地址或设备标识符)。
消息400的各种成分的内容(例如,值)可以是指向表中存储内容数据值的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置的指针(或地址)。类似地,消息视频有效载荷408中的值可以指向视频表310中存储的数据,存储在消息注释412中的值可以指向存储在注释表312中的数据,存储在消息故事标识符418中的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424中的值可以指向存储在实体表302内的用户记录。
图5是示出了访问限制过程500的示意图,根据该访问限制过程500,可以是对内容(例如,短暂消息502和相关联的多媒体数据有效载荷)或内容集合(例如,短暂消息故事504)的访问可以是时间受限的(例如,使其短暂)。
短暂消息502被示出为与消息持续时间参数506相关联,显示持续时间参数506的值确定了短暂消息502将被收发客户端应用104显示给短暂消息502的接收用户的时间量。在一个实施例中,在消息传递客户端应用104是SNAPCHAT应用客户端的情况下,短暂消息502可由接收用户查看最多10秒,这取决于发送用户使用消息持续时间参数506指定的时间量。
消息持续时间参数506和消息接收器标识符424被示出为到消息定时器512的输入,消息定时器512负责确定向由由消息接收器标识符424标识的特定接收用户显示短暂消息502的时间量。特别地,短暂消息502将仅在由消息持续时间参数506的值确定的时间段内被显示给相关接收用户。消息定时器512被示出为将输出提供给向更通用的短暂定时器系统202,该短暂定时器系统202负责向接收用户显示内容(例如,短暂消息502)的整体计时。
短暂消息502在图5中示出为将被包括在短暂消息故事504(例如,个人SNAPCHAT故事或事件故事)中。短暂消息故事504具有相关联的故事持续时间参数508,故事持续时间参数508的值确定短时消息故事504可用并并且可供消息传递系统100的用户访问的持续时间。例如,故事持续时间参数508可以是音乐会的持续时间,其中短暂消息故事504是与该音乐会有关的内容的集合。或者,当执行短暂消息故事504的设置和创建时,用户(拥有用户或策划用户)可以指定故事持续时间参数508的值。
另外,短暂消息故事504内的每个短暂消息502具有相关联的故事参与参数510,其值确定短暂消息502在短时消息故事504的上下文中将可访问的持续时间。因此,在短暂消息故事504本身按照故事持续时间参数508到期之前,特定短暂消息502可能在短暂消息故事504的上下文中“到期”并且变得不可访问。故事持续时间参数508、故事参与参数510和消息接收方标识符424每个都提供输入给故事定时器514,故事定时器514操作上确定特定短暂消息故事504的短暂消息502是否将向被显示给特定的接收用户,以及如果显示,显示多长时间。请注意,由于消息接收者标识符424,短暂消息故事504还知道特定接收用户的身份。
因此,故事定时器514操作地控制相关联的短暂消息报道504以及包括在短暂消息故事504中的单独短暂消息502的整体寿命。在一个实施例中,短暂消息故事504内的每个短暂消息502在故事持续时间参数508指定的时间段内保持可见和可访问。在另一个实施例中,基于故事参与参数510,某些短暂消息502在短暂消息故事504的上下文内可能到期。注意,即使在短暂消息故事504的上下文中,各自的显示持续时间参数506仍然可以确定短暂消息502向接收用户显示特定短暂消息502的持续时间。因此,显示持续时间参数506确定特定短暂消息502被显示给接收用户的持续时间,而不管接收用户是在短暂消息故事504的上下文内还是外部查看该短暂消息502。
短暂定时器系统202还可以基于确定已经超过关联的故事参与参数510,从短暂消息故事504中移除特定短暂消息502。例如,当发送用户已经建立从发布起24小时的故事参与参数510时,短暂定时器系统202将在指定的24小时之后从短暂消息故事504中移除相关短暂消息502。短暂定时器系统202还用于在短暂消息故事504内的每个短暂消息502的故事参与参数510已经到期时,或者当短暂消息故事504本身根据故事持续时间参数508已经到期时,移除短暂消息故事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相关联的标记(例如,图标或文本标识)。
图6示出了根据一些示例实施例的基于跟踪的成像系统210的示例内部功能组件。如图所示,基于跟踪的成像系统210包括图像引擎605、编辑引擎610、跟踪引擎615、显示引擎620和流水线引擎625。图像引擎605经配置以使用客户端装置102产生一个或多个图像(例如,使用图像传感器),并将图像显示在在客户端装置102的显示装置上。根据一些示例实施例,图像引擎605还被配置为接收指令,以用于在一个或多个图像上应用图像效果。图像效果可能需要基于CNN的图像分割、基于CNN的对象跟踪或其他计算密集的图像处理操作。
根据一些示例实施例,编辑引擎610被配置为将学习方案(诸如卷积神经网络)应用于一个或多个图像。跟踪引擎615被配置为例如使用流图跨多个图像跟踪图像特征。例如,跟踪引擎615可以使用光流方案来创建光流图,其描述图像特征(例如,显示图像特征的像素)如何从一个图像变换或移动到后续图像。跟踪引擎615还被配置成将流图应用于图像以生成新图像。显示引擎620管理将由编辑引擎610和跟踪引擎615生成的图像组合成可以在客户端设备102上实时显示并且作为短暂消息502发布的已修改图像序列。流水线引擎625管理从第一流水线(例如,线程)操作的编辑引擎610和从第二流水线(例如,附加线程)操作的跟踪引擎615的编排,如以下进一步详细讨论的。
图7示出了根据一些示例实施例的用于实现跟踪补偿图像效果的示例方法700的流程图。在操作705,图像引擎605在客户端设备(例如,客户端设备102)的显示器上显示图像序列。例如,图像引擎605使用客户端设备相机来捕捉视频。图像引擎605随后在客户端设备的显示设备(例如,屏幕)上实时或接近实时地显示视频(例如,在对象被成像和被显示在客户端设备的屏幕上之间没有明显的延迟)。在操作710,图像引擎605接收指令以可视地修改图像序列。特别的,例如,客户端设备的用户可以选择生成用于可视地修改图像序列的指令的用户界面(UI)按钮。指令可能需要由卷积神经网络(CNN)生成的效果,诸如图像分割、对象分类、对象跟踪、人形识别或其他图像方案。
在操作715,机器学习引擎将机器学习方案应用于图像序列的关键帧。在一些示例实施例中,关键帧是图像序列中的每第N个图像;例如,每两个图像(N=2)、每三个图像、每五个图像等等。在一些示例实施例中,取决于客户端设备的类型而预配置N。例如,如果编辑引擎610检测到其正在从最新型号客户端设备(例如,如2017年8月的iPhone7)执行,则N=2;而如果编辑引擎610检测到它是从较旧型号的客户端设备(例如,如2017年8月的iPhone4)执行,则可以将N设置为高于2,例如,N=5。在一些示例实施例中,哪个图像是关键帧(并且因此由编辑引擎610处理),这取决于编辑引擎610可以从其异步流水线以多快的速度操作而变化,如下文进一步详细讨论的。
在操作720,跟踪引擎615生成在当前图像和由编辑引擎610生成的最后图像之间的流图。当前图像是还没有被编辑引擎610或跟踪引擎615处理的图像序列的图像。在一些示例实施例中,流图是光流图,其包括描述图像特征的像素如何从一个图像移动到后续图像的矢量变换(例如,变换、缩放)。
在操作725,跟踪引擎615使用流图生成丢失帧。丢失的帧是编辑引擎610已跳过的或没有机会处理的(例如,因为编辑引擎610正忙于处理较早的图像)、在关键帧之间的帧。在一些示例实施例中,跟踪引擎615通过将流图应用于由编辑引擎610生成的最后修改的图像,来生成给定的缺失的帧。
在操作730,显示引擎620在显示装置上实时显示最终图像序列。如上所述,最终图像序列中的某些图像是由较慢的方案(例如CNN)生成的,而某些图像则由较快的方案(例如光流)生成的,并且在运行过程(on-the-fly)中组合,从而提高整体速度。
图8示出了根据一些示例实施例的用于图像的实时跟踪补偿处理的示例方法800的流程图。在那些示例实施例中,编辑引擎610和跟踪引擎615异步地(例如,并发地、并行地)在不同的流水线中操作。例如,编辑引擎610可以应用CNN在第一线程中生成图像掩模,并且跟踪引擎615在第二线程中生成图像掩模。编辑引擎610通常应用比跟踪引擎615所应用的更密集的计算方案(例如,CNN);因此,尽管它们正在针对相同图像序列工作,但是编辑引擎610通常滞后于跟踪引擎615多个帧。允许滞后量根据编辑引擎610完成其处理的速度而变化。跟踪引擎615被配置成通过生成流图并将该流图应用于编辑引擎610输出的最后的图像来补偿编辑引擎610的变化的滞后,从而生成当前帧的新的已修改图像。图8示出了根据一些示例实施例的动态异步过程的示例。在图8中,"K"指原始图像序列(例如,图像序列1105),因此IMG1是K1,IMG2是K2,以此类推。此外,在图8中,没有数字的K是当前帧,因为它是下一个要处理的图像。此外,N个轨道顺序,因此K-N是当前帧之前的某一图像(例如,K-1是紧接在当前图像K之前的图像)。
在操作805,图像引擎605生成图像序列,例如K1、K2、K3等。在操作810,编辑引擎610开始处理每个图像以生成已修改的图像M1、M2、M3等。例如,编辑引擎610将训练过的CNN应用于K1以生成M1,以此类推。在操作815处,流水线引擎625确定编辑引擎610是否滞后。例如,流水线引擎625确定编辑引擎610是否仍在处理当前帧之前的图像,其中当前帧是要处理的下一图像。如果编辑引擎610没有滞后,则方法800返回到操作810,其中编辑引擎610将CNN应用于下一图像。
如果编辑引擎610滞后,则在操作820中,流水线引擎625实例化第二流水线(例如,线程)以生成流图。具体地,从第二流水线操作的跟踪引擎615生成在当前帧和编辑引擎610已经为其生成输出的最后帧之间的流图。例如,如果编辑引擎610最后生成了当前帧之后五帧的图像掩模,则在原始图像后退五帧与当前图像之间生成流图。流图因此捕获了从编辑引擎610当前滞后于要处理的当前帧起的变化。在操作825,跟踪引擎615将流图应用于编辑引擎610的实际的最后输出,以生成当前帧的输出(例如,掩模)。允许810、815、820和825的操作根据每一流水线中的引擎可以操作多快而变化。在操作830,在显示装置上实时或接近实时地显示最终图像序列。
如所讨论的,在一些示例实施例中,最终图像序列可以是使用编辑引擎610和跟踪引擎615的输出生成的另一图像序列。例如,由两个流水线异步生成的图像掩模可以被应用以在最终图像序列中将帽子的颜色从红色替换为蓝色。在一些示例实施例中,编辑引擎610和跟踪引擎615的输出是在操作830显示的图像(例如,不是图像掩模)。例如,编辑引擎610可以将基于CNN的艺术风格应用于图像(例如,风格转移),并且跟踪引擎615模仿艺术风格,并且实时地整理和显示引擎的输出。
跳到图12,图12示出了根据一些示例实施例的用于细化图像掩模的数据流1200。帧存储器1235存储原始图像序列(例如,图11的图像序列1105)的图像,而掩模存储器1240存储图像掩模(例如,图11的已修改图像序列1110)。帧存储器1235和掩模存储器1240可以是跟踪最后N个帧的滚动缓冲器,例如,当前帧之前的最后100个帧,其中当前帧是要处理的下一帧。
当前帧1205被输入到跟踪引擎615中,如上所述,其使用当前帧1205和来自帧存储器1235的前一帧来生成新的掩模1220,(例如,前一帧是具有掩模的帧)。新的掩模1220被存储在掩模存储器1240中,因此它可以用于生成最终图像(例如,具有蓝色帽子而不是红色帽子的女孩)。
新的掩模1220可以是粗糙的,因为它是使用光流1210生成的近似。为了提高新掩模1220的精度,跟踪引擎615实现引导滤波器1225,其使用当前帧1205作为引导,来细化和校正新掩模1220中的误差。然后,从引导滤波器1225输出细化的掩模1230,用于进一步处理(例如,用于将帽子从红色重新着色为蓝色)。
图13是示出了示例软件架构1306的框图,该示例软件体系结构1306可以与本文所述的各种硬件架构结合使用。图13是软件体系结构的非限制性示例,并且应当理解,可以实现许多其它体系结构来促进本文描述的功能。软件体系结构1306可以在诸如图14的机器1400的硬件上执行,该硬件包括处理器、存储器和I/O组件等。示出了代表性硬件层1352可以表示例如图14的机器1400。代表性硬件层1352包括具有相关联的可执行指令1304的处理单元1354。可执行指令1304表示软件体系结构1306的可执行指令,包括本文所描述的方法、组件等的实现。硬件层1352还包括存储器/存储1356,其还具有可执行指令1304。硬件层1352还可以包括其他硬件1358。
在图13的示例架构中,软件架构1306可以被概念化为层的堆栈,其中每层提供特定的功能。例如,软件体系结构1306可以包括诸如操作系统1302、库1320、框架/中间件1318、应用1316和表示层1314之类的层。在操作上,应用1316和/或层内的其他组件可以通过软件栈调用API调用1308,并以消息1312的形式接收响应。所示出的层本质上是代表性的,并且不是所有的软件体系结构都具有所有的层。例如,一些移动或专用操作系统可能不提供框架/中间件1318,而其他操作系统可能提供这样的层。其它软件体系结构可能包括其他或不同的层。
操作系统1302可以管理硬件资源并提供公共服务。操作系统1302可以包括例如内核1322、服务1324和驱动器1326。内核1322可以充当硬件与其它软件层之间的抽象层。例如,内核1322可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务1324可以为其他软件层提供其他公共服务。驱动器1326负责控制底层硬件或与底层硬件接口。例如,驱动器1326包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、/>驱动器、音频驱动器、电源管理驱动器等,这取决于硬件配置。
库1320提供由应用1316和/或其它组件和/或层使用的公共基础结构。与通过直接与底层操作系统1302功能(例如,内核1322、服务1324和/或驱动器1326)接口相比,库1320提供允许其它软件组件以更简单的方式执行任务的功能。库1320可以包括系统库1344(例如,C标准库),该系统库1344可以提供诸如存储器分配函数、字符串操纵函数、数学函数等的函数。此外,库1320可以包括API库1346,诸如媒体库(例如,支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG或PNG之类的各种媒体格式呈现和操纵的库)、图形库(例如,可以用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库(例如,可以提供各种关系数据库功能的SQLite)、web库(例如,可以提供web浏览功能的WebKit)等。库1320还可包括各种各样的其它库1348,以向应用1316和其它软件组件/模块提供许多其它API。
框架/中间件1318提供可以由应用1316和/或其它软件组件/模块使用的更高级别的公共基础设施。例如,框架/中间件1318可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1318可以提供可由应用1316和/或其他软件组件/模块利用的广泛的其他API,其中一些可以是特定操作系统1302或平台。
应用1316包括内置应用1338和/或第三方应用1340。代表性内置应用1338的示例可以包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1340可以包括由特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在移动操作系统上运行的移动软件,诸如IOSTM、ANDROIDTM、WINDOWS或其他移动操作系统。第三方应用1340可以调用由移动操作系统(诸如操作系统1302)提供的API调用1308以促进本文描述的功能。
应用1316可以使用内置操作系统功能(例如,内核1322、服务1324和/或驱动器1326)、库1320和框架/中间件1318,来创建用户接口以与系统的用户交互。另外,在一些系统中,可以通过表示层与用户进行交互,例如表示层1314。在这些系统中,应用/组件"逻辑"可以与用户交互的应用/组件的各个方面分开。
图14是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个的机器1400的组件的框图。具体地,图14示出了计算机系统的示例形式的机器1400的图示,指令1416(例如,软件、程序、应用、小应用程序、应用或其他可执行代码)可以用于使机器1400执行本文所讨论的方法中的任何一个或多个。因此,指令1416可以用于实现本文所述的模块或组件。指令1416将通用的非编程机器1400变换成被编程为以所描述的方式执行所描述和示出的功能的特定机器1400。在替代实施例中,机器1400作为独立设备操作或者可以耦合(例如,联网)到其他机器。在网络部署中,机器1400可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器1400可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家庭设备(例如,智能电器)、其他智能设备、网络电器、网络路由器、网络交换机、网桥、或者能够依次或以其他方式执行指令1416的任何机器,这些指令指定了机器1400要采取的动作。此外,虽然仅示出了单个机器1400,但是术语"机器"还应被理解为包括机器的集合,这些机器单独地或联合地执行指令1416以执行本文所讨论的任何一个或多个方法。
机器1400可以包括处理器1410、存储器/存储设备1430和I/O组件1450,它们可以被配置为诸如通过总线1402相互通信。存储器/存储设备1430可以包括存储器1432,例如主存储器或其他存储器和存储单元1436,处理器1410可以通过总线1402访问这两者。存储单元1436和存储器1432存储体现本文所述的方法或功能中的任何一个或多个的指令1416。指令1416在其由机器1400执行的过程中,还可完全或部分地驻留在存储器1432内、存储单元1436内、处理器1410之一内(例如,处理器单元1412或1414可访问的处理器高速缓存内)或其任何合适的组合。因此,存储器1432、存储单元1436和处理器1410的存储器是机器可读媒体的示例。
I/O组件1450可以包括各种各样的组件以接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等。在特定机器1400中包括的特定I/O组件1450将取决于机器的类型。例如,诸如移动电话之类的便携式机器将可能包括触摸输入设备或其他此类输入机制,而无头服务器机器将可能不包括这样的触摸输入设备。将理解的是,I/O组件1450可以包括图14中未示出的许多其它组件。I/O组件1450为了用于简化以下论述而根据功能性分组,且所述分组决不是限制性的。在各种示例实施例中,I/O组件1450可以包括输出组件1452和输入组件1454。输出组件1452可包括视觉组件(例如,诸如等离子体显示面板(PDP)的显示器、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如,扬声器)、触觉组件(例如,振动马达、阻力机构)、其他信号发生器等等。输入组件1454可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏、或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
在另外的示例实施例中,I/O组件1450可以包括生物识别组件1456、运动组件1458、环境组件1460或位置组件1462以及各种各样的其他组件。例如,生物识别组件1456可以包括检测表情(例如,手表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1458可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1460可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或测量大气中的污染物的气体传感器)、或可提供对应于周围物理环境的指示、测量或信号的其它组件。位置组件1462可以包括位置传感器组件(例如,GPS接收器组件)、海拔传感器组件(例如,可以检测气压的海拔高度计或气压计)、取向传感器组件(例如,磁力计),等等。
通信可以使用各种各样的技术来实现。I/O组件1450可以包括通信组件1464,通信组件1464可操作以分别经由耦合器1482和耦合器1472将机器1400耦合到网络1480或设备1470。例如,通信组件1464可包括网络接口组件或其他合适的设备以与网络1480对接。在其他示例中,通信组件1464可包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,/>低功耗)、/>组件、以及经由其他方式提供通信的其他通信组件。设备1470可以是另一机器或各种外围设备(例如,通过USB耦合的外围设备)中的任何一种。
此外,通信组件1464可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1464可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、Dataglyph、MaxiCode、PDF418、Ultra代码、UCC RSS-2D条形码和其他光学代码的多维条形码的光学传感器)、或声学检测组件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信组件1464导出各种信息,例如通过Internet协议(IP)地理位置定位、通过信号三角测量的定位、经通过检测可能指示特定位置的NFC信标信号的定位等等。
词汇表
在本文中,“载波信号”是指无形介质,其能够存储、编码或携带指令1416以供机器1400执行,并且包括数字或模拟通信信号或其它无形介质,以促进这样的指令1416的通信。可以使用传输介质经由网络接口设备并且使用多种公知传输协议中的任何一种,在通过网络1480上发送或接收指令1416。
在此上下文中的“客户端设备”是指与通信网络1480接口以从一个或多个服务器系统或其它客户端装置102获得资源的任何机器1400。客户端设备102可以是但不限于移动电话、台式计算机、膝上型计算机、PDA、智能电话、平板电脑、超级本、上网本、多处理器系统、基于微处理器或可编程的消费电子系统、游戏机、机顶盒或用户可以用来访问网络1480的任何其他通信设备。
在本文中,“通信网络”指的是网络1480的一个或多个部分,其可以是自组织网络、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网,互联网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络1480的一部分可以包括无线或蜂窝网络,并且耦合可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦合。在该示例中,耦合可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、以及其他由各种标准制定组织定义的其他标准、其他远程协议、或其他数据传输技术。
在此上下文中,“短暂消息”指的是在时间有限的持续时间内可访问的消息400。短暂消息502可以是文本、图像、视频等。短暂消息502的访问时间可以由消息发送者设置。或者,访问时间可以是默认设置或由接收方指定的设置。不管设置技术如何,消息400都是暂时的。
在本文中,“机器可读介质”是指能够临时或永久地存储指令1416和数据的组件、设备或其他有形媒体,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光介质、磁介质、高速缓存、其他类型的存储(例如,可擦除可编程只读存储器(EPROM))和/或其任何合适的组合。应将术语“机器可读介质”理解为包括能够存储指令1416的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应理解为包括能够存储由机器1400执行的指令1416(例如,代码)的任何介质或多个媒体的组合,使得指令1416在由机器1400的一个或多个处理器1410执行时使机器1400执行本文描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”不包括信号本身。
在本文中的“组件”是指具有由功能或子例程调用、分支点、API或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以通过它们的接口与其他组件的接口进行组合以执行机器过程。组件可以是设计为与其它组件和通常执行相关功能的特定功能的程序的一部分一起使用的封装的功能硬件单元。组件可以构成软件组件(例如,具体化在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器1412或一组处理器1410)可以由软件(例如,应用或应用部分)配置为操作以执行如本文所述的某些操作的硬件组件。硬件组件也可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括被永久地配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括可编程逻辑或电路,其由软件临时配置以执行某些操作。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦由此类软件配置,则硬件组件就变成被独特地定制以执行所配置的功能的特定机器(或机器1400的特定组件),并且不再是通用处理器1410。应当理解,可以由成本和时间考虑来驱动决定在专用且永久配置的电路中、或在临时配置的电路中(例如,由软件配置)机械地实现硬件组件。因此,短语“硬件组件”(或“硬件实现的组件”)应当被理解为包含有形实体,是物理构造、永久配置(例如,硬连线的)或临时配置(例如,编程的)的实体,以某种方式操作或执行本文描述的某种操作的实体。
考虑硬件组件被临时配置(例如,编程)的实施例,每个硬件组件不需要在任何一个时刻都被配置或实例化。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器1412的情况下,通用处理器1412可在不同时间分别配置为不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定处理器1412或处理器1410,例如,在一个时刻构成特定硬件组件,并在不同的时刻实例上构成不同的硬件组件。
硬件组件可以向其他硬件组件提供信息,并从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信地耦合的。在多个硬件组件同时存在的情况下,可以通过两个或更多个硬件组件之间的信号传输(例如,通过适当的电路和总线)来实现通信。在不同时间配置或实例化多个硬件组件的实施例中,例如,可以通过在多个硬件组件可以访问的存储器结构中存储和检索信息,来实现这些硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信地耦合的存储器设备中。然后,另一硬件组件可以在稍后的时间访问存储器设备以取得和处理所存储的输出。硬件组件还可以发起与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。
本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置成执行相关操作的一个或多个处理器1410执行。无论是临时还是永久配置,这样的处理器1410都可以构成处理器实现的组件,这些组件操作以执行本文所述的一个或多个操作或功能。如本文所使用的,“处理器实现的组件”是指使用一个或多个处理器1410实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中特定处理器1412或处理器1410是硬件的示例。例如,一种方法的操作中的至少一些可以由一个或多个处理器1410或处理器实现的组件来执行。此外,一个或多个处理器1410还可以操作在“云计算”环境中或作为“软件即服务”(SaaS)来支持相关操作的执行。例如,至少一些操作可由一组计算机(作为包括处理器1410的机器1400的示例)执行,这些操作可经由网络1480(例如,因特网)和经由一个或多个适当的接口(例如,API)来访问。某些操作的执行可以分布在处理器1410之间,不仅驻留在单个机器1400内,而且跨多个机器1400部署。在一些示例实施例中,处理器1410或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施例中,处理器1410或处理器实现的组件可以分布在多个地理位置上。
本文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值的任何电路或虚拟电路(由在实际处理器1412上执行的逻辑仿真的物理电路),并产生相应的输出信号,这些信号将用于操作机器1400。处理器可以是例如中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)或其任何组合。处理器1410还可以是具有可以同时执行指令1416的两个或更多个独立处理器1412、1414(有时被称为“核”)的多核处理器1410。
在此上下文中的“时间戳”是指字符或编码信息的序列,用于识别何时发生某个事件,例如给出日期和时刻,有时精确到一秒的一小部分。
本专利文件的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人以专利和专利商标局的专利文件或记录中出现的方式对专利文献或专利公开内容的进行复制,但保留其他所有版权。以下声明适用于如下所述的以及在形成本文一部分的附图中的软件和数据:版权2017,SNAP INC。保留所有权限。

Claims (20)

1.一种方法,包括:
使用设备的一个或多个处理器生成包括多个帧的视频序列;
通过对所述视频序列使用机器学习方案来在第一流水线中生成已修改的图像,所述第一流水线包括先前帧和当前帧,所述先前帧具有对应的已修改的先前帧,所述当前帧不具有在所述第一流水线中的对应的已修改的当前帧;
在所述设备上在第二流水线中生成在所述先前帧与所述当前帧之间的映射;以及
通过将所述映射应用于所述已修改的先前帧来生成对应的已修改的当前帧。
2.根据权利要求1所述的方法,其中,所述先前帧与所述当前帧被所述视频序列中的多个其他帧分开。
3.根据权利要求1所述的方法,其中,所述第二流水线是与所述第一流水线异步的。
4.根据权利要求3所述的方法,其中,所述第一流水线与所述第二流水线被实现在所述设备的所述一个或多个处理器的不同线程上。
5.根据权利要求1所述的方法,其中,所述机器学习方案被训练以应用图像操纵功能,并且其中所述已修改的先前帧展现所述图像操纵。
6.根据权利要求5所述的方法,其中,应用所述映射近似在所述已修改的先前帧中的所述图像操纵。
7.根据权利要求1所述的方法,其中,所述映射是描述在所述视频序列中的图像特征变化的流图。
8.根据权利要求1所述的方法,进一步包括:
在所述设备上显示已修改的视频序列,所述已修改的视频序列包括所述已修改的先前帧和所述已修改的当前帧。
9.根据权利要求8所述的方法,其中,所述已修改的视频序列整理所述已修改的先前帧和所述已修改的当前帧。
10.根据权利要求1所述的方法,其中,所述机器学习方案是卷积神经网络。
11.根据权利要求10所述的方法,其中,所述卷积神经网络被训练以执行分割。
12.根据权利要求1所述的方法,其中,所述视频序列由所述设备的图像传感器生成。
13.一种系统,包括:
机器的一个或多个处理器;以及
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述机器执行操作,所述操作包括:
使用所述一个或多个处理器生成包括多个帧的视频序列;
通过对所述视频序列使用机器学习方案来在第一流水线中生成已修改的图像,所述第一流水线包括先前帧和当前帧,所述先前帧具有对应的已修改的先前帧,所述当前帧不具有在所述第一流水线中的对应的已修改的当前帧;
在所述机器上在第二流水线中生成在所述先前帧与所述当前帧之间的映射;以及
通过将所述映射应用于所述已修改的先前帧来生成对应的已修改的当前帧。
14.根据权利要求13所述的系统,其中,所述先前帧与所述当前帧被所述视频序列中的多个其他帧分开。
15.根据权利要求13所述的系统,其中,所述第二流水线是与所述第一流水线异步的。
16.根据权利要求15所述的系统,其中,所述第一流水线与所述第二流水线被实现在所述机器的所述一个或多个处理器的不同线程上。
17.根据权利要求13所述的系统,其中,所述机器学习方案被训练以应用图像操纵功能,并且其中所述已修改的先前帧展现所述图像操纵。
18.根据权利要求17所述的系统,其中,应用所述映射近似在所述已修改的先前帧中的所述图像操纵。
19.根据权利要求13所述的系统,其中,所述映射描述在所述视频序列中的图像特征变化。
20.一种非暂时性机器可读介质,其具体化指令,所述指令在由机器执行时使所述机器执行包括以下的操作:
使用设备的一个或多个处理器生成包括多个帧的视频序列;
通过对所述视频序列使用机器学习方案来在第一流水线中生成已修改的图像,所述第一流水线包括先前帧和当前帧,所述先前帧具有对应的已修改的先前帧,所述当前帧不具有在所述第一流水线中的对应的已修改的当前帧;
在所述设备上在第二流水线中生成在所述先前帧与所述当前帧之间的映射;以及
通过将所述映射应用于所述已修改的先前帧来生成对应的已修改的当前帧。
CN202311642293.9A 2017-09-15 2018-09-14 实时跟踪补偿图像效果 Pending CN117635414A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/706,096 US10474900B2 (en) 2017-09-15 2017-09-15 Real-time tracking-compensated image effects
US15/706,096 2017-09-15
PCT/US2018/051141 WO2019055822A1 (en) 2017-09-15 2018-09-14 COMPENSATED IMAGE EFFECTS BY REAL-TIME TRACKING
CN201880058843.3A CN111095353B (zh) 2017-09-15 2018-09-14 实时跟踪补偿图像效果

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880058843.3A Division CN111095353B (zh) 2017-09-15 2018-09-14 实时跟踪补偿图像效果

Publications (1)

Publication Number Publication Date
CN117635414A true CN117635414A (zh) 2024-03-01

Family

ID=65721488

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311642293.9A Pending CN117635414A (zh) 2017-09-15 2018-09-14 实时跟踪补偿图像效果
CN201880058843.3A Active CN111095353B (zh) 2017-09-15 2018-09-14 实时跟踪补偿图像效果

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880058843.3A Active CN111095353B (zh) 2017-09-15 2018-09-14 实时跟踪补偿图像效果

Country Status (5)

Country Link
US (4) US10474900B2 (zh)
EP (2) EP4270329A3 (zh)
KR (1) KR102467236B1 (zh)
CN (2) CN117635414A (zh)
WO (1) WO2019055822A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474900B2 (en) 2017-09-15 2019-11-12 Snap Inc. Real-time tracking-compensated image effects
US10672164B2 (en) * 2017-10-16 2020-06-02 Adobe Inc. Predicting patch displacement maps using a neural network
CN109819178B (zh) * 2017-11-21 2022-07-08 虹软科技股份有限公司 一种用于帧处理的方法和装置
US10755391B2 (en) 2018-05-15 2020-08-25 Adobe Inc. Digital image completion by learning generation and patch matching jointly
US10977802B2 (en) * 2018-08-29 2021-04-13 Qualcomm Incorporated Motion assisted image segmentation
US11120526B1 (en) * 2019-04-05 2021-09-14 Snap Inc. Deep feature generative adversarial neural networks
US11600068B2 (en) * 2019-08-20 2023-03-07 Dilili Labs, Inc. Systems, methods, and storage media for processing digital video
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US10769198B1 (en) 2020-02-06 2020-09-08 Caastle, Inc. Systems and methods for product identification using image analysis from image mask and trained neural network
AU2022201841A1 (en) * 2021-03-16 2022-10-06 Monsters Aliens Robots Zombies Inc. Method and system for image processing
WO2023055571A1 (en) * 2021-09-30 2023-04-06 Zebra Technologies Corporation Optical flow estimation method for 1d/2d decoding improvements
US11954828B2 (en) * 2021-10-14 2024-04-09 Lemon Inc. Portrait stylization framework using a two-path image stylization and blending

Family Cites Families (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189743A (en) * 1976-12-20 1980-02-19 New York Institute Of Technology Apparatus and method for automatic coloration and/or shading of images
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
EP0814611B1 (de) 1996-06-17 2002-08-28 Siemens Aktiengesellschaft Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
JP3783331B2 (ja) 1997-05-14 2006-06-07 ブラザー工業株式会社 メール送信システム、メール受信システムおよび記録媒体
US6158044A (en) 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
BR9806000A (pt) 1997-06-17 2000-01-25 Purdue Pharma Lp Documento autodestrutivo e sistema de envio de mensagens por e-mail.
FI973945A (fi) 1997-10-13 1999-04-14 Nokia Telecommunications Oy Lyhytsanomia välittävä tiedonsiirtojärjestelmä
US6484196B1 (en) 1998-03-20 2002-11-19 Advanced Web Solutions Internet messaging system and method for use in computer networks
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6205432B1 (en) 1998-06-05 2001-03-20 Creative Internet Concepts, Llc Background advertising system
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
EP1116126A4 (en) 1998-09-23 2002-03-27 John W L Ogilvie SELF-DELETING ELECTRONIC MAIL
US6757713B1 (en) 1998-09-23 2004-06-29 John W. L. Ogilvie Method for including a self-removing indicator in a self-removing message
US6701347B1 (en) 1998-09-23 2004-03-02 John W. L. Ogilvie Method for including a self-removing code in a self-removing email message that contains an advertisement
US6167435A (en) 1998-10-30 2000-12-26 Netcreations, Inc. Double opt-in™ method and system for verifying subscriptions to information distribution services
US6189743B1 (en) 1999-02-17 2001-02-20 Hy-Plant Watering Systems Inc. Fluid dispensing device for overhead plants
US7240199B2 (en) 2000-12-06 2007-07-03 Rpost International Limited System and method for verifying delivery and integrity of electronic messages
US7149893B1 (en) 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient
US7124164B1 (en) 2001-04-17 2006-10-17 Chemtob Helen J Method and apparatus for providing group interaction via communications networks
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US6754621B1 (en) 2000-10-06 2004-06-22 Andrew Cunningham Asynchronous hypertext messaging system and method
US20020041339A1 (en) * 2000-10-10 2002-04-11 Klaus Diepold Graphical representation of motion in still video images
JP2002132647A (ja) 2000-10-19 2002-05-10 Kizna Corp 電子掲示板及び電子掲示板システム
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
JP4440503B2 (ja) 2001-09-20 2010-03-24 富士通株式会社 情報一覧作成装置及びそのプログラム
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US7356564B2 (en) 2002-01-09 2008-04-08 At&T Delaware Intellectual Property, Inc. Method, system, and apparatus for providing self-destructing electronic mail messages
US20030217106A1 (en) 2002-03-25 2003-11-20 Eytan Adar System and method for profiling clients within a system for harvesting community knowledge
US7278168B1 (en) 2002-11-27 2007-10-02 Adobe Systems Incorporated Dynamic enabling of functionality in electronic document readers
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US6978147B2 (en) 2003-03-19 2005-12-20 Motorola, Inc. Wireless messaging device with selectable scroll display and message pre-fetch
GB0308991D0 (en) 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US7191221B2 (en) 2003-10-30 2007-03-13 International Business Machines Corporation Method for managing electronic mail receipts using audio-visual notification enhancements
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
CN1886753A (zh) 2003-12-19 2006-12-27 富士通株式会社 现状信息处理方法和程序、终端装置、计算机及现状信息管理服务器
US7478402B2 (en) 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
US7904510B2 (en) 2004-02-23 2011-03-08 Microsoft Corporation Systems and methods for managing discussion threads based on ratings
US7912904B2 (en) 2004-03-31 2011-03-22 Google Inc. Email system with conversation-centric user interface
US7607096B2 (en) 2004-05-01 2009-10-20 Microsoft Corporation System and method for a user interface directed to discovering and publishing presence information on a network
US7593740B2 (en) 2004-05-12 2009-09-22 Google, Inc. Location-based social software for mobile devices
US8238947B2 (en) 2004-05-27 2012-08-07 France Telecom Method and installation for transmitting a message with predetermined duration of validity addressed to a subscriber terminal
US7519670B2 (en) 2004-08-12 2009-04-14 International Business Machines Corporation Method for disappearing ink for text messaging
US8745132B2 (en) 2004-09-10 2014-06-03 Silver State Intellectual Technologies, Inc. System and method for audio and video portable publishing system
US7496347B2 (en) 2004-11-12 2009-02-24 Velocita Wireless Llc Method and apparatus for providing secure wireless communication
US8396456B2 (en) 2005-06-28 2013-03-12 Avaya Integrated Cabinet Solutions Inc. Visual voicemail management
US8266219B2 (en) 2005-07-20 2012-09-11 Research In Motion Limited Method and system for instant messaging conversation security
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
CN1794708A (zh) 2005-07-29 2006-06-28 华为技术有限公司 呈现业务系统及发布呈现信息的方法
WO2007023494A2 (en) 2005-08-22 2007-03-01 Triplay Communications Ltd. Messaging system and method
US7949107B2 (en) 2005-08-24 2011-05-24 International Business Machines Corporation Method, system, and computer program product for providing privacy measures in instant messaging systems
US20070073823A1 (en) 2005-09-29 2007-03-29 International Business Machines Corporation Method and apparatus to secure and retrieve instant messages
US8284663B2 (en) 2005-10-14 2012-10-09 Turbine, Inc. Selectively ordered protocol for unreliable channels
ITMI20052290A1 (it) 2005-11-30 2007-06-01 Pasqua Roberto Della Servizio di messaggistica istantanea con interfaccia utente minimizzata
US7856360B2 (en) 2006-01-30 2010-12-21 Hoozware, Inc. System for providing a service to venues where people aggregate
US7743009B2 (en) 2006-02-10 2010-06-22 Strands, Inc. System and methods for prioritizing mobile media player files
US8112478B2 (en) 2006-03-13 2012-02-07 Oracle International Corporation Email and discussion forum system
US8255473B2 (en) 2006-04-04 2012-08-28 International Business Machines Corporation Caching message fragments during real-time messaging conversations
US9304675B2 (en) 2006-09-06 2016-04-05 Apple Inc. Portable electronic device for instant messaging
WO2008129542A2 (en) 2007-04-23 2008-10-30 Ramot At Tel-Aviv University Ltd System, method and a computer readible medium for providing an output image
US20080270938A1 (en) 2007-04-29 2008-10-30 Elizabeth Marie Carlson System for self-registering visitor information with geographic specificity and searchable fields
US8170957B2 (en) 2007-08-08 2012-05-01 Sinart Points Technology, Inc. System and method for managing digital interactions
US8909714B2 (en) 2007-08-21 2014-12-09 Microsoft Corporation Electronic mail delay adaptation
US8244593B2 (en) 2007-11-20 2012-08-14 Pure Verticals, Inc. Method and system for monetizing content
KR101387527B1 (ko) 2007-12-06 2014-04-23 엘지전자 주식회사 단말기 및 그 메뉴 아이콘 디스플레이 방법
US8214443B2 (en) 2008-03-05 2012-07-03 Aol Inc. Electronic mail forwarding service
CA2719794C (en) 2008-03-28 2020-10-27 Celltrust Corporation Systems and methods for secure short messaging service and multimedia messaging service
US8307395B2 (en) * 2008-04-22 2012-11-06 Porto Technology, Llc Publishing key frames of a video content item being viewed by a first user to one or more second users
US20100082427A1 (en) 2008-09-30 2010-04-01 Yahoo! Inc. System and Method for Context Enhanced Ad Creation
US8719238B2 (en) 2009-01-22 2014-05-06 Sunstein Kann Murphy & Timbers LLP Office-based notification messaging system
US8214446B1 (en) 2009-06-04 2012-07-03 Imdb.Com, Inc. Segmenting access to electronic message boards
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
CN102118419B (zh) 2009-12-30 2014-07-16 华为技术有限公司 一种图片信息的传输方法、装置和通信系统
US8570319B2 (en) * 2010-01-19 2013-10-29 Disney Enterprises, Inc. Perceptually-based compensation of unintended light pollution of images for projection display systems
US9443227B2 (en) 2010-02-16 2016-09-13 Tigertext, Inc. Messaging system apparatuses circuits and methods of operation thereof
US20110213845A1 (en) 2010-02-26 2011-09-01 Research In Motion Limited Automatic deletion of electronic messages
US8570907B2 (en) 2010-04-07 2013-10-29 Apple Inc. Multi-network architecture for media data exchange
US8582727B2 (en) 2010-04-21 2013-11-12 Angel.Com Communication of information during a call
US20110320373A1 (en) 2010-06-25 2011-12-29 Microsoft Corporation Product conversations among social groups
EP2589232B1 (en) 2010-07-01 2018-04-18 Absolute Software Corporation Automatic creation and modification of dynamic geofences
US8233887B2 (en) 2010-07-28 2012-07-31 Sprint Communications Company L.P. Covert message redaction and recovery in a wireless communication device
IL208600A (en) 2010-10-10 2016-07-31 Rafael Advanced Defense Systems Ltd Real-time network-based laminated reality for mobile devices
US8457668B2 (en) 2011-01-18 2013-06-04 Claremont Speede Mobile sender initiated SMS message deletion method and system
US20120209921A1 (en) 2011-02-10 2012-08-16 International Business Machines Corporation Instant Message Management Method and Apparatus
US9331972B2 (en) 2011-03-31 2016-05-03 Loment, Inc. Automatic expiration of messages communicated to an end user communication device
WO2013008251A2 (en) 2011-07-08 2013-01-17 Hughes Systique India Private Limited Method and system for social networking in a restricted connectivity environment
US20130071093A1 (en) 2011-09-16 2013-03-21 William Turner Hanks Maintaining viewer activity information of a recorded program for program deletion decisions
US8917948B2 (en) 2011-09-16 2014-12-23 Adobe Systems Incorporated High-quality denoising of an image sequence
US20130194301A1 (en) 2012-01-30 2013-08-01 Burn Note, Inc. System and method for securely transmiting sensitive information
US8792718B2 (en) * 2012-06-29 2014-07-29 Adobe Systems Incorporated Temporal matte filter for video matting
US9560006B2 (en) 2012-07-26 2017-01-31 Google Inc. Method and apparatus for expiring messages in electronic communications
US20150199082A1 (en) 2012-11-13 2015-07-16 Google Inc. Displaying actionable items in an overscroll area
US20140201527A1 (en) 2013-01-17 2014-07-17 Zohar KRIVOROT Systems and methods for secure and private delivery of content
US9264463B2 (en) 2013-03-15 2016-02-16 Facebook, Inc. Method and system of managing ephemeral post in a social networking system
US9736218B2 (en) 2013-04-24 2017-08-15 Blackberry Limited Device, system and method for processing character data
US9269003B2 (en) * 2013-04-30 2016-02-23 Qualcomm Incorporated Diminished and mediated reality effects from reconstruction
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US8914752B1 (en) 2013-08-22 2014-12-16 Snapchat, Inc. Apparatus and method for accelerated display of ephemeral messages
US9083770B1 (en) 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
US20150227601A1 (en) 2014-02-13 2015-08-13 Actifio, Inc. Virtual data backup
US8909725B1 (en) 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US9479909B2 (en) 2014-03-20 2016-10-25 Tigertext, Inc. Method of sending messages to devices not configured to receive them
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US11783898B2 (en) 2014-09-18 2023-10-10 Jonker Llc Ephemeral storage elements, circuits, and systems
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
EP3210179A1 (en) 2014-10-24 2017-08-30 Snap Inc. Prioritization of messages
US10726560B2 (en) * 2014-10-31 2020-07-28 Fyusion, Inc. Real-time mobile device capture and generation of art-styled AR/VR content
US10719939B2 (en) 2014-10-31 2020-07-21 Fyusion, Inc. Real-time mobile device capture and generation of AR/VR content
US9940541B2 (en) 2015-07-15 2018-04-10 Fyusion, Inc. Artificially rendering images using interpolation of tracked control points
US9854219B2 (en) 2014-12-19 2017-12-26 Snap Inc. Gallery of videos set to an audio time line
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US9111164B1 (en) 2015-01-19 2015-08-18 Snapchat, Inc. Custom functional patterns for optical barcodes
US9294425B1 (en) 2015-02-06 2016-03-22 Snapchat, Inc. Storage and processing of ephemeral messages
US9148424B1 (en) 2015-03-13 2015-09-29 Snapchat, Inc. Systems and methods for IP-based intrusion detection
KR102217723B1 (ko) 2015-03-18 2021-02-19 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US9482882B1 (en) 2015-04-15 2016-11-01 Snapchat, Inc. Eyewear having selectively exposable feature
US9482883B1 (en) 2015-04-15 2016-11-01 Snapchat, Inc. Eyewear having linkage assembly between a temple and a frame
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
CN115412385A (zh) 2015-05-06 2022-11-29 斯纳普公司 用于短暂群组聊天的系统和方法
KR101685821B1 (ko) * 2015-06-18 2016-12-13 인하대학교 산학협력단 흉부 X-ray 영상에서 몸체 및 관심영역 분할 방법 및 시스템
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
EP3166069A1 (en) 2015-11-06 2017-05-10 Thomson Licensing Method for denoising an image and apparatus for upscaling an image
US20170161382A1 (en) 2015-12-08 2017-06-08 Snapchat, Inc. System to correlate video data and contextual data
EP3391339A2 (en) * 2015-12-18 2018-10-24 Iris Automation, Inc. Real-time visual situational awareness system
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US10686899B2 (en) 2016-04-06 2020-06-16 Snap Inc. Messaging achievement pictograph display system
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10474900B2 (en) 2017-09-15 2019-11-12 Snap Inc. Real-time tracking-compensated image effects

Also Published As

Publication number Publication date
CN111095353A (zh) 2020-05-01
US20210216776A1 (en) 2021-07-15
US11676381B2 (en) 2023-06-13
US20200050866A1 (en) 2020-02-13
EP3682421A1 (en) 2020-07-22
US20230274543A1 (en) 2023-08-31
EP3682421A4 (en) 2020-10-21
EP4270329A2 (en) 2023-11-01
KR102467236B1 (ko) 2022-11-16
US20190087660A1 (en) 2019-03-21
EP4270329A3 (en) 2024-01-17
US10474900B2 (en) 2019-11-12
EP3682421B1 (en) 2023-10-11
CN111095353B (zh) 2023-12-05
WO2019055822A1 (en) 2019-03-21
KR20200042019A (ko) 2020-04-22
US10929673B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
CN111095353B (zh) 实时跟踪补偿图像效果
US20230245401A1 (en) Surface aware lens
US10523625B1 (en) Restricted group content collection
CN115443641A (zh) 将第一用户界面内容组合到第二用户界面中
US11861854B2 (en) Dense feature scale detection for image matching
US11335088B2 (en) Augmented reality item collections
CN113330484A (zh) 虚拟表面修改
US20200351353A1 (en) Social network pooled post capture
CN115735229A (zh) 在消息收发系统中更新化身服装
US11645933B2 (en) Displaying augmented reality content with tutorial content
US11694411B2 (en) Passing augmented reality content between devices
US20240046072A1 (en) Modulated image segmentation
US10872292B1 (en) Compact neural networks using condensed filters
US20210304449A1 (en) Machine learning-based modification of image content
US11500454B2 (en) Body UI for augmented reality components
US11340762B2 (en) Ranking augmented reality content based on messaging contacts
US11941166B2 (en) Body UI for augmented reality components
US11710275B2 (en) Object modeling using light projection
CN116710895A (zh) 用于增强现实组件的身体ui

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