CN115699114A - 用于分析的图像增广 - Google Patents

用于分析的图像增广 Download PDF

Info

Publication number
CN115699114A
CN115699114A CN202180040851.7A CN202180040851A CN115699114A CN 115699114 A CN115699114 A CN 115699114A CN 202180040851 A CN202180040851 A CN 202180040851A CN 115699114 A CN115699114 A CN 115699114A
Authority
CN
China
Prior art keywords
face
image
region
model
position map
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
CN202180040851.7A
Other languages
English (en)
Other versions
CN115699114B (zh
Inventor
刘鹏
L·王
Z·王
K-L·程
N·毕
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN115699114A publication Critical patent/CN115699114A/zh
Application granted granted Critical
Publication of CN115699114B publication Critical patent/CN115699114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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
    • 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/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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/20112Image segmentation details
    • G06T2207/20132Image cropping
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

提供了用于面部图像增广的系统和技术。一种示例方法可包括获得捕捉面部的第一图像。使用第一图像,该方法可使用预测模型来确定包括面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图。该方法可基于该UV面部位置映射图来生成面部的3D模型。该方法可以通过将3D模型扩展为包括超出3D模型的边界的(诸)区域来生成面部的经扩展3D模型。(诸)区域可包括前额区域、围绕面部的至少一部分的区域和/或其他区域。该方法可基于经扩展3D模型来生成第二图像,该第二图像描绘了相对于面部在第一图像中的位置处于经旋转位置的面部。

Description

用于分析的图像增广
技术领域
本公开一般涉及图像处理,尤其涉及用于分析的图像增广的技术和系统。
背景
许多设备和系统能够生成捕捉场景、对象、人和/或其他事物的图像(或帧)和/或视频数据(包括多个帧)。例如,相机或包括相机的计算设备(例如,包括一个或多个相机的移动设备(诸如移动电话或智能电话))可以捕捉场景、人和/或对象的图像。图像可以由此类设备和系统(例如,移动设备、IP相机等)捕捉和处理并输出以供使用(例如,显示在设备和/或其他设备上)。在一些情形中,图像可以被捕捉和进一步处理以用于某些应用,诸如举例而言计算机图形学、扩展现实(例如,增强现实、虚拟现实等)、图像识别(例如,面部识别、对象识别、场景识别等)、以及特征估计等。例如,图像可被处理以检测该图像中存在的任何对象或面部(例如,使用面部或对象识别等),这可有助于各种应用。
简要概述
在一些示例中,描述了用于执行用于分析的图像增广的技术和系统。根据至少一个解说性示例,提供了一种面部图像增广的方法。在一些示例中,该方法可包括:获得捕捉用户的面部的第一图像;基于第一图像,使用预测模型来确定包括该面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;基于该UV面部位置映射图来生成该面部的3D模型;通过将该面部的3D模型扩展为包括超出该面部的3D模型的边界的一个或多个区域来生成该面部的经扩展3D模型,该一个或多个区域包括前额区域和/或围绕该面部的至少一部分的区域;以及基于该面部的经扩展3D模型来生成第二图像,该第二图像描绘了相对于该面部在第一图像中的位置处于经旋转位置的面部。
在另一示例中,提供了一种用于面部图像增广的装置。在一些方面,该装置可包括:具有存储在其上的计算机可读指令的存储器、以及一个或多个处理器,该一个或多个处理器被配置成:获得捕捉用户的面部的第一图像;基于第一图像,使用预测模型来确定包括该面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;基于该UV面部位置映射图来生成该面部的3D模型;通过将该面部的3D模型扩展为包括超出该面部的3D模型的边界的一个或多个区域来生成该面部的经扩展3D模型,该一个或多个区域包括前额区域和/或围绕该面部的至少一部分的区域;以及基于该面部的经扩展3D模型来生成第二图像,该第二图像描绘了相对于该面部在第一图像中的位置处于经旋转位置的面部。
在另一示例中,提供了一种用于面部图像增广的非瞬态计算机可读介质。在一些示例中,该非瞬态计算机可读介质可包括在由一个或多个处理器执行时使该一个或多个处理器进行以下操作的指令:获得捕捉用户的面部的第一图像;基于第一图像,使用预测模型来确定包括该面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;基于该UV面部位置映射图来生成该面部的3D模型;通过将该面部的3D模型扩展为包括超出该面部的3D模型的边界的一个或多个区域来生成该面部的经扩展3D模型,该一个或多个区域包括前额区域和/或围绕该面部的至少一部分的区域;以及基于该面部的经扩展3D模型来生成第二图像,该第二图像描绘了相对于该面部在第一图像中的位置处于经旋转位置的面部。
在另一示例中,提供了一种用于面部图像增广的设备。在一些方面,该设备可包括用于以下操作的装置:获得捕捉用户的面部的第一图像;基于第一图像,使用预测模型来确定包括该面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;基于该UV面部位置映射图来生成该面部的3D模型;通过将该面部的3D模型扩展为包括超出该面部的3D模型的边界的一个或多个区域来生成该面部的经扩展3D模型,该一个或多个区域包括前额区域和/或围绕该面部的至少一部分的区域;以及基于该面部的经扩展3D模型来生成第二图像,该第二图像描绘了相对于该面部在第一图像中的位置处于经旋转位置的面部。
在一些方面,上述方法、设备(装置)和计算机可读介质可包括:检测第一图像中的面部区域,该面部区域包括用户的面部;以及通过移除第一图像中除该面部区域之外的一个或多个其他部分来将第一图像裁剪为包括该面部区域,其中确定UV面部位置映射图基于经裁剪的第一图像。
在一些示例中,预测模型可包括卷积神经网络(CNN),并且UV面部位置映射图可以记录面部在UV空间中的3D结构。
在一些示例中,UV面部位置映射图被投影到色彩图像空间上。在一些情形中,UV面部位置映射图中的颜色通道包括UV面部位置映射图中的各点的3D位置,并且3D位置包括面部的3D结构中的3D坐标。
在一些情形中,生成面部的3D模型可包括将UV面部位置映射图投影到3D空间。在一些示例中,3D模型可包括3D面部网格,该3D面部网格包括由边和面连接的顶点,并且该3D面部网格是通过向顶点指派3D坐标来生成的,3D坐标对应于面部的3D结构和UV面部位置映射图中的对应点。
在一些方面,上述方法、设备(装置)和计算机可读介质可包括:确定与前额区域和/或围绕该面部的至少一部分的区域相关联的深度信息,其中该深度信息包括前额区域的第一深度和/或围绕该面部的至少一部分的区域的第二深度,并且经扩展3D模型是基于该深度信息来生成的。
在一些示例中,确定深度信息可包括:估计面部区域上的第一群锚点、以及前额区域上的第二群锚点和围绕该面部的至少一部分的区域上的第三群锚点中的至少一者的深度。在一些情形中,锚点的深度是基于锚点在3D模型内的第一位置和锚点到面部上的第二位置的距离来估计的。
在一些情形中,第二群锚点和/或第三群锚点是基于第一群锚点的3D坐标来估计的。在一些情形中,生成经扩展3D模型可包括对第一群锚点以及第二群锚点和/或第三群锚点进行三角剖分。
在一些方面,上述方法、设备(装置)和计算机可读介质可包括通过以下操作来估计前额区域的第一深度:估计与前额区域相对应的前额形状;确定该前额形状内的一组不同的圆;以及基于该组不同的圆中的每个圆的相应半径来估计该前额区域的第一深度。
在一些方面,上述方法、设备(装置)和计算机可读介质可包括基于面部的3D模型和描述头部的3D形状的3D形变头部模型来估计前额区域的第一深度。
在一些示例中,围绕面部的至少一部分的区域可包括第一图像的背景区域、头发区域、颈部区域和/或耳部区域。
在一些情形中,生成第二图像可包括:将第一图像映射到经扩展3D模型;以及在将第一图像映射到经扩展3D模型时旋转面部,该面部被旋转为处于经旋转位置。
在一些方面,该装置(设备)可以是相机(例如,IP相机)、移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、可穿戴设备、经扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机或其他设备,或者可以是其一部分。在一些方面,该装置(设备)包括用于捕捉一个或多个图像的相机或多个相机。在一些方面,该装置(设备)进一步包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面,上述装置(设备)可包括一个或多个传感器。
本概述既非旨在标识出要求保护的主题内容的关键特征或必要特征,亦非旨在单独用于确定要求保护的主题内容的范围。本主题内容应当参考本专利的整个说明书的合适部分、任何或所有附图、以及每项权利要求来理解。
前述内容以及其他特征和实施例将在参考以下说明书、权利要求书和所附附图时变得更明显。
附图简述
本申请的解说性实施例在下文参照以下附图进行了详细的描述:
图1是解说根据本公开的一些示例的示例图像处理系统的简化框图;
图2是解说根据本公开的一些方面的用于生成具有经旋转面部的面部图像的示例系统流的示图;
图3A和3B是解说根据本公开的一些示例的基于未扩展的示例三维(3D)面部网格生成的示例经扩展3D面部网格的不同视图的示图;
图4是解说根据本公开的一些示例的用于估计前额区域的深度的球结构的圆的半径的示例估计的示图;
图5解说了根据本公开的一些示例的可与3D面部网格一起使用以估计前额区域的深度的示例3D形变头部模型;
图6是解说根据本公开的一些示例的用于对锚点进行三角剖分并生成经扩展3D面部网格的示例Delaunay三角剖分的示图;
图7是解说根据本公开的一些示例的3D面部网格和/或经扩展3D面部网格的示例元素的示图;
图8是解说根据本公开的一些示例的可被实现为UV位置映射图预测模型的结构的一部分的示例残差块结构的示图;
图9解说了根据本公开的一些示例的面部的示例图像和用经旋转面部生成的示例图像;
图10是解说根据本公开的一些示例的用于面部图像增广的示例方法的流程图;以及
图11是解说用于实现本文所描述的某些方面的示例系统架构的示图。
详细描述
下文提供给了本公开的某些方面和实施例。这些方面和实施例中的一些可独立地应用,并且它们中的一些可组合应用,这对于本领域技术人员来说是显而易见的。在以下描述中,出于解释目的阐述了具体细节以提供对本申请的各实施例的透彻理解。然而,显然的是,可以在没有这些具体细节的情况下实施各实施例。各附图和描述不旨在是限制性的。
以下描述仅提供了示例性实施例,并且并不旨在限定本公开的范围、适用性或配置。相反,对示例实施例的以下描述将向本领域技术人员提供用于实现示例实施例的赋能描述。应当理解,在不脱离所附权利要求书中阐述的本申请的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
在图像处理中,面部分析可被用于从图像和/或视频中的面部检测、识别和/或分类面部、面部特征和/或其他特性。面部分析可用于广泛的应用中,诸如举例而言但不限于计算机图形学、扩展现实(XR)(例如,包括增强现实(AR)、虚拟现实(VR)、混合现实(MR)等)、面部识别、情感/表情检测、眼睛凝视估计、年龄估计、性别估计、面部渲染、面部计数等。面部分析性能可能取决于所使用的面部图像的质量和/或特性,或者可能受所使用的面部图像的质量和/或特性影响。例如,面部分析的性能可受到所使用的面部图像中的头部姿势和/或面部表情的负面或正面影响。在许多情形中,由于用户面部的姿势和/或表情的变化,面部分析的性能可能会下降。
面部分析的性能还可以取决于可用于训练机器学习系统(例如,一个或多个神经网络)和/或用于分析的面部数据量。例如,具有不同头部姿势和/或面部表情的较大量的面部图像可以帮助提高面部分析性能。然而,可用于面部分析的面部数据(和/或来自不同头部姿势的面部数据)通常是有限的,并且可能不足以用于准确和/或可靠的面部分析。在许多情形中,用于面部分析的多视图面部图像可能原本不可用,并且获取起来可能很困难并且计算成本很高。根据可用的面部数据执行面部旋转(如下所述)也是困难的。例如,可以期望执行面部旋转,以便生成具有不同头部姿势的附加面部图像。附加的面部图像可被用于面部分析。
在一些情形中,深度神经网络(诸如深度卷积神经网络(CNN))可被用于执行面部分析。CNN可以实现众多参数(例如,权重参数等),并且可以要求或需要大量数据来训练CNN。然而,可用于训练的数据往往有限。在一些情形中,获得足够量的此类数据可能是困难和成本高昂的。数据增广可被执行以从现有面部图像生成附加的面部数据。随后,附加的面部数据可被用于训练神经网络(诸如CNN)。面部旋转技术可被用于从一个或多个面部图像(例如,单个面部图像)与一个或多个图像视点(例如,来自相对于面部的任何角度的图像)合成多视图面部。在一些示例中,在给定具有任何图像视点的单个面部图像的情况下,三维(3D)模型可被实现以合成多视图面部。执行单个图像3D面部旋转和/或重建的一个非限制性示例基于3D形变模型(3DMM),诸如Volker Blanz和Thomas Vetter,“A morphable modelfor the synthesis of 3D faces(用于3D面部的合成的形变模型)”,计算机图形学与交互技术国际会议,1999(其出于所有目的通过援引全部纳入于此)中描述的3DMM。3DMM模型具有生成能力,并且可被用于捕捉3D面部的变化。然而,面部的3DMM模型仅包括面部的前额区域的一部分,而不包括其他区域(诸如头发区域)。此外,没有(或具有有限量的)前额、头发和/或背景区域的经增广面部数据可能看起来不真实(例如,虚假的)。
在一些方面,本文描述了可提供用于面部分析的准确且高效的面部增广框架的系统、设备、过程(也称为方法)和计算机可读介质(以下称为“系统和技术”)。在一些示例中,面部增广框架可被用于使用具有头部姿势和/或面部表情的面部图像(例如,具有任何头部姿势和/或面部表情的面部图像)的面部分析。在一些情形中,面部增广框架可被用于面部分析,而不限制所使用的面部图像的特定头部姿势和/或面部表情。在一些示例中,可以针对包括面部的输入图像生成UV面部位置映射图(也称为UV位置映射图)。UV面部位置映射图可以提供和/或表示输入图像中的面部的2D映射。例如,UV面部位置映射图可以是记录和/或映射UV空间(例如,2D纹理坐标系)中的点(例如,像素)的3D位置的2D图像。UV空间中的U和UV空间中的V可以标示UV面部位置映射图的轴(例如,面部的2D纹理的轴)。在一个解说性示例中,UV空间中的U可以标示UV面部位置映射图的第一轴(例如,水平X轴),并且UV空间中的V可以标示UV面部位置映射图的第二轴(例如,垂直Y轴)。在一些示例中,UV位置映射图可以记录、建模、标识、表示和/或计算面部(和/或面部的面部区域)的3D形状、结构、轮廓、深度和/或其他细节。
在一些实现中,UV面部位置映射图可以如本文进一步描述的那样被扩展以生成经扩展UV面部位置映射图(也称为经扩展UV位置映射图)。例如,UV位置映射图可以被扩展为包括该UV位置映射图中未包括的面部的其他区域。此类其他区域的示例可包括前额区域和/或输入图像中处于面部或面部区域之外的其他区域,诸如头发区域、背景区域和/或输入图像中(未被包括在UV位置映射图中)的任何其他区域。在一个示例中,UV位置映射图可被扩展为包括背景区域(或其一部分)、头发区域(或其一部分)、前额区域(或其一部分)和/或围绕面部或相反地在面部区域之外的(诸)任何其他区域。
经扩展UV位置映射图可被映射到输入图像。经映射输入图像和经扩展UV位置映射图中的面部可以被旋转,以生成与原始输入图像中的面部相对应的经旋转面部。在一些示例中,经旋转面部可被用于提供用于面部分析的附加和/或不同的面部数据(例如,附加和/或不同的面部视图、姿势等)。例如,附加和/或不同的面部数据可被用于训练面部分析模型(例如,CNN等)和/或各种面部分析应用。经扩展UV位置映射图可以允许在执行面部旋转时裁剪、操纵、映射和/或修改面部(和/或面部区域)的区划、和/或面部或面部区域之外(例如,围绕面部或面部区域)的区划。面部或面部区域可以被旋转和/或裁剪、操纵、修改等,而不损害(例如,丢失或具有有限的丢失、扭曲和/或负面影响)面部的一个或多个细节,诸如举例而言身份、面部表情、面部相关属性(例如,年龄属性、种族属性、性别属性、几何或形状属性、面部配置属性、纹理、面部标记、面部对称属性、面部的一个或多个区划的视觉属性等)、和/或关于面部的其他信息。
如以上提及的,从具有面部的输入图像生成的UV面部位置映射图可被用于生成经增广面部数据,包括关于面部的一个或多个区域和/或一个或多个周围区域(例如,前额区域、头发区域、背景区域、颈部区域等)的数据。在一些示例中,UV位置映射图可被用于生成具有关于面部的一个或多个区域(或整个面部)和/或一个或多个周围区域(例如,前额区域、头发区域、背景区域等)的经估计深度信息的经增广面部数据,如本文进一步描述的。
在一些示例中,面部增广框架可以使用单个图像来合成经旋转面部。例如,面部增广框架可以实现面部旋转,诸如任意角度的面部旋转和/或任何其他面部旋转或面部旋转角度。虽然本文所描述的系统和技术可以使用单个图像来实现面部旋转,但是应当注意,在一些情形中,面部增广框架还可以使用不止一个图像来合成经旋转面部。此外,在一些方面,围绕面部区域的视觉特征、数据和/或外观(其可包含鉴别信息(例如,关于面部或周围区域、细节、部分、特征等的标识和/或区分/区别信息))可被用于和/或实现为本文所描述的系统和技术的一部分。
如以上提及的,本文所描述的系统和技术可以执行用于面部分析的面部旋转,同时保留面部的一个或多个方面(例如,身份、面部特征、面部表情特征、属性等)。面部旋转可被用于生成具有不同面部角度/姿势的面部图像。所生成的面部图像可被用于各种面部分析任务和/或可被实现用于一个或多个使用情形和/或应用。使用情形和/或应用的示例包括但不限于计算机图形学、XR、面部识别、面部表情识别、眼睛凝视估计、年龄估计、性别估计、种族估计、面部渲染、动画等。在一些示例中,面部旋转可包括将面部的图像网格化为从面部的图像生成的经扩展UV面部位置映射图,和/或可以至少部分地通过将面部的图像网格化为从面部的图像生成的经扩展UV面部位置映射图来执行。在一些情形中,系统和技术可以利用3D变换来归一化经扩展UV面部位置映射图,以生成面部的对应3D网格。如上所述,经扩展UV面部位置映射图和面部的3D网格可以实现面部旋转,同时保留与面部相关联的细节和/或信息,诸如纹理信息、身份信息、面部表情信息、面部特征和/或属性等。
在图1-9中解说并且在以下描述了本文所描述的用于面部图像增广和面部分析的系统和技术的示例。图1是解说示例图像处理系统100的示图。如本文进一步描述的,图像处理系统100可以执行面部图像增广和面部分析。此外,图像处理系统100可以执行各种图像处理任务和/或生成各种图像处理效果,诸如举例而言生成色度键控效果、执行特征提取、执行各种图像识别任务(例如,面部识别、表情识别、性别识别、眼睛凝视识别、年龄估计、种族估计、对象识别等)、执行面部渲染、执行机器视觉、执行面部旋转和/或执行任何其他图像处理任务。
在一些解说性示例中,图像处理系统100可以执行面部图像增广。在一些情形中,图像处理系统100可以从一个或多个图像捕捉设备(例如,相机、图像传感器等)生成具有经旋转面部的面部图像。例如,在一些实现中,图像处理系统100可以执行面部图像增广,并且从由图像传感器设备捕捉的单个图像生成具有经旋转面部的面部图像。在一些实现中,图像处理系统100可以执行面部图像增广,并且从由该图像传感器设备(和/或其他图像传感器设备)捕捉的多个图像生成具有经旋转面部的面部图像。
在图1所示的示例中,图像处理系统100包括图像传感器102、存储108、计算组件110、图像处理引擎120、机器学习引擎122和渲染引擎124。图像处理系统100还可以可任选地包括一个或多个附加图像传感器104和一个或多个其他传感器106,诸如雷达传感器、光检测和测距(LIDAR)传感器、红外(IR)传感器等。例如,在双相机或图像传感器应用中,图像处理系统100可包括前置图像传感器和后置图像传感器(例如,102、104)。
图像处理系统100可以是计算设备或多个计算设备的一部分。在一些示例中,图像处理系统100可以是电子设备(或多个电子设备)的一部分,诸如相机系统(例如,数字相机、IP相机、视频相机、安全相机等)、电话系统(例如,智能电话、蜂窝电话、会议系统等)、台式计算机、XR设备(例如,头戴式显示器等)、智能可穿戴设备(例如,智能手表、智能眼镜等)、膝上型或笔记本计算机、平板计算机、机顶盒、电视机、显示设备、数字媒体播放器、游戏控制台、视频流设备、无人机、汽车中的计算机、物联网(IoT)设备或(诸)任何其他合适的电子设备。
在一些实现中,图像传感器102、(诸)图像传感器104、(诸)其他传感器106、存储108、计算组件110、图像处理引擎120、机器学习引擎122和渲染引擎124可以是相同计算设备的一部分。例如,在一些情形中,图像传感器102、(诸)图像传感器104、(诸)其他传感器106、存储108、计算组件110、图像处理引擎120、机器学习引擎122和渲染引擎124可被集成到智能电话、膝上型计算机、平板计算机、智能可穿戴设备、游戏系统和/或任何其他计算设备中。然而,在一些实现中,图像传感器102、(诸)图像传感器104、(诸)其他传感器106、存储108、计算组件110、图像处理引擎120、机器学习引擎122和/或渲染引擎124可以是两个或更多个单独的计算设备的一部分。
图像传感器102和104可以是任何类型的图像传感器(或图像捕捉设备)和/或视频传感器(或视频捕捉设备)。例如,图像传感器102和/或104可以是数字相机传感器、视频相机传感器、智能电话相机传感器、包括为电子装置(例如,电视、计算机、相机等)的一部分的图像/视频捕捉设备。在一些情形中,图像传感器102和104可以是相机或计算设备(诸如数字相机、视频相机、IP相机、智能电话、智能电视机、游戏系统或其他计算设备)的一部分。在一些示例中,图像传感器102可以是后置图像捕捉设备(例如,设备背面或后面上的相机、视频和/或图像传感器),并且图像传感器104可以是前置图像捕捉设备(例如,设备正面上的相机、图像和/或视频传感器)。在一些示例中,图像传感器102和104可以是双相机组装件的一部分。图像传感器102和104可以捕捉图像和/或视频内容(例如,原始图像和/或视频数据)。如本文所述,图像和/或视频内容可以由计算组件110、图像处理引擎120、机器学习引擎122和/或渲染引擎124来处理。
(诸)其他传感器106可以是用于检测和测量诸如距离、运动、位置、深度、速度等信息的任何传感器。其他传感器106的非限制性示例包括LIDAR、陀螺仪、加速度计、磁力计、IR传感器、惯性测量单元(IMU)、雷达传感器、机器视觉传感器等。在一些情形中,图像处理系统100可包括其他传感器,诸如智能场景传感器、语音识别传感器、冲击传感器、位置传感器、倾斜传感器、光传感器等。
存储108可以是用于存储数据(诸如举例而言图像或视频数据)的(诸)任何存储设备。此外,存储108可以存储来自图像处理系统100的任何组件的数据。例如,存储108可以存储来自传感器102、104、106中的任一者的数据或测量、来自计算组件110的数据(例如,处理参数、输出、所生成的图像、计算结果等)、和/或来自图像处理引擎120、机器学习引擎122和/或渲染引擎124中的任一者的数据(例如,输出图像、处理结果等)。在一些示例中,存储108可包括用于存储数据(例如,图像数据)以供计算组件110处理的缓冲器。
在一些实现中,计算组件110可包括中央处理单元(CPU)112、图形处理单元(GPU)114、数字信号处理器(DSP)116和/或图像信号处理器(ISP)118。计算组件110可以执行各种操作,诸如图像增强、对象或图像分割、计算机视觉、图形渲染、增强现实、图像/视频处理、传感器处理、识别(例如,文本识别、对象识别、特征识别、面部识别、面部表情识别、眼睛凝视识别、年龄识别、性别识别、种族识别、跟踪或模式识别、场景变化识别等)、视差检测、机器学习、过滤、面部增广、面部分析、面部渲染以及本文所描述的各种操作中的任一者。在一些示例中,计算组件110可以实现图像处理引擎120、机器学习引擎122和渲染引擎124。在其他示例中,计算组件110还可以实现一个或多个其他处理引擎。
此外,图像处理引擎120、机器学习引擎122和渲染引擎124的操作可以由计算组件110中的一者或多者来实现。在一个解说性示例中,图像处理引擎120和机器学习引擎122(以及相关联的操作)可以由CPU 112、DSP 116和/或ISP 118实现,并且渲染引擎124(以及相关联的操作)可以由GPU 114实现。在一些情形中,计算组件110可包括其他电子电路或硬件、计算机软件、固件、或其任何组合以执行本文描述的各种操作中的任一者。
在一些情形中,计算组件110可以接收由图像传感器102和/或图像传感器104捕捉的数据(例如,图像数据,视频数据等),并且处理该数据以生成UV位置映射图、3D面部网格、输出图像(或帧)(诸如具有经旋转面部的面部图像)等。例如,计算组件110可以接收由图像传感器102捕捉的图像数据(例如,一个或多个图像等),检测该图像数据中的面部,基于该图像数据来生成UV位置映射图,基于该UV位置映射图来生成3D面部网格,估计深度信息(例如,背景深度信息、前额深度信息、头发深度信息等),生成经扩展UV位置映射图,生成面部旋转的面部图像,从该图像数据提取特征和信息(例如,颜色信息、纹理信息、语义信息等)等。图像(或帧)可以是每像素具有红色、绿色和蓝色分量的红绿蓝(RGB)图像或帧;每像素具有亮度分量和两个色度(色彩)分量(红色色度和蓝色色度)的亮度、红色色度、蓝色色度(YCbCr)图像或帧;或任何其他合适类型的彩色或单色图片。
计算组件110可以实现图像处理引擎120和机器学习引擎122以执行各种图像处理操作,诸如面部检测、面部图像增广、面部旋转、面部渲染、面部图像生成、面部分析、2D和/或3D建模等。例如,计算组件110可以实现图像处理引擎120和机器学习引擎122以执行面部检测、面部图像增广、面部旋转、建模和面部分析,如本文进一步描述的。计算组件110可以处理由图像传感器102和/或104捕捉的图像数据、存储在存储108中的图像数据、从远程源(例如,远程相机、服务器、内容提供商、其任何组合和/或其他远程源)接收的图像数据、从源的组合获得的图像数据、其任何组合和/或其他图像数据。
在一些示例中,计算组件110可以(例如,经由图像处理引擎120和/或机器学习引擎122)检测面部图像中的面部。计算组件110可以从面部图像估计UV面部位置映射图。计算组件110可以估计一个或多个区域(例如,前额区域、围绕面部的区域、背景区域等)的深度,并且可基于所估计的深度来扩展UV位置映射图(或者基于UV位置映射图生成的3D网格模型)。计算组件110可以将输入面部图像映射到经扩展UV位置映射图(或经扩展3D网格模型)。在一些情形中,计算组件110可以旋转与面部图像的映射和经扩展UV位置映射图相对应的输出图像中的面部。可以旋转面部,以使得面部具有与输入面部图像中的面部不同的姿势(例如,不同的方向/角度)。在一些示例中,具有经旋转面部的输出图像可被用于执行面部分析、训练机器学习引擎122以用于面部分析任务、其任何组合、和/或执行其他应用和/或任务。
在一些示例中,机器学习引擎122可包括(例如,可实现、可包含等)一个或多个神经网络。例如,在一些情形中,机器学习引擎122可包括可被用于面部增广和/或面部分析的一个或多个深度卷积神经网络(CNN),如本文进一步描述的。在一些情形中,由机器学习引擎122实现的神经网络可包括编码器-解码器结构,如本文所述。在其他示例中,机器学习引擎122可以实现任何其他模型和/或任何其他神经网络类型和/或架构。
在一些示例中,渲染引擎124可以从计算组件110接收输出图像,并且渲染输出图像以在显示设备(诸如举例而言屏幕/显示器、电视、投影仪等)上呈现。在一些示例中,渲染引擎124可以从图像处理引擎120和/或机器学习引擎122接收所生成的图像并渲染这些图像。在一些情形中,渲染引擎124可基于由图像处理引擎120和/或机器学习引擎122生成的图像数据来执行面部渲染。
在一个解说性示例中,图像处理系统100可以(例如,经由图像处理引擎120和/或机器学习引擎122)执行如下所述的用于面部旋转的过程。在一些示例中,图像处理系统100可以执行面部检测以检测输入图像中的面部(和/或面部的区域)。图像处理系统100可以使用一个或多个面部检测和/或识别技术来执行面部检测。面部检测和/或识别技术的示例包括但不限于图像分割、特征检测和/或提取、基于深度神经网络的图像处理、分类、基于特征的技术、基于外观的技术、基于知识的技术、模板匹配、其任何组合和/或任何其他面部检测和/或识别技术。
如以上提及的,图像处理系统100(例如,使用计算组件110)可以根据在输入图像中检测到的面部来估计UV面部位置映射图。在一些示例中,图像处理系统100可以裁剪输入图像以移除该输入图像在检测到的面部之外的一个或多个部分。图像处理系统100可以使用经裁剪的图像来生成UV面部位置映射图。例如,图像处理系统100可以标识围绕检测到的面部、头发区域以及可任选地输入图像的背景区域的一部分的边界框。图像处理系统100可以裁剪输入图像以排除边界框之外的一个或多个部分。随后,图像处理系统100可以使用经裁剪的图像来估计UV面部位置映射图。
在一些示例中,UV面部位置映射图可以提供面部的3D面部结构的2D表示。在一些情形中,UV面部位置映射图可以表示和/或描述面部和/或面部的区域(例如,面部区域)。在其他情形中,UV面部位置映射图可包括输入图像的其他区域,诸如举例而言由输入图像捕捉的用户、场景和/或背景的一个或多个区域。在一些示例中,UV面部位置映射图可以是记录和/或映射UV空间(例如,2D纹理坐标系)中的点(例如,像素)的3D位置的2D图像。例如,UV面部位置映射图可包括将2D纹理图中的点(例如,像素)映射到面部的3D表示(例如,3D网格、模型、表面、几何图形等)的顶点和/或坐标的2D纹理图。作为另一示例,UV面部位置映射图可包括将2D纹理图中的纹理坐标映射到3D空间中的位置坐标的2D纹理图。
在一些情形中,UV面部位置映射图可包括、表示和/或描述面部在UV空间中的2D纹理。UV空间中的U和UV空间中的V可以标示UV面部位置映射图的轴(例如,面部的2D纹理的轴)。例如,UV空间中的U可以对应于纹理坐标系中的水平X轴,UV空间中的V可以对应于纹理坐标系中的垂直Y轴。在一些情形中,UV空间可包括UVW轴和/或坐标。例如,UV空间可包括与3D水平X轴中的X坐标相对应的U坐标、与3D垂直Y轴中的Y坐标相对应的V坐标以及与3D空间中的Z轴中的深度坐标相对应的W坐标。
UV面部位置映射图可以保留输入图像中的面部的一个或多个方面,诸如身份信息、面部表情信息、面部属性等。在一些情形中,图像处理系统100可以将UV面部位置映射图投影到色彩图像空间(例如,R、G、B)上。在一些示例中,投影到色彩图像空间上的UV面部位置映射图的颜色通道(例如,R、G、B)可以标识、包括和/或存储UV面部位置映射图的点(例如,像素)(例如,UV空间中的面部的2D纹理图中的点)的X、Y、Z位置(例如,3D空间中的XYZ坐标)。
图像处理系统100可基于UV面部位置映射图来生成(用于对面部建模的)3D面部网格。例如,图像处理系统100可以将UV面部位置映射图投影和/或映射到面部的3D模型(例如,投影和/或映射到面部的3D模型的表面)。在一些情形中,3D面部网格可以是基于UV面部位置映射图生成的3D UV面部位置映射图。在一些情形中,3D面部网格可以是表示面部结构和/或UV面部位置映射图的多边形网格。在一些示例中,3D面部网格可包括定义3D空间中的面部的形状的顶点、边和面的集合(如下文关于图7所述)。
在一些情形中,图像处理系统100可以将空间坐标(例如,X、Y、Z坐标)指派给3D面部网格的每个顶点。在一些情形中,图像处理系统100可以填充连接特定和/或对应的顶点对和面对的边(例如,跨对应的顶点或点的元组)。使用此类技术,在一些示例中,图像处理系统100可以从面部的2D图像回归面部的3D几何形状以及面部的3D几何形状与面部的2D图像(例如,输入图像和/或UV面部位置映射图)之间的密集对应性(例如,像素级对应性或对齐)。
在一些示例中,图像处理系统100可基于所估计的深度信息来扩展3D面部网格。例如,图像处理系统100可以估计面部的前额区域、围绕面部的一个或多个区域(诸如头发区域)和/或图像中的一个或多个背景区域的深度。使用所估计的深度,图像处理系统100可以将3D面部网格扩展为包括附加区域,诸如前额区域(或前额的附加区域)、背景区域(或背景区域的一部分)、头发区域和/或围绕面部和/或面部之外的任何其他区域。在一些情形中,如以下更详细描述的,3D面部网格可以通过标记超出面部区域的锚并根据3D头部信息来估计其深度来扩展到面部之外的区域(例如,前额区域、头发区域和/或背景区域)上。在一些情形中,扩展3D面部网格可以保留关于面部的信息(例如,身份信息/细节、表情信息/细节、面部属性等)以及与围绕面部和/或面部区域和/或面部和/或面部区域之外的一个或多个区域相关联的信息。
图像处理系统100可以将输入图像映射到经扩展3D面部网格(反之亦然)。图像处理系统100可以在输入图像和经扩展3D面部网格的映射中旋转面部。面部可以按任何特定的方向/角度旋转。在一些示例中,具有经旋转面部的所生成的面部图像可被用于面部分析和/或训练面部分析模型,诸如一个或多个神经网络(例如,卷积神经网络(CNN)或其他神经网络)。在一些情形中,图像处理系统100可以生成和/或提供用于训练一个或多个神经网络的大量面部图像样本(和/或面部旋转图像样本)。在一些示例中,图像处理系统100可以将所生成的图像用作经增广数据以用于一个或多个应用,诸如举例而言面部识别、面部表情分类、头部姿势估计、面部属性分析(例如,年龄、性别、种族分类)、计算机图形学、动画、XR以及其他场景和应用。
尽管图像处理系统100被示为包括某些组件,但本领域普通技术人员将领会,图像处理系统100可包括比图1所示的组件更多或更少的组件。例如,在一些实例中,图像处理系统100还可包括一个或多个存储器设备(例如,RAM、ROM、高速缓存等)、一个或多个联网接口(例如,有线和/或无线通信接口等)、一个或多个显示设备、和/或图1中未示出的其他硬件或处理设备。下文将参考图11来描述可通过图像处理系统100来实现的计算设备和硬件组件的解说性示例。
图2是解说用于生成具有经旋转面部的面部图像的示例系统流200的示图。在图2所示的示例中,图像处理系统100可以接收包括面部的输入图像202,并且可以执行面部检测以检测输入图像202中的面部(和/或输入图像202中包括面部或面部的一部分的面部区域)。在一些示例中,图像处理系统100可以生成围绕检测到的面部的边界框220和/或围绕检测到的面部的区域。例如,围绕检测到的面部的区域可以是包括检测到的面部的区域和围绕检测到的面部的一个或多个区域(例如,前额区域、头发区域、背景区域或其一部分等)。
随后,图像处理系统100可以生成包含或包括边界框220内的图像数据和/或内容的经裁剪图像204。例如,图像处理系统100可以裁剪输入图像202以排除或移除该输入图像202在边界框220之外的任何部分。通过排除或移除边界框220之外的图像数据,经裁剪图像204可包括检测到的面部和包括在边界框220内的来自输入图像202的任何其他图像数据。
图像处理系统100可将经裁剪图像204用作对UV位置映射图预测模型206的输入。映射预测模型206被配置成基于经裁剪图像204来估计UV面部位置映射图208。在一些情形中,UV位置映射图预测模型206可包括机器学习系统(例如,CNN),并且可以由机器学习引擎122来实现。在一些示例中,UV位置映射图预测模型206可包括经训练以学习传递函数的编码器-解码器结构(例如,包括一个或多个卷积层和去卷积层)。例如,一旦被训练,UV位置映射图预测模型206的机器学习系统可以关联UV位置映射图预测模型206的输入(例如,经裁剪图像204)和UV位置映射图预测模型206的输出(例如,UV面部位置映射图208)之间的关系。该关联可以基于在训练期间调谐的编码器-解码器结构的权重、偏差和/或其他参数。使用该关联,机器学习系统可以从经裁剪图像204生成UV面部位置映射图。
如以上提及的,UV位置映射图预测模型206可以使用经裁剪图像204作为输入来生成UV面部位置映射图208。UV面部位置映射图208可以提供经裁剪图像204中的面部的3D面部结构的2D表示。在一些情形中,UV面部位置映射图208可以表示和/或描述面部和/或面部的区域(例如,面部区域)。在其他情形中,UV面部位置映射图208可包括经裁剪图像204的其他区域,诸如举例而言经裁剪图像204中的用户和/或背景的一个或多个区域。在一些情形中,UV面部位置映射图208可以保留经裁剪图像204中的面部的一个或多个方面,诸如身份信息、面部表情信息、面部属性等。
在一些示例中,UV面部位置映射图208可以是记录和/或映射UV空间(例如,2D纹理坐标系)中的点(例如,像素)的3D位置的2D图像。在一些示例中,UV面部位置映射图208可包括、表示和/或描述面部在UV空间中的2D纹理。在一些情形中,UV面部位置映射图208可以表示面部的结构,并且可以记录UV空间中的点(例如,像素)的3D位置。在一个示例中,UV面部位置映射图208可包括将2D纹理图中的点(例如,像素)映射到面部的3D表示(例如,3D几何图形)上的点(例如,顶点和/或坐标)的2D纹理图。作为另一示例,UV面部位置映射图208可包括将2D纹理图中的纹理坐标映射到3D空间中的位置坐标的2D纹理图。如上所述,UV空间中的U可以对应于纹理坐标系中的水平X轴,并且UV空间中的V可以对应于纹理坐标系中的垂直Y轴。在一些情形中,UV空间可包括UVW轴和/或坐标。例如,UV空间可包括与3D水平X轴中的X坐标相对应的U坐标、与3D垂直Y轴中的Y坐标相对应的V坐标以及与3D空间中的Z轴中的深度坐标相对应的W坐标。
在一些情形中,UV面部位置映射图208可包括投影到色彩图像空间或范围上的UV面部位置映射图。在一些示例中,投影到色彩图像空间上的UV面部位置映射图208的颜色通道(例如,R、G、B)可以标识、包括和/或存储UV面部位置映射图208的点(例如,像素)(例如,UV空间中的面部的2D纹理图中的点)的X、Y、Z位置(例如,3D空间中的XYZ坐标)。
如图2中所解说的,图像处理系统100可基于UV面部位置映射图208来生成3D面部网格210。例如,图像处理系统100可以将UV面部位置映射图208投影和/或映射到面部的3D模型和/或面部的3D模型的表面。在一些情形中,3D面部网格210可以是基于UV面部位置映射图208生成的3D UV面部位置映射图。在一些情形中,3D面部网格210可以是表示面部结构和/或表示UV面部位置映射图208的多边形网格。在一些示例中,3D面部网格210可包括由边和面连接的顶点的集合,并且可以定义3D空间中的面部的形状。
在一些示例中,3D面部网格210可以表示面部的3D结构,并且可包括来自UV面部位置映射图208的点(例如,像素)的3D位置。例如,3D面部网格210可包括或记录面部的3D结构的密集的点集合以及在一些情形中这些点的语义含义(例如,面部的哪些部分、结构和/或部分的类别或分类由各个点定义和/或表示)。在一些情形中,为了生成3D面部网格210,图像处理系统100可以获得与UV面部位置映射图208中的点(例如,像素)相对应的3D坐标。随后,图像处理系统100可以基于与所获得的3D坐标相对应的点云来生成3D面部网格210。例如,图像处理系统100可以对点云中的点进行三角剖分,以生成3D面部网格210。图像处理系统100可以实现三角剖分算法,诸如举例而言Delaunay三角剖分算法,以对点进行三角剖分。
在一些示例中,当生成3D面部网格210时,图像处理系统100可以获得面部的3D结构以及面部的3D结构与UV面部位置映射图208和/或经裁剪图像204中的面部之间的密集对齐(例如,像素对齐/对应)。图像处理系统100可以使用机器学习系统(例如,UV位置映射图预测模型206)从UV面部位置映射图208和/或经裁剪图像204回归3D面部网格210。3D面部网格210可包括与面部的3D结构以及面部的3D结构与UV面部位置映射图208和/或经裁剪图像204中的面部之间的密集对齐相关联的3D信息。确定面部的3D结构并执行密集对齐的一个解说性示例方式可以基于Feng、Yao等人在“Joint 3d face reconstruction and densealignment with position map regression network(利用位置映射图回归网络的联合3d面部重构和密集对齐)”,欧洲计算机视觉会议(ECCV)的会议录,2018(其出于所有目的通过援引全部纳入于此)中描述的位置映射图回归网络。
在一些示例中,图像处理系统100可以通过将空间坐标(例如,X坐标、Y坐标和Z坐标)指派给面部的3D模型的顶点来生成3D面部网格210。图像处理系统100可以填充连接特定和/或对应的顶点对和面对的边(例如,跨3D模型的对应的顶点或点的元组)。使用此类技术,图像处理系统100可以使用面部的2D表示(例如,经裁剪图像204和/或UV面部位置映射图208)来确定或回归面部的3D几何形状连同面部的3D几何形状与面部的2D表示之间的密集对应(例如,像素级对应/对齐),从而产生3D面部网格210。
随后,图像处理系统100可以估计与输入图像202中的面部的一个或多个区域和/或围绕面部的一个或多个区域相关联的深度信息212。例如,在一些情形中,图像处理系统100可以估计面部的前额区域、经裁剪图像204的背景区域(或其一部分)、头发区域、颈部区域、耳部区域等的深度。深度信息212可包括区域(例如,前额区域、背景区域、头发区域、颈部区域、耳部区域等)的深度。深度信息212可以在扩展3D面部网格210时实现从面部区域到其他区域(例如,前额区域、背景区域、头发区域等)的平滑过渡,如本文进一步描述的。
图像处理系统100可以使用深度信息212来生成经扩展3D面部网格214。经扩展3D面部网格214可以增广3D面部网格210中的面部数据以包括与面部的其他区域和/或围绕面部的其他区域(诸如举例而言,前额区域、头发区域、背景区域等)相关联的数据(例如,深度信息、纹理信息、形状/几何形状信息等)。在一些示例中,经扩展3D面部网格214可包括具有与深度信息212相关联的附加区域(例如,被扩展以包括附加区域)的3D面部网格210。例如,经扩展3D面部网格214可包括被增广(例如,扩展)以还包括前额区域、头发区域和背景区域的3D面部网格210。使用此类技术,经扩展3D面部网格214可以是与输入图像202中的主体以及背景的一部分(例如,其在主体后面)相关联的面部、前额、头发和背景区域的网格。在一些情形中,经扩展3D面部网格214可包括其他区域,诸如举例而言颈部区域、耳部区域等。
随后,图像处理系统100可基于经扩展3D面部网格214和输入图像202来生成输出图像216。在一些示例中,为了生成输出图像216,图像处理系统100可以将输入图像202映射到经扩展3D面部网格214上。在一些情形中,图像处理系统100可基于映射来旋转输入图像202中的面部(例如,在经扩展3D面部网格214中建模的面部)。例如,输出图像216可包括具有不同(例如,经旋转)头部姿势的来自输入图像202的人。在一个示例中,输出图像216可以描绘输入图像202中的人,其中人的面部旋转了某个量、方向、角度等。在一些情形中,图像处理系统100可以响应于接收到来自用户的指令系统100旋转面部的输入来旋转输入图像202中的面部。人的面部可以按需以任何特定的方向、角度等旋转,而不管输入图像202中的人的面部的姿势和/或角度。在一些示例中,除了包括经旋转面部之外或作为包括经旋转面部的替换,输出图像216可包括其他经旋转区域,诸如举例而言前额、头发和背景区域。例如,输出图像216可以描绘输入图像202中的人,其中人的面部、头发和前额区域被旋转。
在一些示例中,具有经旋转面部(和任何其他旋转区域)的输出图像216可被用于面部分析和/或训练面部分析模型,诸如一个或多个神经网络(例如,一个或多个CNN)。在一些情形中,图像处理系统100可以生成附加的面部图像样本(具有经旋转面部)以用作用于训练面部分析模型的训练图像。在一些示例中,输出图像216(以及如本文所述生成的任何其他输出图像)可被用作经增广面部数据以用于一个或多个应用(例如,面部识别、面部表情分类、头部姿势估计、计算机图形学、动画、XR、面部属性分析(诸如年龄、性别、和/或种族分类)、以及其他场景和应用)。
在一些情形中,上述深度信息212和经扩展3D面部网格214可以允许输出图像216看起来更真实(例如,更自然、更不虚假/合成)。在一些情形中,深度信息212和经扩展3D面部网格214可以允许某些信息(例如,标识面部、面部表情、一个或多个面部属性等的信息)被保存在输出图像216中。例如,当经扩展3D面部网格214被映射到输入图像202并且面部(和任何其他区域)如本文所述地被旋转时,深度信息212和经扩展3D面部网格214可以保留面部信息、细节和/或属性。
在一些示例中,为了确定深度信息212并生成经扩展3D面部网格214,图像处理系统100可以创建围绕3D面部网格210中的面部区域的数目为n群锚(例如,节点、点等)。图像处理系统100可基于锚群的位置及其到面部中心的相对距离来估计锚群的深度。在一些示例中,图像处理系统100可以创建五群锚,并且每群锚可具有160个锚点。在其他示例中,图像处理系统100可以创建多于或少于五群锚。在一些示例中,每群锚可具有多于或少于160个锚点。以下参照图3A和图3B描述了关于锚的使用的示例细节。
虽然图2是关于面部图像和面部旋转来描述的,但是其他示例可以涉及基于对象或动物的图像并根据系统流200来旋转对象或动物(或其一部分)。例如,在一些情形中,输入图像(例如,输入图像202)可包括对象(例如,设备、车辆、结构、建筑物、物品、装备件等)或动物的图像,并且对象或动物的图像可被用于导出对象或动物的UV位置映射图、3D网格模型和经扩展3D网格模型,其随后可被用于生成经旋转的对象或动物(或其一部分)的输出图像(例如,输出图像216)。应当理解,本文提供了面部图像和面部旋转作为用于解释目的的解说性示例。
图3A和3B是解说基于示例3D面部网格210生成的示例经扩展3D面部网格214的不同视图的示图。图3A解说了基于3D面部网格210生成的经扩展3D面部网格214的前视图,并且图3B解说了示例经扩展3D面部网格214的侧视图。
在一些示例中,通过使用3D面部网格210的面部区域302(例如,面部)中的锚点来估计背景区域304、前额区域306和头发区域308(和/或头部区域)中的锚点并且执行Delaunay三角剖分来对面部区域302、背景区域304、前额区域306和头发区域308中的锚点进行三角剖分,可以生成经扩展3D面部网格214。在图3A和3B的解说性示例中,经扩展3D面部网格214包括面部区域302、背景区域304、前额区域306和头发区域308中的Delaunay三角剖分310。Delaunay三角剖分310可被用于扩展背景区域304、前额区域306和头发区域308,并且生成经扩展3D面部网格214。经扩展3D面部网格214可包括使用Delaunay三角剖分310建模的面部区域302和背景区域304、前额区域306和头发区域308。
在一些示例中,第一群锚320(例如,群锚点)可以位于面部区域302的边界上。在一些示例中,其他锚群还可包括覆盖前额(例如,前额区域306)、耳部、颈部、背景(例如,背景区域304)和/或头发(和/或头部)区域(例如,头发区域308)的周围锚群。例如,第二群锚322、第三群锚324、第四群锚326和第五群锚328可包括覆盖背景区域304、前额区域306和头发区域308(和/或头部区域)的周围锚。
在一些情形中,第二群锚322可包括围绕面部区域302的边界并且位于面部区域302上的一个或多个点(诸如面部区域302的中心上的一个或多个点)的一个或多个距离内的锚点。在一些示例中,第二群锚322可包括位于面部区域302上的一个或多个点的一个或多个距离内的第一前额锚群330、位于面部区域302上的一个或多个点的一个或多个更大距离内的第二前额锚群332以及位于面部区域302上的一个或多个点的一个或多个甚至更大距离内的第三前额锚群334。
在一些情形中,第三群锚324可包括围绕面部区域302的边界并且位于面部区域302上的一个或多个点(例如,面部区域302的中心上的一个或多个点)的一个或多个距离内的锚点。与第二群锚322相比,第三群锚324可以距面部区域302上的一个或多个点更远地定位。
在一些情形中,第四群锚326可包括围绕面部区域302的边界并且位于面部区域302上的一个或多个点(例如,面部区域302的中心上的一个或多个点)的一个或多个距离内的锚点。与第二群锚322和第三群锚324相比,第四群锚326可以距面部区域302上的一个或多个点更远地定位。
在一些情形中,第五群锚328可包括围绕面部区域302的边界并且位于面部区域302上的一个或多个点(例如,面部区域302的中心上的一个或多个点)的一个或多个距离内的锚点。与第二群锚322、第三群锚324和第四群锚326相比,第五群锚326可以距面部区域302上的一个或多个点更远地定位。
图像处理系统100可以获得面部区域302的边界上的第一群锚320,并且选择面部区域302的边界上的数个锚。在一些情形中,图像处理系统100可以在面部区域的边界的每一侧(例如,顶部、底部、左侧和右侧)上选择数个锚点。在一些示例中,图像处理系统100可以在面部区域302的边界上均匀地选择数个锚点。例如,在一些情形中,图像处理系统100可以从面部区域302的每一侧(例如,顶部、底部、左侧、右侧)选择数目为n个锚点。
由于来自第一群锚320的锚点在面部(例如,面部区域302)上,因此图像处理系统100可以从3D面部网格210确定其对应的3D位置。在一些情形中,图像处理系统100可以使用第一群锚320来估计其他群锚(例如,第二群锚322、第三群锚324、第四群锚326、第五群锚328)及其在3D面部网格210和/或经扩展3D面部网格214中的对应3D位置。
在一些情形中,图像处理系统100可以估计前额区域306的深度以扩展前额区域306(和/或前额区域上的锚点)。在一些情形中,图像处理系统100可以将前额区域306的深度估计为“球”形的一部分。在其他情形中,图像处理系统100可以通过将3D面部网格210与4D头部模型结合来估计前额区域306的深度。在将3D面部网格210与4D头部模型结合的示例中,图像处理系统100可以解决线性最小二乘问题以近似头部的形状。
如先前提及的,在一些示例中,前额区域306可以被估计为球形。球旋转轴(例如,半径)可基于一组顶部或边界锚点来估计。前额区域306的深度可基于球形上的数个圆来估计。在一些情形中,前额区域306的深度可基于球形上的三个圆来估计。不同的圆可以代表球结构的不同切片或部分。在一些示例中,圆越远离表示前额区域306的球结构的中心,圆可以越小。在一些示例中,最大的圆可以对应于表示前额区域306的球结构的中心或中心部分。
在一些情形中,球结构的最大圆的半径可被用于估计3D面部网格210的面部区域302上的锚点。此外,球结构中的每个其他圆的半径可基于到3D面部网格210的距离和最大圆或不同圆的半径来估计。图4解说了用于估计前额区域306的深度的球结构的最大圆400的半径r的示例估计。在一些示例中,最大圆400的半径r可以表示3D面部网格210的面部区域302上的锚点的半径。
在图4中,圆400上的点402(A)、404(B)和406(D)是在3D面部网格210上(例如,在面部边界上)的锚点。点408(C)可以是点402(A)和404(B)的平均点。此外,点410(O)可以是圆400的中心。在一些示例中,圆400的半径r可基于如下式1-3来估计:
Figure BDA0003983485690000211
OC+CD=r 式(2)
Figure BDA0003983485690000212
在一些情形中,锚点402、404和406的深度可基于其位置和到面部区域中心的距离(例如,圆400的半径r)来估计。在一些示例中,可以均匀地选择球结构上的每个圆上的数个锚点。可以基于3D面部网格210的面部区域302上的顶部和底部顶点的距离来估计面部高度。在一些示例中,所估计的圆可以在3D面部网格210的面部区域302的顶部上彼此相隔n倍面部高度,其中n表示应用于面部高度值的乘数值(诸如0.1、0.2、0.5等),并且可以在不同示例中变化。例如,在一些情形中,所估计的圆可以在3D面部网格210的面部区域302的顶部上彼此相距0.1倍面部高度。
在一些示例中,第一圆半径r1可以通过将半径r乘以值x来估计,该值x可以是乘数值并且可以在不同示例中变化。例如,值x可基于用于计算所估计的圆的距离的乘数值n而变化,和/或可以与该乘数值n相关。为了解说,在一些情形中,值x可以是0.7,在该情形中,可以通过将半径r乘以0.7来估计第一圆半径r1。可以通过将半径r1乘以值x(例如,在先前的示例中为0.7)来估计第二半径r2。可以通过将半径r2乘以值x(例如,在先前的示例中为0.7)来估计第二半径r3。如果球结构包括附加圆,则可以类似地估计每个附加圆的附加半径。在一些情形中,可以均匀地选择[-75,75]度范围内的曲线上的锚点。
如先前解释的,在其他情形中,图像处理系统100可以通过将3D面部网格210与4D头部模型结合来估计前额区域306的深度。图5解说了可与3D面部网格210一起使用以估计前额区域306的深度的示例4D头部模型500。在一些示例中,4D头部模型500可以是3D形变模型(3DMM)。例如,4D头模型500可以是3DMM模型。
在一些示例中,可以针对具有3D面部网格210上(例如,被包括和/或捕捉)的对应锚点的每个锚群均匀地选择4D头部模型500上的数个锚点。可基于锚点与面部区域的中心的距离来选择针对每个锚群选择的4D头部模型500上的锚点,如下文进一步描述的。在一些示例中,具有3D面部网格210上的对应锚点的锚群可包括与第一群锚320和第二群锚322相对应的锚群。例如,给定第一群锚320和第二群锚322到面部区域的中心的距离比第三、第四和第五群锚(例如,分别为群324、326和328)的距离更近,第一群锚320和第二群锚322两者都可以在4D头部模型500和3D面部网格210内。
在一个解说性示例中,3DMM模型可被用于描述具有主成分分析(PCA)的3D面部空间。以下是可用于描述3D头部形状的示例式(4):
Figure BDA0003983485690000221
其中S是3D头部形状,
Figure BDA0003983485690000222
是平均面部形状,Aid是在具有中性表情的3D面部扫描上训练的特征向量(或主分量),αid是形状系数,Aexp是在表情和中性扫描之间的偏移上训练的特征向量,并且αexp是表情系数。3DMM头部形状可以利用弱透视投影来投影到图像平面上。以下示例式(5)和(6)可被用于计算经对齐的面部形状:
I=mPR(α,β,γ)S+t 式(5)
Figure BDA0003983485690000223
其中I是经对齐的面部形状,S是3D面部模型,R(α,β,γ)是具有α,β,γ旋转角度的3×3旋转矩阵,m是缩放参数,t是平移向量,并且P是弱透视变换。
在一些示例中,非刚性迭代最近点(NICP)配准可被应用于4D头部模型500的面部网格与经裁剪的平均面部之间。由于3D面部模型(例如,S或3D面部网格210)和4D头部模型500可具有不同数目的点,因此NICP可被用于将3D面部模型与4D头部模型500对齐。在B.Amberg、S.Romdhani和T.Vetter,“Optimal Step Nonrigid Icp Algorithms ForSurface Registration(用于表面配准的最佳步长非刚性Icp算法)”,计算机视觉和模式识别,2007,计算机视觉和模式识别会议(CVPR)(其通过援引且出于所有目的被全部纳入于此)中描述了可被应用的一个示例NICP配准。
前额区域306可以基于4D头部模型500来近似。例如,可以基于锚点与面部中心的距离针对前额区域306中的每个锚群(例如,第一前额锚群330、第二前额锚群332和第三前额锚群334)均匀地选择数个锚点。在一个解说性示例中,可以针对前额区域306中的每个锚群均匀地选择40个锚点。在其他示例中,可以针对前额区域306内的每个锚群选择多于或少于40个锚点。在一些情形中,不在头部和/或头发区域上的锚点(诸如面部区域的左侧、右侧和底部上(例如,在耳部和颈部区域上和/或周围)的锚点)可以不在3D面部模型(例如,3D面部网格210)上。随后可以通过基于来自前额区域306中的每个锚群的锚点的3D坐标对这些锚点进行三角剖分来近似前额区域306,如下文进一步描述的。
在一些示例中,为了平滑经扩展3D面部网格214,可以通过将最小面部轮廓点深度值分别乘以x、y和z乘数值来确定第二群锚322、第三群锚324和第四群锚326上的左侧、右侧和底部锚点的深度值,其中x大于y并且y大于z。例如,最小面部轮廓点深度值可以分别乘以0.9(例如,x)、0.8(例如,y)和0.7(例如,z)。在一些示例中,可以从第二群锚322、第三群锚324和第四群锚326中选择围绕面部的左侧、右侧和底部的数个锚点(例如,来自第二群锚322、第三群锚324和第四群锚326的左侧、右侧和底部锚点)(和/或围绕面部的左侧、右侧和底部的数个锚点被包括在第二群锚322、第三群锚324和第四群锚326中)。来自第二群锚点322、第三群锚点324和第四群锚点326的数个锚点(例如,左侧、右侧和底部锚点)的深度值可以通过乘以最小面部轮廓点深度值来确定,如上所述。
在一些情形中,第二群锚322的(X,Y)坐标可基于第一群锚320(例如,面部区域302的边界上的锚点)与所估计的2D面部中心之间的距离来计算。面部中心可以通过3D面部网格210的平均点来估计。第二群锚322上的(X,Y)坐标可基于面部中心与第一群锚320的距离来估计。在一些示例中,第二群锚322、第三群锚324和第四群锚326可以通过将第一群锚320与面部中心之间的距离乘以分别递增的值来分别估计。例如,第二群锚322、第三群锚324和第四群锚326可以通过将第一群锚320与面部中心之间的距离乘以1.1、1.3和1.5来估计。在一些情形中,可以在每个面部图像边界线(例如,面部模型的边界)上选择第五群锚328的数个锚点。
一旦确定了上述锚点的3D坐标,就可以基于这些锚点的3D坐标来扩展3D面部网格210。在一些示例中,可以执行Delaunay三角剖分以对锚点进行三角剖分并生成经扩展3D面部网格214。图6是解说用于对锚点进行三角剖分并生成经扩展3D面部网格214的示例Delaunay三角剖分600的示图。对于Delaunay三角剖分,Delaunay条件要求三角形的外接圆(例如,锚点的所有三角形)具有空的内部。当一组点位于同一条直线上时,不存在Delaunay三角剖分。另一方面,对于同一外接圆上的四个或更多个点(例如,矩形的顶点),Delaunay三角剖分不是唯一的,因为将四边形拆分成两个三角形的两个可能的三角剖分中的每一者都满足Delaunay条件。
在图6的示例中,Delaunay三角剖分600包括满足要求所有三角形的外接圆具有空的内部的Delaunay条件的Delaunay三角形604。即,没有点位于任何三角形外接圆的内部。例如,在Delaunay三角剖分600中,外接圆602包括三角形604的点606、608和610,其顶点对应于点606、608和610。然而,外接圆602不包括超过三角形604的3个点606、608和610。因此,由于没有附加的点(除了点606、608、610之外)位于外接圆602中,因此与点606、608和610相关联的三角形604的外接圆602满足Delaunay条件。因此,与点606、608和610相关联的三角形604是有效的Delaunay三角剖分。如果剩余三角形604的外接圆类似地满足Delaunay条件,则对于剩余三角形604存在有效的Delaunay三角剖分。
图7是解说3D面部网格210和/或经扩展3D面部网格214的示例元素的示图。在图7所示的示例中,元素702-710对应于多边形网格。在该示例中,多边形网格的元素702-710包括顶点702、边704、面706、多边形708和表面710。在其他示例中,多边形网格可以仅包括或存储顶点702、边704、以及面706、多边形708或表面710。
在某些情况下,渲染器可能仅支持三边面。因此,多边形可以由多个三边面构成。然而,在其他情形中,渲染器可以支持四边形和/或高边多边形,或者可以将多边形转换为三角形。因此,在一些情形中,网格可能不需要以三角形式存储。
每个顶点702可包括空间中(例如,3D空间中)的位置和诸如纹理坐标之类的其他信息。在一些情形中,每个顶点702还可以存储其他信息,诸如举例而言颜色信息、深度信息、向量坐标等。在3D面部网格210和经扩展3D面部网格214中,每个顶点可包括3D空间中的空间坐标(X,Y,Z)。
每个边704可以表示来自顶点702的两个顶点之间的连接。此外,面706中的面可包括闭合的边集合。例如,三角形面可包括三条边,四边形面可包括四条边,依此类推。每个多边形708可以是共面的面集合。在支持多边面的示例中,多边形和面可以是等价的。在渲染器可能仅支持3边面或4边面的其他情形中,多边形可以被表示为多个面。在一些情形中,多边形网格可以是具有几何、形状和拓扑的附加属性的非结构化网格或无向图。
表面710可以形成经建模对象,诸如与3D面部网格210相关联的3D面部结构。每个表面可包括一个或多个多边形。在一些情形中,表面可以是用于对经建模对象的平滑区域进行编群的平滑群。
图8解说了可被实现为UV位置映射图预测模型206的结构的一部分的示例残差块结构800。在一些示例中,UV位置映射图预测模型206可包括编码器-解码器结构,该编码器-解码器结构被实现为学习从输入图像202到UV面部位置映射图208的传递函数。在一些情形中,UV位置映射图预测模型206的编码器部分可以以卷积层开始,继之以残差块结构800。残差块结构800可包括多个残差块。在图8的解说性示例中,残差块结构800包括三个卷积层802、804和806。残差块结构800还可包括可用于激活的ReLU层808。
在一些示例中,卷积层802和卷积层806可包括1×1卷积层。此外,卷积层804可包括4×4卷积层。在一些示例中,UV位置映射图预测模型206的编码器部分可以将N×M×3的输入图像减小为更小的特征图。例如,UV位置映射图预测模型206的编码器部分可以将256×256×3的输入图像减小为8×8×512的特征图。
UV位置映射图预测模型206的解码器部分可包括数个转置卷积层,以生成经预测的N×M×3UV面部位置映射图,诸如256×256×3UV面部位置映射图。在一些示例中,某个核大小(诸如核大小4)可被用于卷积或转置卷积层。UV位置映射图预测模型206可以生成可包含3D信息和密集对齐结果的UV面部位置映射图208,如先前解释的。
下表1描绘了UV位置映射图预测模型206的示例编码器部分中的层的示例序列,并且表2描绘了UV位置映射图预测模型206的解码器部分中的层的示例序列。
表1.
Figure BDA0003983485690000251
Figure BDA0003983485690000261
表2.
输入 算子 通道 重复 核大小 步幅
8<sup>2</sup>x512 conv2d_transpose 512 1 4 1
16<sup>2</sup>x256 conv2d_transpose 256 1 4 2
16<sup>2</sup>x256 conv2d_transpose 256 1 4 1
16<sup>2</sup>x256 conv2d_transpose 256 1 4 1
32<sup>2</sup>x128 conv2d_transpose 128 1 4 2
32<sup>2</sup>x128 conv2d_transpose 128 1 4 1
32<sup>2</sup>x128 conv2d_transpose 128 1 4 1
64<sup>2</sup>x64 conv2d_transpose 64 1 4 2
64<sup>2</sup>x64 conv2d_transpose 64 1 4 1
64<sup>2</sup>x64 conv2d_transpose 64 1 4 1
128<sup>2</sup>x32 conv2d_transpose 32 1 4 2
128<sup>2</sup>x32 conv2d_transpose 32 1 4 1
256<sup>2</sup>x16 conv2d_transpose 16 1 4 2
256<sup>2</sup>x16 conv2d_transpose 16 1 4 1
256<sup>2</sup>x3 conv2d_transpose 3 2 4 1
256<sup>2</sup>x3 conv2d_transpose 3 1 4 1
图9解说了面部906的示例图像902和面部906旋转的示例生成图像904,如先前所描述的。在一些示例中,图像902可以是图2所示的系统流200的输入图像202的示例,并且所生成的图像904可以是系统流200的示例输出图像216。所生成的图像904可以通过扩展从图像902生成的3D面部网格(例如,3D面部网格214)并将经扩展3D面部网格映射到图像902来产生。
如图所示,通过扩展3D面部网格,所生成的经旋转面部图像(例如,图像904)可以看起来更真实和/或更自然。可以在经旋转的前额区域中精确地捕捉和/或表示所估计的前额区域。此外,头发区域和围绕面部的(诸)其他区域可有助于使经增广的面部看起来更真实。
图10是解说用于面部图像增广的示例过程1000的流程图。在一些示例中,过程1000可被用于基于原始面部图像来生成具有经旋转面部的面部图像。在框1002,过程1000可包括获得捕捉用户的面部的第一图像(例如,输入图像202)。在一些示例中,用户的面部可包括某个头部姿势、表情和/或面部属性。此外,第一图像可包括围绕面部的至少一部分的背景。
在框1004,过程1000可包括基于第一图像并使用预测模型(例如,UV位置映射图预测模型206)来确定包括面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图(例如,UV面部位置映射图208)。在一些示例中,预测模型可包括卷积神经网络(CNN)。一些情形中,可以基于第一图像的经裁剪版本来确定UV面部位置映射图。例如,在一些情形中,过程1000可包括(例如,经由面部检测)检测第一图像中的面部区域,以及通过移除第一图像中除该面部区域之外的一个或多个其他部分来将第一图像裁剪为包括该面部区域。随后,过程1000可基于经裁剪的第一图像来确定UV面部位置映射图。面部区域可包括用户的面部。在一些示例中,面部区域可包括围绕用户的面部的边界框(例如,边界框220)内的区域。在一些情形中,边界框内的区域可包括用户的面部和一个或多个周围区域,诸如举例而言头发区域、颈部区域、耳部区域、肩部区域、背景区域等。
在一些情形中,UV面部位置映射图可以记录面部在UV空间中的3D结构。此外,在一些情形中,UV面部位置映射图可被投影到色彩图像空间上。在一些示例中,UV面部位置映射图中的颜色通道可包括UV面部位置映射图中的各点的3D位置。3D位置可包括面部的3D结构中的3D坐标。
在框1006,过程1000可包括基于该UV面部位置映射图来生成面部的3D模型(例如,3D面部网格210)。在一些情形中,生成面部的3D模型可包括将UV面部位置映射图投影到3D空间。在一些示例中,3D模型可包括包含由边和面连接的顶点的3D面部网格。在一些情形中,可以通过将3D坐标指派给顶点来生成3D面部网格。3D坐标可以对应于面部的3D结构和UV面部位置映射图中的对应点(例如,对应于或映射到3D坐标的点)。
在框1008,过程1000可包括生成面部的经扩展3D模型(例如,经扩展3D面部网格214)。在一些情形中,可以通过将面部的3D模型扩展为包括超出面部的3D模型的边界(例如,超出包括在3D面部网格210中的面部区域302(或面部区域302的轮廓)或在该面部区域302之外,超出包括在3D面部网格210中的背景区域(或背景区域的轮廓)或在该背景区域之外)的一个或多个区域(例如,背景区域304、前额区域306、头发区域308等)来生成经扩展3D模型。在一些示例中,该一个或多个区域可包括前额区域(例如,前额区域306)和/或围绕面部的至少一部分的区域。在一些情形中,围绕面部的至少一部分的区域可包括头发和/或头部区域(例如,头发区域308)、背景区域(例如,背景区域304)、颈部区域和/或耳部区域。
在框1010,过程1000可包括基于面部的经扩展3D模型来生成第二图像(例如,输出图像216),该第二图像描绘了相对于该面部在第一图像中的位置处于经旋转的位置的面部。在一些示例中,面部可以相对于面部在第一图像中的位置以不同的方向和/或角度旋转。在一些示例中,经旋转位置可包括不同的头部姿势。在一些情形中,生成第二图像可包括:将第一图像映射到经扩展3D模型;以及在将第一图像映射到经扩展3D模型时旋转面部。该面部按经旋转位置旋转。
在一些情形中,可以基于与前额区域和/或围绕面部的至少一部分的区域相关联的深度信息(例如,深度信息212)来生成经扩展3D模型。在一些示例中,深度信息可包括前额区域的第一深度和/或围绕面部的至少一部分的区域的第二深度。在一些方面,过程1000可包括确定深度信息。
在一些情形中,确定深度信息可包括估计面部区域上的第一群锚点(例如,第一群锚点320)和前额区域上和/或包括在前额区域中的第二群锚点(例如,第二群锚点322)的深度。在一些情形中,确定深度信息还可包括估计围绕面部的至少一部分的一个或多个区域上的第三群锚点(例如,第三群锚点324)、第四群锚点(例如,第四群锚点326)和/或第五群锚点(例如,第五群锚点328)的深度。在一些情形中,锚点的深度是基于该锚点在3D模型内的第一位置和该锚点到面部上的第二位置(诸如面部上的点、面部的中心和/或面部上的任何其他位置)的距离来估计的。
在一些示例中,可以基于第一群锚点(例如,第一群锚320)的3D坐标来估计第二群锚点(例如,第二群锚322)和/或第三群锚点(例如,第三群锚324)。在一些示例中,生成经扩展3D模型可包括对第一群锚点以及第二群锚点和/或第三群锚点进行三角剖分。
在一些方面,估计前额区域的第一深度可包括估计与前额区域相对应的前额形状,确定该前额形状内的一组不同圆,以及基于该组不同圆中的每个圆(例如,圆400)的相应半径来估计该前额区域的第一深度。在一些情形中,前额形状可以被计算为球形。在一些示例中,可以如先前关于图4所描述地计算前额区域的第一深度和/或每个圆的半径。在一些情形中,一个或多个圆的半径可以使用如先前描述的式1-3来计算。
一些方面,估计前额区域的第一深度可以基于面部的3D模型和描述头部的3D形状的3D形变头部模型(例如,4D头部模型500)。
虽然过程1000是关于面部图像和面部旋转来描述的,但是其他示例可以涉及基于对象或动物的图像并根据过程1000来旋转对象或动物(或其一部分)。例如,在一些情形中,输入图像可包括对象(例如,设备、车辆、结构、建筑物、物品、装备件等)或动物的图像,并且对象或动物的图像可被用于导出对象或动物的UV位置映射图、3D网格模型和经扩展3D网格模型,其随后可被用于生成经旋转的对象或动物的输出图像。应当理解,本文提供了面部图像和面部旋转作为用于解释目的的解说性示例。此外,应理解,以上关于图1至9描述的技术和技艺还可应用于基于对象或动物的图像的对象或动物(或其一部分)的旋转。
在一些示例中,本文所描述的过程(例如,过程200、1000和/或本文所描述的任何其他过程)可以由计算设备或装置来执行。在一个示例中,过程1000可由图1的图像处理系统100来执行。在另一示例中,过程1000可以由具有图11中所示的计算设备架构1100的计算系统来执行。例如,具有图11中所示的计算设备架构1100的计算设备可以实现图10的操作和/或本文中关于图1至9中的任一者描述的组件和/或操作。
计算设备可包括任何合适的设备,诸如移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,VR头戴式耳机、AR头戴式耳机、AR眼镜、联网手表或智能手表或其他可穿戴设备)、服务器计算机、自主车辆或自主车辆的计算设备、机器人设备、膝上型计算机、智能电视、相机和/或具有用于执行本文所描述的过程(包括过程200、1000和/或本文所描述的任何其他过程)的资源能力的任何其他计算设备。在一些情形中,计算设备或装置可包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或被配置成执行本文所描述的过程的各步骤的(诸)其他组件。在一些示例中,计算设备可包括显示器、被配置成传达和/或接收数据的网络接口、其任何组合和/或(诸)其他组件。网络接口可被配置成传达和/或接收基于网际协议(IP)的数据或其他类型的数据。
计算设备的各组件可用电路系统来实现。例如,各组件可包括和/或可使用电子电路或其他电子硬件(其可包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路))来实现,和/或可包括和/或可使用计算机软件、固件、或其任何组合来实现,以执行本文描述的各种操作。
过程200和1000被解说为逻辑流程图,该逻辑流程图的操作表示能够以硬件、计算机指令、或其组合来实现的操作序列。在计算机指令的上下文中,各操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所叙述的操作。一般来说,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述各操作的顺序并不旨在被理解为是限制,并且任何数目的所描述的操作可以按任何顺序被组合和/或并行进行以实现各过程。
附加地,过程200、1000和/或本文所描述的其他过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可被实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用)、由硬件或其组合来执行。如以上所提及的,代码可以被存储在计算机可读或机器可读存储介质上,例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非瞬态的。
图11解说了可实现本文所描述的各种技术的示例计算设备的示例计算设备架构1100。例如,计算设备架构1100可实现图1所示的图像处理系统100的至少一些部分。计算设备架构1100的各组件被示为使用连接1105(诸如总线)彼此处于电通信。示例计算设备架构1100包括处理单元(CPU或处理器)1110以及将包括计算设备存储器1115(诸如只读存储器(ROM)1120和随机存取存储器(RAM)1125)的各种计算设备组件耦合到处理器1110的计算设备连接1105。
计算设备架构1100可包括与处理器1110直接连接、紧邻处理器1110、或集成为处理器1110的一部分的高速存储器的高速缓存。计算设备架构1100可将来自存储器1115和/或存储设备1130的数据复制到高速缓存1112以供处理器1110快速访问。以此方式,高速缓存可提供性能助推,这避免处理器1110在等待数据的同时发生延迟。这些和其他模块可控制或被配置成控制处理器1110执行各种动作。其他计算设备存储器1115也可供使用。存储器1115可包括具有不同性能特性的多种不同类型的存储器。处理器1110可包括任何通用处理器和存储在存储设备1130中且被配置成控制处理器1110的硬件或软件服务(例如,服务11132、服务2 1134和服务3 1136)、以及专用处理器(其中软件指令被纳入处理器设计中)。处理器1110可以是自包含系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
为了实现与计算设备架构1100的用户交互,输入设备1145可表示任何数目的输入机构,诸如用于语音的话筒、用于姿势或图形输入的触敏屏、键盘、鼠标、运动输入、语音等等。输出设备1135也可以是本领域技术人员已知的多种输出机构中的一种或多种,诸如显示器、投影仪、电视机、扬声器设备。在一些实例中,多模态计算设备可使得用户能够提供多种类型的输入以与计算设备架构1100通信。通信接口1140可一般地管控和管理用户输入和计算设备输出。对在任何特定硬件布置上进行操作不存在任何限制,并且因此可以容易地替换此处的基础特征以随着它们被开发而获得改进的硬件或固件布置。
存储设备1130是非易失性存储器,并且可以是硬盘或可存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带、闪存卡、固态存储器设备、数字多功能盘、盒式磁盘、随机存取存储器(RAM)1125、只读存储器(ROM)1120、或其混合物。存储设备1130可包括用于控制处理器1110的服务1132、服务1134和服务1136。构想了其他硬件或软件模块。存储设备1130可连接到计算设备连接1105。在一方面,执行特定功能的硬件模块可包括存储在与必要的硬件组件(诸如处理器1110、连接1105、输出设备1135等)连接的计算机可读介质中的软件组件以执行功能。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备、以及能够存储、包含或携带(诸)指令和/或数据的各种其他介质。计算机可读介质可包括其中可存储数据并且不包括载波和/或无线地或通过有线连接传播的瞬态电子信号的非瞬态介质。非瞬态介质的示例可包括但不限于,磁盘或磁带、光学存储介质(诸如紧致盘(CD)或数字多功能(DVD))、闪存、存储器或存储器设备。计算机可读介质可具有存储于其上的代码和/或机器可执行指令,它们可表示规程、功能、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。可通过传递和/或接收信息、数据、自变量、参数或存储器内容来将代码段耦合至另一代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段来传递、转发或传送,这些手段包括存储器共享、消息传递、令牌传递、网络传输等。
在一些实施例中,计算机可读存储设备、介质和存储器可包括包含比特流等的线缆或无线信号。然而,在被提及时,非瞬态计算机可读存储介质明确排除诸如能量、载波信号、电磁波以及信号本身等介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的详尽理解。然而,本领域普通技术人员将理解,没有这些具体细节也可以实践这些实施例。为了清楚说明,在一些实例中,本发明的技术可以被呈现为包括各个功能框,它们包括设备、设备组件、以软件或者硬件和软件的组合实施的方法中的步骤或例程。可使用除了附图中示出和/或本文所描述的那些组件之外的附加组件。例如,电路、系统、网络、过程和其他组件可以用框图形式示为组件以避免使这些实施例湮没在不必要的细节中。在其他实例中,可以在没有必要的细节的情况下示出公知的电路、过程、算法、结构和技术以避免混淆各实施例。
各个实施例在上文可被描述为过程或方法,该过程或方法被描绘为流程图、流程图示、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但很多操作可以并行地或并发地执行。另外,可以重新排列操作的次序。当过程的操作完成时过程被终结,但是过程可具有附图中未包括的附加步骤。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。
根据上述示例的过程和方法可使用被存储的计算机可执行指令或以其他方式从计算机可读介质可用的计算机可执行指令来实现。这些指令可包括例如致使或以其他方式将通用计算机、专用计算机或处理设备配置成执行某一功能或功能群的指令和数据。所使用的计算机资源的各部分可通过网络访问。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件、源代码。可用于存储指令、在根据所描述的示例的方法期间所使用的信息和/或所创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、经联网存储设备等。
实现根据这些公开的各种过程和方法的设备可包括硬件、软件、固件、中间件、微代码、硬件描述语言、或其任何组合,并且可采用各种形状因子中的任一者。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可被存储在计算机可读或机器可读介质中。处理器可执行必要任务。各形状因子的典型示例包括:膝上型计算机、智能电话、移动电话、平板设备、或其他小形状因子的个人计算机、个人数字助理、机架式设备、自立设备等。本文描述的功能性还可用外围设备或插卡来实施。作为进一步的示例,此类功能性还可被实现在在单个设备上执行的不同芯片或不同过程之中的电路板上。
指令、用于传达这些指令的介质、用于执行它们的计算资源、以及用于支持此类计算资源的其他结构是用于提供本公开中所描述的功能的示例装置。
在上述描述中,本申请的各方面参考其特定实施例来描述,但是本领域技术人员将认识到本申请不限于此。因而,尽管本申请的解说性实施例已经在本文中详细描述,但是要理解,各个发明概念可以以其他各种方式被实施和采用,并且所附权利要求书不旨在被解释为包括这些变型,除非受到现有技术的限制。可以单独或联合地使用上述申请的各种特征和方面。此外,各实施例可以在超出本文所描述的那些环境和应用的任何数目的环境和应用中来利用而不背离本说明书的更宽泛的精神和范围。相应地,本说明书和附图应被认为是解说性的而非限定性的。出于解说的目的,按照特定顺序来描述各方法。应当领会,在替换实施例中,各方法可以按与所描述的不同顺序来执行。
本领域普通技术人员将领会,本文所使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于等于(“≤”)和大于等于(“≤”)符号来代替而不背离本说明书的范围。
在各组件被描述为“被配置成”执行某些操作的情况下,可例如通过设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如,微处理器、或其他合适的电子电路)进行编程、或其任何组合来实现此类配置。
短语“耦合至”指的是任何组件直接或间接地物理连接到另一组件,和/或任何组件直接或间接地与另一组件处于通信(例如,通过有线或无线连接和/或其他合适的通信接口连接到该另一组件)。
权利要求语言或叙述集合中的“至少一者”和/或集合中的“一者或多者”的其他语言指示该集合中的一个成员或该集合中的多个成员(以任何组合)满足该权利要求。例如,叙述“A和B中的至少一者”或“A或B中的至少一者”的权利要求语言意指A、B或者A和B。在另一示例中,叙述“A、B和C中的至少一者”或“A、B或C中的至少一者”的权利要求语言意指A、B、C、或A和B、或A和C、或B和C、或A和B和C。集合“中的至少一者”和/或集合“中的一者或多者”的语言并不将该集合限于该集合中所列举的项目。例如,叙述“A和B中的至少一者”或“A或B中的至少一者”的权利要求语言可以意指A、B或A和B,并且可附加地包括未在A和B的集合中列举的项目。
结合本文公开的示例所描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、固件、或其组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本申请的范围。
本文所描述的技术还可用电子硬件、计算机软件、固件、或其任何组合来实现。这些技术可以用各种设备中的任一种来实现,诸如通用计算机、无线通信设备手持机、或具有多种用途的集成电路设备,这些用途包括无线通信设备手持机和其他设备中的应用。被描述为模块或组件的任何特征可以一起被实现在集成逻辑器件中或被单独实现为分立但可相互操作的逻辑器件。如果以软件来实现,则这些技术可以至少部分地由包括程序代码的计算机可读数据存储介质来实现,这些程序代码包括指令,这些指令在被执行时执行上述方法、算法、和/或操作中的一者或多者。计算机可读数据存储介质可形成计算机程序产品的一部分,其可包括封装材料。计算机可读介质可包括存储器或数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等等。这些技术附加地或替换地可至少部分地由携带或传达指令或数据结构形式的程序代码的计算机可读通信介质来实现,这些指令或数据结构可由计算机访问、读取、和/或执行,诸如传播的信号或波。
程序代码可由处理器执行,该处理器可包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或分立逻辑电路系统。此类处理器可被配置成执行本公开中所描述的任何技术。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如,DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其他此类配置。相应地,如本文所使用的术语“处理器”可以指任何上述结构、上述结构的任何组合、或适于实现本文所描述的技术的任何其他结构或装置。

Claims (29)

1.一种装置,包括:
存储器;以及
耦合至所述存储器的一个或多个处理器,所述一个或多个处理器被配置成:
获得捕捉用户的面部的第一图像;
基于所述第一图像,使用预测模型来确定包括所述面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;
基于所述UV面部位置映射图来生成所述面部的3D模型;
通过将所述面部的所述3D模型扩展为包括超出所述面部的所述3D模型的边界的一个或多个区域来生成所述面部的经扩展3D模型,所述一个或多个区域包括前额区域和围绕所述面部的至少一部分的区域中的至少一者;以及
基于所述面部的所述经扩展3D模型来生成第二图像,所述第二图像描绘了相对于所述面部在所述第一图像中的位置处于经旋转位置的所述面部。
2.如权利要求1所述的装置,所述一个或多个处理器被配置成:
检测所述第一图像中的面部区域,所述面部区域包括所述用户的所述面部;
通过移除所述第一图像中除所述面部区域之外的一个或多个其他部分来将所述第一图像裁剪为包括所述面部区域;并且
其中确定所述UV面部位置映射图基于经裁剪的第一图像。
3.如权利要求1所述的装置,其中所述预测模型包括卷积神经网络(CNN),并且其中所述UV面部位置映射图记录所述面部在UV空间中的所述3D结构。
4.如权利要求1所述的装置,其中所述UV面部位置映射图被投影到色彩图像空间上,其中所述UV面部位置映射图中的颜色通道包括所述UV面部位置映射图中的点的3D位置,并且其中所述3D位置包括所述面部的所述3D结构中的3D坐标。
5.如权利要求1所述的装置,其中生成所述面部的所述3D模型包括将所述UV面部位置映射图投影到3D空间。
6.如权利要求5所述的装置,其中所述3D模型包括3D面部网格,所述3D面部网格包括由边和面连接的顶点,并且其中所述3D面部网格是通过向所述顶点指派3D坐标来生成的,所述3D坐标对应于所述面部的所述3D结构和所述UV面部位置映射图中的对应点。
7.如权利要求1所述的装置,所述一个或多个处理器被配置成:
确定与所述前额区域和围绕所述面部的至少一部分的所述区域相关联的深度信息,其中所述深度信息包括所述前额区域的第一深度和围绕所述面部的至少一部分的所述区域的第二深度中的至少一者,并且其中所述经扩展3D模型是基于所述深度信息来生成的。
8.如权利要求7所述的装置,其中确定所述深度信息包括:
估计面部区域上的第一群锚点、以及所述前额区域上的第二群锚点和围绕所述面部的至少一部分的所述区域上的第三群锚点中的至少一者的深度,其中锚点的深度是基于所述锚点在所述3D模型内的第一位置和所述锚点到所述面部上的第二位置的距离来估计的。
9.如权利要求8所述的装置,其中所述第二群锚点和所述第三群锚点中的至少一者是基于所述第一群锚点的3D坐标来估计的,并且其中生成所述经扩展3D模型包括对所述第一群锚点以及所述第二群锚点和所述第三群锚点中的至少一者进行三角剖分。
10.如权利要求8所述的装置,所述一个或多个处理器被配置成通过以下操作来估计所述前额区域的所述第一深度:
估计与所述前额区域相对应的前额形状;
确定所述前额形状内的一组不同圆;以及
基于所述组不同圆中的每个圆的相应半径来估计所述前额区域的所述第一深度。
11.如权利要求8所述的装置,所述一个或多个处理器被配置成基于所述面部的所述3D模型和描述头部的3D形状的3D形变头部模型来估计所述前额区域的所述第一深度。
12.如权利要求1所述的装置,其中围绕所述面部的至少一部分的所述区域包括所述第一图像的背景区域、头发区域、颈部区域和耳部区域中的至少一者。
13.如权利要求1所述的装置,其中生成所述第二图像包括:
将所述第一图像映射到所述经扩展3D模型;以及
在将所述第一图像映射到所述经扩展3D模型时旋转所述面部,所述面部按所述经旋转位置旋转。
14.如权利要求1所述的装置,其中所述装置包括移动设备。
15.如权利要求1所述的装置,其中所述装置包括相机设备。
16.一种方法,包括:
获得捕捉用户的面部的第一图像;
基于所述第一图像,使用预测模型来确定包括所述面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;
基于所述UV面部位置映射图来生成所述面部的3D模型;
通过将所述面部的所述3D模型扩展为包括超出所述面部的所述3D模型的边界的一个或多个区域来生成所述面部的经扩展3D模型,所述一个或多个区域包括前额区域和围绕所述面部的至少一部分的区域中的至少一者;以及
基于所述面部的所述经扩展3D模型来生成第二图像,所述第二图像描绘了相对于所述面部在所述第一图像中的位置处于经旋转位置的所述面部。
17.如权利要求16所述的方法,进一步包括:
检测所述第一图像中的面部区域,所述面部区域包括所述用户的所述面部;
通过移除所述第一图像中除所述面部区域之外的一个或多个其他部分来将所述第一图像裁剪为包括所述面部区域;并且
其中确定所述UV面部位置映射图基于经裁剪的第一图像。
18.如权利要求16所述的方法,其中所述预测模型包括卷积神经网络(CNN),并且其中所述UV面部位置映射图记录所述面部在UV空间中的所述3D结构。
19.如权利要求16所述的方法,其中所述UV面部位置映射图被投影到色彩图像空间上,其中所述UV面部位置映射图中的颜色通道包括所述UV面部位置映射图中的点的3D位置,并且其中所述3D位置包括所述面部的所述3D结构中的3D坐标。
20.如权利要求16所述的方法,其中生成所述面部的所述3D模型包括将所述UV面部位置映射图投影到3D空间。
21.如权利要求20所述的方法,其中所述3D模型包括3D面部网格,所述3D面部网格包括由边和面连接的顶点,并且其中所述3D面部网格是通过向所述顶点指派3D坐标来生成的,所述3D坐标对应于所述面部的所述3D结构和所述UV面部位置映射图中的对应点。
22.如权利要求16所述的方法,进一步包括:
确定与所述前额区域和围绕所述面部的至少一部分的所述区域相关联的深度信息,其中所述深度信息包括所述前额区域的第一深度和围绕所述面部的至少一部分的所述区域的第二深度中的至少一者,并且其中所述经扩展3D模型是基于所述深度信息来生成的。
23.如权利要求22所述的方法,其中确定所述深度信息包括:
估计面部区域上的第一群锚点、以及所述前额区域上的第二群锚点和围绕所述面部的至少一部分的所述区域上的第三群锚点中的至少一者的深度,其中锚点的深度是基于所述锚点在所述3D模型内的第一位置和所述锚点到所述面部上的第二位置的距离来估计的。
24.如权利要求23所述的方法,其中所述第二群锚点和所述第三群锚点中的至少一者是基于所述第一群锚点的3D坐标来估计的,并且其中生成所述经扩展3D模型包括对所述第一群锚点以及所述第二群锚点和所述第三群锚点中的至少一者进行三角剖分。
25.如权利要求23所述的方法,进一步包括通过以下操作来估计所述前额区域的所述第一深度:
估计与所述前额区域相对应的前额形状;
确定所述前额形状内的一组不同圆;以及
基于所述组不同圆中的每个圆的相应半径来估计所述前额区域的所述第一深度。
26.如权利要求23所述的方法,进一步包括:基于所述面部的所述3D模型和描述头部的3D形状的3D形变头部模型来估计所述前额区域的所述第一深度。
27.如权利要求16所述的方法,其中围绕所述面部的至少一部分的所述区域包括所述第一图像的背景区域、头发区域、颈部区域和耳部区域中的至少一者。
28.如权利要求16所述的方法,其中生成所述第二图像包括:
将所述第一图像映射到所述经扩展3D模型;以及
在将所述第一图像映射到所述经扩展3D模型时旋转所述面部,所述面部按所述经旋转位置旋转。
29.一种其上存储有指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:
获得捕捉用户的面部的第一图像;
基于所述第一图像,使用预测模型来确定包括所述面部的三维(3D)结构的二维(2D)表示的UV面部位置映射图;
基于所述UV面部位置映射图来生成所述面部的3D模型;
通过将所述面部的所述3D模型扩展为包括超出所述面部的所述3D模型的边界的一个或多个区域来生成所述面部的经扩展3D模型,所述一个或多个区域包括前额区域和围绕所述面部的至少一部分的区域中的至少一者;以及
基于所述面部的所述经扩展3D模型来生成第二图像,所述第二图像描绘了相对于所述面部在所述第一图像中的位置处于经旋转位置的所述面部。
CN202180040851.7A 2020-06-13 2021-05-17 用于分析的图像增广的方法和装置 Active CN115699114B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063038808P 2020-06-13 2020-06-13
US63/038,808 2020-06-13
US17/109,045 US11386633B2 (en) 2020-06-13 2020-12-01 Image augmentation for analytics
US17/109,045 2020-12-01
PCT/US2021/032705 WO2021252145A1 (en) 2020-06-13 2021-05-17 Image augmentation for analytics

Publications (2)

Publication Number Publication Date
CN115699114A true CN115699114A (zh) 2023-02-03
CN115699114B CN115699114B (zh) 2023-10-20

Family

ID=78825811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180040851.7A Active CN115699114B (zh) 2020-06-13 2021-05-17 用于分析的图像增广的方法和装置

Country Status (4)

Country Link
US (1) US11386633B2 (zh)
EP (1) EP4165547A1 (zh)
CN (1) CN115699114B (zh)
WO (1) WO2021252145A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902618B2 (en) 2019-06-14 2021-01-26 Electronic Arts Inc. Universal body movement translation and character rendering system
US11504625B2 (en) 2020-02-14 2022-11-22 Electronic Arts Inc. Color blindness diagnostic system
US11232621B2 (en) 2020-04-06 2022-01-25 Electronic Arts Inc. Enhanced animation generation based on conditional modeling
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
US12072419B2 (en) * 2020-12-17 2024-08-27 Gm Cruise Holdings Llc Procedurally generated three-dimensional environment for use in autonomous vehicle simulations
EP4278332A1 (en) * 2021-01-15 2023-11-22 Promptu Systems Corporation Systems and methods for extracting headshots from images
US11587288B2 (en) * 2021-03-15 2023-02-21 Tencent America LLC Methods and systems for constructing facial position map
US12111880B2 (en) * 2021-05-20 2024-10-08 Disney Enterprises, Inc. Face swapping with neural network-based geometry refining
EP4349019A1 (en) * 2021-05-25 2024-04-10 Yoom.Com Ltd. Volumetric video in web browser
US11887232B2 (en) * 2021-06-10 2024-01-30 Electronic Arts Inc. Enhanced system for generation of facial models and animation
US20230260184A1 (en) * 2022-02-17 2023-08-17 Zoom Video Communications, Inc. Facial expression identification and retargeting to an avatar
CN115019021A (zh) * 2022-06-02 2022-09-06 北京字跳网络技术有限公司 图像处理方法、装置、设备及存储介质
US12051168B2 (en) * 2022-09-15 2024-07-30 Lemon Inc. Avatar generation based on driving views

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430218A (zh) * 2011-03-21 2013-12-04 英特尔公司 用3d脸部建模和地标对齐扩增造型的方法
CN107506714A (zh) * 2017-08-16 2017-12-22 成都品果科技有限公司 一种人脸图像重光照的方法
CN107636534A (zh) * 2015-09-16 2018-01-26 谷歌有限责任公司 一般球面捕获方法
US20180137644A1 (en) * 2016-11-11 2018-05-17 Qualcomm Incorporated Methods and systems of performing object pose estimation
US20190122376A1 (en) * 2017-10-20 2019-04-25 Arcsoft (Hangzhou) Multimedia Technology Co., Ltd. Method and device for image processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018007721T5 (de) 2018-06-14 2021-04-01 Intel Corporation Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze
US10991145B2 (en) * 2018-11-13 2021-04-27 Nec Corporation Pose-variant 3D facial attribute generation
CN109978989B (zh) * 2019-02-26 2023-08-01 腾讯科技(深圳)有限公司 三维人脸模型生成方法、装置、计算机设备及存储介质
US20210358193A1 (en) * 2020-05-12 2021-11-18 True Meeting Inc. Generating an image from a certain viewpoint of a 3d object using a compact 3d model of the 3d object

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430218A (zh) * 2011-03-21 2013-12-04 英特尔公司 用3d脸部建模和地标对齐扩增造型的方法
CN107636534A (zh) * 2015-09-16 2018-01-26 谷歌有限责任公司 一般球面捕获方法
US20180137644A1 (en) * 2016-11-11 2018-05-17 Qualcomm Incorporated Methods and systems of performing object pose estimation
CN107506714A (zh) * 2017-08-16 2017-12-22 成都品果科技有限公司 一种人脸图像重光照的方法
US20190122376A1 (en) * 2017-10-20 2019-04-25 Arcsoft (Hangzhou) Multimedia Technology Co., Ltd. Method and device for image processing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FENG YAO ET AL.: "《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》" *

Also Published As

Publication number Publication date
US20210390789A1 (en) 2021-12-16
CN115699114B (zh) 2023-10-20
WO2021252145A1 (en) 2021-12-16
EP4165547A1 (en) 2023-04-19
US11386633B2 (en) 2022-07-12

Similar Documents

Publication Publication Date Title
CN115699114B (zh) 用于分析的图像增广的方法和装置
CN111656407B (zh) 对动态三维模型的视图进行融合、纹理化和绘制
KR102697772B1 (ko) 메시징 시스템 내의 3d 데이터를 포함하는 증강 현실 콘텐츠 생성기들
US20170069124A1 (en) Avatar generation and animations
US11615587B2 (en) Object reconstruction with texture parsing
US11748913B2 (en) Modeling objects from monocular camera outputs
EP3533218B1 (en) Simulating depth of field
US11514658B2 (en) Enhancing three-dimensional models using multi-view refinement
US11354860B1 (en) Object reconstruction using media data
US11682234B2 (en) Texture map generation using multi-viewpoint color images
CN109002185B (zh) 一种三维动画处理的方法、装置、设备及存储介质
US12086931B2 (en) Methods of 3D clothed human reconstruction and animation from monocular image
US12062130B2 (en) Object reconstruction using media data
US11769263B2 (en) Three-dimensional scan registration with deformable models
WO2023097576A1 (en) Segmentation with monocular depth estimation
US20240281990A1 (en) Object count using monocular three-dimensional (3d) perception
US20230144458A1 (en) Estimating facial expressions using facial landmarks
EP4388499A1 (en) Object reconstruction using media data
Chang et al. Montage4D: Real-time Seamless Fusion and Stylization of Multiview Video Textures
Wang Scene Lighting Estimation for Augmented reality with Neural Models

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