CN114245987A - 用于视频通话的基于面部的帧速率上采样 - Google Patents

用于视频通话的基于面部的帧速率上采样 Download PDF

Info

Publication number
CN114245987A
CN114245987A CN201980012945.6A CN201980012945A CN114245987A CN 114245987 A CN114245987 A CN 114245987A CN 201980012945 A CN201980012945 A CN 201980012945A CN 114245987 A CN114245987 A CN 114245987A
Authority
CN
China
Prior art keywords
face
interpolated
frame
video
background
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980012945.6A
Other languages
English (en)
Inventor
狄龙·卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN114245987A publication Critical patent/CN114245987A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/0137Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes dependent on presence/absence of motion, e.g. of motion zones
    • 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/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • 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
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0102Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving the resampling of the incoming video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • 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

用于视频通话的基于面部的帧速率上采样
相关申请的交叉引用
本申请要求2019年8月7日提交的名称为“用于视频通话的基于面部的帧速率上采样”的申请号为62/884,135的美国临时专利申请的优先权,在此将其全文引入作为参考。
背景技术
移动设备上的视频流,例如在视频通话应用中使用的视频流,可以使用低帧速率,例如每秒15帧,以节省带宽或其它资源。然而,较低的帧速率相当于不令人满意的观众体验。例如,在对象经历快速运动的视频通话中,较低的帧速率可能导致观看者感觉在运动中口吃。虽然许多移动设备能够渲染较高的帧速率视频(例如,25FPS,30FPS,60FPS,90FPS等),但是带宽,电池或本地处理容量限制可能使得高帧速率不切实际。
传统的运动插值技术使用光流或体素流来检测帧之间的像素的移动。对帧间流进行插值以合成插值帧。然而,即使当在台式计算机的图形处理单元上执行时,确定和插值流在计算上也是昂贵的,因为它需要分析每个像素以识别帧之间的移动。作为结果,这种方法对计算的需求太高,不能用于在移动设备或受计算能力限制的其它设备上显示视频。此外,传统的运动插值在发生视频预处理的电视上工作良好。这对于实时显示视频的视频流是不可行的。
背景技术的相关描述是出于一般地渲染本公开的上下文的目的。在此背景技术部分中描述了本发明的发明人的工作,以及在提交时可能不具有现有技术资格的描述的各方面部,既不明确地也不隐含地承认作为本公开的现有技术。
发明内容
实施例大体上涉及一种方法,所述方法包括接收对应于视频的一组视频帧,所述一组视频帧包括第一视频帧和第二视频帧,所述第一视频帧和第二视频帧中的每一个各自包括面部,其中所述第二视频帧在所述第一视频帧之后。该方法还包括对第一视频帧执行面部跟踪以识别第一面部重采样关键帧,该第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点。该方法还包括对第二视频帧执行面部跟踪以识别第二面部重采样关键帧,该第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点。该方法还包括导出插值量。该方法还包括基于第一面部重采样关键帧和插值量来确定第一插值面部帧。该方法还包括基于第二面部重采样关键帧和插值量来确定第二插值面部帧。该方法还包括基于插值量插值的第一面部重采样关键帧的第一背景和第二面部重采样关键帧的第二背景。该方法还包括渲染插值的第一面部和插值的第二面部。该方法还包括显示基于插值的第一背景,插值的第二背景,插值的第一面部和插值的第二面部的最终帧。
在一些实施例中,该方法还包括将第一背景与第二背景混合,以获得混合背景,将插值的第一面部与插值的第二面部混合,以获得混合的插值面部,以及通过将平滑面部置于混合的插值面部和混合的背景的顶部来生成最终帧。在一些实施例中,确定第一插值面部帧包括:使用第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量,线性插值的平移矢量,使用线性插值来插值旋转四元数,以生成插值的旋转四元数,使用线性插值来插值缩放矢量,以生成插值的缩放矢量,基于插值的平移矢量,插值的旋转四元数和插值缩放矢量,组成插值的平移-旋转-缩放矩阵。并使用插值的平移-旋转-缩放矩阵来计算插值的第一面部的插值位置。在一些实施例中,插值量时从(a)第一面部重采样关键帧与第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出的。在一些实施例中,确定第二插值面部帧包括计算第二面部界标顶点中每个顶点各自的位移。在一些实施例中,插值第一背景和第二背景是用α混合来完成的。在一些实施例中,渲染包括基于插值量对面部的边缘进行羽化或在第一插值面部帧与第二插值面部帧之间进行的淡化中的至少一个。在一些实施例中,对第一视频帧执行面部跟踪进一步包括确定第一面部重采样关键帧的第一纹理坐标和时间戳,并且将第一纹理坐标应用于第一面部界标顶点。在一些实施例中,通过对第一视频帧进行红绿蓝(RGB)面部跟踪来识别第一背景和面部。
一种其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机进行操作,所述操作包括:接收与视频对应的一组视频帧,所述一组视频帧包含第一视频帧和第二视频帧,所述第一视频帧和第二视频帧各自包含面部,其中所述第二视频帧在所述第一视频帧之后。对所述第一视频帧进行面部跟踪以识别第一面部重采样关键帧,所述第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点,对所述第二视频帧进行面部跟踪以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点,导出插值量;基于所述第一面部重采样关键帧和所述插值量,确定第一插值面部帧;基于所述第二面部重采样关键帧和所述插值量,确定第二插值面部帧;基于所述插值量,对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值,渲染插值后的第一面部和插值后的第二面部;以及显示基于插值的第一背景,插值的第二背景,插值的第一面部和插值的第二面部的最终帧。
在一些实施例中,所述操作还包括:将所述第一背景与所述第二背景混合,以获得混合背景,将所述插值的第一面部与所述插值的第二面部混合以获得混合的插值面部,以及通过将平滑面部置于所述混合的插值面部和所述混合背景的顶部来生成所述最终帧。在一些实施例中,确定第一插值面部帧包括:使用第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量,使用线性插值来插值平移矢量,使用线性插值来插值旋转四元数,以生成插值的旋转四元数,使用线性插值来插值缩放矢量,以生成插值的缩放矢量,基于插值的平移矢量,插值的旋转四元数和插值的缩放矢量,组成插值的平移-旋转-缩放矩阵。并使用插值的平移-旋转-缩放矩阵计算插值的第一面部的插值位置。在一些实施例中,插值量根据(a)第一面部重采样关键帧与第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出。在一些实施例中,确定第二插值面部帧包括计算第二面部界标顶点中每个顶点各自的位移。
系统可以包括一个或多个处理器;以及存储器,其存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器进行操作,所述操作包括:接收对应于视频的一组视频帧,所述一组视频帧包含第一视频帧和第二视频帧,所述第一视频帧和第二视频帧各自包括面部,其中所述第二视频帧在所述第一视频帧之后。对所述第一视频帧进行面部跟踪以识别第一面部重采样关键帧,所述第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点,对所述第二视频帧进行面部跟踪以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点,导出插值量;基于所述第一面部重采样关键帧和所述插值量,确定第一插值面部帧;基于所述第二面部重采样关键帧和所述插值量,确定第二插值面部帧;基于所述插值量,对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值,渲染插值后的第一面部和插值后的第二面部;以及显示基于插值的第一背景,插值的第二背景,插值的第一面部和插值的第二面部的最终帧。
在一些实施例中,所述操作还包括:将所述第一背景与所述第二背景混合,将所述插值的第一面部与所述插值的第二面部混合,以及通过将平滑面部置于混合的插值的面部和混合的背景的顶部来生成所述最终帧。在一些实施例中,确定第一插值面部帧包括:使用第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量,使用线性插值来插值平移矢量;使用线性插值来插值的旋转四元数,以生成插值的旋转四元数;使用线性插值来插值缩放矢量,以生成插值的缩放矢量,基于插值的平移矢量,插值的旋转四元数和插值的缩放矢量,组成插值的平移-旋转-缩放矩阵。并使用插值的平移-旋转-缩放矩阵计算插值的第一面部的插值位置。在一些实施例中,插值量根据(a)第一面部重采样关键帧与第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出。在一些实施例中,确定第二插值面部帧包括计算第二面部界标顶点中每个顶点各自的位移。
附图说明
在附图中以示例的方式而不是限制的方式示出了本公开,附图中相同的附图标记用于表示相同的元件。
图1示出了根据一些实施例的生成插值视频帧的示例环境的框图。
图2示出了根据一些实施例的生成插值视频帧的示例计算设备的框图。
图3A示出了根据一些实施例的第一面部重采样关键帧的示例。
图3B示出了根据一些实施例的第一面部重采样关键帧的示例。
图3C示出了根据一些实施例的具有来自基于插值网格扭曲的第一帧的纹理的输出图像。
图3D示出了根据一些实施例的具有来自基于插值网格扭曲的第二帧的纹理的输出图像。
图4A示出了根据一些实施例的以每秒7.5帧(FPS)传输的视频的输入视频帧的示例。
图4B示出了根据一些实施例的处于240FPS的插值的第一面部和插值的第二面部。
图5A示出了根据一些实施例的以7.5FPS传输的视频的输入视频帧的示例。
图5B示出了根据一些实施例的处于240FPS的具有淡化的视频帧,以准备在顶部绘制即将到来的平滑面部。
图6A示出了根据一些实施例的以7.5FPS传输的视频的输入视频帧的示例。
图6B示出了根据一些实施例的没有背景的示例混合帧,其基于第一插值面部帧和以240FPS渲染的第二插值面部帧以240FPS被渲染。
图7A示出了根据一些实施例的以7.5FPS传输的视频的输入视频帧的示例。
图7B示出了根据一些实施例的在用户设备上显示的最终帧。
图8示出了根据一些实施例的两个帧序列,其中一个帧序列在没有插值的情况下处于低帧率,另一个帧序列处于较高帧率,其中附加帧被插值并添加到帧序列。
图9A和9B示出了根据一些实施例的生成插值视频帧的示例方法的流程图。
具体实施方式
将在实质上彼此平面平行的七个层上延伸的平面变压器用作说明性实例;在一行连续的层中,垂直于层依次称为第一层S1,第二层P1,第三层S2,第四层P2,第五层S3,第六层P3和第七层S4。
在一些实施例中,移动设备接收对应于视频的一组视频帧。例如,该组视频帧可以包括各自包括面部的第一视频帧和第二视频帧。第二视频帧可以在第一视频帧之后。移动设备可以对第一视频帧执行面部跟踪,以识别第一面部重采样关键帧,其中第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点。可以对第二视频帧执行面部跟踪,以识别第二面部重采样关键帧,其中第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点。导出插值量。基于第一面部重采样关键帧和插值量来确定第一插值面部帧。基于第二面部重采样关键帧和插值量来确定第二插值面部帧。基于所述插值量对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值。渲染插值的第一面部和插值的第二面部。显示基于插值的第一背景,插值的第二背景,插值的第一面部和插值的第二面部的最终帧。
下面部描述的各种实施例具有几个优点。第一,由显示视频的用户设备执行处理。作为结果,视频应用使用降低的计算能力来显示具有感知到的较高帧速率的视频。第二,即使在使用发送器设备和显示视频的接收器设备之间的端到端加密来接收视频时,实施例也提供比接收到的视频帧速率更高的帧速率。第三,插值在计算上是有效的,因为视频帧的结构被插值而不是纹理。
示例系统
图1示出了生成插值视频帧的示例环境100的框图。所示的系统100包括视频服务器101,用户设备115a,115n和网络105。用户125a,125n可以与相应的用户设备115a,115n相关联。在一些实施例中,系统100可以包括图1中未示出的其它服务器或设备。在图1和其余附图中,在参考数字之后的字母,例如,"115a",表示对具有该特定参考数字的元件的参考。在没有以下字母的文本中的参考数字,例如"115",表示对带有该参考数字的元件的实施例的一般参考。
视频服务器101可以包括处理器,存储器和网络通信能力。在一些实施例中,视频服务器101是硬件服务器。视频服务器101经由信号线102通信地耦合到网络105。信号线102可以是有线连接,例如以太网,同轴电缆,光纤电缆等,或无线连接,例如Wi-Fi,蓝牙或其它无线技术。在一些实施例中,视频服务器101经由网络105向一个或多个用户设备115a,115n发送数据和从一个或多个用户设备115a,115n接收数据。视频服务器101可以包括视频应用103a和数据库199。
视频应用103a可以包括可操作为从一个用户设备115a接收视频流并将视频流发送到另一个用户设备115n的代码和例程。例如,视频流可以被端到端加密,使得视频服务器101将视频流中继为数据,而不执行视频处理。在一些实施例中,可使用包括中央处理单元(CPU),现场可编程门阵列(FPGA),专用集成电路(ASIC),任何其它类型的处理器或其组合的硬件来实施视频应用103。在一些实施例中,可以使用硬件和软件的组合来实施视频应用103。
数据库199可以存储与用户125相关联的社交网络数据,用户125的用户偏好等。
在这里讨论的系统和方法可以收集或使用关于用户的个人信息(例如,用户数据,关于用户的社交网络的信息,用户的位置,用户的生物特征信息,用户的活动和/或人口统计信息,视频应用103对视频的存储和分析等)的情况下,向用户提供机会以控制是否收集个人信息,是否存储个人信息,是否使用个人信息,是否分析图像或视频,以及如何收集,存储和使用用户个人信息。也就是说,这里讨论的系统和方法可以仅在从相关用户接收到明确的授权时才收集,存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于该特定用户或与该程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许对与该用户相关的信息收集进行控制,从而提供关于是否收集信息以及关于要收集信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,在存储或使用某些数据之前,可以以一种或多种方式来处理这些数据,以便去除个人可识别的信息。作为一个例子,用户的地理位置可以被概括到更大的区域,使得用户的特定位置不能被确定。
用户设备115可以是包括存储器和硬件处理器的计算设备。例如,用户设备115可以包括台式计算机,移动设备,平板计算机,移动电话,可佩戴设备,头部戴式显示器,移动电子邮件设备,便携式游戏机,便携式音乐播放器,读取器设备或能够访问网络105的其他电子设备。
在所示的实施方式中,用户设备115a经由信号线108耦合到网络105,并且用户设备115n经由信号线110耦合到网络105。信号线108和110可以是有线连接,例如以太网,同轴电缆,光纤电缆等,或无线连接,例如Wi-Fi,蓝牙或其它无线技术。用户设备115a,115n分别由用户125a,125n访问。图1中的用户设备115a,115n作为示例被使用。虽然图1示出了两个用户设备115a和115n,但是本公开适用于具有一个或多个用户设备115的系统体系结构。
在一些实施例中,用户设备115可以是用户125佩戴的可佩戴设备。例如,用户设备115n被包括作为夹子(例如腕带)的一部分,珠宝的一部分,或一副眼镜的一部分。在另一个例子中,用户设备115n可以是智能手表。用户125n可以在用户125n佩戴的用户设备115n的显示器上观看由视频应用103c生成的视频。例如,视频应用103c可以在用户设备115n上显示插值的视频帧。
在一些实施例中,用户设备115a可以包括视频应用103b,其生成用于视频通话的视频。用户设备115a可以在视频通话期间通过网络105或者通过视频服务器101直接向用户设备115n发送视频流。用户设备115n可以包括视频应用103c,其显示视频流(单向视频)或在另一设备上执行的视频应用(双向视频或作为视频通话应用的一部分)。
用户设备115n是包括视频应用103c的接收机设备。用户设备115n接收对应于视频的一组视频帧。视频应用103c识别帧中的面部和背景,构建插值的面部帧,插值帧的背景,渲染插值的面部,且显示基于插值的面部和插值的帧中的背景的最终帧。
在所示的实施方式中,系统100的实体经由网络105通信耦合。网络105可以是传统类型的有线或无线的,并且可以具有多种不同的配置,包括星形配置,令牌环配置或其它配置。此外,网络105可以包括局域网(LAN),广域网(WAN)(例如,因特网)和/或多个设备可以通过其通信的其它互连数据路径。在一些实施例中,网络105可以是对等网络。网络105还可以耦合到电信网络或包括电信网络的用于以各种不同的通信协议发送数据的部分。在一些实施例中,网络105包括由IEEE902.11规定的通信网络、无线局域网(WLAN)、计算机通信,或用于发送和接收数据的蜂窝通信网络,包括经由短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、电子邮件等。尽管图1示出了耦合到用户设备115和视频服务器101的一个网络105,但是实际上可以将一个或多个网络105耦合到这些实体。
示例计算设备
图2示出了生成插值视频帧的示例计算设备200的框图。计算设备200可以是用户设备115或视频服务器101。计算设备200可以包括处理器235,存储器237,通信单元239,显示器241和存储设备247。根据计算设备200的类型,可以存在附加的组件,或者可以省略一些先前的组件。视频应用103可以存储在存储器237中。在一些实施例中,计算设备200可以包括这里未列出的其它组件,例如电池等。计算设备200的组件可以通过总线220通信地耦合。
处理器235包括算术逻辑单元,微处理器,通用控制器或某一其它处理器阵列以执行计算并向显示装置提供指令。处理器235处理数据并且可包括各种计算架构,包括复杂指令集计算机(CISC)架构,精简指令集计算机(RISC)架构或实施指令集组合的架构。尽管图2包括单个处理器235,但是可以包括多个处理器235。其它处理器,操作系统,传感器,显示器和物理配置可以是计算设备200的一部分。处理器235耦合到总线220以经由信号线222与其它组件通信。
存储器237存储可由处理器235执行的指令和/或数据。所述指令可包括用于执行本文所述技术的代码。存储器237可以是动态随机存取存储器(DRAM)设备,静态RAM或其它存储器设备。在一些实施例中,存储器237还包括非易失性存储器,例如静态随机存取存储器(SRAM)设备或闪速存储器,或类似的永久存储设备和介质,包括硬盘驱动器,光盘只读存储器(CD-ROM)设备,DVD-ROM设备,DVD-RAM设备,DVD-RW设备,闪速存储器设备,或用于在更永久的基础上存储信息的一些其它大容量存储设备。存储器237包括可操作为执行视频应用程序103的代码和例程,这将在下面部更详细地描述。存储器237耦合到总线220以经由信号线224与其它组件通信。
通信单元239向用户设备115和视频服务器101中的至少一个发送数据和从用户设备115和视频服务器101中的至少一个接收数据。在一些实施例中,通信单元239包括用于使用一种或多种无线通信方法(包括IEEE802.11,IEEE802.16,蓝牙或其它合适的无线通信方法)与用户设备115,视频服务器101或其它通信信道交换数据的无线收发器。通信单元239耦合到总线220以经由信号线226与其它组件通信。
在一些实施例中,通信单元239包括蜂窝通信收发器,用于通过蜂窝通信网络发送和接收数据,包括经由短消息服务(SMS),多媒体消息服务(MMS),超文本传输协议(HTTP),直接数据连接,电子邮件或其它合适类型的电子通信。在一些实施例中,通信单元239包括有线端口和无线收发器。通信单元239还向网络105提供用于使用标准网络协议分发文件和/或媒体对象的其它常规连接,所述标准网络协议包括但不限于用户数据报协议(UDP),TCP/IP,HTTP,HTTP安全(HTTPS),简单邮件传输协议(SMTP),SPDY,快速UDP因特网连接(QUIC)等。通信单元239耦合到总线220以经由信号线226与其它组件通信。
显示器241可以包括可操作为显示从视频应用103接收的图形数据的硬件。例如,显示器241可渲染图形以显示视频的视频帧。显示器241可以是任何类型的显示器,例如液晶显示器(LCD),OLED等。在一些实施例中,显示器241可以是投影屏幕。在一些实施例中,例如,当设备241是增强现实设备时,显示器241可以是立体显示器。显示器241耦合到总线220以经由信号线228与其它组件通信。
存储设备247可以是存储提供这里描述的功能的数据的非暂时性计算机可读存储介质。在计算设备200是视频服务器101的实施例中,存储设备247可以包括图1中的数据库199。存储设备247可以是DRAM设备,SRAM设备,闪存或一些其它存储设备。在一些实施例中,存储设备247还包括非易失性存储器或类似的永久存储设备和介质,包括硬盘驱动器,CD-ROM设备,DVD-ROM设备,DVD-RAM设备,DVD-RW设备,闪存设备或用于永久存储信息的一些其它大容量存储设备。存储设备247耦合到总线220以经由信号线230与其它组件通信。
视频应用103可以包括解码器202,视频分析器204,面部重采样器206和用户界面模块208。
解码器202对编码的视频帧进行解码。在一些实施例中,解码器202包括由处理器235处理的可执行的执行指令集,用以解码已编码的视频帧,例如从参与与计算设备200的视频通话的发送设备接收的视频帧。在一些实施例中,解码器202存储在计算设备200的存储器237中,并且可由处理器235访问和执行。
在一些实施例中,解码器202经由通信单元239接收一组编码视频帧。解码器202例如通过解密(例如,当视频被加密时)并解压缩编码的视频帧来对视频帧进行解码。一旦解码器202对视频帧进行解码,在常规视频处理中,通常渲染视频帧以供显示。然而,根据本文所述的技术,解码器202跳过用于呈现的视频帧的调度,例如,当所接收视频的帧速率低于视频应用103的帧速率时。作为结果,解码器202不是调度用于呈现的视频帧,而是向视频分析器204提供经解码的视频帧中的每一帧。例如,该组视频帧包括第一视频帧和第二视频帧,其中第二视频帧在第一视频帧之后,例如与晚于与第一视频帧相关联的时间戳的时间戳相关联,使得第二视频帧在帧序列中占据比第一视频帧更晚的位置。在一些实施例中,第二视频帧直接在第一视频帧之后,例如,两个帧被识别用于顺序显示,其间没有其它帧。
视频分析器204执行面部跟踪。在一些实施例中,视频分析器204包括可由处理器235执行面部跟踪的指令集。在一些实施例中,视频分析器204存储在计算设备200的存储器237中,并且可以由处理器235访问和执行。
视频分析器204以具有与用户设备115的视频帧速率无关的标记信号(时钟信号)的频率运行。例如,视频分析器204以60Hz的频率运行,并且存在以60Hz运行的独立时钟,该时钟被链接到用于显示视频帧的刷新/渲染循环。
视频分析器204接收经解码的视频帧的集合,且针对每一帧识别经解码的视频帧中的背景和面部。例如,视频分析器204识别第一视频帧中的第一背景和面部以及第二视频帧中的第二背景和面部。视频分析器204可以通过应用面部跟踪技术来区分帧中的面部和背景。例如,视频分析器204可应用识别面部重采样关键帧,面部重采样关键帧的纹理坐标(例如,RGB纹理)和视频帧的时间戳的红绿蓝(RGB)面部跟踪技术。
在一些实施例中,面部重采样关键帧包括两个值:头部变换矩阵和一组界标顶点。头部变换矩阵是表示头部变换的4×4矩阵M。头部变换矩阵从任意初始模型空间(初始位置,方向和比例)变换到面部空间(包括平移,旋转和比例)。一组界标顶点V描述面部空间中的界标顶点组。
在一些实施例中,视频分析器204使用机器学习来执行解码的视频帧集合的实时面部跟踪。在一些实施例中,可以例如基于训练数据来训练训练过的模型,对于所述训练数据,已经从用户清楚地获得了使用用户数据进行训练的许可。训练数据可以包括被允许用于训练的任何数据,例如视频和相应的元数据,例如合成或计算机生成的数据,被许可用于训练的数据等。训练数据可以包括图像和视频,其中在图像和视频帧中已经识别出面部重采样关键帧。图像和视频可以来自存储在视频服务器101的数据库199中的视频。
在一些实施例中,可以基于监督学习,例如基于包括图像和视频以及相应元数据的训练数据来获得训练过的模型。例如,训练过的模型可以包括模型形式或结构(例如,描述神经网络层中具有相关联的权重的多个节点的数目和组织)。在一些实施例中,可以训练模型以检测和跟踪视频中的面部。例如,可以提供视频,并且还可以提供指示面部位置(例如,面部界标)的数据作为对未训练模型的输入。该模型可以被训练(使用有监督的学习)以预测面部界标。该模型可以用于检测视频中的面部界标,并且预测的界标位置可以与地面部真实数据进行比较。可以计算两者之间的差值,将其作为训练反馈提供。一个或多个神经网络节点或模型的其它参数的权重可以基于该反馈来调整。当模型预测达到精度阈值时完成训练。
在一些实施例中,用户通过提供用户输入来帮助创建训练数据。可以要求用户识别面部在视频帧中的位置。作为用户输入的结果,训练数据可以具有关于面部位置的准确标识,并且使用它来确定用于视频帧的面部重采样关键帧。在该示例中,以及识别面部位置的其它示例中,面部检测不包括确定身份,例如,不执行面部识别。此外,训练数据可以代表应用环境,例如,其中应用环境是在使用模块设备进行的视频通话中的检测面部的环境。
基于训练数据,视频分析器204可以包括能够基于图像和视频生成面部重采样关键帧的训练过的模型。训练过的模型可以是时序动作定位模型。在各种实施例中,视频分析器204可使用贝叶斯分类器,支持向量机,神经网络或其它学习技术来实施训练过的模型。
在一些实施例中,训练过的模型可以包括一个或多个模型形式或结构。例如,模型形式或结构可以包括任何类型的神经网络,诸如线性网络,实现多个层(例如,输入层和输出层之间的"隐藏层",每个层是线性网络)的深度神经网络,卷积神经网络(例如,将输入数据分割或划分成多个部分或片的网络,使用一个或多个神经网络层分别处理每片,并且合并来自每片的处理的结果),序列到序列神经网络(例如,取诸如句子中的单词,视频中的帧等的顺序数据作为输入并且生成结果序列作为输出的网络)等。模型形式或结构可以指定各种节点之间的连通性以及节点到层的组织。例如,第一层(例如,输入层)的节点可以接收数据作为输入数据或应用数据。这种数据可以包括,例如,每个节点具有一个或多个像素,例如,当训练的模型用于图像分析时。后续中间层可以按照模型形式或结构中指定的连通性接收前一层的节点的输出作为输入。这些层也可以被称为隐蔽层。最后一层(例如,输出层)生成面部重采样关键帧和其它元数据的输出。例如,输出可以是面部重采样关键帧,面部重采样关键帧的纹理坐标,以及视频帧的时间戳。在一些实施例中,模型形式或结构还可以指定每一层中的节点的数目和/或类型。
在不同的实施例中,训练过的模型可以包括多个节点,这些节点被安排在每个模型结构或形式的层中。在一些实施例中,节点可以是没有存储器的计算节点,例如,被配置为处理一个输入单元以生成一个输出单元。由节点执行的计算可以包括,例如,将多个节点输入中的每一个乘以权重,获得加权和,以及使用偏置或截距值调整加权和以生成节点输出。在一些实施例中,由节点执行的计算还可以包括将步长/激活函数应用于调整后的加权和。在一些实施例中,步长/激活函数可以是非线性函数。在各种实施例中,这种计算可以包括诸如矩阵乘法之类的运算。在一些实施例中,可以并行地执行多个节点的计算,例如,使用多核处理器的多处理器核,使用通用处理单元或专用神经电路的单独处理单元。在一些实施例中,节点可以包括存储器,例如,能够在处理后续输入时存储和使用一个或多个较早的输入。例如,具有存储器的节点可以包括长短期存储器(LSTM)节点。LSTM节点可以使用存储器来保持允许节点像有限状态机(FSM)一样工作的"状态"。具有这种节点的模型可用于处理顺序数据,例如视频中的帧。
在一些实施例中,训练过的模型可以包括用于各个节点的嵌入或权重。例如,可以将训练过的模型初始为组织成如模型表单或结构所指定的层的多个节点。在初始化时,可以将相应的权重应用于每个模型形式连接的每对节点之间的连接,例如,神经网络的连续层中的节点。例如,可以随机地分配或初始化相应的权重为默认值。然后,可以例如使用数据来训练训练过的模型,以生成结果。
面部重采样器206生成插值的面部帧。在一些实施例中,重采样器206包括由处理器235处理的可执行的以生成插值的面部帧的指令集。在一些实施例中,识别模块206存储在计算设备200的存储器237中,并且可以由处理器235访问和执行。
在一些实施例中,面部重采样器206与存储面部重采样关键帧,纹理坐标和视频帧的时间戳的有限大小队列或缓冲器相关联。在一些实施例中,缓冲器具有有限的存储容量,并且每当新的面部重采样关键帧被存储时面部重采样器206移除旧的面部重采样关键帧。例如,可以使用两个面部重采样关键帧来生成插值帧。其它例子也是可能的,例如三个或四个重采样关键帧,以考虑视频帧之间对象的运动速率。
对于视频帧的渲染将发生的每一实例,面部重采样器206从面部重采样关键帧之间的持续时间(即,每一帧正常显示的时间和相对于所述持续时间的当前渲染时间)生成插值量t。例如,面部重采样器206基于当前渲染时间和帧持续时间生成介于0和1之间的插值量t,该帧持续时间被定义为第一面部重采样关键帧和第二面部重采样关键帧之间的时间。在一些实施例中,插值量定义为:
Figure BDA0002628948330000141
换句话说,插值量是表示第一和第二视频帧之间的插值面部帧的时间上的相对距离的0和1之间的数。
面部重采样器206执行插值,该插值包括应用插值算法以(1)使用头部变换矩阵来分解面部重采样关键帧以提取平移矢量,旋转四元数和缩放矢量;(2)线性插值平移向量;(3)使用球面线性插值对旋转四元数进行插值以生成插值的旋转四元数;(4)线性插值所述比例矢量以生成插值的比例矢量;(5)组成插值平移旋转缩放矩阵;(6)计算插值帧的新插值位置;以及(7)使用插值顶点来渲染插值的面部帧(即,上采样帧)。
面部重采样器206可以分解第一面部重采样关键帧和第二面部重采样关键帧。例如,面部重采样器206使用头部变换矩阵M_first分解第一面部重采样关键帧,并且使用头部变换矩阵M_second分解第二面部重采样关键帧,以确定:(1)用于第一面部重采样关键帧T_first和第二面部重采样关键帧T_second的具有x,y和z坐标的平移矢量;(2)用于第一面部重采样关键帧R_first和第二面部重采样关键帧R_second的具有x、y、z和w坐标的旋转四元数;以及(3)用于第一面部重采样关键帧S_first和第二面部重采样关键帧S_second的具有x,y和z坐标的比例矢量。
在一些实施例中,面部重采样器206线性插值用于第一面部重采样关键帧T_first和第二面部重采样关键帧T_second的平移矢量,以使用以下等式生成插值的平移矢量:
T插值=Tfirst*(1.0-t)+Tsecond*t (2)
在一些实施例中,面部重采样器206使用球面线性插值(SLERP)来插值R_first和R_second,以使用以下等式生成插值的旋转四元数:
R插值=SLERP(Rfirst,Rsecond,t) (3)
在一些实施例中,面部重采样器206使用以下等式线性插值缩放矢量S_first和S_second以生成插值的缩放矢量:
S插值=Sfirst*(1.0-t)+Ssecond*t (4)
在一些实施例中,面部重采样器206组成插值平移旋转标度矩阵,其使用以下等式从上述插值值从模型空间变换到面部空间:
M插值=平移矢量(T插值)*旋转四元数(R插值)*缩放矢量(S插值) (5)
在一些实施例中,面部重采样器206对于V_first(第一面部界标顶点)中的每个顶点v_first和V_second(第二面部界标顶点)中的每个顶点v_second,通过使用以下等式计算线性插值模型空间顶点来计算第一插值帧和第二插值帧的新插值位置,所述线性插值模型空间顶点包括整体变换中未包含的面部内动作(例如,微笑,抬起眉毛):
v第一模型位置=逆(Mfirst)*vfirst (6)
v第二模型位置=逆(Msecond)*vsecond (7)
v插值的模型位置=v第一模型位置*(1.0-t)+v第二模型位置*t (8)
在一些实施例中,面部重采样器206使用以下等式计算在第一帧和第二帧之间共享的新的插值面部空间顶点:
v插值=M插值*v插值的模型位置 (9)
在一些实施例中,面部重采样器206使用插值的面部空间顶点来渲染上采样帧。
面部重采样器206为每个面部重采样关键帧生成插值面部帧,其中每个插值面部帧中的纹理坐标等于其相应面部重采样关键帧的纹理坐标。根据插值量对界标顶点进行插值,以创建插值网格顶点。插值网格顶点是插值头部变换矩阵和来自面部重采样关键帧的网格顶点的组合。界标顶点在每个插值的面部帧之间是相同的,但是因为纹理坐标对应于相应的面部重采样关键帧,不同的纹理坐标应用到界标顶点。例如,面部重采样器206创建用于第一面部重采样关键帧的第一插值面部帧和用于第二面部重采样关键帧的第二插值面部帧。有效地拉伸第一视频帧中的面部和第二视频帧中的面部,以使得他们一致在相同的中间位置。
转到图3A,示出了第一面部重采样关键帧300的示例。这是时间为0时的插值算法的输入。图3B示出了第二面部重采样关键帧325的示例。这是时间为1时的插值算法的输入。如图所示,图3A和3B中的界标顶点(网格的交叉点)是不同的。例如,在图3A中,嘴部张的很开,而在图3B中,面部是轻微旋转的,并且与图3A相比,嘴部是较不张开的,这使得相应的顶点处于不同的位置。
图3C示出了具有纹理的输出图像350,该纹理来自基于插值网格扭曲的第一面部重采样关键帧,而不进行混合。图3D示出了具有纹理的输出图像375,该纹理来自基于插值网格扭曲的第二面部重采样关键帧,而不进行混合。图3C和3D中的界标顶点是相同的,但是由于纹理在两个帧之间变化,所以应用了不同的纹理坐标。
转到图4A,示出了以7.5FPS发送的视频的输入视频帧400的示例。图4B示出了根据一些实施例的处于240FPS的插值的第一面部425和插值的第二面部430。
在一些实施例中,面部重采样器206基于插值量来插值的第一面部重采样关键帧的第一背景和第二面部重采样关键帧的第二背景。面部重采样器206可以根据面部跟踪算法所确定的面部在第一帧和第二帧中的位置来确定第一背景和第二背景。面部重采样器206可以使用α混合来插值关键帧的背景。在一些实施例中,混合可以包括在第一背景和第二背景之间的淡化,使得当帧以高帧速率顺序显示时,在顶部渲染的即将到来的平滑面部在视觉上对观看者较不抖动。在一些实施例中,执行插值可包括缓冲用于插值的至少两个帧。由于这种缓冲,在一些实施例中,视频的回放包括被引入视频流中的单帧延迟。
转到图5A,根据一些实施例示出了处于7.5FPS的输入视频帧500的示例。图5B示出了处于240FPS的具有背景淡化的视频帧525,以准备在顶部渲染即将到来的平滑面部。
面部重采样器206渲染第一插值面部和第二插值面部。在一些实施例中,面部重采样器206执行面部边缘的羽化(这可以使得插值面部帧的边缘对观看者来说不太明显)和第一插值面部帧和第二插值面部帧之间的淡化中的至少一个,这取决于插值量。
转到图6A,根据一些实施例示出了以7.5FPS传输的输入视频帧600的示例。图6B示出了从第一插值面部帧和第二插值面部帧混合的示例混合面部帧625。混合的面部帧(与其它混合帧一起)以240FPS被渲染,并且在图6B中示出,没有为了说明的目的的背景。在图6B所示的例子中,面部重采样器206执行羽化和淡化中的至少一个,以使面部平滑。
面部重采样器206指示显示器241显示基于插值的第一背景,插值的第二背景,插值的第一面部和插值的第二面部的最终帧。例如,面部重采样器206将平滑的面部放置在具有混合背景的混合面部帧的顶部,该混合背景是由第一背景和第二背景之间的淡化生成的。面部重采样器206使用面部跟踪信息来将平滑面部与混合面部框对准,同时保持混合面部框的羽化。
转到图7A,示出了处于7.5FPS的输入视频帧700的示例。图7B示出了由用户设备115显示的最终帧725。最终帧725是与混合背景相结合的混合面部帧的示例。作为在第一帧和第二帧之间插入一个或多个混合面部帧作为中间帧的结果,当视频显示时感知帧速率更高,并且导致积极的用户体验,因为视频的质量被改善(例如,在较低帧处可以感知的突然运动转换不再是可感知的),而发送器设备不需要以高帧速率发送视频流,这需要更大的网络带宽。例如,如本文所描述的通过插值帧的生成使得能够通过将插值帧插入到接收到视频的连续帧之间来以高帧速率(例如,30FPS,60FPS,240FPS等)回放低帧速率的(例如,7.5FPS)接收视频流。
转到图8,示出了两个帧序列。帧序列810来自原始视频并包括帧811,812,813,814,815,816,817,818和819。当以低帧速率传输视频时,仅包括帧811,815和819以用于以低帧速率显示而不进行插值。不包括帧812,813,814,816,817和818。这是有问题的,因为当显示视频时,用户可以感觉到突然的运动,例如视频在帧之间跳动,例如当人的嘴部在帧811和815之间突然闭合并且眼睛在帧815和819之间剧烈变化时。
帧序列820包括上采样视频并包括以较高帧速率显示的帧811,822,823,824,815,826,827,828和819。如本文所述,从包括帧811,815和819的接收到的视频流,通过插值获得另外的帧。帧序列820中的附加帧是822,823,824,826,827和828,并且根据本文所述的技术通过插值获得并添加到序列中。作为使用插值帧的结果,帧序列820可以以较高的帧速率(因为中间帧822-824和826-828是可用的)显示,而没有跳动,同时用于接收视频的带宽保持与用于帧序列810的带宽相同。
用户界面部模块208生成用于显示用户界面部的图形数据。在一些实施例中,用户界面部模块208包括可由处理器235执行以生成图形数据的指令集。在一些实施例中,用户界面模块208存储在计算设备200的存储器237中,并且可以由处理器235访问和执行。
在一些实施例中,用户界面模块208例如通过在接收到的视频的连续帧之间插入从面部重采样器206获得的插值帧,生成用于以感知到的较高帧速率显示视频的图形数据。在一些实施例中,用户界面部模块208还生成与视频应用相关联的用户界面部选项。例如,用户界面部包括用于进行视频通话,向视频通话添加其它用户,改变与视频通话相关联的设置等的选项。
在一些实施例中,在第一帧和第二帧之间生成的中间帧的数量基于接收到的视频的帧速率和视频回放的帧速率的差。例如,如果以10FPS接收到视频并且以30FPS播放,则为视频的每对连续帧生成2个中间帧。在这种情况下,如果原始视频具有100个帧(对应于10秒的视频),则生成200个中间帧以获得300个帧的视频,其可以以30FPS回放10秒的视频。可以基于各种因素来选择用于视频回放的帧速率,例如,显示器241的刷新速率,设备200的计算能力,接收到的视频中的运动速率等。
示例方法
图9A和9B示出了生成插值视频帧的示例方法的流程图。方法900由存储在计算设备200(例如用户设备115,视频服务器101或部分用户设备115以及部分视频服务器101)上的视频应用103执行。
在框902处,接收对应于视频的一组视频帧。所述一组视频帧包括第一视频帧和第二视频帧,所述第一视频帧和第二视频帧中的每一个各自包括面部,其中所述第二视频帧在所述第一视频帧之后,例如,与所述第二视频帧相关联的时间戳具有比与所述第一视频帧相关联的时间戳更高的值,使得在所述视频的回放期间,在显示所述第二帧之前显示所述第一帧。
在框904处,对第一视频帧执行面部跟踪以识别第一面部重采样关键帧,第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点。在框906处,对第二视频帧执行面部跟踪以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点。
在框908处,导出插值量。在框910处,基于第一面部重采样关键帧和插值量来确定第一插值面部帧。在框912处,基于第二面部重采样关键帧和插值量来确定第二插值面部帧。在框914处,基于插值量对第一面部重采样关键帧的第一背景和第二面部重采样关键帧的第二背景进行插值。在一些实施方式中,可以省略框914。在框916处,渲染插值的第一面部和插值的第二面部。例如,插值的第一面部和插值的第二面部被渲染为混合的插值面部。在框918处,显示基于插值的第一背景,插值的第二背景,插值的第一面部和第二插值的第二面部的最终帧。例如,将混合的插值面部添加到混合背景以形成最终的帧。最终帧被插入在帧序列中的相应位置处,例如在第一视频帧和第二视频帧之间,使得在回放期间,按照第一帧,最终帧和第二帧的顺序显示。如果在第一视频帧与第二视频帧之间生成了多于一个插值帧(例如,当插值量低于t时)以允许以较高的帧速率进行回放(例如,从每秒10个帧的视频中获得每秒30个帧),则在序列中的相应位置处插入每个插值帧。
在以上描述中,出于解释的目的,阐述了许多具体细节,以便提供对说明书的彻底理解。然而,对于本领域的技术人员显而易见的是,可以在没有这些具体细节的情况下实践本公开。在一些实例中,以框图形式示出了结构和设备,以避免使描述模糊。例如,可以主要参考用户界面和特定硬件来描述上述实施例。然而,实施例可适用于可接收数据和命令的任何类型的计算设备,以及提供服务的任何外围设备。
在说明书中提及“一些实施例”或“一些实例”意味着结合实施例或实例描述的特定特征,结构或特性可以被包括在说明书的至少一个实施方式中。在说明书的各个地方出现的短语“在一些实施例中”不一定都是指相同的实施例。
以上详细描述的某些部分是根据对计算机存储器内的数据位的操作的算法和符号表示来渲染的。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的手段。算法在这里通常被认为是导致期望结果的自洽的步骤序列。这些步骤是需要物理量的物理操作的步骤。通常,尽管不是必须的,这些量采用能够被存储,传输,组合,比较和以其它方式操作的电或磁数据的形式。主要出于共同使用的原因,有时已经证明将这些数据称为位,值,元素,符号,字符,术语,数字等是方便的。
然而,应该记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别说明,否则如从以下讨论中显而易见的,应当理解,在整个说明书中,使用包括“处理”或“计算”或“计算”或“确定”或“显示”等的术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换为类似地表示为计算机系统的存储器或寄存器内的物理量的其它数据或其他这样的信息存储,传输或显示设备。
本说明书的实施例还可以涉及用于执行上述方法的一个或多个步骤的处理器。处理器可以是由存储在计算机中的计算机程序选择性地激活或重新配置的专用处理器。这种计算机程序可以存储在非暂时性计算机可读存储介质中,包括但不限于任何类型的盘,包括光盘,ROM,CD-ROM,磁盘,RAM,EPROM,EEPROM,磁卡或光卡,包括具有非易失性存储器的USB密钥的闪速存储器,或适于存储电子指令的任何类型的介质。每个都耦合到计算机系统总线。
本说明书可以采取一些完全硬件实施例,一些完全软件实施例或包含硬件和软件元件的一些实施例的形式。在一些实施例中,以软件来实现所述规范,所述软件包括但不限于固件,常驻软件,微代码等。
此外,该描述可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码。为了本说明的目的,计算机可用或计算机可读介质可以是能够包含,存储,通信,传播或传输程序以供指令执行系统,装置或设备使用或与其结合使用的任何装置。
适于存储或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合到存储器元件的至少一个处理器。存储器元件可包括在程序代码的实际执行期间使用的本地存储器,大容量存储器和高速缓冲存储器,所述高速缓冲存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器中检索代码的次数。
在上述讨论的系统收集或使用个人信息的情况下,系统向用户提供控制节目或特征是否收集用户信息(例如,关于用户的社交网络,社交动作或活动,职业,用户的偏好或用户的当前位置的信息),或控制是否和/或如何从服务器接收可能与用户更相关的内容的机会。此外,在存储或使用某些数据之前,可以以一种或多种方式处理这些数据,从而去除个人可识别信息。例如,可以处理用户的身份,从而不能为用户确定个人可识别的信息,或者可以在获得位置信息的地方(例如城市,邮政编码或州级)概括用户的地理位置,从而不能确定用户的特定位置。因此,用户可以控制如何收集有关用户和服务器使用的信息。

Claims (20)

1.一种方法,其特征在于,包括:
接收与视频对应的一组视频帧,所述一组视频帧包括第一视频帧和第二视频帧,所述第一视频帧和所述第二视频帧各自包括面部,其中所述第二视频帧在所述第一视频帧之后;
对所述第一视频帧进行面部跟踪,以识别第一面部重采样关键帧,所述第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点;
对所述第二视频帧进行面部跟踪,以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点;
导出插值量;
基于所述第一面部重采样关键帧和所述插值量,确定第一插值面部帧;
基于所述第二面部重采样关键帧和所述插值量,确定第二插值面部帧;
基于所述插值量,对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值;
渲染插值的第一面部和插值的第二面部;和
显示基于插值的第一背景,插值的第二背景,所述插值的第一面部和所述插值的第二面部的最终帧。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述第一背景与所述第二背景混合,以获得混合的背景;
将所述插值的第一面部与所述插值的第二面部混合,以获得混合的插值面部;和
通过将平滑面部置于所述混合的插值面部和所述混合的背景的顶部来生成所述最终帧。
3.如权利要求1所述的方法,其特征在于,确定所述第一插值面部帧包括:
使用所述第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量;
使用线性插值来插值所述平移矢量;
使用线性插值来插值所述旋转四元数,以生成插值的旋转四元数;
使用线性插值来插值所述缩放矢量,以生成插值的缩放矢量;
基于所述插值的平移矢量,所述插值的旋转四元数和所述插值的缩放矢量,组成插值的平移-旋转-缩放矩阵;和
使用所述插值的平移-旋转-缩放矩阵来计算所述插值的第一面部的插值位置。
4.如权利要求1所述的方法,其特征在于,所述插值量是从(a)所述第一面部重采样关键帧与所述第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出的。
5.如权利要求1所述的方法,其特征在于,确定所述第二插值面部帧包括,计算所述第二面部界标顶点中的每个顶点各自的位移。
6.如权利要求1所述的方法,其特征在于,插值所述第一背景和所述第二背景是用α混合来完成的。
7.如权利要求1所述的方法,其特征在于,渲染包括基于所述插值量对所述面部的边缘进行羽化或在所述第一插值面部帧与所述第二插值面部帧之间进行的淡化中的至少一个。
8.如权利要求1所述的方法,其特征在于:
对所述第一视频帧进行面部跟踪,进一步包括确定所述第一面部重采样关键帧的第一纹理坐标和时间戳;和
将所述第一纹理坐标应用于所述第一面部界标顶点。
9.如权利要求1所述的方法,其特征在于,通过对所述第一视频帧进行红绿蓝(RGB)面部跟踪来识别所述第一背景和所述面部。
10.一种其上存储有指令的非暂时性计算机可读介质,其特征在于,所述指令在由一个或多个计算机执行时使所述一个或多个计算机进行操作,所述操作包括:
接收与视频对应的一组视频帧,所述一组视频帧包括第一视频帧和第二视频帧,所述第一视频帧和所述第二视频帧各自包括面部,其中所述第二视频帧在所述第一视频帧之后;
对所述第一视频帧进行面部跟踪,以识别第一面部重采样关键帧,所述第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点;
对所述第二视频帧进行面部跟踪,以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点;
导出插值量;
基于所述第一面部重采样关键帧和所述插值量,确定第一插值面部帧;
基于所述第二面部重采样关键帧和所述插值量,确定第二插值面部帧;
基于所述插值量,对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值;
渲染插值的第一面部和插值的第二面部;和
显示基于插值的第一背景,插值的第二背景,所述插值的第一面部和所述插值的第二面部的最终帧。
11.如权利要求10所述的计算机可读介质,其特征在于,所述操作还包括:
将所述第一背景与所述第二背景混合,以获得混合的背景;
将所述插值的第一面部与所述插值的第二面部混合,以获得混合的插值面部;和
通过将平滑面部置于所述混合的插值面部和所述混合的背景的顶部来生成所述最终帧。
12.如权利要求10所述的计算机可读介质,其特征在于,确定所述第一插值面部帧包括:
使用所述第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量;
使用线性插值来插值所述平移矢量;
使用线性插值来插值所述旋转四元数,以生成插值的旋转四元数;
使用线性插值来插值所述缩放矢量,以生成插值的缩放矢量;
基于所述插值的平移矢量,所述插值的旋转四元数和所述插值的缩放矢量,组成插值的平移-旋转-缩放矩阵;和
使用所述插值的平移-旋转-缩放矩阵来计算所述插值的第一面部的插值位置。
13.如权利要求10所述的计算机可读介质,其特征在于,所述插值量是从(a)所述第一面部重采样关键帧与所述第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出的。
14.如权利要求10所述的计算机可读介质,其特征在于,确定所述第二插值面部帧包括,计算所述第二面部界标顶点中的每个顶点各自的位移。
15.如权利要求10所述的计算机可读介质,其特征在于,插值所述第一背景和所述第二背景是用α混合来完成的。
16.一种系统,其特征在于,包括:
一个或多个处理器;和
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作:
接收与视频对应的一组视频帧,所述一组视频帧包括第一视频帧和第二视频帧,所述第一视频帧和所述第二视频帧各自包括面部,其中所述第二视频帧在所述第一视频帧之后;
对所述第一视频帧进行面部跟踪,以识别第一面部重采样关键帧,所述第一面部重采样关键帧包括第一头部变换矩阵和第一面部界标顶点;
对所述第二视频帧进行面部跟踪,以识别第二面部重采样关键帧,所述第二面部重采样关键帧包括第二头部变换矩阵和第二面部界标顶点;
导出插值量;
基于所述第一面部重采样关键帧和所述插值量,确定第一插值面部帧;
基于所述第二面部重采样关键帧和所述插值量,确定第二插值面部帧;
基于所述插值量,对所述第一面部重采样关键帧的第一背景和所述第二面部重采样关键帧的第二背景进行插值;
渲染插值的第一面部和插值的第二面部;和
显示基于插值的第一背景,插值的第二背景,所述插值的第一面部和所述插值的第二面部的最终帧。
17.如权利要求16所述的系统,其特征在于,所述操作还包括:
将所述第一背景与所述第二背景混合,以获得混合的背景;
将所述插值的第一面部与所述插值的第二面部混合,以获得混合的插值面部;和
通过将平滑面部置于所述混合的插值面部和所述混合的背景的顶部来生成所述最终帧。
18.如权利要求16所述的系统,其特征在于,确定所述第一插值面部帧包括:
使用所述第一头部变换矩阵来提取平移矢量,旋转四元数和缩放矢量;
使用线性插值来插值所述平移矢量;
使用线性插值来插值所述旋转四元数,以生成插值的旋转四元数;
使用线性插值来所述缩放矢量,以生成插值的缩放矢量;
基于所述插值的平移矢量,所述插值的旋转四元数和所述插值的缩放矢量,组成插值的平移-旋转-缩放矩阵;和
使用所述插值的平移-旋转-缩放矩阵来计算所述插值的第一面部的插值位置。
19.如权利要求16所述的系统,其特征在于,所述插值量是从(a)所述第一面部重采样关键帧与所述第二面部重采样关键帧之间的持续时间和(b)当前渲染时间导出的。
20.如权利要求16所述的系统,其特征在于,确定所述第二插值面部帧包括,计算所述第二面部界标顶点中的每个顶点各自的位移。
CN201980012945.6A 2019-08-07 2019-11-11 用于视频通话的基于面部的帧速率上采样 Pending CN114245987A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962884135P 2019-08-07 2019-08-07
US62/884,135 2019-08-07
PCT/US2019/060700 WO2021025717A1 (en) 2019-08-07 2019-11-11 Face-based frame rate upsampling for video calls

Publications (1)

Publication Number Publication Date
CN114245987A true CN114245987A (zh) 2022-03-25

Family

ID=69165537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980012945.6A Pending CN114245987A (zh) 2019-08-07 2019-11-11 用于视频通话的基于面部的帧速率上采样

Country Status (6)

Country Link
US (2) US11321555B2 (zh)
EP (1) EP3799688A1 (zh)
JP (2) JP7000588B2 (zh)
KR (1) KR102289900B1 (zh)
CN (1) CN114245987A (zh)
WO (1) WO2021025717A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7448271B1 (ja) 2023-12-19 2024-03-12 株式会社フィードフォース 情報処理システム、プログラム及び情報処理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203340B2 (en) * 2003-09-03 2007-04-10 National Research Council Of Canada Second order change detection in video
US8693537B2 (en) * 2005-03-01 2014-04-08 Qualcomm Incorporated Region-of-interest coding with background skipping for video telephony
US7659920B2 (en) * 2005-03-22 2010-02-09 Microsoft Corp. System and method for very low frame rate teleconferencing employing image morphing and cropping
US8150155B2 (en) * 2006-02-07 2012-04-03 Qualcomm Incorporated Multi-mode region-of-interest video object segmentation
JP2010063088A (ja) * 2008-08-08 2010-03-18 Sanyo Electric Co Ltd 撮像装置
JP2011039869A (ja) * 2009-08-13 2011-02-24 Nippon Hoso Kyokai <Nhk> 顔画像処理装置およびコンピュータプログラム
JP2011092547A (ja) 2009-10-30 2011-05-12 Ziosoft Inc 医療用画像処理装置及び医療用画像処理プログラム
JP5524692B2 (ja) 2010-04-20 2014-06-18 富士フイルム株式会社 情報処理装置および方法ならびにプログラム
US8723912B2 (en) * 2010-07-06 2014-05-13 DigitalOptics Corporation Europe Limited Scene background blurring including face modeling
US20120027091A1 (en) 2010-07-28 2012-02-02 Wei-Lien Hsu Method and System for Encoding Video Frames Using a Plurality of Processors
JP6448223B2 (ja) 2014-06-12 2019-01-09 キヤノン株式会社 画像認識システム、画像認識装置、画像認識方法、およびコンピュータプログラム
US10484697B2 (en) 2014-09-09 2019-11-19 Qualcomm Incorporated Simultaneous localization and mapping for video coding
US10489957B2 (en) 2015-11-06 2019-11-26 Mursion, Inc. Control system for virtual characters
US11507646B1 (en) * 2017-09-29 2022-11-22 Amazon Technologies, Inc. User authentication using video analysis
CN115278195B (zh) * 2017-12-06 2024-04-16 杜比实验室特许公司 位置零时延
CN109993716B (zh) * 2017-12-29 2023-04-14 微软技术许可有限责任公司 图像融合变换
KR102466998B1 (ko) * 2018-02-09 2022-11-14 삼성전자주식회사 영상 융합 방법 및 장치
US10671855B2 (en) * 2018-04-10 2020-06-02 Adobe Inc. Video object segmentation by reference-guided mask propagation

