CN116648733A - 用于从面部图像提取颜色的方法和系统 - Google Patents

用于从面部图像提取颜色的方法和系统 Download PDF

Info

Publication number
CN116648733A
CN116648733A CN202280008265.9A CN202280008265A CN116648733A CN 116648733 A CN116648733 A CN 116648733A CN 202280008265 A CN202280008265 A CN 202280008265A CN 116648733 A CN116648733 A CN 116648733A
Authority
CN
China
Prior art keywords
color
keypoints
value
face
facial
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
CN202280008265.9A
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.)
Tencent America LLC
Original Assignee
Tencent America 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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN116648733A publication Critical patent/CN116648733A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • 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/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/162Detection; Localisation; Normalisation using pixel segmentation or colour matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • 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
    • 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/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • 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/20081Training; Learning
    • 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/20212Image combination
    • G06T2207/20216Image averaging
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Ophthalmology & Optometry (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

一种电子装置,执行从对象(例如,现实生活中的人)的二维(2D)面部图像提取颜色的方法,该方法包括:基于关键点预测模型,识别2D面部图像中的多个关键点;旋转2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐;在旋转后的2D面部图像中定位多个部分,每个部分由所识别的多个关键点的相应子集限定;根据2D面部图像的像素值提取多个部分中的每个部分的颜色;以及使用所提取的颜色,生成现实生活中的人的三维(3D)模型,3D模型与2D面部图像的相应面部特征颜色相匹配。

Description

用于从面部图像提取颜色的方法和系统
相关申请的交叉引用
本申请是于2021年3月15日提交的、题为“METHODS AND SYSTEMS FOR EXTRACTINGCOLOR FROM FACIAL IMAGE(用于从面部图像提取颜色的方法和系统)”的第17/202,116号美国专利申请的接续申请,并要求该美国专利申请的优先权,该美国专利申请通过引用整体并入本文中。
技术领域
本公开总体上涉及图像技术,具体地涉及图像处理和头部/面部模型形成方法和系统。
背景技术
具有多个传感器(例如多视角相机,深度传感器等)的商业化面部捕捉系统用于获得具有或不具有明确标志的人的精确三维(3D)面部模型。这些工具从多个传感器捕捉人脸的几何形状和纹理信息,并将多模态信息融合到通用3D面部模型。受益于来自各种传感器的多模态信息,所获得的3D面部模型较为精确。然而,这些商业化系统昂贵,且需要额外的软件购买来处理原始数据。此外,这些系统通常部署在面部捕捉工作室,需要参与者或志愿者来采集数据,这使得数据收集过程耗时,甚至成本更高昂。简而言之,对于采集3D面部数据,面部捕捉系统昂贵且耗时。相反,智能手机或相机如今广泛可用,因此可能存在大量可用的RGB(红色,绿色,蓝色)图像。以RGB图像作为输入来产生3D面部模型,可受益于大量图像数据。
二维(2D)RGB图像只是3D世界到2D平面的投影。从2D图像恢复3D几何形状是需要优化或学习算法以使重建过程规则化的不适定问题。对于3D面部重建,已开发和使用基于参数化的面部模型3D可变形模型(3DMM)的方法。具体地,诸如巴塞尔面部模型(BFM)和萨里面部模型(SFM)的面部模型是通常使用的面部模型,其需要商业许可。基于面部模型的方法采用扫描3D人脸模型集(展示各种面部特征和表情)作为其基础,然后基于3D面部模型产生面部特征和表情的参数化表示。可基于参数化将新的3D面部表示为基础3D面部模型的线性组合。由于这些方法的性质,导致用于形成基础和参数空间的3D面部模型限制了基于面部模型的方法的表达性。此外,从输入面部图像或2D地标拟合3DMM参数的优化过程进一步牺牲了面部图像中的详细面部特征。因此,基于面部模型的方法不能精确地恢复3D面部特征,且需要商业许可来使用诸如BFM和SFM的面部模型。
随着深度学习算法的普及,语义分割算法得到了大量关注。这样的算法可以将面部图像中的每个像素划分成不同的类别,例如背景,皮肤,头发,眼睛,鼻子和嘴巴。
虽然语义分割方法可实现比较精确的结果,但是所有像素的语义分割是一个非常复杂的问题,其通常需要复杂的网络结构,导致计算复杂度高。此外,为了训练语义分割网络,需要对大量的训练数据进行标记,且语义分割需要对整个图像的像素进行划分,这非常繁琐、耗时且成本高。因此,不适合于不需要高平均颜色精度但需要高效率的场景。
优化拉普拉斯算子和其它衍生算子的、由关键点驱动的变形方法已在学术界进行了很好的研究。双谐波变形的数学表达式可记为Δ2x'=0。受约束的关键点,即边界条件,可表示为xb'=xbc。在上述等式中,Δ是拉普拉斯算子,x'是未知的已变形网格顶点的位置,以及xbc是在变形之后给出的关键点的位置。在每个维度中需要对双拉普拉斯方程进行求解。双谐波函数是对双拉普拉斯方程的解,但也是所谓的“拉普拉斯能量”的最小元。
能量最小化的性质是网格的平滑。如果直接应用上述最小元,则将消除所有详细特征。此外,当关键点的位置保持不变时,预计已变形网格与原始网格完全相同。在这些考虑之中,双谐波变形的优选使用是为了对除了顶点的位置之外的顶点的位移进行求解。以这种方式,已变形位置可写成x'=x+d,其中d是未知顶点在每个维度中的位移。自然地,双谐波变形的方程受到db=xbc-xb的约束而变成Δ2d=0,其中db是变形之后关键点的位移。
随着游戏行业的快速发展,定制面部头像(face avatar)生成变得越来越流行。对于没有艺术技能的普通玩家,很难调节控制参数以生成可描述细微变化的面部。
在一些现有的面部生成系统和方法,例如正义(Justice)面部生成系统中,面部模型的预测是预测图像中的2D信息,例如眉毛、嘴巴、鼻子和照片中的其它像素的分割。这些2D分割容易受到平面外旋转和部分遮挡的影响,且基本上需要正面。此外,由于最终游戏面部头像和输入的相似性由面部识别系统确定,这将该方法限制为仅真实风格游戏。如果游戏的风格为与真实面部大为不同的卡通风格,则不能使用该方法。
在一些其它现有的面部生成系统和方法,例如天涯明月刀(Moonlight Blade)面部生成系统中,从输入图像重建真实面部。该方法限于真实风格游戏,且不能应用于卡通风格游戏。其次,该方法的输出参数是已重建的游戏风格的面部网格,然后对网格的每个部分执行模板匹配。该方法限制了不同面部部分的组合。游戏面部的总体多样性与预先生成的模板的数量密切相关。如果某一部分(例如嘴巴形状)具有少量模板,则其可产生极少不同的变化,使得所生成的面部缺乏多样性。
发明内容
基于学习的面部重建和关键点检测方法依赖于3D地面真值数据作为黄金标准来训练尽可能近似地面真值的模型。因此,3D地面真值确定基于学习的方法的上限。为了确保面部重建的精确度和期望的关键点检测,在一些实施例中,使用2D面部关键点标注来生成3D面部模型的地面真值,而不必使用昂贵的面部捕捉系统。本文公开的方法生成保持了输入图像的详细面部特征的3D地面真值面部模型,克服了现有面部模型(例如丢失面部特征的基于3DMM的方法)的缺点,而且还避免使用一些现有的基于面部模型的方法所需的参数化面部模型(例如BFM和SFM,这两者都需要商业许可)。
除了面部关键点检测之外,在一些实施例中,针对面部特征分类任务实施多任务学习和迁移学习解决方案,使得可以从对关键点信息进行补充的输入面部图像提取更多信息。对于用于创建玩家的面部头像的计算机或移动游戏,检测到的面部关键点与预测的面部特征一起是有价值的。
在一些实施例中,本文公开了一种轻量级方法,其用于从单个照片中提取人脸的每个部分的平均颜色,包括皮肤、眉毛、瞳孔、嘴唇、头发和眼影的平均颜色。同时,还使用算法来基于平均颜色自动地转换纹理图,使得转换后的纹理仍然具有原始亮度和色差,但主颜色变成目标颜色。
随着计算机视觉和人工智能(AI)技术的快速发展,3D人脸关键点的捕捉和重建已达到高精度的水平。越来越多的游戏正利用AI检测来使游戏角色更加生动。本文公开的方法和系统基于已重建的3D关键点来定制3D头部头像。通常由关键点驱动的变形适用于任意网格。本文提出的头部头像定制和变形方法的过程可以在诸如自动头像创建和表情再现的场景中找到它们的应用。
本文公开了用于基于单个照片而自动地生成游戏中的面部头像的方法和系统。通过对面部关键点的预测、对关键点的自动处理以及使用深度学习方法预测模型参数,本文公开的系统可自动地生成游戏中的面部头像,以使得面部头像:1)具有照片中的真实面部的特性;2)符合目标游戏风格。该系统可同时应用于真实风格游戏和卡通风格游戏的面部生成,且可根据不同的游戏模型或骨骼定义而容易自动地进行调整。
根据本申请的第一方面,一种从现实生活中的人的二维(2D)面部图像构建面部位置图的方法,包括:从2D面部图像生成粗略面部位置图;基于粗略面部位置图,预测2D面部图像中的第一组关键点;基于用户提供的关键点标注,识别2D面部图像中的第二组关键点;以及更新粗略面部位置图,以减小2D面部图像中的第一组关键点与第二组关键点之间的差异。
在一些实施例中,从现实生活中的人的2D面部图像构建面部位置图的方法进一步包括:基于更新后的面部位置图,提取第三组关键点,作为最终关键点集,以及在面部位置图中,第三组关键点与第一组关键点具有相同的位置。
在一些实施例中,从现实生活中的人的2D面部图像构建面部位置图的方法进一步包括:基于更新后的面部位置图,重建现实生活中的人的三维(3D)面部模型。
根据本申请的第二方面,一种从对象的二维(2D)面部图像提取颜色的方法,包括:基于关键点预测模型,识别2D面部图像中的多个关键点;旋转2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐;在旋转后的2D面部图像中定位多个部分,其中,每个部分由所识别的多个关键点的相应子集限定;根据2D面部图像的像素值提取多个部分中的每个部分的颜色,其中,每个部分由对应的关键点子集限定;以及使用从2D面部图像中的多个部分提取的颜色,生成对象的三维(3D)模型,3D模型与2D面部图像的相应面部特征颜色相匹配。
根据本申请的第三方面,一种生成三维(3D)头部变形模型的方法,包括:接收二维(2D)面部图像;基于人工智能(AI)模型,识别2D面部图像中的第一组关键点;基于位于3D头部模板模型的网格的多个顶点上的一组用户提供的关键点标注,将第一组关键点映射到第二组关键点;通过减小第一组关键点与第二组关键点之间的差异,对3D头部模板模型的网格执行变形,以获得变形后的3D头部网格模型;以及对变形后的3D头部网格模型应用混合变形(blendshape)方法,以根据2D面部图像获得个性化头部模型。
根据本申请的第四方面,一种使用现实生活中的人的二维(2D)面部图像来定制游戏中的头像的标准面部的方法,包括:识别2D面部图像中的一组现实生活关键点;将这一组现实生活关键点转换成与游戏中的头像相关联的一组游戏风格关键点;通过将这一组游戏风格关键点应用于关键点到参数(K2P)神经网络模型,生成游戏中的头像的标准面部的一组控制参数;以及基于这一组控制参数,使游戏中的头像的标准面部变形,其中,头像的变形后的面部具有2D面部图像的面部特征。
根据本申请的第五方面,一种电子装置,包括一个或多个处理单元、存储器以及存储在存储器中的多个程序。当程序由一个或多个处理单元执行时,程序使得电子装置执行如上所述的一种或多种方法。
根据本申请的第六方面,一种非暂时性计算机可读存储介质,存储有多个程序,多个程序由电子装置执行,电子装置具有一个或多个处理单元。当程序由一个或多个处理单元执行时,程序使得电子装置执行如上所述的一种或多种方法。
应注意,上述各个实施例可与本文所述的任何其它实施例组合。说明书中描述的特征和优点并不是包含一切特征和优点,特别是考虑到附图、说明书和权利要求,许多附加特征和优点对于本领域的普通技术人员来说将是显而易见的。此外,应注意,说明书中使用的语言主要是为了可读性和指导目的而选择,可能不是为了描绘或限定本公开的主题而选择。
附图说明
为了可以更详细地理解本公开,可通过参考各个实施例的特征来进行更具体的描述,其中一些特征在附图中示出。然而,附图仅示出了本公开的相关特征,因此不应被认为是限制性的,原因是描述可接纳其它有效特征。
图1是示出根据本公开的一些实现方式的示例性关键点定义的图。
图2是示出根据本公开的一些实现方式的示例性关键点生成过程的框图。
图3是示出根据本公开的一些实现方式的对初始粗略位置图进行转换的示例性过程的图。
图4是示出根据本公开的一些实现方式的不覆盖整个面部区域的示例性转换后的位置图的图。
图5是示出根据本公开的一些实现方式的对转换后的位置图进行细化以覆盖整个面部区域的示例性过程的图。
图6是示出根据本公开的一些实现方式的位置图细化算法的一些示例性结果的图。
图7A和图7B示出了根据本公开的一些实现方式的最终位置图与初始粗略位置图的一些示例性比较。
图8A是示出根据本公开的一些实现方式的示例性眼镜分类网络结构的图。
图8B是示出根据本公开的一些实现方式的示例性女性头发预测网络结构的图。
图8C是示出根据本公开的一些实现方式的示例性男性头发预测网络结构的图。
图9A示出了根据本公开的一些实现方式的一些示例性眼镜分类预测结果。
图9B示出了根据本公开的一些实现方式的一些示例性女性头发预测结果。
图9C示出了根据本公开的一些实现方式的一些示例性男性头发预测结果。
图10是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像构建面部位置图的示例性过程的流程图。
图11是示出根据本公开的一些实现方式的示例性颜色提取和调整过程的流程图。
图12示出了根据本公开的一些实现方式的示例性皮肤颜色提取方法。
图13示出了根据本公开的一些实现方式的示例性眉毛颜色提取方法。
图14示出了根据本公开的一些实现方式的示例性瞳孔颜色提取方法。
图15示出了根据本公开的一些实现方式的在头发颜色提取方法中使用的示例性头发颜色提取区域。
图16示出了根据本公开的一些实现方式的头发颜色提取区域内的头发像素和皮肤像素之间的示例性分离。
图17示出了根据本公开的一些实现方式的示例性眼影颜色提取方法。
图18示出了根据本公开的一些实现方式的一些示例性颜色调整结果。
图19是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像提取颜色的示例性过程的流程图。
图20是示出根据本公开的一些实现方式的示例性头部头像变形和生成过程的流程图。
图21是示出根据本公开的一些实现方式的示例性头部模板模型组成项的图。
图22是示出根据本公开的一些实现方式标记在真实风格3D模型和卡通风格3D模型上的一些示例性关键点的图。
图23是示出根据本公开的一些实现方式的模板模型渲染、手动标记的关键点和AI检测到的关键点之间的示例性比较的图。
图24是示出根据本公开的一些实现方式的示例性三角形的仿射变换的图。
图25是示出根据本公开的一些实现方式的具有和不具有混合变形过程的一些头部模型变形结果的示例性比较的图。
图26是示出根据本公开的一些实现方式的具有不同权重的仿射变形和双谐波变形的示例性比较的图。
图27示出了根据本公开的一些实现方式的使用现实模板模型从一些随机挑选的女性图片自动地生成的一些示例性结果。
图28是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像生成3D头部变形模型的示例性过程的流程图。
图29是示出根据本公开的一些实现方式的示例性关键点处理流程步骤的图。
图30是示出根据本公开的一些实现方式的示例性关键点平滑过程的图。
图31是示出根据本公开的一些实现方式的示例性关键点到控制参数(K2P)转换过程的的框图。
图32示出了根据本公开的一些实现方式的移动游戏的自动面部生成的一些示例性结果。
图33是示出根据本公开的一些实现方式的使用现实生活中的人的2D面部图像来定制游戏中的头像的标准面部的示例性过程的流程图。
图34是根据本公开的一些实现方式的图像处理装置的示例性硬件结构的示意图。
按照惯例,图中所示的各个特征可能未按比例绘制。因此,为了清楚起见,可任意扩大或缩小各个特征的尺寸。此外,一些附图可能未描绘给定系统、方法或设备的所有组件。最后,在整个说明书和附图中可使用类似的附图标记来指示类似的特征。
具体实施方式
现在,将详细参考具体实现方式,在附图中示出了具体实现方式的示例。在下文的详细描述中,阐述了许多非限制性的具体细节,以帮助理解本文提出的主题。然而,对于本领域的普通技术人员来说将显而易见的是,可以在不脱离权利要求的范围的情况下使用各种替代方案,且可以在没有这些具体细节的情况下实施该主题。例如,对于本领域的普通技术人员来说将显而易见的是,可以在许多类型的电子设备上实现本文提出的主题。
在进一步详细描述本申请的实施例之前,描述本申请的实施例所涉及的名称和术语,本申请的实施例所涉及的名称和术语具有以下解释。
面部关键点:预定地标,其确定某些面部部位(例如眼睛的拐角,下巴,鼻尖部和嘴巴的拐角)的形状。
面部部分:面部边界,眼睛,眉毛,鼻子,嘴巴和其它部分。
面部重建:重建人脸的3D几何结构,通常使用的表示包括网格模型、点云或深度图。
RGB图像:红色、绿色、蓝色三通道图像格式。
位置图:以常规图像格式使用红色、绿色、蓝色通道,来存储面部区域的x,y,z坐标,位置图是3D人脸的表示。
面部特征分类:包括发型分类,戴有或未戴眼镜分类。
卷积神经网络(CNN):一类深度神经网络,最常见的应用是分析视觉图像。
基础网络:诸如CNN的网络,其由一个或多个下游任务使用以充当特征提取器。
拉普拉斯算子:由欧几里德空间上的函数的梯度的散度所给出的差分算子。
可微分流形:一类拓扑空间,局部类似于线性空间,以允许进行微积分。
双谐波函数:在可微分流形上定义的四次可微分函数,其正方形拉普拉斯算子等于0。
由关键点驱动的变形:通过改变某些顶点的位置而使网格变形的一类方法。
双谐波变形:采用以一些边界条件优化双谐波函数的变形方法。
仿射变形:本公开提出的由关键点驱动的变形方法,其优化了三角形的仿射变换,以实现网格变形的目的。
面部模型:标准面部在预定目标游戏中的网格。
骨骼/滑块:用于使面部模型变形的控制参数。
如上所述,即使将输入2D图像和2D关键点两者送到优化过程以拟合3DMM参数,优化必须在基于基础(即,3D面部模型集)的3D面部模型的拟合和2D关键点的保真度之间取得平衡。该优化导致所获得的3D面部模型对抗2D输入关键点,由此牺牲了由输入2D关键点带来的详细面部信息。在现有的3D面部重建方法中,面部捕捉方案可产生精确的重建,但是较为昂贵且耗时,且所获得的数据还展示面部特征的有限变化(有限数量的参与者)。另一方面,基于面部模型的方法可采用2D图像或2D地标标注作为输入,但是所获得的3D模型不精确。为了满足计算机/移动游戏的快速发展的要求,需要产生所期望的3D模型精确度并降低所需的成本和时间。为了满足这些要求,本文公开的新3D地面真值面部模型生成算法采用2D图像、2D关键点标注和粗略3D面部模型(位置图格式)作为输入,基于2D关键点来对粗略3D模型进行转换,最终产生3D面部模型,其中详细的面部特征很好地予以保留。
除了解决面部重建和关键点预测中的关键问题之外,本文还公开了用于面部特征分类的、基于多任务学习和迁移学习的方法,这些方法部分地建立在面部重建和关键点预测框架之上。具体地,重新使用面部重建和关键点预测的基础网络,通过多任务学习实现眼镜分类(戴有或未戴眼镜)。对现有的面部重建和关键点预测框架之上的线性分类器进行训练,这很好地重新使用现有的模型,避免引入另一个较大的网络来进行图像特征提取。此外,另一个共享基础网络用于男性和女性发型分类。发型是一类对面部关键点或3D面部模型进行补充的重要面部特征。在对用户创建3D头像的过程中,添加发型和眼镜预测,则可更好地反映用户的面部特征并提供更好的个性化体验。
几十年来,面部关键点预测已成为计算机视觉中的研究主题。近些年来,随着人工智能和深度学习的发展,卷积神经网络(CNN)便于进行面部关键点预测。3D面部重建和面部关键点检测是两个紧密相连的问题,解决其中一个问题则可简化另一个问题。传统方式是首先解决2D面部关键点检测,然后基于所估计的2D面部关键点来进一步推断3D面部模型。然而,当图像中的面部倾斜(点头或摇头)时,某些面部关键点被遮挡且导致错误的2D面部关键点估计,因此建立在错误的2D面部关键点之上的3D面部模型变得不精确。
由于地面真值数据确定基于深度学习的方法的上限,因此现有的3D面部模型数据集不仅数量有限,而且仅可用于学术研究。另一方面,基于面部模型的方法需要使用巴塞尔面部模型(BFM)和萨里面部模型(SFM),这两者都需要商业许可。在训练任何面部重建或关键点估计模型时,高精确度和大量3D地面真值成为最关键的问题。
除了面部关键点预测之外,面部特征分类是用户3D头像创建的一个重要方面。对于所预测的面部关键点,可以仅执行用户的面部部分(即,眼睛,眉毛,鼻子,嘴巴和面部轮廓)的风格转移。然而,为了更好地反映用户的面部特征,匹配用户的发型以及添加一副眼镜(如果在输入图像中用户佩戴眼镜的话)则非常有帮助。基于这些要求,开发了基于多任务学习和迁移学习的面部特征分类方法,以实现男性/女性发型预测和眼镜预测(可以有或没有),这使得所创建的面部头像更加个性化,以改善用户的体验。
在一些实施例中,为了表示面部的主要部分的三维形状,使用关键点表示,如图1所示。图1是示出根据本公开的一些实现方式的示例性关键点定义的图。关键点按顺序编号,以定义面部的特定特征。换句话说,在关键点的序号与面部上的特定位置之间存在映射关系。例如,序号9对应于下巴的底部,序号21对应于鼻尖部,等等。关键点聚焦于面部的主要部分的边界上,例如面部的轮廓,眼睛的轮廓和眉毛的轮廓。更多的关键点意味着更大的预测难度,但是更精确的形状表示。在一些实施例中,图1中采用96个关键点的定义。在一些实施例中,用户可根据自己的需求来修改特定定义和关键点的数量。
许多算法可预测人脸的关键点的三维坐标。具有更好性能的方法使用基于大量离线3D训练数据的深度学习算法。然而,在一些实施例中,可使用任何三维关键点预测算法。在一些实施例中,关键点的定义不固定,用户可根据它们的必要性来定制定义。
为了解决3D地面真值面部模型生成的问题,开发以下自动算法,该自动算法采用2D RGB图像、2D关键点标注和粗略位置图作为输入。图2是示出根据本公开的一些实现方式的示例性关键点生成过程的框图。例如,面部的2D RGB图像用作输入图像202,且2D RGB图像具有对应的初始粗略位置图204,初始粗略图中的每个像素表示2D RGB图像中的对应面部点的空间坐标。2D关键点标注208表示一组用户提供的关键点,其用于校正从初始粗略图204检测到的关键点集206。
图3是示出根据本公开的一些实现方式的对初始粗略位置图进行转换的示例性过程的图。
在一些实施例中,3D重建方法用于将输入面部图像转换成包含面部特征的3D深度信息的位置图。例如,位置图可以是具有256×256矩阵阵列的2D三色(RGB)通道映射,每个阵列元素具有表示面部模型上的3D位置的坐标(x,y,z)。3D位置坐标(x,y,z)由位置图上用于每个阵列元素的RGB像素值表示。特定面部特征位于2D位置图内的固定2D位置。例如,鼻尖部可由位置图内位于X=128和Y=128处的2D阵列元素位置标识。类似地,针对面部上的特定面部特征标识的特定关键点可位于2D位置图上的相同阵列元素位置处。然而,根据位置图的不同输入面部图像,特定关键点可具有不同的3D位置坐标(x,y,z)。
在一些实施例中,如图2和图3所示,利用3D重建方法从输入图像(202,302)获得初始粗略位置图(204,304)。然后,使用输入2D关键点标注(208,308)调整初始位置图的相应关键点(206,306)的(x,y)坐标,以确保调整后的位置图中的关键点的调整后的(x,y)坐标与所标注的2D关键点相同。具体地,首先,从初始位置图P获得一组96个关键点。基于关键点索引,这一组96个关键点被称为K=k_i,其中每个k_i是关键点的2D坐标(x,y),i=0,…,95。从2D关键点标注(208,308),获得第二组96个关键点A=a_i,a_i是2D(x,y)坐标,i=0,…,95。其次,从K到A估计空间转换映射(210.310),空间转换映射定义为T:Ω->Ω,其中然后,将所获得的变换T应用于初始位置图P,以得到转换后的位置图P'(212,312)。以这种方式,转换后的位置图P'(212,312)保留了输入图像(202,302)中的人的详细面部特征,同时,转换后的位置图P'(212,312)具有合理的3D深度信息。因此,本文公开的解决方案提供精确且实用的替代解决方案来生成3D地面真值信息,以避免使用昂贵且耗时的面部捕捉系统。
在一些实施例中,由于96个面部关键点仅覆盖整个面部区域的一部分(即,在眉毛下方,在面部轮廓以内),例如在图3中,从耳朵到下巴的关键点沿着下颌,但是不在可看见的面部轮廓上。当输入图像中的面部倾斜时,整个面部区域未被连接在一起的关键点的轮廓所覆盖。此外,当执行手动关键点标注时,无论图像中的面部是否倾斜,只能沿着可看见的面部轮廓来标记关键点(即,没有办法精确地标注被遮挡的关键点)。因此,在转换后的位置图P'(212,312)中,一部分面部区域不具有有效值,原因是转换映射T(210.310)没有在该区域中进行估计。此外,前额区域位于眉毛上方,因此T同样没有在该区域中进行估计。所有这些问题导致转换后的位置图P'(212,312)在某些区域中不具有有效值。图4是示出根据本公开的一些实现方式的不覆盖整个面部区域的示例性转换后的位置图的图。
在图4中,顶部圆(402,406)突出显示前额区域,且右侧圆(404,408)指示关键点轮廓小于可看见的面部轮廓的区域。
在一些实施例中,为了解决上述问题并使算法对通常存在于面部图像中的倾斜面部稳健,使用如图2所示的细化过程214。基于头部姿态和粗略3D面部模型,来自转换后的位置图的关键点沿着面部轮廓移位以与可看见的面部轮廓匹配。之后,可以在所获得的位置图中填充面部轮廓区域中的缺失值。然而,前额区域中的值仍然缺失。为了覆盖前额区域,通过将图像的四个拐角处的八个地标添加到两个关键点集K和A来扩展控制点。
图5是示出根据本公开的一些实现方式的对转换后的位置图进行细化以覆盖整个面部区域的示例性过程的的图。位置图细化处理在图5中示出。
在一些实施例中,首先基于粗略位置图P来确定头部姿态,以确定头部朝向左侧或右侧倾斜,左侧或右侧在3D面部模型空间中定义(例如如图5所示,面部朝向左侧倾斜。)。基于确定面部朝向左侧或右侧倾斜,调整面部轮廓的对应侧的关键点。面部轮廓的右侧关键点具有从1到8的索引,面部轮廓的左侧关键点具有从10到17的索引。使用朝向左侧倾斜的面部作为示例,计算初始位置图P的2D投影,以得到深度图作为图5所示的图像502。左侧面部轮廓关键点k_i,i=10,…,17单独地向右移位,直到它们到达深度图的边界为止。然后,使用新坐标来替代原始关键点位置。类似地,当面部向右倾斜时,处理后的关键点由k_i,i=1,…,8索引,且搜索方向向左。在调整面部轮廓关键点之后,更新后的关键点可视化为图5中的图像504,位置图的更新后的覆盖示出为图5中的图像506。更新后的位置图在面部轮廓区域中具有更好的面部覆盖,但是前额区域仍具有缺失值。
在一些实施例中,为了覆盖前额区域,在图像域Ω的每个拐角处添加两个锚点,作为附加关键点k_i,i=96,…,103,以得到更新后的关键点集K’(如图5中的图像508所示)。对于手动标注关键点集a_i,i=96,…,103,进行相同处理,以得到更新后的A’。使用更新后的关键点集K’和A’,重新估计转换映射T',然后应用于初始位置图P以得到最终位置图P”(图2中的216)来覆盖整个面部区域(如图5中的图像510所示)。从最终位置图216导出最终关键点218。
图6是示出根据本公开的一些实现方式的位置图细化算法的一些示例性结果的图。602是初始转换位置图的图示。604是在固定面部轮廓之后更新的位置图的图示。606是最终位置图的图示。
图7A和图7B示出了根据本公开的一些实现方式的最终位置图与初始粗略位置图的一些示例性比较。在图7A的一个示例中,初始位置图中的鼻子及其相关的3D模型和关键点702不正确,完全不能反映人的面部特征(由箭头突出显示),但是在应用本文所述的方法之后,鼻子与最终位置图中的图像及其相关的3D模型和关键点704很好地对齐(由箭头突出显示)。在图7B的第二示例中,在初始位置图及其相关的3D模型和关键点706中存在多个不精确之处,例如面部轮廓、张开的嘴巴和鼻子形状不匹配(由箭头指示)。在最终位置图及其相关的3D模型和关键点708中,所有这些误差已修复(由箭头指示)。
对于用于面部头像创建过程的移动游戏应用,发型和眼镜分类较为重要。在一些实施例中,本文实现了基于多任务学习和迁移学习的解决方案,以解决这些问题。
在一些实施例中,针对女性头发预测,实施四个不同的分类任务(头部)。分类类别和参数如下所示:
分类头部1:曲线
笔直(0);曲线(1)
分类头部2:长度
短(0);长(1)
分类头部3:刘海
没有刘海或分头(split)(0);左分头(1);右分头(2);M形状(3);直刘海(4);自然刘海(5);空气刘海(6)
分类头部4:辫子
单个辫子(0);两个或更多个辫子(1);单个发髻(2);两个或更多个发髻(3);其它(4)。
在一些实施例中,针对男性头发预测,实施三个不同的分类任务(头部)。分类类别和参数如下所示:
分类头部1:超短(0),卷曲(1),其它(2)
分类头部2:没有刘海(0),分头刘海(1),自然刘海(2)
分类头部3:左分头刘海(0),右分头刘海(1)。
在一些实施例中,眼镜分类是二元分类任务。分类参数如下所示:
未戴眼镜(0);戴有眼镜(1)。
在不同的深度学习图像分类模型中,在ImageNet中实现现有技术的精确度的那些模型通常具有大的模型大小和复杂结构,例如EfficientNet,Noisy Student和FixRes。当决定将哪个架构用作特征提取器的基础网络时,需要平衡预测精确度和模型大小。在实践中,1%的分类精确度提高可能不会对终端用户带来明显的变化,但是模型大小可指数级增加。考虑到经训练的模型可能需要在客户端侧部署,较小的基础网络可使模型灵活地在服务器侧和客户端侧部署。因此,例如采用MobileNetV2作为基础网络,对不同的分类头部进行迁移学习。MobileNetV2架构基于反向残差结构,其中残差块的输入和输出是细瓶颈层,这与在输入中使用扩展表示的传统残差模型相反。MobileNetV2使用轻量级深度卷积来过滤中间扩展层中的特征。
对于眼镜分类,使用多任务学习方法。重新使用关键点预测网络作为基础网络并冻结参数,在基于U形的网络的瓶颈层中,使用具有交叉熵损失的特征向量来训练二元分类器。图8A是示出根据本公开的一些实现方式的示例性眼镜分类网络结构的图。图8B是示出根据本公开的一些实现方式的示例性女性头发预测网络结构的图。图8C是示出根据本公开的一些实现方式的示例性男性头发预测网络结构的图。
图9A示出了根据本公开的一些实现方式的一些示例性眼镜分类预测结果。图9B示出了根据本公开的一些实现方式的一些示例性女性头发预测结果。图9C示出了根据本公开的一些实现方式的一些示例性男性头发预测结果。
图10是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像构建面部位置图的示例性过程的流程图1000。在现实生活中,不同的人具有不同的面部特点,使得对应于相同面部特点(例如人脸上的眉毛位置)的相同关键点可具有大为不同的空间坐标。因为用于生成3D面部模型的2D面部图像以不同的角度且在不同的光条件下捕捉,所以面部检测问题变得更具挑战性,该领域中的研究在计算机视觉技术领域中是非常活跃的对象。在本申请中,已经提出多种方法,用于从范围为现实生活中的人到卡通角色的对象的任何2D面部图像提高面部关键点检测的效率和精确度。在一些实施例中,提供同一面部图像的一组用户提供的面部关键点,作为用于校正或改进最初由计算机实现的方法检测到的面部关键点集的参考。例如,由于在用户提供的面部关键点与计算机生成的面部关键点之间,基于面部关键点各自的序号存在一对一映射关系,因此对计算机生成的面部关键点的细化被定义为减小两组面部关键点之间的差异(例如,由位置图中面部关键点对应的空间坐标测量)的优化问题。
构建面部位置图的过程包括步骤1010:从2D面部图像生成粗略面部位置图。
该过程还包括步骤1020:基于粗略面部位置图,预测2D面部图像中的第一组关键点。
该过程额外包括步骤1030:基于用户提供的关键点标注,识别2D面部图像中的第二组关键点。
该过程额外包括步骤1040:更新粗略面部位置图,以减小2D面部图像中的第一组关键点与第二组关键点之间的差异。例如,通过在面部关键点对应的空间坐标方面减小2D面部图像中的第一组关键点与第二组关键点之间的差异,基于用户提供的关键点标注而修改2D面部图像中基于粗略面部位置图的第一组关键点,使之更类似于2D面部图像中的第二组关键点,这通常被认为更精确,且对第一组面部关键点的修改自动地触发初始粗略面部位置图的更新,其中从初始粗略面部位置图生成第一组关键点。然后,可使用更新后的粗略面部位置图来预测来自2D面部图像的更精确的关键点集。应注意,2D面部图像中基于用户提供的关键点标注的第二组关键点并不意味着第二组关键点是手动完成的。相反,用户可采用另一个计算机实现的方法来执行标注。在一些实施例中,虽然第二组关键点的数量(例如,10至20)仅是第一组关键点的数量(例如96或甚至更大)的一部分,但是第二组关键点更精确的事实有助于第一组关键点的整体改进。
在一个实现方式中,该过程进一步包括步骤1050:基于更新后的面部位置图/最终位置图,提取第三组关键点,作为最终关键点集,以及在面部位置图中,第三组关键点与第一组关键点具有相同的位置。在一些实施例中,面部位置图中的关键点的位置由位置图中的阵列元素的2D坐标表示。如上所述,更新后的面部位置图受益于2D面部图像中基于用户提供的关键点标注的第二组关键点,因此第三组关键点更精确,且可以在诸如计算机视觉的领域中使用以进行更精确的面部检测,或者在计算机图形中使用以进行更精确的3D面部建模。
在一个实现方式中,作为步骤1050的替代或附加,该过程进一步包括步骤1060:基于更新后的面部位置图,重建现实生活中的人的3D面部模型。在一个示例中,3D面部模型是3D深度模型。
附加实现方式可包括以下特征中的一个或多个特征。
在一些实施例中,更新步骤1040可包括:将粗略面部位置图转换成转换后的面部位置图,并对转换后的面部位置图进行细化。如上所述,与初始粗略面部位置图相比,转换后的面部位置图可保留输入图像中的人的更详细的面部特征,因此基于转换后的面部位置图的3D面部模型更精确。
在一些实施例中,转换包括:基于学习第一组关键点与第二组关键点之间的差异,估计从粗略面部位置图到转换后的面部位置图的转换映射;以及将转换映射应用于粗略面部位置图。
在一些实施例中,细化包括:对应于确定出2D面部图像是倾斜的,调整在面部轮廓的被遮挡侧、对应于转换后的面部位置图的关键点,以覆盖整个面部区域。如上所述,可以以不同的角度捕捉不同的2D面部图像,该细化步骤可校正由不同的图像捕捉条件引入的偏差或误差,并保留2D面部图像的更精确的3D面部模型。此外,与初始粗略面部位置图相比,转换后的面部位置图可保留输入图像中的人的更详细的面部特征,因此基于转换后的面部位置图的3D面部模型更精确。
在一些实施例中,第一组关键点可包括96个关键点。
在一些实施例中,构建面部位置图的过程可包括面部特征分类。
在一些实施例中,面部特征分类通过深度学习方法来进行。
在一些实施例中,面部特征分类通过多任务学习或迁移学习方法来进行。
在一些实施例中,面部特征分类包括头发预测分类。
在一些实施例中,头发预测分类包括具有多个分类任务的女性头发预测,该多个分类任务可包括:曲线,长度,刘海和辫子。
在一些实施例中,头发预测分类包括具有多个分类任务的男性头发预测,该多个分类任务可包括:曲线/长度,刘海和头发分头。
在一些实施例中,面部特征分类包括眼镜预测分类。眼镜预测分类包括分类任务,分类任务可包括:戴有眼镜,以及未戴眼镜。
本文公开的方法和系统可基于2D关键点标注来生成精确的3D面部模型(即,位置图)以用于3D地面真值生成。该方法不仅避免了使用BFM和SFM面部模型,而且更好地保留了详细的面部特征,防止了由基于面部模型的方法引起的这些重要特征的丢失。
除了提供关键点之外,使用基于深度学习的解决方案来提供诸如发型和眼镜的补充面部特征,这对于基于用户输入面部图像来个性化面部头像是必不可少的。
虽然作为示例,本文公开了用于面部特征分类的发型和眼镜预测,但是框架不限于这些示例性任务。框架和解决方案基于多任务学习和迁移学习,这意味着易于扩展框架以包括其它面部特征,例如女性化妆类型分类,男性胡须类型分类,以及具有或不具有面罩分类。基于各种计算机或移动游戏的要求,框架的设计非常适合于扩展到更多的任务。
在一些实施例中,本文介绍了一种基于关键点的轻加权颜色提取方法。轻加权图像处理算法在不分割所有像素的情况下快速地估计局部像素,从而实现更高的效率。
在训练过程期间,用户不需要具有像素级标签,而是仅标记几个关键点,例如眼睛拐角,嘴巴边界和眉毛。
本文公开的轻加权颜色提取方法可用于各种游戏的个性化面部生成系统。为了提供更自由的个性化角色生成,许多游戏已开始采用自由调整方法。除了调整面部形状之外,用户还可选择不同的颜色组合。出于美观的目的,游戏中的面部通常使用预定纹理,而不是真实面部纹理。本文公开的该方法和系统使得用户能够仅通过上传照片而自动地提取面部的每个部分的平均颜色。同时,系统可根据所提取的颜色自动地修改纹理,使得个性化面部的每个部分生成为更接近用户照片中的真实颜色,提高了用户体验。例如,如果用户的皮肤颜色比大多数人的平均皮肤颜色暗,则游戏中的角色的皮肤颜色将相应地变暗。图11是示出根据本公开的一些实现方式的示例性颜色提取和调整过程的流程图。
为了定位面部的各个部分,对面部的主要特征部分定义关键点,如上所述的图1所示。上述算法用于关键点预测。不同于语义分割方法,仅在图像中预测关键点,而不需要对每个像素进行分类,使得训练数据的标记和预测的成本大大降低。利用这些关键点,可粗略地定位面部的各个部分。
图12示出了根据本公开的一些实现方式的示例性皮肤颜色提取方法。为了提取图像中的特征,需要旋转原始图像1202中的面部区域,使得面部的左右侧上的关键点1和17与标准面部的左右侧上的对应关键点对齐,如初步对齐1204之后的图像所示。
接下来,确定皮肤颜色像素检查的区域。选择眼睛的关键点的底部坐标作为检测区域的上边界,选择鼻子的底部关键点作为检测区域的下边界,左边界和右边界由面部边界关键点确定。以这种方式,获得皮肤颜色检测区域,如图像1206上的区域1208所示。
在该区域1208中,并不是所有像素都是皮肤像素,像素还可包括一些睫毛,鼻孔,鼻唇沟,头发等。因此,选择该区域中的所有像素的R值、G值和B值的中间值作为最终预测平均皮肤颜色。
图13示出了根据本公开的一些实现方式的示例性眉毛颜色提取方法。对于眉毛的平均颜色,首先选择主眉毛(即,在更靠近镜头一侧的眉毛)作为目标。在一些实施例中,如果两个眉毛都是主眉毛,则提取两侧的眉毛像素。假设左眉毛是主眉毛,则如图13所示,选择由关键点77,78,81和82构成的四边形区域作为眉毛像素搜索区域。这是因为靠近外侧的眉毛太薄,并将放大小的关键点误差的影响。因为靠近内测的眉毛通常可以较稀疏并与皮肤颜色混合,所以选择中间眉毛区域1302以收集像素。每个像素必须首先与平均皮肤颜色进行比较,且将只收集差值大于特定阈值的像素。最后,类似于皮肤颜色,选择所收集的像素的中间R值、G值和B值作为最终平均眉毛颜色。
图14示出了根据本公开的一些实现方式的示例性瞳孔颜色提取方法。类似于眉毛颜色提取,当提取瞳孔颜色时,首先选择靠近镜头的主眼睛侧。在一些实施例中,如果两只眼睛都是主眼睛,则两侧的像素一起收集。除了瞳孔本身之外,包含在眼睛的关键点内部的封闭区域还可包含睫毛,眼白和反射。这些应在像素收集的过程中尽可能地去除,以确保最终像素中的大部分像素来自瞳孔本身。
为了去除睫毛像素,眼睛的关键点沿着y轴(图14的垂直方向)向内收缩一定距离以形成图14所示的区域1402。为了去除白眼和反射(如图14中的圆圈1404所示),在该区域1402中进一步排除这样的像素。例如,如果像素的R,G和B值均大于预定阈值,则排除该像素。以这种方式收集的像素可确保像素中的大部分像素来自瞳孔本身。类似地,中间颜色用作平均瞳孔颜色。
在一些实施例中,对于嘴唇颜色提取,仅检测下唇区域中的像素。上唇通常较薄且对关键点误差相对敏感,而且因为上唇是带颜色的光,所以上唇不能很好地表示唇色。因此,在旋转和校正照片之后,收集由下唇的关键点包围的区域中的所有像素,并使用中间颜色来表示平均嘴唇颜色。
图15示出了根据本公开的一些实现方式的在头发颜色提取方法中使用的示例性头发颜色提取区域。头发颜色提取比先前部分的提取更困难。主要原因是每个人的发型是唯一的,且照片的背景复杂且多样。因此,难以定位头发的像素。在精确地找到头发像素的一种方式中,使用神经网络来分割图像的头发像素。由于图像分割的标注成本很高,且游戏应用不需要精度非常高的颜色提取,因此使用基于关键点的近似预测的方法。
为了获得头发像素,首先确定检测区域。如图15所示,检测区域1502是矩形。下边界是两侧的眉毛拐角,且高度(垂直线1504)是从眉毛的上边缘到眼睛的下边缘的距离1506。左侧和右侧是分别向左和向右延伸固定距离的关键点1,17。由此获得的头发像素检测区域1502在图15中示出。
图16示出了根据本公开的一些实现方式的头发颜色提取区域内的头发像素和皮肤像素之间的示例性分离。通常,检测区域包含三种类型的像素:皮肤,头发和背景。在一些更复杂的情况下,检测区域还包括帽子。因为我们的检测区域的左右范围相对保守,所以在大多数情况下,假设所包括的头发像素远多于背景像素。因此,主要过程是将检测区域的像素划分成头发或皮肤。
对于检测区域中的每一行像素,皮肤颜色变化通常是连续的,例如从亮到暗,且皮肤颜色和头发结通常具有明显的变化。因此,选择每一行的中间像素作为起始点1608,且向左侧和右侧检测皮肤像素。首先,使用相对保守的阈值以找到更可靠的皮肤颜色像素,然后向左和向右扩展。如果相邻像素的颜色比较接近,则相邻像素的颜色也标记为皮肤颜色。这样的方法考虑皮肤颜色的渐变,且可获得相对精确的结果。如图16所示,在头发颜色提取区域1602内,诸如1604的较暗区域表示皮肤颜色像素,且诸如1606的较亮区域表示头发颜色像素。选择头发颜色区域内所收集的头发颜色像素的中间R值、G值和B值作为最终平均头发颜色。
图17示出了根据本公开的一些实现方式的示例性眼影颜色提取方法。眼影颜色的提取与先前部分的提取稍有不同。这是因为眼影是可能存在或不存在的化妆品。因此,当提取眼影颜色时,需要先确定眼影是否存在,如果眼影存在,则提取眼影的平均颜色。类似于眉毛和瞳孔的颜色提取,仅对靠近镜头的主眼睛部分执行眼影颜色提取。
首先,必须确定哪些像素属于眼影。对于眼影像素的检测区域,如图17所示,使用线1704和1706内的区域1702。区域1702的左侧和右侧定义为眼睛的内角和外角,且该区域的上侧和下侧是眉毛的下边缘和眼睛的上边缘。除了该区域1702中可能的眼影像素之外,还可能存在睫毛、眉毛和皮肤,当提取眼影时需要睫毛、眉毛和皮肤。
在一些实施例中,为了消除眉毛的影响,检测区域的上边缘进一步向下移动。为了减少睫毛的影响,排除亮度小于特定阈值的像素。为了将眼影与皮肤颜色区分开,检查每个像素的色调和平均皮皮肤颜色调之差。仅当该差大于特定阈值时,才收集像素作为可能的眼影像素。使用色调而不是RGB值的原因是:主要在眼睛下方收集平均皮肤颜色,眼睛上方的皮肤颜色可具有较大的亮度变化。由于颜色对亮度不敏感,因此颜色相对稳定。因此,色调更适合于判断像素是否是皮肤。
通过上述过程,可确定每个检测区域中的像素是否属于眼影。在一些实施例中,如果不存在眼影,则可出现一些像素仍可识别为眼影的错误。
为了减少上述错误,检查检测区域的每一列。如果当前列中的眼影像素的数量大于特定阈值,则当前列标记为眼影列。如果眼影列与检测区域的宽度之比大于特定阈值,则认为当前图像中存在眼影,并将所采集的眼影像素的中间颜色用作最终颜色。以这种方式,被误分类为眼影的几个像素将不会导致对整个眼影的错误判断。
考虑艺术风格,大多数游戏通常不允许所有上述部件在颜色上自由地调整。对于开放了颜色调整的部分,通常仅允许与一组预定颜色匹配。以头发为例,如果发型允许选择5种头发颜色,则资源包中的发型将包含对应于每种头发颜色的纹理图像。在检测期间,只要根据头发颜色预测结果来选择具有最接近颜色的纹理图像,即可获得期望的头发渲染效果。
在一些实施例中,当只提供一个颜色纹理图像时,可根据检测到的任何颜色来合理地改变纹理图像的颜色。为了便于颜色转换,通常使用的RGB颜色空间表示转换成HSV颜色模型。HSV颜色模型包括三个维度:色调H,饱和度S和亮度V。色调H在模型中表示为360度的颜色范围,其中红色是0度,绿色是120度,蓝色是240度。饱和度S表示光谱色和白色的混合物。饱和度越高,颜色越亮。当饱和度接近0时,颜色接近白色。亮度V表示颜色的亮度,值范围从黑色到白色。在颜色调整之后,预计纹理图像的HSV中间值与所预测的颜色匹配。因此,每个像素的色调值计算可如下表示:Hi′=(Hi+H′-H)%1,其中Hi'和Hi表示调整之前和之后像素i的色调,H和H'表示调整之前和之后纹理图像的色调的中间值。
与作为端到端连接的连续空间的色调不同,饱和度和亮度具有边界奇异点,例如0和1。如果使用类似于色调调整的线性处理方法,则当初始图片或调整后的图片的中间值接近0或1时,许多像素值将在饱和度或亮度方面显得过高或过低。这种现象导致不自然的颜色。为了解决该问题,使用以下非线性曲线来拟合像素调整之前和之后的饱和度和亮度:
y=1/(1+(1-α)(1-x)/(αx)),α∈(0,1)
在上式中,x和y分别是调整之前和之后的饱和度或亮度值。唯一的不确定参数是α,其可如下推导:
α=1/(1+x/(1-x)×(1-y)/y)
该等式可保证α落入从0到1的区间内。以饱和度作为示例,可简单地基于输入图片来计算初始中间饱和度S。目标饱和度值St可通过头发颜色提取和颜色空间转换来获得。因此,α=1/(1+S/(1-S)×(1-St)/St)。对于默认纹理图像中的每一像素Si,则可通过等式Si'=1/(1+(1-α)(1-Si)/(αSi))来计算调整后的值。相同的计算应用于亮度。
为了使调整后的纹理图片的显示效果更接近真实图片,对不同部分进行特殊处理。例如,为了保持头发低饱和度,设置S'S'×V'^0.3。图18示出了根据本公开的一些实现方式的一些示例性颜色调整结果。列1802示出了由特定游戏提供的一些默认纹理图片,列1804示出了根据列1804的顶部所示出的真实图片,从同一行中的对应默认纹理图片调整的一些纹理图片,以及列1806示出了根据列1806的顶部所示出的真实图片,从同一行中的对应默认纹理图片调整的一些纹理图片。
图19是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像提取颜色的示例性过程的流程图1900。
从现实生活中的人的2D面部图像提取颜色的过程包括步骤1910:基于关键点预测模型,识别2D面部图像中的多个关键点。
该过程还包括步骤1920:旋转2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐。
该过程额外包括步骤1930:在旋转后的2D面部图像中定位多个部分,每个部分由所识别的多个关键点的相应子集限定。
该过程额外包括步骤1940:根据2D面部图像的像素值提取多个部分中的每个部分的颜色,其中,每个部分由对应的关键点子集限定。
该过程额外包括步骤1950:使用所提取的颜色,生成现实生活中的人的3D模型,3D模型与2D面部图像的相应面部特征颜色相匹配。
附加实现方式可包括以下特征中的一个或多个特征。
在一些实施例中,识别步骤1910中的关键点预测模型根据用户手动标注的关键点基于机器学习而形成。
在一些实施例中,旋转步骤1920中用于对齐的所选关键点位于2D面部图像的左右对称侧。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括:选择对应部分内的相应限定区域中的所有像素的R值、G值和B值的中间值,作为预测平均颜色。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括:确定皮肤部分内用于皮肤颜色提取的区域;以及选择用于皮肤颜色提取的区域中的所有像素的R值、G值和B值各自的中间值,作为皮肤部分的预测平均颜色。在一些实施例中,皮肤部分内用于皮肤颜色提取的区域被确定为面部上位于眼睛下方且位于鼻子下边缘上方的区域。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括眉毛部分内的眉毛颜色提取,眉毛部分内的眉毛颜色提取包括:对应于确定出一个眉毛位于更接近2D面部图像的观看者的一侧,选择这一个眉毛作为目标眉毛;对应于确定出两个眉毛相等地接近2D面部图像的观看者,选择这两个眉毛作为目标眉毛;提取一个或多个目标眉毛内的一个或多个中间眉毛区域;将一个或多个中间眉毛区域内的每个像素值与平均皮肤颜色进行比较;收集一个或多个中间眉毛区域像素值与平均皮肤颜色之差超出阈值的像素;以及选择用于眉毛颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为眉毛部分的预测平均颜色。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括眼睛部分内的瞳孔颜色提取,眼睛部分内的瞳孔颜色提取包括:对应于确定出一只眼睛位于更接近2D面部图像的观看者的一侧,选择这一只眼睛作为目标眼睛;对应于确定出两只眼睛相等地接近2D面部图像的观看者,选择这两只眼睛作为目标眼睛;提取一个或多个目标眼睛内没有睫毛的区域;将所提取的区域内的每个像素值与预定阈值进行比较;收集所提取的区域像素值超出预定阈值的像素;以及选择用于瞳孔颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为瞳孔的预测平均颜色。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括嘴唇部分内的嘴唇颜色提取,嘴唇部分内的嘴唇颜色提取包括:收集由下唇部的关键点包围的区域中的所有像素;以及选择用于嘴唇颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为嘴唇部分的预测平均颜色。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括头发部分内的头发颜色提取,头发部分内的头发颜色提取包括:识别一个区域,该区域包括有前额从两侧延伸到头发部分中的部分;从区域的中间到左边界和右边界,确定超出预定阈值的像素颜色变化;基于超出预定阈值的像素颜色变化,将区域划分成头发区域和皮肤区域;以及选择区域内的头发区域的像素的R值、G值和B值各自的中间值,作为头发部分的预测平均颜色。
在一些实施例中,包括有前额从两侧延伸到头发部分中的部分的区域被识别为矩形区域,该矩形区域的下边界在两个眉毛拐角处,左边界和右边界在与位于所述2D面部图像的左右对称侧的关键点向外相距固定距离处,以及矩形区域的高度等于从眉毛的上边缘到眼睛的下边缘的距离。
在一些实施例中,在步骤1940中,提取多个部分中的每个部分的平均颜色可包括眼影部分内的眼影颜色提取,眼影部分内的眼影颜色提取包括:对应于确定出一只眼睛位于更接近2D面部图像的观看者的一侧,选择这一只眼睛作为目标眼睛;对应于确定出两只眼睛相等地接近2D面部图像的观看者,选择这两只眼睛作为目标眼睛;提取一个或多个眼影部分内接近目标眼睛的一个或多个中间区域;收集所提取的中间区域内满足以下各项的像素:亮度高于预定亮度阈值以排除睫毛,并且像素色调值与平均皮皮肤颜色调值之差超出预定阈值;对应于确定出所提取的一个或多个中间区域内的一个像素列中所收集的像素的数量大于阈值,将该像素列标记为眼影列;以及对应于确定出眼影列与所提取的中间区域的宽度之比大于特定阈值,选择用于眼影颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为眼影部分的预测眼影颜色。
在一些实施例中,从现实生活中的人的2D面部图像提取颜色的过程可额外包括:基于平均颜色来转换纹理图,同时保留纹理图的原始亮度和色差,这包括:将平均颜色从RGB颜色空间表示转换成HSV(色调,饱和度,亮度)颜色空间表示;以及调整纹理图的颜色,以减小平均颜色的中间HSV值与纹理图的中间HSV值像素之差。
本文公开的方法和系统可用于不同场景中的应用,例如角色建模和游戏角色生成。该轻量级方法可灵活地应用于包括移动设备的不同设备。
在一些实施例中,当前系统和方法中的面部的关键点的定义不限于当前定义,其它定义也是可行的,只要可充分地表达每个部分的轮廓。此外,在一些实施例中,方案中直接返回的颜色可以不直接使用,而是可与预定颜色列表匹配以实现进一步的颜色筛选和控制。
优化拉普拉斯算子的变形方法要求网格是可微分流形。然而,在实践中,由游戏艺术家形成的网格通常包含伪影,例如重复顶点,可损坏流形的性质的未密封边缘。因此,可以仅在仔细地清理网格之后使用诸如双谐波变形的方法。本文提出的仿射变形方法不使用拉普拉斯算子,因此没有这样的强约束。
在一些情况下,由双谐波变形表示的一族变形方法遭受变形能力不足之苦。求解拉普拉斯算子一次的谐波函数通常无法实现平滑结果,原因是其平滑度要求较低。求解高阶(>=3)拉普拉斯算子的多谐波函数在许多网格上失败,原因是其要求(至少是6阶可微分的)较高。在大多数情况下,观察到仅求解拉普拉斯算子两次的双谐波变形可传送可接受的结果。即使是这样,由于双谐波变形缺乏调节自由度,因此双谐波变形仍可能不令人满意。本文提出的仿射变形可通过改变平滑度参数来实现细微的变形调节,以及该仿射变形的变形结果的范围覆盖使用双谐波变形的变形结果的范围。
图20是示出根据本公开的一些实现方式的示例性头部头像变形和生成过程的流程图。使用本公开提出的技术,头部网格可以在不与骨骼绑定的情况下适当地变形。因此,大大降低了艺术家所需的工作负荷。该技术适应不同风格的网格以获得更好的通用性。在游戏资产的生产中,艺术家可使用诸如3DMax或Maya的工具以各种格式保存头部模型,但是这些格式的内部表示都是多边形网格。多边形网格可容易地转换成纯三角形网格,纯三角形网格被称为模板模型。对于每个模板模型,用手在模板模型上标记3D关键点一次。之后,根据从任意人脸图片中检测到和重建的3D关键点,模板模型可用于变形成独特头部头像。
图21是示出根据本公开的一些实现方式的示例性头部模板模型组成项的图。头部模板模型2102通常包括诸如面部2110、眼睛2104、睫毛2106、牙齿2108和头发的部分,如图21所示。在不绑定骨骼的情况下,网格变形依赖于模板网格的连接结构。因此,模板模型需要分解成这些语义部分,且面部网格需要首先变形。可通过在面部网格上设置和遵循某些关键点来自动地调整所有其它部分。在一些实施例中,提供交互式工具来检测所有拓扑连接的部分,且用户可使用交互式工具来方便地调出那些语义部分以便进一步变形。
在一些实施例中,可通过一些检测算法或AI模型得到人脸的图像关键点。出于驱动网格变形的目的,这些关键点需要映射到模板模型上的顶点。由于网格连接的随机性以及3D人体关键点标记数据的缺失,导致没有工具可自动地、精确地在任意头部模型上标记3D关键点。因此,开发了一种交互式工具,其可手动地、快速地标记3D模型上的关键点。图22是示出根据本公开的一些实现方式标记在真实风格3D模型(例如2202,2204)和卡通风格3D模型(例如2206,2208)上的一些示例性关键点的图。
在标记过程中,在3D模型上标记的3D关键点的位置应最大程度地与图片关键点匹配。由于在3D模型网格上的离散顶点上标记关键点,因此偏差的导入不可避免。为了使这样的偏差偏移,一种方式是在姿态处理中定义适当的规则。图23是示出根据本公开的一些实现方式的模板模型渲染、手动标记的关键点和AI检测到的关键点之间的示例性比较的图。在一些实施例中,对于相对真实地形成的那些模型,关键点检测和重建算法可应用于模板模型(2302)的渲染,以及例如通过人工智能实现的3D关键点(2306)的结果可进一步与手动标记的关键点(2304)的结果进行比较,并因此计算两组关键点之间的偏差。当检测到人类图片时,所计算的偏差从现实生活图像中检测到的关键点减小,并将消除手工标记的不良影响。
本文公开的仿射变形方法是由关键点驱动的数学建模,其最终对线性方程组进行求解。本文公开的方法采用一个步骤,其使用检测到的关键点作为边界条件来使模板网格变形,并在优化过程中采用不同的约束。图24是示出根据本公开的一些实现方式的示例性三角形的仿射变换的图。
在一些实施例中,从模板网格到预测网格的变形被认为是每个三角形的仿射变换的组合。三角形的仿射变换可定义为3×3矩阵T和平移向量d。如图24所示,在仿射变换之后变形的顶点的位置记为vi′=Tvi+d,i∈1...4,其中v1,v2,v3分别表示三角形的每个顶点,v4是在三角形的法线方向上引入的额外点,其满足等式v4=v1+(v2-v1)×(v3-v1)/sqrt(∣(v2-v1)×(v3-v1)∣)。在上述等式中,交叉乘积的结果归一化,使得交叉乘积的结果与三角形的边缘的长度成比例。引入v4的原因是因为三个顶点的坐标不足以确定唯一的仿射变换。在引入v4之后,获得推导等式:T=[v'2-v'1v'3-v'1v'4-v'1]×[v2-v1v3-v1v4-v1]-1,并确定矩阵T的非平移部分。由于矩阵V=[v2-v1v3-v1v4-v1]-1仅取决于模板网格、其它变形因子的不变性,因此该矩阵可预先计算为稀疏系数矩阵,以便稍后构建线性系统。
迄今为止,以数学公式表示仿射变换T的非平移部分。为了构建优化的线性系统,假设网格顶点的数量是N且三角形的数量是F,则考虑以下四个约束:
关键点位置的约束:Ek=Σi=1||v'i-c'i||2,c'i代表在网格变形之后检测到的关键点位置。
邻接平滑度的约束:Es=Σi=1Σj∈adj(i)||Ti-Tj||2,这意味着相邻三角形之间的仿射变换应尽可能相似。可提前查询并存储邻接关系,以避免重复计算并提高建立系统的性能。
特性的约束:Ei=Σi=1||Ti-I||2,其中I表示单位矩阵。该约束意味着仿射变换应尽可能地接近不变,这有助于保持模板网格的特性。
原始位置的约束:El=Σi=1N||v'I-ci||2,其中ci表示变形之前模板网格上的每个顶点的位置。
最终约束是上述约束的加权和:minE=wkEk+wsEs+wiEi+wlEl,其中权重wk,ws,wi,wl从最强到最弱排序。使用上述约束,可最终构建线性系统,其大小为(F+N)×(F+N),且权重与该系统中的对应系数相乘。除了针对每个三角形的额外点v'4之外,未知项是变形之后每个顶点的坐标。由于前一项有用,因此将丢弃v'4的结果。在连续变形的过程中,可重新使用除了关键点位置的约束之外的所有约束矩阵。对于具有数千个顶点的网格,仿射变换可以在普通个人计算机和智能手机上实现30fps的实时性能。
图25是示出根据本公开的一些实现方式的具有和不具有混合变形过程的一些头部模型变形结果的示例性比较的图。
在一些实施例中,当使游戏头像的头部模型变形时,感兴趣区域通常仅是面部。头部的顶部、后侧和颈部应保持不变,否则可导致头部和头发或躯干之间的网格穿透。为了避免该问题,模板网格和仿射变形的结果以混合变形的方式线性插值。用于混合的权重可以在3D建模软件中绘制,或者使用变化不大的双谐波或仿射变形来计算。例如,关键点上的权重设置为1s,同时在头部模型上添加更多标记(图25中的2504中的暗点),且这些标记的权重设置为0。在一些实施例中,在求解过程中添加不等式约束,以迫使所有权重落入从0到1的范围内,但是这样做将大大增加求解的复杂度。通过实验发现,通过截去小于0或大于1的权重,可获得良好的结果。如图25中的2504所示,具有最暗颜色的模型部分的权重是1s,且无色的模型部分的权重是0s。在弯曲权重渲染2504中,在亮的关键点与暗标记之间存在自然过渡。在存在混合变形的情况下,在变形之后模型的背侧(如图25中的2506所示)保持与原始背侧(如图25中的2502所示)相同。在不存在混合变形的情况下,在变形之后模型的背侧(如图25中的2508所示)不会保持与原始背侧(如图25中的2502所示)相同。
在一些实施例中,仿射变形可通过操纵约束的权重来实现不同的变形效果,包括模拟双谐波变形的结果。图26是示出根据本公开的一些实现方式的具有不同权重的仿射变形和双谐波变形的示例性比较的图。如图26所示,平滑度是邻接平滑度权重ws和特性权重wi之比。暗点是关键点,颜色的暗度表示顶点的变形位置和顶点的原始位置之间的位移。在所有变形结果中,一个关键点保持不变,另一个关键点移动到相同位置。这表明当相对于特性权重,逐渐增加邻接平滑度权重时,变形球体的平滑度也相应地增加。此外,双谐波变形的结果可与仿射变形的结果相匹配,其中平滑度落在10和100之间的某处。这表明与双谐波变形相比,仿射变形具有更大的变形自由度。
使用本文所述的工作流,游戏可容易地集成头部头像智能生成的功能。例如,图27示出了根据本公开的一些实现方式的使用现实模板模型从一些随机挑选的女性图片(图27未示出)自动地生成的一些示例性结果。所有个性化头部头像反映其对应图片的一些特性。
图28是示出根据本公开的一些实现方式的从现实生活中的人的2D面部图像生成3D头部变形模型的示例性过程的流程图2800。
从2D面部图像生成3D头部变形模型的过程包括步骤2810:接收二维(2D)面部图像,例如卷积神经网络。
该过程还包括步骤2820:基于人工智能(AI)模型,识别2D面部图像中的第一组关键点。
该过程额外包括步骤2830:基于位于3D头部模板模型上的一组用户提供的关键点标注,将第一组关键点映射到第二组关键点,第二组关键点位于3D头部模板模型的网格的多个顶点上。
该过程额外包括步骤2840:通过减小第一组关键点与第二组关键点之间的差异,对3D头部模板模型的网格执行变形,以获得变形后的3D头部网格模型。在一些实施例中,第一组中的关键点与第二组中的关键点之间存在对应关系。在将第二组关键点投影到与第一组关键点相同的空间中之后,生成测量第一组关键点中的每个关键点与第二组关键点之间的位置差异的函数。通过对3D头部模板模型的网格执行变形,当测量第一组关键点中的每个关键点与第二组关键点之间的位置差异(例如位置,邻接平滑度,特性等)的函数最小化时,优化空间中的第二组关键点。
该过程额外包括步骤2850:对变形后的3D头部网格模型应用混合变形方法,以根据2D面部图像获得个性化头部模型。
附加实现方式可包括以下特征中的一个或多个特征。
在一些实施例中,映射步骤2830可进一步包括:使2D面部图像上的第一组关键点与3D头部模板模型的网格上的多个顶点相关;基于位于3D头部模板模型的网格的多个顶点上的一组用户提供的关键点标注,来识别第二组关键点;以及基于由面部上的相应关键点所识别的对应特征,来映射第一组关键点和第二组关键点。
在一些实施例中,通过将先前计算的偏差应用于这一组用户提供的关键点标注,来定位第二组关键点。在一些实施例中,先前计算的偏差是在3D头部模板模型的先前一组AI识别的关键点与位于3D头部模板模型的网格的多个顶点上的先前一组用户提供的关键点标注之间。
在一些实施例中,执行变形的步骤2840可包括:通过使用第一组关键点到第二组关键点的映射,且通过使用与第一组关键点相关的变形的边界条件,将3D头部模板模型的网格变形成变形后的3D头部网格模型。
在一些实施例中,执行变形的步骤2840可进一步包括:在包括关键点位置、邻接平滑度、特性和原始位置中的一个或多个的变形优化的过程中,应用不同的约束。
在一些实施例中,执行变形的步骤2840可进一步包括:对变形过程应用约束,该约束是关键点位置、邻接平滑度、特性和原始位置中的一个或多个的加权和。
在一些实施例中,识别第一组关键点的步骤2820包括:使用卷积神经网络(CNN)。
在一些实施例中,变形包括不具有拉普拉斯算子的仿射变形。在一些实施例中,仿射变形通过改变平滑度参数来实现变形调节。
在一些实施例中,3D头部模板模型的网格可以在不与骨骼绑定的情况下变形。在一些实施例中,面部变形模型包括真实风格模型或卡通风格模型。
在一些实施例中,在步骤2850中,对变形后的3D头部网格模型应用混合变形方法包括:根据关键点的位置,在变形后的3D头部网格模型的关键点上指定相应的混合权重;以及对具有不同混合权重的关键点应用不同程度的变形。
在一些实施例中,在步骤2850中,对变形后的3D头部网格模型应用混合变形方法包括:使变形后的3D头部网格模型的背面保持与变形之前3D头部模板模型的原始背面形状相同的形状。
在一些实施例中,模板模型上的语义部分不限于眼睛、睫毛或牙齿。诸如眼镜的装饰可能通过在面部网格上添加并追寻(tracking)新的关键点而自适应地调整。
在一些实施例中,在模板模型上手动添加关键点。在一些其它实施例中,还可利用深度学习技术来自动地给不同的模板模型添加关键点。
在一些实施例中,仿射变形的求解过程可利用一些数字技巧,来进一步提高其计算性能。
在一些实施例中,本文公开的系统和方法形成基于轻加权的关键点的面部头像生成系统,其具有许多优点,例如下文列出的那些优点:
对输入图像的要求低。系统和方法不要求面部直接面对相机,且一定程度的平面内旋转、平面外旋转和遮挡将不会明显地影响性能。
适用于真实和卡通游戏。本系统不将游戏风格限制为真实游戏,本系统还可应用于卡通风格。
轻量和定制。本系统的每个模块相对轻量且适合于移动设备。该系统中的模块未耦合,用户可根据不同的游戏风格采用不同的组合来构建最终面部生成系统。
在一些实施例中,对于给定的单个照片,首先检测主面部,并执行关键点检测。在真实图片中,面部可能不面对相机,且真实面部并非始终是完美对称。因此,对原始图片中的关键点进行预处理,以实现一组一致、对称且平滑的关键点。然后,根据游戏的具体风格(例如放大的眼睛,瘦脸),对关键点进行调整。在得到风格化的关键点之后,风格化的关键点转换成游戏中的面部模型的控制参数,通常是骨骼参数或滑块参数。
在一些实施例中,真实面部的视角可以不直接面对相机,可能存在诸如左右不对称和关键点检测错误等问题。图29是示出根据本公开的一些实现方式的示例性关键点处理流程步骤的图。从原始图片2904检测到的关键点可以不直接使用,且需要某些处理。这里,该过程分成三个步骤:归一化,对称和平滑,如图29所示。
在一些实施例中,需要调整基于真实面部关键点预测的、游戏中的标准面部模型。该过程需要确保游戏中的标准面部模型和真实面部的关键点按尺寸、位置和方向对齐。因此,所预测的关键点和游戏面部模型上关键点的归一化2906包括以下部分:尺寸归一化,平移归一化和角度归一化。
在一些实施例中,原始检测的所有三维面部关键点定义为p,其中第i个关键点是pi={xi,yi,zi}。例如,归一化原点定义为第1关键点和第17关键点的中点(参见图1中对关键点的定义),即c=(p1+p17)/2。对于尺寸,第1关键点和第17关键点之间与原点相距的距离调整为1,使得按尺寸和平移归一化的三维关键点为p'=(p-c)/||p1-c||。
在一些实施例中,在使尺寸和平移归一化之后,还使面部方向归一化。如图29的图像2902所示,实际照片中的面部可能不直接面对镜头,将始终存在可存在于三个坐标轴上的特定偏转。沿着x,y和z坐标轴预测的面部的三维关键点依次旋转,使得面部的方向面对相机。当沿着x旋转时,关键点18和24的z坐标(参考图1中对关键点的定义)对齐,即,使得鼻梁的最上部分的深度与鼻子的底部位于相同的深度,以获得旋转矩阵RX。当沿着y轴旋转时,关键点1和17的z坐标对齐,以获得旋转矩阵RY。当沿着z轴旋转时,关键点1和17的y坐标对齐,以获得旋转矩阵RZ。因此,关键点的方向对齐,且归一化关键点如下所示:
P归一化=RZ×RY×RX×P'
在一些实施例中,归一化关键点的尺寸、位置和角度已调整为均匀的,但是所获得的关键点通常不是完美的面部。例如,鼻梁在中心处不是直线,且面部特征可能不对称。这是因为:由于表情或其自身的特性,导致照片中的真实面部并不是完美对称,且当预测关键点时将引入额外的误差。虽然真实面部可能不对称,但是如果游戏中的面部模型不对称,则会导致外观不美观,大大降低用户体验。因此,如2908所示的关键点对称是必要的过程。
因为关键点已归一化,所以在一些实施例中,简单对称方法是使所有左右对称关键点的y和z坐标平均化,以替换原始y和z坐标。该方法在大多数情况下好使,但是当面部在y轴方向上以大角度旋转时,将牺牲性能。
在一些实施例中,使用图29中的人脸作为示例,当面部向左偏转大角度时,一部分眉毛将不可见。同时,由于透视,导致左眼将小于右眼。虽然3D关键点可部分地补偿由透视关系造成的影响,但是对应于关键点的3D关键点的2D投影仍然需要保持在图片上。因此,过大的角度偏转将导致3D关键点检测结果中眼睛和眉毛的大小的明显差异。为了应对由角度造成的影响,当沿着y轴的面部偏转角度较大时,将靠近镜头的眼睛和眉毛作为主眼睛和主眉毛,且主眼睛和主眉毛复制到另一侧,以减小由角度偏转造成的误差。
在一些实施例中,由于关键点的预测误差不可避免,因此在一些单独的情况下,对称关键点可能仍然与真实面部不匹配。由于真实面部和面部特征的形状大为不同,因此难以使用预定参数化曲线来实现相对精确的描述。因此,当如2910所示的平滑时,仅使一些区域(例如面部轮廓,眼睛,眉毛,下唇等)平滑化。这些区域基本上保持单调且平滑,即,不存在凹凸不平的情况。在这种情况下,目标曲线应始终为凸曲线或凹曲线。
在一些实施例中,针对相关边界,逐一检查关键点是否满足凸曲线(或凹曲线)的定义。图30是示出根据本公开的一些实现方式的示例性关键点平滑过程2910的图。如图30所示,在不丧失一般性的情况下,目标曲线应该是凸曲线。对于每个关键点3002,3004,3006,3008和3010,检查其位置是否高于其左右相邻关键点的线。如果满足条件,则意味着当前关键点满足凸曲线要求。否则,使当前关键点向上移动到连接左右关键点的线。例如,在图30中,关键点3006不满足凸曲线的限制,将使关键点3006移动到位置3012。如果移动多个关键点,则在移动之后不能保证曲线是凸的或凹的。因此,在一些实施例中,使用多轮平滑来得到相对平滑的关键点曲线。
不同的游戏具有不同的面部风格。在一些实施例中,真实面部的关键点需要转换成游戏所需的风格。真实风格游戏面部类似,但是卡通面部大为不同。因此,难以对关键点的风格化实施统一标准。在实际使用中,风格化的定义来自于游戏的设计者,其根据特定游戏风格来调整面部的特性。
在一些实施例中,实施大多数游戏可能需要的、更一般的面部调整方案。例如面部长度调整,宽度调整,面部特征等。可根据不同的游戏艺术风格、调整级别、缩放比例等来进行定制校正。同时,用户还可定制任何特殊风格调整方法,例如将眼睛形状改成矩形。系统可支持任何调整方式。
在一些实施例中,利用风格化面部的关键点,使标准游戏面部变形,使得变形后的面部的关键点到达目标关键点的位置。由于大多数游戏使用诸如骨骼或滑块的控制参数来调整面部,因此需要一组控制参数来使关键点移动到目标位置。
由于骨骼或滑块的定义可以在不同游戏中变化,且存在随时修改的可能性,因此直接定义从关键点到骨骼参数的简单参数化函数,不再可行。在一些实施例中,使用机器学习方法,以通过神经网络将关键点转换成参数,神经网络被称为K2P(关键点到参数)网络。因为通用参数和关键点的数量不大(通常小于100),所以在一些实施例中,使用K层全连接网络。
图31是示出根据本公开的一些实现方式的示例性关键点到控制参数(K2P)转换过程的的框图。为了使用机器学习方法,在一些实施例中,首先对骨骼或滑块参数进行随机采样,将采样的骨骼或滑块参数送到游戏客户端3110,以及在所生成的游戏面部中提取关键点。以这种方式,可获得大量训练数据(参数3112和关键点3114对)。然后,实施自监督机器学习方法,该方法分成两个步骤:第一步骤是训练P2K(参数到关键点)网络3116,以模拟生成游戏参数到关键点的过程。在第二步骤中,使用大量未标记的真实面部图像3102,来根据本文描述的方法生成真实面部关键点3104,然后生成大量风格化关键点3106。这些未标记的风格化关键点3106是自监督学习训练数据。在一些实施例中,一组关键点K输入到K2P网络3108中,以进行学习而获得输出参数P。由于对应于这些关键点的理想参数的地面真值不可用,因此P进一步输入到在第一步骤中训练的P2K网络3116中,以获得关键点K'。在一些实施例中,通过计算K与K'之间的均方误差(MSE)损失,可学习K2P网络3108。在一些实施例中,在第二步骤期间,P2K网络3116被固定且将不继续进行调整。借助于P2K网络3116,使用神经网络来模拟控制游戏客户端3110的参数到关键点的过程,从而对第二步骤中K2P网络3108的学习奠定基础。以这种方式,由参数生成的最终面部保持接近所生成的目标风格化面部的关键点。
在一些实施例中,当计算K与K'之间的MSE损失时,同时通过调整对应的权重,来给某些关键点(例如眼睛的关键点)添加权重。由于关键点的定义是预定的,且不会受到游戏客户端的骨骼或滑块的影响,因此更易于调整权重。
在一些实施例中,在实际应用中,为了提高模型的精确度,对于可以不耦合的部分,可单独对神经网络进行训练。例如,如果一些骨骼参数仅影响眼睛区域的关键点,而其它参数对该区域没有影响,则这些参数和这一部分关键点形成一组独立区域。针对每一组此类区域,训练单独的K2P模型3108,且每个模型可采用更轻量的网络设计。这不仅可进一步提高模型的精确度,而且还降低计算复杂度。
图32示出了根据本公开的一些实现方式的移动游戏的自动面部生成的一些示例性结果。如图32所示,示出了从原始面部图像(3202和3206)到游戏面部头像图像生成(3204和3208)的结果。在一些实施例中,当风格化时,张开的嘴巴闭合,对鼻子、嘴巴、面部形状、眼睛和眉毛应用不同水平的限制和卡通化。最终生成的结果仍然保留某些人脸特性并满足游戏风格的美学要求。
图33是示出根据本公开的一些实现方式的使用现实生活中的人的2D面部图像来定制游戏中的头像的标准面部的示例性过程的流程图3300。
使用现实生活中的人的2D面部图像来定制游戏中的头像的标准面部的过程包括步骤3310:识别2D面部图像中的一组现实生活关键点。
该过程还包括步骤3320:将这一组现实生活关键点转换成与游戏中的头像相关联的一组游戏风格关键点。
该过程额外包括步骤3330:通过将关键点到参数(K2P)神经网络模型应用于这一组头像关键点,生成游戏中的头像的标准面部的一组面部控制参数,这一组面部控制参数中的每个面部控制参数与标准面部的多个面部特征之一相关。如上文结合图31所描述的,K2P网络3108是深度学习神经网络模型,其基于一组输入头像关键点来预测一组面部控制参数,因为不同组的头像关键点可对应于不同组的面部控制参数,使得当一组面部控制参数应用于头像的标准面部时,调整后的标准面部的关键点可具有类似于这一组输入头像关键点的一组关键点。
该过程额外包括步骤3340:通过将这一组面部控制参数应用于标准面部,调整标准面部的多个面部特征。
附加实现方式可包括以下特征中的一个或多个特征。
在一些实施例中,在步骤3330中,如下训练K2P神经网络模型:获得现实生活中的人的多个训练2D面部图像;针对多个训练2D面部图像中的每个训练2D面部图像,生成一组训练游戏风格或头像关键点;将每一组训练游戏风格关键点提交到K2P神经网络模型,以获得一组控制参数;将这一组控制参数提交到预训练的参数到关键点(P2K)神经网络模型,以获得对应于这一组训练游戏风格关键点的一组预测游戏风格关键点;通过减小这一组训练游戏风格关键点与对应的一组预测游戏风格关键点之间的差异,更新K2P神经网络模型。如上文结合图31所描述的,与K2P网络3108相反,P2K网络3116是深度学习神经网络模型,其基于一组输入面部控制参数来预测一组头像关键点,因为不同组的面部控制参数可引起不同组的头像关键点,使得当认为两个神经网络模型执行彼此的逆过程时,与P2K网络3116相关联的一组输出头像关键点应匹配与K2P网络3108相关联的一组输入头像关键点。
在一些实施例中,预训练的P2K神经网络模型配置成:接收一组控制参数,这一组控制参数包括与游戏中的头像相关联的骨骼或滑块参数;以及根据这一组控制参数来预测游戏中的头像的一组游戏风格关键点。
在一些实施例中,一组训练游戏风格关键点与对应的一组预测游戏风格关键点之间的差异是这一组训练游戏风格关键点与对应的一组预测游戏风格关键点之间的均方误差之和。
在一些实施例中,训练后的K2P神经网络模型和预训练的P2K神经网络模型特定于游戏。
在一些实施例中,2D面部图像中的一组现实生活关键点对应于2D面部图像中的现实生活中的人的面部特征。
在一些实施例中,游戏中的头像的标准面部可根据不同现实生活中的人的面部图像而定制成游戏的不同角色。
在一些实施例中,头像的变形面部是现实生活中的人的卡通风格面部。在一些实施例中,头像的变形面部是现实生活中的人的真实风格面部。
在一些实施例中,在步骤3320中,将这一组现实生活关键点转换成一组游戏风格关键点包括:使这一组现实生活关键点归一化到正则空间中;使归一化的一组现实生活关键点对称;以及根据与游戏中的头像相关联的预定风格,调整对称后的一组现实生活关键点。
在一些实施例中,使这一组现实生活关键点归一化到正则空间中包括:将这一组现实生活关键点缩放到正则空间中;以及根据2D面部图像中的一组现实生活关键点的定向来旋转缩放后的一组现实生活关键点。
在一些实施例中,将这一组现实生活关键点转换成一组游戏风格关键点进一步包括:使一组对称关键点平滑化,以满足预定凸的或凹的曲线要求。
在一些实施例中,根据与游戏中的头像相关联的预定风格,调整对称后的一组现实生活关键点包括:面部长度调整、面部宽度调整、面部特征调整、缩放调整和眼睛形状调整中的一个或多个。
本文公开的系统和方法可应用于各种游戏(真实风格游戏和卡通风格游戏两者)的自动面部生成系统。该系统具有易于合并的接口,提高了用户体验。
在一些实施例中,本文公开的系统和方法可以在用于各种游戏的3D面部头像生成系统中使用,并使复杂的手动调节过程自动化,以提高用户体验。用户可进行自拍或上传已有照片。系统可以从照片中的面部提取特征,然后通过AI面部生成系统自动地生成游戏面部(例如骨骼或滑块)的控制参数。游戏端使用这些参数生成面部头像,使得所创建的面部具有用户的面部特征。
在一些实施例中,该系统可根据不同的游戏来容易地进行定制,包括关键点定义,风格化方法,骨骼/滑块的定义等等。用户可选择仅调整某些参数,自动地重新训练模型,或者添加定制控制算法。以这种方式,本发明可容易地部署到不同的游戏。
进一步的实施例还包括上述实施例的各个子集在各种其它实施例中组合或以其它方式重新排列。
其中,本申请的实施例的图像处理装置参考附图的描述来实现。图像处理装置可以以各种形式实现,例如不同类型的计算机设备,例如服务器或终端(例如台式计算机、笔记本计算机或智能手机)。下文进一步描述本申请的实施例的图像处理装置的硬件结构。可以理解,图34仅示出了图像处理装置的示例性结构,而不是所有结构,且可根据需要实现图34所示的部分或全部结构。
参考图34,图34是根据本申请的实施例的图像处理装置的可选硬件结构的示意图,在实际应用中,可应用于服务器或运行应用程序的各种终端。图34所示的图像处理装置3400包括:至少一个处理器3401、存储器3402、用户接口3403和至少一个网络接口3404。图像处理装置3400中的组件通过总线系统3405耦接在一起。可以理解,总线3405配置成实现组件之间的连接和通信。总线系统3405除了包括数据总线之外,还可包括电源总线、控制总线和状态信号总线。然而,为了清楚解释的目的,在图34中,所有总线都标记为总线系统3405。
用户接口3403可包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触摸板、触摸屏等。
可以理解,存储器3402可以是易失性存储器或非易失性存储,或者可包括易失性存储器和非易失性存储器。
在本申请的实施例中,存储器3402配置成存储不同类型的数据以支持图像处理装置3400的操作。数据的示例包括:用于在图像处理装置3400上执行操作的任何计算机程序,例如可执行程序34021和操作系统34022,用于执行本申请的实施例的图像处理方法的程序可包括在可执行程序34021中。
本申请的实施例中公开的图像处理方法可应用于处理器3401,或者可由处理器3401执行。处理器3401可以是集成电路芯片并具有信号处理能力。在实现过程中,图像处理方法的每个步骤可通过使用处理器3401中的硬件的集成逻辑电路或软件形式的指令来完成。上述处理器3401可以是通用处理器、数字信号处理器(DSP)、另一可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件等。处理器3401可实现或执行本申请的实施例中提供的方法、步骤和逻辑框图。通用处理器可以是微处理器、任何常规处理器等。本申请的实施例中提供的方法中的步骤可由硬件解码处理器直接执行,或者可通过将解码处理器中的硬件和软件模块相结合来执行。软件模块可位于存储介质中。存储介质位于存储器3402中。处理器3401读取存储器3402中的信息,并通过将该信息与其硬件相结合来执行本申请的实施例中提供的图像处理方法的步骤。
在一些实施例中,图像处理和3D面部和头部形成,可以在一组服务器或网络上的云上完成。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,计算机可读存储介质对应于诸如数据存储介质的有形介质或者通信介质,通信介质包括便于例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或者一个或多个处理器访问以获取用于实现本申请中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
在本文的实现方式的描述中使用的术语仅仅是为了描述特定实现方式,并不旨在限制权利要求的范围。如在实现方式和所附的权利要求的描述中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应理解,如本文使用的术语“和/或”指的是并包括一个或多个相关所列项的任何和所有可能的组合。应进一步理解,当在本说明书中使用术语“包括”和/或“包含”时,这些术语指明所述的特征、元件和/或组件的存在,但是不排除一个或多个其它特征、元件、组件和/或其群组的存在或添加。
还应理解,虽然术语第一、第二等可以在本文中使用以描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实现方式的范围的情况下,第一电极可被称为第二电极,类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但不是同一电极。
本申请的描述是出了说明和描述的目的而提出,并不旨在穷举或将本发明限制为所公开的形式。受益于前述描述和相关联的附图中给出的教导,许多修改、变化和替代实现方式对于本领域普通技术人员来说将是显而易见的。选择和描述实施例,以最好地解释本发明的原理、实际应用,并使本领域的技术人员能够从各种实现方式方面理解本发明,且最好地利用潜在原理、各种实现方式以及适合于预期的特定用途的各种修改。因此,应理解,权利要求的范围不限于所公开的实现方式的具体示例,修改和其它实现方式旨在包括在所附的权利要求的范围内。

