CN114049287B - 面部模型融合方法、装置、设备及计算机可读存储介质 - Google Patents

面部模型融合方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN114049287B
CN114049287B CN202111307659.8A CN202111307659A CN114049287B CN 114049287 B CN114049287 B CN 114049287B CN 202111307659 A CN202111307659 A CN 202111307659A CN 114049287 B CN114049287 B CN 114049287B
Authority
CN
China
Prior art keywords
fusion
initial
matrix
determining
models
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
CN202111307659.8A
Other languages
English (en)
Other versions
CN114049287A (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 CN202111307659.8A priority Critical patent/CN114049287B/zh
Publication of CN114049287A publication Critical patent/CN114049287A/zh
Priority to PCT/CN2022/118952 priority patent/WO2023077972A1/zh
Application granted granted Critical
Publication of CN114049287B publication Critical patent/CN114049287B/zh
Priority to US18/214,921 priority patent/US20230342942A1/en
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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • 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/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

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

面部模型融合方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及图像处理技术,尤其涉及一种面部模型融合方法、装置、设备及计算机可读存储介质。
背景技术
目前在进行动画设计、游戏人物设计或者虚拟数字人设计时,可以通过将预设的面部模型进行混合,得到动画角色、游戏角色或者虚拟数字人的头部模型。在相关技术的人脸混合方案,主要是基于网格顶点位置的混合。主要的计算过程是给定了拓扑一致的两个或者多个三维面部模型,计算所有输入人脸的每个顶点的平均位置,将这一平均位置作为混合人脸的顶点位置,然后再整体对所有顶点位置进行拉普拉斯平滑等后处理操作,得到最终的混合人脸。
利用该方法进行人脸混合时,对于所输入人脸必须进行人脸区域的“对齐”预处理,即将属于同一个人脸区域的顶点重采样到相同的世界坐标位置,然后再计算顶点平均位置,否则就会出现五官“错位”的现场,得到错误的混合结果。尤其是对于人脸大小不一致或者五官比例差别很大的面部模型。然而对于输入人脸进行“对齐”的操作,也往往会引入人脸形变,改变原有人脸,导致混合人脸无法完全保持原有人脸的特征。
发明内容
本申请实施例提供一种面部模型融合方法、装置及计算机可读存储介质,能够提高面部模型融合的准确度和融合效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种面部模型融合方法,包括:
获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重,所述至少两个初始面部模型具有相同的拓扑结构;
基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵;
基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量;
基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息;
基于所述各个顶点的融合位置信息,输出融合面部模型。
本申请实施例提供一种面部模型融合装置,包括:
第一获取模块,用于获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重,所述至少两个初始面部模型具有相同的拓扑结构;
第一确定模块,用于基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵;
第二确定模块,用于基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量;
第三确定模块,用于基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息;
第一输出模块,用于基于所述各个顶点的融合位置信息,输出融合面部模型。
在一些实施例中,该第一确定模块,还用于:
基于所述各个初始面部模型的拓扑结构信息,获取所述各个初始面部模型中顶点的位置信息和顶点之间的连接信息;
基于所述顶点的位置信息和顶点之间的连接信息确定所述各个初始面部模型中连接边的边向量;
基于所述各个初始面部模型中顶点之间的连接信息,确定所述各个初始面部模型的连接矩阵,其中,当两个顶点之间为连接关系时,所述连接矩阵中的对应元素为第一预设值,当两个顶点之间为非连接关系时,所述连接矩阵中的对应元素为第二预设值,第一预设值和第二预设值不同。
在一些实施例中,该第一获取模块,还用于:
获取预设的面部划分区域图,所述面部划分区域图中包括多个区域,其中,不同区域对应不同的生理部位;
响应于针对所述各个初始面部模型中不同区域的权重设置操作,获取所述各个初始面部模型中不同区域的融合权重。
在一些实施例中,该第二确定模块,还用于:
基于初始面部模型中连接边的顶点的位置信息,确定所述连接边所在的区域;
获取所述各个初始面部模型在所述区域的各个融合权重;
将所述各个初始面部模型中连接边的边向量和所述各个融合权重进行加权求和,得到所述连接边的融合边向量。
在一些实施例中,所述至少两个初始面部模型为至少两个初始中立面部模型时,该第三确定模块,用于:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定融合位置矩阵;
基于所述融合位置矩阵,确定各个顶点的融合位置信息。
在一些实施例中,所述至少两个初始面部模型为至少两个初始表情面部模型时,该第三确定模块,还用于:
获取所述至少两个初始表情面部模型对应的至少两个初始中立面部模型,并获取所述至少两个初始中立面部模型的融合中立面部模型;
基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵;
基于所述至少两个初始表情面部模型中各个顶点的位置信息和所述至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合;
从所述候选融合位置矩阵中确定所述第一顶点集合中各个第一顶点的融合位置信息;
基于所述融合中立面部模型,确定所述第二顶点集合中各个第二顶点的融合位置信息。
在一些实施例中,该第三确定模块,还用于:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
在一些实施例中,该第三确定模块,还用于:
确定所述第一乘积矩阵和所述第一乘积矩阵相乘得到的第二乘积矩阵,确定所述第二乘积矩阵的第二逆矩阵;
基于所述第二逆矩阵、所述第一乘积矩阵、所述转置矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
在一些实施例中,该第三确定模块,还用于:
确定第k个初始表情面部模型中的第i个顶点与第k个初始中立面部模型中的第i个顶点之间的距离,其中,k=1,2,…,K,K为初始表情面部模型总数;i=1,2,…,V,V为顶点总数,V和K均为大于1的整数;
当第i个顶点对应的K个距离均小于或者等于预设阈值时,确定第i个顶点为未发生移动的第二顶点;
当第i个顶点对应的K个距离存在至少一个距离大于所述预设阈值时,确定第i个顶点为发生移动的第一顶点。
在一些实施例中,该装置还包括:
调整模块,用于当输出所述融合面部模型之后,确定需要对所述各个初始面部模型对应的权重进行调整时,基于所述融合面部模型和所述各个初始面部模型,对所述各个初始面部模型对应的权重进行调整,得到各个调整后的权重;
融合处理模块,用于基于所述各个调整后的权重对所述各个初始面部模型进行融合处理,得到调整后的融合面部模型;
第二输出模块,用于输出该调整后的融合面部模型。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时,实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:
在获取到待融合的至少两个具有相同的拓扑结构的初始面部模型以进行面部模型融合时,首先需要获取为各个初始面部模型设置的融合权重,然后基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵,其中连接边的边向量由连接边的两个顶点的位置确定,连接矩阵能够反映初始面部模型中各个顶点之间的连接关系,进而基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量,并基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息,在确定出各个顶点的融合位置信息之后,即可得到融合面部模型,由于在本申请实施例中是利用融合权重计算面部模型的每一条边的融合边向量,然后再根据边的融合边向量反向计算出各个顶点的融合位置位置信息,得到最终的融合面部模型,从而能够保证面部模型中各个部位不会错位或变形,保证面部模型融合的准确性,并且本申请实施例提供的面部模型融合方法既无需对待融合的初始面部模型做预处理,也不需要对混合结果做后处理,因此能够提高融合效率。
附图说明
图1是本申请实施例提供的人脸融合系统架构的结构示意图;
图2是本申请实施例提供的终端的结构示意图;
图3是本申请实施例提供的面部模型融合方法的一种实现流程示意图;
图4为本申请实施例提供的面部模型融合方法的另一种实现流程示意图;
图5为本申请实施例提供的面部模型融合方法的再一种实现流程示意图;
图6为本申请实施例提供的人脸融合方法的再一种实现流程示意图;
图7为本申请实施例提供的设置人脸混合权重的示意图;
图8A为基于本申请实施例提供的人脸模型方法研发的人脸混合工具的启动界面示意图;
图8B为基于本申请实施例提供的人脸模型方法研发的人脸混合工具的使用界面示意图;
图9A为输入的中立人脸模型示意图;
图9B利用本申请实施例提供的人脸融合方法进行中立人脸融合的结果示意图;
图10A为输入的闭眼表情人脸模型示意图;
图10B为利用本申请实施例提供的人脸融合方法进行闭眼人脸融合的结果示意图;
图11A为输入向上看表情人脸模型示意图;
图11B为利用本申请实施例提供的人脸融合方法进行向上看人脸融合的结果示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)多边形网格(polygon mesh):三维计算机图形学中表示多面体形状的顶点与多边形的集合,通常由三角形、四边形或者其它的简单凸多边形组成。
2)顶点(vertex):几何学中,指两条或多条直线或曲线的相交点。在计算机图形学中,三维模型通常会表示为以三角形构成的多面体,其中,顶点不仅表示位置信息,还包含渲染所需的信息,如颜色、反射特性、纹理和表面法线等。
本申请实施例提供一种面部模型融合方法、装置、设备和计算机可读存储介质,能够解决相关技术中进行处理前需要进行顶点对齐处理,处理后需要进行平滑处理的问题,能够提高面部模型融合的准确性和融合效率,下面说明本申请实施例提供计算机设备的示例性应用,本申请实施例提供的计算机设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为终端时示例性应用。
参见图1,图1是本申请实施例提供的人脸融合系统100的网络架构示意图,如图1所示,该系统包括服务器200、网络300和终端400,其中,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
在本申请实施例中,以进行虚拟数字人设计为例进行说明。虚拟数字人是指与真人具有高度相似度的虚拟人,虚拟数字人设计包括面部模型设计、发型设计、体型设计等多个方面,其中面部模型设计是最为重要的一个方面。在本申请实施例中,终端400用于进行面部模型设计,并将设计出的面部模型在图形界面410上显示,服务器200用于存储面部模型库,终端400可以从服务器200中获取面部模型库中的各个初始面部模型,也可以将设计好的面部模型上传至服务器200。
终端400可以是直接从服务器200中获取到面部模型库,并存储到本地存储空间,也可以是每次需要进行面部模型融合时,从服务器200的面部模型库中获取需要的初始面部模型。在本申请实施例中,以终端400获取面部模型库并存储到本地为例进行说明。在终端400获取到面部模型库后,可以从面部模型库中选择待融合的初始面部模型,终端400获取模型师设置的各个初始面部模型的融合权重,然后基于各个初始面部模型和各个融合权重,确定连接边的融合边向量,进而基于融合边向量和初始面部模型的连接矩阵确定各个顶点的融合位置信息,得到融合面部模型,并进行输出。在得到融合面部模型后,终端400还可以将得到的融合面部模型上传至服务器,可供其他人员使用,例如可以供其他设计师基于该融合面部模型进行虚拟人的其他设计,例如服饰、配饰、发型、体型等其他方面的设计。
由于虚拟数字人的面部模型是虚拟数字人设计中的第一个且最为重要的环节,终端400在获取到一组初始面部模型(初始中立人脸模型或初始表情人脸模型均可)之后,就可以通过本申请实施例提供的面部融合方法快速混合出模型师想要的三维人脸模型或对应的人脸表情模型,不仅能够大大节省面部模型师的制作、修改模型时间,并且融合得到的面部模型结果平滑,从而解决了面部模型融合容易出现错位及不平滑位移的问题以及反复修改调整而造成的数字人设计周期长的问题,能够在很大程度上缩短虚拟数字人的整个设计时间。
在一些实施例中,面部模型的融合过程,还可以是由服务器200实现的,在终端400选择好待融合的初始面部模型,并获取到各个初始面部模型的融合权重后,可以将各个初始面部模型和对应的融合权重,发送给服务器200,由服务器200进行面部模型的融合处理,得到融合面部模型,并将融合面部模型发送至终端400,以使得终端400确定融合面部模型是否符合自身需求,如果符合,则服务器200会保存融合面部模型。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的终端400的结构示意图,图2所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的面部模型融合装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第一确定模块4552、第二确定模块4553、第三确定模块4554和第一输出模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的面部模型融合方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
本申请实施例提供一种面部模型融合方法,可以应用于计算机设备,该计算机设备,该计算机设备可以是诸如电子计算机、智能手机、平板电脑等终端,还可以是服务器,图3是本申请实施例提供的面部模型融合方法的一种流程示意图,将结合图3对各个步骤进行说明。
步骤S101,获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重。
其中,至少两个初始面部模型具有相同的拓扑结构,且初始面部模型为三维模型。具有相同的拓扑结构是指不同的初始面部模型中具有的顶点个数,以及不同顶点之间的连接关系都是相同的。该初始面部模型可以是初始中立面部模型,也可以是初始表情面部模型,其中,初始中立面部模型是指不带表情的面部模型,可以包括不带表情的睁眼面部模型,不带表情的闭眼面部模型;初始表情面部模型是指对不带表情的面部模型进行变形处理得到的带表情的面部模型,例如可以是微笑面部模型、大笑面部模型、伤心面部模型等。本申请实施例中的面部模型可以是指人脸模型,还可以是卡通人物的面部模型,或者动画角色的面部模型,不论是那种面部模型,需要包括基本的面部生理特征,例如需要包括嘴巴、眼睛、鼻子、耳朵、眉毛等部位。
当步骤S101在是由终端实现时,可以是终端从服务器获取面部模型库,进而基于接收到的针对至少两个初始面部模型的选择操作,从面部模型库中选择待融合的至少两个初始面部模型,在选出出待融合的初始面部模型之后,需要对各个初始面部模型的融合权重进行设置,在实现时,可以是每个初始面部模型具有统一的权重,还可以是每个初始面部模型中同一个部位具有一个权重。
步骤S102,基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵。
初始面部模型的拓扑结构信息包括初始面部模型中包括的各个顶点的位置信息以及不同顶点之间的连接信息,确定各个初始面部模型中连接边的边向量在实现时,可以是基于连接边的两个顶点的位置信息确定的;初始面部模型的连接矩阵表征各个连接边的顶点信息,假设初始面部模型有V个顶点,有E条连接边,那么该初始面部模型的连接矩阵的维度为E*V,其中,当顶点Vi与顶点Vj为第p条连接边的两个顶点时,那么该连接矩阵M的第p行第i列元素Mpi和第p行第j列元素Mpj为第一预设值,第p行的其他列为第二预设值。例如第一预设值为1,第二预设值为0。
步骤S103,基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量。
在实现时,首先确定连接边对应的融合权重,然后将各个初始面部模型中的连接边的边向量和对应的融合权重进行加权求和,即得到了该连接边的融合边向量。
例如,有两个初始面部模型,对于边eij,对应的融合权重分别为w1和w2,那么该连接边的融合边向量为eij 1*w1+eij 2*w2
步骤S104,基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息。
该步骤在实现时,会基于初始面部模型类型的不同而有不同的实现方式,其中当初始面部模型为初始中立面部模型时,由于是不带表情的,所以不同的初始中立模型中各个对应顶点的位置相差不会太大,此时该步骤在实现时,会基于融合边向量构建融合矩阵,然后基于连接矩阵乘以顶点融合位置矩阵等于融合矩阵,这一关系,求解出顶点融合位置矩阵,也就得到了融合位置信息。
当初始面部模型为初始表情面部模型时,首先要获取到初始中立面部模型的一个融合结果,也即融合中立面部模型,然后该步骤在实现时,会通过与初始中立面部模型类似的过程,得到顶点的融合位置矩阵,但是该融合位置矩阵并不是最终的融合位置信息,而是作为一个候选,然后需要从初始表情面部模型中确定出相对于初始中立面部模型发生移动的第一顶点集合和相对于初始中立面部模型未发生移动的第二顶点集合,对于第二顶点集合中的各个第二顶点是基于融合中立面部模型确定各个第二顶点的融合位置信息;对弈第一顶点集合中的各个第一顶点的融合位置信息是基于候选融合位置矩阵确定出的。
步骤S105,基于所述各个顶点的融合位置信息,输出融合面部模型。
在确定出各个顶点的融合位置信息之后,即可生成融合面部模型,输出融合面部模型在实现时,如果是终端执行的,那么可以是在终端的显示装置上输出显示融合面部模型,如果是服务器执行的,服务器在确定出各个顶点的融合位置信息并生成融合面部模型后,输出融合面部模型可以是将融合面部模型发送至请求进行面部模型融合的终端,然后在终端的显示装置上再进行显示。
在本申请实施例提供的面部模型融合方法中,在获取到待融合的至少两个具有相同的拓扑结构的初始面部模型以进行面部模型融合时,首先需要获取为各个初始面部模型设置的融合权重,然后基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵,其中连接边的边向量由连接边的两个顶点的位置确定,连接矩阵能够反映初始面部模型中各个顶点之间的连接关系,进而基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量,并基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息,在确定出各个顶点的融合位置信息之后,即可得到融合面部模型,由于在本申请实施例中是利用融合权重计算面部模型的每一条边的融合边向量,然后再根据边的融合边向量反向计算出各个顶点的融合位置位置信息,得到最终的融合面部模型,从而能够保证面部模型中各个部位不会错位或变形,保证面部模型融合的准确性,并且本申请实施例提供的面部模型融合方法既无需对待融合的初始面部模型做预处理,也不需要对混合结果做后处理,因此能够提高融合效率。
在一些实施例中,上述步骤S101中的“获取各个初始面部模型对应的融合权重”,可以通过下述步骤S1011至步骤S1012实现:
步骤S1011,获取预设的面部划分区域图。
其中,该面部划分区域图可以如图7所示,通过图7可以看出,面部划分区域图中包括多个区域,其中,不同区域对应不同的生理部位,包括额头、眼睛、鼻子、嘴巴等等。需要说明的是,在该面部划分区域图中,不同填充的区域才认为是不同的区域,例如,图7中的区域701和区域702为不同的填充,因此为不同区域,而图7中的区域701和区域703为相同的填充,因此区域701和区域703为相同区域。
步骤S1012,响应于针对所述各个初始面部模型中不同区域的权重设置操作,获取所述各个初始面部模型中不同区域的融合权重。
在本申请实施例中,是为初始面部模型中的不同区域设置不同的融合权重,也即可以是将不同的生理部位设置不同的融合权重。例如,有两个初始面部模型,其中模型师想要融合后的面部模型中的眼睛与模型一的眼睛更接近,而嘴巴与模型二中的嘴巴更接近,那么就可以把模型一的眼睛的融合权重设置的高一些,模型一中的嘴巴的融合权重设置的低一些。举例来说,可以是模型一中眼睛的融合权重为0.8,模型二中眼睛的融合权重为0.2;模型一中嘴巴的融合权重可以是0.3,模型二中嘴巴的融合权重可以是0.7。如此就可以提高融合面部模型的多样性和灵活性。
在一些实施例中,上述步骤S102“基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵”,可以通过下述的步骤S1021至步骤S1023实现,以下对各个步骤进行说明。
步骤S1021,基于所述各个初始面部模型的拓扑结构信息,获取所述各个初始面部模型中顶点的位置信息和顶点之间的连接信息。
这里,顶点的位置信息为三维位置信息。例如,对于顶点vi来说,该顶点的位置信息可以为(xi,yi,zi)。
步骤S1022,基于所述顶点的位置信息和顶点之间的连接信息确定所述各个初始面部模型中连接边的边向量。
顶点之间的连接信息可以为连接关系,也可以为非连接关系。该步骤在实现时,具有连接关系的顶点之间是具有连接边的,计算该连接边的边向量可以是将连接边两个顶点的位置相减,例如边eij的顶点为vi和vj,vi的位置信息为(xi,yi,zi),vj的位置信息为(xj,yj,zj),那么eij的边向量为(xi-xj,yi-yj,zi-zj)。
步骤S1023,基于所述各个初始面部模型中顶点之间的连接信息,确定所述各个初始面部模型的连接矩阵。
其中,当两个顶点之间为连接关系时,所述连接矩阵中的对应元素为第一预设值,当两个顶点之间为非连接关系时,所述连接矩阵中的对应元素为第二预设值,第一预设值和第二预设值不同。例如,第一预设值可以为1,第二预设值可以为0,该连接矩阵为对称矩阵。
在一些实施例中,上述步骤S103“基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定融合边向量”可以通过下述的步骤S1031至步骤S1013实现,下面对各个步骤进行说明。
步骤S1031,基于初始面部模型中连接边的顶点的位置信息,确定所述连接边所在的区域。
在本申请实施例中,由于顶点的位置信息为三维信息,边向量也为三维信息,而面部划分区域图为二维图像,因此该步骤在实现时,首先需要将连接边的边向量映射到二维空间,得到二维的边向量信息,然后再通过二维的边向量信息确定连接边所在的区域。在实际实现时,需要确定出每个连接边所在的区域,在本申请实施例中,以确定一个连接边为例进行说明。
步骤S1032,获取所述各个初始面部模型在所述区域的各个融合权重。
在实现时,确定出连接边所在的区域后,然后获取各个初始面部模型在该区域中的各个融合权重。举例来说,确定出某一连接边所在区域为鼻子区域,那么获取模型师预先设置的各个初始面部模型中鼻子区域的各个融合权重。假设有3个初始面部模型,预设的融合权重分别为0.4、0.2和0.2。
步骤S1033,将所述各个初始面部模型中连接边的边向量和所述各个融合权重进行加权求和,得到所述连接边的融合边向量。
通过上述的步骤S1031至步骤S1033,即可基于预先为每个初始面部模型中的不同区域所设置的融合权重和各个初始面部模型中连接边的边向量进行加权融合,从而得到连接边的融合边向量,也就是说,是以连接边为粒度,来进行面部模型的融合,能够保证融合结果不出现较大程度的变形,保证融合准确率。
由于初始面部模型可以是初始中立面部模型,还可以是初始表情面部模型,那么当上述实施例中的至少两个初始面部模型为至少两个初始中立面部模型时,如图4所示,上述步骤S104“基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息”可以通过下述的步骤S1041A至步骤S1044A实现,以下结合图4对各步骤进行说明。
步骤S1041A,基于连接边的融合边向量,构建融合矩阵。
在本申请实施例中,融合边向量为1*3的向量,假设有E条连接边,那么构建的融合矩阵D的维度为E*3。
步骤S1042A,确定连接矩阵的转置矩阵,并确确定连接矩阵的转置矩阵和连接矩阵的第一乘积矩阵,确定第一乘积矩阵的第一逆矩阵。
在本申请实施例中,连接矩阵为M,维度为E*V,那么连接矩阵的转置矩阵为MT,维度为V*E,第一乘积矩阵的维度为V*V,第一逆矩阵的维度也为V*V。
步骤S1043A,基于第一逆矩阵、连接矩阵和融合矩阵,确定融合位置矩阵。
在本申请实施例中,融合位置矩阵用X来表示,由于M、X和D满足公式(1-1):
M×X=D (1-1);
那么求解该公式(1-1)即可得到融合位置矩阵X,由于连接矩阵M不是满秩矩阵,所以需要选择一个不动点来作为迪利克雷边界条件来求解,在实际实现时,可以用面部模型中颈部边缘上的一个点来作为该不动点。
在本申请实施例中,为了得到的解更加稳定,可以在公式(1-1)两边同时乘以M矩阵的转置,即得到公式(1-2):
MT×M×X=MT×D (1-2);
因此,可以得到X=(MT×M)-1×MT×D,也即融合位置矩阵为该第一逆矩阵、该转置矩阵和融合矩阵的乘积。融合位置矩阵X的维度为V*3。
步骤S1044A,基于融合位置矩阵,确定各个顶点的融合位置信息。
在得到融合位置矩阵X之后,也就得到了各个顶点的融合位置信息。
通过上述的步骤S1041A至步骤S1044A,在得到各个连接边的融合边向量之后,可以通过矩阵计算,即可反向求得各个顶点的融合位置信息,而不需要进行其他的后处理操作,就可以得到平滑准确的融合位置信息,不仅能提高融合效率,还能保证融合准确性。
在一些实施例中,当该至少两个初始面部模型为至少两个初始表情面部模型时,上述步骤S104“基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息”,可以通过图5所述的步骤S1041B至步骤S1045B实现,以下结合图5对各个步骤进行说明。
步骤S1041B,获取至少两个初始表情面部模型对应的至少两个初始中立面部模型,并获取至少两个初始中立面部模型的融合中立面部模型。
首先需要说明的是,表情面部模型是通过对中立面部模型进行变形处理得到的,一个中立面部模型可以通过变形得到多个表情面部模型,例如可以得到微笑、大笑、害羞、哭泣等多个表情面部模型,这多个表情面部模型对应同一个中立面部模型。
当初始面部模型为初始表情面部模型时,至少两个初始表情面部模型对应的表情是相同的,例如可以是将两个同是微笑表情的初始面部模型进行融合,也可以是将三个同是哭泣表情的初始面部模型融合,但是不可以将微笑表情的初始面部模型和哭泣表情的初始面部模型进行融合。
该步骤在实现时,首先分别获取各个初始表情面部模型对应的初始中立面部模型,如果之前已经对初始中立模型进行融合,那么直接获取至少两个初始中立面部模型的融合中立面部模型即可;如果事先没有对初始中立模型进行融合,那么可以通过上述的步骤S101至步骤S103,以及步骤S1041A至步骤S1044A,得到融合中立面部模型。
步骤S1042B,基于连接边的融合边向量和连接矩阵,确定至少两个初始表情面部模型的候选融合位置矩阵。
在实际应用中,该步骤S1042B可以通过以下步骤实现:
步骤S421,基于所述连接边的融合边向量,构建融合矩阵。
该步骤与步骤S1041A是类似的,假设初始表情面部模型有E条连接边,那么此时构建的融合矩阵D的维度为E*3。
步骤S422,确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵。
第一乘积矩阵也即MT×M,第一逆矩阵也即(MT×M)-1
步骤S423,基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
上述步骤S421至步骤S423的实现过程与上述步骤S1041A至步骤S1043A的实现过程是类似的,候选融合位置矩阵可以通过求解公式(1-2)得到。在一些实施例中,为了保证求解出的顶点位置更加平滑,步骤S423还可以通过下述的步骤S4321至步骤S4322实现。
步骤S1043B,基于至少两个初始表情面部模型中各个顶点的位置信息和至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合。
由于初始表情面部模型是带表情的,那么即便是同一个表情,不同初始表情面部模型的顶点运动幅度一般是不一致的,因此通过步骤S423得到的候选融合位置矩阵,往往也会存在相对于中立人脸的顶点位移偏差。为了更好地保证融合面部模型的准确性,在该步骤中,筛选出相对初始中立模型移动的第一顶点集合和未发生移动的第二顶点集合,对第一顶点集合和第二顶点集合采用步骤S1044B和步骤S1045B两种不同的处理方式。
步骤S1044B,从候选融合位置矩阵中确定所述第一顶点集合中各个第一顶点的融合位置信息。
也就是说,对于发生移动的第一顶点,是将候选融合位置矩阵中的融合位置信息作为对应第一顶点的融合位置信息。
步骤S1045B,基于融合中立面部模型,确定第二顶点集合中各个第二顶点的融合位置信息。
而对于未发生移动的第二顶点,是将融合中立面部模型中对应位置的融合位置信息作为对应第二顶点的融合位置信息。
通过上述步骤S1041B至步骤S1045B,能够基于连接矩阵、候选融合位置矩阵和至少两个初始表情模型对应的初始中立面部模型的融合中立模型,确定出各个顶点的融合位置信息,并将候选融合位置矩阵的位置信息确定为相对于初始中立面部模型发生移动的顶点的融合位置信息,将融合中立模型中对应顶点的位置信息确定为未发生移动的顶点的融合位置信息,从而能够避免因为不同初始表情面部模型的顶点变化幅度的不同而带来的面部模型变形问题。
在一些实施例中,为了使得求解的顶点位置更加平滑,上述的步骤S423“基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵”可以通过下述步骤实现:
步骤S4231,确定所述第一乘积矩阵和所述第一乘积矩阵相乘得到的第二乘积矩阵,确定所述第二乘积矩阵的第二逆矩阵。,第二逆矩阵
第二乘积矩阵也即MT×M×MT×M,第二逆矩阵也即为(MT×M×MT×M)-1
步骤S4232,基于所述第二逆矩阵、所述第一乘积矩阵、所述转置矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
为了是求解的顶点位置更加平滑,在本申请实施例中,在公式(1-2)两边再同时乘以MT×M,也即得到公式(1-3):
MT×M×MT×M×X=MT×M×MT×D(1-3);
求解公式(1-3)也就得到了候选融合位置矩阵X=(MT×M×MT×M)-1×MT×M×MT×D,也即候选融合矩阵为第二逆矩阵、所述第一乘积矩阵、所述转置矩阵和所述融合矩阵的乘积。
在一些实施例中,上述步骤S1043B“基于所述至少两个初始表情面部模型中各个顶点的位置信息和所述至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合”,可以通过以下步骤实现:
步骤S431,确定第k个初始表情面部模型中的第i个顶点与第k个初始中立面部模型中的第i个顶点之间的距离。
其中,k=1,2,…,K,K为初始表情面部模型总数;i=1,2,…,V,V为顶点总数,V和K均为大于1的整数;
由于每个初始表情面部模型对应一个初始中立面部模型,那么可以基于初始表情面部模型中各个顶点的位置信息和该初始表情面部模型对应的初始中立面部模型中各个顶点的位置信息,确定出每个顶点对应的距离信息,其中每个顶点对应有K个距离值。
步骤S432,当第i个顶点对应的K个距离均小于或者等于预设阈值时,确定第i个顶点为未发生移动的第二顶点。
也就是说,当一个顶点,在K个初始表情面部模型和对应的K个初始中立表情中距离都小于或者等于预设阈值时,就认为该顶点为发生移动。
举例来说,有3个初始表情面部模型A1、A2和A3,对应有三个初始中立面部模型,分别为B1、B2和B3,对于第1个顶点,在A1和B1中,距离为0.2,在A2和B2中距离为0,在A3和B3中距离为0.1,该距离阈值为0.5,由于0.2、0、0.1均小于0.5,那么确定第1个顶点为未发生移动的第二顶点。
步骤S433,当第i个顶点对应的K个距离存在至少一个距离大于所述预设阈值时,确定第i个顶点为发生移动的第一顶点。
当第i个顶点对应的K个距离中,只要有一个距离大于预设阈值,则认为该第i顶点为发生移动的第一顶点。
在一些实施例中,在步骤S105之后,如果用户在查看到融合面部模型,感觉融合面部模型不符合预期时,还可以通过下述步骤对融合面部模型进行调整:
步骤S106,当输出所述融合面部模型之后,确定需要对所述各个初始面部模型对应的权重进行调整时,基于所述融合面部模型和所述各个初始面部模型,对所述各个初始面部模型对应的融合权重进行调整,得到各个调整后的权重。
步骤S107,基于所述各个调整后的权重对所述各个初始面部模型进行融合处理,得到调整后的融合面部模型。
上述步骤S106至步骤S107是由终端实现的,当终端输出融合面部模型之后,如果模型师对得到的融合面部模型不满意时,可以通过调整各个初始面部模型的融合权重来对融合面部模型进行调整。例如,当需要将融合面部模型中的眼睛调大时,那么就需要将初始面部模型中眼睛较大的融合权重调高,将眼睛较小的融合权重调低,之后再按照调整后的权重,对各个初始面部模型进行融合处理,得到调整后的融合面部模型,如此,仅仅是通过调节融合权重即可对融合面部模型进行调整,能够提高调整效率。
当然,在实际应用过程中,如果得到的融合面部模型与预期相差较大时,也可以通过更换初始面部模型的方式,对融合面部模型进行调整。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。在本申请实施例中,以面部模型为人脸模型为例进行说明。
针对相关技术中,人脸融合方法必须对输入人脸进行人脸区域“对齐”的数据预处理,而且对于人脸大小不一致或者五官比例差别很大的面部模型,混合结果往往不理想,存在五官错位的问题,本申请实施例提供了一种基于梯度域的三维人脸融合方法。
本申请实施例提供的人脸融合方法的应用场景包括制作数字人场景,只需要提供一组统一拓扑的面部模型(中立人脸和人脸blendshape均可),就可以使用本申请实施例提供的人脸融合方法快速混合出模型师想要的三维面部模型和对应的人脸blendshape,大大节省了模型师制作、修改模型的时间。
图6为本申请实施例提供的人脸融合方法的再一种实现流程示意图,如图6所示,该流程包括:
步骤S601,计算网格梯度。
在本申请实施例中,输入信息包括至少两个面部模型,在本申请实施例中,面部模型可以是中立面部模型,也即仅反映五官比例而不带表情的面部模型。其中,面部模型为三维面部模型,这些面部模型的拓扑一致,即具有相同的顶点数量,每个顶点有相同的连接关系。假设每个面部模型有V个顶点,每个顶点表示为vi,每条边表示为eij,eij表示这条边由顶点vi和vj构成。这里,计算的是输入的每个面部模型的网格梯度,也即计算每个输入模型中每条边向量的信息。在实现时可以利用公式(2-1)实现:
Figure BDA0003340816580000221
其中,
Figure BDA0003340816580000222
表示第k个模型的第i个顶点,/>
Figure BDA0003340816580000223
表示第k个模型的第i个和第j个顶点组成的边向量。
步骤S602,计算连接矩阵。
在本申请实施例中,根据人脸网格(mesh)所具有的关系属性来定义连接矩阵。假设有面部模型中有V个顶点,有E条连接边,那么该面部模型的连接矩阵M是一个E*V的矩阵,其中,M中的元素各个连接边的顶点信息,当第一条连接边的顶点为第i个顶点和第j个顶点时,那么M1i=1,M1j=1,第一行的其他元素为0,也即M矩阵中,每一行有两个元素为1,其他元素均为0。
步骤S603,设定人脸混合权重。
在本申请实施例中,人脸混合权重表示为如图7所示的一张面部划分区域图,每个人脸区域用一种形状填充表示。被标记为同一填充的顶点具有相同的人脸混合权重。艺术家或设计师可以根据自身的需求来设定每个人脸区域的混合权重,从而来控制最终混合人脸的生物特征。
步骤S604,计算混合加权网格梯度。
步骤S604在实现时,根据输入的每个面部模型的边向量和人脸混合权重,计算混合加权网格梯度,也即是计算混合的面部模型每条边的向量。可以通过公式(2-2)可确定混合的面部模型每条边的向量:
Figure BDA0003340816580000231
其中,dq表示第q个加权混合边向量,也可以表示为dij,即vi和vj的混合向量,
Figure BDA0003340816580000232
表示第k模型顶点vi对应的混合权重。/>
Figure BDA0003340816580000233
就是第一步中计算得到的第k个模型的边向量。
步骤S605,重构顶点位置。
步骤S605在实现时,是根据混合边的边向量和连接矩阵,重构所有顶点位置。假设所有顶点构成的矩阵记作x,那么x应该是系统方程(2-3)的解:
M*x=D (2-3);
其中,M为E*V的矩阵,x为V*3的矩阵,D为E*3的矩阵。由于矩阵M不是全秩的,所以需要选择一个不动点来作为迪利克雷边界条件来求解。
为了使得到的解更加稳定,在计算时可以将方程两边同时乘以M矩阵的转置,也即得到系统方程(2-4):
MT*M*x=MT*D (2-4);
根据系统方程(2-4)可以得出,x可由公式(2-5)表示:
x=(MT*M)-1*MT*D (2-5);
通过上述的步骤S601至步骤S605,就可以完成中立人脸的混合。在数字人实际生产过程中,除了中立人脸模型,还需要生成对应的人脸变形模型(blendshape)。与混合中立人脸相似,需要使用多个中立人脸模型的对应初始blendshape来进行混合。
由于每个人脸blendshape模型(对应其他实施例中的初始表情面部模型)的顶点运动幅度不一致,因此最终的blendshape混合结果,往往也会存在相对于中立人脸模型的顶点位移偏差。为了解决这个问题,在对blendshape模型进行混合时,前四个步骤与上述的步骤S601至步骤S604相同,在步骤S604之后,可以以下两个后续步骤得到最终的顶点重构位置(对应其他实施例中的融合位置信息):
步骤S605’,在公式(2-4)的基础上,两边再同时乘以矩阵MT*M,使得求解出的顶点位置更加平滑;
步骤S606’,对于求解得到的blendshape顶点位置,做以下的过滤后处理:
逐顶点去判断初始的blendshape模型相对于初始的中立人脸,该顶点属于运动还是静止状态。判断准则为:只有该顶点在每个初始的blendshape模型中相对于初始的中立人脸都没有移动,才能被认为该顶点在混合结果中保持静止,此时采用混合中立人脸的结果;否则就认为该顶点相对于中立人脸有运动,此时采用步骤S605’中的结果。
经过以上两个步骤,最终的blendshape混合结果比较平滑,没有出现错误或者不平滑的位移。
图8A为基于本申请实施例提供的人脸模型方法研发的人脸混合工具的启动界面示意图,当点击图8A中的“即刻体验”控件801,可呈现图8B所示的界面。通过该界面,模型师可以选择待融合的人脸模板,并设置混合权重,进而利用该人脸混合工具模型师可以快速得到想要的三维面部模型和对应的blen dshape,并且直接生成人脸绑定。一方面,大大节省模型师的工作时间,另一方面可以快速生成多样的人脸,具有广泛的应用场景。
图9A为输入的中立人脸模型示意图,如图9A所示,901为输入的中立人脸1和902为输入的中立人脸2,图9B利用本申请实施例提供的人脸融合方法进行中立人脸融合的结果示意图,通过对比图9A和图9B可以看出,融合后的人脸模型中,眼睛更接近与中立人脸1,其他部位更接近于中立人脸2。
图10A为输入的闭眼表情人脸模型示意图,图10B为利用本申请实施例提供的人脸融合方法进行闭眼人脸融合的结果示意图;图11A为输入向上看表情人脸模型示意图,图11B为利用本申请实施例提供的人脸融合方法进行向上看人脸融合的结果示意图。通过图9B、图10B和图11B可以看出,融合后的人脸模型没有发生变形,也没有出现错误或者不平滑的位移。
在本申请实施例提供的人脸融合方法中,首先计算所有输入模型的每一条边的平均位置,然后根据所有边的平均位置,去全局计算所有顶点的位置,得到最终的混合人脸。在本申请实施例中,既无需对输入人脸做任何预处理,也不需要对混合结果做任何后处理,例如拉普拉斯平滑,因此处理质量和通用性均比相关技术中的人脸融合方法得到了提升。
下面继续说明本申请实施例提供的终端装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的面部模型融合装置455中的软件模块可以包括:
第一获取模块4551,用于获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重,所述至少两个初始面部模型具有相同的拓扑结构;
第一确定模块4552,用于基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵;
第二确定模块4553,用于基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量;
第三确定模块4554,用于基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息;
第一输出模块4555,用于基于所述各个顶点的融合位置信息,输出融合面部模型。
在一些实施例中,该第一确定模块,还用于:
基于所述各个初始面部模型的拓扑结构信息,获取所述各个初始面部模型中顶点的位置信息和顶点之间的连接信息;
基于所述顶点的位置信息和顶点之间的连接信息确定所述各个初始面部模型中连接边的边向量;
基于所述各个初始面部模型中顶点之间的连接信息,确定所述各个初始面部模型的连接矩阵,其中,当两个顶点之间为连接关系时,所述连接矩阵中的对应元素为第一预设值,当两个顶点之间为非连接关系时,所述连接矩阵中的对应元素为第二预设值,第一预设值和第二预设值不同。
在一些实施例中,该第一获取模块,还用于:
获取预设的面部划分区域图,所述面部划分区域图中包括多个区域,其中,不同区域对应不同的生理部位;
响应于针对所述各个初始面部模型中不同区域的权重设置操作,获取所述各个初始面部模型中不同区域的融合权重。
在一些实施例中,该第二确定模块,还用于:
基于初始面部模型中连接边的顶点的位置信息,确定所述连接边所在的区域;
获取所述各个初始面部模型在所述区域的各个融合权重;
将所述各个初始面部模型中连接边的边向量和所述各个融合权重进行加权求和,得到所述连接边的融合边向量。
在一些实施例中,所述至少两个初始面部模型为至少两个初始中立面部模型时,该第三确定模块,用于:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定融合位置矩阵;
基于所述融合位置矩阵,确定各个顶点的融合位置信息。
在一些实施例中,所述至少两个初始面部模型为至少两个初始表情面部模型时,该第三确定模块,还用于:
获取所述至少两个初始表情面部模型对应的至少两个初始中立面部模型,并获取所述至少两个初始中立面部模型的融合中立面部模型;
基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵;
基于所述至少两个初始表情面部模型中各个顶点的位置信息和所述至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合;
从所述候选融合位置矩阵中确定所述第一顶点集合中各个第一顶点的融合位置信息;
基于所述融合中立面部模型,确定所述第二顶点集合中各个第二顶点的融合位置信息。
在一些实施例中,该第三确定模块,还用于:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
在一些实施例中,该第三确定模块,还用于:
确定所述第一乘积矩阵和所述第一乘积矩阵相乘得到的第二乘积矩阵,确定所述第二乘积矩阵的第二逆矩阵;
基于所述第二逆矩阵、所述第一乘积矩阵、所述转置矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
在一些实施例中,该第三确定模块,还用于:
确定第k个初始表情面部模型中的第i个顶点与第k个初始中立面部模型中的第i个顶点之间的距离,其中,k=1,2,…,K,K为初始表情面部模型总数;i=1,2,…,V,V为顶点总数,V和K均为大于1的整数;
当第i个顶点对应的K个距离均小于或者等于预设阈值时,确定第i个顶点为未发生移动的第二顶点;
当第i个顶点对应的K个距离存在至少一个距离大于所述预设阈值时,确定第i个顶点为发生移动的第一顶点。
在一些实施例中,该装置还包括:
调整模块,用于当输出所述融合面部模型之后,确定需要对所述各个初始面部模型对应的权重进行调整时,基于所述融合面部模型和所述各个初始面部模型,对所述各个初始面部模型对应的权重进行调整,得到各个调整后的权重;
融合处理模块,用于基于所述各个调整后的权重对所述各个初始面部模型进行融合处理,得到调整后的融合面部模型;
第二输出模块,用于输出该调整后的融合面部模型。
需要说明的是,本申请实施例针对面部模型融合装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的面部模型融合方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的面部模型融合方法,例如,如图3、图4、图5和图6示出的面部模型融合方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (13)

1.一种面部模型融合方法,其特征在于,所述方法包括:
获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重,所述至少两个初始面部模型具有相同的拓扑结构,所述初始面部模型为三维模型;
基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵;
基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量;
基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息;
基于所述各个顶点的融合位置信息,输出融合面部模型。
2.根据权利要求1中所述的方法,其特征在于,所述基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵,包括:
基于所述各个初始面部模型的拓扑结构信息,获取所述各个初始面部模型中顶点的位置信息和顶点之间的连接信息;
基于所述顶点的位置信息和所述顶点之间的连接信息确定所述各个初始面部模型中连接边的边向量;
基于所述顶点之间的连接信息,确定所述各个初始面部模型的连接矩阵,其中,所述连接矩阵的维度为E*V,E为初始面部模型中的连接边个数,V为初始面部模型中的顶点个数。
3.根据权利要求1中所述的方法,其特征在于,所述获取各个初始面部模型对应的融合权重,包括:
获取预设的面部划分区域图,所述面部划分区域图中包括多个区域,其中,不同区域对应不同的生理部位;
响应于针对所述各个初始面部模型中不同区域的权重设置操作,获取所述各个初始面部模型中不同区域的融合权重。
4.根据权利要求3中所述的方法,其特征在于,所述基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定融合边向量,包括:
基于初始面部模型中连接边的顶点的位置信息,确定所述连接边所在的区域;
获取所述各个初始面部模型在所述区域的各个融合权重;
将所述各个初始面部模型中连接边的边向量和所述各个融合权重进行加权求和,得到所述连接边的融合边向量。
5.根据权利要求1中所述的方法,其特征在于,所述至少两个初始面部模型为至少两个初始中立面部模型时,所述基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息,包括:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定融合位置矩阵;
基于所述融合位置矩阵,确定各个顶点的融合位置信息。
6.根据权利要求1中所述的方法,其特征在于,所述至少两个初始面部模型为至少两个初始表情面部模型时,所述基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息,包括:
获取所述至少两个初始表情面部模型对应的至少两个初始中立面部模型,并获取所述至少两个初始中立面部模型的融合中立面部模型;
基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵;
基于所述至少两个初始表情面部模型中各个顶点的位置信息和所述至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合;
从所述候选融合位置矩阵中确定所述第一顶点集合中各个第一顶点的融合位置信息;
基于所述融合中立面部模型,确定所述第二顶点集合中各个第二顶点的融合位置信息。
7.根据权利要求6中所述的方法,其特征在于,基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵,包括:
基于所述连接边的融合边向量,构建融合矩阵;
确定所述连接矩阵的转置矩阵,并确定所述连接矩阵的转置矩阵和所述连接矩阵的第一乘积矩阵,确定所述第一乘积矩阵的第一逆矩阵;
基于所述第一逆矩阵、所述连接矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
8.根据权利要求7中所述的方法,其特征在于,所述基于所述连接边的融合边向量和所述连接矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵,包括:
确定所述第一乘积矩阵和所述第一乘积矩阵相乘得到的第二乘积矩阵,确定所述第二乘积矩阵的第二逆矩阵;
基于所述第二逆矩阵、所述第一乘积矩阵、所述转置矩阵和所述融合矩阵,确定所述至少两个初始表情面部模型的候选融合位置矩阵。
9.根据权利要求6中所述的方法,其特征在于,所述基于所述至少两个初始表情面部模型中各个顶点的位置信息和所述至少两个初始中立面部模型中各个顶点的位置信息,确定出发生移动的第一顶点集合和未发生移动的第二顶点集合,包括:
确定第k个初始表情面部模型中的第i个顶点与第k个初始中立面部模型中的第i个顶点之间的距离,其中,k=1,2,…,K,K为初始表情面部模型总数;i=1,2,…,V,V为顶点总数,V和K均为大于1的整数;
当第i个顶点对应的K个距离均小于或者等于预设阈值时,确定第i个顶点为未发生移动的第二顶点;
当第i个顶点对应的K个距离存在至少一个距离大于所述预设阈值时,确定第i个顶点为发生移动的第一顶点。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
当输出所述融合面部模型之后,确定需要对所述各个初始面部模型对应的权重进行调整时,基于所述融合面部模型和所述各个初始面部模型,对所述各个初始面部模型对应的融合权重进行调整,得到各个调整后的权重;
基于所述各个调整后的权重对所述各个初始面部模型进行融合处理,得到调整后的融合面部模型;
输出所述调整后的融合面部模型。
11.一种面部模型融合装置,其特征在于,所述装置包括:
第一获取模块,用于获取待融合的至少两个初始面部模型,获取各个初始面部模型对应的融合权重,所述至少两个初始面部模型具有相同的拓扑结构,所述初始面部模型为三维模型;
第一确定模块,用于基于所述各个初始面部模型的拓扑结构信息,确定所述各个初始面部模型中连接边的边向量和所述各个初始面部模型的连接矩阵;
第二确定模块,用于基于所述各个初始面部模型对应的融合权重和所述各个初始面部模型中连接边的边向量,确定所述连接边的融合边向量;
第三确定模块,用于基于所述连接边的融合边向量和所述连接矩阵,确定各个顶点的融合位置信息;
第一输出模块,用于基于所述各个顶点的融合位置信息,输出融合面部模型。
12.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至10任一项所述的方法。
CN202111307659.8A 2021-11-05 2021-11-05 面部模型融合方法、装置、设备及计算机可读存储介质 Active CN114049287B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111307659.8A CN114049287B (zh) 2021-11-05 2021-11-05 面部模型融合方法、装置、设备及计算机可读存储介质
PCT/CN2022/118952 WO2023077972A1 (zh) 2021-11-05 2022-09-15 图像数据处理方法、数字虚拟人的构建方法、装置、设备、存储介质及计算机程序产品
US18/214,921 US20230342942A1 (en) 2021-11-05 2023-06-27 Image data processing method, method and apparatus for constructing digital virtual human, device, storage medium, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111307659.8A CN114049287B (zh) 2021-11-05 2021-11-05 面部模型融合方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN114049287A CN114049287A (zh) 2022-02-15
CN114049287B true CN114049287B (zh) 2023-06-23

Family

ID=80207687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111307659.8A Active CN114049287B (zh) 2021-11-05 2021-11-05 面部模型融合方法、装置、设备及计算机可读存储介质

Country Status (3)

Country Link
US (1) US20230342942A1 (zh)
CN (1) CN114049287B (zh)
WO (1) WO2023077972A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114049287B (zh) * 2021-11-05 2023-06-23 腾讯科技(深圳)有限公司 面部模型融合方法、装置、设备及计算机可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747716B1 (en) * 2013-03-15 2017-08-29 Lucasfilm Entertainment Company Ltd. Facial animation models
US9202300B2 (en) * 2013-06-20 2015-12-01 Marza Animation Planet, Inc Smooth facial blendshapes transfer
CN106960459B (zh) * 2016-12-26 2019-07-26 北京航空航天大学 角色动画中基于扩展位置动力学的蒙皮技术及权重重定位的方法
CN107146199B (zh) * 2017-05-02 2020-01-17 厦门美图之家科技有限公司 一种人脸图像的融合方法、装置及计算设备
CN109395390B (zh) * 2018-10-26 2021-12-21 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端
US11069135B2 (en) * 2019-03-07 2021-07-20 Lucasfilm Entertainment Company Ltd. On-set facial performance capture and transfer to a three-dimensional computer-generated model
CN110399825B (zh) * 2019-07-22 2020-09-29 广州华多网络科技有限公司 面部表情迁移方法、装置、存储介质及计算机设备
CN111598818B (zh) * 2020-04-17 2023-04-28 北京百度网讯科技有限公司 人脸融合模型训练方法、装置及电子设备
CN114049287B (zh) * 2021-11-05 2023-06-23 腾讯科技(深圳)有限公司 面部模型融合方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN114049287A (zh) 2022-02-15
WO2023077972A1 (zh) 2023-05-11
US20230342942A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
US11748934B2 (en) Three-dimensional expression base generation method and apparatus, speech interaction method and apparatus, and medium
US11823315B2 (en) Animation making method and apparatus, computing device, and storage medium
US20030184544A1 (en) Modeling human beings by symbol manipulation
CN106709975B (zh) 一种交互式三维人脸表情动画编辑方法、系统及扩展方法
JP2023029984A (ja) 仮想イメージを生成するための方法、装置、電子機器及び可読記憶媒体
US20230342942A1 (en) Image data processing method, method and apparatus for constructing digital virtual human, device, storage medium, and computer program product
CN111583372A (zh) 虚拟角色的面部表情的生成方法和装置、存储介质及电子设备
CN117218300B (zh) 三维模型的构建方法、三维构建模型的训练方法及装置
CN110415341A (zh) 一种三维人脸模型的生成方法、装置、电子设备及介质
CN111739134B (zh) 虚拟角色的模型处理方法、装置及可读存储介质
CN115908664B (zh) 人机交互的动画生成方法、装置、计算机设备、存储介质
CN112700541A (zh) 一种模型更新方法、装置、设备及计算机可读存储介质
CN112862981B (zh) 用于呈现虚拟表示的方法和装置、计算机设备和存储介质
JP6062589B1 (ja) プログラム、情報処理装置、影響度導出方法、画像生成方法及び記録媒体
Ono et al. Free-form deformation with automatically generated multiresolution lattices
Angelidis et al. Sweepers: Swept deformation defined by gesture
CN117557699B (zh) 动画数据生成方法、装置、计算机设备和存储介质
US20240013500A1 (en) Method and apparatus for generating expression model, device, and medium
Han et al. Customizing blendshapes to capture facial details
CN111784828B (zh) 三维模型的融合方法、装置及计算机可读存储介质
US20230282133A1 (en) Method and system for creativity and learning evaluation and enhancement
US20240054728A1 (en) Mesh Model Transformation
CN116977605A (zh) 虚拟角色形象模型的生成方法、装置和计算机设备
CN118160008A (zh) 实用3d资产的推断的骨骼结构
CN118135098A (zh) 生成三维形状的方法、装置及计算机设备

Legal Events

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