Also Published As

Publication number Publication date
JP2022050463A (ja) 2022-03-30
JP7320591B2 (ja) 2023-08-03
US20210182540A1 (en) 2021-06-17
US11321555B2 (en) 2022-05-03
KR20210018182A (ko) 2021-02-17
EP3799688A1 (en) 2021-04-07
JP7000588B2 (ja) 2022-01-19
US11869274B2 (en) 2024-01-09
KR102289900B1 (ko) 2021-08-17
WO2021025717A1 (en) 2021-02-11
JP2021536146A (ja) 2021-12-23
US20220222968A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
CN110419224B (zh) 消费视频内容的方法、电子设备和服务器
US20170104927A1 (en) Systems, methods and software programs for 360 degree video distribution platforms
KR20200012875A (ko) 3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템
KR20190040039A (ko) 스트리밍 데이터의 인터렉티브 실시간 시각화
KR101288670B1 (ko) 최초 배경 복구에 대한 대응책
WO2014194439A1 (en) Avatar-based video encoding
US11521362B2 (en) Messaging system with neural hair rendering
CN115601484B (zh) 虚拟人物面部驱动方法、装置、终端设备和可读存储介质
JP6066755B2 (ja) 描画処理装置および描画処理方法
US11869274B2 (en) Face-based frame rate upsampling for video calls
CN113095206A (zh) 虚拟主播生成方法、装置和终端设备
CN114616834B (zh) 用于视频通话的基于面容的帧封装
US11948245B2 (en) Relighting images and video using learned lighting and geometry
Alriksson et al. Future network requirements for extended reality applications: Many Experts Believe that New and Emerging Extended Reality Technologies will Lead to the Next Major Paradigm Shift in Telecommunications, with Lightweight XR Glasses Ultimately Overtaking Smartphones as the Dominant Device Type in Mobile Networks. This Evolution has Major Implications on the Requirements for Future Networks
KR20220078005A (ko) 분할 렌더링 영상 기반의 증강현실 영상을 재생하는 장치 및 방법
US20240062467A1 (en) Distributed generation of virtual content
US20230022344A1 (en) System and method for dynamic images virtualisation
CN117974814A (zh) 用于图像处理的方法、装置及存储介质
WO2024040054A1 (en) Distributed generation of virtual content
JP2023541051A (ja) 低解像度データ構造からテクスチャを表す高解像度データ構造を作成する機械学習技術
Athrij et al. Dynamic Load Distribution in web-based AR
CN114493981A (zh) 动画渲染方法及装置
CN111200749A (zh) 全景视频的播放控制方法、装置、电子设备及存储介质
Malizia Mobile 3D Graphics: Scenarios and Challenges

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