Claims (20)

1.一种从对象的二维(2D)面部图像提取颜色的方法,包括:
基于关键点预测模型,识别所述2D面部图像中的多个关键点;
旋转所述2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐;
在旋转后的2D面部图像中定位多个部分,每个部分由所识别的多个关键点的相应子集限定;
根据所述2D面部图像的像素值提取所述多个部分中的每个部分的颜色;以及
使用所提取的颜色,生成所述对象的三维(3D)模型,所述3D模型与所述2D面部图像的相应面部特征颜色相匹配。
2.根据权利要求1所述的方法,其中,所述关键点预测模型根据用户手动标注的关键点基于机器学习而形成。
3.根据权利要求1所述的方法,其中,用于对齐的所述多个目标关键点位于所述2D面部图像的左右对称侧。
4.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括:选择对应部分内的相应限定区域中的所有像素的R值、G值和B值各自的中间值,作为预测平均颜色。
5.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括:确定皮肤部分内用于皮肤颜色提取的区域;以及选择所述用于皮肤颜色提取的区域中的所有像素的R值、G值和B值各自的中间值,作为所述皮肤部分的预测平均颜色。
6.根据权利要求5所述的方法,其中,皮肤部分内所述用于皮肤颜色提取的区域被确定为面部上位于眼睛下方且位于鼻子下边缘上方的区域。
7.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括眉毛部分内的眉毛颜色提取,所述眉毛部分内的眉毛颜色提取包括:
对应于确定出一个眉毛位于更接近所述2D面部图像的观看者的一侧,选择所述一个眉毛作为目标眉毛;
对应于确定出两个眉毛相等地接近所述2D面部图像的观看者,选择所述两个眉毛作为目标眉毛;
提取一个或多个所述目标眉毛内的一个或多个中间眉毛区域;
将所述一个或多个中间眉毛区域内的每个像素值与平均皮肤颜色进行比较;
收集所述一个或多个中间眉毛区域内像素值与所述平均皮肤颜色之差超出阈值的像素;以及
选择用于所述眉毛颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为所述眉毛部分的预测平均颜色。
8.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括眼睛部分内的瞳孔颜色提取,所述眼睛部分内的瞳孔颜色提取包括:
对应于确定出一只眼睛位于更接近所述2D面部图像的观看者的一侧,选择所述一只眼睛作为目标眼睛;
对应于确定出两只眼睛相等地接近所述2D面部图像的观看者,选择所述两只眼睛作为目标眼睛;
提取一个或多个所述目标眼睛内没有睫毛的区域;
将所提取的区域内的每个像素值与预定阈值进行比较;
收集所提取的区域内像素值超出所述预定阈值的像素;以及
选择用于所述瞳孔颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为所述瞳孔的预测平均颜色。
9.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括嘴唇部分内的嘴唇颜色提取,所述嘴唇部分内的嘴唇颜色提取包括:
收集由下唇部的关键点包围的区域中的所有像素;以及
选择用于所述嘴唇颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为所述嘴唇部分的预测平均颜色。
10.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括头发部分内的头发颜色提取,所述头发部分内的头发颜色提取包括:
对包括有前额从两侧延伸到头发部分中的部分的区域进行识别;
从所述区域的中间到左边界和右边界,确定超出预定阈值的像素颜色变化;
基于超出预定阈值的所述像素颜色变化,将所述区域划分成头发区域和皮肤区域;以及
选择所述区域内的所述头发区域的像素的R值、G值和B值各自的中间值,作为所述头发部分的预测平均颜色。
11.根据权利要求10所述的方法,其中,包括有前额从两侧延伸到头发部分中的部分的所述区域被识别为矩形区域,所述矩形区域的下边界在两个眉毛拐角处,所述左边界和所述右边界在与位于所述2D面部图像的左右对称侧的关键点向外相距固定距离处,以及所述矩形区域的高度等于从所述眉毛的上边缘到眼睛的下边缘的距离。
12.根据权利要求1所述的方法,其中,提取所述多个部分中的每个部分的颜色包括眼影部分内的眼影颜色提取,所述眼影部分内的眼影颜色提取包括:
对应于确定出一只眼睛位于更接近所述2D面部图像的观看者的一侧,选择所述一只眼睛作为目标眼睛;
对应于确定出两只眼睛相等地接近所述2D面部图像的观看者,选择所述两只眼睛作为目标眼睛;
提取一个或多个所述眼影部分内接近所述目标眼睛的一个或多个中间区域;
收集所提取的一个或多个中间区域内满足以下各项的像素:亮度高于预定亮度阈值以排除睫毛,并且像素色调值与平均皮皮肤颜色调值之差超出预定阈值;
对应于确定出所提取的一个或多个中间区域内的一个像素列中所收集的像素的数量大于阈值,将所述像素列标记为眼影列;以及
对应于确定出所述眼影列与所提取的一个或多个中间区域的宽度之比大于特定阈值,选择用于所述眼影颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为所述眼影部分的预测眼影颜色。
13.根据权利要求1所述的方法,进一步包括:基于根据所述2D面部图像的像素值提取的颜色来转换所述2D面部图像的纹理图并同时保留所述纹理图的原始亮度和色差,这包括:
将所提取的颜色从RGB颜色空间表示转换成HSV(色调,饱和度,亮度)颜色空间表示;以及
调整所述纹理图的颜色,以减小所提取的颜色的中间HSV值与所述纹理图的中间HSV值像素之差。
14.一种电子装置,包括一个或多个处理单元、耦接到所述一个或多个处理单元的存储器、以及存储在所述存储器中的多个程序,当所述多个程序由所述一个或多个处理单元执行时,所述多个程序使得所述电子装置执行从对象的二维(2D)面部图像提取颜色的多个操作,所述多个操作包括:
基于关键点预测模型,识别所述2D面部图像中的多个关键点;
旋转所述2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐;
在旋转后的2D面部图像中定位多个部分,每个部分由所识别的多个关键点的相应子集限定;
根据所述2D面部图像的像素值提取所述多个部分中的每个部分的颜色;以及
使用所提取的颜色,生成所述对象的三维(3D)模型,所述3D模型与所述2D面部图像的相应面部特征颜色相匹配。
15.根据权利要求14所述的电子装置,其中,所述关键点预测模型根据用户手动标注的关键点基于机器学习而形成。
16.根据权利要求14所述的电子装置,其中,提取所述多个部分中的每个部分的颜色包括:选择对应部分内的相应限定区域中的所有像素的R值、G值和B值各自的中间值,作为预测平均颜色。
17.根据权利要求14所述的电子装置,其中,提取所述多个部分中的每个部分的颜色包括头发部分内的头发颜色提取,所述头发部分内的头发颜色提取包括:
对包括有前额从两侧延伸到头发部分中的部分的区域进行识别;
从所述区域的中间到左边界和右边界,确定超出预定阈值的像素颜色变化;
基于超出预定阈值的所述像素颜色变化,将所述区域划分成头发区域和皮肤区域;以及
选择所述区域内的所述头发区域的像素的R值、G值和B值各自的中间值,作为所述头发部分的预测平均颜色。
18.根据权利要求14所述的电子装置,其中,提取所述多个部分中的每个部分的颜色包括眼影部分内的眼影颜色提取,所述眼影部分内的眼影颜色提取包括:
对应于确定出一只眼睛位于更接近所述2D面部图像的观看者的一侧,选择所述一只眼睛作为目标眼睛;
对应于确定出两只眼睛相等地接近所述2D面部图像的观看者,选择所述两只眼睛作为目标眼睛;
提取一个或多个所述眼影部分内接近所述目标眼睛的一个或多个中间区域;
收集所提取的一个或多个中间区域内满足以下各项的像素:亮度高于预定亮度阈值以排除睫毛,并且像素色调值与平均皮皮肤颜色调值之差超出预定阈值;
对应于确定出所提取的一个或多个中间区域内的一个像素列中所收集的像素的数量大于阈值,将所述像素列标记为眼影列;以及
对应于确定出所述眼影列与所提取的中间区域的宽度之比大于特定阈值,选择用于所述眼影颜色提取的、所收集的像素的R值、G值和B值各自的中间值,作为所述眼影部分的预测眼影颜色。
19.根据权利要求14所述的电子装置,其中,所述多个操作进一步包括:基于根据所述2D面部图像的像素值提取的颜色来转换所述2D面部图像的纹理图并同时保留所述纹理图的原始亮度和色差,这包括:
将所提取的颜色从RGB颜色空间表示转换成HSV(色调,饱和度,亮度)颜色空间表示;以及
调整所述纹理图的颜色,以减小所提取的颜色的中间HSV值与所述纹理图的中间HSV值像素之差。
20.一种非暂时性计算机可读存储介质,存储有多个程序,所述多个程序由电子装置执行,所述电子装置具有一个或多个处理单元,其中,当所述多个程序由所述一个或多个处理单元执行时,所述多个程序使得所述电子装置执行从对象的二维(2D)面部图像提取颜色的多个操作,所述多个操作包括:
基于关键点预测模型,识别所述2D面部图像中的多个关键点;
旋转所述2D面部图像,直到来自所识别的多个关键点中的多个目标关键点与标准面部的对应目标关键点对齐;
在旋转后的2D面部图像中定位多个部分,每个部分由所识别的多个关键点的相应子集限定;
根据所述2D面部图像的像素值提取所述多个部分中的每个部分的颜色;以及
使用所提取的颜色,生成所述对象的三维(3D)模型,所述3D模型与所述2D面部图像的相应面部特征颜色相匹配。
CN202280008265.9A 2021-03-15 2022-02-28 用于从面部图像提取颜色的方法和系统 Pending CN116648733A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/202,116 US11461970B1 (en) 2021-03-15 2021-03-15 Methods and systems for extracting color from facial image
US17/202,116 2021-03-15
PCT/US2022/018204 WO2022197429A1 (en) 2021-03-15 2022-02-28 Methods and systems for extracting color from facial image

