CN109716781B - 用于视频流的实时绘制的系统、装置、介质和方法 - Google Patents

用于视频流的实时绘制的系统、装置、介质和方法 Download PDF

Info

Publication number
CN109716781B
CN109716781B CN201780056702.3A CN201780056702A CN109716781B CN 109716781 B CN109716781 B CN 109716781B CN 201780056702 A CN201780056702 A CN 201780056702A CN 109716781 B CN109716781 B CN 109716781B
Authority
CN
China
Prior art keywords
face
graphical representation
user input
video stream
graphics plane
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
Application number
CN201780056702.3A
Other languages
English (en)
Other versions
CN109716781A (zh
Inventor
Y·莫纳斯提尔申
I·图卢波夫
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
Priority to CN202111492976.1A priority Critical patent/CN114143570A/zh
Publication of CN109716781A publication Critical patent/CN109716781A/zh
Application granted granted Critical
Publication of CN109716781B publication Critical patent/CN109716781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Abstract

提供了用于视频流的实时绘制的系统、装置、介质和方法。系统和方法接收描绘面部的部分的帧,识别用户输入,识别与用户输入对应的面部的部分上的位置。系统和方法生成链接到面部的部分上的位置的用户输入的图形表示,以及在视频流的帧内实时地渲染图形表示。

Description

用于视频流的实时绘制的系统、装置、介质和方法
优先权要求
本申请要求于2016年7月18日提交的美国专利申请序列号15/213,186的优先权,其中每个申请的优先权的权益均在此要求保护,并且每个申请通过引用整体并入在此。
技术领域
本公开的实施例一般涉及图像的自动处理。更具体地,但不作为限制,本公开提出了用于实时生成视频流内的用户输入的持久图形表示的系统和方法。
背景技术
电信应用和装置可以使用各种媒体(诸如文本、图像、声音记录和/或视频记录)来提供多个用户之间的通信。例如,视频会议允许两个或更多个人使用软件应用、电信装置和电信网络的组合彼此通信。电信装置还可以记录视频流以在电信网络中作为消息进行发送。
虽然存在用于在两个装置之间提供双向视频通信的电信应用和装置,但是视频流可能存在问题,诸如在通信会话未决期间修改视频流内的图像。电信装置使用装置的物理操纵来执行操作。例如,通常通过改变装置的取向或操纵输入装置(诸如触摸屏)来操作装置。因此,本领域仍然需要改进装置之间的视频通信并在采集视频流的同时实时修改视频流。
发明内容
在实施例中,提供了一种用于视频流的实时绘制的方法。在方法中,由一个或多个处理器接收(310)视频流的多个帧,该帧的至少一部分描绘面部的至少一部分;在向用户顺序呈现视频流的描绘面部的至少一部分的帧时,接收(320)来自用户的计算装置的输入装置的用户输入,其中,用户输入包括对定时机制的用户选择,定时机制包括用于呈现用户输入的图形表示的设定时间段;识别(330)与用户输入对应的面部的部分上的一个或多个位置;将用户输入链接(340)到面部的部分上的一个或多个位置;生成(350)用户输入的图形表示,该用户输入的图形表示被链接到面部的部分上的一个或多个位置;以及基于定时机制,在视频流的一个或多个后续帧内在面部的部分上渲染(360)图形表示,该图形表示被呈现在一个或多个位置处的面部的部分上。
在实施例中,提供了一种用于视频流的实时绘制的系统。该系统包括一个或多个处理器(1110)和非暂态处理器可读存储介质(1130),其被耦接到一个或多个处理器(1110)并存储处理器可执行指令。处理器可执行指令在由一个或多个处理器执行时使一个或多个处理器执行以上方法。
在实施例中,提供了一种承载处理器可执行指令的机器可读介质。该处理器可执行指令当由机器的一个或多个处理器执行时,使机器执行以上方法。
附图说明
附图中的各个附图仅示出了本公开的示例实施例,并且不应被视为限制其范围。
图1是示出根据一些示例实施例的联网系统的框图。
图2是示出根据一些示例实施例的绘制系统的图。
图3是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图4是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图5是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图6是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图7是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图8是示出根据一些示例实施例的用于在视频流被采集并呈现在客户端装置的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法的流程图。
图9是描绘根据一些示例实施例的示例移动装置和移动操作系统界面的用户界面图。
图10是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。
图11是呈现根据示例实施例的计算机系统形式的机器的图形表示的框图,在计算机系统内可执行一组指令以使机器执行在此所讨论的任何方法。
在此提供的标题仅仅是为了方便,并不必须影响所用术语的范围或含义。
具体实施方式
以下描述包括说明本公开的实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,也可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,公知的指令实例、协议、结构和技术不必详细示出。
描述了一种绘制系统,绘制系统通过视频流内的一组帧来识别和跟踪跨越视频流的关注对象。在各种示例实施例中,绘制系统识别和跟踪面部界标、用户输入、以及面部上的界标或点与用户输入之间的相对纵横比(aspect ratio)。绘制系统使用户能够选择颜色、形状、线条和用户输入的其它图形表示,以在视频流被图像采集装置采集的同时实时地在视频流的帧内进行绘制。绘制可能在面部或其它关注对象上。绘制系统能够修改视频流以结合绘制来突出或以其它方式改变视频流的外观。例如,绘制系统可降低视频流的颜色、阴影、饱和度或亮度,并且在绘制的图形表示中呈现未修改的颜色,使得绘制的部分呈现霓虹色(neon)、闪光或任何其它合适的颜色对比度。例如,在体育赛事处的装置用户可以使用界面在由装置生成的视频流中出现的运动员的脸颊上绘制队标或运动员号码。然后,绘制系统将在运动员在视频流内移动时以及视频流被传送到另一装置或其它装置时跟踪运动员并保持在运动员的脸颊上的绘画。在一些情况下,体育赛事处的装置用户可以在屏幕的靠近运动员面部的一部分上(诸如在运动员头部正上方的空中)绘制队标或运动员号码。然后绘制系统将跟踪球员并保持在球员头部上方的空中的绘画。
以上是一个具体示例。本公开的各种实施例涉及装置和装置的一个或多个处理器的指令,以在采集视频流时修改由装置发送到另一装置的图像或视频流(例如,实时修改视频流)。描述了一种绘制系统,绘制系统在图像内或视频流中以及通过包括视频流的一组图像识别并跟踪关注对象和区域。在各种示例实施例中,绘制系统识别并跟踪视频流中或图像内描绘的一个或多个面部特征,并执行关于一个或多个面部特征以及两个或更多个面部特征之间的相互关系的图像识别、面部识别以及面部处理功能。
图1是描绘根据一个实施例的网络系统100的网络图,网络系统100具有被配置用于通过网络交换数据的客户端-服务器架构。例如,网络系统100可以是消息传递系统,其中客户端在网络系统100内传送和交换数据。数据可涉及各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和与网络系统100及其用户相关联的方面(例如,传送通信数据,接收和发送通信会话的指示等)。虽然在此示出为客户端-服务器架构,但是其它实施例可以包括其它网络架构,诸如对等或分布式网络环境。
如图1中所示,网络系统100包括社交消息传递系统130。社交消息传递系统130通常基于三层架构,包括接口层124、应用逻辑层126和数据层128。如相关计算机和因特网相关领域的技术人员所理解的,图1中所示的每个组件或引擎表示一组可执行软件指令和用于执行指令的相应硬件(例如,存储器和处理器),形成硬件实现的组件或引擎,并且在执行指令时用作配置为执行一组特定功能的专用机器。为了避免不必要的细节模糊本发明的主题,从图1中省略了与传达对本发明主题的理解没有密切关系的各种功能组件和引擎。当然,附加的功能组件和引擎可以与社交消息传递系统(诸如图1中所示的社交消息传递系统)一起使用,以便于实现在此未具体描述的附加功能。此外,图1中描绘的各种功能组件和引擎可以驻留在单个服务器计算机或客户端装置上,或者可以以各种布置横跨若干服务器计算机或客户端装置分布。此外,尽管图1中描绘了社交消息传递系统130为三层架构,但是本发明的主题决不限于这种架构。
如图1中所示,接口层124包括接口组件(例如,web服务器)140,其接收来自各种客户端计算装置和服务器(诸如执行客户端应用112的客户端装置110,和执行第三方应用122的第三方服务器120)的请求。响应于所接收的请求,接口组件140经由网络104向请求装置传送适当的响应。例如,接口组件140可以接收请求,诸如超文本传输协议(HTTP)请求或其它基于Web的应用编程接口(API)请求。
客户端装置110可以执行传统web浏览器应用或已经为特定平台开发以包括各种移动计算装置和移动专用操作系统(例如,IOSTM、ANDROIDTM
Figure GDA0002816403960000051
PHONE)中的任何一个的应用(也称为“app”)。此外,在一些示例实施例中,客户端装置110形成绘制系统160的全部或一部分,使得绘制系统160的组件配置客户端装置110以执行关于绘制系统160的操作的一组特定功能。
在示例中,客户端装置110执行客户端应用112。客户端应用112可以提供向用户106呈现信息以及经由网络104进行通信以与社交消息传递系统130交换信息的功能。此外,在一些示例中,客户端装置110执行绘制系统160的功能以在采集视频流期间分割视频流的图像并发送视频流(例如,采用基于分割的视频流的图像而修改的图像数据)。
客户端装置110中的每一个可以包括计算装置,计算装置至少包括显示和与网络104的通信能力以访问社交消息传递系统130、其它客户端装置和第三方服务器120。客户端装置110包括但不限于远程装置、工作站、计算机、通用计算机、因特网设施、手持装置、无线装置、便携式装置、可穿戴计算机、蜂窝或移动电话、个人数字助理(PDA)、智能电话、平板计算机、超极本、上网本、膝上型计算机、台式机、多处理器系统、基于微处理器或可编程的消费型电子产品、游戏机、机顶盒、网络PC、小型计算机等。用户106可以是人、机器或与客户端装置110交互的其它部件。在一些实施例中,用户106经由客户端装置110与社交消息传递系统130交互。用户106可能不是联网环境的一部分,但是可以与客户端装置110相关联。
如图1中所示,数据层128具有便于访问信息存储库或数据库134的数据库服务器132。数据库134是存储数据(诸如成员简档数据、社交图数据(例如,社交消息传递系统130的成员之间的关系)、图像修改偏好数据、可访问性数据和其它用户数据)的存储装置。
个人可以用社交消息传递系统130注册以成为社交消息传递系统130的成员。在注册后,成员可以在社交消息传递系统130上形成社交网络关系(例如,朋友、关注者或联系人),并且与社交消息传递系统130提供的广泛的应用交互。
应用逻辑层126包括各种应用逻辑组件150,应用逻辑组件150结合接口组件140而采用从数据层128中的各种数据源或数据服务取得的数据生成各种用户界面。各个应用逻辑组件150可用于实现与社交消息传递系统130的各种应用、服务和特征相关联的功能。例如,社交消息传递应用可以与应用逻辑组件150一起实现。社交消息传递应用为客户端装置110的用户提供消息传递机制,以发送和接收包括诸如图片和视频的文本和媒体内容的消息。客户端装置110可以访问和查看来自社交消息传递应用的消息达指定的时间段(例如,有限的或无限制的)。在示例中,消息接收者可以访问特定消息达预定的持续时间(例如,由消息发送者指定),该预定的持续时间在特定消息被首次访问时开始。在预定的持续时间过去之后,消息将被删除,并且消息接收者将无法再访问该消息。当然,其它应用和服务可以分别体现在它们各自的应用逻辑组件150中。
如图1中所示,社交消息传递系统130可以包括绘制系统160的至少一部分,绘制系统160能够在由客户端装置110采集视频数据期间识别、跟踪和修改视频数据。类似地,如上所述,客户端装置110包括绘制系统160的一部分。在其它示例中,客户端装置110可以包括整个绘制系统160。在客户端装置110包括绘制系统160的一部分(或全部)的情况下,客户端装置110可以单独工作或与社交消息传递系统130协作工作,以提供在此描述的绘制系统160的功能。
在一些实施例中,社交消息传递系统130可以是短暂消息系统,短暂消息系统允许短暂通信,其中在诸如查看时间或查看完成的删除触发事件之后删除内容(例如,视频剪辑或图像)。在这种实施例中,装置在生成、发送、接收或显示短暂消息的各方面的任何情况下使用在此描述的各种组件。例如,实现绘制系统160的装置可以识别、跟踪和修改关注对象,诸如表示视频剪辑中描绘的面部上的皮肤的像素。装置可以在采集视频剪辑期间修改关注对象作为短暂消息的内容生成的一部分,而无需在采集视频剪辑之后进行图像处理。
在图2中,在各种实施例中,绘制系统160可以实现为独立系统或者与客户端装置110结合实现,并且不必须包括在社交消息传递系统130中。绘制系统160被示出为包括获取组件210、输入组件220、位置组件230、链接组件240、生成组件250、渲染组件260、缩放组件270以及跟踪组件280。组件210-280中的全部或一些例如经由网络耦合、共享存储器等彼此通信。组件210-280中的每个组件可以实现为单个组件,组合到其它组件中,或者进一步细分为多个组件。也可以包括与示例实施例无关的其它组件,但未示出。
获取组件210访问或以其它方式取得由图像采集装置采集的或以其它方式由客户端装置110接收或存储在客户端装置110中的帧。在一些情况下,获取组件210可以包括图像采集组件的部分或全部,图像采集组件被配置为使客户端装置110的图像采集装置基于用户与客户端装置110的显示装置上呈现的用户界面的交互来采集视频流的帧。获取组件210可以将帧或帧的一部分传递到绘制系统160的一个或多个其它组件。
输入组件220识别客户端装置110的输入装置上的用户输入。输入组件220可以包括输入装置(诸如键盘、鼠标、光标、触摸屏或客户端装置110的任何其它合适的输入装置)的部分或全部。在输入装置是触摸屏的情况下,在一些示例实施例中,输入组件220识别并区分施加在触摸屏上的触摸压力,以识别或区分基于触摸压力选择的相关特征。
位置组件230识别视频流的帧内的一个或多个位置。位置组件230可以识别视频流的帧内描绘的面部的部分上的位置。在一些实施例中,位置组件230可以识别或限定面部的部分上的坐标、面部界标或点。在一些情况下,位置组件230可以确定或生成面部的部分上的面部网格或网格元素,以识别面部界标以及确定两个或更多个面部界标之间的距离。
链接组件240链接由输入组件220接收的用户输入和由位置组件230识别的一个或多个位置。链接组件240可以直接将面部的部分上的位置、点或界标与由输入组件220接收的用户输入的一个或多个点链接。在一些情况下,链接组件240通过链接和用户输入相关联的一个或多个像素与和面部的部分相关联的一个或多个像素来链接面部的部分的位置、点或界标与用户输入。
生成组件250生成用户输入的图形表示。图形表示可被生成为线条、线条的部分、形状、颜色、图案或任何其它表示。在一些情况下,生成组件250可以至少部分地从用于用户输入的位置和图形类型的用户界面选择中生成。在一些情况下,生成组件为图形表示生成或分配边缘或尺寸特征。边缘和尺寸特征修改图形表示的描绘,并且可以通过客户端装置110的输入装置的用户输入来选择。在一些情况下,边缘和尺寸特征中的一个或多个可以由生成组件250或绘制系统160的其它组件基于面部的部分的特征或面部的部分的相对距离来确定。
渲染组件260在视频流的帧内渲染图形表示。在一些情况下,渲染组件260在面部的部分上或在帧内以及面部的部分之外渲染图形表示。渲染组件260可以修改视频流的帧以包括一个或多个图形表示。在一些情况下,渲染组件260将图形表示存储在处理器可读存储装置内。在存储之后,渲染组件260或获取组件210可以访问图形表示并在后续视频流内实时渲染先前存储的图形表示。
缩放组件270基于视频流的帧内描绘的对象的移动来缩放图形表示。在一些示例实施例中,缩放组件270基于面部的部分相对于客户端装置110或客户端装置110的图像采集装置的移动来缩放图形表示的尺寸特征。在一些实施例中,缩放组件270可以在随着面部的部分在帧内并且相对于图像采集装置移动而缩放图形表示时,保持在图形表示与面部的部分上的一个或多个面部界标、位置或点或者在帧内但在和面部的部分相关联的一组坐标之外的一个或多个坐标之间的线条宽度或纵横比。
跟踪组件280跟踪视频流的帧内的对象的移动。在一些情况下,跟踪组件280跟踪面部的部分、面部的部分的一个或多个面部界标,或者关注对象上的指定点的移动。跟踪组件280可以将一个或多个面部界标、面部部分或其它对象的移动与覆盖在图形平面上的图形表示的移动相匹配。
图3描绘了示出用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时生成在视频流的一个或多个帧内的面部上的图形表示的示例方法300的流程图。方法300的操作可以由绘制系统160的组件执行,并且为了说明的目的在下面进行描述。
在操作310中,获取组件210接收或以其它方式访问视频流的一个或多个帧。一个或多个帧的至少一部分描绘面部的至少一部分。在一些实施例中,获取组件210接收如由与客户端装置110相关联的图像采集装置采集并呈现在面部绘制应用的用户界面上的视频流的一个或多个帧。获取组件210可以包括图像采集装置,作为包含获取组件210的硬件的一部分。在这些实施例中,获取组件210直接接收由图像采集装置采集的一个或多个帧或视频流。在一些情况下,获取组件210将一个或多个图像或视频流(例如,包括视频流的一组图像)的全部或一部分传递到绘制系统160的一个或多个组件,如下面更详细所述。
在操作320中,输入组件220识别客户端装置110(例如,计算装置或移动计算装置)的输入装置上的用户输入。输入组件220可以基于接收来自客户端装置110的输入装置的输入或输入的指示来识别用户输入。例如,输入组件220可以识别从作为客户端装置110的一部分、连接到客户端装置110或与客户端装置110通信的鼠标、光标、触摸屏装置、按钮、小键盘或任何其它合适的输入装置接收的用户输入。
在一些实施例中,通过触摸屏装置接收用户输入。触摸屏装置可以被配置为对提供用户输入的触摸的压力敏感。在这些实施例中,输入组件220确定用户输入的触摸压力。基于用户输入的触摸压力,输入组件220识别与触摸压力相关联的边缘特征。触摸压力可以是二进制的。在触摸压力是二进制的情况下,高于指定阈值的压力可以与用户输入的第一方面相关联,而低于指定阈值的压力可以与用户输入的第二方面相关联。在这些情况下,输入组件220确定触摸压力超过压力阈值并将第一方面标识为与用户输入相关联。在一些实施例中,第一方面和第二方面可以是第一和第二边缘特征。例如,第一边缘特征可以是混合或模糊线条的边缘的漫射边缘,并且第二边缘特征可以是清晰限定的锐边缘。在一些实施例中,触摸压力可以不是二进制的。在这些情况下,边缘特征可以与两个或更多个压力或和用户输入的压力相关联的两个终端值之间的指定阈值相关联。例如,第一终端值可以表示触摸屏可感知的最轻触摸压力,而第二终端值可以表示触摸屏可感知的最重压力。在这些情况下,两个或更多个阈值可以位于第一终端值和第二终端值之间的值处。两个或更多个阈值中的每一个阈值可以与边缘特征或其它用户输入或图形表示特征相关联,使得超过两个或更多个阈值的阈值的压力可以指示单个特征或边缘特征。特征可以是边缘特征(例如,边缘的锐度)、线条宽度或厚度、线条颜色或颜色强度,或任何其它合适的特征。
一旦获取组件210开始接收视频流的帧,用户输入可以包括对颜色或一组颜色的选择。绘制系统160可以使得在视频流上呈现的一组用户输入元素被呈现以使得能够选择颜色、图形效果(例如,闪光、霓虹灯发光、可变或定时发光,基于事件的外观)、线条宽度、设计、以及影响绘制图形表示的样式、颜色和定时的其它选项。例如,用户输入可以包括用于呈现绘制的图形表示的定时机制或位置机制的选择。在这些情况下,绘制系统160可以使得根据事件(诸如面部旋转或眼睛眨眼)或者基于定时元素(诸如定时间隔或设定的时间段)呈现绘制的图形表示。在用户输入包括样式的选择的情况下,可以根据所选样式的一个或多个样式特征集来格式化后续用户输入。在一些实施例中,可供选择的样式包括绘制样式(例如,立体主义、印象派、四条派(Shijo school)、山水)、调色板样式(例如,霓虹灯、柔和的)、或者能够通过一组预定样式特征创建的其它样式。例如,在选择印象派样式的情况下,后续用户输入的绘制图形表示可以在具有漫反射边缘和模拟画笔笔划的柔和调色板内配置。作为另一示例,在选择霓虹调色板或样式的情况下,从后续用户输入生成的绘制的图形表示可以被生成为具有发光效果。发光效果可以通过绘制的图形表示内的颜色的亮度值以及通过调节视频流的至少一部分帧的亮度值来生成。
在操作330中,位置组件230识别与用户输入对应的面部的部分上的一个或多个位置。位置组件230可以基于面部的部分上的一个或多个位置的像素位置、面部的部分上的面部界标、映射到面部的部分的一个或多个坐标或在面部的部分上的任何其它合适的位置来识别一个或多个位置。例如,面部可以描绘一组已知的面部界标。位置组件230可以识别相对于面部界标的一个或多个位置。
在执行操作330的一些示例实施例中,位置组件230确定面部的部分上的面部网格。面部网格识别在面部的部分内描绘的一个或多个面部界标。确定面部网格可以包括使网格投影到规则网格以通过规则网格将网格分成100×100个单元。尽管描述为网格,但应该理解,网格可以由交叉或接触的多边形形成。例如,网格可以由一组连接的三角形形成,其中一个或多个三角形的点表示面部界标、界标点或基于面部界标的相对距离确定的点。一旦形成网格投影,位置组件230可以针对每个单元确定网格单元对应的网格元素。然后,位置组件230可以确定与每个确定的网格元素对应的像素。在一些情况下,可以使用广度优先搜索来执行确定与每个网格元素对应的像素。
位置组件230可以识别用户输入的一个或多个坐标。一个或多个坐标可以与网格的一个或多个单元、点或交叉点对齐或相对于网格的一个或多个单元、点或交叉点而被识别。在一些情况下,一个或多个坐标可以被识别为网格内描绘的一个或多个像素。在一些实施例中,识别用户输入的一个或多个坐标可以包括确定在用户输入内选择的一个或多个像素(例如,由用户输入绘制与线条相交的一个或多个像素)。一旦一个或多个像素被确定,位置组件230可以确定网格内与一个或多个确定的像素对应的部分、点或坐标。
位置组件230可将一个或多个坐标映射到一个或多个面部界标的至少一部分。在一些情况下,一个或多个坐标的相对距离相对于网格上的面部界标、网格元素或点而确定。在一些情况下,位置组件230将一个或多个坐标映射到帧内的一个或多个像素,这些像素被映射或以其它方式与网格相关联。映射可以建立用于跟踪用户输入的参考以及跨越视频流的多个帧的用户输入的图形表示。在这些情况下,跟踪用户输入或图形表示可以使得能够实时地在视频流内生成、跟踪和呈现持久的图形表示,如下面进一步详细描述和实施例中所描述的。
在操作340中,链接组件240将用户输入链接到面部的部分上的一个或多个位置。在一些实施例中,将用户输入链接到面部部分上的一个或多个位置生成在用户输入或用户输入内的点与面部的一个或多个位置之间的像素独立关联。像素独立关联使得用户输入能够跨越视频流的多个帧与面部的部分一起移动。链接可以被生成为关联用户输入的点和面部的一个或多个位置的数据库、表或数据结构。当确定面部的部分在帧内占据的位置与在视频流的前一帧中占据的面部的部分不同时,可以参考数据库、表或数据结构。
在操作350中,生成组件250生成用户输入的图形表示。如在操作340中,用户输入的图形表示被链接到面部的部分上的一个或多个位置。图形表示可以包括线条、线条的部分、形状、颜色、图案或用户输入的任何其它表示。例如,图形表示可以是占据由用户输入在帧内占据的区域所生成的线条。在一些实施例中,图形表示可以是要被实时呈现在视频流的帧内的绘制的线条、形状或设计。图形表示可被生成以表现为位于在面部的部分上描绘的皮肤或毛发上或内的绘画、彩妆、纹身或其它表示。在一些情况下,图形表示可以生成为物理对象或结构,诸如鹿角、面具、头发、帽子、眼镜,或定位在面部的部分中、上或附近的其它对象或结构。
在用户输入包括触摸压力的实施例中,输入组件220和生成组件250中的一个或多个将被识别为与触摸压力相关联的边缘特征分配给从用户输入生成的图形表示。例如,在边缘特征是漫射边缘的情况下,作为绘制线条生成的图形表示可以定位在面部上并且包括从线条内的中心点向外均匀或不均匀地展开的边缘。作为另一示例,漫射边缘可以将图形表示的边缘混合到面部的部分的一个或多个附加颜色中。
在操作360中,渲染组件260在视频流的一个或多个后续帧内的面部的部分上渲染图形表示。图形表示可以在一个或多个位置处的面部的部分上呈现。渲染组件260使图形表示将被呈现在视频流的帧内。一旦由渲染组件260渲染,图形表示可被连续地渲染在视频流的帧上,其中与图形表示对应的面部的部分的一个或多个位置出现在帧内。在面部的部分的一个或多个位置不存在于一个或多个帧内的帧中,渲染组件260可以在一个或多个帧内跳过或以其它方式不渲染图形表示。
在一些实施例中,一旦渲染,渲染组件260可将图形表示存储在处理器可读存储装置内。一旦存储,可以基于一个或多个事件来调用图形表示。在一些实施例中,这两者可以对应于在存储图形表示之后打开面部绘制应用或者在存储之后初始化面部绘制应用的实例。在一些情况下,响应于启动面部绘制应用,获取组件210检测新视频流内的面部的部分。新视频流可以是与生成和渲染图形表示的视频流不同的视频流。响应于检测新视频流内的面部的部分,渲染组件260将存储在处理器可读存储装置中的图形表示渲染在新视频流的一个或多个帧内。
图4描绘了示出用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法400的流程图。方法400的操作可以由绘制系统160的组件执行。在一些情况下,方法400的某些操作可以使用方法300的一个或多个操作来执行,或者作为方法300的一个或多个操作的子操作来执行,如下面将更详细解释的。例如,如图4中所示,方法400可以作为操作320的一部分来执行。
在操作410中,位置组件230确定面部的部分与计算装置的图像采集装置的第一相对距离。第一相对距离可以在视频流的帧中确定。位置组件230可以基于由面部的部分占据的帧的量来确定面部的部分的相对距离。在基于帧的占据部分确定第一相对距离的情况下,位置组件230可以确定面部界标之间的距离并临时存储该距离以用于比较,从而确定面部的部分相对于图像采集装置的相对位置上的变化。
在操作420中,输入组件220基于面部的部分的第一相对距离来确定图形表示的尺寸特征。在一些示例实施例中,输入组件220根据第一相对距离和用户输入的恒定尺寸确定尺寸特征。在这些实施例中,用户输入是从手指或触笔的接触而从触摸屏装置接收的。手指或触笔可具有预定宽度或预定宽度范围内的宽度。输入组件220可以知道宽度或预定宽度范围,使得从触摸屏接收的输入具有固定的输入宽度。输入组件220可以接收具有固定输入宽度的用户输入。与位置组件230和链接组件240协作的输入组件220可以将用户输入的固定输入宽度上的一个或多个点与面部的部分上描绘的一个或多个点、一个或多个位置或一个或多个面部界标链接。
在一些情况下,输入组件220可以至少部分地基于用户界面中的线条宽度选择的选择来确定尺寸特征。例如,在接收与图形表示对应的用户输入之前,渲染组件260可以呈现设置的可选线条宽度元素。输入组件220可以从该组可选线条宽度元素中接收用户输入,用户输入包括线条宽度、厚度、形状或用于尺寸特征的任何其它合适的用户界面选择的选择。输入组件220结合线条宽度元素的选择以修改与针对图形表示的用户输入相关联的默认线条宽度。
在操作430中,缩放组件270基于面部的部分在视频流的后续帧中从第一相对距离到第二相对距离的移动来缩放图形表示的尺寸特征。例如,如在视频流的一个或多个帧内所描绘的,当面部靠近图像采集装置移动时,图形表示的线条宽度可增加,使得当面部接近图像采集装置时图形表示的线条变得更粗。类似地,随着面部的部分远离图像采集装置移动,图形表示的线条宽度减小,使得线条变得更细。在一些实施例中,缩放组件270保持图形表示相对于面部的部分的位置、点或面部界标的线条宽度比。例如,尽管线条宽度随着面部部分移动靠近图像采集装置而变得更粗,但是在缩放期间线条宽度的纵横比保持不变。在这些情况下,尽管图形表示的像素值随着尺寸特征缩放而改变,但是该比率被保持,使得图形表示在面部的部分上占据相同的表观空间,而无论面部的部分与图像采集装置的相对距离如何。
在一些实施例中,缩放组件270可包括最小面部比例或者确定最小面部比例以用于缩放图形表示。缩放组件270可以使用在绘制系统160内预先设定的最小面部比例,用于相对于图形表示的线条宽度或其它尺寸特征的面部部分的尺寸。在一些情况下,在缩放组件270包括预先设定的最小面部比例的情况下,缩放组件270可以生成并使得在视频流上示出的指令的呈现(例如,经由用户界面元素)以指示用户移动面部的部分或图像采集装置,直到面部的部分以与最小面部比例对应的尺寸定位在视频帧内。在一些实施例中,缩放组件270通过假设视频流的帧内的初始呈现的面部的部分是要在视频流内呈现的面部的最小尺寸来确定最小面部比例。
在操作432中,当缩放尺寸特征时,缩放组件270识别用于第一相对距离处的图形表示的第一线条宽度。缩放组件270可以基于针对线条宽度选择的用户输入、与图形表示对应的用户输入以及第一相对距离中的一个或多个来识别第一线条宽度。在一些实施例中,如上所述,缩放组件270可将第一线条宽度识别为所选的线条宽度、固定输入宽度或其它指定值。在一些情况下,缩放组件270识别如使用固定输入宽度和面部的部分的第一相对距离而确定的第一线条宽度。
在操作434中,缩放组件270确定图形表示上的至少一个点和面部的部分上描绘的两个或更多个面部界标的第一相对位置。缩放组件270可以确定视频流的一个或多个帧内的一个或多个像素处的至少一个点的第一相对位置。在一些情况下,缩放组件270将第一相对位置确定为视频流的一个或多个帧内的一个或多个坐标,其中视频流被分割成划分用于对象跟踪的帧的一组坐标。
在操作436中,缩放组件270确定在第二相对距离处的两个或更多个面部界标之间的距离的变化。在一些实施例中,缩放组件270通过识别在面部的部分上描绘的两个或更多个面部界标的第二相对位置来确定距离的变化。缩放组件270通过比较两个或更多个面部界标的第一相对位置和第二相对距离处的两个或更多个面部界标的第二相对位置来确定距离的变化。缩放组件270可以比较第一相对位置和第二相对位置的像素或坐标位置,以确定像素或坐标位置是否匹配。在像素或坐标位置不匹配的情况下,缩放组件270可以识别距离的变化。
在操作438中,缩放组件270基于两个或更多个面部界标之间的距离上的变化来修改图形表示的第一线条宽度,以生成图形表示的第二线条宽度。在一些实施例中,响应于识别第一相对位置和第二相对位置之间的距离的变化,缩放组件270通过将第一线条宽度改变为第二线条宽度来修改图形表示的宽度。第二线条宽度保持在第一线条宽度和第一相对距离处的两个或更多个面部特征之间存在的纵横比。
图5描绘了示出用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法500的流程图。方法500的操作可以由绘制系统160的组件执行。在一些情况下,在一个或多个所述实施例中,方法500的某些操作可以使用方法300或400的一个或多个操作来执行,或者作为方法300或400的一个或多个操作的子操作来执行,如下面将更详细解释的。
在操作510中,生成组件250生成位于面部的部分的前面的图形平面。图形平面可以是透明的并且从面部的部分向外延伸。图形平面可包括关于图形平面分布的一组坐标。可以将图形平面生成为视频流的帧内的图像层。在一些情况下,图像层被生成为位于视频流的帧内描绘的图像之上的透明覆盖物。
在一些实施例中,图形平面被设定轮廓使得图形表示可以链接到包括关于面部的部分的两个或更多个三维位置的图形平面上的坐标。在一些实施例中,轮廓图形平面被生成为跨越两个或更多个图像层。两个或更多个图像层可以彼此重叠并且被定位为位于视频流的帧内描绘的图像之上的透明覆盖物。在图像采集装置围绕面部的部分转动时,两个或更多个图像层用作在视频流内以两个或更多个视角覆盖面部的部分的轮廓平面。例如,在用户已经绘制了从用户输入的面部的部分向上延伸并且渲染为图形表示的一对鹿角的情况下,鹿角的部分可以跨越用作轮廓图形平面的两个或更多个图像定位。当图像采集装置围绕面部的部分转动时,鹿角被表示为从面部的部分向上延伸的二维或三维鹿角。作为另一示例,在视频流内的面部的部分的各个部分上接收针对图形表示的用户输入的情况下,生成组件250可以生成并且可以至少临时地存储视图中不连续的用于面部的部分的图形表示。以这种方式,绘制系统160可以接收输入并生成覆盖用户的整个面部的绘制的图形表示。在用户面向图像采集装置的情况下,可以调用或生成在面部的前面上的绘制图形表示,以用于在视频流内渲染和呈现。在用户旋转或者图像采集装置被旋转以示出面部的一侧的情况下,可以调用或生成针对面部的侧面的图形表示以用于渲染。此外,当面部或图像采集装置旋转时,可以调用或生成面部的每个新包括部分的绘制图形表示(例如,从前面朝向到侧面朝向视图的角度),使得平滑旋转可被渲染并显示包括与每个区域、位置、点或面部界标相关联的绘制图形表示作为旋转到视图中的区域、位置、点或界标。
在操作520中,链接组件240将图形平面上的一个或多个点链接到在面部的部分上描绘的一个或多个面部界标。链接组件240可以与操作340中执行的链接类似或相同地将图形平面上的一个或多个点链接到一个或多个面部界标。
在操作530中,跟踪组件280跟踪一个或多个面部界标的移动。跟踪组件280将一个或多个面部界标的移动与图形平面的移动相匹配。跟踪组件280可使用一个或多个面部跟踪算法跟踪跨越视频流的帧的一个或多个面部界标的移动。例如,跟踪组件280可以使用主动外观模型、主成分分析、本征跟踪、可变形表面模型或任何其它合适的跟踪方法来跟踪面部界标。面部界标的移动可以关于视频流的帧之间的向前运动、向后运动、旋转、平移和其它运动来跟踪。
图6示出了说明用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法600的流程图。方法600的操作可以由绘制系统160的组件执行。在一些情况下,方法600的某些操作可以使用方法300、400或500的一个或多个操作来执行,或者作为方法300、400或500的一个或多个操作的子操作来执行,如下面将更详细解释的。方法600可以使得能够跟踪面部的部分上的一个或多个位置,以将图形表示渲染为持久的图形表示。
在操作610中,位置组件230在第一后续帧内的第一定位处识别第一后续帧中的面部的部分上的一个或多个位置。在一些实施例中,位置组件230可以与操作330或410类似或相同地识别面部部分上的一个或多个位置。
在操作620中,渲染组件260在第一定位处在面部的部分上的一个或多个位置处渲染图形表示。渲染组件260可以与上述操作360中执行的渲染类似或相同地渲染图形表示。图形表示可以在视频流内实时渲染,使得在生成图形表示之后,渲染组件260通过描绘视频流的一个或多个帧内的图形表示来修改视频流。可以通过包含在覆盖一个或多个帧的图像层(例如,图形平面)中来在视频的一个或多个帧上描绘图形表示。
在操作630中,位置组件230在第二后续帧内的第二定位处识别第二后续帧中的面部的部分上的一个或多个位置。在一些情况下,位置组件230可以与上述操作330、410或436中执行的识别类似或相同地识别第二后续帧中的一个或多个位置。
在操作640中,渲染组件260在第二定位处在面部的部分上的一个或多个位置处渲染图形表示。渲染组件260可以与操作360或620类似或相同地在视频流的帧内渲染图形表示。
图7示出了说明用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法700的流程图。方法700的操作可以由绘制系统160的组件执行。在一些情况下,方法700的某些操作可以使用方法300、400、500或600的一个或多个操作来执行,或者作为方法300、400、500或600的一个或多个操作的子操作来执行,如下面将更详细解释的。
在操作710中,输入组件220确定用户输入从视频流内的面部的部分向外延伸。在一些实施例中,输入组件220接收输入,该输入在用户输入终止之前遍历视频流的帧的一部分,该部分不包括为面部部分的一部分。输入组件220可以基于位置组件230识别视频流的帧内的面部的部分的边界,确定用户输入从面部的部分向外延伸。
在操作720中,位置组件230确定与用户输入的位置对应的一组坐标的一个或多个坐标。在一些实施例中,一个或多个坐标是位于面部的部分上的坐标、点或面部界标。在这些实施例中,操作720可以与上述操作330类似或相同地执行。在一些情况下,位置组件230识别独立于帧内描绘的面部的部分的坐标的一组帧坐标。帧坐标将帧分割成帧区域。帧坐标的至少一部分可以由面部的部分占据。帧坐标的至少一部分可以由背景占据,而不是面部的部分。在这些情况下,位置组件230确定用于与一个或多个帧坐标(其和面部的部分无关)对应的用户输入的一组坐标的一个或多个坐标。
在操作730中,链接组件240将用户输入链接到图形平面上的一个或多个坐标。在一些实施例中,链接组件240与上述操作340或520类似或相同地将用户输入链接到图形平面上的一个或多个坐标。用户输入可以链接到与一个或多个帧坐标对应的图形平面上的一个或多个坐标。在一些情况下,链接到用户输入的一个或多个坐标的至少一部分是与一个或多个帧坐标对应的坐标,并且链接到用户输入的一个或多个坐标的一部分是与面部的部分对应的坐标。
在操作740中,渲染组件260渲染图形表示。图形表示可被渲染以在视频流的一个或多个后续帧内从图形平面上的面部的部分向外延伸。在一些示例实施例中,渲染组件260与操作360、620或640类似或相同地渲染图形表示。
图8示出了说明用于在视频流被采集并呈现在客户端装置(例如,计算装置)的显示装置上的同时在视频流的一个或多个帧内的面部上生成图形表示的示例方法800的流程图。方法800的操作可以由绘制系统160的组件执行。在一些情况下,方法800的某些操作可以使用方法300、400、500、600或700的一个或多个操作来执行,或者作为方法300、400、500、600或700的一个或多个操作的子操作来执行,如下面将更详细解释的。
在操作810中,输入组件220确定第一用户输入。第一用户输入从视频流内的面部的部分向外延伸。在一些实施例中,输入组件220与操作320、420或710中的一个或多个操作类似或相同地确定第一用户输入。
在操作812中,位置组件230确定与第一用户输入的位置对应的一组坐标的一个或多个坐标。在一些示例实施例中,位置组件230与上述操作330、410或720中描述的操作类似或相同地确定一个或多个坐标。
在操作814中,链接组件240将第一用户输入链接到第一图形平面上的一个或多个坐标。第一图形平面可以关于面部的部分定位于第一三维位置。在一些示例实施例中,链接组件240与关于上述操作340或520所描述的操作类似或相同地执行操作814。在一些情况下,链接组件240创建数据结构,其至少临时在处理器可读存储装置上存储第一用户输入与第一图形平面上的一个或多个坐标之间的链接。
在操作816中,渲染组件260渲染第一图形表示。第一图形表示可被渲染以在视频流的一个或多个后续帧内从第一图形平面上的面部的部分向外延伸。在一些示例实施例中,渲染组件260与关于上述操作360、620、640或740中的一个或多个所描述的操作类似或相同地执行操作816。
在操作818中,生成组件250生成在第二三维位置处关于面部的部分的第二图形平面。在一些示例实施例中,生成组件250与操作350或510中的一个或多个类似或相同地生成第二图形平面。第二图形平面可被生成作为与第一图形平面的至少一部分和面部的部分的至少一部分重叠的覆盖物。在一些情况下,第二图形平面可以定位成使得在图像采集装置围绕面部的部分旋转时,第二图形平面显现位于与第一图形平面的位置或视频流的帧内描绘的面部的部分间隔开一定距离的三维位置。
在操作820中,输入组件220确定位于视频流的帧内的第二用户输入。在一些示例实施例中,输入组件220与操作320或710类似或相同地确定第二用户输入位置。
在操作822中,链接组件240将第二用户输入链接到第二图形平面上的一个或多个坐标。在一些示例实施例中,链接组件240与操作340、520或730类似或相同地执行操作822。
在操作824中,生成组件250在第二图形平面上的一个或多个坐标处生成第二用户输入的第二图形表示。在一些示例实施例中,生成组件250与操作350、510或818类似或相同地生成第二用户输入的第二图形表示。
在操作826中,渲染组件260在第一图形平面上渲染第一图形表示,并在第二图形平面上渲染第二图形表示。渲染组件260可以在视频流的后续帧内渲染第一图形表示和第二图形表示。在一些示例实施例中,渲染组件260与操作360、620、640或者以其它方式以上描述的操作类似或相同地渲染第一图形表示和第二图形表示中的每一个图形表示。第一图形表示和第二图形表示可以分别在第一和第二图形平面上的视频的帧上渲染,连同帧内面部的部分的描绘。渲染组件260可以一旦生成就实时地在视频流的一个或多个帧中渲染第一图形表示和第二图形表示。
示例
为了更好地说明这里公开的装置和方法,在此提供了非限制性示例列表:
1.一种方法,包括:由一个或多个处理器接收视频流的一个或多个帧,该一个或多个帧的至少一部分描绘面部的至少一部分;识别计算装置的输入装置上的用户输入;识别与用户输入对应的面部的部分上的一个或多个位置;将用户输入链接到面部的部分上的一个或多个位置;生成用户输入的图形表示,该用户输入的图形表示链接到面部的部分上的一个或多个位置;以及在视频流的一个或多个后续帧内渲染面部部分上的图形表示,该图形表示呈现在一个或多个位置处的面部的部分上。
2.根据示例1所述的方法,其中,识别用户输入进一步包括:确定面部的部分与视频流的帧中计算装置的图像采集装置的第一相对距离;基于面部的部分的第一相对距离来确定图形表示的尺寸特征;以及基于面部的部分在视频流的后续帧中从第一相对距离到第二相对距离的移动来缩放图形表示的尺寸特征。
3.根据示例1或2所述的方法,其中,缩放图形表示的尺寸特征进一步包括:识别第一相对距离处的图形表示的第一线条宽度;确定图形表示上的至少一个点和面部部分上描绘的两个或更多个面部界标的第一相对位置;确定在第二相对距离处的两个或更多个面部界标之间的距离上的变化;以及基于两个或更多个面部界标之间的距离上的变化来修改针对图形表示的第一线条宽度,以生成针对图形表示的第二线条宽度。
4.根据示例1-3中任一项或多项所述的方法,其中,识别与用户输入对应的面部的部分上的一个或多个位置进一步包括:确定面部的部分上的面部网格,该面部网格识别面部的部分内描绘的一个或多个面部界标;识别用户输入的一个或多个坐标;以及将一个或多个坐标映射到一个或多个面部界标的至少一部分。
5.根据示例1-4中任一项或多项所述的方法,进一步包括:生成位于面部的部分的前面的图形平面;将图形平面上的一个或多个点链接到面部部分上描绘的一个或多个面部界标;以及跟踪一个或多个面部界标的移动,并将一个或多个面部界标的移动与图形平面的移动相匹配。
6.根据示例1-5中的任一项或多项所述的方法,其中,图形平面被设定轮廓使得链接到图形平面上的坐标的图形表示包括相对于面部的部分的两个或更多个三维位置。
7.根据示例1-6中任一项或多项所述的方法,其中,图形平面是透明的,从面部向外延伸,并且具有关于图形平面分布的一组坐标,并且进一步包括:确定用户输入从面部部分向外延伸;确定与用户输入的位置对应的一组坐标的一个或多个坐标;将用户输入链接到图形平面上的一个或多个坐标;以及在视频流的一个或多个后续帧内渲染在图形平面上从面部向外延伸的图形表示。
8.根据示例1-7中任一项或多项所述的方法,其中,图形平面是相对于面部部分位于第一三维位置处的第一图形平面,并且图形表示是第一图形表示,并且进一步包括:相对于面部的部分在第二三维位置处生成第二图形平面;确定位于视频流的帧内的第二用户输入;将第二用户输入链接到第二图形平面上的一个或多个坐标;在第二图形平面上的一个或多个坐标处生成第二用户输入的第二图形表示;以及在第一图形平面上渲染第一图形表示,以及在第二图形平面上渲染第二图形表示。
9.根据示例1-8中任一项或多项所述的方法,其中,该方法进一步包括跟踪面部部分上的一个或多个位置,以通过以下方式将图形表示渲染为持久图形表示:识别在第一后续帧内第一定位处的第一后续帧中的面部的部分上的一个或多个位置;在第一定位处在面部部分上的一个或多个位置处渲染图形表示;识别第二后续帧内第二定位处的第二后续帧中的面部的部分上的一个或多个位置;以及在第二定位处在面部部分上的一个或多个位置处渲染图形表示。
10.根据示例1-9中任一项或多项所述的方法,进一步包括:将图形表示存储在处理器可读存储装置中;响应于启动应用,检测新视频流内的面部的部分;以及响应于检测新视频流内的面部的部分,在新视频流的一个或多个帧内渲染图形表示。
11.根据示例1-10中任一项或多项所述的方法,其中,输入装置是触摸屏装置,该触摸屏装置被配置为对提供用户输入的触摸的压力敏感,并且其中,识别用户输入进一步包括:确定用户输入的触摸压力;识别与触摸压力相关联的边缘特征;以及将边缘特征分配给从用户输入生成的图形表示。
12.一种系统,包括:一个或多个处理器;以及非暂态处理器可读存储介质,其被耦接到一个或多个处理器并存储处理器可执行指令,该处理器可执行指令在由一个或多个处理器执行时使一个或多个处理器执行包括以下操作的操作:由一个或多个处理器接收视频流的一个或多个帧,该一个或多个帧的至少一部分描绘面部的至少一部分;识别计算装置的输入装置上的用户输入;识别与用户输入对应的面部的部分上的一个或多个位置;将用户输入链接到面部的部分上的一个或多个位置;生成用户输入的图形表示,用户输入的图形表示被链接到面部的部分上的一个或多个位置;以及在视频流的一个或多个后续帧内渲染面部的部分上的图形表示,该图形表示被呈现在一个或多个位置处的面部的部分上。
13.根据示例12所述的系统,其中,识别用户输入进一步包括:确定面部部分与视频流的帧中的计算装置的图像采集装置的第一相对距离;基于面部的部分的第一相对距离来确定图形表示的尺寸特征;以及基于面部的部分在视频流的后续帧中从第一相对距离到第二相对距离的移动来缩放图形表示的尺寸特征。
14.根据示例12或13所述的系统,其中,缩放图形表示的尺寸特征进一步包括:识别第一相对距离处的图形表示的第一线条宽度;确定图形表示上的至少一个点和面部的部分上描绘的两个或更多个面部界标的第一相对位置;确定在第二相对距离处的两个或更多个面部界标之间的距离的变化;以及基于两个或更多个面部界标之间的距离的变化来修改图形表示的第一线条宽度,以生成图形表示的第二线条宽度。
15.根据示例10-14中任一项或多项所述的系统,其中,识别与用户输入对应的面部的部分上的一个或多个位置进一步包括:确定面部的部分上的面部网格,该面部网格识别面部的部分内描绘的一个或多个面部界标;识别用户输入的一个或多个坐标;以及将一个或多个坐标映射到一个或多个面部界标的至少一部分。
16.根据示例10-15中任一项或多项所述的系统,其中,操作进一步包括:生成位于面部的部分的前面的图形平面;将图形平面上的一个或多个点链接到面部的部分上描绘的一个或多个面部界标;以及跟踪一个或多个面部界标的移动,并将一个或多个面部界标的移动与图形平面的移动相匹配。
17.一种存储处理器可执行指令的处理器可读存储介质,该处理器可执行指令在由机器的处理器执行时使机器执行包括以下操作的操作:由一个或多个处理器接收视频流的一个或多个帧,该一个或多个帧的至少一部分描绘面部的至少一部分;识别计算装置的输入装置上的用户输入;识别与用户输入对应的面部部分上的一个或多个位置;将用户输入链接到面部部分上的一个或多个位置;生成用户输入的图形表示,用户输入的图形表示被链接到面部的部分上的一个或多个位置;以及在视频流的一个或多个后续帧内渲染面部部分上的图形表示,该图形表示被呈现在一个或多个位置处的面部的部分上。
18.根据示例17所述的处理器可读存储介质,其中,识别用户输入进一步包括:确定面部部分到视频流的帧中的计算装置的图像采集装置的第一相对距离;基于面部的部分的第一相对距离来确定图形表示的尺寸特征;以及基于面部的部分在视频流的后续帧中从第一相对距离到第二相对距离的移动来缩放图形表示的尺寸特征。
19.根据示例17或18所述的处理器可读存储介质,其中,缩放图形表示的尺寸特征进一步包括:识别第一相对距离处的图形表示的第一线条宽度;确定图形表示上的至少一个点和面部的部分上描绘的两个或更多个面部界标的第一相对位置;确定在第二相对距离处的两个或更多个面部界标之间的距离的变化;以及基于两个或更多个面部界标之间的距离的变化来修改图形表示的第一线条宽度,以生成图形表示的第二线条宽度。
20.根据示例17-19中任一项或多项所述的处理器可读存储介质,其中,识别与用户输入对应的面部的部分上的一个或多个位置进一步包括:确定面部的部分上的面部网格,该面部网格识别面部的部分内描绘的一个或多个面部界标;识别用户输入的一个或多个坐标;以及将一个或多个坐标映射到一个或多个面部界标的至少一部分。
21.一种承载处理器可执行指令的机器可读介质,该处理器可执行指令在由机器的一个或多个处理器执行时使机器执行示例1至11中任一项所述的方法。
以上部分地在具体实施方式中阐述了本设备和方法的这些和其它示例和特征。发明内容和示例旨在提供本主题的非限制性实施例。它无意提供排他性或详尽的解释。包括具体实施方式以提供关于本主题的进一步信息。
模块、组件和逻辑
在此将某些实施例描述为包括逻辑或多个组件、模块或机制。组件可以构成硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的硬件组件(例如,至少一个硬件处理器、处理器或一组处理器)由软件(例如,应用或应用部分)配置为用于执行如在此所述的某些操作的硬件组件。
在一些实施例中,硬件组件以机械、电子或其任何合适的组合实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。例如,硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括包含在通用处理器或其它可编程处理器内的软件。应当理解,可以通过成本和时间考虑来驱动机械地在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中实现硬件组件的决定。
因此,短语“硬件组件”应该被理解为包含有形实体,是物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)从而以某个方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的组件”指的是硬件组件。考虑其中临时配置(例如,编程)硬件组件的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每一个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件组件)。因此,软件可以配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。
硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦合。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过存储和取得多个硬件组件可访问的存储器结构中的信息来实现这些硬件组件之间的通信。例如,一个硬件组件执行操作并将该操作的输出存储在与其通信耦合的存储器装置中。然后,另一硬件组件可以稍后访问存储器装置以取得和处理存储的输出。硬件组件还可以发起与输入或输出装置的通信,并且可以在资源(例如,信息集合)上操作。
在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的处理器来执行。无论是临时配置还是永久配置,这种处理器构成处理器实现的组件,该组件操作以执行在此所述的操作或功能。如在此所使用的,“处理器实现的组件”指的是使用处理器实现的硬件组件。
类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由处理器或处理器实现的组件执行。此外,处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)和经由适当的接口(例如,应用程序接口(API))来访问。
某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且横跨多个机器部署。在一些示例实施例中,处理器或处理器实现的组件位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件横跨多个地理位置分布。
应用
图9示出与一些实施例一致的执行移动操作系统(例如,IOSTM、ANDROIDTM
Figure GDA0002816403960000281
Phone或其它移动操作系统)的示例移动装置900。在一个实施例中,移动装置900包括可操作来从用户902接收触知数据的触摸屏。例如,用户902可物理地触摸904移动装置900,并且响应于触摸904,移动装置900可以确定触知数据,诸如触摸位置、触摸力或手势动作。在各种示例实施例中,移动装置900显示主屏幕906(例如,IOSTM上的Springboard),其可操作以启动应用或以其它方式管理移动装置900的各个方面。在一些示例实施例中,主屏幕906提供诸如电池寿命、连接性或其它硬件状态的状态信息。用户902可以通过触摸由相应的用户界面元素占据的区域来激活用户界面元素。以该方式,用户902与移动装置900的应用交互。例如,触摸主屏幕906中包括的特定图标占据的区域导致启动与特定图标对应的应用。
如图9中所示,移动装置900可以包括成像装置908。成像装置908可以是相机或耦合到能够采集视频流或一个或多个连续图像的移动装置900的任何其它装置。成像装置908可以由绘制系统160或可选择的用户界面元素来触发,以启动对帧的视频流或连续体的采集,并将图像的视频流或连续体传递给绘制系统160以根据在本公开中描述的一个或多个方法来处理。
可以在移动装置900上执行许多种类的应用(也称为“应用软件”),诸如本机应用(例如,在IOSTM上运行的以Objective-C、Swift或另一适当语言编程的应用,或在ANDROIDTM上运行的以Java编程的应用)、移动web应用(例如,以超文本标记语言-5(HTML5)编写的应用)或混合应用(例如启动HTML5会话的本机壳应用)。例如,移动装置900包括消息传递应用软件、音频录制应用软件、相机应用软件、书籍阅读器应用软件、媒体应用软件、健身应用软件、文件管理应用软件、位置应用软件、浏览器应用软件、设置应用软件、联系人应用软件、电话呼叫应用软件或其它应用软件(例如,游戏应用软件、社交网络应用软件、生物度量监视应用软件)。在另一示例中,移动装置900包括诸如
Figure GDA0002816403960000291
的社交消息传送应用软件910,其与一些实施例一致,允许用户交换包括媒体内容的短暂消息。在该示例中,社交消息传送应用软件910可以合并在此描述的实施例的各方面。例如,在一些实施例中,社交消息传递应用包括由用户社交消息传递应用创建的短暂的媒体图库。这些图库可以由用户张贴并且可由用户的联系人(例如,“朋友”)查看的视频或图片组成。可替代地,公共图库可由社交消息传递应用的管理员创建,该应用由来自应用的任何用户(并且可由所有用户访问)的媒体组成。在又一个实施例中,社交消息传递应用可以包括“杂志”特征,其由发布者在社交消息传递应用的平台上生成并可由任何用户访问的文章和其它内容组成。这些环境或平台中的任何一个都可以用来实现本发明的概念。
在一些实施例中,短暂消息传送系统可以包括具有短暂视频剪辑或图像的消息,该短暂视频剪辑或图像在诸如观看时间或观看完成的删除触发事件之后被删除。在这种实施例中,实现绘制系统160的装置可以随着短暂视频剪辑被装置采集而在短暂视频剪辑内识别、跟踪、提取并生成面部表示,并且使用短暂消息系统将短暂视频剪辑发送到另一装置。
软件架构
图10是示出可以安装在上述装置上的软件1002的架构的框图1000。图10仅仅是软件架构的非限制性示例,并且将理解可以实现许多其它架构来促进在此所述的功能。在各种实施例中,软件1002由诸如图11的机器1100的硬件来实现,机器1100包括处理器1110、存储器1130和I/O组件1150。在该示例架构中,软件1002可以被概念化为层的堆栈,其中每一个层可以提供特定的功能。例如,软件1002包括诸如操作系统1004、库1006、框架1008和应用1010的层。操作上,与一些实施例一致,应用1010通过软件堆栈调用应用程序编程接口(API)调用1012,并响应于API调用1012接收消息1014。
在各种实施方式中,操作系统1004管理硬件资源并提供公共服务。操作系统1004包括例如内核1020、服务1022和驱动器1024。与一些实施例一致,内核1020作为硬件与其它软件层之间的抽象层。例如,内核1020提供了存储器管理、处理器管理(例如调度)、组件管理、网络连接和安全设置等功能。服务1022可以为其它软件层提供其它公共服务。根据一些实施例,驱动器1024负责控制底层硬件或与底层硬件接口连接。例如,驱动器1024可以包括显示器驱动器、相机驱动器、
Figure GDA0002816403960000301
驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(USB)驱动器)、
Figure GDA0002816403960000302
驱动器、音频驱动器、电源管理驱动器等。
在一些实施例中,库1006提供由应用1010利用的低级通用基础设施。库1006可以包括系统库1030(例如,C标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库1006可以包括API库1032,诸如媒体库(例如,支持各种媒体格式(诸如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))的呈现和操纵的库)、图形库(例如,用于在显示器上的图形内容中呈现二维(2D)和三维(3D)的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库1006同样可以包括各种各样的其它库1034,以向应用1010提供许多其它API。
根据一些实施例,框架1008提供可由应用1010利用的高级公共架构。例如,框架1008提供各种图形用户界面(GUI)功能、高级别资源管理、高级位置节点等。框架1008可以提供可由应用1010利用的其它API的广泛范围,其中的一些可以特定于特定操作系统或平台。
在示例实施例中,应用1010包括主页应用1050、联系人应用1052、浏览器应用1054、书籍阅读器应用1056、位置应用1058、媒体应用1060、消息传递应用1062、游戏应用1064以及诸如第三方应用1066的其它广泛分类的应用。根据一些实施例,应用1010是执行程序中定义的功能的程序。可以利用各种编程语言来创建以各种方式构造的应用1010,诸如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在具体示例中,第三方应用1066(例如,由特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在移动操作系统(诸如IOSTM、ANDROIDTM
Figure GDA0002816403960000311
PHONE或其它移动操作系统)上运行的移动软件。在该示例中,第三方应用1066可以调用由操作系统1004提供的API调用1012以便于执行在此描述的功能。
示例机器架构和机器可读介质
图11是示出根据一些实施例能够从机器可读介质(例如,非暂态处理器可读存储介质或处理器可读存储装置)读取指令(例如处理器可执行指令)并执行在此讨论的任何方法的机器1100的组件的框图。具体地,图11示出了以计算机系统的示例形式的机器1100的示意图,在该计算机系统内可以执行用于使机器1100执行在此讨论的任何方法的指令1116(例如,软件、程序、应用、小程序、应用程序或其它可执行代码)。在替代实施例中,机器1100作为独立装置操作或者可以耦接(例如,网络连接)到其它机器。在联网部署中,机器1100可以以服务器-客户端网络环境中的服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器。机器1100可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能手机、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器、或者连续或以其它方式指定机器1100将采取的动作的能够执行指令1116的任何机器。此外,虽然只示出单个机器1100,但是术语“机器”同样可被认为包括单独或联合执行指令1116以执行在此所讨论的任何方法的机器1100的集合。
在各种实施例中,机器1100包括处理器1110、存储器1130以及可被配置成经由总线1102彼此通信的I/O组件1150。在示例实施例中,处理器1110(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复合指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一个处理器或其任何合适的组合)包括例如可以执行指令1116的处理器1112和处理器1114。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令1116的两个以上独立处理器(同样称为“核”)。尽管图11示出了多个处理器1110,但是机器1100可以包括单个具有单核的处理器、单个具有多核的处理器(例如,多核处理器)、多个具有单核的处理器、多个具有多核的处理器或其任何组合。
根据一些实施例,存储器1130包括主存储器1132、静态存储器1134和经由总线1102可被处理器1110访问的存储单元1136。存储单元1136可以包括机器可读介质1138,在该机器可读介质1138上存储了体现在此所述的任何方法或功能的指令1116。指令1116同样可以在由机器1100的其执行期间完全或至少部分地驻留在主存储器1132内、静态存储器1134内、处理器1110中的至少一个内(例如,在处理器的高速缓冲存储器内)或任何合适的组合。因此,在各种实施例中,主存储器1132、静态存储器1134和处理器1110被认为是机器可读介质1138。
如在此所使用的,术语“存储器”是指能够临时或永久地存储数据的机器可读介质1138,并且可以认为包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓存、闪存和高速缓存。虽然机器可读介质1138在示例实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令1116的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样可被视为包括能够存储指令(例如,指令1116)用于由机器(例如,机器1100)执行的任何介质或多个介质的组合,使得指令在由机器1100的处理器(例如,处理器1110)执行时使机器1100执行在此描述的任何方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”可被视为包括但不限于以固态存储器(例如,闪存)、光学介质、磁性介质、其它非易失性存储器(例如,可擦除可编程只读存储器(EPROM))或其任何合适的组合的形式的数据存储库。术语“机器可读介质”可包括信号本身。
I/O组件1150包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。通常,可理解的是I/O组件1150可以包括图11中未示出的许多其它组件。I/O组件1150根据功能被分组,仅用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件1150包括输出组件1152和输入组件1154。输出组件1152包括视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如振动电动机)、其它信号发生器等。输入组件1154包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触知输入组件)、音频输入组件(例如,麦克风)等。
在一些另外的示例实施例中,I/O组件1150包括各种其它组件中的生物度量组件1156、运动组件1158、环境组件1160或位置组件1162。例如,生物度量组件1156包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或嘴部姿势)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1158包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1160包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。位置组件1162包括定位传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。
通信可以使用各种各样的技术来实现。I/O组件1150可以包括通信组件1164,其可操作以分别经由耦接器1182和耦接器1172将机器1100耦接到网络1180或装置1170。例如,通信组件1164包括网络接口组件或与网络1180接口连接的另一合适装置。在另外的示例中,通信组件1164包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、
Figure GDA0002816403960000341
组件(例如,低功耗
Figure GDA0002816403960000342
)、
Figure GDA0002816403960000343
组件和经由其它模式提供通信的其它通信组件。装置1170可以是另一机器或各种各样的外围装置(例如,经由通用串行总线(USB)耦接的外围装置)中的任何一个。
此外,在一些实施例中,通信组件1164检测标识符或包括可操作以检测标识符的组件。例如,通信组件1164包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF417、超码、统一商业代码缩减空格符号(UCC RSS)-2D条形码和其它光学代码的多维条形码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由可以指示特定位置的通信组件1164来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由
Figure GDA0002816403960000351
信号三角测量的位置、经由检测
Figure GDA0002816403960000352
或NFC信标信号的位置等。
传输介质
在各种示例实施例中,网络1180的部分可以是自组织网络、内联网、外部网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure GDA0002816403960000353
网络、另一种类型的网络,或两个以上此类网络的组合。例如,网络1180或网络1180的一部分可以包括无线或蜂窝网络,并且耦接1182可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦接。在该示例中,耦接1182可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、GSM演进增强型数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
在示例实施例中,经由网络接口装置(例如,在通信组件1164中包括的网络接口组件)使用传输介质通过网络1180发送或接收指令1116,并且利用多个公知的传输协议(例如,超文本传输协议(HTTP))中的任何一个。类似地,在其它示例实施例中,使用传输介质经由耦接1172(例如,对等耦接)向装置1170发送或接收指令1116。术语“传输介质”可被视为包括能够存储、编码或携带由机器1100执行的指令1116的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于这种软件的通信实现。
此外,因为机器可读介质1138不体现传播信号,所以机器可读介质1138是非暂态的(换句话说,不具有任何短暂信号)。然而,将机器可读介质1338标记为“非暂态”不应被解释为意味着介质不能移动。介质应该被认为是可从一个物理位置传送到另一物理位置。另外,由于机器可读介质1138是有形的,因此介质可以被认为是机器可读装置。
语言
在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然将方法的单独操作示出和描述为单独的操作,但可以同时执行单独的操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为分离的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的此类实施例在此可以单独地或集体地由术语“发明”指代,这仅仅为了方便,如果事实上公开了多于一个则不旨在将本申请的范围限制于任何单个公开内容或发明构思。
在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、组件、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (14)

1.一种用于视频流的实时绘制的方法,包括:
由一个或多个处理器接收(310)视频流的多个帧,所述帧的至少一部分描绘面部的至少一部分;
在向用户顺序呈现所述视频流的描绘所述面部的至少一部分的所述帧时,接收(320)来自所述用户的计算装置的输入装置的用户输入,其中,所述用户输入包括对定时机制的用户选择,所述定时机制包括用于呈现所述用户输入的图形表示的设定时间段;
响应于所述用户输入与所述面部的所述部分相对应,识别(330)与所述用户输入对应的所述面部的所述部分上的一个或多个位置;
将所述用户输入链接(340)到所述面部的所述部分上的所述一个或多个位置;
生成(350)所述用户输入的所述图形表示,所述用户输入的所述图形表示被链接到所述面部的所述部分上的所述一个或多个位置;以及
基于所述定时机制,在所述视频流的一个或多个后续帧内在所述面部的所述部分上渲染(360)所述图形表示,所述图形表示被呈现在所述一个或多个位置处的所述面部的所述部分上;
其中,生成(350)所述用户输入的所述图形表示包括:
生成(510)位于所述面部的所述部分前面的图形平面;
在所述图形平面上生成所述图形表示;
将所述图形平面上的一个或多个点链接(520)到所述面部的所述部分上描绘的一个或多个面部界标;以及
跟踪(530)所述一个或多个面部界标的移动,并将所述一个或多个面部界标的所述移动与所述图形平面的移动相匹配。
2.根据权利要求1所述的方法,其中,接收(320)所述用户输入进一步包括:
确定(410)在所述视频流的帧中所述面部的所述部分到所述计算装置的图像采集装置的第一相对距离;
基于所述面部的所述部分的所述第一相对距离来确定(420)所述图形表示的尺寸特征;以及
基于所述面部的所述部分在所述视频流的后续帧中从所述第一相对距离到第二相对距离的移动来缩放(430)所述图形表示的所述尺寸特征。
3.根据权利要求2所述的方法,其中,缩放(430)所述图形表示的所述尺寸特征进一步包括:
识别(432)在所述第一相对距离处所述图形表示的第一线条宽度;
确定(434)所述图形表示上的至少一个点和所述面部的所述部分上描绘的两个或更多个面部界标的第一相对位置;
确定(436)在所述第二相对距离处的所述两个或更多个面部界标之间的距离的变化;以及
基于所述两个或更多个面部界标之间的距离的所述变化来修改(438)所述图形表示的所述第一线条宽度,以生成所述图形表示的第二线条宽度。
4.根据权利要求1至3中任一项所述的方法,其中,识别(330)与所述用户输入对应的所述面部的所述部分上的所述一个或多个位置进一步包括:
确定所述面部的所述部分上的面部网格,所述面部网格识别所述面部的所述部分内描绘的一个或多个面部界标;
识别所述用户输入的一个或多个坐标;以及
将所述一个或多个坐标映射到所述一个或多个面部界标的至少一部分。
5.根据权利要求1至3中任一项所述的方法,其中,所述图形平面被设定轮廓使得链接到所述图形平面上的坐标的图形表示包括相对于所述面部的所述部分的两个或更多个三维位置。
6.根据权利要求1至3中任一项所述的方法,其中,所述图形平面是透明的,从所述面部向外延伸,并且具有关于所述图形平面分布的一组坐标,并且其中所述方法进一步包括:
确定(710;810)所述用户输入从所述面部的所述部分向外延伸;
确定(720;812)与所述用户输入的位置对应的所述一组坐标的一个或多个坐标;
将所述用户输入链接(730;814)到所述图形平面上的所述一个或多个坐标;以及
在所述视频流的一个或多个后续帧内渲染(740;816)在所述图形平面上从所述面部向外延伸的所述图形表示。
7.根据权利要求6所述的方法,其中,所述图形平面是相对于所述面部的所述部分的位于第一三维位置处的第一图形平面,并且所述图形表示是第一图形表示,并且进一步包括:
生成(818)相对于所述面部的所述部分在第二三维位置处的第二图形平面;
确定(820)位于所述视频流的帧内的第二用户输入;
将所述第二用户输入链接(822)到所述第二图形平面上的一个或多个坐标;
生成(824)在所述第二图形平面上的所述一个或多个坐标处的所述第二用户输入的第二图形表示;以及
在所述第一图形平面上渲染所述第一图形表示,以及在所述第二图形平面上渲染(826)所述第二图形表示。
8.根据权利要求1至3中任一项所述的方法,进一步包括跟踪所述面部的所述部分上的所述一个或多个位置,以通过以下方式将所述图形表示渲染为持久的图形表示:
在第一后续帧内第一定位处识别(610)所述第一后续帧中的所述面部的所述部分上的所述一个或多个位置;
在所述第一定位处在所述面部的所述部分上的所述一个或多个位置处渲染(620)所述图形表示;
在第二后续帧内第二定位处识别(630)所述第二后续帧中的所述面部的所述部分上的所述一个或多个位置;以及
在所述第二定位处在所述面部的所述部分上的所述一个或多个位置处渲染(640)所述图形表示。
9.根据权利要求1至3中任一项所述的方法,进一步包括:
将所述图形表示存储在处理器可读存储装置中;
响应于启动应用,检测新视频流内的所述面部的所述部分;以及
响应于检测所述新视频流内的所述面部的所述部分,在所述新视频流的一个或多个帧内渲染所述图形表示。
10.根据权利要求1至3中任一项所述的方法,其中,所述输入装置是触摸屏装置,所述触摸屏装置被配置为对提供所述用户输入的触摸的压力敏感,并且其中,识别所述用户输入进一步包括:
确定所述用户输入的触摸压力;
识别与所述触摸压力相关联的边缘特征;以及
将所述边缘特征分配给从所述用户输入生成的所述图形表示。
11.一种用于视频流的实时绘制的系统,包括:
一个或多个处理器(1110);以及
非暂态处理器可读存储介质(1130),其被耦接到所述一个或多个处理器(1110)并存储处理器可执行指令,所述处理器可执行指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的操作:
由一个或多个处理器接收视频流的多个帧,所述帧的至少一部分描绘面部的至少一部分;
在向用户顺序呈现所述视频流的描绘所述面部的至少一部分的所述帧时,接收来自所述用户的计算装置的输入装置的用户输入,其中,所述用户输入包括对定时机制的用户选择,所述定时机制包括用于呈现所述用户输入的图形表示的设定时间段;
响应于所述用户输入与所述面部的所述部分相对应,识别与所述用户输入对应的所述面部的所述部分上的一个或多个位置;
将所述用户输入链接到所述面部的所述部分上的所述一个或多个位置;
生成所述用户输入的所述图形表示,所述用户输入的所述图形表示被链接到所述面部的所述部分上的所述一个或多个位置;以及
基于所述定时机制,在所述视频流的一个或多个后续帧内在所述面部的所述部分上渲染所述图形表示,所述图形表示被呈现在所述一个或多个位置处的所述面部的所述部分上;
其中,生成所述用户输入的所述图形表示包括:
生成位于所述面部的所述部分前面的图形平面;
在所述图形平面上生成所述图形表示;
将所述图形平面上的一个或多个点链接到所述面部的所述部分上描绘的一个或多个面部界标;以及
跟踪所述一个或多个面部界标的移动,并将所述一个或多个面部界标的所述移动与所述图形平面的移动相匹配。
12.根据权利要求11所述的系统,其中,接收所述用户输入进一步包括:
确定所述视频流的帧中所述面部的所述部分与所述计算装置的图像采集装置的第一相对距离;
基于所述面部的所述部分的所述第一相对距离来确定所述图形表示的尺寸特征;以及
基于所述面部的所述部分在所述视频流的后续帧中从所述第一相对距离到第二相对距离的移动来缩放所述图形表示的所述尺寸特征,
其中,缩放所述图形表示的所述尺寸特征可选地进一步包括:
识别所述第一相对距离处的所述图形表示的第一线条宽度;
确定所述图形表示上的至少一个点和所述面部的所述部分上描绘的两个或更多个面部界标的第一相对位置;
确定在所述第二相对距离处的所述两个或更多个面部界标之间的距离的变化;以及
基于所述两个或更多个面部界标之间的距离的所述变化来修改所述图形表示的所述第一线条宽度,以生成所述图形表示的第二线条宽度。
13.根据权利要求11或12所述的系统,其中,识别与所述用户输入对应的所述面部的所述部分上的所述一个或多个位置进一步包括:
确定所述面部的所述部分上的面部网格,所述面部网格识别所述面部的所述部分内描绘的一个或多个面部界标;
识别所述用户输入的一个或多个坐标;以及
将所述一个或多个坐标映射到所述一个或多个面部界标的至少一部分。
14.一种承载处理器可执行指令的机器可读介质,所述处理器可执行指令当由机器的一个或多个处理器执行时,使所述机器执行权利要求1至10中任一项所述的方法。
CN201780056702.3A 2016-07-18 2017-07-18 用于视频流的实时绘制的系统、装置、介质和方法 Active CN109716781B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111492976.1A CN114143570A (zh) 2016-07-18 2017-07-18 视频流的实时绘制

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/213,186 2016-07-18
US15/213,186 US10609324B2 (en) 2016-07-18 2016-07-18 Real time painting of a video stream
PCT/US2017/042636 WO2018017592A1 (en) 2016-07-18 2017-07-18 Real time painting of a video stream

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111492976.1A Division CN114143570A (zh) 2016-07-18 2017-07-18 视频流的实时绘制

Publications (2)

Publication Number Publication Date
CN109716781A CN109716781A (zh) 2019-05-03
CN109716781B true CN109716781B (zh) 2021-12-21

Family

ID=59631851

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111492976.1A Pending CN114143570A (zh) 2016-07-18 2017-07-18 视频流的实时绘制
CN201780056702.3A Active CN109716781B (zh) 2016-07-18 2017-07-18 用于视频流的实时绘制的系统、装置、介质和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111492976.1A Pending CN114143570A (zh) 2016-07-18 2017-07-18 视频流的实时绘制

Country Status (5)

Country Link
US (4) US10609324B2 (zh)
EP (2) EP3485649A1 (zh)
KR (3) KR102329583B1 (zh)
CN (2) CN114143570A (zh)
WO (1) WO2018017592A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
US9721551B2 (en) 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions
US10339410B1 (en) * 2016-01-13 2019-07-02 Snap Inc. Color extraction of a video stream
US10609324B2 (en) 2016-07-18 2020-03-31 Snap Inc. Real time painting of a video stream
CN109872379B (zh) * 2017-12-05 2022-12-02 富士通株式会社 数据处理装置和方法
US10965964B2 (en) 2018-02-20 2021-03-30 Logitech Europe S.A. System and methods for integrated multistreaming of media with graphical overlays
US10726603B1 (en) 2018-02-28 2020-07-28 Snap Inc. Animated expressive icon
US10484736B2 (en) 2018-03-12 2019-11-19 General Workings Inc. Systems and methods for a marketplace of interactive live streaming multimedia overlays
US10924796B2 (en) * 2018-04-10 2021-02-16 Logitech Europe S.A. System and methods for interactive filters in live streaming media
US20220137027A1 (en) * 2019-01-22 2022-05-05 Imabiotech Method for evaluating molecular changes related to a molecule effect in a biological sample
JP7277187B2 (ja) 2019-03-13 2023-05-18 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、およびプログラム
CN111355998B (zh) * 2019-07-23 2022-04-05 杭州海康威视数字技术股份有限公司 视频处理方法及装置
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
CN112862657A (zh) * 2019-11-28 2021-05-28 阿里巴巴集团控股有限公司 图像处理方法、装置、电子设备及计算机存储介质
TW202231071A (zh) * 2021-01-20 2022-08-01 圓剛科技股份有限公司 直播串流的多媒體處理系統及直播串流的多媒體處理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055912A (zh) * 2009-10-29 2011-05-11 北京中星微电子有限公司 一种视频应用系统、视频特效处理系统和方法
EP2394714A1 (en) * 2010-06-09 2011-12-14 Nintendo Co., Ltd. Image processing program, image processing apparatus, image processing system, and image processing method
GB2518589A (en) * 2013-07-30 2015-04-01 Holition Ltd Image processing
CN105447823A (zh) * 2014-08-07 2016-03-30 联想(北京)有限公司 一种图像处理方法及一种电子设备
WO2016069814A1 (en) * 2014-10-31 2016-05-06 Microsoft Technology Licensing, Llc Modifying video call data
CN105763829A (zh) * 2014-12-18 2016-07-13 联想(北京)有限公司 一种图像处理方法及电子设备

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE59708043D1 (de) 1996-06-17 2002-10-02 Siemens Ag Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US6226015B1 (en) * 1998-02-25 2001-05-01 Intel Corporation Method of automatically producing sketches and cartoon images from movies
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US7307642B2 (en) * 2001-06-28 2007-12-11 Ideaworks 3D Ltd. Graphics compression
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
US7721308B2 (en) * 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8332475B2 (en) 2005-08-22 2012-12-11 Triplay Communications Ltd. Messaging system and method
EP1938208A1 (en) * 2005-09-30 2008-07-02 Philips Intellectual Property & Standards GmbH Face annotation in streaming video
KR101240261B1 (ko) * 2006-02-07 2013-03-07 엘지전자 주식회사 이동통신 단말기의 영상 통화 장치 및 방법
JP2007310577A (ja) * 2006-05-17 2007-11-29 Toshiba Corp 描画データ抽出装置、方法、およびプログラム
US8373799B2 (en) * 2006-12-29 2013-02-12 Nokia Corporation Visual effects for video calls
USRE47534E1 (en) 2007-04-23 2019-07-23 Ramot At Tel Aviv University Ltd. System, method and a computer readable medium for providing an output image
JP4350773B2 (ja) * 2007-07-25 2009-10-21 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
WO2009101153A2 (en) 2008-02-13 2009-08-20 Ubisoft Entertainment S.A. Live-action image capture
WO2010111582A1 (en) * 2009-03-27 2010-09-30 Bailey Scott J Interactive media player system
US20140053115A1 (en) * 2009-10-13 2014-02-20 Pointgrab Ltd. Computer vision gesture based control of a device
WO2011101784A1 (en) 2010-02-16 2011-08-25 Tigertext Inc. A messaging system apparatuses circuits and methods of operation thereof
US20120069028A1 (en) * 2010-09-20 2012-03-22 Yahoo! Inc. Real-time animations of emoticons using facial recognition during a video chat
JP2012113460A (ja) * 2010-11-24 2012-06-14 Sony Corp 情報処理装置および方法、並びにプログラム
US8665307B2 (en) * 2011-02-11 2014-03-04 Tangome, Inc. Augmenting a video conference
US9449253B2 (en) * 2012-01-16 2016-09-20 Google Inc. Learning painting styles for painterly rendering
US10349001B1 (en) * 2012-10-11 2019-07-09 SportSight LLC Venue based event capture organizational and distribution system and method
US9524282B2 (en) * 2013-02-07 2016-12-20 Cherif Algreatly Data augmentation with real-time annotations
US10489501B2 (en) * 2013-04-11 2019-11-26 Google Llc Systems and methods for displaying annotated video content by mobile computing devices
US9436304B1 (en) * 2013-11-01 2016-09-06 Google Inc. Computer with unified touch surface for input
US9454840B2 (en) * 2013-12-13 2016-09-27 Blake Caldwell System and method for interactive animations for enhanced and personalized video communications
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9792716B2 (en) * 2014-06-13 2017-10-17 Arcsoft Inc. Enhancing video chatting
US20160191958A1 (en) * 2014-12-26 2016-06-30 Krush Technologies, Llc Systems and methods of providing contextual features for digital communication
US9922439B2 (en) * 2014-07-25 2018-03-20 Samsung Electronics Co., Ltd. Displaying method, animation image generating method, and electronic device configured to execute the same
US9298884B1 (en) * 2014-12-17 2016-03-29 Vitaax Llc Remote instruction and monitoring of health care
US10609324B2 (en) 2016-07-18 2020-03-31 Snap Inc. Real time painting of a video stream

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055912A (zh) * 2009-10-29 2011-05-11 北京中星微电子有限公司 一种视频应用系统、视频特效处理系统和方法
EP2394714A1 (en) * 2010-06-09 2011-12-14 Nintendo Co., Ltd. Image processing program, image processing apparatus, image processing system, and image processing method
GB2518589A (en) * 2013-07-30 2015-04-01 Holition Ltd Image processing
CN105447823A (zh) * 2014-08-07 2016-03-30 联想(北京)有限公司 一种图像处理方法及一种电子设备
WO2016069814A1 (en) * 2014-10-31 2016-05-06 Microsoft Technology Licensing, Llc Modifying video call data
CN105763829A (zh) * 2014-12-18 2016-07-13 联想(北京)有限公司 一种图像处理方法及电子设备

