人脸鼻形3D实时变形方法、装置及计算机设备与流程

未命名 09-17 阅读:178 评论:0

人脸鼻形3d实时变形方法、装置及计算机设备
技术领域
1.本发明属于图像处理技术领域,具体涉及一种人脸鼻形3d实时变形方法、装置及计算机设备。


背景技术:

2.随着移动手机端人像修图app功能和种类日益丰富,针对人像的图像视频编辑的要求也越来越高,不仅追求静态、二维平面和单一角度的美化效果,更追求动态、全方位多角度的效果自然。其中人脸鼻型美化、图片视频“隆鼻”的正是其中一种日益增强的需求。
3.相关技术中,现有技术方案对图片视频人脸鼻型调整的技术,主要方式为识别静态图片或者视频帧的人脸,获取2d平面人脸关键点信息,再通过拉伸、变形调整鼻子部位关键点,来实现鼻形的调整。但是2d关键点存在以下两个主要问题:(1)只能实现平面角度的形变,无法体现纵深空间的变化,不能较好地满足增高鼻梁、增加面部立体度的修图需求。(2)在非正面角度、人物动态变化较多的视频中,2d平面调整的鼻形难以适应多种角度,在人物运动、角度变化时效果连贯性较差,并且容易产生扭曲问题。
4.综上所述,2d关键点识别方式无法实现自然拟真的鼻型调整、“隆鼻”效果。而能够实现较好的美化效果,往往又需要复杂繁琐的精细调节,操作成本较大。


技术实现要素:

5.有鉴于此,本发明的目的在于克服现有技术的不足,提供一种人脸鼻形3d实时变形方法、装置及计算机设备,以解决现有技术中人脸鼻形调整方法无法实现自然鼻型调整以及成本较大的问题。
6.为实现以上目的,本发明采用如下技术方案:一种人脸鼻形3d实时变形方法,包括:
7.获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;
8.将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;
9.确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;
10.对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;
11.结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
12.进一步的,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,之前包括:
13.筛选所述人脸三维网格中的鼻子部位,并确定所述鼻子部位所在的封闭区域;
14.确定所述封闭区域内的关键点与鼻子部位的连接关系;
15.以所述封闭区域最外围的点作为锚点m;所述锚点m为不动点;
16.预计算封闭区域的邻接对称矩阵adj_mat;所述邻接对称矩阵adj_mat为一个nxn方阵,1~n代表是封闭区域的所有顶点;邻接对称矩阵adj_mat中的(i,j)元素,表示第i个关键点和第j个关键点之间是否存在直接相连的线段,如果存在,则值为1,否则为0;
17.通过所述邻接对称矩阵adj_mat,预计算对角矩阵d;
18.根据所述邻接对称矩阵adj_mat和所述对角矩阵d,计算得到变换矩阵l,并得到所述变换矩阵l的转置矩阵l_transpose;
19.根据所述锚点m及根据控制点组c计算罚函数矩阵s,并得到所述罚函数矩阵的转置矩阵s_transpose;其中,所述罚函数矩阵为对角阵;所述控制点组c根据需要的鼻型进行选定,所述鼻型包括挺鼻和窄鼻;
20.预设惩罚因子alpha。
21.进一步的,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,包括:
22.计算所述人脸三维网格的关键点的x,y,z坐标值的n*3矩阵x_origin;
23.根据所述变换矩阵和n*3矩阵x_origin,得到拉普拉斯坐标x_lprime;
24.根据需要的鼻型,对控制点组c中的所有关键点进行形变;
25.计算n*3矩阵p;其中,p(i,0),p(i,1),p(i,2),在i属于锚点m或是控制点c时,其值为pointarray(i)的x,y,z坐标值,反之全为0;
26.采用以下方式计算左侧形变lhs,
27.lhs=l_transpose*l+alpha*s_tranpose*s。
28.采用以下方式计算右侧形变rhs,
29.rhs=l_transpose*x_lprime+alpha*s_tranpose*p。
30.采用ldlt求解lhs*deformpointarray=rhs,得到变形后的网格关键点deformpointarray。
31.进一步的,所述对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格,包括:
32.确定需要进行平滑处理的第一关键点集合以及不需要进行平滑处理的第二关键点集合;
33.确定与所述第一关键点集合中所有关键点直接相连的点,并求取带权均值;
34.根据预设平滑强度,在所述第一关键点集合中所有关键点与所述带权均值之间进行线性插值,得到所述第一关键点集合的平滑结果。
35.进一步的,当通过视频获取单张图像作为原始图像时,采用卡尔曼滤波对获取的人脸关键点进行平滑处理。
36.进一步的,所述获取原始图像,确定所述原始图像人脸区域的人脸关键点信息,包括:
37.获取原始图像的图像纹理;
38.将所述图像纹理输入预构建的人脸关键点检测模型中,输出人脸关键点信息。
39.进一步的,采用opengl结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
40.进一步的,所述惩罚因子alpha的取值范围为0.5~5。
41.本技术实施例提供一种人脸鼻形3d实时变形装置,包括:
42.获取模块,用于获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;
43.检测模块,用于将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;
44.变形模块,用于确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;
45.处理模块,用于对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;
46.渲染模块,用于结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
47.本技术实施例提供一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项人脸鼻形3d实时变形方法的步骤。
48.本发明采用以上技术方案,能够达到的有益效果包括:
49.本发明提供一种人脸鼻形3d实时变形方法、装置及计算机设备,本技术通过3d face mesh识别模拟出人脸3d关键点,对人脸进行建模生成网格。与2d人脸关键点相比,3d face mesh关键点更为稠密,而且带有法向量,在变形算法支持的前提下,可以更加精细、更加自然拟真的3d整形调节效果。本技术提供的技术方案通过控制、调整3d人脸鼻子部位关键点的空间位置,可以实现鼻子3d角度的变形,达到增高鼻梁、改变鼻型的效果。同时,3d角度的鼻子变形适用于多角度,支持实时应用于视频、实时自拍中连贯性较好,能有效避免2d关键点形变时的图像扭曲问题。因此,本发明提供的方法更加精细、自然拟真的人脸鼻形调整方法,适用于多角度、多场景下的图像和视频修图需求,不仅能够优化修图效果,还能降低操作成本。
附图说明
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为本发明人脸鼻形3d实时变形方法的步骤示意图;
52.图2为本发明人脸鼻形区域的三维网格关键点及其拓扑关系的结构示意图;
53.图3为本发明人脸鼻形3d实时变形装置的结构示意图;
54.图4为本发明提供的人脸鼻形3d实时变形方法涉及的计算机设备的结构示意图。
具体实施方式
55.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基
于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
56.下面结合附图介绍本技术实施例中提供的一个具体的人脸鼻形3d实时变形方法、装置及计算机设备。
57.如图1所示,本技术实施例中提供的人脸鼻形3d实时变形方法,包括:
58.s101,获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;
59.一些实施例中,所述获取原始图像,确定所述原始图像人脸区域的人脸关键点信息,包括:
60.获取原始图像的图像纹理;
61.将所述图像纹理输入预构建的人脸关键点检测模型中,输出人脸关键点信息。
62.可以理解的是,原始图像可以是单张图像,也可以是从视频流中解码得到的单帧图像,对原始图像进行人脸关键点检测,得到的是2d平面上的人脸关键点坐标facelandmarkarray。需要说明的是,本技术中采用的是现有的人脸关键点检测模型,可根据实际需要,选择合适的模型。
63.一些实施例中,当通过视频获取单张图像作为原始图像时,采用卡尔曼滤波对获取的人脸关键点进行平滑处理。
64.具体的,本技术可以采用基于深度学习的自研网络进行检测。如处理对象是视频流时,还将采用卡尔曼滤波对关键点进行平滑,从而减缓抖动现象,避免影响视频处理的效果。
65.s102,将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;
66.可以理解的是,将步骤s101中检测到的人脸关键点坐标facelandmarkarray输入到人脸三维网格模型中,检测后输出一组人脸三维网格facemeshdata,其中,facemeshdata包括关键点pointarray及其拓扑结构edgearray。
67.本发明中的人脸三维网格模型采用基于深度学习的自研网络进行构建。并能够针对视频后处理和实时自拍两种情况,分别采用基于前后帧的类双边滤波和卡尔曼滤波进行平滑处理。
68.s103,确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;
69.具体的,本步骤将步骤s102中得到的人脸三维网格facemeshdata,,对网格的鼻子部分进行变形,得到变形后的网格关键点deformpointarray作为输出(表示其拓扑结构的egdearray在变形过程中并不需要发生变化)。
70.需要说明的是,步骤s103括预处理步骤和实施步骤。
71.其中,预处理步骤是由于在本发明中仅希望对鼻子部分进行变形,因此针对人脸三维网格检测模块检测出来的结果,需要预先筛选出鼻子及鼻子附近一个封闭区域a的关键点,以及他们的连接关系,如图2所示。同时选定该封闭区域a最外圈的一组点m作为锚点,锚点m的主要作用是为后续其它会进行形变的关键点提供计算基础,以及保证变形不会影响到封闭区域m以外的图像内容,保证内容在边界处的连接性。
72.其次,还需要根据具体希望的每一种鼻型,选取相应的一组控制点c。通过移动的控制点,配合不动的锚点,来带动待定点进行变形。下面举两个用户最常见的需求:
73.(1)挺鼻。此为最常见的用户需求,目的是将鼻梁拉高,显得更加英气。此种情况下,可以选择鼻梁部分3个左右的关键点,将这几个点的位置沿着人脸朝向的方向偏移,以及鼻梁两侧各自大概3~5个关键点,朝各自的对称方向进行偏移。
74.(2)窄鼻。部分鼻子较宽的用户可能会希望在自拍/录制/视频后处理时将自己的鼻子收窄一点,小巧的鼻子会显得更加的精致可爱,以及令五官更加协调。此种情况下,可以在挺鼻效果的基础上,将鼻尖部分大约3个关键点往人脸朝向做稍微的偏移,以及左右鼻翼部分的对称的一圈关键点往各自对称的方向收缩,带动其它关键点进行运动,从而使得鼻子整体变窄变挺。
75.由于网格的拓扑关系是由检测模型决定的,因此可以提前做一些预计算,加速后续的变形计算过程。
76.一些实施例中,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,之前包括:
77.筛选所述人脸三维网格中的鼻子部位,并确定所述鼻子部位所在的封闭区域m;
78.确定所述封闭区域内的关键点与鼻子部位的连接关系;
79.以所述封闭区域最外围的点作为锚点m;所述锚点m为不动点;
80.预计算封闭区域的邻接对称矩阵adj_mat;所述邻接对称矩阵adj_mat为一个nxn方阵,1~n代表是封闭区域的所有顶点;邻接对称矩阵adj_mat中的(i,j)元素,表示第i个关键点和第j个关键点之间是否存在直接相连的线段,如果存在,则值为1,否则为0;需要说明的是,(i,i)元素定义为0,即一个顶点和其自身没有相连线段,这点与通常的图论中的定义稍有不同。
81.通过所述邻接对称矩阵adj_mat,预计算对角矩阵d;对角矩阵是除对角线外其余元素皆为0的矩阵。这里d(i,i)的值为adj_mat第i行的所有元素之和的倒数。
82.根据所述邻接对称矩阵adj_mat和所述对角矩阵d,计算得到变换矩阵l,并得到所述变换矩阵的转置矩阵l_transpose;
83.其中,l=i

d*adj_mat。其中,i为单位阵;
84.根据所述锚点m及根据控制点组c计算罚函数矩阵s,并得到所述罚函数矩阵的转置矩阵s_transpose;其中,所述罚函数矩阵为对角阵;s(i,i)的值,当i属于锚点m或是控制点c时,其值为1,反之为0。由于s为对角阵,s_tranpose=s;所述控制点组c根据需要的鼻型进行选定,所述鼻型包括挺鼻和窄鼻。
85.预设惩罚因子alpha。所述惩罚因子alpha的取值范围为0.5~5。
86.一些实施例中,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,包括:
87.计算所述人脸三维网格的关键点的x,y,z坐标值的n*3矩阵x_origin;其中,n*3矩阵x_origin包括x_origin(i,0)、x_origin(i,1)、x_origin(i,2);
88.根据所述变换矩阵和n*3矩阵x_origin,得到拉普拉斯坐标x_lprime;
89.根据需要的鼻型,对控制点组c中的所有关键点进行形变;其中,所述控制点组c根据需要的鼻型进行选定,所述鼻型包括挺鼻和窄鼻;
90.计算n*3矩阵p;其中,p(i,0),p(i,1),p(i,2),在i属于锚点m或是控制点c时,其值为pointarray(i)的x,y,z坐标值,反之全为0;
91.采用以下方式计算左侧形变lhs,
92.lhs=l_transpose*l+alpha*s_tranpose*s。
93.采用以下方式计算右侧形变rhs,
94.rhs=l_transpose*x_lprime+alpha*s_tranpose*p。
95.采用ldlt求解lhs*deformpointarray=rhs,得到变形后的网格关键点deformpointarray。
96.s104,对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;
97.一些实施例中,所述对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格,包括:
98.确定需要进行平滑处理的第一关键点集合以及不需要进行平滑处理的第二关键点集合;
99.确定与所述第一关键点集合中所有关键点直接相连的点,并求取带权均值;
100.根据预设平滑强度,在所述第一关键点集合中所有关键点与所述带权均值之间进行线性插值,得到所述第一关键点集合的平滑结果。
101.可以理解的是,本技术中的第一关键点集合、第二关键点集合均包括多个关键点,并不是只是一个关键点,本步骤中平滑处理包括预处理和实施步骤,其中,预处理包括:
102.由于三维网格的贴图是从二维的图像中映射而来,所以部分贴图纹理其实是缺失的,同时,从保护鼻子本身形状的需求出发,因此,需要先预定义好部分关键点k,这部分的点将不去做相应的平滑。
103.然后,对于需要平滑的点pi,将根据与pi直接相连的所有点,求取带权均值piw,然后根据平滑强度strength,在pi与piw之间做线性插值,得到平滑后的该点的结果pir。
104.公式如下:
[0105][0106]
pir=pi*(1.0-strength)+piw*strength
[0107]
这里还需要进一步解释的是邻接点权重wk的选取。
[0108]
在通常的平滑中,wk可以取1.0/待平滑点邻接点数量。这是一种可以考虑的方案。但在此场景下效果并不好。优选地,这里将采用cotangent权重,公式如下:
[0109][0110]
其中,α和β是pi与pk构成的边的两个对角。
[0111]
s105,结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0112]
将facemeshdata、deformpointarray_smooth以及原始图像作为输入,根据变形前后的关键点位置及其连接关系,对原始图像进行变形操作,得到最终结果resulttexture。
[0113]
优选地,出于性能和实现便利性的考虑,本发明采用opengl实现了此变形操作。
[0114]
人脸鼻形3d实时变形方法的工作原理为:获取原始图像,确定原始图像人脸区域的人脸关键点信息;其中,人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;将人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,人脸三维网格包括关键点及其拓扑结构;确定人脸三维网格中的鼻子部位,并对鼻子部位进行变形处理,得到变形后的网格关键点;对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0115]
如图3所示,本技术实施例提供一种人脸鼻形3d实时变形装置,包括:
[0116]
获取模块201,用于获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;
[0117]
检测模块202,用于将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;
[0118]
变形模块203,用于确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;
[0119]
处理模块204,用于对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;
[0120]
渲染模块205,用于结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0121]
本技术实施例提供的人脸鼻形3d实时变形装置的工作原理为,获取模块201获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;检测模块202将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;变形模块203确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;处理模块204对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;渲染模块205结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0122]
本技术提供一种计算机设备,包括:存储器1和处理器2,还可以包括网络接口3,所述存储器存储有计算机程序,存储器可以包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。该计算机设备存储有操作系统4,存储器是计算机可读介质的示例。所述计算机程序被所述处理器执行时,使得所述处理器执行人脸鼻形3d实时变形方法,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0123]
在一个实施例中,本技术提供的人脸鼻形3d实时变形方法可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。
[0124]
一些实施例中,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;将所述人脸关键点信息输入预构建
的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0125]
本技术还提供一种计算机存储介质,计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光光盘(dvd)或其他光学存储、磁盒式磁带存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0126]
一些实施例中,本发明还提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。
[0127]
可以理解的是,上述提供的方法实施例与上述的装置实施例对应,相应的具体内容可以相互参考,在此不再赘述。
[0128]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0129]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0130]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0131]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0132]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种人脸鼻形3d实时变形方法,其特征在于,包括:获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。2.根据权利要求1所述的方法,其特征在于,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,之前包括:筛选所述人脸三维网格中的鼻子部位,并确定所述鼻子部位所在的封闭区域;确定所述封闭区域内的关键点与鼻子部位的连接关系;以所述封闭区域最外围的点作为锚点m;所述锚点m为不动点;预计算封闭区域的邻接对称矩阵adj_mat;所述邻接对称矩阵adj_mat为一个nxn方阵,1~n代表是封闭区域的所有顶点;邻接对称矩阵adj_mat中的(i,j)元素,表示第i个关键点和第j个关键点之间是否存在直接相连的线段,如果存在,则值为1,否则为0;通过所述邻接对称矩阵adj_mat,预计算对角矩阵d;根据所述邻接对称矩阵adj_mat和所述对角矩阵d,计算得到变换矩阵l,并得到所述变换矩阵l的转置矩阵l_transpose;根据所述锚点m及根据控制点组c计算罚函数矩阵s,并得到所述罚函数矩阵的转置矩阵s_transpose;其中,所述罚函数矩阵为对角阵;所述控制点组c根据需要的鼻型进行选定,所述鼻型包括挺鼻和窄鼻;预设惩罚因子alpha。3.根据权利要求2所述的方法,其特征在于,所述确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点,包括:计算所述人脸三维网格的关键点的x,y,z坐标值的n*3矩阵x_origin;根据所述变换矩阵和n*3矩阵x_origin,得到拉普拉斯坐标x_lprime;根据需要的鼻型,对控制点组c中的所有关键点进行形变;计算n*3矩阵p;其中,p(i,0),p(i,1),p(i,2),在i属于锚点m或是控制点c时,其值为pointarray(i)的x,y,z坐标值,反之全为0;采用以下方式计算左侧形变lhs,lhs=l_transpose*l+alpha*s_tranpose*s。采用以下方式计算右侧形变rhs,rhs=l_transpose*x_lprime+alpha*s_tranpose*p。采用ldlt求解lhs*deformpointarray=rhs,得到变形后的网格关键点deformpointarray。4.根据权利要求1所述的方法,其特征在于,所述对变形后的网格关键点进行平滑处
理,得到平滑后的人脸三维网格,包括:确定需要进行平滑处理的第一关键点集合以及不需要进行平滑处理的第二关键点集合;确定与所述第一关键点集合中所有关键点直接相连的点,并求取带权均值;根据预设平滑强度,在所述第一关键点集合中所有关键点与所述带权均值之间进行线性插值,得到所述第一关键点集合的平滑结果。5.根据权利要求1所述的方法,其特征在于,当通过视频获取单张图像作为原始图像时,采用卡尔曼滤波对获取的人脸关键点进行平滑处理。6.根据权利要求1所述的方法,其特征在于,所述获取原始图像,确定所述原始图像人脸区域的人脸关键点信息,包括:获取原始图像的图像纹理;将所述图像纹理输入预构建的人脸关键点检测模型中,输出人脸关键点信息。7.根据权利要求1所述的方法,其特征在于,采用opengl结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。8.根据权利要求2所述的方法,其特征在于,所述惩罚因子al pha的取值范围为0.5~5。9.一种人脸鼻形3d实时变形装置,其特征在于,包括:获取模块,用于获取原始图像,确定所述原始图像人脸区域的人脸关键点信息;其中,所述人脸关键点信息至少包括:五官、脸部轮廓在图像中的二维坐标;检测模块,用于将所述人脸关键点信息输入预构建的人脸三维网格模型中,得到人脸三维网格;其中,所述人脸三维网格包括关键点及其拓扑结构;变形模块,用于确定所述人脸三维网格中的鼻子部位,并对所述鼻子部位进行变形处理,得到变形后的网格关键点;处理模块,用于对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;渲染模块,用于结合所述人脸三维网格、所述平滑后的人脸三维网格以及所述原始图像进行渲染,得到结果图像。10.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述的人脸鼻形3d实时变形方法。

技术总结
本发明涉及一种人脸鼻形3D实时变形方法、装置及计算机设备,所述方法包括确定原始图像人脸区域的人脸关键点信息;根据人脸关键点信息得到人脸三维网格;其中,人脸三维网格包括关键点及其拓扑结构;确定人脸三维网格中的鼻子部位,并对鼻子部位进行变形处理,得到变形后的网格关键点;对变形后的网格关键点进行平滑处理,得到平滑后的人脸三维网格;结合人脸三维网格、平滑后的人脸三维网络以及原始图像进行渲染,得到结果图像。本发明通过3D Face Mesh检测出稠密的人脸关键点及其拓扑关系,与2D人脸关键点相比,3D Face Mesh关键点更为稠密,而且带有法向量,在变形算法支持的前提下,能够得到更加精细、更加自然拟真的3D整形图像。像。像。


技术研发人员:黄冠喆
受保护的技术使用者:广州光锥元信息科技有限公司
技术研发日:2023.06.21
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