Publications (1)

Publication Number Publication Date
CN116648733A true CN116648733A (zh) 2023-08-25

Family

ID=83194942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008265.9A Pending CN116648733A (zh) 2021-03-15 2022-02-28 用于从面部图像提取颜色的方法和系统

Country Status (6)

Country Link
US (1) US11461970B1 (zh)
EP (1) EP4268198A4 (zh)
JP (1) JP7462120B2 (zh)
KR (1) KR20230085931A (zh)
CN (1) CN116648733A (zh)
WO (1) WO2022197429A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819921B (zh) * 2020-11-30 2023-09-26 北京百度网讯科技有限公司 用于改变人物的发型的方法、装置、设备和存储介质
CN116489299A (zh) * 2022-01-13 2023-07-25 祖玛视频通讯公司 视频通信平台中的化身生成
CN117690178B (zh) * 2024-01-31 2024-04-05 江西科技学院 一种基于计算机视觉的人脸图像识别方法与系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781650A (en) * 1994-02-18 1998-07-14 University Of Central Florida Automatic feature detection and age classification of human faces in digital images
AUPR541801A0 (en) * 2001-06-01 2001-06-28 Canon Kabushiki Kaisha Face detection in colour images with complex background
CN1313979C (zh) * 2002-05-03 2007-05-02 三星电子株式会社 产生三维漫画的装置和方法
US20110298799A1 (en) * 2008-06-03 2011-12-08 Xid Technologies Pte Ltd Method for replacing objects in images
TWI443601B (zh) * 2009-12-16 2014-07-01 Ind Tech Res Inst 擬真臉部動畫系統及其方法
EP2689396A4 (en) * 2011-03-21 2015-06-03 Intel Corp PROCESS FOR ADVANCED CHANGES WITH 3D FACE MODELING AND MARKING ALIGNMENT
US9378586B2 (en) * 2013-02-21 2016-06-28 Seoul National University Industry Foundation Method of smart grading based on parameterized draft
US20160070952A1 (en) * 2014-09-05 2016-03-10 Samsung Electronics Co., Ltd. Method and apparatus for facial recognition
KR101997500B1 (ko) * 2014-11-25 2019-07-08 삼성전자주식회사 개인화된 3d 얼굴 모델 생성 방법 및 장치
US10796480B2 (en) * 2015-08-14 2020-10-06 Metail Limited Methods of generating personalized 3D head models or 3D body models
WO2017149315A1 (en) * 2016-03-02 2017-09-08 Holition Limited Locating and augmenting object features in images
WO2017177259A1 (en) * 2016-04-12 2017-10-19 Phi Technologies Pty Ltd System and method for processing photographic images
US10559111B2 (en) * 2016-06-23 2020-02-11 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
CN117193617A (zh) 2016-09-23 2023-12-08 苹果公司 头像创建和编辑
CN108960020A (zh) * 2017-05-27 2018-12-07 富士通株式会社 信息处理方法和信息处理设备
WO2018232717A1 (zh) * 2017-06-23 2018-12-27 中国科学院自动化研究所 基于透视失真特性的人脸图像鉴伪方法、存储、处理设备
US10636193B1 (en) * 2017-06-29 2020-04-28 Facebook Technologies, Llc Generating graphical representation of a user's face and body using a monitoring system included on a head mounted display
RU2697627C1 (ru) * 2018-08-01 2019-08-15 Самсунг Электроникс Ко., Лтд. Способ корректировки освещенности объекта на изображении в последовательности изображений и вычислительное устройство пользователя, реализующее упомянутый способ
US11461931B2 (en) * 2019-04-23 2022-10-04 L'oreal Machine image colour extraction and machine image construction using an extracted colour
KR102180576B1 (ko) 2020-05-18 2020-11-18 주식회사 일루니 사용자의 플레잉에 기초하여 재프로그래밍되는 인터랙티브 콘텐츠 제공 방법 및 장치