Also Published As

Publication number Publication date
EP4117296A1 (en) 2023-01-11
KR20200125764A (ko) 2020-11-04
KR102329583B1 (ko) 2021-11-22
KR102173620B1 (ko) 2020-11-03
US20220078370A1 (en) 2022-03-10
US11212482B2 (en) 2021-12-28
US20180018079A1 (en) 2018-01-18
US11750770B2 (en) 2023-09-05
CN109716781A (zh) 2019-05-03
US20200186747A1 (en) 2020-06-11
US20230362327A1 (en) 2023-11-09
CN114143570A (zh) 2022-03-04
US10609324B2 (en) 2020-03-31
KR102137041B1 (ko) 2020-07-23
KR20190028767A (ko) 2019-03-19
WO2018017592A1 (en) 2018-01-25
KR20200090936A (ko) 2020-07-29
EP3485649A1 (en) 2019-05-22

Similar Documents

Publication Publication Date Title
CN109716781B (zh) 用于视频流的实时绘制的系统、装置、介质和方法
US10984569B2 (en) Avatar based ideogram generation
US11961213B2 (en) Image segmentation and modification of a video stream
US11532133B2 (en) Audio responsive augmented reality
CN107851319B (zh) 区域增强现实持久性标签对象
US11468544B2 (en) Eye texture inpainting
US11551425B2 (en) Modifying multiple objects within a video stream

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