CN115601484B - 虚拟人物面部驱动方法、装置、终端设备和可读存储介质 - Google Patents

虚拟人物面部驱动方法、装置、终端设备和可读存储介质 Download PDF

Info

Publication number
CN115601484B
CN115601484B CN202211381723.1A CN202211381723A CN115601484B CN 115601484 B CN115601484 B CN 115601484B CN 202211381723 A CN202211381723 A CN 202211381723A CN 115601484 B CN115601484 B CN 115601484B
Authority
CN
China
Prior art keywords
face
user
matrix
key points
key point
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
CN202211381723.1A
Other languages
English (en)
Other versions
CN115601484A (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.)
Guangzhou Quwan Network Technology Co Ltd
Original Assignee
Guangzhou Quwan Network Technology 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 Guangzhou Quwan Network Technology Co Ltd filed Critical Guangzhou Quwan Network Technology Co Ltd
Priority to CN202211381723.1A priority Critical patent/CN115601484B/zh
Publication of CN115601484A publication Critical patent/CN115601484A/zh
Application granted granted Critical
Publication of CN115601484B publication Critical patent/CN115601484B/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
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • 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/172Classification, e.g. identification
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • 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

Abstract

本申请提供了一种虚拟人物面部驱动方法、装置、终端设备和可读存储介质,其中方法包括获取用户的面部图像,对面部图像进行人脸关键点检测,得到用户人脸关键点;对用户人脸关键点进行平滑处理;对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;对对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数;采用各编码系数来驱动虚拟人物面部。该方法可以使虚拟人物表情驱动的效果更加平滑和细腻,以及面部驱动效果更加逼真。

Description

虚拟人物面部驱动方法、装置、终端设备和可读存储介质
技术领域
本申请涉及人脸识别与驱动技术领域,具体涉及一种虚拟人物面部驱动方法、装置、终端设备和可读存储介质。
背景技术
随着通信方式不断地发展,信息的传输也越来越快;与此同时虚拟人物也在借此机会不断地突破创新。虚拟人物可以使得人与人之间在地理位置的距离在感知层面上逐渐的缩短,从而实现实时互动,因此面向客户端用户的虚拟人物的相关应用也愈发增多。目前,相关产品例如Kalidokit、ARkit都可以实现对虚拟人物进行驱动。
传统的虚拟人物驱动一般依赖于大型动捕设备,即需要多个摄像头或深度摄像头(例如ARkit)对人脸面部进行特征提取,比较难在低运算能力的平台(例如低配置PC、手机)进行广泛地应用,并保持较好的效果。并且目前虚拟人物大部分都是通过人脸面部关键点来驱动的,即通过计算待测人物关键点相对于正常表情下的关键点偏移,并基于关键点偏移和一些预设好的规则来驱动虚拟人物。然而,通过该驱动方法得到的虚拟人物表情不够细腻,从而导致显示效果不佳。
发明内容
有鉴于此,本申请实施例中提供了一种虚拟人物面部驱动方法、装置、终端设备和可读存储介质,以克服现有技术中驱动得到的虚拟人物表情不够细腻,从而导致显示效果不佳的问题。
第一方面,本申请实施例提供了一种虚拟人物面部驱动方法,该方法包括:
获取用户的面部图像,对所述面部图像进行人脸关键点检测,得到用户人脸关键点;
对所述用户人脸关键点进行平滑处理;
对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;
对所述对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;
对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;
将各所述部位表情基矩阵输入到对应的所述部位关键点矩阵进行稀疏编码,计算出各编码系数;
采用各所述编码系数来驱动虚拟人物面部。
第二方面,本申请实施例提供了一种虚拟人物面部驱动装置,该装置包括:
面部图像获取模块,用于获取用户的面部图像;
关键点检测模块,用于对所述面部图像进行人脸关键点检测,得到用户人脸关键点;
平滑处理模块,用于对所述用户人脸关键点进行平滑处理;
对齐模块,用于对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;
第一划分模块,用于对所述对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;
第二划分模块,用于对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;
编码系数计算模块,用于将各所述部位表情基矩阵输入到对应的所述部位关键点矩阵进行稀疏编码,计算出各编码系数;
驱动模块,用于采用各所述编码系数来驱动虚拟人物面部。
第三方面,本申请实施例提供了一种终端设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的虚拟人物面部驱动方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的虚拟人物面部驱动方法。
本申请实施例提供的虚拟人物面部驱动方法、装置、终端设备和可读存储介质,首先获取用户的面部图像,对面部图像进行人脸关键点检测,得到用户人脸关键点;然后对用户人脸关键点进行平滑处理;对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;再对对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数;最后采用各编码系数来驱动虚拟人物面部。
本申请实施例提供的虚拟人物面部驱动方法,对用户人脸关键点进行平滑处理,可以使得虚拟人物表情驱动的效果更加平滑和细腻,并且采用了基于最小二乘法的关键点对齐和稀疏编码方法,能提高计算精度和速度,使得虚拟人物的面部驱动效果更加逼真,进一步提高了显示效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的虚拟人物面部驱动方法的应用场景示意图;
图2为本申请一个实施例提供的虚拟人物面部驱动方法的流程示意图;
图3为本申请一个实施例提供的确定标准人脸关键点的示意图;
图4为本申请一个实施例提供的向量合成方法的结构示意图;
图5为本申请一个实施例提供的选取锚定点的结构示意图;
图6为本申请一个实施例中提供的虚拟人物面部驱动装置的结构示意图;
图7为本申请一个实施例中提供的终端设备的结构示意图;
图8为本申请一个实施例中提供的计算机可读存储介质的结构示意图。
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更详细说明本申请,下面结合附图对本申请提供的一种虚拟人物面部驱动方法、装置、终端设备和计算机可读存储介质,进行具体地描述。
请参考图1,图1示出了本申请实施例提供的虚拟人物面部驱动方法的应用场景的示意图,该应用场景包括本申请实施例提供的终端设备100,终端设备100可以是具有显示屏的各种电子设备(如102、104、106和108的结构图),包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。终端设备可以安装有摄像头或图像采集模块,主要用于采集用户的视频图像,其中用户的视频图像用于来识别图像识别出用户的面部图像,然后基于用户的面部图像来进行虚拟人物面部驱动。终端设备100可以泛指多个终端设备中的一个,本实施例仅以终端设备100来举例说明。本领域技术人员可以知晓,上述终端设备的数量可以更多或更少。比如上述终端设备可以仅为几个,或者上述终端设备为几十个或几百个,或者更多数量,本申请实施例对终端设备的数量和类型不加以限定。终端设备100可以用来执行本申请实施例中提供的一种虚拟人物面部驱动方法。
可选地,终端设备100可以包括视频采集模块、人脸检测模块、人脸关键点平滑对齐模块、基于稀疏编码的BlenderShape重组模块、BlenderShape顶点解析与存储模块和unity驱动模块,其中视频采集模块主要用于采集用户的视频图像;人脸检测模块主要用于对用户的视频图像进行人脸检测,从而得到用户的面部图像;人脸关键点平滑对齐模块主要用于对用户人脸关键点进行平滑以及对齐处理;基于稀疏编码的BlenderShape重组模块主要用于对计算编码系数;BlenderShape顶点解析与存储模块主要用于存储标准人脸关键点,其中编码系数可以保存到共享内存中;unity驱动模块主要用于接收编码系数(即稀疏表示系数),实时将虚拟人物面部动画渲染到引擎上,从而达到真人表情实时驱动虚拟数据人面部表情的目的。
在一种可选的实施方式中,该应用场景包括本申请实施例提供的终端设备100之外,还可以包括服务器,其中服务器与终端设备之间设置有网络。网络用于在终端设备和服务器之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器可以是多个服务器组成的服务器集群等。其中,终端设备通过网络与服务器交互,以接收或发送消息等。服务器可以是提供各种服务的服务器。其中服务器可以用来执行本申请实施例中提供的一种虚拟人物面部驱动方法中除了可视化显示虚拟人物之外的步骤。此外,终端设备在执行本申请实施例中提供的一种虚拟人物面部驱动方法时,可以将一部分步骤在终端设备执行,一部分步骤在服务器执行,在这里不进行限定。
基于此,本申请实施例中提供了一种虚拟人物面部驱动方法。请参阅图2,图2示出了本申请实施例提供的一种虚拟人物面部驱动方法的流程示意图,以该方法应用于图1中的终端设备为例进行说明,包括以下步骤:
步骤S110,获取用户的面部图像,对面部图像进行人脸关键点检测,得到用户人脸关键点。
其中,用户可以是任意想要驱动虚拟人物,以形成虚拟人面部表情的人。用户的面部图像是指包含用户面部信息的图片。
人脸关键点是指能反映人的轮廓以及表情的点,例如眉毛、鼻子、嘴巴、眼睛以及脸型轮廓的关键点。
在一个实施例中,在执行步骤S110,获取用户的面部图像,包括:获取用户的视频图像;对视频图像采用人脸检测模型进行检测,得到用户的面部图像。
具体地,可以采用终端设备的摄像头或其他外接的视频采集设备(例如摄像机)实时获取视频流,以得到用户的视频图像,然后对用户的视频图像采用人脸检测模型来进行检测,从而得到用户的面部图像。
当视频流中包括多帧图像时,需要对每帧图像进行人脸检测,如果在当前帧图像中没有检测出面部脸图像,则从上一帧的图像中检测面部图像。
可选地,人脸检测模型可以是S3FD模型。
在一个实施例中,在执行步骤S110,对面部图像进行人脸关键点检测,包括:对面部图像采用MobileFaceNet进行人脸关键点检测。
其中,MobileFaceNet是一种高效的卷积神经网络模型,精度高且运行速度非常快。
另外,经过人脸关键点检测后可以得到多个人脸关键点,例如26个、68个、468个以及1000个等。人脸关键点的数量可以是不固定的,具体根据实际使用场景以及识别精度的需求选择相应数量的人脸关键点。
步骤S120,对用户人脸关键点进行平滑处理。
步骤S130,对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵。
具体而言,由于用户在做表情时候往往会导致人脸关键点发生变化,从而会导致关键点的抖动,该抖动最后会影响到新BlenderShape(即表情基)的生成,最终导致驱动虚拟人物过程中出现抖动的问题。并且每个用户以及同一个用户在不同时刻人脸的朝向以及表情都是不统一的,或者相对镜头会有一些偏移,这样都会导致摄像头捕捉到视频图像中包含的面部图像不一定是正脸,此时提取的人脸关键点难以与表情基中BlenderShape的人脸关键点(即标准人脸关键点)进行比较,该情况会在一定的程度上影响到虚拟人物面部驱动的效果。为了解决这一问题,在本实施例中先对用户人脸关键点进行平滑处理,之后再将平滑处理后的用户人脸关键点与标准人脸关键点进行对齐处理。
其中,标准人脸关键点是基于表情基(即BlenderShape)确定的。其具体的过程为:BlenderShape指的是52个表示着各个不同表情的基础人脸模型,而且这些基础人脸模型在制作时已在最大的程度上进行了解耦,每个BlenderShape只会表达面部的单一部位的变化。因此以这52个BenderShape也被称为表情基,而新的表情就是通过这52个表情基中的部分或全部表情基通过计算出来的相应系数进行加权得到的。而标准人脸关键点就是根据这52个 BlenderShape来确定的,首先将52个BlenderShape都读到运行环境中,将BlenderShape上的所有点及其序号都可视化展示出来,然后52个BlenderShape上的点与人脸关键点(也就是用户驱动虚拟人物面部时所需用到的关键点,通常是68个)进行一一对应,并记录各关键点序号;之后解析出52个BlenderShape面上的顶点,并将这些顶点转换为人脸关键点(通常是68个)的形式,具体请参照图3所示。最后将从这52个BlenderShape中转换得到的52组68个关键点分组存储在不同的矩阵之中,记为表情基矩阵。
对平滑处理后的用户人脸关键点与标准人脸关键点进行对齐时,需要对平滑处理后的用户人脸关键点进行仿射变换矩阵变化,该仿射变换矩阵中的参数需要通过最小二乘法计算得到。
步骤S140,对对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵。
具体地,可以对对齐后的人脸关键点矩阵进行划分,分成人脸各个部位(例如嘴部,左右眼,左右眉毛,脸部轮廓)的关键点矩阵。
步骤S150,对各表情基按照人脸部位进行划分,得到各部位表情基矩阵。
相应的,在各表情基中BlenderShape的关键点中按照人脸部位进行同样的划分,之后针对面部的不同部位进行稀疏编码的计算,这种解耦的方式不仅可以使得计算出来的编码稀疏更加准确,而且还能大大地减少计算量加快系统运行的速度。
为了便于理解给出一个详细的实施例。在本实施例中以嘴部为例进行详细的说明,面部的其他部位与嘴部的类似。嘴部的关键点有20个,因此将对齐后的人脸关键点矩阵中与嘴巴相关的关键点划分一起,形成嘴巴的关键点矩阵。对于表情基中BlenderShape的关键点中有N个与嘴巴相关的关键点,有M个与鼻子相关的关键点,因此将与嘴巴相关的N个BlenderShape的关键点划分一起,存储在同一个矩阵中,记为嘴巴表情基矩阵,其中嘴巴表情基矩阵的形状是(N,68 * 2);同样的将与鼻子相关的M个BlenderShape的关键点划分一起,存储在同一个矩阵中,记为鼻子表情基矩阵,其中鼻子表情基矩阵的形状是(M,68 *2)。以此类推,左右眉毛、面部轮廓、左右眼睛等部位也是这样存储。之后可以直接将这些矩阵读到缓存中,无需重复计算。
步骤S160,将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数。
具体地,就是需要各部位表情基矩阵(例如嘴巴表情基矩阵)来对对应的部位关键点矩阵(嘴巴的关键点矩阵)进行稀疏表示,从而得到编码系数。
步骤S170,采用各编码系数来驱动虚拟人物面部。
在得到编码系数后,将编码系数作用到虚拟人物面部上,从而来驱动其显示出相应的表情。
本申请实施例提供的虚拟人物面部驱动方法,首先获取用户的面部图像,对面部图像进行人脸关键点检测,得到用户人脸关键点;然后对用户人脸关键点进行平滑处理;对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;再对对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数;最后采用各编码系数来驱动虚拟人物面部。
本申请实施例提供的虚拟人物面部驱动方法,对用户人脸关键点进行平滑处理,可以使得虚拟人物表情驱动的效果更加平滑和细腻,并且采用了基于最小二乘法的关键点对齐和稀疏编码方法,能提高计算精度和速度,使得虚拟人物的面部驱动效果更加逼真,进一步提高了显示效果。
在一个实施例中,在执行步骤S120,对用户人脸关键点进行平滑处理,包括:采用向量合成方法来对用户人脸关键点进行平滑处理。
具体地,可以采用向量合成方法来对用户人脸关键点进行平滑处理;其中向量合成的关键点平滑方法如图4所示,t-1,t和t+1表示在相邻的三帧的面部关键点,先计算得到t-1,t组成的向量
Figure 246150DEST_PATH_IMAGE001
,并在这个向量上乘上一个系数/>
Figure 441508DEST_PATH_IMAGE002
,对/>
Figure 619549DEST_PATH_IMAGE001
的模进行缩小,然后将/>
Figure 521645DEST_PATH_IMAGE003
与第t+1帧的点的位置进行相加,让第t帧到t+1帧的运动会受到t-1帧到t帧运动惯性的影响,使得t-1到t+1的运动变化更加的平滑自然。
在一个实施例中,在执行步骤S130,对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,包括:对平滑处理后的用户人脸关键点采用仿射变换矩阵进行处理,得到变换后的用户人脸关键点;其中仿射变换矩阵采用最小二乘法计算得到;从标准人脸关键点中筛选出锚定点;基于锚定点将变换后的用户人脸关键点与标准人脸关键点进行对齐处理。
具体地,为了将平滑之后的用户人脸关键点与标准人脸关键点进行对齐,为之后的编码系数的计算做准备,可以通过一个仿射变换矩阵将一组的点的几何位置转化到目标的一组点上,具体公式如下:
Figure 126939DEST_PATH_IMAGE004
(1)
其中,(x 1, y 1)是指采用仿射变换矩阵处理前的用户人脸关键点,(x 2, y 2)是指依次通过旋转,缩放和平移得到了目标点。
在本实施例中,可以采用最小二乘法的方式来计算得到这个仿射变换矩阵,主要是计算出矩阵的三个变量
Figure 546944DEST_PATH_IMAGE005
,s和t。/>
Figure 466358DEST_PATH_IMAGE005
表示旋转角度,它和三角函数构成了一个旋转矩阵,s表示尺度缩放系数,t表示进行旋转缩放之后的偏移量。pi表示第i个要被变换的关键点,qi是第i个目标关键点,计算出来的/>
Figure 999157DEST_PATH_IMAGE005
,s和t要使得/>
Figure 169107DEST_PATH_IMAGE007
和qi是最接近的。公式(2)中详细的说明了这三个系数的计算方式。s、R和T分别对应着公式(1)中的尺度缩放系数、旋转矩阵和进行旋转缩放之后的偏移量。/>
Figure 629563DEST_PATH_IMAGE005
,s和t的所表示的含义也与公式(1)中的相同。其中公式(2)的具体表达式为:/>
Figure 302989DEST_PATH_IMAGE008
(2)
其中,仿射变换矩阵可以记为M,然后将M与用户人脸关键点矩阵p相乘就能得到对齐之后的人脸关键点矩阵p’。 p和p’的shape都是(68, 2)。68表示每个人关键点矩阵有68个点,矩阵的第二个维度表示x,y轴上的坐标;
Figure 453348DEST_PATH_IMAGE009
另外,关键点对齐的目的是为了更加好的比较用户人脸关键点和标准人脸关键点(即BlenderShape上的关键点),因此在尽可能对齐的情况下,要尽量的保持用户的原有脸部特征。基于此,本实施例中采用了一些不会由于表情变化和面部偏移而产生大幅度变化的点作为锚定点,只要将用户人脸和标准人脸中的锚定点进行对齐就能确保对齐的情况下还保持着用户人脸的面部特征。锚定点的个数可以是多个,锚定点如图5中矩形框出的点所示。
在一个实施例中,在执行步骤S160,将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数,包括:采用各部位表情基矩阵来对对应的部位关键点矩阵进行稀疏表示,以得到各编码系数。
为了便于理解,以嘴巴部位为例进行说明。假设人脸关键点矩阵为p’,从p’中切分出属于人脸每个部位(嘴部,左右眼,左右眉毛,脸部轮廓)的关键点矩阵,其中mp’表示为嘴部关键点矩阵。可选地,嘴部关键点有20个,转换成向量也只有40个特征。而嘴巴表情基BlenderShape有15个,那么组成的嘴部表情基矩阵FM的shape是(15, 40)。可以采用FM对进行mp’进行稀疏表示,为了使用FM对进行mp’稀疏表示,需要先将mp’的shape转化为(1,40)。由于在进行BlenderShape表情基制作的时候就已经将每个表情基进行了解耦的操作,所以无需用大量的数据去学习一个基向量组,只需要在每次输入待测mp’的时候基于嘴部表情基矩阵FM计算出一组编码系数c即可,用c对FM中的向量组进行加权计算,得到mp’的系数表示,生成一个与待测人脸嘴型相似的BlenderSshape,进而来实时的驱动人脸。
在一个实施例中,编码系数通过以下公式计算得到:
Figure 782698DEST_PATH_IMAGE010
其中,c表示编码系数,
Figure 43915DEST_PATH_IMAGE011
表示部位关键点矩阵,/>
Figure 509532DEST_PATH_IMAGE012
表示第M个部位表情基矩阵,n表示部位表情基中表情基的数量,/>
Figure 884319DEST_PATH_IMAGE013
表示与c对应的一组权重,minmize表示
Figure 700966DEST_PATH_IMAGE014
的最小值。
采用上述编码系数的公式目的是为了求解一组系数c,c可以使得FM能组合出无限接近mp’的BlenderShape,公式的尾部是一个正则项,w是与c对应的一组权重,加上正则项目的是使得系数之和变得稀疏,减小那些与mp’只有较低相关性的BlenderShape,相对就增强那些与待测表情最相关的表情基的BlenderShape。
另外,上述编码系数计算公式表示的含义是:编码系数的取值为当
Figure 500294DEST_PATH_IMAGE014
取最小值时c的值。
应该理解的是,虽然图2 的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本申请公开的实施例中详细描述了一种虚拟人物面部驱动方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的虚拟人物面部驱动装置,下面给出具体的实施例进行详细说明。
请参阅图6,为本申请实施例公开的一种虚拟人物面部驱动装置,主要包括:
面部图像获取模块610,用于获取用户的面部图像。
关键点检测模块620,用于对面部图像进行人脸关键点检测,得到用户人脸关键点。
平滑处理模块630,用于对用户人脸关键点进行平滑处理。
对齐模块640,用于对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵。
第一划分模块650,用于对对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵。
第二划分模块660,用于对各表情基按照人脸部位进行划分,得到各部位表情基矩阵。
编码系数计算模块670,用于将各部位表情基矩阵输入到对应的部位关键点矩阵进行稀疏编码,计算出各编码系数。
驱动模块680,用于采用各编码系数来驱动虚拟人物面部。
在一个实施例中,面部图像获取模块610,用于获取用户的视频图像;对视频图像采用人脸检测模型进行检测,得到用户的面部图像。
在一个实施例中,平滑处理模块630,用于采用向量合成方法来对用户人脸关键点进行平滑处理。
在一个实施例中,对齐模块640,用于对平滑处理后的用户人脸关键点采用仿射变换矩阵进行处理,得到变换后的用户人脸关键点;其中仿射变换矩阵采用最小二乘法计算得到;从标准人脸关键点中筛选出锚定点;基于锚定点将变换后的用户人脸关键点与标准人脸关键点进行对齐处理。
在一个实施例中,编码系数计算模块670,用于 采用各部位表情基矩阵来对对应的部位关键点矩阵进行稀疏表示,以得到各编码系数。
在一个实施例中,编码系数通过以下公式计算得到:
Figure 148313DEST_PATH_IMAGE010
其中,c表示编码系数,
Figure 640475DEST_PATH_IMAGE011
表示部位关键点矩阵,/>
Figure 678838DEST_PATH_IMAGE012
表示第M个部位表情基矩阵,n表示部位表情基中表情基的数量,/>
Figure 347104DEST_PATH_IMAGE013
表示与c对应的一组权重,minmize表示
Figure 52892DEST_PATH_IMAGE014
的最小值。
在一个实施例中,关键点检测模块620,用于对面部图像采用MobileFaceNet进行人脸关键点检测。
关于虚拟人物面部驱动装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参考图7,图7其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备70可以是计算机设备。本申请中的终端设备70可以包括一个或多个如下部件:处理器72、存储器74以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器74中并被配置为由一个或多个处理器72执行,一个或多个应用程序配置用于执行上述应用于虚拟人物面部驱动方法实施例中所描述的方法。
处理器72可以包括一个或者多个处理核。处理器72利用各种接口和线路连接整个终端设备70内的各个部分,通过运行或执行存储在存储器74内的指令、程序、代码集或指令集,以及调用存储在存储器74内的数据,执行终端设备70的各种功能和处理数据。可选地,处理器72可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器72可集成中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器72中,单独通过一块通信芯片进行实现。
存储器74可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器74可用于存储指令、程序、代码、代码集或指令集。存储器74可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备70在使用中所创建的数据等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上,本申请实施例提供的终端设备用于实现前述方法实施例中相应的虚拟人物面部驱动方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参阅图8,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质80中存储有程序代码,程序代码可被处理器调用执行上述虚拟人物面部驱动方法实施例中所描述的方法。
计算机可读取存储介质80可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质80包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质80具有执行上述方法中的任何方法步骤的程序代码82的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码82可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种虚拟人物面部驱动方法,其特征在于,所述方法包括:
获取用户的面部图像,对所述面部图像进行人脸关键点检测,得到用户人脸关键点;
对所述用户人脸关键点进行平滑处理;
对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;
对所述对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;
对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;
将各所述部位表情基矩阵输入到对应的所述部位关键点矩阵进行稀疏编码,计算出各编码系数;具体包括:
采用各所述部位表情基矩阵来对对应的部位关键点矩阵进行稀疏表示,以得到各所述编码系数;
所述编码系数通过以下公式计算得到:
Figure QLYQS_1
其中,c表示编码系数,
Figure QLYQS_2
表示部位关键点矩阵,/>
Figure QLYQS_3
表示第M个部位表情基矩阵,n表示部位表情基中表情基的数量,/>
Figure QLYQS_4
表示与c对应的一组权重;
采用各所述编码系数来驱动虚拟人物面部。
2.根据权利要求1所述的方法,其特征在于,所述获取用户的面部图像,包括:
获取用户的视频图像;
对所述视频图像采用人脸检测模型进行检测,得到用户的面部图像。
3.根据权利要求1所述的方法,其特征在于,所述对所述用户人脸关键点进行平滑处理,包括:
采用向量合成方法来对所述用户人脸关键点进行平滑处理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,包括:
对所述平滑处理后的用户人脸关键点采用仿射变换矩阵进行处理,得到变换后的用户人脸关键点;其中所述仿射变换矩阵采用所述最小二乘法计算得到;
从所述标准人脸关键点中筛选出锚定点;
基于所述锚定点将所述变换后的用户人脸关键点与标准人脸关键点进行对齐处理。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述面部图像进行人脸关键点检测,包括:
对所述面部图像采用MobileFaceNet进行人脸关键点检测。
6.一种虚拟人物面部驱动装置,其特征在于,所述装置包括:
面部图像获取模块,用于获取用户的面部图像;
关键点检测模块,用于对所述面部图像进行人脸关键点检测,得到用户人脸关键点;
平滑处理模块,用于对所述用户人脸关键点进行平滑处理;
对齐模块,用于对平滑处理后的用户人脸关键点与标准人脸关键点采用最小二乘法进行对齐处理,得到对齐后的人脸关键点矩阵;
第一划分模块,用于对所述对齐后的人脸关键点矩阵按照人脸部位进行划分,得到各部位关键点矩阵;
第二划分模块,用于对各表情基按照人脸部位进行划分,得到各部位表情基矩阵;
编码系数计算模块,用于将各所述部位表情基矩阵输入到对应的所述部位关键点矩阵进行稀疏编码,计算出各编码系数;
驱动模块,用于采用各所述编码系数来驱动虚拟人物面部;
编码系数计算模块,用于采用各所述部位表情基矩阵来对对应的部位关键点矩阵进行稀疏表示,以得到各所述编码系数;
所述编码系数通过以下公式计算得到:
Figure QLYQS_5
其中,c表示编码系数,
Figure QLYQS_6
表示部位关键点矩阵,/>
Figure QLYQS_7
表示第M个部位表情基矩阵,n表示部位表情基中表情基的数量,/>
Figure QLYQS_8
表示与c对应的一组权重。
7.一种终端设备,其特征在于,包括:
存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-5任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-5任一项所述的方法。
CN202211381723.1A 2022-11-07 2022-11-07 虚拟人物面部驱动方法、装置、终端设备和可读存储介质 Active CN115601484B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211381723.1A CN115601484B (zh) 2022-11-07 2022-11-07 虚拟人物面部驱动方法、装置、终端设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211381723.1A CN115601484B (zh) 2022-11-07 2022-11-07 虚拟人物面部驱动方法、装置、终端设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN115601484A CN115601484A (zh) 2023-01-13
CN115601484B true CN115601484B (zh) 2023-03-28

Family

ID=84853610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211381723.1A Active CN115601484B (zh) 2022-11-07 2022-11-07 虚拟人物面部驱动方法、装置、终端设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN115601484B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116612512A (zh) * 2023-02-02 2023-08-18 北京甲板智慧科技有限公司 基于单目rgb相机的人脸表情图像处理方法和装置
CN116977515B (zh) * 2023-08-08 2024-03-15 广东明星创意动画有限公司 一种虚拟人物表情驱动方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108520215B (zh) * 2018-03-28 2022-10-11 电子科技大学 基于多尺度联合特征编码器的单样本人脸识别方法
CN108960201A (zh) * 2018-08-01 2018-12-07 西南石油大学 一种基于人脸关键点提取和稀疏表达分类的表情识别方法
CN109727303B (zh) * 2018-12-29 2023-07-25 广州方硅信息技术有限公司 视频展示方法、系统、计算机设备、存储介质和终端
US11189020B2 (en) * 2019-02-06 2021-11-30 Thanh Phuoc Hong Systems and methods for keypoint detection
CN110141857A (zh) * 2019-04-26 2019-08-20 腾讯科技(深圳)有限公司 虚拟角色的面部显示方法、装置、设备及存储介质
CN110111247B (zh) * 2019-05-15 2022-06-24 浙江商汤科技开发有限公司 人脸变形处理方法、装置及设备
CN110826534B (zh) * 2019-11-30 2022-04-05 杭州小影创新科技股份有限公司 一种基于局部主成分分析的人脸关键点检测方法及系统
CN112308949A (zh) * 2020-06-29 2021-02-02 北京京东尚科信息技术有限公司 模型训练、人脸图像生成方法和装置以及存储介质
CN113869234A (zh) * 2021-09-29 2021-12-31 中国平安财产保险股份有限公司 人脸表情识别方法、装置、设备及存储介质
CN114821734A (zh) * 2022-05-13 2022-07-29 北京沃东天骏信息技术有限公司 一种驱动虚拟人物表情的方法和装置

Also Published As

Publication number Publication date
CN115601484A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN109961507B (zh) 一种人脸图像生成方法、装置、设备及存储介质
CN115601484B (zh) 虚拟人物面部驱动方法、装置、终端设备和可读存储介质
US20220036636A1 (en) Three-dimensional expression base generation method and apparatus, speech interaction method and apparatus, and medium
EP3889915A2 (en) Method and apparatus for generating virtual avatar, device, medium and computer program product
EP3992919B1 (en) Three-dimensional facial model generation method and apparatus, device, and medium
US20230401672A1 (en) Video processing method and apparatus, computer device, and storage medium
CN111464834A (zh) 一种视频帧处理方法、装置、计算设备及存储介质
CN113838176A (zh) 模型的训练方法、三维人脸图像生成方法及设备
CN111047509A (zh) 一种图像特效处理方法、装置及终端
CN110458924B (zh) 一种三维脸部模型建立方法、装置和电子设备
CN109754464B (zh) 用于生成信息的方法和装置
CN110620884B (zh) 基于表情驱动的虚拟视频合成方法、装置及存储介质
CN113095206A (zh) 虚拟主播生成方法、装置和终端设备
CN112085835A (zh) 三维卡通人脸生成方法、装置、电子设备及存储介质
CN113808277A (zh) 一种图像处理方法及相关装置
CN114202615A (zh) 人脸表情的重建方法、装置、设备和存储介质
CN107644455B (zh) 人脸图像合成方法和装置
US20240013464A1 (en) Multimodal disentanglement for generating virtual human avatars
CN115393487B (zh) 一种虚拟角色模型处理方法、装置、电子设备及存储介质
CN112604279A (zh) 一种特效显示方法及装置
CN116342782A (zh) 生成虚拟形象渲染模型的方法和装置
US11948245B2 (en) Relighting images and video using learned lighting and geometry
CN115330980A (zh) 表情迁移方法、装置、电子设备及存储介质
US11954779B2 (en) Animation generation method for tracking facial expression and neural network training method thereof
Galea et al. Gpu-based selective sparse sampling for interactive high-fidelity rendering

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