Also Published As

Publication number Publication date
WO2022197429A1 (en) 2022-09-22
US11461970B1 (en) 2022-10-04
JP2024503794A (ja) 2024-01-29
US20220292774A1 (en) 2022-09-15
KR20230085931A (ko) 2023-06-14
EP4268198A1 (en) 2023-11-01
EP4268198A4 (en) 2024-06-19
JP7462120B2 (ja) 2024-04-04

Similar Documents

Publication Publication Date Title
US10559111B2 (en) Systems and methods for generating computer ready animation models of a human head from captured data images
US10169905B2 (en) Systems and methods for animating models from audio data
US11562536B2 (en) Methods and systems for personalized 3D head model deformation
JP7200139B2 (ja) 仮想顔化粧の除去、高速顔検出およびランドマーク追跡
US11587288B2 (en) Methods and systems for constructing facial position map
US9058765B1 (en) System and method for creating and sharing personalized virtual makeovers
WO2017149315A1 (en) Locating and augmenting object features in images
JP7462120B2 (ja) 2次元(2d)顔画像から色を抽出するための方法、システム及びコンピュータプログラム
CN113628327A (zh) 一种头部三维重建方法及设备
CN117157673A (zh) 用于形成个性化的3d头部和面部模型的方法和系统
US20240029345A1 (en) Methods and system for generating 3d virtual objects
US10803677B2 (en) Method and system of automated facial morphing for eyebrow hair and face color detection
US20210074076A1 (en) Method and system of rendering a 3d image for automated facial morphing
Zhao 3D Human Face Reconstruction and 2D Appearance Synthesis
CN118103873A (zh) 用于半监督视频驱动的面部动画迁移的系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40093444

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination