CN116912402A - 人脸重建的方法、装置、电子设备、存储介质 - Google Patents
人脸重建的方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116912402A CN116912402A CN202310798900.4A CN202310798900A CN116912402A CN 116912402 A CN116912402 A CN 116912402A CN 202310798900 A CN202310798900 A CN 202310798900A CN 116912402 A CN116912402 A CN 116912402A
- Authority
- CN
- China
- Prior art keywords
- face
- model
- point
- dimensional
- pixel
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000009466 transformation Effects 0.000 claims abstract description 139
- 230000001131 transforming effect Effects 0.000 claims abstract description 28
- 238000009877 rendering Methods 0.000 claims description 47
- 238000010586 diagram Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 9
- 238000005457 optimization Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种人脸重建的方法,涉及计算机视觉技术领域,尤其涉及人脸重建装置、电子设备、存储介质。具体实现方案为:根据目标人脸的多个视角的人脸图像,生成人脸点云模型;基于人脸图像、人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对初始三维人脸模型进行变换,得到与目标人脸相对应的三维人脸模型。
Description
技术领域
本公开涉及计算机视觉技术领域,尤其涉及人脸重建的方法、装置、电子设备、存储介质。
背景技术
目前,人脸重建技术广泛应用于泛娱乐领域,包括人脸视频特效、虚拟人直播、游戏建模、电影等领域。目前人脸重建有很多相关技术方案可以实现,例如:采用单个视角的人脸图像进行人脸重建,但这种方式缺乏深度信息,重建出来的人脸三维结构精度差、表情僵硬。
发明内容
本公开提供了一种用于解决上述技术问题中的至少一项的人脸重建的方法、装置、电子设备、存储介质。
根据本公开的一方面,提供了一种人脸重建的方法,所述方法包括:
根据目标人脸的多个视角的人脸图像,生成人脸点云模型;
基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型。
根据本公开的另一方面,提供了一种人脸重建的装置,所述装置包括:
人脸点云模型生成模块,用于根据目标人脸的多个视角的人脸图像,生成人脸点云模型;
三维人脸模型生成模块,用于基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执上述方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开第一实施例提供的一种人脸重建的方法的流程示意图;
图2是本公开第二实施例提供的一种人脸重建的方法的流程示意图;
图3是本公开第二实施例提供的一种人脸重建的方法的S205的流程示意图;
图4是本公开第二实施例提供的一种人脸重建的方法的S206的流程示意图;
图5是本公开第三实施例提供的一种人脸重建的装置的结构示意图;
图6是用来实现本公开实施例的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
根据本公开的车辆安全资产的文件夹的复制方法可以由终端设备或服务器等电子设备执行,终端设备可以为车载设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(PersonalDigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。或者,可通过服务器执行本公开提供的人脸重建方法。
在公开第一实施例中,参见图1,图1示出本公开第一实施例提供的一种人脸重建的方法的流程示意图。该方法包括:
S101、根据目标人脸的多个视角的人脸图像,生成人脸点云模型。
S102、基于人脸图像、人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对初始三维人脸模型进行变换,得到与目标人脸相对应的三维人脸模型。
需要说明的是,本公开提供的人脸重建的方法能够应用在多种应用场景下。
例如,在将本公开提供的人脸重建的方法应用于游戏中的情况下,可以通过游戏设备中安装的图像获取设备获取包括了游戏玩家的脸部的图像,或者可以从游戏设备中的相册中选择包括了游戏玩家的脸部的图像、并将获取的包括了游戏玩家的脸部的图像作为目标人脸图像。
又例如,在将本公开提供的人脸重建的方法应用于手机等终端设备的情况下,可以由终端设备的摄像头采集包括用户脸部的图像,或者从终端设备的相册中选择包括了用户人脸的图像、或者从终端设备中安装的其他应用程序中接收包括用户脸部的人脸图像。
又例如,在将本公开提供的人脸重建的方法应用于直播场景下,可以从直播设备获取的视频流中包括的多帧视频帧图像中获取包含人脸的视频帧图像;并将包含人脸的视频帧图像作为目标人脸图像。此处,目标人脸图像例如可以有多帧;多帧目标人脸图像例如可以是对视频流中的多帧视频帧图像进行采样获得。
又例如,在将本公开提供的人脸重建的方法应用于电影或动画的特效场景下,可以采用深度摄影设备采集演员的彩色深度人脸图像。
在一些示例中,S101中,人脸图像可以是多种类型的图像,例如:二维人脸图像、彩色深度图像、高精度彩色深度图像等。
其中,彩色深度图像也称为红绿蓝深度(RedGreenBlueDeepth,RGBD)图像。
在一些示例中,S101中,基于人脸图像生成的人脸点云模型是由点云构成的三维模型,点云是一个数据集,数据集中的每个点云数据至少包括坐标(X、Y、Z三个维度),还可以包括强度值、颜色值、分类值、时间灯信息,其中,强度值根据物体表面(人脸表面)反射率记录返回信号的强度。多个点云数据组合形成一个人脸点云模型,即空间中代表三维形状或对象(在本公开中即为三维人脸对象)的数据点集合。
在一些示例中,S102中,可以采用多种方式基于人脸图像和人脸点云模型对三维人脸模型进行重建,例如:立体匹配(StructureFromMotion,SfM)技术、阴影造型(ShapefromShading,SFS)技术、三维可变形人脸(3DMM)模型等。为了便于说明,本公开中初始三维人脸模型为3DMM模型,三维人脸模型为基于3DMM模型进行优化后获得的人脸模型,但不对本公开构成限制。
模型变换参数包括各类型的对模型进行形变变换、像素变换的参数,例如:三维人脸模型的形状基参数、三维人脸模型的渲染图的像素点的像素信息等。
人脸点云模型具有高精度的特征,细节接近真实人脸,但是,通过多个视角的人脸图像生成的人脸点云模型存在不稳定性,例如:可能在部分区域由于采集图像的质量问题出现点云稀疏或点云缺失;又例如,通过人脸图像生成的人脸点云模型的拓扑结构不固定,即每张图生成的人脸点云的点的数量不确定,并且不具有语义信息,因此,无法直接使用人脸点云模型进行驱动。基于此,需要在S102中将S101生成的人脸点云模型,转换为拓扑结构稳定的三维人脸模型(例如3DMM模型),并且,进一步基于二维的人脸图像对三维人脸模型进行优化。
在本公开中,通过高精度的人脸点云模型,对三维人脸模型进行三维约束,并且,通过具有语义信息的人脸图像对三维人脸模型进行二维约束,因此,能够重建出高精度、高细腻度的三维人脸模型。
在公开第二实施例中,参见图2,图2示出本公开第二实施例提供的一种人脸重建的方法的流程示意图。该方法包括:
S201、获取相机参数。
其中,相机参数为采集多个视角的人脸图像的相机的相机参数,可以通过多个视角的相机进行人脸图像的采集,也可以通过单个相机进行人脸图像的采集。
其中,相机参数包括相机内参数和相机外参数。
具体地,相机内参数为与相机自身特性相关的参数,例如:相机的焦距、像素大小等;相机外参数为相机在世界坐标系中的参数,比如相机的位置、旋转方向等。
其中,S201具体目的为进行相机标定,以实现世界坐标到像素坐标的映射。
在一些示例中,相机内参数为预先标定的参数,仅需确定相机外参数。
S202、根据相机参数、多个视角的人脸图像生成人脸点云模型。
在一些示例中,可采用多视点立体(Multi-viewstereo,MVS)算法基于多个视角的人脸图像生成人脸点云模型,基于MVS算法,以多个稠密视角的人脸图像作为输入,自动提取图像中的特征点,并通过计算各个图像间相同位置的特征点的光照一致性进行匹配,从而完成人脸重建。
具体的,针对每一个人脸图像上的特征点,计算特征点的像素强度、与周围邻域内像素点的均值、方差等信息,并将这些信息作为该特征点的特征,然后计算两图像中特征点之间的特征差别,当差别小于一定阈值时,认为两个特征点匹配成功。基于这种方式,确定相机内外参,并对多个视角的人脸图像进行空间转换生成对应的人脸点云模型。
在一些示例中,可采用运动恢复结构(StructurefromMotion,SFM)法和光束平差(BundleAdjustment,BA)法完成人脸图像的对齐,从而获取多个视角下相机的内参数和外参数。
SFM算法就是在没有任何相机标定先验信息的前提下,直接通过多图像之间的光照一致性确定匹配的多个人脸图像的相同位置的二维特征点对,然后根据匹配的二维特征点对,初步估计多个相机间的外参数,并获得三维点云,再通过BA算法,优化相机的外参数。
S203、基于相机外参数,将人脸点云模型投影到多个视角的人脸图像上,并基于相机内参数,将各个视角下的人脸点云模型投影至各个视角对应的人脸图像上。
S204、确定人脸点云模型的各个点到人脸图像上的各个像素点的对应关系。
人脸点云模型具有高精度的特征,细节接近真实人脸,但是,通过人脸图像生成的人脸点云模型的拓扑结构不固定,即每张图生成的人脸点云的点的数量不确定,并且不具有语义信息,因此,可以通过相机外参数,将立体的人脸电影模型的各个视角通过旋转、平移等方式投影至多个视角下的人脸图像上,针对每个视角下的人脸图像,再通过相机内参数,将与该视角下的人脸图像对应的视角下人脸点云模型,通过焦距转换、缩放等方式,投影至该视角下的人脸图像上,通过这种方式,能够确定整个人脸点云模型的各个点到每一个视角下的人脸图像上的像素点的对应关系,以便后续能够通过这种对应关系,对齐人脸图像、人脸点云模型、三维人脸模型中的任二者,并且,能够给人脸点云模型上的点补充语义信息,让高精度的人脸点云模型的每个点都具有精确的三维语义信息,从而后续能够通过语义信息和三维人脸模型进行配准。
其中,S201-S204为S101的一种实现方式,具体地,S101还具有其他实现方式,在此不做限定。
在一些示例中,本公开可进行两阶段的三维人脸模型的优化,在第一阶段,针对三维人脸模型的模型整体进行变换;在第二阶段,针对三维人脸模型的每个点进行点变换。换言之,先进行粗调整,再基于粗优化后的三维人脸模型进行精细优化,通过这种方式,能够得到高精度的、细腻的三维人脸模型。
当然,在一些实现方式下,可以仅进行第一阶段的调整,省略第二阶段的调整,以减少运算量,节省***资源,在此不做限定。
基于上述,针对第一阶段的优化(S205-S206),模型变换参数包括:模型整体变换参数,本公开提供的方法还包括:
S205、基于人脸图像、人脸点云模型对初始三维人脸模型的模型整体变换参数进行迭代更新。
基于人脸图像、人脸点云模型对初始三维人脸模型的模型整体变换参数进行迭代更新,迭代更新的目的为:使最终的三维人脸模型尽可能贴近人脸图像和人脸点云模型。
具体地,参见图3,图3示出S205的流程示意图,S205包括:
其中,模型整体变换参数至少包括:形变参数。
S2051、基于人脸图像、人脸点云模型对初始三维人脸模型的形变参数进行至少一轮次的迭代更新,并基于预设的第一迭代条件得到迭代更新后的形变参数。
其中,S2051中至少一轮次的迭代更新的任一轮次包括:
S2051A、根据当前轮次的形变参数对初始三维人脸模型进行形变处理,得到形变后的三维人脸模型。
在第一次迭代时,当前的形变参数即为默认的形变参数;在第一次之后的迭代中,当前的形变参数为上一轮迭代所更新的形变参数。
其中,初始三维人脸模型为3DMM模型,3DMM模型的表达式为:
face=mean+cs×shp+ce×exp
其中,face为三维人脸模型,mean为预设的平均三维人脸模型(即初始化的平均三维人脸模型),shp表示初始三维人脸模型的形状基,cs为形状基参数,exp表示初始三维模型的表情基,ce为表情基参数;改变ce和cs即可表达不同的三维人脸模型。模型整体变换参数至少包括形变参数,形变参数至少包括形状基参数和表情基参数;还可以包括:光照参数、旋转参数、平移参数等。
S2051B、基于人脸图像的关键特征点和形变后的三维人脸模型的关键特征点确定第一误差。
其中,可以通过多种方式确定三维人脸模型的关键特征点,例如,通过主动形状模型(ActiveShapeModel,ASM)进行关键特征点的提取,关键特征点例如为:眼角、鼻尖、嘴角等关键特征点。
并且,可以针对多个视角的关键特征点进行提取,也可以就正脸的关键特征点进行提取,即S2052B中,人脸图像为正脸的人脸图像,三维人脸模型也为正视角的三维人脸模型。
在一些示例中,S2052B包括:
子步骤一、确定各个关键特征点对。
其中,一个关键特征点对包括一个形变后的三维人脸模型的关键特征点和一个与该形变后的三维人脸模型的关键特征点对应的人脸图像的关键特征点。
子步骤二、基于各个关键特征点对中每个关键特征点对的两个关键特征点的相对距离,确定第一误差。
在S2051B的子步骤一和子步骤二中,根据三维人脸模型的关键特征点与对应的人脸图像的关键特征点,经过旋转、平移、缩放等至少一者的操作进行对齐,并将二者间相同语义和/或相同位置的关键特征点确定为一个关键特征点对,再计算关键特征点对中,两个关键特征点的相对距离,以相对距离作为第一误差。
S2051C、基于人脸点云模型的各个点和形变后的三维人脸模型的各个点确定第二误差。
在一些示例中,S2051C包括:
子步骤一、确定各个点对。
其中,一个点对包括一个形变后的三维人脸模型的目标点和目标点在人脸点云模型中的最近点;
子步骤二、分别对各个点对中的每个点对的最近点进行筛选,并根据筛选结果更新点对;
子步骤三、基于更新后的各个点对中每个点对的目标点和最近点的相对距离,确定第二误差。
在S2051C的子步骤一-子步骤三中,由于上述S203-S204中确定了点云的点和人脸图像的像素点的对应关系,因此人脸点云模型的点具有语义信息,根据人脸点云模型的点的语义信息的坐标、三维人脸模型的语义信息和坐标,对二者进行对齐,并针对三维人脸模型的任一点(目标点),在人脸点云模型上确定该点的N个距离目标点在人脸点云模型上的投影位置的相对距离最近的点,作为目标点的最近点,再将目标点和目标点的最近点确定为一个点对,N为大于等于1的整数。
针对一个点对,基于最近点和目标点的单点相对距离确定整体的相对距离(例如取均值),以相对距离作为第二误差。
S2051D、基于第一误差和第二误差更新形变参数。
其中,预设的第一迭代条件为:第一误差的值和第二误差的值中至少一者不再变小。
基于第一误差对形变参数进行迭代更新的目的为:使第一误差尽可能小,从而使每个关键特征点对中的关键特征点尽可能接近,进而使三维人脸模型和人脸图像尽可能接近。
基于第二误差对形变参数进行迭代更新的目的为:使第二误差尽可能小,从而使每个点对中的点尽可能接近,进而使三维人脸模型和人脸点云模型尽可能接近。
将本轮迭代确定出的更新后的形变参数反向传播至三维人脸模型进行形变处理,再重复确定第一误差和第二误差,以第一误差和第二误差更新形变参数,直至第一误差和第二误差不再变小,即无法再继续优化,达到最优结果。在这种情况下,基于人脸图像和人脸点云模型两个方面去约束三维人脸模型,对其进行迭代更新,使形变处理后的三维人脸模型接近于真实的人脸,得到高精度、细腻的三维人脸模型。
进一步地,在一些示例下,模型整体变换参数还包括:像素区域变换参数。
基于此,继续参见图3,S205还包括:
S2052、基于人脸图像、人脸点云模型对初始三维人脸模型的像素区域变换参数进行至少一轮次的迭代更新,并基于预设的第二迭代条件得到迭代更新后的像素区域变换参数;
其中,S2052中至少一轮次的迭代更新的任一轮次包括:
S2052A、根据当前轮次的像素区域变换参数对初始三维人脸模型的渲染图进行像素变换处理,得到像素变换后的三维人脸模型的渲染图。
三维人脸模型(包括初始三维人脸模型)除了包括形状基和表情基外,还包括对三维人脸模型进行渲染后的人脸贴图(也成为渲染图),以使三维人脸模型的纹理接近真实人脸。
在第一次迭代时,当前的像素区域变换参数即为默认的像素区域变换参数;在第一次之后的迭代中,当前的像素区域变换参数为上一轮迭代所更新的像素区域变换参数。
S2052B、基于人脸图像的各个像素点的像素信息和像素变换后的三维人脸模型的渲染图的各个像素点的像素信息确定第三误差。
在一些示例中,S2052B包括:
子步骤一、确定各个人脸区域组,其中,一个人脸区域组包括一个像素变换后的三维人脸模型的渲染图的第一人脸区域和一个与第一人脸区域对应的人脸图像的第二人脸区域;
子步骤二、确定各个人脸区域组中每个人脸区域对的第一人脸区域的第一区域像素和第二人脸区域的第二区域像素;
子步骤三、基于各个人脸区域组中每个人脸区域的第一区域像素和第二区域像素的差值,确定第三误差。
在S2052B的子步骤一-子步骤三中,首先将三维人脸模型划分为多个第一人脸区域(例如:头发、面部、眼睛等区域),以同样的方式,将人脸图像划分为多个第二人脸区域;基于关键特征点将三维人脸模型和人脸图像对齐后,将相同语义和/或相同位置的第一人脸区域和第二人脸区域确定为一个人脸区域组;针对一个第一人脸区域或第二人脸区域,基于第一人脸区域包含的多个像素点的像素信息或第二人脸区域中包含的多个像素点的像素信息,确定第一区域像素(例如取像素点的像素信息的均值)或第二区域像素(例如取像素点的像素信息的均值),再基于多个人脸区域组的第一区域像素和第二区域像素的差值,确定整体的人脸区域的第三误差,第三误差的实质可以为:像素颜色的误差、像素亮度的误差等。
相应地,像素信息至少包括像素颜色、像素亮度等。
S2052C、基于第三误差更新像素区域变换参数。
其中,预设的第二迭代条件为:第三误差的值不再变小。
基于第三误差对像素区域变换参数进行迭代更新的目的为:使第三误差尽可能小,从而使每个人脸区域组中的第一区域像素和第二区域像素尽可能接近(即颜色或亮度尽可能相似),进而使三维人脸模型的渲染图和人脸图像尽可能接近。
像素区域变换参数的实质可以为:一个第一人脸区域内的各个像素点的颜色值、亮度值。
将本轮迭代确定出的更新后的像素区域变换参数反向传播至三维人脸模型进行像素变换处理,再重复确定第三误差,以第三误差更新像素区域变换参数,直至第三误差不再变小,即无法再继续优化,达到最优结果。在这种情况下,不仅基于人脸图像和人脸点云模型两个方面去约束三维人脸模型的形状,还基于三维人脸模型的渲染图和人脸图像,约束三维人脸模型的渲染效果,使形变处理后的三维人脸模型的纹理接近于真实的人脸,得到高精度、细腻的三维人脸模型。
S206、根据迭代更新后的模型整体变换参数对初始三维人脸模型进行变换,得到三维人脸模型。
第一阶段的优化即对模型的整体的模型整体变换参数进行优化,优化目标为模型的形变参数(例如ce、cs)和人脸区域的像素区域变换参数,使三维人脸模型的形状和纹理接近于人脸图像和人脸点云模型。
基于第一阶段的优化后,即在S206之后,本公开提供的方法还可以包括针对第二阶段的优化(S207-S208),其中,模型变换参数包括:模型点变换参数:
S207、基于人脸图像、人脸点云模型对三维人脸模型的各个点的模型点变换参数进行迭代更新。
在第二阶段的优化,以三维人脸模型的各个点为变量进行优化,基于每个点对三维人脸模型进行优化,以在更高的精度下对三维人脸模型进行调整。
具体地,在一些示例中,参见图4,图4示出S207的流程示意图,S207包括:
其中,模型点变换参数至少包括:三维顶点坐标。
S2071、基于人脸图像的各个关键特征点,对三维人脸模型的各个关键特征点的三维顶点坐标进行迭代更新,并基于预设的第三迭代条件得到迭代更新后的各个关键特征点的的三维顶点坐标。
其中,S2071中至少一轮次的迭代更新的任一轮次包括:
S2071A、根据当前轮次的各个三维人脸模型的关键特征点对应的三维顶点坐标对三维人脸模型进行变换,得到变换后的三维人脸模型。
在第一次迭代时,当前的三维顶点坐标即为基于S206进行优化后的三维人脸模型的三维顶点坐标;在第一次之后的迭代中,当前的三维顶点坐标为上一轮迭代所更新的三维顶点坐标。
S2071B、针对各个关键特征点中的任一关键特征点,基于人脸图像的关键特征点和变换后的三维人脸模型的关键特征点的相对距离确定第四误差。
其中,可以通过多种方式确定三维人脸模型的关键特征点,例如,通过主动形状模型(ActiveShapeModel),ASM)进行关键特征点的提取,关键特征点例如为:眼角、鼻尖、嘴角等关键特征点。
并且,可以针对多个视角的关键特征点进行提取,也可以就正脸的关键特征点进行提取,即S2071B中,人脸图像为正脸的人脸图像,三维人脸模型也为正视角的三维人脸模型。
在一些示例中,S2071B包括:
子步骤一、确定各个关键特征点对。
其中,一个关键特征点对包括一个形变后的三维人脸模型的关键特征点和一个与该形变后的三维人脸模型的关键特征点对应的人脸图像的关键特征点。
子步骤二、针对任一关键特征点对,基于人脸图像的关键特征点和变换后的三维人脸模型的关键特征点的相对距离,确定针对该关键特征点的第四误差。
在S2071B的子步骤一和子步骤二中,根据三维人脸模型的关键特征点与对应的人脸图像的关键特征点,经过旋转、平移、缩放等至少一者的操作进行对齐,并将二者间相同语义和/或相同位置的关键特征点确定为一个关键特征点对,再计算每个关键特征点对中,两个关键特征点的相对距离,以相对距离作为一个关键特征点的第四误差。
S2071C、基于第四误差更新关键特征点对应的三维顶点坐标。
针对任一三维人脸模型的关键特征点,基于该关键特征点的第四误差,优化该关键特征点的三维顶点坐标,使得三维人脸模型的关键特征点尽可能接近与之对应的人脸图像的关键特征点。
其中,第三迭代条件为:第四误差的值不再变小。
针对每个关键特征点,将本轮迭代确定出的更新后每个关键特征点的三维顶点坐标反向传播至三维人脸模型进行每个关键特征点的坐标变换,再重复确定每个关键特征点的第四误差,以第四误差更新每个关键特征点的三维顶点坐标,直至第四误差不再变小,即无法再继续优化,达到最优结果。在这种情况下,基于人脸图像与三维人脸模型上相对应的每个关键特征点的距离误差,去约束三维人脸模型的每个关键特征点,使坐标变换后的三维人脸模型在细节处更进一步接近于真实的人脸,得到高精度、细腻、细节真实的三维人脸模型。
进一步地,在一些示例中,继续参见图4,S207还包括:
S2072、基于人脸点云模型的各个点,对三维人脸模型的各个点的三维顶点坐标进行迭代更新,并基于预设的第四迭代条件得到迭代更新后的各个点的三维顶点坐标。
其中,S2072中至少一轮次的迭代更新的任一轮次包括:
S2072A、根据当前轮次的三维人脸模型的各个点对应的三维顶点坐标对三维人脸模型进行变换,得到变换后的三维人脸模型。
在第一次迭代时,当前的三维顶点坐标即为基于S206或S2071进行优化后的三维人脸模型的三维顶点坐标;在第一次之后的迭代中,当前的三维顶点坐标为上一轮迭代所更新的三维顶点坐标。
S2072B、针对各个点中的任一点,基于变换后的三维人脸模型的点和与点对应的人脸点云模型的点的相对距离确定第五误差。
在一些示例中,其中,变换后的三维人脸模型的点为下述目标点,与点对应的人脸点云模型的点为下述目标最近点,基于此,S2072B包括:
子步骤一、确定各个点对。
其中,一个点对包括一个形变后的三维人脸模型的目标点和目标点在人脸点云模型中的最近点。
子步骤二、分别对各个点对中的每个点对的最近点进行筛选,并根据筛选结果确定与目标点对应的目标最近点。
子步骤三、针对任一点对,基于目标点和目标最近点的相对距离,确定第五误差。
在S2072B的子步骤一-子步骤三中,由于上述S203-S204中确定了点云的点和人脸图像的像素点的对应关系,因此人脸点云模型的点具有语义信息,根据人脸点云模型的点的语义信息的坐标、三维人脸模型的语义信息和坐标,对二者进行对齐,并针对三维人脸模型的任一点(目标点),在人脸点云模型上确定该点的N个距离目标点在人脸点云模型上的投影位置的相对距离最近的点,作为目标点的最近点,再将目标点和目标点的最近点确定为一个点对,N为大于等于1的整数。
针对一个点对,在目标点的多个最近点中,确定一个满足筛选条件(例如:与目标点的相对距离最小,或与最近点限定的区域的中心点的相对距离最小)的最近点为目标最近点,基于目标点和目标最近点的相对距离确定第五误差。
S2072C、基于第五误差更新点对应的三维顶点坐标。
针对任一三维人脸模型的点,基于该点和与之对应的人脸点云模型上的点的相对距离确定第五误差,基于第五误差优化三维人脸模型的各个点的三维顶点坐标,使得三维人脸模型的各个点(目标点)尽可能接近与之对应的人脸点云模型上的点(目标最近点)。
其中,预设的第四迭代条件为:第五误差的值不再变小。
针对三维人脸模型的每个点,将本轮迭代确定出的更新后每个点的三维顶点坐标反向传播至三维人脸模型进行每个点的坐标变换,再重复确定每个点的第五误差,以第五误差更新每个点的三维顶点坐标,直至第五误差不再变小,即无法再继续优化,达到最优结果。在这种情况下,基于人脸点云模型与三维人脸模型上相对应的每个点的距离误差,去约束三维人脸模型的每个点,使坐标变换后的三维人脸模型在细节处更进一步接近于真实的人脸,得到高精度、细腻、细节真实的三维人脸模型。
进一步地,在一些示例中,继续参见图4,S207还包括:
其中,模型点变换参数包括:像素点变换参数。
S2073基于人脸图像的渲染图的各个像素点,对三维人脸模型的渲染图的各个像素点的像素点变换参数进行迭代更新,并基于预设的第五迭代条件得到迭代更新后的各个像素点的像素点变换参数;
其中,S2073中至少一轮次的迭代更新的任一轮次包括:
S2073A、根据三维人脸模型的渲染图的各个像素点当前轮次的像素点变换参数对三维人脸模型的渲染图的各个像素点进行像素变换处理,得到像素变换后的三维人脸模型的渲染图。
在第一次迭代时,当前的三维顶点坐标即为基于S206或S2071或S2075进行优化后的三维人脸模型的各个像素点的像素点变换参数;在第一次之后的迭代中,当前的像素点变换参数为上一轮迭代所更新的像素点变换参数。
S2073B、针对各个像素点中的任一像素点,基于像素变换后的三维人脸模型的渲染图中像素点的像素信息和与像素点对应的人脸图像中的像素点的像素信息的确定第六误差。
在一些示例中,S2073B包括:
子步骤一、确定各个像素点对,其中,一个像素点对包括一个像素变换后的三维人脸模型的渲染图的像素点和一个与像素变换后的三维人脸模型的渲染图的像素点对应的、人脸图像的像素点;
子步骤二、针对任一像素点对,基于人脸图像的像素点的像素信息和变换后的三维人脸模型的渲染图的像素点的像素信息的差值,确定针对该像素点的第六误差。
在S2073B的子步骤一和子步骤二中,根据三维人脸模型的渲染图的像素点与对应的人脸图像的像素点,经过旋转、平移、缩放等至少一者的操作进行对齐,并将二者间相同语义和/或相同位置的像素点确定为一个像素点对,再计算每个像素点对中,两个关键特征点的像素信息的差值,以像素信息的差值确定第六误差,其中,第六误差的实质可以为:像素颜色的误差、像素亮度的误差等。
S2073C、基于第六误差更新像素变换后的三维人脸模型的渲染图中像素点的像素点变换参数。
针对任一三维人脸模型的渲染图的像素点,基于该像素点和与之对应的人脸图像上的像素点的像素信息的差值确定第六误差,基于第六误差优化三维人脸模型的渲染图的各个像素点的像素点变换参数,使得三维人脸模型的渲染图的像素点尽可能接近与之对应的人脸图像上的像素点;像素点变换参数的实质可以为:颜色值、亮度值。
其中,预设的第五迭代条件为:第六误差的值不再变小。
针对三维人脸模型的渲染图的每个像素点,将本轮迭代确定出的更新后每个像素点的像素点变换参数反向传播至三维人脸模型进行每个像素点的像素变换,再重复确定每个点的第六误差,以第六误差更新每个点的像素点变换参数,直至第六误差不再变小,即无法再继续优化,达到最优结果。在这种情况下,基于人脸图像与三维人脸模型的渲染图上相对应的每个像素点的像素信息的差值,去约束三维人脸模型的渲染图的每个像素点,使像素变换后的三维人脸模型的渲染图在细节处更进一步接近于真实的人脸的纹理,得到高精度、细腻、纹理细节真实的三维人脸模型。
S208、根据迭代更新后的各个点对应的的模型点变换参数对三维人脸模型的各个点进行变换,得到最终的三维人脸模型。
其中,S205-S208为S102的一种实现方式,具体地,S102还具有其他实现方式,例如采用SfM方式、SFS方式等,在此不做限定。
在公开第三实施例中,基于与图1相同的原理,图5示出本公开第三实施例提供的一种人脸重建的装置50,该装置包括:
人脸点云模型生成模块501,用于根据目标人脸的多个视角的人脸图像,生成人脸点云模型;
三维人脸模型生成模块502,用于基于人脸图像、人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对初始三维人脸模型进行变换,得到与目标人脸相对应的三维人脸模型。
一些示例中,其中,模型变换参数包括:模型整体变换参数;三维人脸模型生成模块502,包括:
第一更新子模块,用于基于人脸图像、人脸点云模型对初始三维人脸模型的模型整体变换参数进行迭代更新;
第一变换子模块,用于根据迭代更新后的模型整体变换参数对初始三维人脸模型进行变换,得到三维人脸模型。
在一些示例中,模型整体变换参数包括:形变参数;
第一更新子模块具体用于:
基于人脸图像、人脸点云模型对初始三维人脸模型的形变参数进行至少一轮次的迭代更新,并基于预设的第一迭代条件得到迭代更新后的形变参数;
其中,至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的形变参数对初始三维人脸模型进行形变处理,得到形变后的三维人脸模型;
基于人脸图像的关键特征点和形变后的三维人脸模型的关键特征点确定第一误差;
基于人脸点云模型的各个点和形变后的三维人脸模型的各个点确定第二误差;
基于第一误差和第二误差更新形变参数;
其中,预设的第一迭代条件为:第一误差的值和第二误差的值中至少一者不再变小。
在一些示例中,模型整体变换参数还包括:像素区域变换参数;
第一更新子模块具体用于:
基于人脸图像、人脸点云模型对初始三维人脸模型的像素区域变换参数进行至少一轮次的迭代更新,并基于预设的第二迭代条件得到迭代更新后的像素区域变换参数;
其中,至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的像素区域变换参数对初始三维人脸模型的渲染图进行像素变换处理,得到像素变换后的三维人脸模型的渲染图;
基于人脸图像的各个像素点的像素信息和像素变换后的三维人脸模型的渲染图的各个像素点的像素信息确定第三误差;
基于第三误差更新像素区域变换参数;
其中,预设的第二迭代条件为:第三误差的值不再变小。
在一些示例中,第一更新子模块具体用于:
确定各个关键特征点对,其中,一个关键特征点对包括一个形变后的三维人脸模型的关键特征点和一个与之对应的人脸图像的关键特征点;
基于各个关键特征点对中每个关键特征点对的两个关键特征点的相对距离,确定第一误差。
在一些示例中,第一更新子模块具体用于:
确定各个点对,其中,一个点对包括一个形变后的三维人脸模型的目标点和目标点在人脸点云模型中的最近点;
分别对各个点对中的每个点对的最近点进行筛选,并根据筛选结果更新点对;
基于更新后的各个点对中每个点对的目标点和最近点的相对距离,确定第二误差。
在一些示例中,第一更新子模块具体用于:
确定各个人脸区域组,其中,一个人脸区域组包括一个像素变换后的三维人脸模型的渲染图的第一人脸区域和一个与第一人脸区域对应的人脸图像的第二人脸区域;
确定各个人脸区域组中每个人脸区域对的第一人脸区域的第一区域像素和第二人脸区域的第二区域像素;
基于各个人脸区域组中每个人脸区域的第一区域像素和第二区域像素的差值,确定第三误差。
在一些示例中,其中,模型变换参数包括:模型点变换参数;三维人脸模型生成模块502,还包括:
第二更新子模块,用于基于人脸图像、人脸点云模型对三维人脸模型的各个点的模型点变换参数进行迭代更新;
第二变换子模块,用于根据迭代更新后的各个点对应的的模型点变换参数对三维人脸模型的各个点进行变换,得到最终的三维人脸模型。
在一些示例中,模型点变换参数包括:三维顶点坐标;
第二更新子模块具体用于:
基于人脸图像的各个关键特征点,对三维人脸模型的各个关键特征点的三维顶点坐标进行迭代更新,并基于预设的第三迭代条件得到迭代更新后的各个关键特征点的的三维顶点坐标;
其中,至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的各个三维人脸模型的关键特征点对应的三维顶点坐标对三维人脸模型进行变换,得到变换后的三维人脸模型;
针对各个关键特征点中的任一关键特征点,基于人脸图像的关键特征点和变换后的三维人脸模型的关键特征点的相对距离确定第四误差;
基于第四误差更新关键特征点对应的三维顶点坐标;
其中,第三迭代条件为:第四误差的值不再变小。
在一些示例中,第二更新子模块具体用于:
基于人脸点云模型的各个点,对三维人脸模型的各个点的三维顶点坐标进行迭代更新,并基于预设的第四迭代条件得到迭代更新后的各个点的三维顶点坐标;
其中,至少一轮次的迭代更新的任一轮次包括:
根据当前的各个点对应的三维顶点坐标对三维人脸模型进行变换,得到变换后的三维人脸模型;
针对各个点中的任一点,基于变换后的三维人脸模型的点和与点对应的人脸点云模型的点的相对距离确定第五误差;
基于第五误差更新点对应的三维顶点坐标;
其中,预设的第四迭代条件为:第五误差的值不再变小。
在一些示例中,模型点变换参数包括:像素点变换参数;
第二更新子模块具体用于:
基于人脸图像的渲染图的各个像素点,对三维人脸模型的渲染图的各个像素点的像素点变换参数进行迭代更新,并基于预设的第五迭代条件得到迭代更新后的各个像素点的像素点变换参数;
其中,至少一轮次的迭代更新的任一轮次包括:
根据三维人脸模型的渲染图的各个像素点当前的像素点变换参数对三维人脸模型的渲染图的各个像素点进行像素变换处理,得到像素变换后的三维人脸模型的渲染图;
针对各个像素点中的任一像素点,基于像素变换后的三维人脸模型的渲染图中像素点的像素信息和与像素点对应的人脸图像中的像素点的像素信息的确定第六误差;
基于第六误差更新像素变换后的三维人脸模型的渲染图中像素点的像素点变换参数;
其中,预设的第五迭代条件为:第六误差的值不再变小。
在一些示例中,三维人脸模型生成模块502包括:
获取子模块,用于获取相机参数;
生成子模块,用于根据相机参数、多个视角的人脸图像生成人脸点云模型。
在一些示例中,其中,相机参数包括相机内参数和相机外参数,三维人脸模型生成模块502还包括:
投影子模块,用于基于相机外参数,将人脸点云模型投影到多个视角的人脸图像上,并基于相机内参数,将各个视角下的人脸点云模型投影至各个视角对应的人脸图像上;
对应关系子模块,用于确定人脸点云模型的各个点到人脸图像上的各个像素点的对应关系。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如人脸重建的方法。例如,在一些实施例中,人脸重建的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM603并由计算单元601执行时,可以执行上文描述的人脸重建的方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为人脸重建的方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (20)
1.一种人脸重建的方法,所述方法包括:
根据目标人脸的多个视角的人脸图像,生成人脸点云模型;
基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型。
2.根据权利要求1所述的方法,其中,所述模型变换参数包括:模型整体变换参数;
所述基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型,包括:
基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的模型整体变换参数进行迭代更新;
根据迭代更新后的所述模型整体变换参数对所述初始三维人脸模型进行变换,得到所述三维人脸模型。
3.根据权利要求2所述的方法,其中,所述模型整体变换参数包括:形变参数;
所述基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的模型整体变换参数进行迭代更新,包括:
基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的所述形变参数进行至少一轮次的迭代更新,并基于预设的第一迭代条件得到迭代更新后的所述形变参数;
其中,所述至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的所述形变参数对所述初始三维人脸模型进行形变处理,得到形变后的三维人脸模型;
基于所述人脸图像的关键特征点和所述形变后的三维人脸模型的关键特征点确定第一误差;
基于所述人脸点云模型的各个点和所述形变后的三维人脸模型的各个点确定第二误差;
基于所述第一误差和所述第二误差更新所述形变参数;
其中,所述预设的第一迭代条件为:所述第一误差的值和所述第二误差的值中至少一者不再变小。
4.根据权利要求3所述的方法,其中,所述模型整体变换参数还包括:像素区域变换参数;
所述基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的模型整体变换参数进行迭代更新,还包括:
基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的所述像素区域变换参数进行至少一轮次的迭代更新,并基于预设的第二迭代条件得到迭代更新后的所述像素区域变换参数;
其中,所述至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的所述像素区域变换参数对所述初始三维人脸模型的渲染图进行像素变换处理,得到像素变换后的三维人脸模型的渲染图;
基于所述人脸图像的各个像素点的像素信息和所述像素变换后的三维人脸模型的渲染图的各个像素点的像素信息确定第三误差;
基于所述第三误差更新所述像素区域变换参数;
其中,所述预设的第二迭代条件为:所述第三误差的值不再变小。
5.根据权利要求3或4所述的方法,其中,所述基于所述人脸图像的关键特征点和所述形变后的三维人脸模型的关键特征点确定第一误差,包括:
确定各个关键特征点对,其中,一个所述关键特征点对包括一个所述形变后的三维人脸模型的关键特征点和一个与之对应的所述人脸图像的关键特征点;
基于所述各个关键特征点对中每个关键特征点对的两个关键特征点的相对距离,确定所述第一误差。
6.根据权利要求3-5任一所述的方法,其中,所述基于所述人脸点云模型的各个点和所述形变后的三维人脸模型的各个点确定第二误差,包括:
确定各个点对,其中,一个所述点对包括一个所述形变后的三维人脸模型的目标点和所述目标点在所述人脸点云模型中的最近点;
分别对各个点对中的每个点对的所述最近点进行筛选,并根据筛选结果更新所述点对;
基于更新后的各个点对中每个点对的所述目标点和所述最近点的相对距离,确定所述第二误差。
7.根据权利要求4所述的方法,其中,所述基于所述人脸图像的各个像素点的像素信息和所述像素变换后的三维人脸模型的渲染图的各个像素点的像素信息确定第三误差,包括:
确定各个人脸区域组,其中,一个所述人脸区域组包括一个所述像素变换后的三维人脸模型的渲染图的第一人脸区域和一个与所述第一人脸区域对应的所述人脸图像的第二人脸区域;
确定所述各个人脸区域组中每个人脸区域对的所述第一人脸区域的第一区域像素和所述第二人脸区域的第二区域像素;
基于所述各个人脸区域组中每个人脸区域的第一区域像素和第二区域像素的差值,确定所述第三误差。
8.根据权利要求2-7任一所述的方法,其中,模型变换参数包括:模型点变换参数;
所述根据迭代更新后的所述模型整体变换参数对所述初始三维人脸模型进行变换,得到所述三维人脸模型之后,所述基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型,还包括:
基于所述人脸图像、所述人脸点云模型对所述三维人脸模型的各个点的模型点变换参数进行迭代更新;
根据迭代更新后的所述各个点的模型点变换参数对所述三维人脸模型的各个点进行变换,得到最终的所述三维人脸模型。
9.根据权利要求8所述的方法,其中,所述模型点变换参数包括:三维顶点坐标;
所述基于所述人脸图像、所述人脸点云模型对所述三维人脸模型的各个点的模型点变换参数进行迭代更新,包括:
基于所述人脸图像的各个关键特征点,对所述三维人脸模型的各个关键特征点的三维顶点坐标进行迭代更新,并基于预设的第三迭代条件得到迭代更新后的所述各个关键特征点的的三维顶点坐标;
其中,所述至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的各个所述三维人脸模型的关键特征点对应的三维顶点坐标对所述三维人脸模型进行变换,得到变换后的三维人脸模型;
针对各个关键特征点中的任一关键特征点,基于所述人脸图像的关键特征点和所述变换后的三维人脸模型的关键特征点的相对距离确定第四误差;
基于所述第四误差更新所述关键特征点对应的三维顶点坐标;
其中,所述第三迭代条件为:所述第四误差的值不再变小。
10.根据权利要求9所述的方法,其中,所述基于所述人脸图像、所述人脸点云模型对所述三维人脸模型的各个点的模型点变换参数进行迭代更新,还包括:
基于所述人脸点云模型的各个点,对所述三维人脸模型的各个点的三维顶点坐标进行迭代更新,并基于预设的第四迭代条件得到迭代更新后的所述各个点的三维顶点坐标;
其中,所述至少一轮次的迭代更新的任一轮次包括:
根据当前轮次的所述三维人脸模型的各个点对应的三维顶点坐标对所述三维人脸模型进行变换,得到变换后的三维人脸模型;
针对所述各个点中的任一点,基于变换后的所述三维人脸模型的所述点和与所述点对应的所述人脸点云模型的点的相对距离确定第五误差;
基于所述第五误差更新所述点对应的三维顶点坐标;
其中,所述预设的第四迭代条件为:所述第五误差的值不再变小。
11.根据权利要求10所述的方法,其中,所述模型点变换参数还包括:像素点变换参数;
所述基于所述人脸图像、所述人脸点云模型对所述三维人脸模型的各个点的模型点变换参数进行迭代更新,还包括:
基于所述人脸图像的渲染图的各个像素点,对所述三维人脸模型的渲染图的各个像素点的像素点变换参数进行迭代更新,并基于预设的第五迭代条件得到迭代更新后的所述各个像素点的像素点变换参数;
其中,所述至少一轮次的迭代更新的任一轮次包括:
根据所述三维人脸模型的渲染图的各个像素点当前轮次的所述像素点变换参数对所述三维人脸模型的渲染图的各个像素点进行像素变换处理,得到像素变换后的三维人脸模型的渲染图;
针对所述各个像素点中的任一像素点,基于所述像素变换后的三维人脸模型的渲染图中所述像素点的像素信息和与所述像素点对应的所述人脸图像中的像素点的像素信息的确定第六误差;
基于所述第六误差更新所述像素变换后的三维人脸模型的渲染图中所述像素点的像素点变换参数;
其中,所述预设的第五迭代条件为:所述第六误差的值不再变小。
12.根据权利要求1-11任一所述的方法,其中,所述根据目标人脸的多个视角的人脸图像,生成人脸点云模型,包括:
获取相机参数;
根据所述相机参数、所述多个视角的人脸图像生成人脸点云模型。
13.根据权利要求12所述的方法,其中,所述相机参数包括相机内参数和相机外参数;
所述根据所述相机参数、所述多个视角的人脸图像生成人脸点云模型之后,所述根据目标人脸的多个视角的人脸图像,生成人脸点云模型,还包括:
基于所述相机外参数,将所述人脸点云模型投影到所述多个视角的人脸图像上,并基于相机内参数,将各个视角下的所述人脸点云模型投影至各个视角对应的人脸图像上;
确定所述人脸点云模型的各个点到所述人脸图像上的各个像素点的对应关系。
14.一种人脸重建的装置,所述装置包括:
人脸点云模型生成模块,用于根据目标人脸的多个视角的人脸图像,生成人脸点云模型;
三维人脸模型生成模块,用于基于所述人脸图像、所述人脸点云模型确定初始三维人脸模型的模型变换参数,并基于模型变换参数对所述初始三维人脸模型进行变换,得到与所述目标人脸相对应的三维人脸模型。
15.根据权利要求14所述的装置,其中,所述模型变换参数包括:模型整体变换参数;
所述三维人脸模型生成模块包括:
第一更新子模块,用于基于所述人脸图像、所述人脸点云模型对所述初始三维人脸模型的模型整体变换参数进行迭代更新;
第一变换子模块,用于根据迭代更新后的所述模型整体变换参数对所述初始三维人脸模型进行变换,得到所述三维人脸模型。
16.根据权利要求15所述的装置,其中,模型变换参数包括:模型点变换参数;
所述三维人脸模型生成模块还包括:
第二更新子模块,用于基于所述人脸图像、所述人脸点云模型对所述三维人脸模型的各个点的模型点变换参数进行迭代更新;
第二变换子模块,用于根据迭代更新后的所述各个点对应的模型点变换参数对所述三维人脸模型的各个点进行变换,得到最终的所述三维人脸模型。
17.根据权利要求14-16任一所述的装置,其中,所述人脸点云模型生成模块具体用于:
获取相机参数;
根据所述相机参数、所述多个视角的人脸图像生成人脸点云模型。
18.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-13中任一项所述的方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-13中任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310798900.4A CN116912402A (zh) | 2023-06-30 | 2023-06-30 | 人脸重建的方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310798900.4A CN116912402A (zh) | 2023-06-30 | 2023-06-30 | 人脸重建的方法、装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116912402A true CN116912402A (zh) | 2023-10-20 |
Family
ID=88359387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310798900.4A Pending CN116912402A (zh) | 2023-06-30 | 2023-06-30 | 人脸重建的方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116912402A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363858A (zh) * | 2019-06-18 | 2019-10-22 | 新拓三维技术(深圳)有限公司 | 一种三维人脸重建方法及*** |
CN111710036A (zh) * | 2020-07-16 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 三维人脸模型的构建方法、装置、设备及存储介质 |
US20200320727A1 (en) * | 2017-12-22 | 2020-10-08 | The Provost, Fellows, Foundation Scholars, and the Other Members of Board, of the Holy and Undivided | Method and apparatus for generating a three-dimensional model |
CN113902781A (zh) * | 2021-10-18 | 2022-01-07 | 深圳追一科技有限公司 | 三维人脸重建方法、装置、设备及介质 |
CN115239888A (zh) * | 2022-08-31 | 2022-10-25 | 北京百度网讯科技有限公司 | 用于重建三维人脸图像的方法、装置、电子设备和介质 |
CN115861515A (zh) * | 2022-11-16 | 2023-03-28 | 北京旷视科技有限公司 | 一种三维人脸重建方法、计算机程序产品及电子设备 |
-
2023
- 2023-06-30 CN CN202310798900.4A patent/CN116912402A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200320727A1 (en) * | 2017-12-22 | 2020-10-08 | The Provost, Fellows, Foundation Scholars, and the Other Members of Board, of the Holy and Undivided | Method and apparatus for generating a three-dimensional model |
CN110363858A (zh) * | 2019-06-18 | 2019-10-22 | 新拓三维技术(深圳)有限公司 | 一种三维人脸重建方法及*** |
CN111710036A (zh) * | 2020-07-16 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 三维人脸模型的构建方法、装置、设备及存储介质 |
CN113902781A (zh) * | 2021-10-18 | 2022-01-07 | 深圳追一科技有限公司 | 三维人脸重建方法、装置、设备及介质 |
CN115239888A (zh) * | 2022-08-31 | 2022-10-25 | 北京百度网讯科技有限公司 | 用于重建三维人脸图像的方法、装置、电子设备和介质 |
CN115861515A (zh) * | 2022-11-16 | 2023-03-28 | 北京旷视科技有限公司 | 一种三维人脸重建方法、计算机程序产品及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270460B2 (en) | Method and apparatus for determining pose of image capturing device, and storage medium | |
CN115082639B (zh) | 图像生成方法、装置、电子设备和存储介质 | |
US20200410646A1 (en) | Method and apparatus for image processing | |
CN112785674A (zh) | 纹理贴图的生成方法、渲染方法、装置、设备及存储介质 | |
CN112561978B (zh) | 深度估计网络的训练方法、图像的深度估计方法、设备 | |
CN113688907B (zh) | 模型训练、视频处理方法,装置,设备以及存储介质 | |
CN115409933B (zh) | 多风格纹理贴图生成方法及其装置 | |
CN112270736B (zh) | 增强现实处理方法及装置、存储介质和电子设备 | |
CN113313832B (zh) | 三维模型的语义生成方法、装置、存储介质与电子设备 | |
CN114820905A (zh) | 虚拟形象生成方法、装置、电子设备及可读存储介质 | |
CN112927271A (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
CN111275824A (zh) | 用于交互式增强现实的表面重建 | |
CN115035235A (zh) | 三维重建方法及装置 | |
CN113793255A (zh) | 用于图像处理的方法、装置、设备、存储介质和程序产品 | |
CN116342782A (zh) | 生成虚拟形象渲染模型的方法和装置 | |
CN113658035A (zh) | 脸部变换方法、装置、设备、存储介质以及产品 | |
WO2024079556A1 (en) | Generation of reflectance maps for relightable 3d models | |
CN115131507B (zh) | 图像处理方法、图像处理设备和元宇宙三维重建方法 | |
CN116912402A (zh) | 人脸重建的方法、装置、电子设备、存储介质 | |
CN113961746B (zh) | 视频生成方法、装置、电子设备及可读存储介质 | |
CN113902768A (zh) | 一种基于可微渲染的三维人脸模型边缘优化方法及*** | |
CN113870428A (zh) | 场景地图生成方法、相关装置及计算机程序产品 | |
KR102146839B1 (ko) | 실시간 가상현실 구축을 위한 시스템 및 방법 | |
CN116363331B (zh) | 图像生成方法、装置、设备以及存储介质 | |
CN116778053B (zh) | 基于目标引擎的贴图生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |