CN111815768B - 三维人脸重建方法和装置 - Google Patents

三维人脸重建方法和装置 Download PDF

Info

Publication number
CN111815768B
CN111815768B CN202010959321.XA CN202010959321A CN111815768B CN 111815768 B CN111815768 B CN 111815768B CN 202010959321 A CN202010959321 A CN 202010959321A CN 111815768 B CN111815768 B CN 111815768B
Authority
CN
China
Prior art keywords
dimensional
point
face
current
contour
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010959321.XA
Other languages
English (en)
Other versions
CN111815768A (zh
Inventor
叶青云
曹玮剑
曹煊
葛彦昊
汪铖杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010959321.XA priority Critical patent/CN111815768B/zh
Publication of CN111815768A publication Critical patent/CN111815768A/zh
Application granted granted Critical
Publication of CN111815768B publication Critical patent/CN111815768B/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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • 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
    • 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/174Facial expression recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种三维人脸重建方法、装置、计算机设备和存储介质。该方法包括:获取待重建人脸图像,定位二维参考点;获取当前三维五官点和待处理三维轮廓点;基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;根据更新姿态特征选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算更新形变特征;基于更新姿态特征将更新三维轮廓点和当前三维五官点投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤;基于满足第一收敛条件的更新形变特征和更新姿态特征进行重建,得到目标三维人脸。采用本方法提高了三维人脸重建的准确性。

Description

三维人脸重建方法和装置
技术领域
本申请涉及互联网技术领域,特别是涉及一种三维人脸重建方法、装置、计算机设备和存储介质。
背景技术
随着人工智能和三维技术的发展,出现了三维人脸重建技术,三维人脸重建是计算机视觉和计算机图形学中的一个重要研究课题,广泛应用于人脸识别、人机交互、三维动画领域中。目前,大多是对人脸的三维重建,只有在人脸离摄像机足够远,人脸特征点的位置比较集中的情况下才能正常进行三维人脸重建。然而,在当摄像机与人脸距离较近的时候,对人脸进行三维重建时会产生不真实的效果,从而使得重建的三维人脸不够准确。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高三维人脸重建准确性的三维人脸重建方法、装置、计算机设备和存储介质。
一种三维人脸重建方法,所述方法包括:
获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;
从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;
基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;
根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;
基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
在其中一个实施例中,更新形变特征包括更新表情特征和更新身份特征;
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸,包括:
获取三维人脸形变模型,将满足第一收敛条件的更新表情特征和更新身份特征输入到三维人脸形变模型中,得到三维形变人脸;
基于满足第一收敛条件的更新姿态特征对三维形变人脸进行姿态变换,得到目标三维人脸。
在其中一个实施例中,在基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸之后,包括:
获取待重建视频帧中目标物体对应的三维物体,基于满足第一收敛条件的更新姿态特征将三维物体进行姿态转换,得到目标三维物体;
基于目标三维物体和目标三维人脸进行遮挡检测,得到人脸遮挡区域,基于遮挡区域根据三维人脸和目标三维物体生成目标人脸视频帧。
一种三维人脸重建装置,所述装置包括:
二维点定位模块,用于获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;
三维点获取模块,用于从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;
姿态更新模块,用于基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;
形变特征计算模块,用于根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;
投影模块,用于基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;
三维重建模块,用于基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;
从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;
基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;
根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;
基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;
从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;
基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;
根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;
基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
上述三维人脸重建方法、装置、计算机设备和存储介质,通过获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,然后根据当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征,使用更新姿态特征从当前三维人脸中选取更新三维轮廓点,在每次迭代时,使用更新姿态特征进行三维轮廓点的选取,从而能够选取到更加准确的三维轮廓点,然后使用更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征,使得每次迭代时,使用更新三维轮廓点和当前三维五官点计算更新形变特征,从而能够得到更加准确的更新形变特征,然后在满足收敛条件时,使用更新形变特征和更新姿态特征进行三维人脸重建,由于使用更新形变特征和更新姿态特征进行三维人脸重建,避免了在对人脸进行三维重建时产生不真实效果的问题,使重建的三维人脸更加的准确。
附图说明
图1为一个实施例中三维人脸重建方法的应用环境图;
图2为一个实施例中三维人脸重建方法的流程示意图;
图2a为一个具体实施例中二维点和三维点对应关系的示意图;
图2b为一个具体实施例中透视投影成像的效果示意图;
图3为一个实施例中满足第一收敛条件的流程示意图;
图4为一个实施例中得到第一误差信息的流程示意图;
图5为一个实施例中确定二维参考点的流程示意图;
图6为一个实施例中得到待处理三维轮廓点的流程示意图;
图7为一个实施例中得到目标焦距的流程示意图;
图8为一个实施例中得到起始姿态特征的流程示意图;
图9为一个实施例中得到更新姿态特征的流程示意图;
图10为另一个实施例中得到更新姿态特征的流程示意图;
图11为一个实施例中得到更新三维轮廓点的流程示意图;
图12为一个具体实施例中三维轮廓点和二维轮廓点的示意图;
图13为一个具体实施例中三维人脸轮廓点区域的示意图;
图14为一个具体实施例中三维人脸模型上轮廓线的示意图;
图15为一个实施例中得到三维边缘点的流程示意图;
图16为一个实施例中得到目标三维人脸的流程示意图;
图17为一个实施例中得到目标人脸视频帧的流程示意图;
图18为一个具体实施例中得到目标人脸视频帧的示意图;
图19为一个具体实施例中三维人脸重建方法的示意图;
图20为一个实施例中三维人脸重建装置的结构框图;
图21为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能***。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
本申请实施例提供的方案涉及人工智能的三维物体重建等技术,具体通过如下实施例进行说明:
本申请提供的三维人脸重建方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;终端102从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;终端102基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;终端102基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;终端102基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸,终端102可以将目标三维人脸发送服务器104。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种三维人脸重建方法,以该方法应用于图1中的终端为例进行说明,可以理解的是,该方法也可以应用于服务器。本实施例中,该方法包括以下步骤:
步骤202,获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点。
其中,待重建人脸图像是指需要进行三维人脸重建的图像,该人脸图像可以是视频中的人脸视频帧。 二维参考点是对待重建人脸图像中的人脸关键点进行识别得到的,用于作为透视投影时的参考点。包括二维五官点和二维轮廓点。二维五官点是指识别得到的人脸中的二维的五官点位置坐标。二维轮廓点指识别得到的人脸中的二维的轮廓点位置坐标。
具体地,终端可以通过摄像机采集到人脸视频,从人脸视频中获取到待重建人脸图像,该待重建人脸图像可以是视频的起始帧,也可以是人脸视频的非起帧。终端还可以直接获取到待重建人脸图像,比如,终端获取到内存中保存的待重建人脸图像,也可以从内存中保存的人脸视频中获取到待重建人脸图像,终端也可以从互联网中获取到待重建人脸图像,比如可以是从视频网站,直播网站、人脸图片网站获取到待重建人脸图像等等。终端还可以从服务器中获取到待重建人脸图像。然后终端使用人脸关键点定位算法定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点。比如,可以通过人脸检测算法和人脸配准算法来定位待重建人脸图像的二维参考点。如图2a所示,为二维点和三维点的对应关系示意图,其中,通过人脸关键点定位后得到的二维参考点中二维轮廓点是当前姿态下人脸的轮廓,是无法在三维人脸模型上事先指定的。而除二维轮廓点以外的点是可以在三维人脸模型中绑定对应关系的。比如,将二维五官点与三维人脸模型中对应的三维五官点建立绑定关系。
步骤204,从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点。
其中,当前三维人脸是指根据平均三维人脸模型得到的待重建人脸图像对应的当前三维人脸。平均三维人脸模型是指预先设置好的三维人脸。当前三维五官点是指当前三维人脸中三维点位置定义为五官的三维点,该位置定义是平均三维人脸模型对每个三维点的位置定义预先设置好的。即当前三维人脸与平均三维人脸模型是用相同的点云数或面片数来表示的,且相同序号的点代表相同的语义,例如,每一个人脸形状中第2217个面片顶点都是左外眼角点。待处理三维轮廓点是指根据待重建人脸图像获取得到的三维轮廓点。
具体地,终端获取到平均三维人脸模型。根据平均三维人脸模型得到待重建人脸图像对应的当前三维人脸,然后根据当前三维人脸中每个点的位置定义选取当前三维五官点。比如,终端可以使用线性3DMM(3D Morphable Models,三维人脸形变模型)模型得到当前三维人脸。然后根据待重建人脸图像是否为起始人脸视频帧来获取对应的待处理三维轮廓点。
步骤206,基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征。
其中,更新姿态特征是指在最小化投影误差下对应的姿态特征。最小化投影误差是指当前三维五官点与待处理三维轮廓点的透视投影与二维参考点之间的投影误差最小化。姿态估计是指基于透视投影进行姿态特征的估计。姿态特征用于表征人脸的姿态。
具体地,终端将当前三维五官点与待处理三维轮廓点进行透视投影变换,然后估计最小化投影误差下的姿态特征,得到更新姿态特征。其中,如图2b所示,为透视投影成像的效果示意图,其中,对象人通过透视投影得到二维图像。
步骤208,根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征。
其中,更新三维轮廓点是指将当前三维人脸按照更新姿态特征进行姿态转换后得到的三维轮廓点。更新形变特征是指根据更新三维轮廓点和当前三维五官点基于三维人脸形变模型得到的形变特征,形变特征用于表征人脸的形态,该形变特征包括表情特征和身份特征。表情特征是指用于表示人脸形状信息的特征,身份特征是指用于表示人脸纹理信息的特征。
具体地,终端根据更新姿态特征将当前三维人脸进行姿态转换,从姿态转换后的三维人脸中选取三维轮廓点作为更新三维轮廓点,然后基于三维人脸形变模型根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征。
步骤210,基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点。
其中,透视投影属于中心投影。透视投影图简称为透视图或透视,它是从某个投射中心将物体投射到单一投影面上所得到的图形。第一误差信息是指二维投影点和二维参考点之间的位置误差信息。
具体地,终端将更新三维轮廓点和当前三维五官点使用更新姿态特征进行姿态转换,得到转换后的三维点,将转换后的三维点通过透视投影点二维平面,得到二维投影点,该二维投影点就包括了各个二维投影五官点和各个二维投影轮廓点,计算各个二维投影五官点与二维参考点中对应的各个二维五官点之间的位置误差信息,并计算各个二维投影轮廓点与二维参考点中对应的各个二维轮廓点之间的位置误差信息,计算位置误差信息的和得到第一误差信息。
步骤212,判断是否满足第一收敛条件,当满足第一收敛条件时,执行步骤202,当未满足第一收敛条件时,返回步骤206。
步骤214,基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
其中,第一收敛条件是指进行三维人脸重建的条件,包括第一误差信息小于预设阈值、达到预设迭代次数或者得到更新形变特征和更新姿态特征未发生明显变化。更新形变特征和更新姿态特征未发生明显变化是指前一次得到的更新形变特征和更新姿态特征与后一次得到的更新形变特征和更新姿态特征之间的误差小于预设阈值。目标三维人脸是指使用满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建得到的三维人脸。
具体地,终端判断是否满足第一收敛条件时,当满足第一收敛条件时,执行 基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,当未满足第一收敛条件时,返回步骤204,即基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征。不断循环迭代,直到满足第一收敛条件。
上述三维人脸重建方法中,通过获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,然后根据当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征,使用更新姿态特征从当前三维人脸中选取更新三维轮廓点,在每次迭代时,使用更新姿态特征进行三维轮廓点的选取,从而能够选取到更加准确的三维轮廓点,然后使用更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征,使得每次迭代时,使用更新三维轮廓点和当前三维五官点计算更新形变特征,从而能够得到更加准确的更新形变特征,然后在满足收敛条件时,使用更新形变特征和更新姿态特征进行三维人脸重建,由于使用更新形变特征和更新姿态特征进行三维人脸重建,避免了在对人脸进行三维重建时产生不真实效果的问题,使重建的三维人脸更加的准确。
在一个实施例中,如图3所示,在根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件,包括:
步骤302,基于二维投影点与二维参考点计算得到第一误差信息,当第一误差信息未满足第一收敛条件时,基于更新形变特征更新当前三维人脸,得到更新三维人脸。
其中,更新形变特征包括更新表情特征和更新身份特征。更新三维人脸是指使用更新形变特征对当前三维人脸进行更新得到的三维人脸。
具体地,终端计算各个二维投影点与对应的各个二维参考点误差信息之和得到第一误差信息,当第一误差信息小于预先设置好的第一误差阈值时,基于更新表情特征和更新身份特征更新当前三维人脸,得到更新三维人脸。比如,可以使用公式(1)得到更新三维人脸
Figure 793072DEST_PATH_IMAGE001
公式(1)
其中,
Figure 241371DEST_PATH_IMAGE002
是指三维人脸,该三维人脸是多个三维人脸点的集合,
Figure 349004DEST_PATH_IMAGE003
是指平均三维人脸模型,该平均三维人脸模型是多个平均三维人脸点的集合。
Figure 275372DEST_PATH_IMAGE004
是指预先设置好的身份特征的主成分。
Figure 620902DEST_PATH_IMAGE005
是指预先设置好的表情特征的主成分。
Figure 974523DEST_PATH_IMAGE006
是指表情特征,
Figure 507136DEST_PATH_IMAGE007
是指身份特征。直接将更新表情特征和更新身份特征作为对应的表情特征和身份特征进行三维人脸计算,得到更新三维人脸。
步骤304,从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件。
其中,更新的当前三维五官点是指从更新三维人脸中的三维点定义确定的三维五官点。
具体地,终端从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,并,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤进行迭代循环,直到满足第一收敛条件。
在上述实施例中,通过计算第一误差信息,当第一误差信息未符合第一收敛条件时,从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件,从而能够得到不断进行循环迭代,得到更加准确的更新姿态特征,使得重建的三维人脸更加准确。
在一个实施例中,待重建人脸图像为起始人脸视频帧,二维投影点包括二维投影五官点和二维投影轮廓点;
步骤302,基于二维投影点与二维参考点计算得到第一误差信息,包括:
基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息;基于轮廓点误差信息与五官点误差信息,得到二维投影点与二维参考点的第一误差信息。
其中,起始人脸视频帧是指人脸视频中的首帧,五官点误差信息是指二维投影五官点与二维五官点的五官点位置坐标的误差信息。轮廓点误差信息是指二维投影轮廓点与二维轮廓点的轮廓点位置坐标的误差信息。
具体地,终端检测到待重建人脸图像为起始人脸视频帧时,计算起始人脸视频帧对应的各个二维投影五官点的坐标与对应的各个二维五官点的坐标之间的距离,得到每个五官点的距离,计算每个五官点距离的和,得到五官点误差信息,并计算起始人脸视频帧对应的各个二维投影轮廓点的坐标与对应的各个二维轮廓点的坐标之间的距离,得到每个轮廓点的距离,计算每个轮廓点距离的和,得到轮廓点误差信息。然后计算五官点误差信息和轮廓点误差信息的和,得到二维投影点与二维参考点的第一误差信息。
在上述实施例中,当待重建人脸图像为起始人脸视频帧时,直接通过计算五官点误差信息和轮廓点误差信息,得到二维投影点与二维参考点的第一误差信息,提高了得到第一误差信息的效率。
在一个实施例中,待重建人脸图像为非起始人脸视频帧,二维投影点包括二维投影五官点和二维投影轮廓点;
如图4所示,步骤302,基于二维投影点与二维参考点计算得到第一误差信息,包括:
步骤402,基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息。
具体地,当待重建人脸图像为非起始人脸视频帧时,计算非起始人脸视频帧对应的各个二维投影五官点的坐标与对应的各个二维五官点的坐标之间的距离,得到每个五官点的距离,计算每个五官点距离的和,得到五官点误差信息,并计算非起始人脸视频帧对应各个二维投影轮廓点的坐标与对应的各个二维轮廓点的坐标之间的距离,得到每个轮廓点的距离,计算每个轮廓点距离的和,得到轮廓点误差信息。
步骤402,获取非起始人脸视频帧的前向人脸视频帧对应的前向形变特征,前向形变特征是前向人脸视频帧在三维人脸重建时使用的形变特征。
其中,前向人脸视频帧是指非起始人脸视频帧的前一人脸视频帧。
具体地,终端在每次得到人脸视频帧在三维人脸重建时使用的形变特征和姿态特征时,保存到本地内存中。终端在需要使用时可以从内存中获取到非起始人脸视频帧的前向人脸视频帧对应的前向形变特征。终端也可以在每次得到人脸视频帧在三维人脸重建时使用的形变特征和姿态特征时,保存到服务器中,在需要使用时从服务器中获取到非起始人脸视频帧的前向人脸视频帧对应的前向形变特征。
步骤402,计算前向形变特征与更新形变特征的形变误差信息,基于轮廓点误差信息、五官点误差信息和形变误差信息,得到二维投影点与二维参考点的第一误差信息。
其中,形变误差信息是指形变特征在前后人脸视频帧之间的误差。
具体地,终端计算前向形变特征与更新形变特征的特征差值,将特征差值作为形变误差信息。然后终端将轮廓点误差信息、五官点误差信息和形变误差信息进行相加,得到二维投影点与二维参考点的第一误差信息。
在上述实施例中,通过计算前向形变特征与更新形变特征的形变误差信息,基于轮廓点误差信息、五官点误差信息和形变误差信息,得到二维投影点与二维参考点的第一误差信息,能够约束前后人脸视频帧的形变特征变化平滑,从而不产生跳变,从而增强了重建的三维人脸的稳定性。
在一个具体的实施例中,待重建人脸图像为起始人脸视频帧,可以使用如下公式(2)来判断是否满足第一收敛条件。
Figure 237195DEST_PATH_IMAGE008
公式(2)
其中,R是指更新姿态特征中的旋转特征,T是指更新姿态特征中的平移特征。
Figure 437232DEST_PATH_IMAGE004
是指预先设置好的身份特征的主成分。
Figure 961754DEST_PATH_IMAGE005
是指预先设置好的表情特征的主成分。
Figure 247242DEST_PATH_IMAGE006
是指表情特征,
Figure 512482DEST_PATH_IMAGE007
是指身份特征。pro是指进行透视投影,
Figure 567026DEST_PATH_IMAGE009
是预先设置好的每个投影点误差信息的权重。
Figure 528029DEST_PATH_IMAGE010
是指从三维人脸中确定当前三维五官点以及待处理三维轮廓点。K是指当前三维五官点和待处理三维轮廓点的个数。
Figure 300813DEST_PATH_IMAGE011
是指将所有更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点。
Figure 107095DEST_PATH_IMAGE012
是指二维投影点对应的二维参考点。
Figure 281724DEST_PATH_IMAGE013
是指计算起始人脸视频帧对应的所有轮廓点误差信息和所有五官点误差信息。
Figure 944787DEST_PATH_IMAGE014
是指计算起始人脸视频帧对应第一误差信息。
Figure 204867DEST_PATH_IMAGE015
是指第一误差信息最小化时,达到起始人脸视频帧对应的第一收敛条件,得到更新姿态特征中的表情特征和身份特征。
在一个具体的实施例中,当待重建人脸图像为非起始人脸视频帧,可以使用如下公式(3)来判断是否满足第一收敛条件。
Figure 814840DEST_PATH_IMAGE016
公式(3)
其中,
Figure 843975DEST_PATH_IMAGE017
是指缩放系数,是设定好的。R是指更新姿态特征中的旋转特征,T是指更新姿态特征中的平移特征。
Figure 146781DEST_PATH_IMAGE004
是指预先设置好的身份特征的主成分。
Figure 628578DEST_PATH_IMAGE005
是指预先设置好的表情特征的主成分。
Figure 42242DEST_PATH_IMAGE006
是指表情特征,
Figure 925884DEST_PATH_IMAGE007
是指身份特征。pro是指进行透视投影,
Figure 399591DEST_PATH_IMAGE018
是指将所有更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点。
Figure 106034DEST_PATH_IMAGE012
是指二维投影点对应的二维参考点。
Figure 57810DEST_PATH_IMAGE019
是指范数。
Figure 61538DEST_PATH_IMAGE020
是指形变特征中表情特征的权重,
Figure 706146DEST_PATH_IMAGE021
更新形变特征中的表情特征,
Figure 162535DEST_PATH_IMAGE022
是指前向形变特征中的表情特征,
Figure 918001DEST_PATH_IMAGE023
是指表情特征之间的误差信息。
Figure 510657DEST_PATH_IMAGE024
是指形变特征中身份特征的权重,
Figure 326166DEST_PATH_IMAGE025
是指更新形变特征中的身份特征,
Figure 269851DEST_PATH_IMAGE026
是指前向形变特征中的身份特征,
Figure 625746DEST_PATH_IMAGE027
是指身份特征之间的误差信息。
Figure 338487DEST_PATH_IMAGE028
是用来计算得到的轮廓点误差信息和五官点误差信息的。
Figure 59318DEST_PATH_IMAGE029
是指计算得到的非起始人脸视频帧对应的第一误差信息。
Figure 490300DEST_PATH_IMAGE030
是指第一误差信息最小化时,达到非起始人脸视频帧对应第一收敛条件,得到更新姿态特征中的表情特征和身份特征。
在一个实施例中,如图5所示,步骤202,定位待重建人脸图像对应的二维五官点和二维轮廓点,包括:
步骤502,基于待重建人脸图像进行人脸检测,得到人脸区域。
其中,人脸检测是指检测出待重建人脸图像中的人脸所在位置。人脸区域是指待重建人脸图像中的人脸所在位置形成的区域。
具体地,终端对待重建人脸图像使用人脸检测算法检测人脸所在的位置,得到人脸区域。其中,人脸检测算法可以是模板匹配算法,比如,AdaBoost(adaptive boosting,自适应增强)分类器算法,可以是神经网络算法比如CNN(Convolutional Neural Networks,卷积神经网络)算法,也可以是支持向量机算法等等。人脸检测算法用于检测对待重建人脸图像中的区域进行人脸像素和非人脸像素的二分类判别。
步骤502,在人脸区域中进行人脸关键点检测,得到待重建人脸图像对应的人脸关键点。
步骤502,从人脸关键点中确定二维五官点和二维轮廓点。
其中,人脸关键点是指人脸中关键的位置坐标,人脸关键点包括眼睛、眉毛、嘴巴、鼻子以及人脸轮廓等部分的关键点。二维五官点是指待重建人脸图像的人脸中的五官点。二维轮廓点是指待重建人脸图像的人脸中的轮廓点。人脸关键点的数量可以自定义。
具体地,终端在人脸区域中使用人脸关键点检测算法进行人脸关键点检测,得到待重建人脸图像对应的人脸关键点,从人脸关键点中确定二维五官点和二维轮廓点。其中,人脸关键点检测算法包括但不限于基于模型的ASM(Active Shape Model,主动形状模型)和AAM(Active Appearnce Model,主动外观模型),基于级联形状回归CPR(Cascaded poseregression) 算法和基于深度学习的算法等等。在一个具体实施例中,可以通过Dlib人脸关键点检测模型来确定人脸关键点,然后根据人脸关键点的位置信息确定二维五官点和二维轮廓点。
在一个实施例中,当待重建人脸图像为非起始人脸视频帧时,进行人脸配准追踪,确定二维五官点和二维轮廓点。
在上述实施例中,通过对待重建人脸图像进行人脸关键点的检测,从而确定二维五官点和二维轮廓点,方便后续的使用。
在一个实施例中,待重建人脸图像为起始人脸视频帧;
如图6所示,步骤204,基于人脸视频帧获取对应的待处理三维轮廓点,包括:
步骤602,获取目标焦距,根据目标焦距将当前三维五官点投影到二维平面,得到投影五官点,基于投影五官点和二维五官点进行姿态估计,得到起始姿态特征。
其中,目标焦距是指从各个预设焦距中进行焦距估计确定的焦距。投影五官点是指将当前三维五官点通过透视投影得到的二维点。点是指点的位置,可以用坐标标识,二维点就是二维坐标,三维点就是三维坐标。起始姿态特征是指当待重建人脸图像为起始人脸视频帧时,只使用三维五官点进行姿态估计时得到的姿态特征。
具体地,当待重建人脸图像为起始人脸视频帧时,终端获取到目标焦距,根据目标焦距将当前三维五官点通过透视投影到二维平面,得到投影五官点。在一个具体的实施例中,在进行透视投影时,可以使用如下公式(4):
Figure 587569DEST_PATH_IMAGE031
公式(4)
其中,f为目标焦距,(x,y,z)为当前三维五官点,
Figure 420396DEST_PATH_IMAGE032
为投影五官点。
然后终端在得到投影五官点时,计算投影五官点和二维五官点最小化投影误差小的姿态特征,得到起始姿态特征。姿态特征可以包括平移特征和旋转特征。旋转特征是指人脸旋转的特征,可以用参数矩阵表示。平移特征是指人脸平移的特征,可以用参数矩阵表。在一个具体的实施例中,在进行起始姿态特征估计时,可以使用如下公式(5):
Figure 67057DEST_PATH_IMAGE033
公式(5)
其中,
Figure 985334DEST_PATH_IMAGE034
是指k个当前三维五官点,K是指当前三维五官点的数量。
Figure 886294DEST_PATH_IMAGE009
是设置好的权重参数。R为旋转矩阵,T为平移矩阵。pro是指进行透视投影,
Figure 308048DEST_PATH_IMAGE012
是指投影五官点对应的二维五官点。
Figure 636261DEST_PATH_IMAGE035
是指范数。
Figure 776256DEST_PATH_IMAGE036
是指计算所有当前三维五官点的透视投影与对应的二维五官点的重投影误差之和。
Figure 277644DEST_PATH_IMAGE037
表示重投影误差之和最小化时的姿态特征作为起始姿态特征。
步骤604,根据起始姿态特征从当前三维人脸的三维人脸轮廓点区域中选取起始人脸视频帧对应的待处理三维轮廓点。
其中,三维人脸轮廓点区域是指预先设置好的三维人脸轮廓点所处的位置区域,该三维人脸轮廓点区域保证无论人脸侧转到任何角度,与二维轮廓点语义一致的三维轮廓点总是在该区域中。
具体地,终端先从当前三维人脸的三维人脸轮廓点区域中选取预设数量的三维边缘点,该三维边缘点是指三维人脸轮廓点区域中的点与摄像机视角的夹角最接近直角的顶点。然后根据起始姿态特征计算每个三维边缘点的透视投影与二维轮廓点的重投影误差信息,将重投影误差信息最小的三维边缘点作为起始人脸视频帧对应的待处理三维轮廓点。
在上述实施例中,在待重建人脸图像为起始人脸视频帧时,根据起始姿态特征从当前三维人脸的三维人脸轮廓点区域中选取起始人脸视频帧对应的待处理三维轮廓点,从而使能够得到更加准确的待处理三维轮廓点,方便后续的使用。
在一个实施例中,如图7所示,步骤602,获取目标焦距,包括:
步骤702,获取各个预设焦距,从各个预设焦距选取当前焦距。
其中,预设焦距是指预先设置好的焦距值。当前焦距是指进行焦距确定时使用的焦距。
具体地,终端获取到各个预设焦距,其中,终端可以先确定一个初始焦距值,然后获取到已预设好的步长,然后往焦距增大和减小的方向分别进行搜索得到各个预设焦距,比如,
Figure 819484DEST_PATH_IMAGE038
为初始焦距值,
Figure 318598DEST_PATH_IMAGE039
为步长,然后往焦距增大和减小的方向分别进行搜索得到的各个预设焦距为
Figure 945889DEST_PATH_IMAGE040
Figure 188651DEST_PATH_IMAGE041
Figure 584998DEST_PATH_IMAGE042
Figure 255013DEST_PATH_IMAGE043
Figure 369600DEST_PATH_IMAGE044
Figure 150474DEST_PATH_IMAGE045
,……。然后随机从各个预设焦距选取当前焦距。
步骤704,根据当前焦距将当前三维五官点投影到二维平面,得到焦距投影五官点,基于焦距投影五官点和二维五官点进行姿态估计,得到焦距姿态特征,根据焦距姿态特征从当前三维人脸的三维人脸轮廓点区域中选取焦距三维轮廓点。
其中,焦距投影五官点是指使用当前焦距进行透视投影时得到的投影五官点。焦距姿态特征是指根据焦距投影五官点和二维五官点进行姿态估计得到的姿态特征。焦距三维轮廓点是指使用焦距姿态特征选取的三维轮廓点。
具体地,终端根据当前焦距将当前三维五官点投影到二维平面,得到焦距投影五官点,然后计算焦距投影五官点和二维五官点在最小化投影误差下的姿态特征,得到焦距姿态特征。然后根据焦距姿态特征从当前三维人脸的三维人脸轮廓点区域中选取三维边缘点,从三维边缘点中确定焦距三维轮廓点。
步骤706,基于焦距三维轮廓点、当前三维五官点和二维参考点进行焦距姿态估计,得到焦距更新姿态特征。
其中,焦距更新姿态特征是指使用焦距三维轮廓点进行姿态估计得到的焦距更新姿态特征
具体地,终端将焦距三维轮廓点和当前三维五官点进行透视投影到二维平面,得到焦距二维投影点,计算在焦距二维投影点与二维参考点之间的误差最小化时的姿态特征,得到焦距更新姿态特征。
步骤708,根据焦距更新姿态特征从三维人脸轮廓点区域中选取焦距更新三维轮廓点,根据焦距更新三维轮廓点和当前三维五官点计算当前三维人脸对应的焦距更新形变特征。
其中,焦距更新三维轮廓点是指根据焦距更新姿态特征选取的更新三维轮廓点。焦距更新形变特征是指根据焦距更新三维轮廓点确定的更新形变特征。焦距更新形变特征包括焦距更新身份特征和焦距更新身份特征表情特征。
具体地,终端从三维人脸轮廓点区域中选取三维边缘点,然后从三维边缘点中根据焦距更新姿态特征选取焦距更新三维轮廓点。然后根据焦距更新三维轮廓点和当前三维五官点计算当前三维人脸对应的焦距更新形变特征。比如,可以使用公式(1)进行计算,将焦距更新三维轮廓点和当前三维五官点作为等式的左边值,然后计算等式右边的身份特征和表情特征,即得到更新形变特征。
步骤710,基于焦距更新姿态特征将焦距更新三维轮廓点和当前三维五官点进行透视投影,得到焦距二维投影点,根据焦距二维投影点和二维参考点的第二误差信息更新焦距三维轮廓点和当前三维五官点。
其中,焦距二维投影点是指根据焦距更新姿态特征将焦距更新三维轮廓点和当前三维五官点进行透视投影时得到的二维投影点。第二误差信息是指焦距二维投影点与二维参考点之间的位置误差信息。
具体地,终端将焦距更新三维轮廓点和当前三维五官点使用焦距更新姿态特征进行姿态变换,比如,可以使用公式(6)进行姿态变换:
Figure 200994DEST_PATH_IMAGE046
公式(6)
其中,V是指要进行姿态变换的三维点,可以是焦距更新三维轮廓点和当前三维五官点。
Figure 41911DEST_PATH_IMAGE047
是指变化后的三维点。R是指要使用的姿态特征中的旋转特征,可以是焦距更新姿态特征中的旋转特征。T是指要使用的姿态特征中的平移特征,可以是焦距更新姿态特征中的平移特征。
然后将姿态变换的焦距更新三维轮廓点和当前三维五官点进行透视投影,得到焦距二维投影点,然后计算焦距二维投影点和二维参考点的位置误差,得到第二误差信息。根据第二误差信息更新焦距三维轮廓点和当前三维五官点。
步骤712,判断是否满足第二收敛条件,当满足第二收敛条件时,执行步骤714,当未满足第二收敛条件时,返回步骤706执行。
步骤714,得到当前焦距对应的当前第二误差信息。
其中,第二收敛条件是指第二误差信息为当前焦距对应的最小化误差信息的收敛条件。包括达到预设迭代次数或者焦距更新形变特征和焦距更新姿态特征未发生明显变化,即焦距更新形变特征和焦距更新姿态特征在上一次迭代和这一次迭代得到的值一致。
具体地,终端当达到预设迭代次数时,即满足第二收敛条件时,将满足第二收敛条件时的第二误差信息作为当前焦距对应的当前第二误差信息。当未达到预设迭代次数时,即未满足第二收敛条件时,返回步骤706继续进行迭代执行。
步骤716,遍历各个预设焦距,得到各个预设焦距对应的各个当前第二误差信息,比较各个当前第二误差信息,得到目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距。
目标第二误差信息是指各个当前第二误差信息中最小的当前第二误差信息。
具体地,终端遍历各个预设焦距,即返回从各个预设焦距选取当前焦距的步骤执行,已选的预设焦距不在重复选取。直到得到各个预设焦距对应的各个当前第二误差信息。然后比较各个当前第二误差信息,得到目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距。即确定每个预设焦距对应的最小化重投影误差,然后从各个最小化重投影误差中再进一步选取最小的最小化重投影误差作为目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距。然后终端固定该目标焦距,即终端在对后续的人脸视频帧进行三维人脸重建时直接使用该目标焦距。
在上述实施例中,通过计算各个预设焦距的当前第二误差信息,然后从当前第二误差信息确定目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距,从而使得到的目标焦距更加的准确。
在一个实施例中,根据焦距二维投影点和二维参考点的第二误差信息更新焦距三维轮廓点和当前三维五官点,返回焦距姿态估计的步骤,直到满足第二收敛条件,包括:
当第二误差信息未满足第二收敛条件时,基于焦距更新形变特征更新当前三维人脸,得到焦距更新三维人脸。从焦距更新三维人脸中选取焦距更新三维五官点,将焦距更新三维五官点作为当前三维五官点,并将焦距更新三维轮廓点作为焦距三维轮廓点,返回基于焦距三维轮廓点、当前三维五官点和二维参考点进行焦距姿态估计,得到焦距更新姿态特征的步骤,直到满足第二收敛条件。
其中,焦距更新三维人脸是指使用焦距更新形变特征得到的三维人脸。焦距更新三维五官点是指从焦距更新三维人脸选取的三维五官点。
具体地,终端当第二误差信息未小于预设焦距误差阈值时,根据焦距更新形变特征更新当前三维人脸,得到焦距更新三维人脸,比如,可以使用公式(1)得到焦距更新三维人脸。然后根据焦距更新三维人脸中三维点的位置定义选取焦距更新三维五官点,将焦距更新三维五官点作为当前三维五官点,并将焦距更新三维轮廓点作为焦距三维轮廓点返回步骤706继续进行迭代执行,直到第二误差信息未小于预设焦距误差阈值。
在上述实施例中,通过第二误差信息未满足第二收敛条件时,不断进行迭代执行,从而使得到的当前第二误差信息更加的准确。
在一个实施例中,如图8所示,步骤602,基于投影五官点和二维五官点进行姿态估计,得到起始姿态特征,包括:
步骤802,获取起始人脸视频帧对应的第一初始姿态特征,基于第一初始姿态特征将当前三维五官点投影到二维平面,得到第一起始投影五官点。
其中,第一初始姿态特征是指预先设置好的初始化的姿态特征,比如,第一初始姿态特征可以为0。第一起始投影五官点是指将起始人脸视频帧对应当前三维五官点进行透视投影后得到的投影五官点。
具体地,终端获取到起始人脸视频帧对应的第一初始姿态特征,将各个当前三维五官点按照第一初始姿态特征进行姿态变换,得到姿态变换后的各个当前三维五官点,将姿态变换后的各个当前三维五官点进行透视投影到二维平面,得到各个第一起始投影五官点。
步骤804,基于第一起始投影五官点与二维五官点计算得到第三误差信息。
其中,第三误差信息是指第一起始投影五官点与二维五官点之间的位置误差信息,位置误差信息可以用距离进行表示。
具体地,终端计算每个第一起始投影五官点与对应的二维五官点的误差信息,然后计算误差信息的和,得到第三误差信息。在一个实施例中,可以对每个第一起始投影五官点设置对应的权重,在计算得到每个第一起始投影五官点的误差信息时,与对应的权重进行计算,得到加权后的误差信息,然后计算加权后误差信息的和,得到第三误差信息。
步骤806,判断是否满足第三收敛条件,当满足第三收敛条件时,执行步骤808a,当未满足第三收敛条件时,执行步骤808b并返回步骤802执行。
步骤808a,将满足第三收敛条件的第一初始姿态特征作为起始姿态特征。
步骤808b,根据第三误差信息调整第一初始姿态特征,并返回基于第一初始姿态特征将当前三维五官点投影到二维平面,得到第一起始投影五官点的步骤,直到第三误差信息满足第三收敛条件。
具体地,终端根据第三误差信息进行反向迭代优化第一初始姿态特征,得到调整后的第一初始姿态特征,然后返回基于第一初始姿态特征将当前三维五官点投影到二维平面,得到第一起始投影五官点的步骤进行迭代执行,直到第三误差信息满足第三收敛条件,将满足第三收敛条件的第一初始姿态特征作为起始姿态特征。
在上述实施例中,通过反向迭代优化第一初始姿态特征,当满足第三收敛条件,将满足第三收敛条件的第一初始姿态特征作为起始姿态特征,从而使得到的起始姿态特征更加的准确。
在一个实施例中,待重建人脸图像为非起始人脸视频帧;步骤204,基于待重建人脸图像获取对应的待处理三维轮廓点,包括:
获取非起始人脸视频帧的前向人脸视频帧对应的前向三维轮廓点,前向三维轮廓点是前向人脸视频帧对应的三维人脸中的三维轮廓点,将前向三维轮廓点作为待处理三维轮廓点。
具体地,当待重建人脸图像为非起始人脸视频帧时,说明该待重建人脸图像有前向人脸视频帧,此时,终端直接获取到前向人脸视频帧对应的前向三维轮廓点,将前向三维轮廓点作为待重建人脸图像对应的待处理三维轮廓点。在该实施例中,直接将前向三维轮廓点作为待重建人脸图像对应的待处理三维轮廓点,从而使三维轮廓点能够进行共享,增强了重建得到的三维人脸的稳定性。
在一个实施例中,待重建人脸图像为起始人脸视频帧;
如图9所示,步骤206,即基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征,包括:
步骤902,获取起始人脸视频帧对应的第二初始姿态特征,基于第二初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到起始二维投影点。
其中,第二初始姿态特征是指起始人脸视频帧对应的初始化的姿态特征。姿态特征包括旋转特征和平移特征。第二初始姿态特征可以与第一初始姿态特征相同,也可以不同。
具体地,终端获取到起始人脸视频帧对应的第二初始姿态特征,将当前三维五官点和待处理三维轮廓点按照第二初始姿态特征进行姿态转换,即按照第二初始姿态特征中的旋转特征将当前三维五官点和待处理三维轮廓点进行旋转,然后再将旋转后的当前三维五官点和待处理三维轮廓点按照二初始特征中的平移特征进行平移,得到姿态转换结果,然后将姿态转换结果通过透视投影到二维平面,得到起始二维投影点,该起始二维投影点中就包括了当前三维五官点对应的二维投影点和待处理三维轮廓点对应的二维投影点。
步骤904,基于起始二维投影点与二维参考点计算得到第四误差信息。
其中,第四误差信息是指起始二维投影点与二维参考点的位置误差信息。
具体地,终端计算起始二维投影点与二维参考点的位置误差,得到第四误差信息,终端计算起始二维投影点中五官点与对应的二维参考点中五官点的位置误差,然后再计算起始二维投影点中轮廓点与对应的二维参考点中轮廓点的位置误差,然后计算位置误差的和,得到第四误差信息。
步骤906,判断第四误差信息是否满足第四收敛条件,当满足第四收敛条件时,执行步骤908a,当未满足第四收敛条件时,执行步骤908b并返回步骤902。
步骤908b,根据第四误差信息调整第二初始姿态特征。
步骤908a,将满足第四收敛条件的第二初始姿态特征作为起始人脸视频帧对应的更新姿态特征。
其中,第四收敛条件是指第四误差信息小于预设阈值。第四收敛条件也可以是达到预设迭代次数。第四收敛条件也可以是当前迭代得到的第二初始姿态特征与前一次迭代时得到的第二初始姿态特征未发生明显变化。
具体地,终端判断第四误差信息是否满足第四收敛条件,当未满足第四收敛条件时,根据第四误差信息进行反向迭代优化从而调整第二初始姿态特征,并返回步骤902继续进行迭代执行。当满足第四收敛条件时,将满足第四收敛条件的第二初始姿态特征作为起始人脸视频帧对应的更新姿态特征。
在一个具体的实施例中,可以使用公式(7)得到更新姿态特征,该公式(7)与公式(5)一致,只是投影的三维点为当前三维五官点和待处理三维轮廓点。公式(7)如下所示:
Figure 643794DEST_PATH_IMAGE048
公式(7)
其中,
Figure 228359DEST_PATH_IMAGE049
是指k个当前三维五官点和待处理三维轮廓点,该K是指当前三维五官点和待处理三维轮廓点的总数量。
Figure 599297DEST_PATH_IMAGE009
是设置好的权重参数。R为旋转矩阵,T为平移矩阵,第一次迭代时,R和T为初始化的值。pro是指进行透视投影,
Figure 611116DEST_PATH_IMAGE012
是指起始二维投影点对应的二维参考点。
Figure 434715DEST_PATH_IMAGE050
是指范数。
Figure 822971DEST_PATH_IMAGE051
是指计算第四误差信息。
Figure 48416DEST_PATH_IMAGE052
表示第四误差信息最小化时的姿态特征作为更新姿态特征。
在上述实施例中,将姿态特征初始化,然后不断循环迭代调整初始化的姿态特征,当满足第四收敛条件时,将满足第四收敛条件的第二初始姿态特征作为起始人脸视频帧对应的更新姿态特征,从而使得到的更新姿态特征更加的准确。
在一个实施例中,待重建人脸图像为非起始人脸视频帧;
如图10所示,步骤206,基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征,包括:
步骤1002,获取非起始人脸视频帧对应的第三初始姿态特征,根据第三初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点。
其中,第三初始姿态特征是指非起始人脸视频帧对应的初始化的姿态特征。非起始二维投影点是指根据第三初始姿态特征进行投影得到的二维投影点。
具体地,终端获取到非起始人脸视频帧对应的第三初始姿态特征,根据第三初始姿态特征中的旋转特征将当前三维五官点和待处理三维轮廓点进行旋转,然后根据第三初始姿态特征中的平移特征将当前三维五官点和待处理三维轮廓点进行平移,得到姿态变换后的当前三维五官点和待处理三维轮廓点,将姿态变换后的当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点,该非起始二维投影点中就包括了二维投影五官点和二维投影轮廓点。
步骤1004,基于非起始二维投影点与二维参考点计算得到第五误差信息,并获取非起始人脸视频帧的前向人脸视频帧对应的前向姿态特征,前向姿态特征是前向人脸视频帧对应的三维人脸的姿态特征。
其中,第五误差信息是指非起始二维投影点与二维参考点之间的位置误差信息。
具体地,终端计算非起始二维投影点中所有二维投影五官点与对应的二维参考点中的二维五官点的位置误差信息,得到所有五官点的位置误差信息,然后再计算非起始二维投影点中所有二维投影轮廓点与对应的二维参考点中的二维轮廓点的位置误差信息,得到所有轮廓点的位置误差信息,然后计算所有五官点的位置误差信息和所有轮廓点的位置误差信息的和,得到第五误差信息。此时,终端获取到非起始人脸视频帧的前向人脸视频帧对应的前向姿态特征,前向姿态特征是前向人脸视频帧对应的三维人脸的姿态特征。
步骤1006,计算前向姿态特征与第三初始姿态特征的姿态误差信息,根据第五误差信息和姿态误差信息,得到目标第五误差信息。
其中,姿态误差信息是指前向姿态特征与第三初始姿态特征之间的误差信息。姿态误差信息可以包括旋转误差信息和平移误差信息。旋转误差信息是指姿态特征中旋转特征的误差信息,平移误差信息是指姿态特征中平移特征的误差信息
具体地,终端计算前向姿态特征中旋转特征与第三初始姿态特征中旋转特征之间的旋转误差信息,然后再计算前向姿态特征中平移特征与第三初始姿态特征中平移特征之间的平移误差信息,然后计算旋转误差信息和平移误差信息的和,得到姿态误差信息。然后在计算第五误差信息和姿态误差信息的和,得到目标第五误差信息。在一个实施例中,可以给第五误差信息和姿态误差信息设置对应的权重,计算加权之后的误差信息。
步骤1008,判断是否满足第五收敛条件,当满足第五收敛条件时,执行步骤1010a,当未满足第五收敛条件时,执行步骤1010b并返回步骤1002执行。
步骤1010b,根据目标第五误差信息调整非起始人脸视频帧对应的第三初始姿态特征,并返回根据第三初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点的步骤。
步骤1010a,将满足第五收敛条件的第三初始姿态特征作为非起始人脸视频帧对应的更新姿态特征。
其中,第五收敛条件是指目标第五误差信息小于预设阈值,第五收敛条件也可以是达到预设迭代次数,或者第五收敛条件也可以是当前迭代得到的第三初始姿态特征与前一次迭代时得到的第三初始姿态特征未发生明显变化。
具体地,服务器根据第五收敛条件不断进行循环迭代,来调整第三初始姿态特征,当满足第五收敛条件,将满足第五收敛条件的第三初始姿态特征作为非起始人脸视频帧对应的更新姿态特征。
在一个具体的实施例中,当待重建人脸图像为非起始人脸视频帧时,可以使用如下公式(8)得到更新姿态特征:
Figure 231136DEST_PATH_IMAGE053
公式(8)
其中,
Figure 542032DEST_PATH_IMAGE054
是指K个当前三维五官点和待处理三维轮廓点,该k是指当前三维五官点和待处理三维轮廓点的总数量。R为旋转矩阵,T为平移矩阵,第一次迭代时,R和T为初始化的值。pro是指进行透视投影,
Figure 468399DEST_PATH_IMAGE012
是指起始二维投影点对应的二维参考点。
Figure 548351DEST_PATH_IMAGE055
是指范数。
Figure 167551DEST_PATH_IMAGE009
是指每个三维点误差信息的权值,是设定好的。
Figure 759551DEST_PATH_IMAGE056
是指计算当前三维五官点和待处理三维轮廓点的位置误差信息。
Figure 489609DEST_PATH_IMAGE057
是指计算得到的旋转误差信息,
Figure 424067DEST_PATH_IMAGE058
是指旋转误差信息的权重,是设定好的。
Figure 214169DEST_PATH_IMAGE059
是指计算得到的平移误差信息,
Figure 499656DEST_PATH_IMAGE060
是指平移误差信息的权重,是设定好的。
Figure 767827DEST_PATH_IMAGE061
表示目标第五误差信息最小化时的姿态特征作为更新姿态特征。
在上述实施例中,通过不断调整第三初始姿态特征,从而能够找到满足第五收敛条件的第三初始姿态特征作为非起始人脸视频帧对应的更新姿态特征,提高了得到非起始人脸视频帧对应的更新姿态特征的准确性。
在一个实施例中,如图11所示,步骤208,根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,包括:
步骤1102,获取当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线。
其中,由于二维的人脸轮廓点与三维的人脸轮廓点的位置定义并不一致,如图12所示,其中,二维配准的轮廓点的位置为黑色实心圆点,其位置定义为脸颊可见的最外侧边缘。三维一致的轮廓点为线条连接起来的空心圆点,其位置定义为人脸下颌骨的边缘,侧脸时有一侧不可见。很明显,在侧脸情况下,两种位置定义的语义并不一致。三维人脸轮廓点区域是指预先设置好的三维人脸轮廓点所处的位置区域,该三维人脸轮廓点区域保证无论人脸侧转到任何角度,与二维轮廓点语义一致的三维轮廓点总是在该区域中。如图13所示,为三维人脸轮廓点区域的示意图,其中,三维模型中的黑色区域为三维人脸轮廓点区域。轮廓线是预先在三维模型上按照三维模型的拓扑结构定义的若干组平行线。如图14所示,为三维模型上轮廓线示意图,其中,白色线和黑色线均为轮廓线,黑色线是在白色线之间。
具体地,终端获取到当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线。
步骤1104,获取视角向量,根据视角向量从预设数量的轮廓线中选取对应的各个三维边缘点。
其中,三维边缘点是指三维人脸轮廓点区域中的点与摄像机视角的夹角最接近直角的顶点。如图13所示,
Figure 556791DEST_PATH_IMAGE062
为三维人脸轮廓点区域中的一个三维边缘点。视角向量是指根据摄像机视角,即摄像机看向顶点的方向得到的向量。
具体地,终端获取视角向量,然后根据视角向量从预设数量的轮廓线中选取夹角最接近直角的顶点作为预设数量的轮廓线对应的预设数量的各个三维边缘点。从每个轮廓线中确定对应的三维边缘点。
步骤1106,根据更新姿态特征将各个三维边缘点投影到二维平面,得到各个边缘投影点。
其中,边缘投影点是指将三维边缘点通过透视投影到二维平面得到的二维投影点。
具体地,终端将各个三维边缘点按照更新姿态特征中的旋转特征进行旋转,然后再按照更新姿态特征中的平移特征进行平移,得到姿态变换后的各个三维边缘点,然后将姿态变换后的各个三维边缘点通过透视投影到二维平面得到各个边缘投影点。
步骤1108,分别基于各个边缘投影点与二维轮廓点计算得到第六误差信息,比较各个边缘投影点对应的第六误差信息,得到目标第六误差信息,将目标第六误差信息对应的三维边缘点作为二维轮廓点对应的更新三维轮廓点。
其中,第六误差信息是指边缘投影点与二维轮廓点之间的位置误差信息。目标第六误差信息是指各个边缘投影点对应的第六误差信息中的最小误差信息。
具体地,从各个二维轮廓点中确定当前二维轮廓点,计算每个边缘投影点与当前二维轮廓点的各个第六误差信息,从各个第六误差信息中确定最小的第六误差信息,将最小的第六误差信息对应的三维边缘点作为当前二维轮廓点对应的更新三维轮廓点。确定各个二维轮廓点对应的三维边缘点,作为每个二维轮廓点对应的更新三维轮廓点。比如,二维轮廓点有20个,三维边缘点有50个。从二维轮廓点随机选取一个二维轮廓点,然后计算该50个三维边缘点与该二维轮廓点的位置误差信息,得到50个位置误差信息,从中确定最小的位置误差信息,然后将对应的三维边缘点作为选取的二维轮廓点的更新三维轮廓点,依次为每个二维轮廓点从三维边缘点中选取对应的更新三维轮廓点。
在一个具体的实施例中,可以使用公式(9)来确定更新三维轮廓点,公式(9)如下所示:
Figure 517794DEST_PATH_IMAGE063
公式(9)
其中,该公式(9)中的K表示轮廓线的数目。
Figure 24999DEST_PATH_IMAGE034
是指k个三维边缘点,R和T是指更新姿态特征中的旋转特征和平移特征。
Figure 96860DEST_PATH_IMAGE009
是指每个三维边缘点对应的权重。
Figure 271489DEST_PATH_IMAGE012
是指二维轮廓点。
Figure 137814DEST_PATH_IMAGE064
是指将每个三维边缘点中最小化投影误差的三维边缘点作为更新三维轮廓点。即从边缘点中寻找与二维轮廓点投影误差最小的点作为更新三维轮廓点,即求解公式(9)。
在上述实施例中,先从当前三维人脸的三维人脸轮廓点区域中的确定三维边缘点,然后基于更新姿态特征从三维边缘点中确定更新三维轮廓点,从而使能够得到与二维轮廓点与位置定义一致的更新三维轮廓点,保证了得到的更新三维轮廓点的准确性。
在一个实施例中,如图15所示,步骤1104,获取视角向量,根据视角向量从预设数量的轮廓线中选取对应的三维边缘点,包括:
步骤1502,从预设数量的轮廓线中确定当前轮廓线,并从当前轮廓线中选取初始三维点,计算初始三维点的法向量。
其中,当前轮廓线是指当前需要确定对应更新轮廓点的轮廓线。初始三维点是当前轮廓线随机选取的三维点。初始三维点的法向量是根据初始三维点的法线得到的。初始三维点的法线是由它所在的所有面的面法线取平均得到的。
具体地,终端从预设数量的轮廓线中确定当前轮廓线,并从当前轮廓线中选取初始三维点,然后计算得到初始三维点的法向量。
步骤1502,获取视角向量,根据法向量与视角向量进行点积运算,得到余弦信息。
步骤1502,当余弦信息未符合预设余弦条件时,返回从当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为当前轮廓线对应的三维边缘点。
其中,余弦信息是指初始三维点的法线与摄像机视角的夹角的余弦值。预设余弦条件是指该初始三维点的法线与摄像机视角的夹角的余弦值小于预设余弦值,即最接近0。
具体地,终端获取到视角向量,根据法向量与视角向量进行点积运算,得到余弦信息,比如,可以使用如下所示的公式(10)计算余弦信息。
Figure 397894DEST_PATH_IMAGE065
公式(10)
其中,
Figure 7867DEST_PATH_IMAGE066
是指始三维点的法线与摄像机视角的夹角。
Figure 37003DEST_PATH_IMAGE067
是指视角向量,
Figure 74229DEST_PATH_IMAGE068
是指初始三维点的法向量。
Figure 824535DEST_PATH_IMAGE069
是指计算得到的余弦值。
然后当余弦信息未符合预设余弦条件时,返回从当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为当前轮廓线对应的三维边缘点。依次选取预设数量轮廓线对应的三维边缘点。
在上述实施例中,将三维点中法线与摄像机视角最接近90度的点作为三维边缘点,保证得到的三维边缘点位于当前视角下三维模型的边缘处,提高了得到的三维边缘点的准确性。
在一个实施例中,更新形变特征包括更新表情特征和更新身份特征;
如图16所示,步骤214,即基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸,包括:
步骤1602,获取三维人脸形变模型,将满足第一收敛条件的更新表情特征和更新身份特征输入到三维人脸形变模型中,得到三维形变人脸。
步骤1602,基于满足第一收敛条件的更新姿态特征对三维形变人脸进行姿态变换,得到目标三维人脸。
其中,三维人脸模型是指N个三维人脸点的集合,即三维人脸是非常密集的点云数据。三维形变人脸是指得到的具有更新形变特征的三维人脸模型。目标三维人脸是指待重建人脸图像中人脸对应的重建后的三维人脸。三维人脸形变模型是指线性3DMM模型。
具体地,获取三维人脸形变模型将满足第一收敛条件的更新表情特征和更新身份特征输入到三维人脸形变模型中进行计算,得到三维形变人脸,更新姿态特征包括更新旋转特征和更新平移特征。基于满足第一收敛条件的更新姿态特征对三维形变人脸进行姿态变换,得到目标三维人脸。在一个具体的实施例中,可以使用公式(11)得到目标三维人脸。
Figure 34936DEST_PATH_IMAGE070
公式(11)
其中,R是指满足第一收敛条件的更新旋转特征,T是指满足第一收敛条件的更新平移特征,
Figure 121841DEST_PATH_IMAGE006
是指满足第一收敛条件的更新表情特征,
Figure 595548DEST_PATH_IMAGE007
是指满足第一收敛条件的更新身份特征。
在上述实施例中,使用满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,从而使得到的目标三维人脸模型提高了准确性。
在一个实施例中,如图17所示,在步骤214之后,即在基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸之后,包括
步骤1702,获取待重建视频帧中目标物体对应的三维物体,基于满足第一收敛条件的更新姿态特征将三维物体进行姿态转换,得到目标三维物体。
其中,目标物体对应的三维物体可以是指待重建视频帧中的三维挂件,该三维挂件可以包括眼镜、帽子、耳环等等等。目标三维物体是指根据更新姿态特征进行转换后的三维物体。
具体地,终端获取到待重建视频帧中目标物体对应的三维物体,基于满足第一收敛条件的更新姿态特征中的更新旋转特征三维物体进行旋转,然后再按照满足第一收敛条件的更新姿态特征中的更新平移特征进行平移,得到姿态变换后的三维物体,即得到目标三维物体。
步骤1704,基于目标三维物体和目标三维人脸进行遮挡检测,得到人脸遮挡区域,基于遮挡区域根据三维人脸和目标三维物体生成目标人脸视频帧。
其中,遮挡检测是指查找目标三维物体中和目标三维人脸中在相同位置的三维点。人脸遮挡区域是指目标三维物体遮挡目标三维人脸的区域。目标人脸视频帧是目标物体进行相同姿态变换后得到的人脸视频帧。
具体地,终端基于目标三维物体和目标三维人脸进行遮挡检测,得到人脸遮挡区域,将三维人脸中的遮挡区域使用和目标三维物体进行覆盖,然后生成目标人脸视频帧。如图18所示,其中,当左侧人脸转动到右侧人脸时,挂件帽子也随着人脸进行转动,得到目标人脸视频帧。
在上述实施例中,可以使用人脸视频帧中的目标物体随着三维人脸一起进行姿态转换,提升了用户体验。
在一个具体的实施例中,提供一种三维人脸重建方法,具体来说:
获取待重建人脸图像,判断待重建人脸图像是否为起始人脸视频帧。
其中,当待重建人脸图像为起始人脸视频帧时,定位待重建人脸图像的二维参考点,从待重建人脸图像对应的当前三维人脸中选取当前三维五官点。
获取各个预设焦距,从各个预设焦距选取当前焦距,根据当前焦距将当前三维五官点投影到二维平面,得到焦距投影五官点,基于焦距投影五官点和二维五官点进行姿态估计,得到焦距姿态特征。
根据焦距姿态特征从当前三维人脸的三维人脸轮廓点区域中选取焦距三维轮廓点,基于焦距三维轮廓点、当前三维五官点和二维参考点进行焦距姿态估计,得到焦距更新姿态特征,根据焦距更新姿态特征从三维人脸轮廓点区域中选取焦距更新三维轮廓点,根据焦距更新三维轮廓点和当前三维五官点计算当前三维人脸对应的焦距更新形变特征。
基于焦距更新姿态特征将焦距更新三维轮廓点和当前三维五官点进行透视投影,得到焦距二维投影点,根据焦距二维投影点和二维参考点的第二误差信息更新焦距三维轮廓点和当前三维五官点,返回焦距姿态估计的步骤,直到满足第二收敛条件,得到当前焦距对应的当前第二误差信息。
遍历各个预设焦距,得到各个预设焦距对应的各个当前第二误差信息,比较各个当前第二误差信息,得到目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距。
根据目标焦距将当前三维五官点投影到二维平面,得到投影五官点,基于投影五官点和二维五官点进行姿态估计,得到起始姿态特征。
根据起始姿态特征从当前三维人脸的三维人脸轮廓点区域中选取待重建人脸图像对应的待处理三维轮廓点。获取待重建人脸图像对应的第二初始姿态特征,基于第二初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到起始二维投影点。
基于起始二维投影点与二维参考点计算得到第四误差信息;根据第四误差信息调整第二初始姿态特征,并返回基于第二初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到起始二维投影点的步骤,直到第四误差信息满足第四收敛条件;将满足第四收敛条件的第二初始姿态特征作为待重建人脸图像对应的更新姿态特征。
获取当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线,从预设数量的轮廓线中确定当前轮廓线,并从当前轮廓线中选取初始三维点,计算初始三维点的法向量;获取视角向量,根据法向量与视角向量进行点积运算,得到余弦信息;当余弦信息未符合预设余弦条件时,返回从当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为当前轮廓线对应的三维边缘点。
根据更新姿态特征将各个三维边缘点投影到二维平面,得到各个边缘投影点,分别基于各个边缘投影点与二维轮廓点计算得到第六误差信息,比较各个边缘投影点对应的第六误差信息,得到目标第六误差信息,将目标第六误差信息对应的三维边缘点作为二维轮廓点对应的更新三维轮廓点。
根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征,基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息;基于轮廓点误差信息与五官点误差信息,得到二维投影点与二维参考点的第一误差信息,当第一误差信息未满足第一收敛条件时,基于更新形变特征更新当前三维人脸,得到更新三维人脸。
从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件。
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
其中,当待重建人脸图像为非起始人脸视频帧时,对待重建人脸图像进行人脸配准追踪,得到二维参考点,从待重建人脸图像对应的当前三维人脸中选取当前三维五官点。
获取非起始人脸视频帧的前向人脸视频帧对应的前向三维轮廓点,前向三维轮廓点是前向人脸视频帧对应的三维人脸中的三维轮廓点,将前向三维轮廓点作为待处理三维轮廓点。
获取待重建人脸图像对应的第三初始姿态特征和目标焦距,根据第三初始姿态特征和目标焦距将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点,基于非起始二维投影点与二维参考点计算得到第五误差信息,并获取待重建人脸图像的前向人脸视频帧对应的前向姿态特征,前向姿态特征是前向人脸视频帧对应的三维人脸的姿态特征,计算前向姿态特征与第三初始姿态特征的姿态误差信息,根据第五误差信息和姿态误差信息,得到目标第五误差信息。
根据目标第五误差信息调整待重建人脸图像对应的第三初始姿态特征,并返回根据第三初始姿态特征和目标焦距将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点的步骤,直到目标第五误差信息满足第五收敛条件,将满足第五收敛条件的第三初始姿态特征作为待重建人脸图像对应的更新姿态特征。
获取当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线,从预设数量的轮廓线中确定当前轮廓线,并从当前轮廓线中选取初始三维点,计算初始三维点的法向量;获取视角向量,根据法向量与视角向量进行点积运算,得到余弦信息;当余弦信息未符合预设余弦条件时,返回从当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为当前轮廓线对应的三维边缘点;根据更新姿态特征将各个三维边缘点投影到二维平面,得到各个边缘投影点;分别基于各个边缘投影点与二维轮廓点计算得到第六误差信息,比较各个边缘投影点对应的第六误差信息,得到目标第六误差信息,将目标第六误差信息对应的三维边缘点作为二维轮廓点对应的更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征。
基于更新姿态特征和目标焦距将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息;获取待重建人脸图像的前向人脸视频帧对应的前向形变特征,前向形变特征是前向人脸视频帧在三维人脸重建时使用的形变特征;计算前向形变特征与更新形变特征的形变误差信息,基于轮廓点误差信息、五官点误差信息和形变误差信息,得到二维投影点与二维参考点的第一误差信息,当第一误差信息未满足第一收敛条件时,基于更新形变特征更新当前三维人脸,得到更新三维人脸。
从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件。
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
其中,可以使用添加了显式帧间约束的公式(12)来计算得到满足第一收敛条件的更新形变特征和更新姿态特征,
Figure 361378DEST_PATH_IMAGE071
公式(12)
其中,
Figure 313154DEST_PATH_IMAGE072
是指
Figure 316882DEST_PATH_IMAGE073
参数的集合,t表示当前帧,t-1表示为上一帧。
Figure 695911DEST_PATH_IMAGE074
是指
Figure 152300DEST_PATH_IMAGE073
参数对应的权重,是预先设定好的。
本申请可以应用到各种对人脸图像进行三维重建的场景中,比如,可以应用到PS(photoshop)软件中,视频直播软件中,视频播放平台中,即时通讯应用中的图像聊天中、三维动画生成软件等等。
本申请还提供一种应用场景,该应用场景应用上述的三维人脸重建方法。具体地,该三维人脸重建方法在该应用场景的应用如下:
该三维人脸重建方法应用到视频直播软件中,如图19所示,提供一种三维人脸重建的流程示意图,具体包括:
服务器获取到直播终端发送的待重建人脸视频帧,判断是否为首帧,即起始帧,当为起始帧时,进行人脸检测和人脸配准得到二维参考点。然后估计相机焦距,得到目标焦距。选取当前三维五官点,根据当前三维五官点估计姿态参数R和T,根据估计得到的姿态参数R和T从当前三维人脸的三维人脸轮廓点区域中选取三维轮廓点。再根据当前三维五官点和三维轮廓点估计姿态参数R和T,得到更新后的姿态参数R和T,然后使用更新后的姿态参数R和T选取更新的三维轮廓点。并根据更新的三维轮廓点和三维五官点估计身份参数和表情参数,返回根据轮廓点和五官点估计新姿态参数的步骤进行迭代,当达到收敛时,或者达到最大迭代次数时,得到姿态参数R、T、身份参数
Figure 907766DEST_PATH_IMAGE007
和表情参数
Figure 766001DEST_PATH_IMAGE006
。然后根据姿态参数R、T、身份参数
Figure 315931DEST_PATH_IMAGE007
和表情参数
Figure 259616DEST_PATH_IMAGE006
计算得到重建后的三维人脸,然后获取到直播的三维挂件眼镜,姿态参数R、T将三维挂件眼镜进行姿态转换,得到目标三维挂件眼镜,根据目标三维挂件眼镜和重建后的三维人脸生成人脸视频发送给各个观看终端进行展示。
当为非起始帧时,直接进行人脸配置追踪,然后获取到上一帧三维重建时的三维轮廓点,根据上一帧三维重建时的三维轮廓点和当前三维人脸的三维五官点估计更新后的姿态参数,根据更新后的姿态参数R和T选取更新的三维轮廓点。并根据更新的三维轮廓点和三维五官点估计身份参数和表情参数,返回根据轮廓点和五官点估计新姿态参数的步骤进行迭代,当达到收敛时,或者达到最大迭代次数时,得到姿态参数R、T、身份参数
Figure 553194DEST_PATH_IMAGE007
和表情参数
Figure 59743DEST_PATH_IMAGE006
。然后根据姿态参数R、T、身份参数
Figure 46154DEST_PATH_IMAGE007
和表情参数
Figure 477135DEST_PATH_IMAGE006
计算得到重建后的三维人脸,然后获取到直播的三维挂件眼镜,姿态参数R、T将三维挂件眼镜进行姿态转换,得到目标三维挂件眼镜,根据目标三维挂件眼镜和重建后的三维人脸生成人脸视频发送给各个观看终端进行展示。
应该理解的是,虽然图2-11、图15-17和图19的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-11、图15-17和图19中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图20所示,提供了一种三维人脸重建装置2000,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:二维点定位模块2002、三维点获取模块2004、姿态更新模块2006、形变特征计算模块2008、投影模块2010和三维重建模块2012,其中:
二维点定位模块2002,用于获取待重建人脸图像,定位待重建人脸图像的二维参考点,二维参考点包括二维五官点和二维轮廓点;
三维点获取模块2004,用于从待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于待重建人脸图像获取对应的待处理三维轮廓点;
姿态更新模块2006,用于基于当前三维五官点、待处理三维轮廓点和二维参考点进行姿态估计,得到更新姿态特征;
形变特征计算模块2008,用于根据更新姿态特征从当前三维人脸中选取更新三维轮廓点,根据更新三维轮廓点和当前三维五官点计算当前三维人脸对应的更新形变特征;
投影模块2010,用于基于更新姿态特征将更新三维轮廓点和当前三维五官点进行透视投影得到二维投影点,根据二维投影点与二维参考点的第一误差信息更新当前三维五官点和待处理三维轮廓点,返回姿态估计的步骤,直到满足第一收敛条件;
三维重建模块2012,用于基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到待重建人脸图像对应的目标三维人脸。
在一个实施例中,投影模块2010,包括:
人脸更新单元,用于基于二维投影点与二维参考点计算得到第一误差信息,当第一误差信息未满足第一收敛条件时,基于更新形变特征更新当前三维人脸,得到更新三维人脸;
三维点得到单元,用于从更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将更新三维轮廓点作为更新的待处理三维轮廓点,返回基于当前三维五官点、待处理三维轮廓点、二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件。
在一个实施例中,待重建人脸图像为起始人脸视频帧,二维投影点包括二维投影五官点和二维投影轮廓点;人脸更新单元还用于基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息;基于轮廓点误差信息与五官点误差信息,得到二维投影点与二维参考点的第一误差信息。
在一个实施例中,待重建人脸图像为非起始人脸视频帧,二维投影点包括二维投影五官点和二维投影轮廓点;人脸更新单元还用于基于二维投影五官点与二维五官点计算得到五官点误差信息,并基于二维投影轮廓点与二维轮廓点计算得到轮廓点误差信息;获取非起始人脸视频帧的前向人脸视频帧对应的前向形变特征,前向形变特征是前向人脸视频帧在三维人脸重建时使用的形变特征;计算前向形变特征与更新形变特征的形变误差信息,基于轮廓点误差信息、五官点误差信息和形变误差信息,得到二维投影点与二维参考点的第一误差信息。
在一个实施例中,二维点定位模块2002还用于基于待重建人脸图像进行人脸检测,得到人脸区域;在人脸区域中进行人脸关键点检测,得到待重建人脸图像对应的人脸关键点;从人脸关键点中确定二维五官点和二维轮廓点。
在一个实施例中,待重建人脸图像为起始人脸视频帧;三维点获取模块2004,包括:
起始姿态估计单元,用于获取目标焦距,根据目标焦距将当前三维五官点投影到二维平面,得到投影五官点,基于投影五官点和二维五官点进行姿态估计,得到起始姿态特征;
选取单元,用于根据起始姿态特征从当前三维人脸的三维人脸轮廓点区域中选取起始人脸视频帧对应的待处理三维轮廓点。
在一个实施例中,起始姿态估计单元,还包括:
焦距选取子单元,用于获取各个预设焦距,从各个预设焦距选取当前焦距;
焦距姿态得到子单元,用于根据当前焦距将当前三维五官点投影到二维平面,得到焦距投影五官点,基于焦距投影五官点和二维五官点进行姿态估计,得到焦距姿态特征;
焦距更新姿态得到子单元,用于根据焦距姿态特征从当前三维人脸的三维人脸轮廓点区域中选取焦距三维轮廓点;基于焦距三维轮廓点、当前三维五官点和二维参考点进行焦距姿态估计,得到焦距更新姿态特征;
焦距更新形变计算单元,用于根据焦距更新姿态特征从三维人脸轮廓点区域中选取焦距更新三维轮廓点;根据焦距更新三维轮廓点和当前三维五官点计算当前三维人脸对应的焦距更新形变特征;
迭代子单元,用于基于焦距更新姿态特征将焦距更新三维轮廓点和当前三维五官点进行透视投影,得到焦距二维投影点,根据焦距二维投影点和二维参考点的第二误差信息更新焦距三维轮廓点和当前三维五官点,返回焦距姿态估计的步骤,直到满足第二收敛条件,得到当前焦距对应的当前第二误差信息;
遍历子单元,用于遍历各个预设焦距,得到各个预设焦距对应的各个当前第二误差信息,比较各个当前第二误差信息,得到目标第二误差信息,将目标第二误差信息对应的预设焦距作为目标焦距。
在一个实施例中,迭代子单元还用于当第二误差信息未满足第二收敛条件时,基于焦距更新形变特征更新当前三维人脸,得到焦距更新三维人脸;从焦距更新三维人脸中选取焦距更新三维五官点,将焦距更新三维五官点作为当前三维五官点,并将焦距更新三维轮廓点作为焦距三维轮廓点,返回基于焦距三维轮廓点、当前三维五官点和二维参考点进行焦距姿态估计,得到焦距更新姿态特征的步骤,直到满足第二收敛条件。
在一个实施例中,起始姿态估计单元还用于获取起始人脸视频帧对应的第一初始姿态特征,基于第一初始姿态特征将当前三维五官点投影到二维平面,得到第一起始投影五官点;基于第一起始投影五官点与二维五官点计算得到第三误差信息;根据第三误差信息调整第一初始姿态特征,并返回基于第一初始姿态特征将当前三维五官点投影到二维平面,得到第一起始投影五官点的步骤,直到第三误差信息满足第三收敛条件;将满足第三收敛条件的第一初始姿态特征作为起始姿态特征。
在一个实施例中,待重建人脸图像为非起始人脸视频帧;三维点获取模块2004还用于获取非起始人脸视频帧的前向人脸视频帧对应的前向三维轮廓点,前向三维轮廓点是前向人脸视频帧对应的三维人脸中的三维轮廓点;将前向三维轮廓点作为待处理三维轮廓点。
在一个实施例中,待重建人脸图像为起始人脸视频帧;姿态更新模块2006还用于获取起始人脸视频帧对应的第二初始姿态特征,基于第二初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到起始二维投影点;基于起始二维投影点与二维参考点计算得到第四误差信息;根据第四误差信息调整第二初始姿态特征,并返回基于第二初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到起始二维投影点的步骤,直到第四误差信息满足第四收敛条件;将满足第四收敛条件的第二初始姿态特征作为起始人脸视频帧对应的更新姿态特征。
在一个实施例中,待重建人脸图像为非起始人脸视频帧;姿态更新模块2006还用于获取非起始人脸视频帧对应的第三初始姿态特征,根据第三初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点;基于非起始二维投影点与二维参考点计算得到第五误差信息,并获取非起始人脸视频帧的前向人脸视频帧对应的前向姿态特征,前向姿态特征是前向人脸视频帧对应的三维人脸的姿态特征;计算前向姿态特征与第三初始姿态特征的姿态误差信息,根据第五误差信息和姿态误差信息,得到目标第五误差信息;根据目标第五误差信息调整非起始人脸视频帧对应的第三初始姿态特征,并返回根据第三初始姿态特征将当前三维五官点和待处理三维轮廓点投影到二维平面,得到非起始二维投影点的步骤,直到目标第五误差信息满足第五收敛条件;将满足第五收敛条件的第三初始姿态特征作为非起始人脸视频帧对应的更新姿态特征。
在一个实施例中,形变特征计算模块2008,包括:
轮廓线获取单元,用于获取当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线,
边缘点计算单元,用于获取视角向量,根据视角向量从预设数量的轮廓线中选取对应的各个三维边缘点;
更新三维轮廓点得到单元,用于根据更新姿态特征将各个三维边缘点投影到二维平面,得到各个边缘投影点;分别基于各个边缘投影点与二维轮廓点计算得到第六误差信息,比较各个边缘投影点对应的第六误差信息,得到目标第六误差信息,将目标第六误差信息对应的三维边缘点作为二维轮廓点对应的更新三维轮廓点。
在一个实施例中,边缘点计算单元还用于从预设数量的轮廓线中确定当前轮廓线,并从当前轮廓线中选取初始三维点,计算初始三维点的法向量;获取视角向量,根据法向量与视角向量进行点积运算,得到余弦信息;当余弦信息未符合预设余弦条件时,返回从当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为当前轮廓线对应的三维边缘点。
在一个实施例中,更新形变特征包括更新表情特征和更新身份特征;三维重建模块2012还用于:获取三维人脸形变模型,将满足第一收敛条件的更新表情特征和更新身份特征输入到三维人脸形变模型中,得到三维形变人脸;基于满足第一收敛条件的更新姿态特征对三维形变人脸进行姿态变换,得到目标三维人脸。
在一个实施例中,三维人脸重建装置2000,还包括:
目标三维物体得到模块,用于获取待重建视频帧中目标物体对应的三维物体,基于满足第一收敛条件的更新姿态特征将三维物体进行姿态转换,得到目标三维物体;
目标人脸视频帧生成模块,用于基于目标三维物体和目标三维人脸进行遮挡检测,得到人脸遮挡区域,基于遮挡区域根据三维人脸和目标三维物体生成目标人脸视频帧。
关于三维人脸重建装置的具体限定可以参见上文中对三维人脸重建方法的限定,在此不再赘述。上述三维人脸重建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图21所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种三维人脸重建方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图21中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种三维人脸重建方法,其特征在于,所述方法包括:
获取待重建人脸图像,定位所述待重建人脸图像的二维参考点,所述二维参考点包括二维五官点和二维轮廓点;
从所述待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于所述待重建人脸图像获取对应的待处理三维轮廓点;
基于所述当前三维五官点、所述待处理三维轮廓点和所述二维参考点进行姿态估计,得到更新姿态特征;
根据更新姿态特征从所述当前三维人脸中选取更新三维轮廓点,根据所述更新三维轮廓点和所述当前三维五官点计算所述当前三维人脸对应的更新形变特征;
基于所述更新姿态特征将所述更新三维轮廓点和所述当前三维五官点进行透视投影得到二维投影点,根据所述二维投影点与所述二维参考点的第一误差信息更新所述当前三维五官点和待处理三维轮廓点,返回所述姿态估计的步骤,直到满足第一收敛条件;
基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到所述待重建人脸图像对应的目标三维人脸。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述二维投影点与所述二维参考点的第一误差信息更新所述当前三维五官点和待处理三维轮廓点,返回所述姿态估计的步骤,直到满足第一收敛条件,包括:
基于所述二维投影点与所述二维参考点计算得到第一误差信息,当所述第一误差信息未满足第一收敛条件时,基于所述更新形变特征更新所述当前三维人脸,得到更新三维人脸;
从所述更新三维人脸中选取更新三维五官点,得到更新的当前三维五官点,并将所述更新三维轮廓点作为更新的待处理三维轮廓点,返回基于所述当前三维五官点、所述待处理三维轮廓点、所述二维参考点进行姿态估计,得到更新姿态特征的步骤,直到满足第一收敛条件。
3.根据权利要求2所述的方法,其特征在于,所述待重建人脸图像为起始人脸视频帧,所述二维投影点包括二维投影五官点和二维投影轮廓点;
基于所述二维投影点与所述二维参考点计算得到第一误差信息,包括:
基于所述二维投影五官点与所述二维五官点计算得到五官点误差信息,并基于所述二维投影轮廓点与所述二维轮廓点计算得到轮廓点误差信息;
基于所述轮廓点误差信息与所述五官点误差信息,得到所述二维投影点与所述二维参考点的第一误差信息。
4.根据权利要求2所述的方法,其特征在于,所述待重建人脸图像为非起始人脸视频帧,所述二维投影点包括二维投影五官点和二维投影轮廓点;
基于所述二维投影点与所述二维参考点计算得到第一误差信息,包括:
基于所述二维投影五官点与所述二维五官点计算得到五官点误差信息,并基于所述二维投影轮廓点与所述二维轮廓点计算得到轮廓点误差信息;
获取所述非起始人脸视频帧的前向人脸视频帧对应的前向形变特征,所述前向形变特征是所述前向人脸视频帧在三维人脸重建时使用的形变特征;
计算所述前向形变特征与所述更新形变特征的形变误差信息,基于所述轮廓点误差信息、所述五官点误差信息和所述形变误差信息,得到所述二维投影点与所述二维参考点的第一误差信息。
5.根据权利要求1所述的方法,其特征在于,所述定位所述待重建人脸图像对应的二维五官点和二维轮廓点,包括:
基于所述待重建人脸图像进行人脸检测,得到人脸区域;
在所述人脸区域中进行人脸关键点检测,得到所述待重建人脸图像对应的人脸关键点;
从所述人脸关键点中确定二维五官点和二维轮廓点。
6.根据权利要求1所述的方法,其特征在于,所述待重建人脸图像为起始人脸视频帧;
所述基于所述人脸视频帧获取对应的待处理三维轮廓点,包括:
获取目标焦距,根据所述目标焦距将所述当前三维五官点投影到二维平面,得到投影五官点,基于所述投影五官点和所述二维五官点进行姿态估计,得到起始姿态特征;
根据所述起始姿态特征从所述当前三维人脸的三维人脸轮廓点区域中选取所述起始人脸视频帧对应的待处理三维轮廓点。
7.根据权利要求6所述的方法,其特征在于,所述获取目标焦距,包括:
获取各个预设焦距,从所述各个预设焦距选取当前焦距;
根据所述当前焦距将所述当前三维五官点投影到二维平面,得到焦距投影五官点,基于所述焦距投影五官点和所述二维五官点进行姿态估计,得到焦距姿态特征;
根据所述焦距姿态特征从所述当前三维人脸的三维人脸轮廓点区域中选取焦距三维轮廓点;
基于所述焦距三维轮廓点、所述当前三维五官点和所述二维参考点进行焦距姿态估计,得到焦距更新姿态特征;
根据所述焦距更新姿态特征从所述三维人脸轮廓点区域中选取焦距更新三维轮廓点;
根据所述焦距更新三维轮廓点和所述当前三维五官点计算所述当前三维人脸对应的焦距更新形变特征;
基于所述焦距更新姿态特征将所述焦距更新三维轮廓点和所述当前三维五官点进行透视投影,得到焦距二维投影点,根据所述焦距二维投影点和所述二维参考点的第二误差信息更新所述焦距三维轮廓点和当前三维五官点,返回所述焦距姿态估计的步骤,直到满足第二收敛条件,得到所述当前焦距对应的当前第二误差信息;
遍历所述各个预设焦距,得到所述各个预设焦距对应的各个当前第二误差信息,比较所述各个当前第二误差信息,得到目标第二误差信息,将所述目标第二误差信息对应的预设焦距作为所述目标焦距。
8.根据权利要求7所述的方法,其特征在于,所述根据所述焦距二维投影点和所述二维参考点的第二误差信息更新所述焦距三维轮廓点和当前三维五官点,返回所述焦距姿态估计的步骤,直到满足第二收敛条件,包括:
当所述第二误差信息未满足第二收敛条件时,基于所述焦距更新形变特征更新所述当前三维人脸,得到焦距更新三维人脸;
从所述焦距更新三维人脸中选取焦距更新三维五官点,将所述焦距更新三维五官点作为当前三维五官点,并将所述焦距更新三维轮廓点作为焦距三维轮廓点,返回基于所述焦距三维轮廓点、所述当前三维五官点和所述二维参考点进行焦距姿态估计,得到焦距更新姿态特征的步骤,直到满足第二收敛条件。
9.根据权利要求6所述的方法,其特征在于,所述基于所述投影五官点和所述二维五官点进行姿态估计,得到起始姿态特征,包括:
获取所述起始人脸视频帧对应的第一初始姿态特征,基于所述第一初始姿态特征将所述当前三维五官点投影到二维平面,得到第一起始投影五官点;
基于所述第一起始投影五官点与所述二维五官点计算得到第三误差信息;
根据所述第三误差信息调整所述第一初始姿态特征,并返回所述基于所述第一初始姿态特征将所述当前三维五官点投影到二维平面,得到第一起始投影五官点的步骤,直到所述第三误差信息满足第三收敛条件;
将满足第三收敛条件的第一初始姿态特征作为所述起始姿态特征。
10.根据权利要求1所述的方法,其特征在于,所述待重建人脸图像为非起始人脸视频帧;
所述基于所述待重建人脸图像获取对应的待处理三维轮廓点,包括:
获取所述非起始人脸视频帧的前向人脸视频帧对应的前向三维轮廓点,所述前向三维轮廓点是所述前向人脸视频帧对应的三维人脸中的三维轮廓点;
将所述前向三维轮廓点作为所述待处理三维轮廓点。
11.根据权利要求1所述的方法,其特征在于,所述待重建人脸图像为起始人脸视频帧;
所述基于所述当前三维五官点、所述待处理三维轮廓点和所述二维参考点进行姿态估计,得到更新姿态特征,包括:
获取所述起始人脸视频帧对应的第二初始姿态特征,基于所述第二初始姿态特征将所述当前三维五官点和所述待处理三维轮廓点投影到二维平面,得到起始二维投影点;
基于所述起始二维投影点与所述二维参考点计算得到第四误差信息;
根据所述第四误差信息调整所述第二初始姿态特征,并返回所述基于所述第二初始姿态特征将所述当前三维五官点和所述待处理三维轮廓点投影到二维平面,得到起始二维投影点的步骤,直到所述第四误差信息满足第四收敛条件;
将满足第四收敛条件的第二初始姿态特征作为所述起始人脸视频帧对应的更新姿态特征。
12.根据权利要求1所述的方法,其特征在于,所述待重建人脸图像为非起始人脸视频帧;
所述基于所述当前三维五官点、所述待处理三维轮廓点和所述二维参考点进行姿态估计,得到更新姿态特征,包括:
获取所述非起始人脸视频帧对应的第三初始姿态特征,根据所述第三初始姿态特征将所述当前三维五官点和所述待处理三维轮廓点投影到二维平面,得到非起始二维投影点;
基于所述非起始二维投影点与所述二维参考点计算得到第五误差信息,并获取所述非起始人脸视频帧的前向人脸视频帧对应的前向姿态特征,所述前向姿态特征是所述前向人脸视频帧对应的三维人脸的姿态特征;
计算所述前向姿态特征与所述第三初始姿态特征的姿态误差信息,根据所述第五误差信息和所述姿态误差信息,得到目标第五误差信息;
根据所述目标第五误差信息调整所述非起始人脸视频帧对应的第三初始姿态特征,并返回所述根据所述第三初始姿态特征将所述当前三维五官点和所述待处理三维轮廓点投影到二维平面,得到非起始二维投影点的步骤,直到所述目标第五误差信息满足第五收敛条件;
将满足第五收敛条件的第三初始姿态特征作为所述非起始人脸视频帧对应的更新姿态特征。
13.根据权利要求1所述的方法,其特征在于,所述根据更新姿态特征从所述当前三维人脸中选取更新三维轮廓点,包括:
获取所述当前三维人脸的三维人脸轮廓点区域中的预设数量的轮廓线,
获取视角向量,根据所述视角向量从所述预设数量的轮廓线中选取对应的各个三维边缘点;
根据所述更新姿态特征将所述各个三维边缘点投影到二维平面,得到各个边缘投影点;
分别基于所述各个边缘投影点与所述二维轮廓点计算得到第六误差信息,比较所述各个边缘投影点对应的第六误差信息,得到目标第六误差信息,将所述目标第六误差信息对应的三维边缘点作为所述二维轮廓点对应的更新三维轮廓点。
14.根据权利要求13所述的方法,其特征在于,所述获取视角向量,根据所述视角向量从所述预设数量的轮廓线中选取对应的三维边缘点,包括:
从所述预设数量的轮廓线中确定当前轮廓线,并从所述当前轮廓线中选取初始三维点,计算所述初始三维点的法向量;
获取视角向量,根据所述法向量与所述视角向量进行点积运算,得到余弦信息;
当所述余弦信息未符合预设余弦条件时,返回从所述当前轮廓线中选取初始三维点的步骤,直到余弦信息符合预设余弦条件时,将符合预设余弦条件的初始三维点作为所述当前轮廓线对应的三维边缘点。
15.一种三维人脸重建装置,其特征在于,所述装置包括:
二维点定位模块,用于获取待重建人脸图像,定位所述待重建人脸图像的二维参考点,所述二维参考点包括二维五官点和二维轮廓点;
三维点获取模块,用于从所述待重建人脸图像对应的当前三维人脸中选取当前三维五官点,基于所述待重建人脸图像获取对应的待处理三维轮廓点;
姿态更新模块,用于基于所述当前三维五官点、所述待处理三维轮廓点和所述二维参考点进行姿态估计,得到更新姿态特征;
形变特征计算模块,用于根据更新姿态特征从所述当前三维人脸中选取更新三维轮廓点,根据所述更新三维轮廓点和所述当前三维五官点计算所述当前三维人脸对应的更新形变特征;
投影模块,用于基于所述更新姿态特征将所述更新三维轮廓点和所述当前三维五官点进行透视投影得到二维投影点,根据所述二维投影点与所述二维参考点的第一误差信息更新所述当前三维五官点和待处理三维轮廓点,返回所述姿态估计的步骤,直到满足第一收敛条件;
三维重建模块,用于基于满足第一收敛条件的更新形变特征和更新姿态特征进行三维人脸重建,得到所述待重建人脸图像对应的目标三维人脸。
CN202010959321.XA 2020-09-14 2020-09-14 三维人脸重建方法和装置 Active CN111815768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010959321.XA CN111815768B (zh) 2020-09-14 2020-09-14 三维人脸重建方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010959321.XA CN111815768B (zh) 2020-09-14 2020-09-14 三维人脸重建方法和装置

Publications (2)

Publication Number Publication Date
CN111815768A CN111815768A (zh) 2020-10-23
CN111815768B true CN111815768B (zh) 2020-12-18

Family

ID=72860076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010959321.XA Active CN111815768B (zh) 2020-09-14 2020-09-14 三维人脸重建方法和装置

Country Status (1)

Country Link
CN (1) CN111815768B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114898244B (zh) * 2022-04-08 2023-07-21 马上消费金融股份有限公司 一种信息处理方法、装置、计算机设备及存储介质
CN115393532B (zh) * 2022-10-27 2023-03-14 科大讯飞股份有限公司 脸部绑定方法、装置、设备及存储介质
CN116152900B (zh) * 2023-04-17 2023-07-18 腾讯科技(深圳)有限公司 表情信息的获取方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1573653B1 (en) * 2002-11-15 2013-07-10 Warner Bros. Entertainment Inc. Method for digitally rendering skin or like materials
CN110163953A (zh) * 2019-03-11 2019-08-23 腾讯科技(深圳)有限公司 三维人脸重建方法、装置、存储介质和电子装置
CN111369607A (zh) * 2020-05-26 2020-07-03 上海建工集团股份有限公司 一种基于图片解析的预制构件拼装匹配方法
CN111598998A (zh) * 2020-05-13 2020-08-28 腾讯科技(深圳)有限公司 三维虚拟模型重建方法、装置、计算机设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657990A (zh) * 2015-02-06 2015-05-27 北京航空航天大学 一种二维轮廓快速配准方法
CN105719352B (zh) * 2016-01-26 2018-10-19 湖南拓视觉信息技术有限公司 人脸三维点云超分辨率融合方法及应用其的数据处理装置
CN111354079B (zh) * 2020-03-11 2023-05-02 腾讯科技(深圳)有限公司 三维人脸重建网络训练及虚拟人脸形象生成方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1573653B1 (en) * 2002-11-15 2013-07-10 Warner Bros. Entertainment Inc. Method for digitally rendering skin or like materials
CN110163953A (zh) * 2019-03-11 2019-08-23 腾讯科技(深圳)有限公司 三维人脸重建方法、装置、存储介质和电子装置
CN111598998A (zh) * 2020-05-13 2020-08-28 腾讯科技(深圳)有限公司 三维虚拟模型重建方法、装置、计算机设备和存储介质
CN111369607A (zh) * 2020-05-26 2020-07-03 上海建工集团股份有限公司 一种基于图片解析的预制构件拼装匹配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于多姿态人脸的关键点定位算法及识别算法";白利敏等;《计算机与数字工程》;20180720;全文 *

Also Published As

Publication number Publication date
CN111815768A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN111354079B (zh) 三维人脸重建网络训练及虚拟人脸形象生成方法和装置
WO2020192568A1 (zh) 人脸图像生成方法、装置、设备及存储介质
US20210209851A1 (en) Face model creation
CN111815768B (zh) 三维人脸重建方法和装置
JP4950787B2 (ja) 画像処理装置及びその方法
CN109684969B (zh) 凝视位置估计方法、计算机设备及存储介质
CN111325846B (zh) 表情基确定方法、虚拟形象驱动方法、装置及介质
US11282257B2 (en) Pose selection and animation of characters using video data and training techniques
CN111553284A (zh) 人脸图像处理方法、装置、计算机设备和存储介质
CN112085835B (zh) 三维卡通人脸生成方法、装置、电子设备及存储介质
JP2019096113A (ja) キーポイントデータに関する加工装置、方法及びプログラム
CN113570684A (zh) 图像处理方法、装置、计算机设备和存储介质
CN108564619B (zh) 一种基于两张照片的真实感三维人脸重建方法
CN110660076A (zh) 一种人脸交换方法
CN111028354A (zh) 一种基于图像序列的模型形变人脸三维重建方案
CN113593001A (zh) 目标对象三维重建方法、装置、计算机设备和存储介质
CN108174141B (zh) 一种视频通信的方法和一种移动装置
CN112308977A (zh) 视频处理方法、视频处理装置和存储介质
US11361467B2 (en) Pose selection and animation of characters using video data and training techniques
CN111783497A (zh) 视频中目标的特征确定方法、装置和计算机可读存储介质
CN115546011A (zh) 图像处理方法、装置、计算机设备和存储介质
CN115393471A (zh) 图像处理方法、装置及电子设备
CN111222448B (zh) 图像转换方法及相关产品
CN115880766A (zh) 姿态迁移、姿态迁移模型训练方法、装置和存储介质
Lee et al. Holistic 3D face and head reconstruction with geometric details from a single image

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40031349

Country of ref document: HK