CN114616834A - 用于视频通话的基于面容的帧封装 - Google Patents

用于视频通话的基于面容的帧封装 Download PDF

Info

Publication number
CN114616834A
CN114616834A CN201980101670.3A CN201980101670A CN114616834A CN 114616834 A CN114616834 A CN 114616834A CN 201980101670 A CN201980101670 A CN 201980101670A CN 114616834 A CN114616834 A CN 114616834A
Authority
CN
China
Prior art keywords
face
video frame
rectangles
video
rectangle
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.)
Granted
Application number
CN201980101670.3A
Other languages
English (en)
Other versions
CN114616834B (zh
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 CN114616834A publication Critical patent/CN114616834A/zh
Application granted granted Critical
Publication of CN114616834B publication Critical patent/CN114616834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/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/176Methods 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 block, e.g. a macroblock
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Abstract

本文描述的实施方式涉及对视频进行编码的方法、系统和计算机可读介质。一种方法,包括捕获包括人的面容的视频帧。该方法还包括检测视频帧中的面容。该方法还包括将视频帧分割成多个矩形,多个矩形包括像素对应于视频帧中面容的面容矩形;该方法还包括基于多个矩形封装视频帧,其中与多个矩形中的其他矩形相比,更多数量的像素被分配给面容矩形。该方法还包括用描述封装的元数据对视频帧进行编码。

Description

用于视频通话的基于面容的帧封装
相关申请的交叉引用
本申请要求2019年8月16日提交的题为“FACE-BASED FRAME PACKING FOR VIDEOCALLS”的美国临时专利申请No.62/888,414的优先权,在此将其全部内容并入本文。
背景技术
大部分移动视频通话使用智能电话、平板电脑或其它设备的前置摄像头作为移动视频通话的视频源。在许多情况下,移动设备具有的可用于视频通话的网络能力(例如,带宽)可能有限。此外,一些移动设备可能具有其他限制,例如有限的处理能力、有限的电池电量等。在这些情况下,对移动设备捕获的视频帧进行编码并在视频通话中传输编码的帧可能会受到这些因素的限制,并且可能导致视频传输质量低下,例如,表现为块状视频、低分辨率视频、带抖动的视频等,这会为视频通话中的其他方提供低质量的视频观看体验。
本文提供的背景描述是出于一般地呈现本公开的上下文的目的。当前命名的发明人的工作,就其在本背景部分中描述的程度而言,以及在申请时可能不属于现有技术的描述的方面,既不明确也不暗示承认为反对本公开的现有技术。
发明内容
实施例总体上涉及一种用于在视频通话应用中编码视频的方法,包括捕获包含人的面容的视频帧。该方法还包括检测视频帧中的面部。该方法还包括将视频帧分割成多个矩形,多个矩形包括像素对应于视频帧中面容的面容矩形;该方法还包括基于多个矩形对视频帧进行封装,其中与多个矩形中的其他矩形相比,封装的视频帧中更多的像素被分配给面容矩形;该方法还包括对封装的视频帧进行编码,其中编码的视频帧包括描述封装的元数据。
在一些实施例中,元数据包括对面容矩形的中心和比例(scale)的描述。在一些实施例中,元数据描述面容变换中心和面容变换x/y比例。在一些实施例中,该方法还包括,在为视频帧封装之后,在多个矩形中的每个矩形周围添加填充像素。在一些实施例中,对视频帧进行封装包括使用视频帧作为源纹理。在一些实施例中,多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。在一些实施例中,该方法还包括将编码的视频帧发送到接收器,其中,元数据可由接收器读取,以执行逆封装以将多个矩形显示在显示屏幕上的对应位置,以及其中,对应位置包括面容左方位置、面容右方位置、面容上方位置或面容下方位置中的至少一个。在一些实施例中,该方法还包括捕获第二视频帧到第n-1视频帧;以及响应于第二视频帧到第n-1视频帧的每个视频帧内的移动量满足阈值移动量,对第二视频帧到第n-1视频帧的每个视频帧进行面容检测、封装和编码。在一些实施例中,检测面容包括对视频帧执行红绿蓝(RGB)面容跟踪。
一种的非暂时性计算机可读介质,该计算机可读介质可以包括存储在其上的指令,当指令由一台或多台计算机执行时,使一台或多台计算机执行操作,操作包括:捕捉包含人的面容的视频帧;检测视频帧中的面容;将视频帧分割成多个矩形,多个矩形包括像素对应于视频帧中面容的面容矩形;基于多个矩形对视频帧进行封装,其中与多个矩形中的其他矩形相比,封装的视频帧中更多的像素被分配给面容矩形;以及对封装的视频帧进行编码,其中编码的视频帧包括描述封装的元数据。
在一些实施例中,元数据包括对面容矩形的中心和比例的描述。在一些实施例中,元数据描述面容变换中心和面容变换x/y比例。在一些实施例中,在为视频帧封装之后,在多个矩形中的每个矩形周围添加填充像素。在一些实施例中,多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。
一种系统,该系统可以包括一个或多个处理器;和存储指令的存储器,当存储由一个或多个处理器执行时,致使一个或多个处理器执行操作,操作包括:捕捉包含人的面容的视频帧;检测视频帧中的面容;将视频帧分割成多个矩形,多个矩形包括像素对应于视频帧中面容的面容矩形;该多个矩形包括该面容矩形基于多个矩形对视频帧进行封装,其中与多个矩形中的其他矩形相比,封装的视频帧中更多的像素被分配给面容矩形;以及对封装的视频帧进行编码,其中编码的视频帧包括描述封装的元数据。
在一些实施例中,元数据包括对面容矩形的中心和比例的描述。在一些实施例中,元数据描述面容变换中心和面容变换x/y比例。在一些实施例中,在为视频帧封装之后,在多个矩形中的每个矩形周围添加填充像素。在一些实施例中,在为视频帧封装之后,在多个矩形中的每个矩形周围添加填充像素。在一些实施例中,多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。
描述的各种实施例具有几个优点。首先,处理由对视频进行编码的用户设备执行。结果,视频应用减小了要发送到接收器设备的视频的尺寸(size)。其次,视频应用在保持视频中面容质量的同时降低视频其他部分的分辨率,从而使得视频尺寸更小。
附图说明
本公开以示例的方式说明,而不是限制在附图中的图中,其中相似的附图标记用于指代相似的元素。
图1示出了根据一些实施例的在其中对视频进行编码的示例环境的框图。
图2示出了根据一些实施例的对视频进行编码的示例计算设备的框图。
图3A示出了根据一些实施例的示例视频帧。
图3B示出了根据一些实施例的多个矩形的示例。
图4示出了根据一些实施例的对视频进行编码的示例方法的流程图。
具体实施方式
为了解决提供尺寸足够小以能够通过网络流式传输的高质量视频的问题,本文描述了捕获包括人的面容的视频帧并检测视频帧中的面容的技术。在一些实施例中,形成包括对应于视频帧中的面容的像素的面容矩形。视频帧被分割成多个矩形,其中该多个矩形包括面容矩形。基于多个矩形来封装视频帧,其中与所述多个矩形中的其他矩形相比,封装的所述视频帧中更多的像素被分配给所述面容矩形;以这种方式将更多像素分配给面容矩形具有以下好处:封装视频帧中的大部分数据对应于面容,从而使得接收器能够呈现更高质量的面容矩形。视频帧使用描述封装的元数据进行编码。
例如,如果原始视频帧中的面容矩形与多个矩形中的另一个矩形具有相同的尺寸,则可以选择分配给封装视频帧中的面容矩形的像素的数量大于分配给其他矩形的像素的数量。例如,考虑一个具有10,000个像素的方形视频帧,100行像素以及每行100个像素。该示例中,检测到面容矩形为50×40像素,共2000像素,其他矩形均为2000像素。当视频被调整大小(例如压缩传输)到5,000像素(每行50像素和100行)时,根据本文描述的技术,面容矩形可以以2000像素的原始尺寸封装,而其他每个矩形可以调整为750像素以获得尺寸为5,000像素的封装视频帧。通过为面容矩形提供更多数量的像素,面容矩形的封装视频帧中的图像质量可能比其他矩形的质量更高(例如,与本示例中的原始视频帧中的图像质量相同)。
因为面容矩形比其他矩形具有更多的像素,所以面容矩形以比其他矩形更高的分辨率编码。这是有利的,因为面容区域对于确保接收用户能够以高质量看到面容更为重要,从而在视频通话期间提供积极的用户体验。使用比其他区域更高的分辨率对面容区域进行编码会在带宽需求较低的情况下获得更积极的用户体验,因为编码后的封装视频的整体尺寸更小。
为了在不以这种方式单独编码面容矩形的情况下获得类似的视频体验,则需要传输更大尺寸的视频,这会消耗更多的处理和带宽资源。此外,通过专门识别视频中的面容位置并相应地调整面容矩形,当对象移动时,所描述的技术会自动调整,并提供面容区域的一致质量的视频。以这里描述的方式封装视频帧使得传统的视频编码技术能够用于视频通话,并提供高质量的面容区域,而无需对底层编码机制进行任何改变。
示例环境
图1示出了生成编码视频的示例环境100的框图。所示环境100包括视频服务器101、用户设备115a、115n和网络105。用户125a、125n可以与相应的用户设备115a、115n相关联。在一些实施例中,环境100可以包括图1中未示出的其他服务器或设备。在图1和其余附图中,参考编号之后的字母,例如“115a”,表示对具有该特定参考编号的元素的参考。文本中没有后接字母的参考编号,例如“115”,表示对带有该参考编号的元件的实施例的一般参考。
视频服务器101可以包括处理器、存储器和网络通信硬件。在一些实施例中,视频服务器101是硬件服务器。视频服务器101通过信号线102通信地耦合到网络105。信号线102可以是有线连接,例如以太网、同轴电缆、光纤电缆等,或者是无线连接,例如
Figure BDA0003598139690000041
或其他无线技术。在一些实施例中,视频服务器101通过网络105向用户设备115a、115n中的一个或多个用户设备发送和接收数据。视频服务器101可以包括视频应用103a和数据库199。
视频应用103a可以包括可操作用于在一个用户设备115a处生成编码视频和/或将编码视频传输到另一用户设备115n的代码和例程。在一些实施例中,视频应用103a可以使用包括中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、任何其他类型的处理器或的组合。在一些实施例中,可以使用硬件和软件的组合来实现视频应用103a。
数据库199可以存储视频,该视频包括从用户设备115接收的编码视频。当与生成视频的客户端设备相关联的用户提供存储视频的许可时,视频被存储。数据库199可以存储被索引并且与移动设备115的用户125的身份相关联的视频。例如,例如,视频可以与元数据相关联进行索引,该元数据将用户125描述为社交网络的成员,包括到社交网络成员的简档的链接。数据库199还可以存储与用户125相关联的社交网络数据、用户125的用户偏好等。
在本文讨论的系统和方法可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、视频应用103对视频的存储和分析等)的情况下,向用户提供控制是否收集个人信息、是否存储个人信息、是否使用个人信息、是否分析图像或视频以及如何收集、存储和使用有关用户的信息的机会。也就是说,本文讨论的系统和方法仅在从相关用户接收到这样做的明确授权时才可以收集、存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于特定用户或与程序或特征相关的其他用户的用户信息的控制。向每个要收集其个人信息的用户提供一个或多个选项,以允许控制与该用户相关的信息收集,就是否收集信息以及收集信息的哪些部分提供许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,某些数据在存储或使用之前可能会以一种或多种方式进行处理,以便删除个人身份信息。
用户设备115可以是包括存储器和硬件处理器的计算设备。例如,用户设备115可以包括台式计算机、移动设备、平板电脑、移动电话、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、或能够访问网络的其他电子设备105。
在所示实施方式中,用户设备115a通过信号线108耦合到网络105并且用户设备115n通过信号线110耦合到网络105。信号线108和110可以是有线连接,例如以太网、同轴电缆、光纤电缆等,或无线连接,例如
Figure BDA0003598139690000051
或其他无线技术。用户设备115a、115n分别由用户125a、125n访问。图1中的用户设备115a、115n作为示例使用。虽然图1说明了两个用户设备115a和115n,但本公开适用于具有一个或多个用户设备115的系统架构。
在一些实施例中,用户设备115可以是用户125佩戴的可穿戴设备。例如,用户设备115n被包括作为夹扣(例如,腕带)的一部分、珠宝的一部分或一副眼镜的一部分。在另一示例中,用户设备115n可以是智能手表。用户125n可以在用户125n佩戴的用户设备115n的显示器上观看由视频应用103c生成的视频。
在一些实施例中,用户设备115a可以包括生成编码视频的视频应用103b,例如用于视频通话。视频应用103b可以捕获包括人的面容的视频帧,检测视频帧中的面容;形成包括对应于视频帧中的面容的像素的面容矩形。将视频帧分割为包括多个矩形,该多个矩形包括面容矩形,基于多个矩形为视频帧建立封装,其中面容矩形比多个矩形中的其他矩形分配更多的像素,并对视频帧进行编码。视频应用103b可以对来自一系列视频帧的附加帧(例如,在视频通话期间由用户设备115a捕获)重复该过程。
用户设备115a可以在视频通话期间通过网络105直接或经由视频服务器101向用户设备115n发送例如包括多个编码视频帧的视频流。用户设备115n可以包括视频应用103c,该视频应用103c对编码视频进行解码并显示解码视频。
在所示实施方式中,环境100的实体通过网络105通信耦合。网络105可以是有线或无线的传统类型,并且可以具有许多不同的配置,包括星形配置、令牌环配置或其他配置。此外,网络105可以包括局域网(LAN)、广域网(WAN)(例如,互联网)和/或多个设备可以通过其通信的其他互连数据路径。在一些实施例中,网络105可以是对等网络。网络105还可以耦合到或包括电信网络的部分,用于以各种不同的通信协议发送数据。在一些实施例中,网络105包括
Figure BDA0003598139690000061
通信网络、
Figure BDA0003598139690000062
IEEE 902.11规定的无线局域网(WLAN)计算机通信,或用于发送和接收数据的蜂窝通信网络,包括通过短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、电子邮件等。尽管图1示出了耦合到用户设备115和视频服务器101的一个网络105,但实际上可以有一个或多个网络105耦合到这些实体。
示例计算设备
图2示出了生成编码视频的示例计算设备200的框图。计算设备200可以是用户设备115或视频服务器101。计算设备200可以包括处理器235、存储器237、通信单元239、摄像头241、显示器243和存储设备247。取决于计算设备200的类型,可以存在附加组件或可以省略一些先前组件。视频应用103可以存储在存储器237中。在一些实施例中,计算设备200可以包括这里未列出的其他组件,例如电池等。计算设备200的组件可以通过总线220通信耦合。总线220可以是在计算设备200的各个部分之间传送信号的通信总线。
处理器235包括算术逻辑单元、微处理器、通用控制器或一些其他处理器阵列以执行计算并向显示设备提供指令。处理器235处理数据并且可以包括各种计算架构,包括复杂指令集计算机(CISC)架构、精简指令集计算机(RISC)架构或实现指令集组合的架构。尽管图2示出了单个处理器235,但是可以包括多个处理器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根据视频应用103可能在哪里执行来向用户设备115和视频服务器101中的至少一个发送数据以及从其接收数据。在一些实施例中,通信单元239包括无线收发器,用于使用一种或多种无线通信方法与用户设备115、视频服务器101或其他通信信道交换数据,该一种或多种无线通信方法包括IEEE 802.11、IEEE 802.16、
Figure BDA0003598139690000071
或其他合适的无线沟通方式。通信单元239耦合到总线220以通过信号线226与其他组件通信。
在一些实施例中,通信单元239包括蜂窝通信收发器,用于通过蜂窝通信网络,包括通过短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、电子邮件或其他合适类型的电子通信,来发送和接收数据。在一些实施例中,通信单元239包括有线端口和/或无线收发器。通信单元239还提供到网络105的其他常规连接以使用标准网络协议分发文件和/或媒体对象,该标准网络协议包括但不限于用户数据报协议(UDP)、TCP/IP、HTTP、HTTP安全(HTTPS)、简单邮件传输协议(SMTP)、SPDY、快速UDP互联网连接(QUIC)等。
摄像头241可以包括可操作以捕捉视频和/或静态图像的硬件。例如,摄像头241可以从用户接口模块210接收指令以开始为视频通话捕捉视频。摄像头241可以包括一个或多个图像传感器,例如CMOS传感器、深度传感器(例如,红外传感器、飞行时间传感器等)和/或其他类型的传感器。在一些实施方式中,摄像头241可以包括多个镜头或其他图像捕捉单元。深度传感器可以捕获深度数据,该深度数据指示所捕获的图像或视频的一个或多个像素距摄像头的深度(距离)。摄像头241耦合到总线220以通过信号线228与其他组件通信。
显示器243可以包括可操作以显示从视频应用103接收的图形数据的硬件。例如,显示器243可以渲染图形以显示视频的视频帧。显示器243可以是任何类型的显示器,例如液晶显示器(LCD)、OLED等。在一些实施例中,显示器243可以是投影屏幕。在一些实施例中,例如,当设备243是增强现实设备时,显示器243可以是立体显示器。显示器243耦合到总线220以通过信号线230与其他组件通信。
存储设备247可以是存储提供本文描述的功能的数据的非暂时性计算机可读存储介质。在计算设备200是视频服务器101的实施例中,存储设备247可以包括图1中的数据库199。存储设备247可以是DRAM设备、SRAM设备、闪存或一些其他存储设备。在一些实施例中,存储设备247还包括非易失性存储器或类似的永久存储设备和介质,包括硬盘驱动器、CD-ROM设备、DVD-ROM设备、DVD-RAM设备、DVD-RW设备、闪存设备、或其他一些用于永久存储信息的大容量存储设备。存储设备247耦合到总线220以通过信号线232与其他组件通信。
视频应用103可以包括视频分析器202、封装模块204、填充模块206、编码器208和用户接口模块210。
视频分析器202执行面容检测并从视频帧生成多个形状。在一些实施例中,视频分析器202包括可由处理器235执行的一组指令,执行面容检测并从视频帧生成多个形状(例如,矩形)。在一些实施例中,视频分析器202存储在计算设备200的存储器237中并且可由处理器235访问和执行。
视频分析器202从摄像头241接收视频并从视频中识别视频帧。例如,用户通过用户界面模块210生成的用户界面发起视频通话,视频分析器202用一系列视频帧记录视频以发送给另一个用户。视频分析器202识别解码的视频帧中的背景和面容。例如,视频分析器202识别第一视频帧中的第一背景和面容。在摄像头241包括深度传感器的实施例中,深度数据可用于识别背景和面容。背景和面容检测的其他示例是可能的,例如视频分析器202识别视频帧中的多个面容。
在一些实施例中,视频分析器202对后续帧执行运动检测。视频分析器202可以基于视频中面容(或多个面容)的阈值移动量对视频中的后续视频帧执行面容检测。例如,摄像头241捕获第一视频帧和第二视频帧到第n-1视频帧。视频分析器202可以例如通过将帧与一个或多个先前帧进行比较,来确定第二视频帧到第n-1视频帧内的面容的移动量。面容的位置可以基于由对第一帧执行的面容检测所确定的位置。如果移动量超过阈值移动量,则视频分析器202执行面容检测。因为与第一视频帧相比面容移动了,随后的面容检测可用于确定面容在后续视频帧内的更精确位置。封装和编码也可以由响应于超过阈值移动量的移动的相应模块来执行。
在一些实施例中,视频分析器202基于预定间隔对视频中的后续视频帧执行面容检测。例如,视频分析器202每秒对后续视频帧执行一次面容检测。在一些实施例中,视频分析器202基于预定间隔和基于阈值移动量对视频中的后续视频帧执行面容检测。例如,如果视频中的面容有任何移动,则视频分析器202每半秒对后续视频帧执行面容检测。
视频分析器202可以通过应用面容跟踪技术来区分帧中的面容和背景。例如,视频分析器202可以应用识别视频帧中的面容位置和视频帧的时间戳的红绿蓝(RGB)面容跟踪技术。在一些实施例中,视频分析器202确定地标顶点(landmark vertices)的集合。地标顶点的集合描述了面容空间中的地标顶点的集合。视频分析器202识别靠近面容边缘的地标。例如,地标顶点可以对应于面容上的地标,例如,诸如前额顶部、下巴底部、左耳和右耳之类的面容特征。其他地标顶点是可能的,例如嘴、鼻、下巴、眼睛、耳朵及其部分等。
在一些实施例中,视频分析器202使用机器学习技术来执行一个或多个视频帧的实时面容跟踪。在一些实施例中,可以例如基于训练数据训练一个或多个机器学习模型,其中,为此已经明确地从用户获得了使用用户数据进行训练的许可。训练数据可以包括允许用于训练的任何数据,例如视频和相应的元数据,例如合成或计算机生成的数据、许可用于训练的数据等。
在一些实施例中,可以基于监督学习获得训练的模型,例如,基于包括图像和视频以及相应元数据的训练数据。例如,训练的模型可以包括模型形式或结构(例如,以相关的权重将多个节点组织成神经网络的层的数量和组织的描述)。在一些实施例中,可以训练模型以检测和跟踪视频中的面容。例如,可以提供视频,并且还可以将指示视频的一个或多个帧中的面容位置(例如,面容地标)的数据作为输入提供给未经训练的模型。可以训练模型(使用监督学习)来预测面容的位置,例如,通过提供数百个地标(例如,486个),并且使用尺寸的最小和最大位置以及作为面容矩形的中心的平均位置来识别面容矩形的中心。该模型可以用于检测视频中的面容地标,并且可以将预测的地标位置与真实数据进行比较。可以计算两者之间的差异并将其作为训练反馈提供。可以基于反馈调整一个或多个神经网络节点的权重或模型的其他参数。当地标位置的模型预测满足准确度阈值时,可以完成训练。
在一些实施例中,用户通过提供用户输入来帮助创建训练数据。可能会要求用户识别面容在视频帧内的位置。作为用户输入的结果,训练数据可能具有关于视频帧中面容位置的准确标识。在该示例以及识别面容位置的其他示例中,面容检测不包括确定身份,例如,不执行面容识别。此外,训练数据可以代表使用上下文,例如,其中使用上下文检测使用移动设备进行的视频通话中的面容。
视频分析器202可以生成和/或利用可以确定视频帧中面容位置的训练的模型。在一些实施例中,训练的模型可以是时序动作定位模型(temporal action localizationmodel)。在各种实施例中,视频分析器202可以使用贝叶斯分类器、支持向量机、神经网络或其他机器学习技术来生成训练的模型。
在一些实施例中,训练的模型可以包括一种或多种模型形式或结构。例如,模型形式或结构可以包括任何类型的神经网络,例如线性网络、实现多个层(例如,输入层和输出层之间的“隐含层”,每个层是线性网络)的深度神经网络、卷积神经网络(例如,将输入数据拆分或划分为多个部分或图块(tiles),使用一个或多个神经网络层分别处理每个图块,并聚合处理每个图块的结果的网络)、序列到序列的神经网络(例如,将序列数据,例如句子中的单词、视频中的帧等,作为输入并产生结果序列作为输出的网络)等。模型形式或结构可以指定各种节点之间的连通性以及将节点组织成层。例如,第一层(例如,输入层)的节点可以接收数据作为输入数据或应用数据。例如,当训练的模型用于图像分析时,这样的数据可以包括,例如,每个节点的一个或多个像素。随后的中间层可以根据模型形式或结构中指定的连接性接收前一层的节点的输出作为输入。这些层也可以称为隐含层。最后一层(例如,输出层)产生面容重采样关键帧和其他元数据的输出。例如,输出可以是标识视频帧中面容位置的地标顶点。在一些实施例中,模型形式或结构还指定每一层中节点的数量和/或类型。
在不同的实施例中,训练的模型可以包括多个节点,按照模型结构或形式排列成层。在一些实施例中,节点可以是没有记忆的计算节点,例如,被配置为处理一个输入单元以产生一个输出单元。由节点执行的计算可以包括,例如,将多个节点输入中的每一个与权重相乘,获得加权和,以及用偏差或截距值调整加权和以产生节点输出。在一些实施例中,由节点执行的计算还可以包括将阶跃/激活函数(step/activation function)应用于调整的加权和。在一些实施例中,阶跃/激活函数可以是非线性函数。在各种实施例中,这样的计算可以包括诸如矩阵乘法之类的操作。在一些实施例中,可以并行执行多个节点的计算,例如,使用多核处理器的多个处理器核、使用通用处理单元或专用神经回路的各个处理单元。在一些实施例中,节点可以包括记忆,例如,可以有能力存储和使用一个或多个较早的输入来处理后续输入。例如,具有记忆的节点可能包括长短期记忆(LSTM)节点。LSTM节点可以使用记忆来维护允许节点像有限状态机(FSM)一样工作的“状态”。具有此类节点的模型在处理顺序数据(例如视频中的帧)中可能很有用。
在一些实施例中,训练的模型可以包括各个节点的嵌入或权重。例如,一个训练模型可以被初始化为多个节点,这些节点组织成由模型形式或结构指定的层。在初始化时,可以将相应的权重应用于按照模型形式连接的每对节点之间的连接,例如,神经网络的连续层中的节点。例如,各个权重可以随机分配,或初始化为默认值。然后训练的模型可以,例如使用数据,来被训练经以产生结果。
视频分析器202将视频帧分割成多个形状。例如,视频分析器202生成包括面容矩形的多个矩形。在一些实施例中,多个矩形可以包括面容矩形和面容左方矩形、面容右方矩形、面容上方方矩形或面容下方方矩形中的至少一个。例如,视频分析器202生成面容矩形、面容左方矩形和面容右方矩形。视频分析器202可以基于被检测为包括面容的帧的部分来确定不同类型的矩形。例如,如果视频帧几乎完全是用户的面容,则视频分析器202可以生成面容矩形而不生成其他矩形。
视频分析器202基于面容检测确定面容矩形的尺寸(dimensions)。面容矩形包括与视频帧中的面容对应的像素。转向图3A,示出了视频帧325的示例。转向图3B,示出了多个矩形350的示例。在该示例中,视频分析器202生成面容矩形351、面容右方矩形352、面容左方矩形353、面容下方矩形354和面容上方矩形355。其它形状也是可能的,包括例如具有较多或较少数量的顶点的多边形,例如三角形、五边形、六边形等。在一些实施例中,矩形的高度可配置为由视频应用103确定或由用户配置。例如,面容矩形可以默认占据封装的视频帧的75%,并且高度可以由用户通过用户界面修改,这将在下面参考封装模块204进行更详细的描述。
封装模块204封装视频帧。在一些实施例中,封装模块204包括可由处理器235执行以封装视频帧的指令的集合。在一些实施例中,封装模块204存储在计算设备200的存储器237中并且可由处理器235访问和执行。
在一些实施例中,封装模块204通过生成元数据来封装视频帧,该元数据描述如何基于将像素分配到视频帧的不同区域来编码视频帧。封装模块204基于多个矩形封装视频帧,其中与多个矩形中的其他矩形相比,更多的像素被分配给面容矩形;因为面容矩形比其他矩形具有更多的像素,所以面容矩形以比其他矩形更高的分辨率编码。以这种方式将更多像素分配给面容矩形具有以下好处:封装视频帧中的大部分数据对应于面容,从而使得接收器能够呈现更高质量的面容矩形。
封装模块204对视频帧进行编码。编码的视频帧包括描述封装的元数据。元数据可以包括对面容矩形的中心和比例的描述。元数据可以描述面容变换中心和面容变换x/y比例。面容变换中心是封装前视频帧中面容中心(平均位置)的位置。面容变换x/y比例(scale)是封装前视频帧中包含面容的矩形的尺寸(size)。元数据可由接收器设备用于解码和渲染视频帧以供显示。例如,参考图示封装视频帧的图3B,元数据指示面容右方矩形352是面容矩形351正下方左边的矩形。此外,元数据还指示面容下方矩形354是在封装帧的左下角的矩形,旋转了180度。在解封装帧期间,元数据可用于在适当位置重新排列矩形以渲染视频帧。
在一些实施例中,封装模块204可以封装第一帧,然后基于多个矩形封装后续帧。随后的帧使用描述封装的元数据进行编码。在一些实施例中,封装模块204可以继续以相同的配置封装帧(无需重新计算元数据),只要帧之间的面容移动低于阈值移动量。如果面容的移动超过阈值移动量,则视频分析器202执行面容检测并且封装模块204生成新的封装配置以封装后续帧。在一些实施例中,用于执行封装的阈值移动量不同于用于执行面容检测的阈值移动量,并且不同的帧被封装而不是对其执行面容检测。
填充模块206在多个形状周围添加填充像素。在一些实施例中,填充模块206包括可由处理器235执行以在多个形状周围添加填充像素的指令的集合。在一些实施例中,填充模块206被存储在计算设备200的存储器237中并且可由处理器235访问和执行。
在一些实施例中,填充模块206在封装视频帧之后在矩形周围添加填充。填充模块206可以在每个矩形周围添加一到五个填充的像素。例如,填充模块206可以在每个矩形周围添加两个填充的像素。填充模块206可以用来自周围矩形的边缘像素填充来自周围矩形的空白空间。当编码器使用视频编解码器对封装的视频帧进行编码时,填充用于避免跨越矩形边界的运动溢出和矩形之间的插值。填充通过使矩形之间的边界至少达到像素宽的阈值数来避免这些问题,这样编码过程不会将错误引入视频中。换句话说,传统的编码器被设计为对视频帧进行编码,其中相邻像素源自视频中描绘的场景中的相邻点。这里描述的封装技术向编码器提供输入视频,其中相邻像素不对应于场景中的相邻点,如图3B所示。在矩形周围添加填充消除了修改编码器以解决视频帧的多个矩形的重新排列的需要,相反,允许使用任何可用的常规编码器。可以基于所使用的视频编解码器选择填充量,例如,基于在使用视频编解码器时编码的已知属性。
编码器208对视频帧进行编码。在一些实施例中,编码器208包括可由处理器235执行以编码视频帧的指令的集合。在一些实施例中,编码器208存储在计算设备200的存储器237中并且可由处理器235访问和执行。
编码器208对封装的视频帧进行编码,例如,基于例如用于视频通话的特定视频编解码器生成表示视频帧的数据。在一些实施例中,源纹理是与运动历史信息组合以描述视频帧中的事物如何作为时间的函数变化的初始视频帧。例如,元数据可以描述视频帧中的面容位置在后续视频帧中如何变化。更具体地,元数据可以参考前一帧描述地标点在哪里。编码器208可以使用视频帧作为源纹理来渲染封装。编码器208对视频帧进行编码并包括描述封装的元数据。例如,元数据包括面容的中心和比例。在一些实施例中,元数据在未经优化的情况下约为16字节,并且包括(1)面容变换中心,该面容变换中心将输入图像中面容变换中心的像素位置描述为两个32位浮点数和(2)面容变换x/y比例,为两个32位浮点数。
编码器208将编码的视频帧发送到另一个用户设备115(接收器设备)。接收器设备对编码的视频帧进行解码,并且在显示帧之前,接收器设备执行逆封装以将矩形渲染到它们在屏幕上的适当位置。视频帧的对应部分可以包括面容左方位置、面容右方位置、面容上方位置或面容下方位置中的至少一个。
用户界面模块210生成图形数据以显示用户界面。在一些实施例中,用户界面模块210包括可由处理器235执行以生成图形数据的指令的集合。在一些实施例中,用户界面模块210存储在计算设备200的存储器237中并且可由处理器235访问和执行。
在一些实施例中,用户界面模块210生成图形数据以显示视频通话。在一些实施例中,用户界面模块210还生成与视频应用103相关联的用户界面选项。例如,用户界面包括用于发起视频通话、将其他用户添加到视频通话、改变与视频通话相关联的设置的选项,例如改变用于封装的面容矩形的尺寸(例如高度)等。
示例方法
附图图4示出了对视频进行编码的示例方法400的流程图。方法400由存储在计算设备200上的视频应用103执行,计算设备200为,例如,用户设备115、视频服务器101,或部分用户设备115和部分视频服务器101。
在框402,捕捉包括人的面容的视频帧。在框404,确定用户是否同意使用用户的面容。如果用户不同意使用用户的面容,则方法400前进到框406,在此不使用关于用户面容的信息。例如,视频帧可以在捕获时被传输(可能使用编码和/或压缩),而不执行封装。如果用户确实同意使用用户的面容,则方法400进行到框408,其中在视频帧中检测面容。在框410,视频帧被分割成多个矩形,其中多个矩形包括像素对应于视频帧中的面容的面容矩形。在框412,基于多个矩形来封装视频帧,其中与多个矩形中的其他矩形相比,封装的视频帧中更多的像素被分配给面容矩形;在框414,对视频帧进行编码,其中编码的视频包括描述封装的元数据。
在以上描述中,出于解释的目的,阐述了许多具体细节以提供对说明书的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实施这些概念。在某些情况下,众所周知的结构和组件以框图形式显示以避免混淆这些概念。例如,上述实施例可以主要参考用户界面和特定硬件进行描述。然而,实施例可以应用于可以接收数据和命令的任何类型的计算设备,以及提供服务的任何外围设备。
在说明书中对“一些实施例”或“一些实例”的引用意味着结合实施例或实例描述的特定特征、结构或特性可以包括在描述的至少一个实施方式中。在说明书的各个地方出现的短语“在一些实施例中”不一定都指相同的实施例。
以上详细描述的某些部分是根据对计算机存储器内的数据位的操作的符号表示和算法来呈现的。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的手段。算法在这里,并且通常被认为是导致期望结果的自洽步骤序列。这些步骤是需要对物理量进行物理操作的步骤。通常,尽管不一定,这些量采用能够存储、传输、组合、比较和以其他方式操作的电或磁数据的形式。有时,主要出于常用的原因,将这些数据称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
然而,应该记住,所有这些和类似的术语都将与适当的物理量相关联,并且只是应用于这些量的方便标签。除非从下面的讨论中明确指出,否则应理解,在整个描述中,使用包括“处理”或“计算(computing)”或“算(calculating)”或“确定”或“显示”等术语的讨论指的是计算机系统或类似的电子计算设备的操作和过程,它操作和转换在计算机系统的寄存器和存储器中表示为物理(电子)量的数据,并存储到类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据中。
本说明书的实施例还可以涉及用于执行上述方法的一个或多个步骤的处理器。处理器可以是由存储在计算机中的计算机程序选择性地激活或重新配置的专用处理器。这样的计算机程序可以存储在非暂时性计算机可读存储介质中,包括但不限于任何类型的盘,包括光盘、ROM、CD-ROM、磁盘、RAM、EPROM、EEPROM、磁或光卡、闪存,包括具有非易失性存储器的USB密钥,或任何类型的适合存储电子指令的介质,每个都与计算机系统总线耦合。
该规范可以采取一些完全硬件实施例、一些完全软件实施例或一些包含硬件和软件元素的实施例的形式。在一些实施例中,规范以软件实现,包括但不限于固件、常驻软件、微代码等。
此外,描述可以采取计算机程序产品的形式,该计算机程序产品可从提供程序代码的计算机可用或计算机可读介质访问,以供计算机或任何指令执行系统使用或与其结合使用。出于本描述的目的,计算机可用或计算机可读介质可以是可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用的任何装置.
适用于存储或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储器以及提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器中检索代码的次数的高速缓存存储器。

Claims (20)

1.一种对视频进行编码的方法,其特征在于,所述方法包括:
捕捉包含人的面容的视频帧;
检测所述视频帧中的面容;
将所述视频帧分割成多个矩形,所述多个矩形包括像素对应于所述面容的面容矩形;
基于所述多个矩形对所述视频帧进行封装,其中与所述多个矩形中的其他矩形相比,封装的所述视频帧中更多的像素被分配给所述面容矩形;以及
对封装的所述视频帧进行编码,其中编码的所述视频帧包括描述所述封装的元数据。
2.根据权利要求1所述的方法,其特征在于,所述元数据包括对所述面容矩形的中心和比例的描述。
3.根据权利要求1所述的方法,其特征在于,所述元数据描述面容变换中心和面容变换x/y比例。
4.根据权利要求1所述的方法,其特征在于,还包括:
在为所述视频帧封装之后,在所述多个矩形中的每个矩形周围添加填充像素。
5.根据权利要求1所述的方法,其特征在于,对所述视频帧进行封装包括使用所述视频帧作为源纹理。
6.根据权利要求1所述的方法,其特征在于,所述多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。
7.根据权利要求1所述的方法,其特征在于,还包括:
将编码的所述视频帧发送到接收器;
其中,所述元数据可由所述接收器读取,以执行逆封装以将所述多个矩形显示在显示屏幕上的对应位置;以及
其中,所述对应位置包括面容左方位置、面容右方位置、面容上方位置或面容下方位置中的至少一个。
8.根据权利要求1所述的方法,其特征在于,所述视频帧是第一视频帧,并且所述方法还包括:
捕获第二视频帧到第n-1视频帧;以及
响应于所述第二视频帧到所述第n-1视频帧的每个视频帧内的移动量满足阈值移动量,对所述第二视频帧到所述第n-1视频帧的每个视频帧进行面容检测、封装和编码。
9.根据权利要求1所述的方法,其特征在于,检测所述面容包括对所述视频帧执行红绿蓝(RGB)面容跟踪。
10.根据权利要求1所述的方法,其特征在于,所述视频帧是第一视频帧,并且所述方法还包括:
分割包括所述人的面容的后续帧;
生成后续多个矩形;
根据所述后续多个矩形对所述后续帧进行封装;以及
使用描述所述封装的所述元数据对后续视频帧进行编码。
11.一种存储有指令的非暂时性计算机可读介质,当所述指令由一台或多台计算机执行时,使所述一台或多台计算机执行操作,所述操作包括:
捕捉包含人的面容的视频帧;
检测视频帧中的面容;
将所述视频帧分割成多个矩形,所述多个矩形包括像素对应于所述面容的面容矩形;
基于所述多个矩形对所述视频帧进行封装,其中与所述多个矩形中的其他矩形相比,封装的所述视频帧中更多的像素被分配给所述面容矩形;以及
对封装的所述视频帧进行编码,其中编码的所述视频帧包括描述所述封装的元数据。
12.根据权利要求11所述的计算机可读介质,其特征在于,所述元数据包括对所述面容矩形的中心和比例的描述。
13.根据权利要求11所述的计算机可读介质,其特征在于,所述元数据描述面容变换中心和面容变换x/y比例。
14.根据权利要求11所述的计算机可读介质,其特征在于,所述操作还包括:
在为所述视频帧封装之后,在所述多个矩形中的每个矩形周围添加填充像素。
15.根据权利要求11所述的计算机可读介质,其特征在于,所述多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。
16.一种系统,其特征在于,包括:
一个或多个处理器;和
存储指令的存储器,当所述存储由一个或多个处理器执行时,致使所述一个或多个处理器执行操作,所述操作包括:
捕捉包含人的面容的视频帧;
检测所述视频帧中的面容;
将所述视频帧分割成多个矩形,所述多个矩形包括像素对应于所述面容的面容矩形;
基于所述多个矩形对所述视频帧进行封装,其中与所述多个矩形中的其他矩形相比,封装的所述视频帧中更多的像素被分配给所述面容矩形;以及
对封装的所述视频帧进行编码,其中编码的所述视频帧包括描述所述封装的元数据。
17.根据权利要求16所述的系统,其特征在于,所述元数据包括对所述面容矩形的中心和比例的描述。
18.根据权利要求16所述的系统,其特征在于,所述元数据描述面容变换中心和面容变换x/y比例。
19.根据权利要求16所述的系统,其特征在于,所述操作还包括:
在为所述视频帧封装之后,在所述多个矩形中的每个矩形周围添加填充像素。
20.根据权利要求16所述的系统,其特征在于,所述多个矩形还包括面容左方矩形、面容右方矩形、面容上方矩形或面容下方矩形中的至少一个。
CN201980101670.3A 2019-08-16 2019-10-31 用于视频通话的基于面容的帧封装 Active CN114616834B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962888414P 2019-08-16 2019-08-16
US62/888,414 2019-08-16
PCT/US2019/059200 WO2021034338A1 (en) 2019-08-16 2019-10-31 Face-based frame packing for video calls

Publications (2)

Publication Number Publication Date
CN114616834A true CN114616834A (zh) 2022-06-10
CN114616834B CN114616834B (zh) 2024-04-02

Family

ID=68655676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980101670.3A Active CN114616834B (zh) 2019-08-16 2019-10-31 用于视频通话的基于面容的帧封装

Country Status (5)

Country Link
US (1) US20220279191A1 (zh)
EP (1) EP3811626B1 (zh)
JP (1) JP7354417B2 (zh)
CN (1) CN114616834B (zh)
WO (1) WO2021034338A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736455B1 (en) * 2020-07-01 2023-08-22 Amazon Technologies, Inc. Techniques for performing video-based verification

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022046149A1 (en) * 2020-08-24 2022-03-03 Google Llc Real time virtual teleportation in a browser

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905821A (zh) * 2014-04-23 2014-07-02 深圳英飞拓科技股份有限公司 能够识别人脸的视频编码方法及装置
CN106131670A (zh) * 2016-07-12 2016-11-16 块互动(北京)科技有限公司 一种自适应视频编码方法及终端
US20170337711A1 (en) * 2011-03-29 2017-11-23 Lyrical Labs Video Compression Technology, LLC Video processing and encoding
US20170374385A1 (en) * 2016-06-27 2017-12-28 Mediatek Inc. Method and Apparatus of Inter Coding for VR Video Using Virtual Reference Frames
CN109063626A (zh) * 2018-07-27 2018-12-21 深圳市践科技有限公司 动态人脸识别方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1353516A1 (en) * 2002-04-08 2003-10-15 Mitsubishi Electric Information Technology Centre Europe B.V. A method and apparatus for detecting and/or tracking one or more colour regions in an image or sequence of images
GB2395779A (en) * 2002-11-29 2004-06-02 Sony Uk Ltd Face detection
KR100539923B1 (ko) * 2003-02-10 2005-12-28 삼성전자주식회사 화상통화시 화자의 영상을 구분하여 차등적 부호화할 수있는 비디오 엔코더 및 이를 이용한 비디오신호의 압축방법
JP4770178B2 (ja) * 2005-01-17 2011-09-14 ソニー株式会社 カメラ制御装置、カメラシステム、電子会議システムおよびカメラ制御方法
US9502073B2 (en) * 2010-03-08 2016-11-22 Magisto Ltd. System and method for semi-automatic video editing
US9554111B2 (en) * 2010-03-08 2017-01-24 Magisto Ltd. System and method for semi-automatic video editing
DE102010054494B3 (de) * 2010-12-14 2011-10-20 Alfelder Kunststoffwerke Herm. Meyer Gmbh Dichtscheibe zur Induktionsversiegelung eines Behälters
JP2013031038A (ja) * 2011-07-29 2013-02-07 Brother Ind Ltd 通信装置、映像取得方法、及び映像取得プログラム
US20150134418A1 (en) * 2013-11-08 2015-05-14 Chon Hock LEOW System and Method for Providing Real-time Location Previews
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10140517B2 (en) * 2014-08-06 2018-11-27 Dropbox, Inc. Event-based image classification and scoring
JP2016143310A (ja) * 2015-02-04 2016-08-08 ソニー株式会社 情報処理装置、画像処理方法及びプログラム
US10835167B2 (en) * 2016-05-06 2020-11-17 The Board Of Trustees Of The Leland Stanford Junior University Systems and methods for using mobile and wearable video capture and feedback plat-forms for therapy of mental disorders
JP6683307B2 (ja) * 2016-10-06 2020-04-15 カイ インコーポレイテッド 多数のカメラを用いた最適の球形映像獲得方法
EP3481067A1 (en) * 2017-11-07 2019-05-08 Thomson Licensing Method, apparatus and stream for encoding/decoding volumetric video
US10939120B1 (en) * 2017-12-14 2021-03-02 Amazon Technologies, Inc. Video upload in limited bandwidth

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170337711A1 (en) * 2011-03-29 2017-11-23 Lyrical Labs Video Compression Technology, LLC Video processing and encoding
CN103905821A (zh) * 2014-04-23 2014-07-02 深圳英飞拓科技股份有限公司 能够识别人脸的视频编码方法及装置
US20170374385A1 (en) * 2016-06-27 2017-12-28 Mediatek Inc. Method and Apparatus of Inter Coding for VR Video Using Virtual Reference Frames
CN106131670A (zh) * 2016-07-12 2016-11-16 块互动(北京)科技有限公司 一种自适应视频编码方法及终端
CN109063626A (zh) * 2018-07-27 2018-12-21 深圳市践科技有限公司 动态人脸识别方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736455B1 (en) * 2020-07-01 2023-08-22 Amazon Technologies, Inc. Techniques for performing video-based verification

Also Published As

Publication number Publication date
US20220279191A1 (en) 2022-09-01
CN114616834B (zh) 2024-04-02
WO2021034338A1 (en) 2021-02-25
JP7354417B2 (ja) 2023-10-02
JP2022544570A (ja) 2022-10-19
EP3811626B1 (en) 2022-12-07
EP3811626A1 (en) 2021-04-28

Similar Documents

Publication Publication Date Title
US10937169B2 (en) Motion-assisted image segmentation and object detection
US11113840B2 (en) Systems and methods for detecting objects in images
CN110383342B (zh) 用于沉浸式视频格式的方法,装置和流
KR20210102482A (ko) 비디오 기반 포인트 클라우드 압축 코덱의 이미지 패딩 개선을 위한 방법 및 장치
CN107667534B (zh) 在有限的带宽连接中播放球形视频
JP6503070B2 (ja) 携帯型デバイスの位置を決定するための方法
KR102492565B1 (ko) 가상 현실 미디어 컨텐츠의 패키징 및 스트리밍을 위한 방법 및 장치
CN111615715A (zh) 编码/解码体积视频的方法、装置和流
Xu et al. Fully-coupled two-stream spatiotemporal networks for extremely low resolution action recognition
US11756153B2 (en) Hemisphere cube map projection format in imaging environments
KR20210142013A (ko) 비디오 기반 포인트 클라우드 압축에서 싱글 패스 경계 검출
US11949848B2 (en) Techniques to capture and edit dynamic depth images
CN114616834B (zh) 用于视频通话的基于面容的帧封装
JP2020509480A (ja) 画像生成方法および画像生成装置
CN113936119A (zh) 一种数据渲染方法、系统及装置
US20130101014A1 (en) Layered Screen Video Encoding
US10970818B2 (en) Sub-image based image generation
CN111402118B (zh) 图像替换方法、装置、计算机设备和存储介质
US20220222968A1 (en) Face-based frame rate upsampling for video calls
CN116129534A (zh) 一种图像活体检测方法、装置、存储介质及电子设备
US20240112358A1 (en) Deep learning model for high resolution predictions
CN116546148A (zh) 视频合成方法、装置、计算机设备及存储介质
CN115695850A (zh) 视频数据处理方法、装置、电子设备和介质
CN116168049A (zh) 图像处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant