发明内容
基于此,有必要针对上述技术问题,提供一种能够解决人脸图像融合的方法、装置、计算机设备和存储介质。
一种人脸图像融合方法,所述方法包括:
获取待处理的用户图像和预存的人脸立体素材图像;
确定所述用户图像的融合区域;
根据所述用户图像中的人脸关键点信息和人脸立体素材图像中的人脸关键点信息对所述人脸立体素材图像进行形变,得到第一素材图像;
根据所述用户图像的融合区域的亮度信息获取对应的色彩映射表,根据所述色彩映射表对所述第一素材图像进行肤色调整,得到第二素材图像;
将所述用户图像和第二素材图像进行融合处理,得到目标图像。
在其中一个实施例中,所述确定所述用户图像的融合区域,包括:
根据所述用户图像的图像数据,进行掩码操作,得到所述用户图像的掩码信息;
根据所述用户图像的掩码信息对所述用户图像进行边缘检测得到所述用户图像的融合区域。
在其中一个实施例中,所述根据所述用户图像中的人脸关键点信息和人脸立体素材图像中的人脸关键点信息对所述人脸立体素材图像进行形变,得到第一素材图像,包括:
检测所述用户图像的人脸关键点和人脸立体素材图像中的人脸关键点;
基于人脸立体素材图像中的人脸关键点对所述人脸立体素材图像进行网格划分,得到包含多个网格的第一网格面,取所述第一网格面的各顶点信息生成第一网格顶点数组;所述第一网格顶点数组信息包括各顶点的第一位置信息、各个网格的第一色值信息和各个网格的第一纹理信息;
根据所述用户图像的人脸关键点信息、所述人脸立体素材图像中的人脸关键点信息和所述第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息;所述第二网格顶点数组信息包括第二位置信息、第一色值信息和第一纹理信息;
根据所述第二网格顶点数组信息得到第一素材图像。
在其中一个实施例中,所述根据所述用户图像的人脸关键点信息、所述人脸立体素材图像的人脸关键点信息和所述第一网格顶点组的各顶点信息的第一位置信息,进行坐标变换得到第二网格顶点组的各顶点信息的第二位置信息,包括:
对所述用户图像的人脸关键点信息进行曲线拟合,得到用户图像的拟合关键点信息,以及对所述人脸立体素材图像的人脸关键点信息进行曲线拟合得到人脸立体素材图像的拟合关键点信息;
根据所述用户图像的拟合关键点信息和所述用户图像的人脸关键点信息,得到第一组关键点;
根据所述人脸立体素材图像的拟合关键点信息和所述人脸立体素材图像的人脸关键点信息,得到第二组关键点;
获取所述第一组关键点的位置信息和第二组关键点的位置信息,根据所述第一组关键点的位置信息、所述第二组关键点的位置信息以及所述第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息。
在其中一个实施例中,所述根据所述用户图像的融合区域的亮度信息获取对应的色彩映射表,根据所述色彩映射表对所述第一素材图像进行肤色调整,得到第二素材图像,包括:
基于深度学习模型,根据所述用户图像的融合区域的图像掩码,得到第一肤色区域,以及根据所述第一素材图像的融合区域的图像掩码,得到第二肤色区域;
获取所述第一肤色区域的像素值,根据所述第一肤色区域的像素值得到所述第一肤色区域的亮度均值;
根据所述第一肤色区域的亮度均值从亮度与色彩映射表的对应关系中获取对应的色彩映射表,所述色彩映射表中记录有色值信息;
采用所述色彩映射表中的色值信息对所述第二肤色区域的色值进行更新,得到更新后的第二肤色区域的色值;
将更新后的第二肤色区域的色值信息存储到第二网格顶点数组,得到第三网格顶点数组;
根据所述第三网格顶点数组信息,得到第二素材图像。
在其中一个实施例中,所述将所述用户图像和第二素材图像进行融合处理,得到目标图像,包括:
获取所述用户图像的色值和所述第二素材图像的色值;
对所述用户图像的融合区域的色值和所述第二素材图像的色值信息进行色值混合计算,得到目标图像的融合区域的色值;
根据所述目标图像的融合区域的色值、所述用户图像非融合区域的色值以及所述第三网格顶点数组信息,得到目标图像。
在其中一个实施例中,所述人脸立体素材图像的纹理信息保持不变。
一种人脸图像融合装置,所述装置包括:
图像获取模块,用于获取用户图像和全脸立体素材图像;
区域确定模块,用于确定所述用户图像的融合区域;
形变模块,用于根据所述用户图像中的人脸关键点信息和全脸立体素材图像中的人脸关键点信息对所述全脸立体素材图像进行形变,得到第一素材图像;
调整模块,用于根据所述用户图像的融合区域的亮度信息和色彩映射表对所述第一素材图像进行肤色调整,得到第二素材图像;
融合模块,用于将所述用户图像和第二素材图像进行融合处理,得到目标图像。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述人脸图像融合方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述人脸图像融合方法的步骤。
上述人脸图像融合方法、装置、计算机设备和存储介质,根据人脸关键点信息采用网格划分的方式对人脸立体素材图像形变,得到第一素材图,使得第一素材图的个人脸部特征更加贴合用户图像的个人脸部特征;根据用户图像的亮度信息选择对应色彩映射表,根据色彩映射表的色值更新第一素材图像的肤色区域的色值,得到第二素材图像,使得变化后的素材图像的肤色与用户图像的肤色差小于预设值;根据存储的数组信息,将第二素材图像与用户图像进行融合处理。其中,人脸素材图像的经过形变和肤色调整,使得变化后的人脸素材图像与用户图像的融合度较高,解决了素材图像的人脸特征及肤色与用户图像差距较大、目标图像融合度低的技术问题,实现了人脸立体素材图像与用户图像的有机融合。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的人脸图像融合方法,可以应用于如图1所示的计算机设备100中。其中,计算机设备100具体可以是台式终端或移动终端,或服务器,或服务器集群等。移动终端具体可以是手机、平板电脑、笔记本电脑、穿戴式设备、个人数字助理等。
在一个实施例中,如图2所示,提供了一种人脸图像融合方法,以该方法应用于图1中的计算机设备100为例进行说明,包括以下步骤:
步骤202,获取待处理的用户图像和预存的人脸立体素材图像。
图像处理平台为运行在计算机设备100的操作系统上的图像处理函数库,图像处理平台用于对2D图像和/或3D图像进行扫描、存储、图像处理、输出等工作。图像处理平台可为opencv、halcon、adept等平台。具体地,本实施例采用图像处理平台,对扫描获取的图像进行图像处理操作,得到目标图像后输出。其中,用户图像可为用户拍摄的包含一个或多个人脸图像信息的图像。人脸立体素材图像可为预先收集大量的人脸立体图像,然后提取大量的人脸立体图像的关键特征点生成的模板类的立体素材图像,人脸立体素材图像包含眉躬、鼻子、颧骨、嘴唇等部位的人脸立体光影信息。用户图像和人脸立体素材图像存储在计算机设备100的本地相册或缓存空间中。
具体地,图像处理平台从计算机设备100的本地相册中或缓存空间中扫描获取用户图像和人脸立体素材图像,将用户图像和人脸立体素材图像存储在图像处理平台的存储模块中。
图像处理平台还可用于进行人脸关键点检测以及其他图像处理操作,比如图像的裁切、图像的几何变换等操作,其中,图像的裁切是指按照一定边界范围截取图像,图像的几何变换是在不改变图像内容的前提下对图像像素点的进行空间几何变换。
在一个实施例中,图像处理平台获取待处理的用户图像和预存的人脸立体素材图像,对用户图像和/或人脸立体素材图像进行图像裁切和/或图像几何变换,得到裁切和/或几何变换后的用户图像和/或人脸立体素材图像。其中,图像的几何变换包括图像的平移变换、镜像变换、缩放和旋转等中一种或多种。
步骤204,确定所述用户图像的融合区域。
其中,用户图像的融合区域可为脸部个人特征所在区域,包括五官及脸部轮廓。由于需要融合后的目标图像能够保留用户图像的脸部个人特征,所以确定用户图像的融合区域时,需选择用户图像的脸部个人特征所在区域。
掩码操作可用于图像的边缘检测,掩码核算子用于刻画领域像素点对新像素的影响程度,掩码操作是指通过掩码核算子重新计算用户图像中各个像素点的像素值,从而得到用户图像的掩码信息。具体地,以用户图像当前像素点为计算中心目标点,逐像素移动掩码核算子模板,对用户图像所有像素点进行遍历,进而更新图像的像素点的像素值,再通过掩码计算分析,得到图像的掩码信息,存入图像处理平台的存储模块。其中,掩码信息包括图像的色块区域与色块区域之间的边缘像素点的位置坐标和像素值。
具体地,图像处理平台从计算机设备100中获取用户图像的图像数据,根据用户图像数据进行掩码操作,得到用户图像的掩码信息,再根据用户图像的掩码信息对用户图像进行边缘检测,得到用户图像的融合区域像素的像素值。其中,图像的边缘是指周围像素点灰度急剧变化的像素点的集合。边缘检测是指对图像中亮度变化明显的像素点进行标识,提取标识的像素点中能与相邻像素点闭合呈现连续状态的像素点,进而能够根据闭合的图像边缘像素点确定色块区域。
在一实施例中,计算机设备100可基于语义分割模型和用户图像训练出可精准输出图像掩码信息的神经网络模型。其中,语义分割模型用于对用户图像进行语义分割,划分为眉躬、鼻子、颧骨、嘴唇等语义分割区域,根据语义分割区域将用户图像输入到神经网络进行训练。具体地,训练后的神经网络模型获取输入的用户图像,进行神经网络算法处理,可输出用户图像的掩码信息到图像处理平台,图像处理平台根据获取的用户图像的掩码信息,进行遍历操作和邻域操作,得到融合区域的像素点的像素值。
步骤206,根据所述用户图像中的人脸关键点信息和人脸立体素材图像中的人脸关键点信息对所述人脸立体素材图像进行形变,得到第一素材图像。
其中,人脸关键点信息可为根据人脸检测算法获取的人脸特征关键点的坐标信息,人脸关键点信息可包括眼睛、鼻子、嘴巴、眉毛、以及人脸外轮廓等100个人脸特征关键点的坐标信息。由于人脸素材图像的人脸特征与用户图像的人脸特征不一致,因此需要将第一素材图像对齐用户图像的特征点进行形变,使得人脸素材图像的人脸特征与用户图像的人脸特征能够保持一致。
图像处理平台可根据人脸关键点信息对图像进行网格划分,得到网格顶点数组,网格顶点数组可包含图像的像素点的位置信息、色值信息和纹理信息。其中,色值信息是指包含色值在内的反映图像颜色的信息。
具体地,图像处理平台的图像处理模块从扫描模块中获取用户图像和人脸立体素材图像后,进行人脸关键点检测,得到用户图像的人脸关键点信息和人脸立体素材图像的人脸关键点信息,根据人脸关键点信息对用户图像和人脸立体素材图像进行网格划分,得到的网格信息以网格顶点数组的数据格式存入图像处理平台的存储模块;图像处理平台根据网格顶点数组包含的位置信息以及用户图像的人脸关键点信息和人脸立体素材图像的人脸关键点信息,更新网格顶点数组的位置信息,得到的人脸立体素材图像的网格顶点数组中的位置信息,与用户图像的网格顶点数组中的位置信息保持一致,使得人脸立体素材图像的人脸特征可与用户图像的人脸特征保持一致。
步骤208,根据所述用户图像的融合区域的亮度信息获取对应的色彩映射表,根据所述色彩映射表对所述第一素材图像进行肤色调整,得到第二素材图像。
其中,亮度信息可为根据用户图像的像素点的像素值计算出的用户图像的亮度值,亮度信息是用于反映图像的明亮程度的图像信息。色彩映射表是自定义的一组色值,色彩映射表用于确保每个像素值与一个颜色关联,可通过RGB值表示,RGB值为red红、green绿、blue蓝三个色值通道表示的像素值。亮度值与色彩映射表可预设有一一对应关系,根据某一亮度值可选择对应的色彩映射表。其中,色值是一种颜色在不同的颜色模式中所对应的颜色值,例如红色在RGB颜色模式中所对应的red红、green绿、blue蓝三个颜色值分别为255,0,0。
具体地,图像处理平台获取用户图像的融合区域的图像掩码信息以及第一素材图像的融合区域的图像掩码信息,根据掩码信息得到用户图像及第一素材图像的肤色区域;根据用户图像肤色区域的亮度信息获取对应的色彩映射表,采用色彩映射表中的色值信息对第一素材图像的肤色区域的色值进行更新,将更新后的第一素材图像的肤色区域的色值信息存储到第二网格顶点数组,得到第三网格顶点数组;根据第三网格顶点数组信息,得到第二素材图像。其中,色值信息是指包含色值在内的反映图像颜色的信息。
步骤210,将所述用户图像和第二素材图像进行融合处理,得到目标图像。
其中,目标图像即为融合后输出的图像,可包括用户图像的傅里叶频谱高频信息以及人脸立体素材图像的傅里叶频谱低中频信息。
具体地,图像处理平台获取用户图像的色值和第二素材图像的色值;对用户图像的融合区域的色值和第二素材图像的色值进行色值混合计算,得到目标图像的融合区域的色值;根据目标图像的融合区域的色值、用户图像非融合区域的色值以及第三网格顶点数组信息,得到目标图像。
在一个实施例中,融合过程中人脸立体素材图像的纹理信息保持不变。
上述人脸图像方法中,根据人脸关键点信息采用网格划分的方式对人脸立体素材图像形变,得到第一素材图,使得第一素材图的个人脸部特征更加贴合用户图像的个人脸部特征;根据用户图像的亮度信息选择对应色彩映射表,根据色彩映射表的色值信息更新第一素材图像的肤色区域的色值,得到第二素材图像,使得变化后的素材图像的肤色与用户图像的肤色差小于预设值;根据存储的数组信息,将第二素材图像与用户图像进行融合处理。其中,人脸素材图像的经过形变和肤色调整,使得变化后的人脸素材图像与用户图像的融合度较高,解决了素材图像的人脸特征及肤色与用户图像差距较大、目标图像融合度低的技术问题,实现了人脸立体素材图像与用户图像的有机融合。
在一实施例中,如图3所示,步骤204还包括:
步骤304,根据所述用户图像的图像数据,进行掩码操作,得到所述用户图像的掩码信息。
其中,掩码操作包括邻域操作和遍历操作,邻域操作是根据中心像素值以及其邻域像素值得到目标像素值,遍历操作是指扫描图像中的各个像素点,可采用逐行扫描或逐列扫描方式进行遍历。
具体地,图像处理平台获取用户图像的图像数据,对用户图像所有像素点进行遍历,进而更新图像的像素点的像素值,再通过掩码计算分析,得到图像的掩码信息,存入图像处理平台的存储模块。
步骤306,根据所述用户图像的掩码信息对所述用户图像进行边缘检测得到所述用户图像的融合区域。
其中,掩码信息可包括用户图像的色块区域与色块区域边缘的像素点的位置坐标和像素值,掩码信息可用于筛选出用户图像的融合区域的边缘的像素点。边缘检测是指对图像中亮度变化明显的像素点进行标识,提取标识的像素点中能与相邻像素点闭合呈现连续状态的像素点,进而能够根据闭合的图像边缘像素点确定色块区域。
具体地,图像处理平台获取掩码信息,对用户图像的所有边缘像素点进行遍历操作和邻域操作,从而完成边缘检测,确定用户图像的融合区域和的边缘像素点。
本实施例中,采用掩码操作获取掩码信息,再根据掩码信息对用户图像进行边缘检测,从而精准地确定了用户图像的融合区域。
在一实施例中,如图4所示,步骤206包括:
步骤402,检测用户图像的人脸关键点和人脸立体素材图像中的人脸关键点。
其中,人脸关键点信息可为根据人脸检测得到的人脸关键点的像素点的坐标信息,可包括眼睛、鼻子、嘴巴、眉毛、以及人脸外轮廓等100个人脸关键点的坐标信息。
步骤404,基于人脸立体素材图像中的人脸关键点对人脸立体素材图像进行网格划分,得到包含多个网格的第一网格面,取第一网格面的各顶点信息生成第一网格顶点数组;第一网格顶点数组信息包括各顶点的第一位置信息、各个网格的第一色值信息和各个网格的第一纹理信息。
其中,图像处理平台可根据人脸关键点信息对人脸立体素材图像进行网格划分,第一网格面可为人脸立体素材图像网格划分生成的包含多个网格的网格平面,第一网格面的各顶点可为所有网格的顶点的集合,第一网格顶点数组可存储有所有网格顶点的集合的信息。第一位置信息是指顶点的位置坐标信息,第一色值信息是指该顶点所在网格的包含色值在内的反映网格图像颜色的信息,第一纹理信息是指该顶点所在网格的纹理信息。
在一实施例中,可采用Delaunay三角剖分算法进行网格划分。
步骤406,根据用户图像的人脸关键点信息、人脸立体素材图像中的人脸关键点信息和第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息;第二网格顶点数组信息包括第二位置信息、第一色值信息和第一纹理信息。
其中,第二网格面可为用户图像网格划分生成的包含多个网格的网格平面,第二网格面的各顶点可为所有网格的顶点的集合,第二网格顶点数组可存储有所有网格顶点的集合的信息,其中第二位置信息是指顶点的位置坐标信息,第二色值信息是指该顶点所在网格的包含色值在内的反映网格图像颜色的信息,第一纹理信息是指该顶点所在网格的纹理信息,纹理信息可通过像素点及其周围空间邻域的灰度分布表现图像的纹理特征。
步骤408,根据所述第二网格顶点数组信息得到第一素材图像。
本实施例中,通过检测人脸关键点得到人脸关键点信息,再根据人脸关键点信息对用户图像以及人脸立体素材图像进行网格划分,将得到的网格的顶点所包含的位置信息、色值信息、纹理信息存入网格顶点数组,需要获取图像色值信息及纹理信息时,可根据网格顶点数组进行调取。本实施例根据用户图像的人脸关键点信息、人脸立体素材图像的人脸关键点信息及用户图像的网格顶点数组位置信息,进行坐标变换更新了网格顶点数组位置信息,高效完成了人脸立体素材图像的形变,使得人脸立体素材图像的人脸特征可与用户图像的人脸特征保持一致。
在一实施例中,通过对用户图像的人脸关键点信息进行曲线拟合,得到用户图像的拟合关键点信息,以及对人脸立体素材图像的人脸关键点信息进行曲线拟合得到人脸立体素材图像的拟合关键点信息;根据用户图像的拟合关键点信息和用户图像的人脸关键点信息,得到第一组关键点;根据人脸立体素材图像的拟合关键点信息和人脸立体素材图像的人脸关键点信息,得到第二组关键点;获取第一组关键点的位置信息和第二组关键点的位置信息,根据第一组关键点的位置信息、第二组关键点的位置信息以及第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息。其中曲线拟合可采用拉格朗日插值算法。本实施例可采用最小方差法,进行坐标变换计算。
本实施例中,通过曲线拟合,增加拟合关键点,使得生成的网格顶点数组包含的顶点位置信息更多,进而使得形变后的素材图像的人脸特征更加贴合用户图像的人脸特征。
在一个实施例中,如图5所示,步骤208包括:
步骤502,基于深度学习模型,根据用户图像的融合区域的图像掩码,得到第一肤色区域,以及根据第一素材图像的融合区域的图像掩码,得到第二肤色区域。
其中,第一肤色区域为用户图像的融合区域的一部分,可根据掩码信息确定其范围。同样,第二肤色区域第一素材图像的融合区域的一部分,可根据掩码信息确定其范围。
其中,深度学习模型可为基于语义分割模型训练的神经网络模型,当神经网络获取用户图像的融合区域图像和/或第一素材图像的融合区域图像,进行神经网络计算,输出用户图像的融合区域和/或第一素材图像的融合区域的掩码信息。其中,语义分割模型用于对用户图像和人脸立体素材图像进行语义分割,划分为眉躬、鼻子、颧骨、嘴唇等语义分割区域,根据语义分割区域将用户图像的融合区域图像和第一素材图像的融合区域图像输入到神经网络进行训练。
具体地,图像处理平台获取用户图像的融合区域的局部图像和/或第一素材图像的融合区域的局部图像,进行遍历操作和邻域操作,得到第二肤色区域。
步骤504,获取第一肤色区域的像素值,根据第一肤色区域的像素值得到所述第一肤色区域的亮度均值。
其中,亮度均值可为根据肤色区域所有像素点的像素值均值进行亮度计算得到的亮度平均值。YUV、BGR均为像素值的表示方式,其中“Y”表示亮度,“U”和“V”表示色度和浓度;“R”代表红色red;,“G”代表绿色green;“B”代表蓝色blue,BGR值通过红绿蓝三个色值通道所有像素点的像素值均值。YUV值和BGR值可通过权值叠加进行互换计算,例如:
将RGB值变换为YUV值:
Y=0.299R+0.587G+0.114B
U=-0.1687R-0.3313G+0.5B+128
V=0.5R-0.4187G-0.0813B+128
其中,Y即为亮度均值。
步骤506,根据第一肤色区域的亮度均值从亮度与色彩映射表的对应关系中获取对应的色彩映射表,色彩映射表中记录有色值信息。
其中,色彩映射表是一个m*3的矩阵,每一行的3个值都为0-1之间数,分别代表颜色组成的rgb值,例如[1,0,0]代表红色,[0,1,0]代表绿色,[0,0,1]代表蓝色。色彩映射表是自定义的一组色值,亮度值与色彩映射表可预设有一一对应关系,根据某一亮度值可选择对应的色彩映射表,例如亮度均值Y为1时,色彩映射表可选择为color1;亮度均值Y为2时,色彩映射表可选择为color2。
步骤508,采用色彩映射表中的色值信息对第二肤色区域的色值进行更新,得到更新后的第二肤色区域的色值。
步骤510,将更新后的第二肤色区域的色值信息存储到第二网格顶点数组,得到第三网格顶点数组。
步骤512,根据第三网格顶点数组信息,得到第二素材图像。
本实施例,根据用户图像的融合区域的图像掩码信息以及第一素材图像的融合区域的图像掩码信息,根据掩码信息得到用户图像及第一素材图像的肤色区域;根据用户图像肤色区域的亮度信息获取对应的色彩映射表,采用色彩映射表中的色值信息对第一素材图像的肤色区域的色值进行更新,从而实现了对第一素材图像的肤色调整,使得变化后的第一素材图像的肤色与用户图像的肤色差小于预设值。
在一实施例中,如图6所示,步骤210包括:
步骤602,获取用户图像的色值和第二素材图像的色值。其中,用户图像的色值是指图像处理平台扫描模块获取的用户图像像素点的色值,第二素材图像的色值可为根据第三网格顶点数组中的色值信息获取的更新后的第二肤色区域的色值。
步骤604,对用户图像的融合区域的色值和所述第二素材图像的色值进行色值混合计算,得到目标图像的融合区域的色值。
其中,色值混合计算可采用alpha blending算法,对用户图像的融合区域的色值和第二素材图像的色值进行权值叠加计算。
步骤606,根据目标图像的融合区域的色值、用户图像非融合区域的色值以及第三网格顶点数组信息,得到目标图像。
其中,第三网格顶点数组信息包括的坐标信息及纹理信息可用于生成目标图像。
本实施例中,通过获取用户图像融合区域的色值和第二素材图像融合区域的色值,进行色值混合计算,得到目标图像的融合区域的色值,从而实现了目标图像的生成。
在一个实施例中,如图7所示,一种人脸图像融合方法的整体流程示意图,参照图7,包括以下步骤:
步骤702,输入用户图像为A图,以及人脸立体素材图像为B图。
步骤704,根据A图的像素点的像素值,确定A图的融合区域的范围。
步骤706,检测A图的人脸关键点,根据A图的人脸关键点,对B图进行形变,得到B1图。
步骤708,根据A图的融合区域,基于深度学习算法,确定A图的肤色区域。
步骤710,根据A图的肤色区域的像素值,计算A图的肤色区域的亮度均值。
步骤712,获取A图的肤色区域的亮度均值,根据亮度值与色彩映射表的映射关系,得到相应的色彩映射表,计算得到更新后的B1图的肤色区域的色值,得到B2图。
步骤714,根据用户图像的人脸关键点和B2图的人脸关键点,将B2图融合到A图中,得到目标图像。
本实施例中,通过对人脸立体素材图像进行形变以及肤色调整,使得人脸立体素材图像与用户图像的融合度更高。
应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种人脸图像融合装置,包括:图像获取模块802、区域确定模块804、形变模块806、调整模块808和融合模块810,其中:
图像获取模块802,用于获取用户图像和人脸立体素材图像。
区域确定模块804,用于确定用户图像的融合区域。
形变模块806,用于根据用户图像中的人脸关键点信息和全脸立体素材图像中的人脸关键点信息对全脸立体素材图像进行形变,得到第一素材图像。
调整模块808,用于根据用户图像的融合区域的亮度信息和色彩映射表对所述第一素材图像进行肤色调整,得到第二素材图像。
融合模块810,用于将用户图像和第二素材图像进行融合处理,得到目标图像。
在一个实施例中,形变模块806包括关键点检测模块、网格划分模块、顶点信息存储模块。其中,关键点检测模块用于检测用户图像的人脸关键点和人脸立体素材图像中的人脸关键点。网格划分模块用于基于人脸立体素材图像中的人脸关键点对人脸立体素材图像进行网格划分,得到包含多个网格的第一网格面,取第一网格面的各顶点信息生成第一网格顶点数组。顶点信息存储模块用于根据用户图像的人脸关键点信息、人脸立体素材图像中的人脸关键点信息和第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息。
在一个实施例中,,顶点信息存储模块还包括曲线拟合模块、关键点组生成模块和网格顶点数组生成模块。曲线拟合模块用于对用户图像的人脸关键点信息进行曲线拟合,得到用户图像的拟合关键点信息,以及对人脸立体素材图像的人脸关键点信息进行曲线拟合得到人脸立体素材图像的拟合关键点信息。关键点组生成模块用于根据用户图像的拟合关键点信息和所述用户图像的人脸关键点信息,得到第一组关键点;根据人脸立体素材图像的拟合关键点信息和人脸立体素材图像的人脸关键点信息,得到第二组关键点。网格顶点数组生成模块用于获取第一组关键点的位置信息和第二组关键点的位置信息,根据第一组关键点的位置信息、第二组关键点的位置信息以及第一网格顶点数组的第一位置信息,进行坐标变换得到第二网格顶点数组的第二位置信息。
在一个实施例中,调整模块808包括肤色区域确定模块、亮度均值计算模块、匹配模块、色值更新模块、存储模块。
肤色区域确定模块用于基于深度学习模型,根据用户图像的融合区域的图像掩码,得到第一肤色区域,以及根据第一素材图像的融合区域的图像掩码,得到第二肤色区域。
亮度均值计算模块用于获取第一肤色区域的像素值,根据第一肤色区域的像素值得到第一肤色区域的亮度均值。
匹配模块用于根据第一肤色区域的亮度均值从亮度与色彩映射表的对应关系中获取对应的色彩映射表,色彩映射表中记录有色值信息。
色值更新模块用于更新第二肤色区域的色值。
存储模块用于将更新后的第二肤色区域的色值信息存储到第二网格顶点数组。
融合模块810包括色值计算模块、色块填充模块。色值计算模块用于对用户图像的融合区域的色值和第二素材图像的色值信息进行色值混合计算,得到目标图像的融合区域的色值。
色块填充模块用于根据目标图像的融合区域的色值信息、用户图像非融合区域的色值信息以及第三网格顶点数组信息,得到目标图像。
关于人脸图像融合装置的具体限定可以参见上文中对于人脸图像融合方法的限定,在此不再赘述。上述人脸图像融合装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储人脸图像融合数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种人脸图像融合方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述人脸图像融合步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中人脸图像融合步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。