脸型变换方法、装置、设备及存储介质与流程

文档序号:31709090发布日期:2022-10-04 15:35阅读:85来源:国知局
脸型变换方法、装置、设备及存储介质与流程

1.本技术属于图像处理技术领域,具体涉及一种脸型变换方法、装置、设备及存储介质。


背景技术:

2.目前很多图像处理场景中需要对人脸图像进行脸型变换处理,如在虚拟美容整形场景中通常需要对用户脸型图像进行脸型变换,以将用户的脸型调整为用户满意的脸型。
3.相关技术中提供了一种脸型变换方法,该方法从用户脸型图像中选取多个关键点,对每个关键点分别进行固定幅度的缩放处理,得到变换后的脸型图像。但该相关技术中对所有的用户脸型图像都进行固定幅度的缩放,适应性很差,容易导致变换处理后的脸型不自然。


技术实现要素:

4.本技术提出一种脸型变换方法、装置、设备及存储介质,在用户脸型图像和目标脸型图像中选取了预设数目个关键点,基于选取的关键点确定出了待调节区域,对待调节区域中各像素点的拉伸幅度进行了适当控制,脸型变换更加自然,能够适应各种脸型之间的相互变换。
5.本技术第一方面实施例提出了一种脸型变换方法,包括:
6.从用户脸型图像中获取预定部位长度及位于脸部轮廓上的第一关键点,从目标脸型图像中获取所述第一关键点对应的第二关键点;
7.根据所述预定部位长度、所述第一关键点及所述第二关键点,确定出所述第一关键点对应的待调节区域中各像素点对应的变换后坐标;
8.根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换。
9.在本技术的一些实施例中,所述根据所述预定部位长度、所述第一关键点及所述第二关键点,确定出所述第一关键点对应的待调节区域中各像素点对应的变换后坐标,包括:
10.从所述用户脸型图像中确定出以所述第一关键点为圆心的第一圆形区域,将所述第一圆形区域作为所述第一关键点对应的待调节区域;
11.根据所述预定部位长度、所述第一关键点的坐标、所述第二关键点的坐标及所述待调节区域中各像素点的坐标,分别计算所述各像素点对应的变换后坐标。
12.在本技术的一些实施例中,所述根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换,包括:
13.根据所述预设拉伸系数、所述预定部位长度、所述第一关键点、所述第二关键点及第一像素点对应的变换后坐标,计算所述第一像素点对应的变换前坐标,所述第一像素点为所述待调节区域中的任一像素点;
14.根据所述用户脸型图像和所述第一像素点对应的变换前坐标,确定所述变换前坐标对应的像素值;
15.将结果图像中所述变换后坐标处的像素点的像素值修改为所述用户图像中所述变换前坐标对应的像素值。
16.在本技术的一些实施例中,所述根据预设拉伸系数、所述预定部位长度、所述第一关键点、所述第二关键点及第一像素点对应的变换后坐标,计算所述第一像素点对应的变换前坐标,包括:
17.根据所述预设拉伸系数、所述预定部位长度、所述第一关键点及第一像素点对应的变换后坐标,计算所述第一关键点对应的幅度控制系数;
18.计算所述第一关键点与所述第二关键点之间的拉伸距离;
19.将所述拉伸距离与所述幅度控制系数的乘积确定为所述第一像素点对应的拉伸幅度;
20.计算所述第一像素点对应的变换后坐标与所述拉伸幅度之间的差值,将所述差值确定为所述第一像素点对应的变换前坐标。
21.在本技术的一些实施例中,所述根据所述用户脸型图像和所述第一像素点对应的变换前坐标,确定所述变换前坐标对应的像素值,包括:
22.从所述用户脸型图像中获取所述第一像素点对应的变换前坐标相邻的每个像素点的像素值;
23.对所述相邻的每个像素点的像素值进行插值计算,得到所述变换前坐标对应的像素值。
24.在本技术的一些实施例中,所述从用户脸型图像中获取位于脸部轮廓上的第一关键点,包括:
25.对用户脸型图像进行人脸检测,识别出位于脸部轮廓上的所有人脸关键点;
26.从识别出的所有人脸关键点中选择下巴关键点及镜像分布于脸部轮廓两侧的多个人脸关键点;
27.将选择出的所述下巴关键点及镜像分布的所述多个人脸关键点确定为所述用户脸型图像对应的第一关键点。
28.在本技术的一些实施例中,所述根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换之前,还包括:
29.计算将所述第一关键点拉伸至所述第二关键点的拉伸距离;
30.根据所述拉伸距离,确定所述第一关键点对应的衰减系数;
31.根据所述衰减系数、所述第一关键点和所述第二关键点,计算衰减后的第二关键点。
32.在本技术的一些实施例中,所述根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换之前,还包括:
33.在所述用户脸型图像中,对脸部边界的左右两侧分别进行预设宽度的像素镜像填充处理,对所述脸部边界的下侧进行预设高度的像素镜像填充处理。
34.在本技术的一些实施例中,所述根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换之后,还包括:
35.在所述用户脸型图像中,将所述脸部边界左右两侧及下侧填充的部分图像删除。
36.在本技术的一些实施例中,所述根据预设拉伸系数及第一像素点对应的变换后坐标,计算所述第一像素点对应的变换前坐标之后,还包括:
37.若计算的所述变换前坐标位于所述用户脸型图像中脸部边界外面,则确定所述变换前坐标与所述脸部边界之间的方位关系,所述方位关系用于指示所述变换前坐标位于所述脸部边界的左侧、右侧或下侧;
38.在所述用户脸型图像中,对所述方位关系所指示的所述脸部边界的一侧进行像素镜像填充处理;
39.根据填充处理后的所述用户脸型图像,执行所述确定所述变换前坐标对应的像素值的操作。
40.本技术第二方面的实施例提供了一种脸型变换装置,包括:
41.获取模块,用于从用户脸型图像中获取预定部位长度及位于脸部轮廓上的第一关键点,从目标脸型图像中获取所述第一关键点对应的第二关键点;
42.确定模块,用于根据所述预定部位长度、所述第一关键点及所述第二关键点,确定出所述第一关键点对应的待调节区域中各像素点对应的变换后坐标;
43.变换模块,用于根据预设拉伸系数及所述各像素点对应的变换后坐标,分别对所述用户脸型图像中所述各像素点进行拉伸变换。
44.本技术第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
45.本技术第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
46.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
47.在本技术实施例中,从用户脸型图像中获取预定部位长度及第一关键点,从目标脸型图像中获取第二关键点,基于第一关键点和第二关键点确定出用户脸部图像中待调节区域内各像素点对应的变换后坐标,然后根据预设拉伸系数及变换后坐标对待调节区域内各像素点进行拉伸。给定了脸型变换需要拉伸的第一关键点,通过对每个第一关键点对应的待调节区域进行局部平移变形即可实现脸型变换。且在变换过程中通过预设拉伸系数实现对第一关键点对应的待调节区域内每个像素点的拉伸幅度的控制,避免拉伸幅度过大导致不自然的脸型变换效果。该脸型变换过程适用于任意两种脸型之间的变换场景,即便对于不对称的脸型变换也适用,只要给定用户脸型图像和目标脸型图像,即可将用户脸型图像的脸型调整为目标脸型图像中的脸型,脸型变换准确性高,效果更自然,适用性更强。
48.进一步地,在用户脸型图像和目标脸型图像中选取了预设数目个关键点,基于选取的关键点确定出了待调节区域,通过改进的逆变换算法对待调节区域中各像素点的拉伸幅度进行了适当控制,能够适应各种脸型之间的相互变换。还增加了衰减系数,通过衰减系数对各像素点的拉伸幅度进一步限制,避免产生调整幅度过大导致拉伸效果不自然的情况。在进行脸型变换之前还对用户脸型图像中脸部边界左右两侧及下侧进行像素镜像填充,避免脸型变换后出现伪纹理的问题。
49.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变
的明显,或通过本技术的实践了解到。
附图说明
50.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
51.图1示出了本技术一实施例所提供的一种脸型变换方法的流程图;
52.图2示出了本技术一实施例所提供的关键点选取的示意图;
53.图3示出了本技术一实施例所提供的加入衰减系数前脸型变换的效果示意图;
54.图4示出了本技术一实施例所提供的加入衰减系数后脸型变换的效果示意图;
55.图5示出了本技术一实施例所提供的用户脸型图像中脸部边界左右两侧及下侧进行像素镜像填充的示意图;
56.图6示出了本技术一实施例所提供的脸型变换的效果示意图;
57.图7示出了本技术一实施例所提供的一种脸型变换装置的结构示意图;
58.图8示出了本技术一实施例所提供的一种电子设备的结构示意图;
59.图9示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
60.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
61.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
62.下面结合附图来描述根据本技术实施例提出的一种脸型变换方法、装置、设备及存储介质。
63.目前传统的脸型变换方式是从用户脸型图像中选取多个关键点,若用户想要瘦脸效果,则将每个关键点朝向脸部内侧进行固定幅度的收缩操作。若用户想要胖脸效果,则将每个关键点朝向脸部外侧进行固定幅度的拉伸操作。由于对于所有的用户联系图像都进行固定幅度的收缩或拉伸操作,导致传统的脸型变换方式适应性很差,容易导致变换处理后的脸型不自然。而且传统的脸型变换方式仅能进行简单的瘦脸或胖脸处理,对于方脸、圆脸、甚至不对称脸等更多样的脸型之间的变换难以实现。
64.基于传统的脸型变换方式存在的问题,本技术实施例提出了一种脸型变换方法,该方法在局部平移变形的基础上,确定了一种脸型到另一种脸型变换时需要调整的像素点,对各像素点的拉伸幅度进行了适当控制,能够适应各种脸型之间的相互变换。而且本技术实施例中增加了衰减系数,通过衰减系数对各像素点的拉伸幅度进行了限制,避免产生调整幅度过大导致拉伸效果不自然的情况。本技术实施例在进行脸型变换之前还对用户脸型图像中脸部边界左右两侧及下侧进行像素镜像填充,避免脸型变换后出现伪纹理的问题。
65.参见图1,该方法具体包括以下步骤:
66.步骤101:从用户脸型图像中获取预定部位长度及位于脸部轮廓上的第一关键点,从目标脸型图像中获取所述第一关键点对应的第二关键点。
67.本技术实施例的执行主体为用于进行脸型变换的终端或服务器等设备。该设备中存储有目标脸型库,或者该设备可以从云端获得该目标脸型库,目标脸型库中存储有大量目标脸型图像,这些目标脸型图像涵盖了方脸、圆脸、瓜子脸、鹅蛋脸等各种脸型。目标脸型图像均为已与标准脸对齐的图像。其中,标准脸又称为平均脸,标准脸中的两眼、鼻尖、嘴角、眉毛等部位的位置,均是通过统计海量的人脸图像,对海量的人脸图像中这些部位的位置进行平均处理得到的。通过仿射变换能够将原始的目标脸型图像与标准脸对齐,对齐之后相当于使目标脸型图像中两眼、鼻尖、嘴角、眉毛等部位的位置与标准脸中这些部位的位置相同。
68.当用户需要进行脸型变换时,用户向该设备提交一张用户脸型图像,该用户脸型图像可以为通过摄像头拍摄的图像,或者用户从设备本地存储的脸型图像中选取的图像,或者用户从网络中下载的脸型图像。用户还需从设备提供的目标脸型库中选取一张目标脸型图像。该设备负责将用户提交的用户脸型图像中的脸型调整为用户选择的目标脸型图像中的脸型。
69.该设备接收到用户提交的用户脸型图像之后,同样通过仿射变换将用户脸型图像与标准脸对齐,从而使得用户脸型图像与目标脸型图像中脸部的朝向一致,且各个部位在图像中的位置一致,提高后续基于用户脸型图像和目标脸型图像进行脸型变换的准确性。
70.获得均与标准脸对齐的目标脸型图像和用户脸型图像之后,该设备首先对用户脸型图像进行人脸检测,识别脸部的各个人脸关键点,并对每个人脸关键点进行编号。识别出的人脸关键点包括脸部轮廓、眉毛、眼睛、鼻子、嘴巴等部位处的人脸关键点,识别出的人脸关键点的数目可以为67或96等。基于识别出的人脸关键点,从用户脸型图像中获取预定部位长度,预定部位长度可以为两眼中心点之间的距离、两眉毛中心点之间的距离、两嘴角关键点之间的距离等。以及,从用户脸型图像中获取位于脸部轮廓上的所有人脸关键点,从脸部轮廓上的所有人脸关键点中选取预设数目个第一关键点。预设数目可以为2n+1个人脸关键点,n为大于或等于1的整数。具体从脸部轮廓上的所有人脸关键点中选取出位于下巴最低位置处的下巴关键点,以及选取出镜像分布于脸部轮廓两侧的2n个人脸关键点,将选取的下巴关键点和2n个人脸关键点确定为用户脸型图像对应的第一关键点。
71.作为一种示例,如图2所示,从用户脸型图像中识别出67个人脸关键点,并对每个人脸关键点进行了编号,从脸部轮廓的选取镜像分布的编号为3和13的两个人脸关键点,选取镜像分布的编号为5和11的两个人脸关键点,以及从下巴处选择编号为8的人脸关键点,从而选取出编号为3、5、8、11和13共5个人脸关键点作为选出的第一关键点。
72.同样地,该设备对用户提交的目标脸型图像进行人脸检测,识别出目标脸型图像中的各个人脸关键点,并对每个人脸关键点进行编号。从目标脸型图像中获取每个第一关键点对应的第二关键点,具体对于每个第一关键点,从目标脸型图像中获取与第一关键点的编号相同的第二关键点。即相互对应的第一关键点和第二关键点,二者在人脸中所处的位置相同。
73.步骤102:根据获取的预定部位长度、第一关键点及第二关键点,确定出第一关键
点对应的待调节区域中各像素点对应的变换后坐标。
74.对于步骤101中获取的预设数目个第一关键点中的每个第一关键点,其对应的局部变形调节操作均相同,因此本技术实施例中仅以一个第一关键点为例进行详细说明。
75.具体地,从用户脸型图像中确定出以第一关键点为圆心的第一圆形区域,将第一圆形区域作为第一关键点对应的待调节区域,该待调节区域为脸型变换前第一关键点对应的区域。该调节区域的半径可以为上述预定部位长度。根据预定部位长度、第一关键点的坐标、第二关键点的坐标及待调节区域中各像素点的坐标,分别计算各像素点对应的变换后坐标。具体可以通过如下公式(1)来计算各像素点对应的变换后坐标。
[0076][0077]
在公式(1)中,u为第一像素点对应的变换前坐标,第一像素点为待调节区域中的任一像素点。x为第一像素点对应的变换后坐标,r
max
为预定部位长度,c为第一关键点的坐标,m为第二关键点的坐标。在本技术实施例中用户脸型图像和目标脸型图像处于相同的坐标系中,图中

表示由坐标原点指向相应的点的向量,为脸型变换前坐标原点指向第一像素点的向量,为脸型变换后坐标原点指向第一像素点的向量,为坐标原点指向第一关键点的向量,为坐标原点指向第二关键点的向量。
[0078]
步骤103:根据预设拉伸系数及待调节区域中各像素点对应的变换后坐标,分别对用户脸型图像中上述各像素点进行拉伸变换。
[0079]
本技术实施例对待调节区域进行局部平移变形,其原理为将待调节区域的圆心(即第一关键点)拉伸到目标脸型图像中的第二关键点,将待调节区域的圆周及圆内的任意一点变换到目标脸型图像中的相应点上。每个点的坐标通过局部平移调整为变换后坐标。本技术实施例在实际计算过程中使用的是逆变换算法,基于目标脸型图像能够得知待调节区域对应的变换后的区域,对于变换后的区域中任意一点的坐标,即为已知的变换后坐标,根据已知的变换后坐标,通过公式(1)所示的逆变换算法能够计算出对应的变换前坐标。基于用户脸型图像能够获得该变换前坐标处的像素值,将用户脸型图像中变换后坐标处的像素值替换为变化前坐标处的像素值,即实现了将变换前坐标处的像素点拉伸至变换后坐标处的效果。对每个第一关键点对应的待调节区域中的各像素点都进行拉伸变换,即实现了将用户脸型图像中的脸型调整为目标脸型图像中的脸型。
[0080]
为了减少因拉伸幅度过大导致脸型变换后不自然的情况发生,本技术实施例在上述公式(1)所示的逆变换算法的基础上进行了改进,通过改进后的逆变换算法来对各像素点进行拉伸变换。首先对公式(1)所示的逆变换公式进行变型,得到公式(2):
[0081][0082]
当x位于m的位置处时,基于此由公式(2)推导出公式(3):
[0083][0084]
此处所说的x位于m的位置处,是为了简化公式而讨论的情形,x和m并不代表实际意义,仅用于标识脸型变换后的任一坐标点。
[0085]
本技术实施例中,将公式(3)中的改造为并用幅度控制系数infect来表示从而得到公式(4):
[0086][0087]
在公式(4)中,infect为幅度控制系数,curve为预设拉伸系数。预设拉伸系数curve用于控制每个像素点的拉伸幅度,避免拉伸幅度过大导致脸型变换不自然。
[0088]
将公式(4)应用于本技术实施例中的脸型变换,从公式(4)中可以看出,为将用户脸型图像中的第一关键点拉伸到目标脸型图像中的第二关键点的拉伸距离,为变换前坐标与拉伸距离的相关曲线,其中curve的取值大小影响该曲线的曲率。
[0089]
其中,infect∈[0,1]。当时,即位于圆周上的点不移动。当时,即将变换前坐标u移动到目标脸型图像中的第二关键点m。当
时,移动距离为
[0090]
由于待调节区域为圆形区域,上述公式(4)所示的改进后的逆变换算法是在圆形区域内进行图像的平移变形处理。以第一关键点c为圆心拉伸,离圆心越近平移的距离越远,即越靠近圆心,变形越大,越靠近待调节区域的边界,变形越小。边界处无变形,变形是平滑的。预设拉伸系数curve影响变换前坐标与拉伸距离之间的相关曲线的曲率,curve越大,拉伸变形越圆润平滑,curve越小,拉伸变形越突兀尖锐。如果调整过大会产生不自然的效果。本技术实施例中预设拉伸系数curve可以取0.6、0.7或0.8等,本技术实施例不限制预设拉伸系数curve的取值,实际应用中可根据对拉伸自然效果的需求来设定。
[0091]
本技术实施例采用上述公式(4)所示的改进后的逆变换算法,具体通过如下步骤a1-a3的操作来对各像素点进行拉伸变换,包括:
[0092]
a1:根据预设拉伸系数、预定部位长度、第一关键点、第二关键点及第一像素点对应的变换后坐标,计算第一像素点对应的变换前坐标,第一像素点为待调节区域中的任一像素点。
[0093]
首先根据预设拉伸系数、预定部位长度、第一关键点及第一像素点对应的变换后坐标,计算第一关键点对应的幅度控制系数。预设拉伸系数用于控制第一像素点对应的拉伸幅度。即通过如下公式(5)来计算第一关键点对应的幅度控制系数。
[0094][0095]
在公式(5)中,infect为幅度控制系数,curve为预设拉伸系数,x为第一像素点对应的变换后坐标,r
max
为预定部位长度,c为第一关键点的坐标。
[0096]
然后计算第一关键点与第二关键点之间的拉伸距离将拉伸距离与幅度控制系数的乘积确定为第一像素点对应的拉伸幅度将拉伸幅度代入公式(4)中,计算第一像素点对应的变换后坐标与拉伸幅度之间的差值,将该差值确定为第一像素点对应的变换前坐标。
[0097]
a2:根据用户脸型图像和第一像素点对应的变换前坐标,确定变换前坐标对应的像素值。
[0098]
从用户脸型图像中确定出第一像素点对应的变换前坐标所处的位置,将该位置处的像素点的像素值作为该变换前坐标对应的像素值。然后利用该像素值通过步骤a3对第一像素点进行拉伸变换。
[0099]
由于上述直接利用变换前坐标处的像素点的像素值进行步骤a3的像素拉伸操作,可能存在拉伸后像素点的像素值与周围相邻的像素值之间差别较大,形成锯齿状的视觉效
果,造成脸型变换失真的情况。为了避免这种情况发生,本技术实施例还可以不直接利用变换前坐标处的像素点的像素值,而是从用户脸型图像中获取第一像素点对应的变换前坐标相邻的每个像素点的像素值;对相邻的每个像素点的像素值进行插值计算,得到变换前坐标对应的像素值。其中,插值计算可以采用最近邻插值法、双线性插值法或双三次差值法等常规插值算法。
[0100]
a3:将结果图像中变换后坐标处的像素点的像素值修改为用户脸型图像中变换前坐标对应的像素值。
[0101]
通过步骤a2中任一方式获得第一像素点对应的变换前坐标对应的像素值后,将结果图像中第一像素点对应的变换后坐标处的像素点的像素值修改为变换前坐标对应的像素值,从而实现将第一像素点从变换前坐标拉伸到变换后坐标处。
[0102]
对第一关键点对应的待调节区域中的每个像素点,都按照上述步骤a1-a3的操作分别对每个像素点进行拉伸变换,就实现了对第一关键点对应的待调节区域的局部平移变形。对于步骤101中获取的用户脸型图像中的预设数目个第一关键点中的其他每个第一关键点,都按照上述步骤102和103的操作分别对每个第一关键点对应的待调节区域进行局部平移变形,就完成了对用户脸型图像的脸型变换,实现将用户脸型图像中的脸型变换成了目标脸型图像中的脸型。
[0103]
上述脸型变换过程中,给定了第一关键点的数目,通过对每个第一关键点对应的待调节区域进行局部平移变形即可实现脸型变换。且在变换过程中通过预设拉伸系数计算了每个第一关键点对应的幅度控制系数,通过该幅度控制系数实现对第一关键点对应的待调节区域内每个像素点的拉伸幅度的控制,避免拉伸幅度过大导致不自然的脸型变换效果。该脸型变换过程适用于任意两种脸型之间的变换场景,即便对于不对称的脸型变换也适用,只要给定用户脸型图像和目标脸型图像,即可将用户脸型图像的脸型调整为目标脸型图像中的脸型,脸型变换准确性高,效果更自然,适用性更强。
[0104]
在本技术的另一些实施例中,为了进一步避免因拉伸幅度过大导致不自然的变形效果的情况发生,还可以引入衰减系数,通过衰减系数对拉伸幅度进行进一步的衰减限制。具体地,在执行步骤103之前,计算将第一关键点拉伸至第二关键点的拉伸距离。拉伸距离可以通过如下公式(6)来计算:
[0105][0106]
在公式(6)中,di为第i个第一关键点对应的拉伸距离,为第i个第一关键点的坐标向量,为第i个第一关键点对应的第二关键点的坐标向量,(x
i1
,y
i1
)为第i个第一关键点的坐标,(x
i2
,y
i2
)为第i个第一关键点对应的第二关键点的坐标。
[0107]
根据该拉伸距离,确定第一关键点对应的衰减系数。本技术实施例中可以用lamba_arr表示衰减系数。本技术实施例中预先设置了不同的距离区间,拉伸距离属于不同的距离区间时对应的衰减系数不同。具体地,拉伸距离属于不同距离区间时衰减系数的计算方式如公式(7)所示:
[0108][0109]
通过上述公式(6)计算出第一关键点对应的拉伸距离之后,确定拉伸距离所属的距离区间,然后按照上述公式(7)采用其所属的距离区间对应的计算方式计算出第一关键点对应的衰减系数。
[0110]
通过上述方式确定出第一关键点对应的衰减系数之后,根据该衰减系数、第一关键点和第二关键点,计算衰减后的第二关键点。具体可以通过如下公式(8)来计算引入衰减系数之后的第二关键点:
[0111]
m’i
(x’i2
,y’i2
)=ci(x
i1
,y
i1
)+lamda_arr*(mi(x
i2
,y
i2
)-ci(x
i1
,y
i1
))

(8)
[0112]
在公式(8)中,m’i
(x’i2
,y’i2
)为引入衰减系数之后第i个第一关键点对应的第二关键点,ci(x
i1
,y
i1
)为第i个第一关键点,mi(x
i2
,y
i2
)为引入衰减系数之前第i个第一关键点对应的第二关键点,lamba_arr为衰减系数。
[0113]
通过上述公式(8)计算出引入衰减系数之后的第二关键点,然后执行步骤103,将衰减后的该第二关键点代入公式(4)中,计算出引入衰减系数后第一像素点对应的变换前坐标。然后利用该变换前坐标对第一像素点进行拉伸变形。
[0114]
图3中所示为不加衰减系数进行脸型变换的效果示意图,图4所示为加衰减系数进行脸型变换的效果示意图,图3和图4中左侧的人脸图像均为用户脸型图像,中间的人脸图像均为目标脸型图像,右侧的人脸图像均为脸型变换后的效果图。从图3和图4中的效果图进行对比,可以看出加入衰减系数之后脸型变换的效果图中脸部更加自然,效果更好。
[0115]
在本技术实施例中,衰减系数是根据第一关键点对应的拉伸距离自动计算出来的,通过该衰减系数对像素点的拉伸幅度进行衰减限制,不会产生拉伸幅度过大等不自然的拉伸效果,适应性和灵活性更高,从而使本技术实施例的脸型变换方式能够广泛适用于各种需要脸型变换的场景。
[0116]
在本技术的另一些实施例中,通过上述公式(4)计算第一像素点对应的变换前坐标,该变换前坐标可能会落在用户脸型图像中用户脸部边界之外,在这种情况下若直接获取该变换前坐标对应的像素值,并利用获得的像素值对第一像素点进行拉伸,则会出现不应该存在的伪纹理,导致脸型变换后的用户脸型图像失真。为了避免这种伪纹理状况产生,本技术实施例还可以在执行步骤103之前,先在用户脸型图像中,对脸部边界的左右两侧分别进行预设宽度的像素镜像填充处理,对脸部边界的下侧进行预设高度的像素镜像填充处理。其中,预设宽度可以为一倍或两倍等倍数的预定部位长度,预设高度可以为两倍或三倍等倍数的预定部位长度。
[0117]
具体地,对于脸部边界左侧,如图5所示,延脸部的宽度方向,从左至右进行像素镜像填充。像素镜像填充是指,对于同一行的像素点的像素值都采用该行右侧与用户的头像边界相接位置处的像素点的像素值,同一行的像素点用相同的像素值进行填充。同样地,对于脸部边界右侧,如图5所示,延脸部的宽度方向,从右至左进行像素镜像填充,对于同一行的像素点的像素值都采用该行左侧与用户的头像边界相接位置处的像素点的像素值。对于脸部边界下侧,如图5所示,延脸部的高度方向,从上到下进行像素镜像填充,对于同一列的
像素点的像素值都采用该列上侧与用户头像边界相接位置处的像素点的像素值。
[0118]
通过上述像素镜像填充处理之后,对于通过公式(4)计算的任意像素点对应的变换前坐标,即便计算的变换前坐标落在了用户脸型图像中用户脸部边界之外,该变换前坐标对应的像素值仍然是用户脸部边界以内的像素值,利用该变换前坐标对应的像素值对像素点进行拉伸变换,不会出现实际不应存在的伪纹理,避免因计算的变换前坐标落在用户脸部边界外导致的脸型变换失真。
[0119]
通过上述方式对用户脸型图像中各待调节区域中的像素点进行拉伸变换之后,再将用户脸型图像中通过上述镜像像素填充而成的部分图像删除,即删除用户脸型图像中左右两侧及下侧填充的部分图像。如此脸型变换完成后再将填充的部分图像裁去,能够保证最终得到的脸型变换效果图与原来的用户脸型图像的分辨率相同。
[0120]
在本技术的另一些实施例中,也可以不在脸型变换之前就对所有用户脸型图像采取上述镜像像素填充处理。而是先执行步骤103的操作,通过公式(4)计算像素点对应的变换前坐标,若该变换前坐标落在用户脸部边界之内,则按照步骤103的操作完成对该像素点的拉伸变形。若计算的变换前坐标落在用户脸部边界之外,则采取上述镜像像素填充的方式来避免出现伪纹理。
[0121]
具体地,在计算的变换前坐标落在用户脸部边界之外时,首先确定该变换前坐标与脸部边界之间的方位关系,该方位关系用于指示变换前坐标位于脸部边界的左侧、右侧或下侧。然后在用户脸型图像中,对该方位关系所指示的脸部边界的一侧进行像素镜像填充处理。即若计算的变换前坐标落在脸部边界左侧,则在用户脸型图像中对脸部边界左侧进行预设宽度的像素镜像填充。若变换前坐标落在脸部边界的右侧,则对脸部边界右侧进行预设宽度的像素镜像填充。若变换前坐标落在脸部边界下侧,则对脸部边界下侧进行预设高度的像素镜像填充。
[0122]
通过上述像素镜像填充操作后,根据填充处理后的所述用户脸型图像,执行确定变换前坐标对应的像素值的操作。即执行上文中步骤a2和a3的操作来对像素点进行拉伸操作。如此能够确保该变换前坐标对应的像素值仍然是用户脸部边界以内的像素值,利用该变换前坐标对应的像素值对像素点进行拉伸变换,不会出现实际不应存在的伪纹理,避免因计算的变换前坐标落在用户脸部边界外导致的脸型变换失真。
[0123]
在完成对像素点的拉伸操作后再将用户脸型图像中通过上述镜像像素填充而成的部分图像删除,以确保最终得到的脸型变换效果图与原来的用户脸型图像的分辨率相同。
[0124]
图6所示为采用本技术实施例提供的方法进行脸型变换的示意图,图6中左侧的图为用户脸型图像,中间的图为目标脸型图像,右侧的图为脸型变换后的效果图。从图6中可以看出在从较瘦的脸型变换为较胖的脸型时效果也非常自然。本技术实施例不仅可以做到瘦脸,对于将脸型调胖,或者从方脸变为圆脸,从圆脸变为瓜子脸等等,任意脸型之间的变换都适用,都能获得很自然的变形效果。
[0125]
在本技术实施例中,在用户脸型图像和目标脸型图像中选取了预设数目个关键点,基于选取的关键点确定出了待调节区域,通过改进的逆变换算法对待调节区域中各像素点的拉伸幅度进行了适当控制,能够适应各种脸型之间的相互变换。还增加了衰减系数,通过衰减系数对各像素点的拉伸幅度进一步限制,避免产生调整幅度过大导致拉伸效果不
自然的情况。在进行脸型变换之前还对用户脸型图像中脸部边界左右两侧及下侧进行像素镜像填充,避免脸型变换后出现伪纹理的问题。
[0126]
本技术实施例还提供一种脸型变换装置,该装置用于执行上述任一实施例提供的脸型变换方法。参见图7,该装置包括:
[0127]
获取模块701,用于从用户脸型图像中获取预定部位长度及位于脸部轮廓上的第一关键点,从目标脸型图像中获取第一关键点对应的第二关键点;
[0128]
确定模块702,用于根据预定部位长度、第一关键点及第二关键点,确定出第一关键点对应的待调节区域中各像素点对应的变换后坐标;
[0129]
变换模块703,用于根据预设拉伸系数及各像素点对应的变换后坐标,分别对用户脸型图像中各像素点进行拉伸变换。
[0130]
确定模块702,用于从用户脸型图像中确定出以第一关键点为圆心的第一圆形区域,将第一圆形区域作为第一关键点对应的待调节区域;根据所述预定部位长度、所述第一关键点的坐标、所述第二关键点的坐标及所述待调节区域中各像素点的坐标,分别计算所述各像素点对应的变换后坐标。
[0131]
变换模块703,用于根据预设拉伸系数、预定部位长度、第一关键点、第二关键点及第一像素点对应的变换后坐标,计算第一像素点对应的变换前坐标,第一像素点为待调节区域中的任一像素点;根据用户脸型图像和第一像素点对应的变换前坐标,确定变换前坐标对应的像素值;将结果图像中变换后坐标处的像素点的像素值修改为用户脸型图像中变换前坐标对应的像素值。
[0132]
变换模块703,用于根据预设拉伸系数、预定部位长度、第一关键点及第一像素点对应的变换后坐标,计算第一关键点对应的幅度控制系数;计算第一关键点与第二关键点之间的拉伸距离;将拉伸距离与幅度控制系数的乘积确定为第一像素点对应的拉伸幅度;计算第一像素点对应的变换后坐标与拉伸幅度之间的差值,将差值确定为第一像素点对应的变换前坐标。
[0133]
变换模块703,用于从用户脸型图像中获取第一像素点对应的变换前坐标相邻的每个像素点的像素值;对相邻的每个像素点的像素值进行插值计算,得到变换前坐标对应的像素值。
[0134]
获取模块701,用于对用户脸型图像进行人脸检测,识别出位于脸部轮廓上的所有人脸关键点;从识别出的所有人脸关键点中选择下巴关键点及镜像分布于脸部轮廓两侧的多个人脸关键点;将选择出的下巴关键点及镜像分布的多个人脸关键点确定为用户脸型图像对应的第一关键点。
[0135]
该装置还包括:衰减模块,用于计算将第一关键点拉伸至第二关键点的拉伸距离;根据拉伸距离,确定第一关键点对应的衰减系数;根据衰减系数、第一关键点和第二关键点,计算衰减后的第二关键点。
[0136]
该装置还包括:镜像填充模块,用于在用户脸型图像中,对脸部边界的左右两侧分别进行预设宽度的像素镜像填充处理,对脸部边界的下侧进行预设高度的像素镜像填充处理。
[0137]
该装置还包括:删除模块,用于执行完变换模块703之后,在用户脸型图像中,将脸部边界左右两侧及下侧填充的部分图像删除。
[0138]
镜像填充模块,还用于若计算的变换前坐标位于用户脸型图像中脸部边界外面,则确定变换前坐标与脸部边界之间的方位关系,方位关系用于指示变换前坐标位于脸部边界的左侧、右侧或下侧;在用户脸型图像中,对方位关系所指示的脸部边界的一侧进行像素镜像填充处理;根据填充处理后的用户脸型图像,执行确定变换前坐标对应的像素值的操作。
[0139]
本技术的上述实施例提供的脸型变换装置与本技术实施例提供的脸型变换方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0140]
本技术实施方式还提供一种电子设备,以执行上述脸型变换方法。请参考图8,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图8所示,电子设备8包括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信接口803和存储器801通过总线802连接;所述存储器801中存储有可在所述处理器800上运行的计算机程序,所述处理器800运行所述计算机程序时执行本技术前述任一实施方式所提供的脸型变换方法。
[0141]
其中,存储器801可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0142]
总线802可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,所述处理器800在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述脸型变换方法可以应用于处理器800中,或者由处理器800实现。
[0143]
处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。
[0144]
本技术实施例提供的电子设备与本技术实施例提供的脸型变换方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0145]
本技术实施方式还提供一种与前述实施方式所提供的脸型变换方法对应的计算机可读存储介质,请参考图9,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供
的脸型变换方法。
[0146]
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0147]
本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的脸型变换方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0148]
需要说明的是:
[0149]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
[0150]
类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
[0151]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0152]
以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1