CN111095353B - 实时跟踪补偿图像效果 - Google Patents
实时跟踪补偿图像效果 Download PDFInfo
- Publication number
- CN111095353B CN111095353B CN201880058843.3A CN201880058843A CN111095353B CN 111095353 B CN111095353 B CN 111095353B CN 201880058843 A CN201880058843 A CN 201880058843A CN 111095353 B CN111095353 B CN 111095353B
- Authority
- CN
- China
- Prior art keywords
- image
- modified
- key frame
- images
- sequence
- 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.)
- Active
Links
- 230000000694 effects Effects 0.000 title abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000000007 visual effect Effects 0.000 claims abstract description 11
- 230000009466 transformation Effects 0.000 claims abstract description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 15
- 238000010801 machine learning Methods 0.000 claims description 8
- 238000007670 refining Methods 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 14
- 238000013528 artificial neural network Methods 0.000 abstract 1
- 238000000844 transformation Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 10
- 238000003384 imaging method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 101150013335 img1 gene Proteins 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 101150071665 img2 gene Proteins 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000007789 gas Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000003709 image segmentation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/215—Motion-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Abstract
移动设备可以使用异步处理流水线来生成实时复杂视觉图像效果。第一流水线将诸如神经网络之类的复杂图像处理应用于实况图像序列的关键帧。第二流水线生成描述图像序列中的特征转换的流图。流图可以用于在运行中处理非关键帧。已处理的关键帧和非关键帧可以用于实时地或接近实时地在移动设备上显示复杂的视觉效果。
Description
优先权申请
本申请要求享有于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.根据权利要求2所述的方法,其中所述机器学习方案是卷积神经网络。
4.根据权利要求1所述的方法,还包括:
将所述已修改图像序列作为短暂消息发布在社交媒体网络上。
5.根据权利要求1所述的方法,其中每个流图是由非关键帧图像和先前关键帧图像生成,所述非关键帧图像和所述先前关键帧图像被一个或多个额外的非关键帧图像分开。
6.根据权利要求1所述的方法,其中用于生成所述流图的所述先前关键帧图像具有现有的已修改的关键帧图像,并且所述流图被应用于所述现有的已修改的关键帧图像。
7.根据权利要求1所述的方法,其中,所述已修改图像序列按照以下一种或多种方式在所述机器上显示:实时或接近实时。
8.权利要求1的方法,其中根据所述图像序列中的图像排序,在所述已修改图像序列中对所述细化的已修改的关键帧图像和所述细化的已修改的非关键帧图像进行排序。
9.根据权利要求1所述的方法,还包括:
通过使用所述细化的已修改的关键帧图像和所述细化的已修改的非关键帧图像来生成所述已修改的图像序列。
10.根据权利要求9的方法,其中所述已修改的关键帧图像和所述已修改的非关键帧图像是用于将一个或多个视觉效果应用于所述图像序列的图像掩模。
11.根据权利要求1所述的方法,还包括:
使用运动跟踪方案来生成所述流图,所述运动跟踪方案描述了跨多个图像的图像特征的变换。
12.一种系统,包括:
机器的一个或多个处理器;以及
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述机器执行操作,所述操作包括:
生成图像序列;
通过使用机器学习方案处理来自所述图像序列的交替图像来生成已修改的关键帧图像,来自所述图像序列的所述交替图像是由一个或多个非关键帧图像分开的关键帧图像;
使用在非关键帧图像和先前关键帧图像之间生成的流图来生成已修改的非关键帧图像,所述已修改的非关键帧图像是通过将所述流图应用于所述已修改的关键帧图像来生成的;
通过在引导滤波器中使用对应的图像来细化所述已修改的关键帧图像和所述已修改的非关键帧图像中的每一个;以及
在机器的显示设备上显示使用细化的已修改的关键帧图像和细化的已修改的非关键帧图像生成的已修改图像序列。
13.根据权利要求12所述的系统,其中所述已修改的关键帧图像是在第一流水线中生成的,并且所述已修改的非关键帧图像是在第二流水线中生成的,其中所述第二流水线与所述第一流水线是异步的。
14.根据权利要求13所述的系统,其中,所述机器学习方案是卷积神经网络。
15.根据权利要求13所述的系统,其中所述第一流水线和所述第二流水线并行操作。
16.根据权利要求12所述的系统,其中每个流图是由非关键帧图像和先前关键帧图像生成的,所述非关键帧图像和所述先前关键帧图像被一个或多个额外的非关键帧图像分开。
17.根据权利要求12所述的系统,其中用于生成所述流图的所述先前关键帧图像具有现有的已修改的关键帧图像,并且所述流图被应用于所述现有的已修改的关键帧图像。
18.根据权利要求12所述的系统,其中,所述已修改图像序列按照以下一种或多种方式在所述机器上显示:实时或接近实时。
19.一种机器可读存储设备,其具体化指令,所述指令在由机器执行时使所述机器执行包括以下的操作:
使用机器的一个或多个处理器生成图像序列;
通过使用机器学习方案处理来自所述图像序列的交替图像来生成已修改的关键帧图像,来自所述图像序列的所述交替图像是由一个或多个非关键帧图像分开的关键帧图像;
使用在非关键帧图像和先前关键帧图像之间生成的流图来生成已修改的非关键帧图像,所述已修改的非关键帧图像是通过将所述流图应用到所述已修改的关键帧图像来生成的;
通过在引导滤波器中使用对应的图像来细化所述已修改的关键帧图像和所述已修改的非关键帧图像中的每一个;以及
在所述机器的显示设备上显示使用细化的已修改的关键帧图像和细化的已修改的非关键帧图像生成的已修改图像序列。
20.根据权利要求19所述的机器可读存储设备,其中所述已修改的关键帧图像是在第一流水线中生成的,并且所述已修改的非关键帧图像是在第二流水线中生成的,其中所述第二流水线与所述第一流水线是异步的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311642293.9A CN117635414A (zh) | 2017-09-15 | 2018-09-14 | 实时跟踪补偿图像效果 |
Applications Claiming Priority (3)
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 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311642293.9A Division CN117635414A (zh) | 2017-09-15 | 2018-09-14 | 实时跟踪补偿图像效果 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095353A CN111095353A (zh) | 2020-05-01 |
CN111095353B true CN111095353B (zh) | 2023-12-05 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311642293.9A Pending CN117635414A (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)
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156624A (zh) * | 2010-01-19 | 2011-08-17 | 迪士尼企业公司 | 用于显示系统的图像非意愿光污染的基于感知的补偿 |
CN105164728A (zh) * | 2013-04-30 | 2015-12-16 | 高通股份有限公司 | 来自重构的减弱及中介实境效果 |
Family Cites Families (139)
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 | 华为技术有限公司 | 一种图片信息的传输方法、装置和通信系统 |
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 |
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 |
-
2017
- 2017-09-15 US US15/706,096 patent/US10474900B2/en active Active
-
2018
- 2018-09-14 CN CN202311642293.9A patent/CN117635414A/zh active Pending
- 2018-09-14 EP EP23196984.1A patent/EP4270329A3/en active Pending
- 2018-09-14 CN CN201880058843.3A patent/CN111095353B/zh active Active
- 2018-09-14 WO PCT/US2018/051141 patent/WO2019055822A1/en unknown
- 2018-09-14 EP EP18856029.6A patent/EP3682421B1/en active Active
- 2018-09-14 KR KR1020207010664A patent/KR102467236B1/ko active IP Right Grant
-
2019
- 2019-10-16 US US16/654,898 patent/US10929673B2/en active Active
-
2021
- 2021-01-22 US US17/248,393 patent/US11676381B2/en active Active
-
2023
- 2023-05-04 US US18/312,479 patent/US20230274543A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156624A (zh) * | 2010-01-19 | 2011-08-17 | 迪士尼企业公司 | 用于显示系统的图像非意愿光污染的基于感知的补偿 |
CN105164728A (zh) * | 2013-04-30 | 2015-12-16 | 高通股份有限公司 | 来自重构的减弱及中介实境效果 |
Non-Patent Citations (4)
Title |
---|
Chetan Bhole et.al."Fully automatic person segmentation in unconstrained video using spatio-temporal conditional random fields".《Image and Vision Computing》.2016,第51卷第58-68页. * |
Xizhou Zhu et.al."Deep Feature Flow for Video Recognition".《ARXIV.ORG》.2016,第1-13页. * |
桂振文 ; 刘越 ; 陈靖 ; 王涌天 ; .基于自然场景在线学习的跟踪注册技术.软件学报.2016,(11),第2929-2945页. * |
邱家涛."电子稳像算法和视觉跟踪算法研究".《中国博士学位论文全文数据库信息科技辑》.2014,第2014年卷(第01期),第 I138-51页. * |
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 |
CN117635414A (zh) | 2024-03-01 |
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 |
WO2019055822A1 (en) | 2019-03-21 |
KR20200042019A (ko) | 2020-04-22 |
US10929673B2 (en) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095353B (zh) | 实时跟踪补偿图像效果 | |
CN115443641A (zh) | 将第一用户界面内容组合到第二用户界面中 | |
US11861854B2 (en) | Dense feature scale detection for image matching | |
US11736572B2 (en) | Social network pooled post capture | |
CN113330484A (zh) | 虚拟表面修改 | |
CN115735229A (zh) | 在消息收发系统中更新化身服装 | |
US20210304505A1 (en) | Displaying augmented reality content in messaging application | |
US11645933B2 (en) | Displaying augmented reality content with tutorial content | |
US11694411B2 (en) | Passing augmented reality content between devices | |
US11763130B2 (en) | Compact neural networks using condensed filters | |
US11847528B2 (en) | Modulated image segmentation | |
KR20230028553A (ko) | 여행과 연관된 증강 현실 기반 번역들 | |
US20210304449A1 (en) | Machine learning-based modification of image content | |
US11340762B2 (en) | Ranking augmented reality content based on messaging contacts | |
US11710275B2 (en) | Object modeling using light projection |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |