基于人脸的图像处理方法、终端及存储介质与流程

文档序号:16692554发布日期:2019-01-22 19:02阅读:175来源:国知局
基于人脸的图像处理方法、终端及存储介质与流程

本发明涉及图像处理领域,特别涉及一种基于人脸的图像处理方法、终端及存储介质。



背景技术:

随着网络技术的发展,用户对图像的要求也越来越高,在原来对画面进行简单记录的基础上,要求对呈现的图像进行美化,例如,用户想要对图像进行处理,使图像中的人脸变小。为了满足用户的需求,可以通过应用程序,对图像中的人脸进行处理。

目前,对图像中的人脸进行处理的方法为:在应用程序新版本的开发过程中,对该应用程序的相应功能模块的代码进行编译,通过编译代码来实现对相应规则的编译,将编译完成的代码打包成安装包发送至终端,终端重新安装该应用程序后,可以通过该应用程序检测人脸特征点,基于检测到的人脸特征点和应用程序开发过程中编译过的规则,并结合用户的需求,对图像中的人脸进行瘦脸或大眼等处理。

基于上述图像处理方法,为了使得应用程序具有相关人脸处理功能,需要对应用程序的相关代码进行编译,并在终端重新下载及安装该应用程序的新版本的安装包,该编译过程比较复杂,且终端需重新安装该应用程序,开发效率低且鲁棒性不好。



技术实现要素:

本发明实施例提供了一种基于人脸的图像处理方法、终端及存储介质,能够解决为了使已有的应用程序具有人脸处理功能,需要对相关代码进行编译,并在终端重新安装新版本的安装包才能对目标人脸进行处理的问题。所述技术方案如下:

一方面,提供了一种基于人脸的图像处理方法,所述方法包括:

获取第一图像,检测所述第一图像中的目标人脸的人脸特征点;

根据对所述目标人脸的特效处理类型,向服务器发送获取请求,所述获取请求携带所述特效处理类型;

接收目标配置文件,所述目标配置文件用于提供所述特效处理类型的处理逻辑;

基于所述目标配置文件中的处理逻辑和所述人脸特征点,对所述目标人脸进行处理,生成第二图像。

在一种可能实现方式中,所述基于所述目标配置文件中的处理逻辑和所述人脸特征点,对所述目标人脸进行处理,生成第二图像包括:

对所述目标配置文件中的所述处理逻辑进行解析,生成公式代码;

基于所述公式代码和所述人脸特征点,生成所述第二图像。

在一种可能实现方式中,所述对所述目标配置文件中的所述处理逻辑进行解析,生成公式代码包括:

读取所述目标配置文件中的所述处理逻辑中的辅助点生成逻辑,基于所述辅助点生成逻辑,生成第一公式代码;

读取所述目标配置文件中的所述处理逻辑中的点变换逻辑,基于所述点变换逻辑,生成第二公式代码。

在一种可能实现方式中,所述基于所述公式代码和所述人脸特征点,生成所述第二图像包括:

基于所述人脸特征点和第一公式代码,生成辅助点;

基于所述人脸特征点和所述辅助点,对所述目标人脸进行三角剖分,得到多个第一三角形;

基于所述人脸特征点、所述辅助点和第二公式代码,对所述人脸特征点和所述辅助点进行位置变换,得到多个第二三角形;

将所述多个第一三角形替换为所述多个第二三角形,生成所述第二图像。

在一种可能实现方式中,所述接收目标配置文件之后,所述方法还包括:

检验所述目标配置文件是否携带与所述特效处理类型相同的标识;

当所述目标配置文件携带与所述特效处理类型相同的标识时,则执行基于所述目标配置文件中的处理逻辑和所述人脸特征点,对所述目标人脸进行处理的步骤;

当所述目标配置文件不携带与所述特效处理类型相同的标识时,则向所述服务器发送目标配置文件错误信息。

在一种可能实现方式中,所述当所述目标配置文件不携带与所述特效处理类型相同的标识时,所述方法还包括:

显示提示窗口,所述提示窗口用于提示用户当前目标配置文件错误。

一方面,提供了一种基于人脸的图像处理装置,所述装置包括:

获取模块,用于获取第一图像,检测所述第一图像中的目标人脸的人脸特征点;

发送模块,用于根据对所述目标人脸的特效处理类型,向服务器发送获取请求,所述获取请求携带所述特效处理类型;

接收模块,用于接收目标配置文件,所述目标配置文件用于提供所述特效处理类型的处理逻辑;

处理模块,用于基于所述目标配置文件中的处理逻辑和所述人脸特征点,对所述目标人脸进行处理,生成第二图像。

在一种可能实现方式中,所述处理模块包括:

解析单元,用于对所述目标配置文件中的所述处理逻辑进行解析,生成公式代码;

生成单元,用于基于所述公式代码和所述人脸特征点,生成所述第二图像。

在一种可能实现方式中,所述解析单元用于:

读取所述目标配置文件中的所述处理逻辑中的辅助点生成逻辑,基于所述辅助点生成逻辑,生成第一公式代码;

读取所述目标配置文件中的所述处理逻辑中的点变换逻辑,基于所述点变换逻辑,生成第二公式代码。

在一种可能实现方式中,所述生成单元用于:

基于所述人脸特征点和第一公式代码,生成辅助点;

基于所述人脸特征点和所述辅助点,对所述目标人脸进行三角剖分,得到多个第一三角形;

基于所述人脸特征点、所述辅助点和第二公式代码,对所述人脸特征点和所述辅助点进行位置变换,得到多个第二三角形;

将所述多个第一三角形替换为所述多个第二三角形,生成所述第二图像。

在一种可能实现方式中,,所述装置还包括:

检验模块,用于检验所述目标配置文件是否携带与所述特效处理类型相同的标识;

执行模块,用于当所述目标配置文件携带与所述特效处理类型相同的标识时,则执行基于所述目标配置文件中的处理逻辑和所述人脸特征点,对所述目标人脸进行处理的步骤;

所述发送模块,还用于当所述目标配置文件不携带与所述特效处理类型相同的标识时,则向所述服务器发送目标配置文件错误信息。

在一种可能实现方式中,所述装置还包括:

显示模块,用于显示提示窗口,所述提示窗口用于提示用户当前目标配置文件错误。

一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述基于人脸的图像处理方法所执行的操作。

一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述基于人脸的图像处理方法所执行的操作。

本发明实施例提供的技术方案,基于在终端载入预设的目标配置文件,通过解析配置文件中预设的处理逻辑,对已有应用程序的版本进行改进,使得应用程序具有相应的图像处理功能,避免了对该应用程序进行重新编译,且无需重新下载安装包,即可快速满足用户的需求,大大节省了时间,提高了该应用程序的使用效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于人脸的图像处理方法的流程图;

图2是本发明实施例提供的一种基于人脸的图像处理方法的流程图;

图3是本发明实施例提供的一种人脸三角剖分图;

图4是本发明实施例提供的一种基于人脸的图像处理装置的结构示意图;

图5是本发明实施例提供的一种终端的结构框图;

图6是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种基于人脸的图像处理方法的流程图,该基于人脸的图像处理方法可以应用于任一种终端中。参见图1,该实施例具体包括:

101、获取第一图像,检测该第一图像中的目标人脸的人脸特征点。

102、根据对该目标人脸的特效处理类型,向服务器发送获取请求,该获取请求携带该特效处理类型。

103、接收目标配置文件,该目标配置文件用于提供该特效处理类型的处理逻辑。

104、基于该目标配置文件中的处理逻辑和该人脸特征点,对该目标人脸进行处理,生成第二图像。

在一些实施例中,上述基于该目标配置文件中的处理逻辑和该人脸特征点,对该目标人脸进行处理,生成第二图像包括:

对该目标配置文件中的该处理逻辑进行解析,生成公式代码;

基于该公式代码和该人脸特征点,生成该第二图像。

在一些实施例中,上述对该目标配置文件中的该处理逻辑进行解析,生成公式代码包括:

读取该目标配置文件中的该处理逻辑中的辅助点生成逻辑,基于该辅助点生成逻辑,生成第一公式代码;

读取该目标配置文件中的该处理逻辑中的点变换逻辑,基于该点变换逻辑,生成第二公式代码。

在一些实施例中,上述基于该公式代码和该人脸特征点,生成该第二图像包括:

基于该人脸特征点和第一公式代码,生成辅助点;

基于该人脸特征点和该辅助点,对该目标人脸进行三角剖分,得到多个第一三角形;

基于该人脸特征点、该辅助点和第二公式代码,对该人脸特征点和该辅助点进行位置变换,得到多个第二三角形;

将该多个第一三角形替换为该多个第二三角形,生成该第二图像。

在一些实施例中,上述接收目标配置文件之后,该方法还包括:

检验该目标配置文件是否携带与该特效处理类型相同的标识;

当该目标配置文件携带与该特效处理类型相同的标识时,则执行基于该目标配置文件中的处理逻辑和该人脸特征点,对该目标人脸进行处理的步骤;

当该目标配置文件不携带与该特效处理类型相同的标识时,则向该服务器发送目标配置文件错误信息。

在一些实施例中,上述当该目标配置文件不携带与该特效处理类型相同的标识时,该方法还包括:

显示提示窗口,该提示窗口用于提示用户当前目标配置文件错误。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2是本发明实施例提供的一种基于人脸的图像处理方法的流程图,该基于人脸的图像处理方法可以应用于任一种终端中。参见图2,该实施例具体包括:

201、终端获取第一图像,检测该第一图像中的目标人脸的人脸特征点。

在本发明实施例中,终端上可以安装有具有图像处理能力的应用程序,其中,该应用程序可以用于处理静态图像,也可以用于处理动态图像。例如,该应用程序可以为修图应用程序,通过该修图应用程序,可以获取终端中已存储的静态图像进行处理,也可以实时拍摄静态图像,对该拍摄的图像进行处理。此外,该应用程序还可以为直播应用程序或短视频录制应用程序,基于直播应用程序实时获取到的每一帧图像进行处理,或在短视频录制过程中,对该短视频录制应用程序获取到的每一帧图像进行处理。上述应用程序获取到的静态图像或实时获取到的每一帧图像,即为本发明实施例中的第一图像。

例如,下面介绍一种检测人脸特征点的实现方式,通过上述应用程序获取到该第一图像之后,基于该第一图像,首先,进行人脸检测,检测出该第一图像中存在的目标人脸,并将该第一图像中的目标人脸的位置用人脸框表示出来。然后,在人脸检测的基础上,将上述人脸框与预设的人脸数据集进行对比,该人脸数据集中预存了大量的图像样本,该大量的图像样本给出了目标人脸的人脸框的位置及人脸特征点的坐标,基于该人脸数据集,可以得到第一图像的人脸框中的人脸特征点的相对位置,进而,将上述第一图像中检测到的目标人脸的人脸框与该人脸数据集中的人脸框进行对比,预测出该第一图像中的人脸框中的人脸特征点的坐标位置。

其中,该人脸检测过程可以通过人脸检测算法实现,例如,可以通过卷积神经网络算法对该第一图像进行人脸检测,得到目标人脸的人脸框。需要说明的是,本发明对人脸检测方式和人脸特征点的检测方式不做限定。

202、终端根据对该目标人脸的特效处理类型,向服务器发送获取请求,该获取请求携带该特效处理类型。

在本发明实施例中,终端上的应用程序的用户操作界面显示有多个可以选择的特效处理类型,该特效处理类型为可以对上述第一图像中的目标人脸进行的变形类型,例如,该特效处理类型可以为“瘦脸”、“瘦鼻”以及“大眼”等等,用户可以根据自己的需求选择合适的特效处理类型,例如,用户想要使上述第一图像中的目标人脸变小,则可以在应用程序中对该第一图像选择“瘦脸”这一类型选项。

终端基于用户选择的对目标人脸的特效处理类型,向服务器发送相应的获取请求,该获取请求携带该特效处理类型,且该获取请求用于终端向服务器请求获取存储在服务器中的目标配置文件。需要说明的是,基于该获取请求中携带的不同的特效处理类型,可以请求获取与不同的特效处理类型对应的不同的目标配置文件。

203、服务器基于该获取请求向终端发送目标配置文件,该目标配置文件用于提供该特效处理类型的处理逻辑。

在本发明实施例中,在服务器上,对于每一种特效处理类型均设置了相应的目标配置文件,该目标配置文件可以通过电脑端的配置工具进行编辑,该配置工具的操作界面有多个设置选项、文本框及编辑页面,其中,该多个设置选项包括目录选项、类别选项及图像载入选项等,该文本框用于编辑该特效处理类型的处理逻辑。

具体地,下面对于该目标配置文件的生成过程(1)-(7)进行详细介绍:

(1)开发人员可以通过该配置工具中的目录选项,对该目标配置文件的存储路径进行设置,例如,可以设置该目标配置文件的存储路径为:d:/config/01.data;

(2)开发人员可以通过该配置工具中的类别选项,对该目标配置文件对应的特效处理类型进行设置,例如,该目标配置文件是对“瘦脸”这一特效处理类型进行配置的,因此,可以在该类别选项对应的文本框中输入“thin_face”,当然,还可以在该类别选项对应的文本框中输入其他可以标识该特效处理类型的文本,本发明在此不做一一限定;

(3)开发人员可以在该配置工具中的图像载入选项对应的文本框中输入预处理图像的存储路径,并通过该图像载入选项,使得该预处理图像载入该配置工具中,其中,该预处理图像为样本图像,用于在该配置工具中作为样本对相应的特效处理类型进行示例性的设置,该配置工具将载入的该预处理图像处理为rgba图像数据;

(4)利用人脸数据库对该预处理图像的rgba图像数据进行检测,得到该预处理图像中的目标人脸的n个人脸特征点,可以设定该多个人脸特征点用a1、a2、a2…an进行表示;

(5)开发人员可以基于上述n个人脸特征点a1、a2、a3…an,编辑辅助点生成逻辑,该辅助点生成逻辑用于生成与该n个人脸特征点对应的m个辅助点,其中,生成的该辅助点的数量可以与该人脸特征点的数量相同,也可以大于或小于该人脸特征点的数量,本发明对辅助点的数量在此不做限定。具体地,可以设定与该n个人脸特征点a1、a2、a3…an对应的m个辅助点为b1、b2、b3…bm,开发人员可以在该配置工具的编辑页面的文本框中输入每个辅助点的数学计算公式,由于每个辅助点都是基于一个或多个人脸特征点计算得来的,因此,该每个辅助点的数学计算公式为关于上述n个人脸特征点a1、a2、a3…an的坐标的数学函数,该数学函数可以表示为bi=f(ai),其中,ai表示人脸特征点的坐标,bi表示辅助点的坐标,f表示bi与ai之间的映射关系。需要说明的是,上述数学函数为自定义的算法,也即是,上述m个辅助点的数学计算公式可以由开发人员设定,该每个辅助点ai的数学计算公式可以相同,当然,也可以对每个辅助点bi都设定不同的数学计算公式,例如,可以定义上述每个辅助点bi关于ai的数学计算公式为bi=(ai+ai+1)/2,即b1=(a1+a2)/2、b2=(a2+a3)/2…bi=(ai+ai+1)/2,本发明在此对每个辅助点bi坐标的数学计算公式不做一一限定;

(6)开发人员可以基于上述n个人脸特征点a1、a2、a3…an的坐标或上述辅助点b1、b2、b3…bm的坐标,编辑点变换逻辑,该点变换逻辑用于生成基于人脸特征点或辅助点变换后的点c1、c2、c3…cp的坐标。其中,上述变换后的点是基于n个人脸特征点和m个辅助点中的一个或多个点生成的,例如可以基于j个特征点(j<=n)和i个辅助点(i<=m),通过点变换逻辑,生成变换后的点。具体地,开发人员可以在该配置工具的编辑页面的文本框中输入变换后的点c1、c2、c3…cp的坐标的数学计算公式,由于用户在对目标人脸进行处理时,可以对目标人脸进行多方位的处理,也即是,该变换后的点可以由人脸特征点变换得到,也可以由辅助点变换得到,因此,变换后的点ci的坐标可以是人脸特征点ai的数学函数,也可以是辅助点bi的数学函数,也即是,该数学函数可以为ci=f(ai),也可以为ci=f(bi)。该数学函数为自定义的算法,以基于人脸特征点a1变换后得到点c1为例,可以设定该变换后的点c1的坐标的数学计算公式为c1=a1+vec1,其中,a1表示人脸特征点的坐标,vec1表示相对坐标,c1表表示在a1和vec1的基础上得到的变换后的点的坐标,例如,vec1可以为(2,0),即表示将点a1向x轴正方向移动2个单位距离得到变换后的点c1的坐标,本发明在此对变换后的点c1、c2、c3…cp的数学计算公式不做一一限定;

(7)将上述所有步骤在该配置工具中编辑完成,即得到相应的目标配置文件,需要说明的是,关于上述辅助点生成逻辑和点变换逻辑,需要将目标人脸对应的所有的辅助点的计算公式,以及所有的变换后的点的计算公式都一一的编辑在该目标配置文件中。

上述目标配置文件编辑完成后,电脑端将该完成的目标配置文件上传至服务器中,该目标配置文件以hashmap表的形式保存在服务器中,该hashmap表为基于哈希表的map接口,该接口用于获取相应的目标配置文件,该hashmap表中记录了多个键值对(key:value),在本发明实施例中,该多个键值对为特效处理类型和目标配置文件的映射,例如,在“瘦脸”这一特效处理类型中,key值即为“瘦脸”,则其对应的目标配置文件的hashmap表中的键值对可以表示为(瘦脸:01.data),当然每个目标配置文件对应的hashmap表中的键值对中的具体信息还可以用其他文本表示,本发明在此不做限定。

需要说明的是,本发明实施例对于上述所涉及的多个人脸特征点、多个辅助点及多个变换后的点的表示方式不做限定。

基于预处理图像,开发人员可以在电脑端的配置工具中针对多种特效处理类型分别编辑目标配置文件,并将该多种特效处理类型对应的目标配置文件都以hashmap表的形式存储在服务器中。

上述在服务器中存储各种特效处理类型的hashmap表之后,基于终端向服务器发送的获取请求中携带的特效处理类型,遍历该服务器中存储的所有hashmap表中的key值,找到与该特效处理类型相同的key值,并通过该key值对应的hashmap表获取到相应的目标配置文件,将该目标配置文件发送到终端。

需要说明的是,用户首次在终端上的该应用程序中使用该项特效处理类型时,需要从服务器中获取该项特效处理类型对应的目标配置文件,此过程需联网。将该目标配置文件载入应用程序后,再次使用该项特效处理类型时,终端会基于该项特效处理类型校验到终端中已存储了对应的目标配置文件,则无需再次向服务器发送相应的获取请求。

204、终端接收到服务器发送的该目标配置文件之后,检验该目标配置文件是否携带与该特效处理类型相同的标识,如果是,则执行步骤207,如果否,则执行步骤205和步骤206。

在本发明实施例中,终端上的用户对目标人脸选择特效处理类型后,终端会自动保存当前正在进行的特效处理类型,例如,用户对目标人脸选择进行“瘦脸”这一特效处理类型,则终端会存储“thin_face”这一类型标识,以表示当前正在进行“瘦脸”这一操作。当终端接收到服务器发送的该目标配置文件之后,基于终端中存储的特效处理类型,与该目标配置文件携带的标识对比,校验终端中存储的该特效处理类型与该目标配置文件携带的标识是否相同。

在本发明实施例中,以“瘦脸”这一特效处理类型为例,终端中当前存储了“thin_face”这一类型标识,基于“thin_face”与终端接收到的目标配置文件携带的特效标识进行对比,当该“thin_face”类型标识与该目标配置文件携带的特效标识相同时,则执行步骤207;当该“thin_face”类型标识与该目标配置文件携带的特效标识不相同时,则执行步骤205和步骤206。

上述步骤204终端对接收到的目标配置文件进行检验的过程,基于检验的结果分别执行以下不同的步骤。

205、终端向该服务器发送目标配置文件错误信息。

在本发明实施例中,当终端当前存储的特效处理类型与终端接收到的目标配置文件携带的标识不相同时,则说明终端接收到的目标配置文件与用户在终端选择的特效处理类型不匹配。此时,终端向该服务器发送目标配置文件错误信息,该错误信息中可以包括当前选择的特效处理类型以及终端接收到的错误的目标配置文件中携带的标识等。

上述终端接收到的目标配置文件与终端存储的特效处理类型不匹配,可能是由于将目标配置文件以hashmap表的形式保存在服务器的过程中,该目标配置文件对应的hashmap表设置错误等原因,因此,该方法还包括:终端将接收到的每个与特效处理类型不匹配的目标配置文件的错误信息都上传到服务器中,服务器对该错误信息进行统计并保存,由开发人员定期对服务器中保存的hashmap表以及该错误信息进行检查并处理,以对相应的目标配置文件及其hashmap表进行更新,进而,使得终端的应用程序不断得到完善,使用效率更高。

206、终端显示提示窗口,该提示窗口用于提示用户当前目标配置文件错误。

在本发明实施例中,当终端当前存储的特效处理类型与终端接收到的目标配置文件携带的标识不相同时,终端向服务器发送目标配置文件错误信息的同时,还可以显示提示窗口,例如,终端当前的界面弹出标有“当前功能暂时无法使用”的提示窗口,用于提示用户当前的特效处理类型在配置过程中出现了错误,暂时无法对目标人脸进行相关处理,防止用户在不知道目标配置文件发生错误的情况下,反复对该特效处理类型进行选择。

需要说明的是,上述步骤205至步骤206为当该目标配置文件不携带与该特效处理类型相同的标识时的解决方法,对于上述步骤205和步骤206,本发明实施例是以终端向服务器发送目标配置文件错误信息和终端显示提示窗口同时进行的实施顺序进行说明的。在其他实施例中,还可以先执行步骤205,再执行步骤206,或者,先执行步骤206,再执行步骤205,本发明实施例对步骤205和步骤206的实施顺序在此不做限定。

207、终端读取该目标配置文件中的辅助点生成逻辑,基于该辅助点生成逻辑,生成第一公式代码。

在本发明实施例中,当检验到终端中存储的当前的特效处理类型与终端接收到的该目标配置文件携带的标识相同时,终端则对该目标配置文件中的信息进行解析。基于步骤203可知,该目标配置文件中存储了基于预处理图像的辅助点生成逻辑以及点变换逻辑等信息,其中,该辅助点生成逻辑即为基于人脸特征点坐标生成每个辅助点坐标的数学计算公式,该点变换逻辑即为基于人脸特征点坐标和辅助点坐标生成每个变换后的点坐标的数学计算公式。

由于在该目标配置文件中,该辅助点生成逻辑和该点变换逻辑都是简单的数学公式,且是基于预处理图像中的目标人脸进行的示例性处理,因此,需要将该数学公式转换为终端中应用程序能够识别的代码形式。

在本发明实施例中,终端需要对该目标配置文件中的辅助点生成逻辑进行解析,将读取到的该辅助点生成逻辑对应的每个辅助点坐标的数学计算公式转换为代码形式的数学公式,即第一公式代码。

需要说明的是,对该目标配置文件中的辅助点生成逻辑进行解析后,每个辅助点坐标都对应一个第一公式代码。

208、终端读取该目标配置文件中的点变换逻辑,基于该点变换逻辑,生成第二公式代码。

在本发明实施例中,基于上述步骤207,终端还需要对该目标配置文件中的点变换逻辑进行解析,将读取到的该点变换逻辑对应的每个变换后的点坐标的数学计算公式转换为代码形式的数学公式,即第二公式代码。

需要说明的是,对该目标配置文件中的点变换逻辑进行解析后,每个变换后的点坐标都对应一个第二公式代码。

上述步骤207至步骤208为对该目标配置文件中的处理逻辑进行解析,生成公式代码的过程。

209、终端基于该人脸特征点和第一公式代码,生成辅助点。

在本发明实施例中,基于步骤201中检测到的第一图像中的人脸特征点的坐标,以及步骤207中生成的第一公式代码,终端对每个人脸特征点的坐标根据其对应的第一个公式代码进行相应的计算,得到每个人脸特征点对应的辅助点的坐标。

210、终端基于该人脸特征点和该辅助点,对该目标人脸进行三角剖分,得到多个第一三角形。

在本发明实施例中,终端基于得到的多个离散的人脸特征点和辅助点,根据三角剖分算法,将该多个人脸特征点和辅助点连接为多个小三角形,即多个第一三角形,如图3,最终将该目标人脸剖分成不均匀的三角形网络。例如,可以通过delaunay三角剖分算法,对目标人脸进行剖分,将目标人脸对应的曲面剖分成多个第一三角形。

211、终端基于该人脸特征点、该辅助点和第二公式代码,对该人脸特征点或该辅助点进行位置变换,得到多个第二三角形。

在本发明实施例中,基于该目标人脸的每一个人脸特征点和每一个辅助点的多种可能变换方式,都预先设置了相应的第二公式代码,例如,在目标配置文件中,对于每个人脸特征点,设置三种可移动的方向,基于每个人脸特征点的这三种可移动的方向都编辑相应的数学计算公式,终端解析该数学计算公式得到每个人脸特征点在这三种可移动方向上的第二公式代码。当用户基于自身需求,对目标人脸进行变形操作时,终端检测到用户的操作指令,并调取与用户的该操作指令对应的移动方向最相近的第二公式代码,以及与用户想要对目标人脸进行操作的目标点最相近的人脸特征点或辅助点,基于该最相近的第二公式代码和该最相近的人脸特征点或辅助点,对该人脸特征点或辅助点进行位置变换,根据三角剖分算法,变换后的点与未发生变换的点相连,形成多个新的三角形,即将目标人脸重新三角剖分为多个第二三角形。

212、终端将该多个第一三角形替换为该多个第二三角形,生成该第二图像。

在本发明实施例中,根据用户的操作,终端对相应的人脸特征点或辅助点进行位置变换后得到多个第二三角形后,用该多个第二三角形替换原来的多个第一三角形,得到新的目标人脸,即第二图像。

需要说明的是,上述对目标人脸进行三角剖分,是为了对某个人脸特征点或辅助点进行位置变换时,使得与被变换的点相关的第一三角形都发生相对变化,进而,使得变化后的目标人脸不失真。此外,对每个人脸特征点设置相应的辅助点,而不是直接基于多个人脸特征点进行三角剖分,是为了对目标人脸进行三角剖分后可以得到更多较小的第一三角形,进而,使得用户对目标人脸进行每一步操作时,目标人脸的变化更加连贯自然,不会使得到的第二图像发生断层等现象,也即是,使得该第二图像更加真实。

上述步骤209至步骤212即为基于公式代码和第一图像中的人脸特征点,生成第二图像的过程。

总体上,上述步骤207至步骤212即为基于该目标配置文件中的处理逻辑和第一图像中的人脸特征点,对目标人脸进行处理,生成第二图像的过程。

本发明实施例提供的技术方案,基于在终端载入预设的目标配置文件,通过解析目标配置文件中预设的处理逻辑,对已有应用程序的版本进行改进,使得应用程序具有相应的图像处理功能,避免了对该应用程序进行重新编译,且无需重新下载安装包,即可快速满足用户的需求,大大节省了时间,提高了该应用程序的使用效率。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图4是本发明实施例提供的一种基于人脸的图像处理装置的结构示意图。参见图4,该装置包括:获取模块401、发送模块402、接收模块403、处理模块404。

获取模块401,用于获取第一图像,检测该第一图像中的目标人脸的人脸特征点;

发送模块402,用于根据对该目标人脸的特效处理类型,向服务器发送获取请求,该获取请求携带该特效处理类型;

接收模块403,用于接收目标配置文件,该目标配置文件用于提供该特效处理类型的处理逻辑;

处理模块404,用于基于该目标配置文件中的处理逻辑和该人脸特征点,对该目标人脸进行处理,生成第二图像。

在一些实施例中,该处理模块404包括:

解析单元,用于对该目标配置文件中的该处理逻辑进行解析,生成公式代码;

生成单元,用于基于该公式代码和该人脸特征点,生成该第二图像。

在一些实施例中,该解析单元用于:

读取该目标配置文件中的该处理逻辑中的辅助点生成逻辑,基于该辅助点生成逻辑,生成第一公式代码;

读取该目标配置文件中的该处理逻辑中的点变换逻辑,基于该点变换逻辑,生成第二公式代码。

在一些实施例中,该生成单元用于:

基于该人脸特征点和第一公式代码,生成辅助点;

基于该人脸特征点和该辅助点,对该目标人脸进行三角剖分,得到多个第一三角形;

基于该人脸特征点、该辅助点和第二公式代码,对该人脸特征点和该辅助点进行位置变换,得到多个第二三角形;

将该多个第一三角形替换为该多个第二三角形,生成该第二图像。

在一些实施例中,该装置还包括:

检验模块,用于检验该目标配置文件是否携带与该特效处理类型相同的标识;

执行模块,用于当该目标配置文件携带与该特效处理类型相同的标识时,则执行基于该目标配置文件中的处理逻辑和该人脸特征点,对该目标人脸进行处理的步骤;

该发送模块402,还用于当该目标配置文件不携带与该特效处理类型相同的标识时,则向该服务器发送目标配置文件错误信息。

在一些实施例中,该装置还包括:

显示模块,用于显示提示窗口,该提示窗口用于提示用户当前目标配置文件错误。

本发明实施例提供的技术方案,基于在终端载入预设的目标配置文件,通过解析目标配置文件中预设的处理逻辑,对已有应用程序的版本进行改进,使得应用程序具有相应的图像处理功能,避免了对该应用程序进行重新编译,且无需重新下载安装包,即可快速满足用户的需求,大大节省了时间,提高了该应用程序的使用效率。

需要说明的是:上述实施例提供的基于人脸的图像处理装置在基于人脸进行图像处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于人脸的图像处理装置与基于人脸的图像处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图5是本发明实施例提供的一种终端的结构框图。该终端500可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端500包括有:处理器501和存储器502。

处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本发明中方法实施例提供的基于人脸的图像处理方法。

在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。

外围设备接口503可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路504用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本发明对此不加以限定。

显示屏505用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。

定位组件508用于定位终端500的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件508可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源509用于为终端500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。

加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3d动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置终端500的正面、背面或侧面。当终端500上设置有物理按键或厂商logo时,指纹传感器514可以与物理按键或厂商logo集成在一起。

光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。

接近传感器516,也称距离传感器,通常设置在终端500的前面板。接近传感器516用于采集用户与终端500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

图6是本发明实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条指令,该至少一条指令由该处理器601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中基于人脸的图像处理方法。例如,该计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1