一种图像处理方法及其装置、设备和存储介质与流程

文档序号:16899883发布日期:2019-02-19 17:52阅读:101来源:国知局
一种图像处理方法及其装置、设备和存储介质与流程

本发明涉及图像处理技术领域,涉及但不限于一种图像处理方法及其装置、设备和存储介质。



背景技术:

随着移动通信技术的发展,特别是移动网络和智能终端的推广应用,移动互联网领域发展迅猛。目前来说,智能终端的功能早已不是单纯用来满足人们的相互联系,而成为人们日常生活中十分重要的移动个人娱乐终端。

如今拍照功能已成为智能终端必不可少的功能,人们可以随时随地的记录精彩瞬间。而目前的智能终端大多都包括前置摄像头,方便用户进行自拍。爱美是人们的天性,大家都想要自己拍出来的照片更加好看,因此就催生了各种美颜方法。一个好的面相,额头要饱满、方圆、明润。传统的2d额头饱满算法主要借助于人脸检测技术和简单的变形算法对图片中人的额头进行“填充”操作,从而达到人脸图片“额头饱满”效果。

但目前传统的2d额头饱满算法还有很大的局限性。例如,变形算法的效果十分依赖于人脸检测技术的准确度,细微的偏差就可能导致“整形失败”;高精度的、关键点密集的人脸检测模型有着高昂的耗时,是美颜相机拍照和实时预览功能所不能接受的;另外,人的额头立体多样,传统算法往往只对额头轮廓进行简单填充操作,难以处理不同角度、大小和形状的额头;并且2d美颜难以做出有“立体感”的五官变形,单纯的形变只能简单地伸缩和推动额头轮廓,达不到立体饱满的效果。



技术实现要素:

有鉴于此,本发明实施例期望提供一种图像处理方法及其装置、设备和存储介质,解决了现有技术方案中额头饱满算法中准确率低,容易造成美颜失败并且处理效率低下的技术问题,不仅能够拟合各种各样的立体额头,达到立体美颜的效果,使得处理后的图像更加自然,并且还简化了实现方式从而大大提升了处理效率。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种图像处理方法,所述方法包括:

获取人脸图像中的q个关键点,其中,q为大于1的整数;

从所述q个关键点中筛选出预设个待处理的关键点;

根据所述预设个待处理的关键点确定所述人脸图像中待处理的目标区域,其中,所述目标区域中包括人脸图像的额头区域;

将所述目标区域划分成n个子区域,其中,n为大于2的整数;

分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。

在本发明实施例中,所述待处理的预设个关键点包括所述人脸图像中额头区域的第一特征点集,对应地,根据所述预设个待处理的关键点确定人脸图像中待处理的目标区域,包括:

获取所述人脸图像的人脸角度信息和调整参数;

根据所述第一特征点集、人脸角度信息和调整参数确定所述额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集;

根据所述中心点、第二点集和预设的第二调整比例确定所述目标区域。

在本发明实施例中,所述根据所述第一特征点集、人脸角度信息和调整参数确定所述额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集,包括:

根据所述第一特征点集和所述人脸角度信息确定所述目标区域的中心点;

根据所述中心点、所述第一特征点集和调整参数确定第二特征点集;

对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集。

在本发明实施例中,所述根据所述中心点、所述第一特征点集和调整参数确定第二特征点集,包括:

确定所述中心点和所述第一特征点之间的第一距离;

根据所述第一距离和所述调整参数确定第一调整距离;

将沿第一调整方向上距离所述第一特征点为所述第一调整距离的点确定为相应的第二特征点,其中,所述第一调整方向为中心点到第一特征点的方向;

获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。

在本发明实施例中,所述对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集,包括:

将所述第一特征点集的第一子集和对应的第二特征点集的第三子集划分为第一目标子区域,将所述第一特征点集的第二子集和对应的第二特征点集的第四子集划分为第二目标子区域;

对所述第一目标子区域的所述第一子集和所述第二子集分别按照预设的插值算法进行插值,得到相应的第五子集和第六子集;

将所述第五子集和所述第六子集的合集确定为第一点集;

对所述第二目标子区域的所述第三子集和所述第四子集分别按照预设的插值算法进行插值,得到相应的第七子集和第八子集;

将所述第七子集和所述第八子集的合集确定为第二子集。

在本发明实施例中,所述根据所述中心点、第二点集和预设的第二调整比例确定所述目标区域,包括:

确定所述中心点与所述第二点集中的第i个第二点之间的第二距离,其中,i=1,2,…,n+1,(n+1)为第二点的总数;

根据所述第二距离和所述第二调整比例确定第二调整距离;

将沿第二调整方向上距离所述第i个第二点为所述第二调整距离的点确定为第i调整点,其中,所述第二调整方向为所述中心点到所述第i个第二点的方向;

根据所述(n+1)个调整点确定所述目标区域。

在本发明实施例中,所述将所述目标区域划分成n个子区域,包括:

将所述中心点、第i调整点和第i+1调整点依次连接构成第i个子区域,其中,i=1,2,…,n,(n+1)为第二点的总数。

在本发明实施例中,所述分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像,包括:

获取第i个子区域中的第j个像素点的位置信息;

根据所述第j个像素点的位置信息、中心点、所述第一点集中的第i个第一点、第i+1个第一点、所述第二点集中的第i个第二点、第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数;

根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置;

根据所述第j个目标位置确定所述第j个像素点的目标像素值;

将所述第j个像素点的像素值更新为所述目标像素值,得到处理后的图像。

在本发明实施例中,所述根据所述第j个像素点的位置信息、中心点、所述第一点集中的第i个第一点、第i+1个第一点、所述第二点集中的第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数,包括:

将所述中心点和所述第j个像素点的第四连线沿所述中心点到所述第j个像素点的方向进行延伸,与所述第i个第一点、所述第i+1个第一点的连线相交于第一交点、与所述第i个第二点、所述第i+1个第二点的连线相交于第二交点、与所述第五连线相交于第三交点,其中,所述第五连线为所述第i调整点与所述第i+1调整点的连线;

根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。

在本发明实施例中,所述根据第四距离、第五距离和第六距离确定伸缩变换函数,包括:

确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;

根据所述第一比值和所述第二比值确定第一坐标;

将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;

将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;

根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。

在本发明实施例中,所述根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置,包括:

根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离;

确定所述第七距离与所述第六距离之间的第三比值;

将所述第三比值作为所述伸缩变换函数的输入,计算得到输出值;

根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离;

根据所述第八距离、所述中心点和所述第j个像素点的位置信息确定所述第j个目标位置。

在本发明实施例中,所述根据所述第j个目标位置确定所述第j个像素点的目标像素值,包括:

响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值;

响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;

将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。

本发明实施例提供一种图像处理装置,所述图像处理装置包括:第一获取模块、筛选模块、第一确定模块、划分模块和伸缩变换模块,其中:

所述第一获取模块,用于获取人脸图像中的q个关键点,其中,q为大于1的整数;

所述筛选模块,用于从所述q个关键点中筛选出预设个待处理的关键点;

所述第一确定模块,用于根据所述预设个待处理的关键点确定所述人脸图像中待处理的目标区域,其中,所述目标区域中包括人脸图像的额头区域;

所述划分模块,用于将所述目标区域划分成n个子区域,其中,n为大于2的整数;

所述伸缩变换模块,用于分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。

在本发明实施例中,所述待处理的预设个关键点包括所述人脸图像中额头区域的第一特征点集,对应地,第一确定模块包括:

第一获取单元,用于获取所述人脸图像中额头区域的第一特征点集、人脸角度信息和调整参数;

第一确定单元,用于根据所述第一特征点集、人脸角度信息和调整参数确定所述额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集;

第二确定单元,用于根据所述中心点、第二点集和预设的第二调整比例确定所述目标区域。

在本发明实施例中,所述第一确定单元,包括:

第一确定子单元,用于根据所述第一特征点集和所述人脸角度信息确定所述目标区域的中心点;

第二确定子单元,用于根据所述中心点、所述第一特征点集和调整参数确定第二特征点集;

插值子单元,用于对所述第一特征点集和所述第二特征点集分别按照预设的插值算法进行插值,相应得到所述第一点集和第二点集。

在本发明实施例中,所述第二确定子单元还用于:

确定所述中心点和每一第一特征点之间的第一距离;

根据所述第一距离和所述调整参数确定第一调整距离;

将沿第一调整方向上距离所述第一特征点为所述第一调整距离的点确定为相应的第二特征点,其中,所述第一调整方向为中心点到第一特征点的方向;

获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。

在本发明实施例中,所述插值子单元还用于:

将所述第一特征点集的第一子集和对应的第二特征点集的第三子集划分为第一目标子区域,将所述第一特征点集的第二子集和对应的第二特征点集的第四子集划分为第二目标子区域;

对所述第一目标子区域的所述第一子集和所述第二子集分别按照预设的插值算法进行插值,得到相应的第五子集和第六子集;

将所述第五子集和所述第六子集的合集确定为第一点集;

对所述第二目标子区域的所述第三子集和所述第四子集分别按照预设的插值算法进行插值,得到相应的第七子集和第八子集;

将所述第七子集和所述第八子集的合集确定为第二子集。

在本发明实施例中,所述第二确定单元,包括:

第三确定子单元,用于确定所述中心点与所述第二点集中的第i个第二点之间的第二距离,其中,i=1,2,…,n+1,(n+1)为第二点的总数;

第四确定子单元,用于根据所述第二距离和所述第二调整比例确定第二调整距离;

调整子单元,用于将沿第二调整方向上距离所述第i个第二点为所述第二调整距离的点确定为第i调整点,其中,所述第二调整方向为所述中心点到所述第i个第二点的方向;

第五确定子单元,用于根据所述(n+1)个调整点确定所述目标区域。

在本发明实施例中,所述划分模块,包括:

划分单元,用于将所述中心点、第i调整点和第i+1调整点依次连接构成第i个子区域,其中,i=1,2,…,n,(n+1)为第二点的总数;

在本发明实施例中,所述伸缩变换模块包括:

第二获取单元,用于获取第i个子区域中的第j个像素点的位置信息;

第三确定单元,用于根据所述第j个像素点的位置信息、中心点、所述第一点集中的第i个第一点、第i+1个第一点、所述第二点集中的第i个第二点、所述第i+1个第二点、第i调整点和所述第i+1调整点确定伸缩变换函数;

第四确定单元,用于根据所述第j个像素点的位置信息和所述伸缩变换函数确定第j个目标位置;

第五确定单元,用于根据所述第j个目标位置确定所述第j个像素点的目标像素值;

更新单元,用于将所述第j个像素点的像素值更新为所述目标像素值,得到处理后的图像。

在本发明实施例中,所述第三确定单元,包括:

延伸子单元,用于将所述中心点和所述第j个像素点的第四连线沿所述中心点到所述第j个像素点的方向进行延伸,与所述第i个第一点、所述第i+1个第一点的连线相交于第一交点、与所述第i个第二点、所述第i+1个第二点的连线相交与第二交点、与所述第五连线相交于第三交点,其中,所述第五连线为所述第i调整点与所述第i+1调整点的连线;

第六确定子单元,用于根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,所述第四距离为所述中心点与所述第一交点之间的距离,所述第五距离为所述中心点与所述第二交点之间的距离,所述第六距离为所述中心点与所述第三交点之间的距离。

在本发明实施例中,所述第六确定子单元还用于:

确定所述第四距离与所述第六距离之间的第一比值、所述第五距离与所述第六距离之间的第二比值;

根据所述第一比值和所述第二比值确定第一坐标;

将所述第一坐标和原点坐标的连线的直线方程确定为第一分段函数;

将所述第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;

根据所述第一分段函数和所述第二分段函数确定伸缩变换函数。

在本发明实施例中,所述第四确定单元,包括:

第七确定子单元,用于根据所述第j个像素点的位置信息确定所述第j个像素点与所述中心点之间的第七距离;

第八确定子单元,确定所述第七距离与所述第六距离之间的第三比值;

计算子单元,用于将所述第三比值作为所述伸缩变换函数的输入,计算得到所述第三比值对应的输出值;

第九确定子单元,用于根据所述输出值和所述第六距离确定第八距离,其中,所述第八距离为第j个目标位置与所述中心点之间的距离;

第十确定子单元,用于根据所述第八距离、所述中心点和所述第j个像素点的位置信息确定所述第j个目标位置。

在本发明实施例中,所述第五确定单元,包括:

第十一确定子单元,用于响应于所述目标位置的坐标值为整数,将所述目标位置的像素值确定为所述第j个像素点的目标像素值;

第十二确定子单元,用于响应于所述目标位置的坐标值不是整数,根据预设算法确定所述目标位置对应的像素值;将所述目标位置对应的像素值确定为所述第j个像素点的目标像素值。

本发明实施例提供一种图像处理设备,所述图像处理设备至少包括:存储器、通信总线和处理器,其中:

所述存储器,用于存储图像处理程序;

所述通信总线,用于实现处理器和存储器之间的连接通信;

所述处理器,用于通过所述通信总线获取存储器中存储的图像处理程序,以执行如上所述的图像处理方法的步骤。

本发明实施例提供一种存储介质,所述存储介质上存储有图像处理程序,所述图像处理程序被处理器执行时实现如上所述的图像处理方法的步骤。

本发明实施例提供一种图像处理方法及其装置、设备和存储介质,其中,首先获取人脸图像中的q个关键点,其中,q为大于1的整数;然后从所述q个关键点中筛选出预设个待处理的关键点,这样就能够较少图像处理的计算量;进而再根据所述预设个待处理的关键点确定人脸图像中待处理的目标区域,所述目标区域中包括人脸图像的额头区域;并将所述目标区域划分成n个子区域,n为大于等于2的整数;最后分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像;如此,通过少量的待处理的关键点确定出目标区域,并将目标区域划分成多个子区域,再对每一子区域单独进行伸缩变换,不仅能够拟合各种各样的立体额头,达到立体美颜的效果,使得处理后的图像更加自然,并且还简化了实现方式从而大大提升了处理效率。

附图说明

图1a为本发明实施例图像处理方法的应用场景示意图;

图1b为本发明实施例又一应用场景的示意图;

图2为本发明实施例图像处理方法的实现流程示意图;

图3a为本发明实施例图像处理方法的实现流程示意图;

图3b为本发明实施例进行额头丰满调整时三角面片的示意图;

图3c为本发明实施例进行额头缩小调整时三角面片的示意图;

图3d为本发明实施例进行额头丰满调整时分段函数的坐标示意图;

图3e为本发明实施例进行额头缩小调整时分段函数的坐标示意图;

图4为本发明实施例图像处理方法的实现流程示意图;

图5为本发明实施例原始额头和目标额头轮廓的拟合折线的示意图;

图6为本发明实施例把额头区域拆分为多个连续的三角面片的示意图;

图7为本发明实施例进行额头饱满调整时三角面片伸缩变换的对比图;

图8为本发明实施例进行额头饱满调整时人脸图像的调整效果对比图;

图9a为本发明实施例进行额头区域缩小调整时三角面片伸缩变换的对比图;

图9b为本发明实施例进行额头区域缩小调整时人脸图像的调整效果对比图;

图10为本发明实施例图像处理装置的组成结构示意图;

图11为本发明实施例图像处理设备的组成结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1a为本发明实施例图像处理方法的应用场景示意图,如图1a所示,该应用场景中包括终端101和服务器102,终端101和服务器102通过网络建立通信连接并进行信息交互。终端101首先获取待处理的图像1011,图像1011中包括人脸图像区域,然后将待处理的图像1011发送给服务器102,由服务器102根据本发明实施例提供的图像处理方法对待处理的图像1011进行处理,得到处理后的图像1012,再将处理后的图像1012发送给终端,由终端101输出显示处理后的图像1012。其中,待处理的图像可以通过终端的图像采集装置实时采集图像,还可以是存储在终端本地的图像。

图1b为本发明实施例又一应用场景的示意图,在如图1b所示的应用场景中仅包括终端111,终端111首先获取待处理的图像1111,图像1111中包括人脸图像区域,然后终端111根据本发明实施例提供的图像处理方法对待处理的图像1111进行处理,得到处理后的图像1112,最后再由终端输出显示处理后的图像1112。

结合图1a和图1b所示的应用场景示意图,以下对图像处理方法及图像处理装置、设备的各实施例进行说明。

本实施例提供一种图像处理方法,图2为本发明实施例图像处理方法的实现流程示意图,如图2所示,该方法包括:

步骤s201,获取人脸图像中的q个关键点。

这里,步骤s201可以是由终端实现的,还可以是由服务器实现的。在本实施例中,q为大于1的整数。人脸图像可以是在不同角度下拍摄的包括额头区域的图像,比如可以是人脸正对镜头的人脸图像,还可以侧向面对镜头的人脸图像。

当步骤s201是由终端实现时,人脸图像可以是利用终端上的图像采集装置实时采集到的图像,例如可以是利用相机应用拍照时的预览图像,还可以是终端本地存储的人脸图像,此时人脸图像可以是通过相机应用拍摄得到的图像,还可以是从网络上下载的人脸图像,当然也可以是其他终端发送给该终端的人脸图像,当用户对终端本地存储的人脸图像不满意时,可以利用本发明实施例提供的图像处理方法进行调整。

当步骤s201是由服务器实现时,人脸图像可以是终端发送给服务器的,此时为了保证用户良好的拍照体验,人脸图像一般为终端中本地存储的图像。

步骤s201在实现时,可以是通过人脸识别技术,识别出人脸图像中的人脸区域的特征点,也即q个关键点。在本实施例中,q个关键点中至少包括额头区域的特征点,还可以包括眼部、鼻子、嘴巴、下巴等区域的特征点。

步骤s202,从q个关键点中筛选出预设个待处理的关键点。

这里,步骤s202可以是由终端实现的,还可以是由服务器实现的。

在本实施例中,预设个待处理的关键点中包括额头区域的特征点,因此,步骤s202在实现时,可以是从q个关键点中筛选出额头区域的特征点。这样,由于从多个关键点筛选出少量的待处理的关键点,从而降低了图像处理的计算量,进而能够提高图像处理效率。

步骤s203,根据所述预设个待处理的关键点确定所述人脸图像中待处理的目标区域。

这里,步骤s203可以是由终端实现的,还可以是由服务器实现的。目标区域中至少包括人脸图像的额头区域。

由于所述预设个待处理的关键点中包括额头区域的特征点,步骤s203在实现时,可以时首先对额头区域的特征点进行进行插值得到更多的关键点(第一点集),并根据调整比例确定调整距离,再将进行插值得到的更多个关键点按照调整距离进行调整,得到调整后的多个关键点(第二点集),并将调整后的多个关键点依次连接,确定出目标区域。

步骤s204,将目标区域划分成n个子区域。

这里,步骤s204可以是由终端实现的,还可以是由服务器实现的。

一种可实施的方式中,子区域可以是呈三角形状。目标区域的轮廓上包括多个关键点,在将目标区域划分成n个子区域时,可以是将目标区域的中心点与目标区域的轮廓上的各个关键点(调整点)依次连接得到n个子区域。

在本实施例中,n为大于2的整数;每一子区域内嵌具有相同顶角的第一子三角面片和第二子三角面片,其中,第一子三角面片的底边是额头区域的原始轮廓上相邻两个关键点(第一点)的连线,第二子三角面片的底边为额头区域的目标轮廓上相邻两个关键点(第二点)的连线,第一子三角面片的底边的两个端点以及第二子三角面片的底边的两个端点是三角面片上经过顶点的两个斜边上的点。

步骤s205,分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。

这里,步骤s205可以是由终端实现的,还可以是由服务器实现的。

对子区域内的像素点进行伸缩变换可以认为是将像素点的像素值替换为另一像素点的像素值,其中,这里所说的另一像素点可以是沿目标区域的中心点到该像素点的方向将像素点向外拉伸一定距离得到的像素点,还可以是沿该像素点到中心点的方向将像素点向里回缩一定距离得到的像素点。通过对子区域中的像素点进行伸缩变换能够实现对额头区域轮廓的拉伸或回缩,从而实现额头区域的调整。

步骤s205在实现时,可以是利用预设的伸缩变换算法对每一子区域内的像素点进行伸缩变换,在本实施例中,预设的伸缩变换算法为线性函数,因此具有线性计算复杂度,效率更快,可以适应相机实时预览功能对美颜算法高效率的需求。

当步骤s205是由终端实现时,在步骤s205之后,该方法还包括:输出并显示处理后的图像;当步骤s205是由服务器实现时,在步骤s205之后,该方法还包括:服务器将处理后的图像发送给终端;终端显示并输出接收到的处理后的图像。

在本发明实施例提供的图像处理方法中,首先获取人脸图像中的q个关键点,然后从所述q个关键点中筛选出预设个待处理的关键点,这样就能够减少图像处理的计算量;进而再根据所述预设个待处理的关键点确定人脸图像中待处理的目标区域,所述目标区域中包括人脸图像的额头区域;并将所述目标区域划分成n个子区域,n为大于等于2的整数;最后分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像;如此,通过少量的待处理的关键点确定出目标区域,并将目标区域划分成多个子区域,不仅能够拟合各种各样的立体额头,达到立体美颜的效果,使得处理后的图像更加自然;另外,在对每一子区域单独进行伸缩变换使用的是具有线性计算复杂度的伸缩变换函数,能够简化实现方式,并且计算效率极高,从而大大提升了处理效率。

基于上述的实施例,本发明实施例再提供一种图像处理方法,应用于终端,图3a为本发明实施例图像处理方法的实现流程示意图,如图3a所示,该方法包括:

步骤s301,终端获取人脸图像中的q个关键点。

这里,q为大于1的整数。人脸图像可以是利用终端上的图像采集装置实时采集到的图像,例如可以是利用相机应用拍照时的预览图像,还可以是终端本地存储的人脸图像,此时人脸图像可以是通过相机应用拍摄得到的图像,还可以是从网络上下载的人脸图像,当然也可以是其他终端发送给该终端的人脸图像,当用户对终端本地存储的人脸图像不满意时,可以利用本发明实施例提供的图像处理方法进行调整。

步骤s301在实现时,可以是通过人脸识别技术,识别出人脸图像中的人脸区域的特征点,也即q个关键点。在本实施例中,q个关键点中至少包括额头区域的特征点,还可以包括眼部、鼻子、嘴巴、下巴等区域的特征点。

步骤s302,终端从q个关键点中筛选出预设个待处理的关键点。

这里,在本实施例中,预设个待处理的关键点中包括额头区域原始轮廓上的各个特征点,因此,步骤s202在实现时,可以是从q个关键点中筛选出额头区域的原始轮廓上的特征点。这样,由于从多个关键点筛选出少量的待处理的关键点,从而降低了图像处理的计算量,进而能够提高图像处理效率。

步骤s303,终端获取待处理的人脸图像的人脸角度信息和调整参数。

这里,步骤s303在实现的过程中,可以是将人脸图像输入一个预设的人脸检测模型,以得到人脸图像中的人脸角度信息,其中,当人脸是正对镜头时,人脸角度信息为0度,当人脸偏向左边30度时,人脸角度信息为30度,当人脸偏向右边30度时,人脸角度信息为-30度。

调整参数可以是0到1之间的实数,还可以是-1到0之间的实数,其中,调整参数的绝对值越大,则调整力度或者调整量就越大。

当调整参数为正数时,是将额头区域向外扩展,调整的更加饱满,当调整参数为负数时,是将额头区域向内收缩。

步骤s304,终端根据第一特征点集、人脸角度信息和调整参数确定额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集。

这里,步骤s304可以通过以下步骤实现:

步骤s3041,根据第一特征点集和人脸角度信息确定目标区域的中心点。

这里,步骤s3041在实现时是利用了第一特征点集的位置信息和人脸角度信息确定目标区域的中心点。

步骤s3042,根据中心点、第一特征点集和调整参数确定第二特征点集。

这里,步骤s3042在实现的过程中,可以是将中心点与每一第一特征点依次连接,并确定出中心点与各个第一特征点之间的距离,然后再根据调整参数确定出一个调整比例,进而确定调整距离,再将中心点与第一特征点的连线按照该调整距离进行调整,确定出第二特征点。第二特征点集可以认为是额头区域的目标轮廓上的特征点的集合。

步骤s3043,对第一特征点集和第二特征点集分别按照预设的插值算法进行插值,相应得到原始轮廓上的第一点集和目标轮廓上的第二点集。

这里,由于在本发明实施例提供的图像处理方法是用于对额头的丰满程度和/或额头左右两侧的宽度进行调整的,因此在对所第一特征点集和第二特征点集按照预设的插值算法进行插值时,可以是额头区域左右两侧的第一特征点集中的特征点和第二特征点集中的特征点分别进行插值。在实现时可以采用catmull-rom多边形拟合方法进行插值。

步骤s305,终端根据中心点、第二点集和预设的第二调整比例确定人脸图像中的目标区域。

这里,步骤s305的实现方法与步骤s3042类似,将中心点与每一第二点依次连接,并确定出中心点与各个第二点之间的距离,然后再根据第二调整比例确定第二调整距离,最后将中心点与第二点的连线按照该第二调整距离进行调整,确定出调整点,将各个调整点依次连接,确定目标区域。

在本发明实施例中,目标区域中包括了额头区域的原始轮廓和目标轮廓。需要说明的是,当缩小额头区域时采用的第二调整比例比丰满额头区域时采用的第二调整比例要大,以保证确定出的目标区域中包括额头区域的原始轮廓和目标轮廓。

步骤s306,终端将目标区域划分成n个子区域。

这里,n为大于2的整数,子区域即为其他实施例中的三角面片,因此本步骤也可以理解为将目标区域划分为n个连续的三角面片,每一所述三角面片内嵌具有相同顶角的第一子三角面片和第二子三角面片,其中,第一子三角面片的底边是额头区域的原始轮廓上相邻两个第一点的连线,第二子三角面片的底边为额头区域的目标轮廓上相邻两个第二点的连线。

步骤s306在实现时可以是将中心点、第i调整点和第i+1调整点依次连接构成第i个子区域以得到n个子区域,其中,i=1,2,…,n+1,(n+1)为调整点的总数。

步骤s307,终端获取第i个子区域中的第j个像素点的位置信息。

这里,j=1,2,…,m,其中,m为第i个子区域中的像素点总数。第j个像素点的位置信息可以是第j个像素点的坐标。

步骤s308,终端根据第j个像素点的位置信息、中心点、所述第一点集中的第i个第一点、第i+1个第一点、所述第二点集中的第i个第二点、第i+1个第二点、第i调整点和第i+1调整点确定伸缩变换函数。

这里,第i个第一点和第i+1个第一点即为第一子三角面片的底边的端点,第i个第二点和第i+1个第二点即为第二子三角面片的底边的端点。

对于每一像素点都要根据该像素点的位置确定一个伸缩变换函数,通过该伸缩变换函数可以将原始轮廓上的像素点的像素值映射为目标轮廓上的像素点的像素值,并且该伸缩变换函数为线性函数,具有线性复杂度,因此处理效率极高。

步骤s309,终端根据第j个像素点的位置信息和伸缩变换函数确定第j个目标位置。

这里,步骤s309在实现过程中,可以首先根据第j个像素点的位置信息确定一个输入值,将该输入值输入到伸缩变换函数中,得到该输入值对应的输出值,然后根据该输出值确定出第j个像素点对应的第j个目标位置。

步骤s310,终端根据第j个目标位置确定第j个像素点的目标像素值。

这里,当第j个目标位置的坐标值为整数时,将第j个目标位置对应的像素值确定为目标像素值;当第j个目标位置的坐标值为浮点数时,可以根据预设算法确定第j个目标位置对应的像素值,在实现过程中,可以利用双线性插值方法确定第j个目标位置对应的像素值。

步骤s311,终端将第j个像素点的像素值更新为目标像素值,得到处理后的图像。

在本发明实施例提供的图像处理方法中,首先,终端获取人脸图像中的q个关键点,然后从所述q个关键点中筛选出预设个待处理的关键点,这样仅根据筛选出的少量的关键点进行处理,就能够减少图像处理的计算量;然后再基于预设个待处理的关键点以及获取到的人脸角度信息和调整参数确定额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集,进而根据中心点、第二点集和预设的第二调整比例确定人脸图像中的目标区域,再将目标区域划分成n个连续的子区域,例如,将目标区域划分为n个三角面片,并获取每个三角面片中的各个像素点的位置信息,继而再根据各个像素点的位置信息、中心点和第一点集中的第一点、第二点集中的第二点确定一伸缩变换函数,然后终端再根据三角面片中各个像素点的位置信息和伸缩变换函数确定各个像素点的目标像素值,最后将第j个像素点的像素值更新为目标像素值,得到处理后的图像,这样,由于可以通过三角面片拟合任意多边形,因此通过实施本实施例提供的图像处理方法,能够拟合各种各样的立体额头,达到立体美颜的效果,使得处理后的图像更加自然,并且本实施例中的伸缩变换函数为线性函数,具有线性复杂度,计算复杂度,从而极大地提高了图像处理效率。

在其他实施例中,步骤s3042可以通过以下步骤实现:

步骤21,确定中心点和第一特征点之间的第一距离。

步骤22,根据第一距离和调整参数确定第一调整距离。

这里,步骤22在实现时,可以是首先根据调整参数确定第一调整比例,然后再根据第一距离和第一调整比例确定第一调整距离。

由于调整参数可以为正值,也可以为负值,因此确定出的第一调整距离也相应地为正值或负值。

步骤23,将沿第一调整方向上距离第一特征点为第一调整距离的点确定为相应的第二特征点。

这里,第一调整方向为中心点到第一特征点的方向。当第一调整距离为正值时,步骤23在实现时,是将第一特征点沿第一调整方向延长该调整距离,得到第二特征点;假设第一距离为10,第一调整距离为2,那么就是将沿第一调整方向上,将第一特征点延长距离2得到第二特征点,也就是说第二特征点为将沿第一调整方向上距离中心点为12的点。

当第一调整距离为负值时,步骤23在实现时,是将第一特征点沿第一调整方向相反的方向回缩第一调整距离的绝对值,得到第二特征点;假设第一距离为10,第一调整距离为-2,那么就是将沿第一调整方向相反的方向上与第一特征点的距离为2的点确定为第二特征点,也就是说,第二特征点为将沿第一调整方向上距离中心点为8的点。

步骤24,获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。

在其他实施例中,步骤s3043可以通过以下步骤实现:

步骤241,将所述第一特征点集的第一子集和对应的第二特征点集的第三子集划分为第一目标子区域,将所述第一特征点集的第二子集和对应的第二特征点集的第四子集划分为第二目标子区域。

这里,第一目标子区域中包括第一特征点集的第一子集和第二特征点集的第三子集,第二目标子区域中包括第一特征点集的第二子集和第二特征点集的第四子集。

需要说明的是,第一目标子区域和第二目标子区域为额头区域的左右两个区域。

步骤242,对第一子集和第二子集分别按照预设的插值算法进行插值,得到相应的第五子集和第六子集。

步骤243,将第五子集和第六子集的合集确定为第一点集。

步骤244,对第三子集和第四子集分别按照预设的插值算法进行插值,得到相应的第七子集和第八子集。

步骤245,将第七子集和第八子集的合集确定为第二子集。

在步骤241至步骤245所在的实施例中,是将目标区域中的左右两个子目标区域中的特征点集分别进行插值运算的,也就是说在本发明实施例中,并没有对额头区域上边缘轮廓进行插值运算,即不对用户的发际线进行改变,使得对额头伸缩后的效果更为美观。

在其他实施例中,步骤s305可以通过以下步骤实现:

步骤31,确定中心点与所述第二点集中的第i个第二点之间的第二距离。

这里,i=1,2,…,n+1,其中,(n+1)为第二点的总数,由于第二点的总数与第一点的总数以及调整点的总数都相同,所以第一点的总数也为n+1,调整点的总数也为n+1。

步骤32,根据第二距离和第二调整比例确定第二调整距离。

这里,第二调整比例为正值。第二调整比例一般为小于1的实数,例如第二调整比例可以为0.15。

步骤33,将沿第二调整方向上距离第i个第二点为第二调整距离的点确定为第i调整点。

这里,第二调整方向为中心点到第i个第二点的方向;第i个第一点在中心点与第i调整点的第二连线上。

步骤34,根据(n+1)个调整点确定目标区域。

这里,可以将(n+1)个调整点中相邻的调整点依次连接,确定目标区域。

在其他实施例中,步骤s308可以通过以下步骤实现:

步骤41,将中心点和第j个像素点的第四连线沿中心点到第j个像素点的方向进行延伸,与第i个第一点、第i+1个第一点的连线相交于第一交点、与第i个第二点、所述第i+1个第二点的连线相交于第二交点、与第五连线相交于第三交点。

这里,第五连线为第i调整点与第i+1调整点的连线,也即三角面片的底边。图3b为本发明实施例进行额头丰满调整时三角面片的示意图,如图3b所示,a、b、c分别为三角面片的三个顶点,a、d、e为第一子三角面片的三个顶点,a、f、g为第二子三角面片的三个顶点,三角面片abc、第一子三角面片ade、第二子三角面片afg共用一个顶角。bc为第五连线,de为第一子三角面片的底边,且de为额头区域原始轮廓的一部分,fg为第二子三角面片的底边,且fg为额头区域目标轮廓的一部分。假设第j个像素点的为点p,此时第一交点为点i,第二交点为点j,第三交点为点k。

步骤42,根据第四距离、第五距离和第六距离确定伸缩变换函数。

这里,第四距离为中心点与第一交点之间的距离,即ai之间的距离,第五距离为中心点与第二交点之间的距离,即aj之间的距离,第六距离为中心点与第三交点之间的距离,即ak之间的距离。

图3c为本发明实施例进行额头缩小调整时三角面片的示意图,如图3c所示,a、b、c分别为三角面片的三个顶点,a、d、e为第一子三角面片的三个顶点,a、f、g为第二子三角面片的三个顶点,三角面片abc、第一子三角面片ade、第二子三角面片afg共用一个顶角。bc为第五连线,de为第一子三角面片的底边,且de为额头区域原始轮廓的一部分,fg为第二子三角面片的底边,且fg为额头区域目标轮廓的一部分。假设第j个像素点的为点p,此时第一交点为点i,第二交点为点j,第三交点为点k。

在其他实施例中,步骤42可以通过以下步骤实现:

步骤421,确定第四距离与第六距离之间的第一比值、第五距离与第六距离之间的第二比值。

步骤422,根据第一比值和第二比值确定第一坐标。

这里,第一坐标的横坐标为第二比值,第一坐标的纵坐标为第一比值。

步骤423,将第一坐标和原点坐标的连线的直线方程确定为第一分段函数。

这里,第一分段函数可以利用公式(1-1)表示:

其中,在公式(1-1)中,dis_ai为第四距离,dis_aj为第五距离。

步骤424,将第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数。

这里,预设的第二坐标可以为(1,1),第二分段函数可以用公式(1-2)表示:

在公式(1-2)中,dis_ak为第六距离。

步骤425,根据第一分段函数和第二分段函数确定伸缩变换函数。

这里,伸缩变换函数可以用公式(1-3)表示:

其中,在公式(1-3)中,dis_ak为第六距离。

在进行额头饱满调整时,由于第二点在中心点和第一点的延长线上,也就是说第二子三角面片的面积大于第一子三角面片,第五距离大于第四距离,此时分段函数的坐标示意图如图3c所示,其中,301为第一坐标所表示的点,302为第二坐标所表示的点。

在进行额头缩小调整时,由于第二点在中心点和第一点之间,也就是说第二子三角面片的面积小于第一子三角面片,第五距离小于第四距离,此时分段函数的坐标示意图如图3e所示,其中,303为第一坐标所表示的点,302为第二坐标所表示的点。

在其他实施例中,步骤s309可以通过以下步骤实现:

步骤51,根据第j个像素点的位置信息确定第j个像素点与中心点之间的第七距离。

这里,假设第j个像素点在中心点a和第一交点i之间,第七距离用dis_ap表示。

步骤52,确定第七距离与第六距离之间的第三比值。

这里,第三比值为

步骤53,将第三比值作为伸缩变换函数的输入,得到输出值。

这里,输出值

步骤54,根据输出值和第六距离确定第八距离。

这里,第八距离为第j个目标位置与中心点之间的距离,假设第j个目标位置为p’,第八距离

步骤55,根据第八距离、中心点和第j个像素点的位置信息确定第j个目标位置。

这里,已知ap’的长度、中心点a的坐标,以及位于ap’上的点p的坐标,可以确定出第j个目标位置p’的坐标。

在其他实施例中,步骤s310可以通过以下步骤实现:

步骤61,响应于目标位置的坐标值为整数,将目标位置的像素值确定为第j个像素点的目标像素值;

步骤62,响应于目标位置的坐标值不是整数,根据预设算法确定目标位置对应的像素值;将目标位置对应的像素值确定为第j个像素点的目标像素值。

这里,步骤62在实现时,可以根据双线性插值方法确定目标位置对应的像素值,在其他实施例中,还可以根据目标位置的坐标值确定出与目标位置最近的四个像素点的像素值,再对四个像素值进行均值计算,将得到的均值作为第j个目标位置对应的像素值。

在其他实施例中,步骤42还可以通过以下步骤实现:

步骤426,根据第四距离和第五距离确定第三坐标;

步骤427,根据第六距离确定第四坐标;

步骤428,将第三坐标和原点坐标的连线的直线方程确定为第三分段函数;

步骤429,将第三坐标和第四坐标的连线的直线方程确定为第四分段函数。

步骤430,根据第三分段函数和第四分段函数确定伸缩变换函数。

这里,在步骤426至步骤430所在的实施例中,第三分段函数和第一分段函数的表达式是相同的,第四分段函数和第二分段函数的表达式是相同的,在步骤430中确定的伸缩变换函数与步骤425中确定的伸缩变换函数也是相同的,只是步骤430得到的伸缩变换函数与步骤425中得到的伸缩变换函数中,x的取值范围是不同的,步骤430得到的伸缩变换函数可以用公式(1-4)表示:

相应地,当利用步骤426至步骤430提供的方法确定伸缩变换函数时,步骤s309可以通过以下步骤实现:

步骤71,根据第j个像素点的位置信息确定第j个像素点与中心点之间的第七距离。

这里,假设第j个像素点在中心点a和第一交点i之间,第七距离用dis_ap表示。

步骤72,将第七距离作为伸缩变换函数的输入,计算得到输出值。

这里,输出值即为第j个目标位置与中心点之间的距离,假设第j个目标位置为p’,第八距离

步骤73,根据第八距离、中心点和第j个像素点的位置信息确定第j个目标位置。

这里,已知ap’的长度、中心点a的坐标,以及位于ap’上的点p的坐标,可以确定出第j个目标位置p’的坐标。

基于上述的实施例,本发明实施例再提供一种图像处理方法,图4为本发明实施例图像处理方法的实现流程示意图,如图4所示,该方法包括以下步骤:

步骤s401,输入人脸图片和“额头饱满”力度参数。

这里,“额头饱满”力度参数反映图像处理后额头的丰满程度,“额头饱满”力度参数越大,最终得到的额头越丰满。

步骤s402,对人脸图片进行人脸检测,输出额头关键点和pose人脸信息。

这里,利用预设的人脸检测模型对人脸图片进行人脸检测,能够得到额头区域的关键点以及pose人脸角度信息。其中,当人脸正对镜头时,人脸角度信息为0度,偏左为正的角度,偏右为负的角度。

步骤s403,利用catmull-rom多边形拟合算法和输入的额头关键点拟合额头轮廓。

步骤s404,通过传入的“额头饱满”力度参数和额头轮廓线确定“额头”目标轮廓,利用人脸检测的pose属性修正各个角度的目标轮廓,利用额头关键点确定额头饱满中心。

这里,利用pose角度信息和额头关键点确定“额头饱满”的核心填充方向,进而确定“额头饱满”的一个填充中心;然后依次连接“额头饱满”填充中心和额头关键点并延长,根据“额头饱满”力度参数按照一定比例取延长线上的点来确定“额头饱满”后额头关键点的位置;最后使用catmull-rom多边形拟合方法和额头饱满”后额头关键点进行插值得到更多的额头轮廓上的点,连接这些点构成额目标额头轮廓的拟合折线段。

步骤s405,把额头区域拆分为多个连续的三角面片。

这里,将“额头饱满”填充中心、原始额头轮廓上的各个点和目标额头轮廓上对应的各个点的连线的延长一定比例得到三角形的顶点集合,根据“额头饱满”填充中心和顶点集合把额头区域拆分为多个连续的三角面片,使用连续的三角面片拟合立体额头。

这里的三角面片即其他实施例中的子区域。

步骤s406,对于每一个三角面片,使用自研的伸缩变换公式和双线性插值对三角面片内的像素点做伸缩变换。

步骤s407,判断是否处理完所有的三角面片。

这里,如果处理完所有的三角面片,进入步骤s408;如果没有处理完所有的三角面片,进入步骤s406。

步骤s408,输出“额头饱满”处理之后的效果图。

本发明实施例提供的图像处理方法是在人脸检测模型标定的少量关键点的基础上利用catmull-rom多边形拟合方法来进一步用多边形拟合额头轮廓。有机美颜相机对检测模型的精度和执行效率有着极高的要求,利用拟合多边形方法可以有效缓解检测模型的性能压力。同时,在伸缩变换时采用的变形算法具有线性复杂度,效率更快,可以适应相机实时预览功能对美颜算法高效率的需求,并且该变形方法具有一定容错性,可以针对额头轮廓周围一定范围区域进行整体形变,可以减缓关键点误差带来的负面影响,整体效果更稳定。

在本发明实施例提供的图像处理方法中,包含以下三个技术流程,分别是利用折线段拟合额头和目标额头的轮廓,把额头区域拆分为多个连续的三角面片以及基于三角面片的图形伸缩变换。其中:

第一步、利用折线段拟合额头和目标额头的轮廓。

这里,在该步骤中,输入人脸图片、人脸检测算法输出的额头关键点、姿势(pose)人脸角度信息和“额头饱满”力度参数。输出额头和目标额头轮廓的拟合折线段。图5为本发明实施例原始额头和目标额头轮廓的拟合折线的示意图,如图5所示,501为原始额头轮廓的拟合折线,502为目标额头轮廓的拟合折线。

在实现过程中,该流程可以通过以下步骤实现:

步骤11,利用pose角度信息和额头关键点确定“额头饱满”的核心填充方向,进而确定“额头饱满”的一个填充中心;

步骤12,依次连接“额头饱满”填充中心和额头关键点并延长,根据“额头饱满”力度参数按照一定比例取延长线上的点来确定“额头饱满”后额头关键点的位置;

步骤13,使用catmull-rom多边形拟合方法和新旧额头关键点插值更多的额头轮廓上的点,连接这些点构成原始额头和目标额头轮廓的拟合折线段。

在其他实施例中,在步骤13之后,还需要依次连接“额头饱满”填充中心和目标额头轮廓上的插值后得到的点并延长,按照一定比例取延长线上的点来确定调整点,依次连接相邻的调整点构成一个过渡轮廓的拟合折线段。

第二步、把额头区域拆分为多个连续的三角面片。

这里,在该步骤中输入原始额头、目标额头轮廓的拟合折线段和过渡轮廓的拟合折线段以及“额头饱满”的填充中心,输出若干连续的三角面片。

图6为本发明实施例把额头区域拆分为多个连续的三角面片的示意图,如图6所示,依次连接填充中心和调整轮廓的拟合折线段即可。

第三步、基于三角面片的图形伸缩变换。

这里,在该步骤中输入三角面片和对应控制点,输出伸缩变换后的三角面片。

图3b为本发明实施例进行额头饱满调整时输入的三角面片和对应控制点的示意图,如图3b所示,控制三角面片的伸缩变换一共需要七个点,其中abc三个点是三角面片的三个顶点,另外四个点d、e和f、g分别是原始额头轮廓和目标额头轮廓对应的折线上的点。

伸缩变换的核心是对于输入三角面片内任意点p,构造映射关系p’=f(p),使得输出三角面片对应位置的点p取点p’位置处的像素值,从而完成点p’到点p的位移变换。本发明实施例提供的图形伸缩变换方法可以快速灵活的对三角面片进行变形。该伸缩变换方法也可以应用在其他基于控制点的图片变形领域。

对于三角面片内的每一个像素点p,连接点p并延长与de,fg和bc分别相交于i,j和k。分别求出ap,ai,aj和ak的长度dis_ap,dis_ai,dis_aj和dis_ak。构造分段函数y=g(x),使得y=g(x)对应的分段函数图像经过点(0,0),(1,1)和(dis_ai/dis_ak,dis_aj/dis_ak)。将x=dis_ap/dis_ak代入方程y=g(x)得到y=dis_ap’/dis_ak(分段函数参考图3d)。考虑到点a是填充中心,所以点p’应该在线段ak上,进而可以得到线段ak上的一点p’,使得ap’的长度为dis_ap’。

最终,对于三角面片内任意点p,都取对应的点p’位置的像素,从而完成伸缩变换。对于点p’坐标为浮点数的情况,可以使用双线性插值算法取到对应的像素值。图7为本发明实施例进行额头饱满调整时三角面片伸缩变换的对比图,如图7所示,701为原始三角面片,702为伸缩变换后的三角面片,其中,斜线区域是被填充部分,空白区域是伸长部分。

图8为本发明实施例进行额头饱满调整时人脸图像的调整效果对比图,其中801为待处理的人脸图像,802为调整后的人脸图像,通过将801和802进行对比可知,调整后的人脸图像的额头更加饱满。

在该图像处理方法中综合利用三角面片拟合和伸缩变换方法来完成相机“额头饱满”功能,以达到立体美颜的效果。立体饱满的五官符合东方人的审美,3d变形可以重塑额头,效果更加自然。

在进行额头区域的缩小调整时,输入的三角面片和对应控制点如图3c所示,控制三角面片的伸缩变换一共需要七个点,其中abc三个点是三角面片的三个顶点,另外四个点d、e和f、g分别是原始额头轮廓和目标额头轮廓对应的折线上的点,此时d、e到a的距离大于f、g到a的距离。

在进行额头区域的缩小调整时进行伸缩变换的处理过程与进行额头饱满调整时的过程类似,采用的分段函数如图3e所示。图9a为本发明实施例进行额头区域缩小调整时三角面片伸缩变换的对比图,如图9a所示,901为原始三角面片,902为伸缩变换后的三角面片,其中,斜线区域是被填充部分,空格区域是伸长部分。

图9b为本发明实施例进行额头区域缩小调整时人脸图像的调整效果对比图,其中911为待处理的人脸图像,912为调整后的人脸图像,通过将911和912进行对比可知,调整后的人脸图像的额头区域明显缩小。

利用本发明实施例提供的图像处理方法能够对人脸照片进行3d“额头饱满”美颜,首先,利用人脸检测模型标定额头关键点,并使用catmull-rom多边形拟合方法拟合额头轮廓。之后,按照顺时针方向使用连续的三角面片分割立体的额头。最后,针对每一个三角面片使用伸缩变换算法进行伸缩变换,达到3d“额头饱满”效果。在本发明实施例提供的图像处理方法中,利用三角面片拟合复杂的,各式各样的立体额头,再对每一个三角面片单独进行变形算法,简化了实现方式并大大提升了算法效率。

三角面片拟合可以起到化整为零,简化变形过程以及快速建立3d数学模型的作用,可以灵活应对不同角度,大小和形状的额头。同时本发明实施例提供的图像处理方法具有整体同比例变形的特点,使得变形效果更加自然。

本发明实施例提供一种图像处理装置,图10为本发明实施例图像处理装置的组成结构示意图,如图10所示,该图像处理装置1000包括:第一获取模块1001、筛选模块1002、第一确定模块1003、划分模块1004和伸缩变换模块1005,其中:

所述第一获取模块1001,用于获取人脸图像中的q个关键点,其中,q为大于1的整数;

所述筛选模块1002,用于从所述q个关键点中筛选出预设个待处理的关键点;

第一确定模块1003,用于根据所述预设个待处理的关键点确定所述人脸图像中待处理的目标区域,其中,目标区域中包括人脸图像的额头区域;

划分模块1004,用于将目标区域划分成n个子区域,其中,n为大于2的整数;

伸缩变换模块1005,用于分别对每一所述子区域内的像素点进行伸缩变换,得到处理后的图像。

在其他实施例中,所述待处理的预设个关键点包括所述人脸图像中额头区域的第一特征点集,对应地,第一确定模块1003包括:

第一获取单元,用于获取人脸图像的人脸角度信息和调整参数;

第一确定单元,用于根据第一特征点集、人脸角度信息和调整参数确定额头区域的中心点、原始轮廓上的第一点集和目标轮廓上的第二点集;

第二确定单元,用于根据中心点、第二点集和预设的第二调整比例确定目标区域。

在其他实施例中,第一确定单元,包括:

第一确定子单元,用于根据第一特征点集和人脸角度信息确定目标区域的中心点;

第二确定子单元,用于根据中心点、第一特征点集和调整参数确定第二特征点集;

插值子单元,用于对第一特征点集和第二特征点集分别按照预设的插值算法进行插值,相应得到第一点集和第二点集。

在其他实施例中,第二确定子单元还用于:

确定中心点和所述第一特征点之间的第一距离;

根据第一距离和调整参数确定第一调整距离;

将沿第一调整方向上距离第一特征点为第一调整距离的点确定为相应的第二特征点,其中,第一调整方向为中心点到第一特征点的方向;

获取所述第一特征集中各个所述第一特征点对应的第二特征点,得到第二特征点集。

在其他实施例中,插值子单元还用于:

将第一特征点集的第一子集和对应的第二特征点集的第三子集划分为第一目标子区域,将第一特征点集的第二子集和对应的第二特征点集的第四子集划分为第二目标子区域;对第一目标子区域的第一子集和第二子集分别按照预设的插值算法进行插值,得到相应的第五子集和第六子集;

将第五子集和第六子集的合集确定为第一点集;

对第二目标子区域的第三子集和第四子集分别按照预设的插值算法进行插值,得到相应的第七子集和第八子集;

将第七子集和第八子集的合集确定为第二子集。

在其他实施例中,第二确定单元,包括:

第三确定子单元,用于确定中心点与所述第二点集中的第i个第二点之间的第二距离,其中,i=1,2,…,n+1,(n+1)为第二点的总数;

第四确定子单元,用于根据第二距离和第二调整比例确定第二调整距离;

调整子单元,用于将沿第二调整方向上距离第i个第二点为第二调整距离的点确定为第i调整点,其中,第二调整方向为中心点到第i个第二点的方向;

第五确定子单元,用于根据(n+1)个调整点确定目标区域。

在其他实施例中,划分模块1004,包括:

划分单元,用于将中心点、第i调整点和第i+1调整点依次连接构成第i个子区域,其中,i=1,2,…,n,(n+1)为第二点的总数;

在其他实施例中,伸缩变换模块1005包括:

第二获取单元,用于获取第i个子区域中的第j个像素点的位置信息;

第三确定单元,用于根据第j个像素点的位置信息、中心点、所述第一点集中的第i个第一点、第i+1个第一点、所述第二点集中的第i个第二点、第i+1个第二点、第i调整点和第i+1调整点确定伸缩变换函数;

第四确定单元,用于根据第j个像素点的位置信息和伸缩变换函数确定第j个目标位置;

第五确定单元,用于根据第j个目标位置确定第j个像素点的目标像素值;

更新单元,用于将第j个像素点的像素值更新为目标像素值,得到处理后的图像。

在其他实施例中,第三确定单元,包括:

延伸子单元,用于将中心点和第j个像素点的第四连线沿中心点到第j个像素点的方向进行延伸,与所述第i个第一点、所述第i+1个第一点的连线相交于第一交点、与所述第i个第二点、所述第i+1个第二点的连线相交与第二交点、与第五连线相交于第三交点,其中,第五连线为第i调整点与第i+1调整点的连线;

第六确定子单元,用于根据第四距离、第五距离和第六距离确定伸缩变换函数,其中,第四距离为中心点与第一交点之间的距离,第五距离为中心点与第二交点之间的距离,第六距离为中心点与第三交点之间的距离。

在其他实施例中,第六确定子单元还用于:

确定第四距离与第六距离之间的第一比值、第五距离与第六距离之间的第二比值;

根据第一比值和第二比值确定第一坐标;

将第一坐标和原点坐标的连线的直线方程确定为第一分段函数;

将第一坐标和预设的第二坐标的连线的直线方程确定为第二分段函数;

根据第一分段函数和第二分段函数确定伸缩变换函数。

在其他实施例中,第四确定单元,包括:

第七确定子单元,用于根据第j个像素点的位置信息确定第j个像素点与中心点之间的第七距离;

第八确定子单元,确定第七距离与第六距离之间的第三比值;

计算子单元,用于将第三比值作为伸缩变换函数的输入,计算得到第三比值对应的输出值;

第九确定子单元,用于根据输出值和第六距离确定第八距离,其中,第八距离为第j个目标位置与中心点之间的距离;

第十确定子单元,用于根据第八距离、中心点和第j个像素点的位置信息确定第j个目标位置。

在其他实施例中,第五确定单元,包括:

第十一确定子单元,用于响应于目标位置的坐标值为整数,将目标位置的像素值确定为第j个像素点的目标像素值;

第十二确定子单元,用于响应于目标位置的坐标值不是整数,根据预设算法确定目标位置对应的像素值;将目标位置对应的像素值确定为第j个像素点的目标像素值。

需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

需要说明的是,如果以软件功能模块的形式实现上述的图像处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应地,本发明实施例再提供一种计算机存储介质,该计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述实施例提供的图像处理方法的步骤。

相应地,本发明实施例提供一种图像处理设备,图11为本发明实施例图像处理设备的组成结构示意图,如图11所示,该图像处理设备1100包括:一个处理器1101、至少一个通信总线1102、用户接口1103、至少一个外部通信接口1104和存储器1105。其中,通信总线1102配置为实现这些组件之间的连接通信。其中,用户接口1103可以包括显示屏,外部通信接口1104可以包括标准的有线接口和无线接口。其中处理器1101,配置通过所述通信总线获取存储器中存储的图像处理程序,以执行上述实施例提供的图像处理方法的步骤。

以上图像处理设备和计算机存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明计算机程序产品、计算机设备和计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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