图像修复方法及装置与流程

文档序号:16977829发布日期:2019-02-26 19:11阅读:184来源:国知局
图像修复方法及装置与流程

本申请涉及图像处理领域,具体涉及一种图像修复方法及装置。



背景技术:

当前手机等移动终端的相机性能不断提高,越来越多人用手机进行自拍。然而不是每个人的皮肤都是白嫩平滑,基本都会有斑痘点。如何修复图像中的斑痘点也就成了图像美颜中的主要问题之一。

然而传统方法中修复斑痘点会有两个难点,一方面需要用户手动选择斑痘点才能进行修复,效率低,效果差。另一方面修复完的区域与旁边的肌肤看起来有差异,视觉效果差。



技术实现要素:

本申请提供一种图像修复方法及装置,以实现对图像中斑痘点的修复。

第一方面,提供了一种图像修复方法,包括:获取待处理图像的人脸区域;对所述人脸区域进行分割,得到所述人脸区域的第一人脸区域;获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域;根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像。

在一种可能实现的方式中,在所述获取待处理图像的人脸区域之前,还包括:对所述待处理图像进行人脸检测;响应于所述人脸检测的结果,获取所述待处理图像中的所述人脸区域。

在另一种可能实现的方式中,所述对所述人脸区域进行分割,得到所述人脸区域的第一人脸区域,包括:根据所述待处理图像和所述人脸区域,获取人脸区域掩膜;对所述人脸区域进行关键点检测,得到包含预定关键点的第二人脸区域,其中,所述预定关键点包括眼睛、眉毛、嘴巴中的至少一种;将所述人脸区域掩膜减去所述第二人脸区域,得到所述第一人脸区域。

在又一种可能实现的方式中,所述对根据所述待处理图像和所述人脸区域,获取人脸区域掩膜,包括:对所述人脸区域进行特征提取,得到皮肤特征图像;根据所述皮肤特征图像中的特征对所述皮肤特征图像进行区分,得到皮肤区域分割图;基于所述皮肤区域分割图和所述人脸区域,确定所述人脸区域掩膜。

在又一种可能实现的方式中,所述获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域,包括:对所述第一人脸区域进行梯度计算,得到所述第一人脸区域的梯度图;根据所述梯度图,确定所述第一人脸区域中灰度值大于所述阈值的像素点集合,得到所述人脸区域中的第一待修复区域。

在又一种可能实现的方式中,所述对所述第一人脸区域进行梯度计算,得到所述第一人脸区域的梯度图,包括:将所述第一人脸区域进行图像下采样处理,得到缩小后的第一人脸区域;对所述缩小后的第一人脸区域进行梯度计算,分别得到x方向上的梯度和y方向上的梯度;将所述x方向上的梯度和所述y方向上的梯度融合,得到所述第一人脸区域的梯度图。

在又一种可能实现的方式中,所述根据所述梯度图,确定所述第一人脸区域中灰度值大于所述阈值的像素点集合,得到所述人脸区域中的第一待修复区域,包括:从所述梯度图中找出梯度值变化大于设定阈值的像素点,得到所述第一人脸区域中灰度值大于所述阈值的像素点集合;根据所述像素点集合,得到所述人脸区域中的第一待修复区域。

在又一种可能实现的方式中,在所述根据所述像素点集合,得到所述人脸区域中的第一待修复区域之后,还包括:将所述第一待修复区域与所述待处理图像结合,得到更新的第一待修复区域;将所述更新的第一待修复区域与所述更新的第一待修复区域的周边区域比对,得到优化的第一待修复区域;根据所述第一人脸区域对所述优化的第一待修复区域进行修复,得到修复后的图像。

在又一种可能实现的方式中,在所述根据所述像素点集合,得到所述人脸区域中的第一待修复区域之后,还包括:根据所述待处理图像、所述第二人脸区域以及所述人脸区域掩膜,得到第一待修复区域掩膜。

在又一种可能实现的方式中,所述根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像,包括:将所述第一待修复区域和所述第一待修复区域掩膜进行预定级数缩小,得到最小待修复图;根据所述第一人脸区域对所述最小待修复图进行修复,得到修复后的最小图像;将所述修复后的最小图像逐级放大,得到放大图;逐级对每级放大图进行图像修复,直至所述放大图的图像尺寸与所述待处理图像尺寸相同,得到最后的修复区域;将所述修复区域替换所述待处理图像中的对应区域,得到修复后的图像。

在又一种可能实现的方式中,所述根据所述第一人脸区域对所述最小待修复图进行修复,得到修复后的最小图像,包括:对所述最小待修复图的待修复区域进行块匹配搜索,其中,搜索范围为所述最小修复图的待修复区域的周边区域;根据每个待修复的像素点被图像块覆盖的预定数目,计算预定数目像素点的均值;将所述均值作为待修复的像素点的像素值,得到修复后的像素点;根据每个修复后的像素点得到修复后的最小图像。

第二方面,提供了一种图像修复装置,包括:第一获取单元,用于获取待处理图像的人脸区域;分割单元,用于对人脸区域进行分割,得到所述人脸区域的第一人脸区域;第二获取单元,用于获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域;修复单元,用于根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像。

在一种可能实现的方式中,所述图像修复装置还包括:检测单元,用于对所述待处理图像进行人脸检测;第三获取单元,用于响应于所述人脸检测的结果,获取所述待处理图像中的所述人脸区域。

在另一种可能实现的方式中,所述分割单元包括:获取子单元,用于根据所述待处理图像和所述人脸区域,获取人脸区域掩膜;检测子单元,用于对所述人脸区域进行关键点检测,得到包含预定关键点的第二人脸区域,其中,所述预定关键点包括眼睛、眉毛、嘴巴中的至少一种;处理子单元,用于将所述人脸区域掩膜减去所述第二人脸区域,得到所述第一人脸区域。

在又一种可能实现的方式中,所述获取子单元还用于:对所述人脸区域进行特征提取,得到皮肤特征图像;以及根据所述皮肤特征图像中的特征对所述皮肤特征图像进行区分,得到皮肤区域分割图;以及基于所述皮肤区域分割图和所述人脸区域,确定所述人脸区域掩膜。

在又一种可能实现的方式中,所述第二获取单元包括:计算子单元,用于对所述第一人脸区域进行梯度计算,得到所述第一人脸区域的梯度图;确定子单元,用于根据所述梯度图,确定所述第一人脸区域中灰度值大于所述阈值的像素点集合,得到所述人脸区域中的第一待修复区域。

在又一种可能实现的方式中,所述计算子单元还用于:将所述第一人脸区域进行图像下采样处理,得到缩小后的第一人脸区域;以及对所述缩小后的第一人脸区域进行梯度计算,分别得到x方向上的梯度和y方向上的梯度;以及将所述x方向上的梯度和所述y方向上的梯度融合,得到所述第一人脸区域的梯度图。

在又一种可能实现的方式中,所述确定子单元还用于:从所述梯度图中找出梯度值变化大于设定阈值的像素点,得到所述第一人脸区域中灰度值大于所述阈值的像素点集合;以及根据所述像素点集合,得到所述人脸区域中的第一待修复区域。

在又一种可能实现的方式中,所述确定子单元还用于:将所述第一待修复区域与所述待处理图像结合,得到更新的第一待修复区域;以及将所述更新的第一待修复区域与所述更新的第一待修复区域的周边区域比对,得到优化的第一待修复区域;以及根据所述第一人脸区域对所述优化的第一待修复区域进行修复,得到修复后的图像。

在又一种可能实现的方式中,所述确定子单元还用于:根据所述待处理图像、所述第二人脸区域以及所述人脸区域掩膜,得到第一待修复区域掩膜。

在又一种可能实现的方式中,所述修复单元包括:缩小子单元,用于将所述第一待修复区域和所述第一待修复区域掩膜进行预定级数缩小,得到最小待修复图;修复子单元,用于根据所述第一人脸区域对所述最小待修复图进行修复,得到修复后的最小图像;放大子单元,用于将所述修复后的最小图像逐级放大,得到放大图;所述放大子单元还用于逐级对每级放大图进行图像修复,直至所述放大图的图像尺寸与所述待处理图像尺寸相同,得到最后的修复区域;替换子单元,用于将所述修复区域替换所述待处理图像中的对应区域,得到修复后的图像。

在又一种可能实现的方式中,所述修复子单元还用于:对所述最小待修复图的待修复区域进行块匹配搜索,其中,搜索范围为所述最小修复图的待修复区域的周边区域;以及根据每个待修复的像素点被图像块覆盖的预定数目,计算预定数目像素点的均值;以及将所述均值作为待修复的像素点的像素值,得到修复后的像素点;以及根据每个修复后的像素点得到修复后的最小图像。

第三方面,提供了一种图像修复装置,包括:包括处理器、存储器;所述处理器被配置为支持所述装置执行上述第一方面的方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和数据。可选的,所述装置还可以包括输入/输出接口,用于支持所述装置与其他装置之间的通信。

第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行所述各方面所述的方法。

第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行所述各方面所述的方法。

上述实施例的图像修复方法,通过获取待处理图像的人脸区域;对所述人脸区域进行分割,得到所述人脸区域的第一人脸区域;获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域;根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像。上述实施例的方法能够自动、快速地识别出待处理图像中的第一待修复区域,即斑痘点。并对检测到的第一待修复区域(斑痘点)利用周围完好的第一人脸区域的皮肤进行填充,得到修复后的图像,即祛除斑痘点后的图像。这样待处理图像中斑痘点修复后的区域处与周边皮肤的无差异,使得修复后的整体美观、自然。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1为本申请实施例提供的一种图像修复方法的流程示意图;

图2是本申请实施例提供的一种人脸检测的流程示意图;

图3是本申请实施例提供的一种获取图像中人脸区域的方法的流程示意图;

图4是本申请实施例提供的一种确定待修复区域的方法的流程示意图;

图5是本申请实施例提供的一种斑痘点修复方法的流程示意图

图6为本申请实施例提供的一种图像修复装置的结构示意图;

图7为本申请实施例提供的一种图像修复装置的硬件结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

下面结合本申请实施例中的附图对本申请实施例进行描述。

请参阅图1,图1是本申请实施例提供的一种图像修复方法的流程示意图。

101、获取待处理图像的人脸区域。

本申请是通过神经网络对图像中的人脸部分存在的斑痘点(或者瑕疵点)进行修复,因此,后续处理都是基于待处理图像的人脸区域完成的。将待处理图像输入到神经网络,再通过人脸检测算法从待处理图像中提取出人脸特征,根据提取出的人脸特征及预先设定的人脸特征,判断待处理图像中是否存在人脸,若存在人脸,则根据预先设定的人脸特征中的人脸框特征,获得与人脸相对应的人脸框,再将人脸框的长和宽按设定倍数进行放大,得到人脸区域,上述设定倍数可依据用户需求设置,可选的上述设定倍数为1.5。在本实施例中,人脸检测算法可以采用基于集合特征的算法或者其他常用类型算法,这里不再一一列举。

102、对人脸区域进行分割,得到上述人脸区域的第一人脸区域。

对待处理图像进行皮肤区域分割处理,得到皮肤分割区域。由于上述皮肤分割区域中包含脸部皮肤区域和躯干皮肤区域,将皮肤分割区域与人脸区域相结合得到的脸部掩膜只包含脸部皮肤区域,以便后续对脸部皮肤区域进行处理。再通过人脸关键点检测算法,将脸部掩膜中的人脸关键点检测出来,并将其从脸部掩膜中去除掉,得到去除关键点后的脸部掩膜,即第一人脸区域。其中,人脸关键点包括一下至少一种:眼睛、嘴巴、眉毛。例如,上述人脸关键点检测算法可以为:sbr(supervision-by-registration)、aam(activeappearancemodels)、ert(ensembleofregressiontress)、mtcnn(multi-taskcascadedconvolutionalnetworks)等。

103、获取上述第一人脸区域中灰度值大于阈值的像素点集合,得到上述人脸区域的第一待修复区域。

由于人脸中的斑痘点的表现与周边皮肤有较大差异,两者的灰度值往往不是一个数量级,斑痘点处的灰度值往往要比正常皮肤的灰度值大很多,如:正常皮肤的灰度值的取值范围为:[0,100],而斑痘点处的灰度值往往要大于1000。因此,可通过设置阈值(可选的,取值范围为:[300,700])来确定人脸区域中的第一待修复区域,即灰度值小于或等于阈值的像素点集合为正常皮肤,灰度值大于阈值的像素点集合为第一待修复区域图像,上述阈值可根据具体效果和经验设置。

显然,由上述可知斑痘点处的灰度值与正常皮肤的灰度值相差较大,相应地,通过灰度值求出的斑痘点的梯度值与其周边皮肤的梯度值相比也会有较大的差异。例如,当图像中存在边缘时,或某一处的内容发生突变时,则边缘区域或者内容突变区域的梯度值较大,反之,当图像中有比较平滑部分时,则相应平滑部分的梯度值也较小。因此,找出脸部梯度图中梯度值较大的像素点,即为灰度值大于阈值的像素点。最后,根据上述第一人脸区域中灰度值大于阈值的像素点集合,得到上述人脸区域的第一待修复区域,即为斑痘点区域。

104、根据上述第一人脸区域对上述第一待修复区域进行修复,得到修复后的图像。

在本实施例中,根据上述第一待修复区域和第一人脸区域,得到第一待修复区域掩膜(斑痘点)掩膜。对检测到的第一待修复区域(斑痘点)利用周围完好的第一人脸区域的皮肤进行填充,得到修复后的图像,即祛除斑痘点后的图像。

上述实施例的图像修复方法,通过获取待处理图像的人脸区域;对所述人脸区域进行分割,得到所述人脸区域的第一人脸区域;获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域;根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像。上述实施例的方法能够自动、快速地识别出待处理图像中的第一待修复区域,即斑痘点。并对检测到的第一待修复区域(斑痘点)利用周围完好的第一人脸区域的皮肤进行填充,得到修复后的图像,即祛除斑痘点后的图像。这样待处理图像中斑痘点修复后的区域处与周边皮肤的无差异,使得修复后的整体美观、自然。

请参阅图2,图2是本申请实施例提供的一种人脸检测的流程示意图。

201、获取待处理图像。

在本实施例中,待处理图像可以是从终端(如:手机、数码相机、平板电脑)获取已存储的图像输入到神经网络的图像,也可以是通过摄像头拍摄并输入到神经网络的图像。

202、对上述待处理图像进行人脸检测。

通过任意一款成熟的人脸检测算法确定待处理图像中是否存在人脸区域,并根据存在的人脸区域获取人脸框。具体地,首先,对人脸框的特征进行定义,具体包括:眼睛、鼻子、嘴巴、眉毛及人脸轮廓点,然后对待处理图片进行第一卷积操作,提取人脸特征图像,再对人脸特征图像进行第二卷积操作,将上述人脸特征图像中的多个局部特征图像转换成相对应的低维特征,卷积神经网络并对低维特征进行判断分类,如,眼睛、鼻子、嘴巴、眉毛及人脸轮廓点。神经网络再根据定义的人脸特征将人脸框候选区域选取出来,并给出相应的边框,即为人脸框。上述人脸框只包括上述定义的人脸框特征,不一定包括整个人脸区域。特殊地,当图像中有n个人脸时,相应地,提取出的人脸框也会有n个。需要指出的是,本申请实施例对人脸检测算法不做具体限定,可通过任意人脸检测算法完成上述过程。

203、响应于人脸检测的结果,获取待处理图像的人脸区域。

在本实施例中,若n=0,即没有检测到人脸时,则不对待处理图像做任何处理,最终神经网络输出的还是待处理图像;若n>0,响应于上所述人脸检测的结果,将得到n个人脸框。

本实施例通过对待处理图像提取人脸框特征,以确定检测待处理图像中是否存在人脸,可有效的避免对不存在人脸的图像进行后续处理,提高了处理效率。

请参阅图3,图3是本申请实施例提供的一种获取图像中人脸区域的方法的流程示意图。

301、获取待处理图像的人脸区域。

响应于203中的人脸检测结果,当n>0时,将得到n个人脸框,由202可知,人脸框不一定包括整个人脸区域,通过将每一个人脸框的长和宽按设定倍数进行放大,使放大后的人脸框包括整个人脸区域,放大后的人脸框内的区域即为待处理图像的人脸区域。对应与n个人脸框,待处理图像的人脸区域也有n个,且两者一一对应。上述设定倍数可依据用户需求设置,可选的上述设定倍数为1.5。

302、根据上述待处理图像和上述人脸区域,获取人脸区域掩膜。

由于上述人脸区域中可能包含非脸部皮肤图像内容,如:头顶的头发、以及头部周围的背景等,因此,在对待处理图像中脸部斑痘点进行修复之前,需将非脸部皮肤图像内容去除。

通过皮肤分割网络对上述人脸区域进行皮肤区域分割处理,其中,皮肤分割网络是神经网络,具体包括:编码层、解码层和softmax层,而编码层又包括:卷积层、batchnorm层和relu激活层。

通过编码层对待处理图像逐级进行卷积操作完成编码处理,即可提取特征。具体地,卷积层对待处理图像做卷积操作,即利用卷积核在图像上滑动,并将图像点上的像素值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素值,最终滑动处理完所有图像,并提取出相应的特征。在训练及实际使用的过程中,将卷积核的滑动步长设置为2。

另外,每个卷积层提取出的特征内容及语义信息均不一样,具体表现为,编码处理一步步将图像特征抽象出来,同时也将逐步去除相对次要的特征,因此,越到后面提取出的特征尺寸越小,内容及语义信息就越浓缩。通过多层卷积层逐级对待处理图像进行卷积操作,并提取相应的中间特征,最终得到固定大小的编码特征图像。这样,可在获得图像主要内容信息(即特征图像)的同时,将图像尺寸缩小,减小系统的计算量,提高运算速度。

在卷积层后连接接batchnorm层,通过batchnorm层加入可训练的参数完成对数据的归一化处理,同时能加快训练速度,并去除数据的相关性,突出特征数据之间的分布差异。再通过relu激活层进行处理,可以增加数据的非线性,把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类,同时能在很大程度地解决了图像分割网络在学习过程梯度耗散的问题。

再通过解码层对上述特征进行逐步放大,最终得到一幅256*256大小的皮肤特征图像,具体地,皮肤特征图像中包含脸部皮肤特征、躯干皮肤特征和背景特征,其中,躯干皮肤指人体中脖子以下的所有皮肤。

根据上述皮肤特征图像中的特征对上述皮肤特征图像进行区分,得到皮肤区域分割图。具体的,通过softmax层对皮肤特征图像中的区域分割进行预测。具体的,softmax层会根据皮肤特征图像中不同区域的特征,对该区域的图像内容进行预测,并给出该区域分别为人脸皮肤区域、躯干皮肤区域及背景区域的概率值。而在实际使用中,将解码处理得到的皮肤特征图像输入到softmax层后,softmax层会给出特征图像中特征分别是脸部皮肤特征、躯干皮肤特征和背景特征的概率。这样,最后将得到一幅256*256的特征概率图,概率图中的每个像素点均有3个概率值。分别选取每个像素点中概率值最大的特征作为该像素点的特征,并结合待处理图像得到最终的皮肤区域分割图,即将待处理图像划分为脸部皮肤区域、躯干皮肤区域和背景区域。

基于上述皮肤区域分割图可确定待处理图像中的所有脸部皮肤区域,再将脸部皮肤区域和上述人脸区域相结合,取两者的重叠区域得到人脸区域掩膜。

303、对上述人脸区域进行关键点检测,得到包含预定关键点的第二人脸区域。

由于在对斑痘点进行检测时,易将眉毛、嘴巴、眼睛误检测为斑痘点。因此,在对人脸区域范围内的斑痘点进行处理之前,需要先将眉毛区域、嘴巴区域、眼睛区域检测出来,并从脸部掩膜中去除掉,以提高对待修复区域检测的准确率。

具体地,人脸关键点检测的过程和202中人脸检测的过程类似。通过对脸部皮肤掩膜图像进行卷积操作,并从中提取人脸关键点,其中,人脸关键点指:眼睛、鼻子、嘴巴,这些关键点组成的区域即为第二人脸区域。

304、将上述人脸区域掩膜减去所述第二人脸区域,得到上述第一人脸区域。

根据提取出第二人脸区域将人脸区域掩膜中相应的关键点区域去除掉,得到去除关键点后的脸部皮肤掩膜,即第一人脸区域。

305、将上述第一人脸区域进行图像下采样处理,得到缩小后的第一人脸区域。

对上述第一人脸区域进行图像下采样处理,将所有图像的最长边缩小至250*250以内,得到缩小后的第一人脸区域,其中250是指像素数量。而图像下采样的具体处理过程可参见下例:对于一幅m*n的图像,对其进行s倍下采样,即将该图像划分成s*s个格子,这样,每一个格子的大小为(m/s)*(n/s),,然后计算每一个格子中目标动作特征的平均值或最大值,即可得到目标大小的第一人脸区域。

本实施例通过对待处理图像进行皮肤分割处理,确定人脸皮肤区域,再结合人脸区域及人脸关键点的位置,得到去除关键点后的脸部皮肤掩膜,这样,后续处理就可只针对人脸区域掩膜部分进行相关处理,而不需要对非人脸区域掩膜之外的区域进行任何处理,可减小后续处理的计算量,提高神经网络的运算速度;再对去除关键点后的脸部皮肤掩膜进行下采样处理,得到缩小后的掩膜,进一步减小后续处理的计算量。

请参阅图4,图4是本申请实施例提供的一种确定待修复区域的方法的流程示意图。

401、对缩小后的第一人脸区域进行梯度计算,分别得到x方向上的梯度和y方向上的梯度。

梯度可通过求导计算获取,在图像上表现出来的就是提取图像的边缘(无论是横向的、纵向的、斜方向的等等)。图像的梯度可以通过上述的一阶导数来求解。数字图像是以矩阵的形式存储的,因此,对一幅数字图像的求导相当于对一个平面、曲面求导,正如不能像数学理论中对直线或者曲线求导一样,也不能对数字图像直接求导。本申请实施例采用scharr算子对305得到的缩小后的第一人脸区域进行梯度计算,分别求得x方向和y方向的梯度,还可以采用其他梯度计算的方法,这里不再一一列举。

设图像函数为f(x,y),则在图像任意一点(x,y)处的梯度是一个具有大小和方向的矢量,设x、y方向的梯度分别为gx和gy,则有下式:

由于图像在计算机中以数字图像的形式进行存储,即图像是离散的数字信号,对数字图像的梯度使用差分来代替连续信号中的微分,所以图像梯度又可近似表示为:

gx=f(x,y)-f(x-1,y),gy=f(x,y)-f(x,y-1)….公式(2)

402、将上述x方向上的梯度和所述y方向上的梯度融合,得到第一人脸区域的梯度图。

将上述x方向上的梯度和所述y方向上的梯度融合,得到304中第一人脸区域的梯度图

403、根据上述梯度图,确定上述第一人脸区域中灰度值大于阈值的像素点集合,得到上述人脸区域中的第一待修复区域。

当图像中存在边缘时,或某一处的内容发生突变时,一定有较大的梯度值,反之,当图像中有比较平滑的部分时,相应的梯度值也比较小。具体地,图像中的边缘或内容发生突变可以理解为,图像中某一处的灰度值发生突变(在本申请实施例中即为斑痘点),此处也一定有较大的梯度值。

人脸中的斑痘点会表现出与周边皮肤很大差异,具体表现为:斑点一般为黑褐色,而痘痘处一般为红色,两者色素均较深,与斑点周边的肤色差异较大,而在数字图像中这种差异体现为斑点的灰度值与斑点周边的皮肤灰度值相差较大,相应地,通过灰度值求出的梯度值与周边皮肤的梯度值相比也会有较大的突变。另外,痘痘处一般还会伴随着肿胀,具体表现为痘痘处会隆起。在数字图像中痘痘的隆起会表现为,该处的梯度值与周边皮肤的梯度值相比也会有较大的突变。因此,从上述梯度图中找出梯度值变化大于阈值的像素点,得到上述第一人脸区域中灰度值大于阈值的像素点集合,得到的像素点集合即为斑痘点区域,因此,根据上述像素点集合确定上述人脸区域中相应的像素点集合,即可得到上述人脸区域中的第一待修复区域。上述阈值可根据用户的需求设置。

需要指出的是,这里的scharr算子并不是随便设计的,而是根据数学中求导理论推导出来的,此处将不再详述其具体推导过程。

本实施例首先对缩小后的去除关键点后的脸部皮肤掩膜中像素的灰度值进行求导,得到相应的梯度图,再根据梯度图中的梯度值确定上述掩膜中的待修复区域,这种通过神经网络对图像求导并确定斑痘点的方法,可精确地确定掩膜中斑痘点,且整个过程均由神经网络自主完成,无需人工参与,效率高、准确性高。

请参阅图5,图5是本申请实施例提供的一种斑痘点修复方法的流程示意图。

501、将第一待修复区域与待处理图像结合,得到更新的第一待修复区域。

由于403得到的斑痘点中可能存在误检测的斑痘点,因此,在对斑痘点进行修复处理之前需要先将误检测的斑痘点去除掉。将403得到的第一待修复区域与201获取的待处理图像结合,找出待处理图像中所有的斑痘点,得到更新的第一待修复区域。将上述更新的第一待修复区域中的像素点的像素值与上述更新的第一待修复区域的周边区域的像素点的像素值比对,若该斑痘点处的像素值与周边皮肤像素值差距较大,则将该斑痘点视为误检测的斑痘点,反之,若该斑痘点处的像素值与周边皮肤像素值相差不大,则将该斑痘点视为稳定的斑痘点。最后将所有错误的斑痘点去除,保留所有稳定的斑痘点得到优化的第一待修复区域。

需要指出的是,501中的所有操作是在待处理图像中进行的,因此最后得到的斑痘点中可能会包含眼睛、眉毛、嘴巴。

502、根据待处理图像、第二人脸区域以及上述人脸区域掩膜,得到第一待修复区域掩膜。

由于上述得到的稳定斑痘点中可能包含有眼睛、眉毛和嘴巴,因此在对斑痘点进行修复处理之前,需要先从稳定斑痘点中将眼睛、眉毛、嘴巴三个区域去除掉。通过将上述待处理图像、302得到的人脸区域掩膜、303得到的第二人脸区域相结合,取三者的公共区域,得到第一待修复区域掩膜。

503、将上述第一待修复区域和上述第一待修复区域掩膜进行预定级数缩小,得到最小待修复图。

通过前面的步骤获得了第一待修复区域掩膜之后,若直接对该第一待修复区域掩膜进行斑痘点修复处理将产生巨大的计算量,而通过对第一待修复区域掩膜进行金字塔缩小,可将第一待修复区域掩膜降低到一个目标维度,以满足后续处理的需要,同时可大大减小计算量。

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。修复后的最小图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于修复后的最小图像集合。通过逐层向下采样实现对修复后的最小图像的缩小,直到到达某个终止条件才停止下采样。

对图像金字塔第n层采用图像向下采样的方式获得第n+1层金字塔图像的具体方法如下:首先对图像n进行步长为2的卷积操作(此处的卷积操作可参见编码处理中的卷积操作),再将所有偶数列和偶数行去除得到的图像即为n+1层的图像。显然,n+1层图像的大小只有待处理图像的四分之一。

通过对输入的修复后的最小图像不停的迭代上述步骤即可得修复后的最小图像。简而言之,图像向下采样能缩小待处理图像的尺寸,但也会丢失待处理图像的信息。需要指出的是,修复后的最小图像的尺寸要大于3*3。

从缩小后的第一待修复区域掩膜中找到斑痘点相应的位置,再通过patchmatch算法从缩小后的第一待修复区域掩膜的斑痘点附近搜索与该点处像素值最相似的m个点,再求出这m个点的像素的平均值,并将该平均值替换掉原斑痘点处的像素值,得到修复后的最小图像,其中,m为正整数,可选的,m的值取9。

504、将上述修复后的最小图像逐级放大,得到放大图。

上述金字塔放大是金字塔缩小的逆过程,原理类似,但是是通过图像逐层进行上采样处理,实现放大的。对图像金字塔第n层采用图像向上采样的方式获得第n+1层金字塔图像的具体方法如下:首先将图像在每个方向上扩大为原来的两倍,需要补齐的行和列均以0填充,再使用与图像下采样相同的内核进行卷积操作,获得“新增像素”的近似值。这样,得到的图像即为放大后的图像。

通过金字塔放大的方式将修复后的最小图像进行放大,得到放大图。需要指出的是,上述金字塔放大的层数大于等于1,即需要对修复后的最小图像进行m次放大,依次得到m个放大图,其中,m≥1,且每一层放大后得到的放大图均不一样。

505、逐级对每级放大图进行图像修复,直至所述放大图的图像尺寸与待处理图像尺寸相同,得到最后的修复区域。

通过上述patchmatch算法对放大图进行修复,并对修复后的放大图进行金字塔放大,得到,第一放大图,再通过patchmatch算法搜索过程对第一放大图进行修复,继续放大,重复上述逐级放大并进行修复的过程,直至放大后得到的修复区域与待处理图像的大小一样。

需要指出的是,算法搜索的范围并不包括稳定斑痘点区域。通过对所有斑痘点的单个像素点进行修复,即可完成对所有稳定斑痘点的修复。

506、将修复区域替换待处理图像中的对应区域,得到修复后的图像。

用上述修复区域替换掉待处理图像中的对应区域(即斑痘点区域),即完成对待处理图像中所有斑痘点的修复,并得到修复后的图像。

在本公开实施例中,可通过神经网络对图像斑痘点自动进行修复,使修复后的图像显得真实、自然。

本实施例通过将第一待修复区域掩膜逐层缩小,进一步减小运算量,提高处理效率和处理速度;而通过对图像进行逐层放大修复,并用斑痘点周边的皮肤的平均像素值替换斑痘点处的像素值获得修复后的斑痘点掩膜,最后将修复后的斑痘点掩膜替换待处理图像中的斑痘点完成修复,可使斑痘点的中心到边缘过渡的更顺滑,修复后斑痘点处与周边的差异会非常小,修复后的整体效果非常自然。

请参阅图6,图6为本申请实施例提供的一种图像修复装置的结构示意图,该装置1000包括:第一获取单元11,分割单元12、第二获取单元13、修复单元14检测单元15及第三获取单元16,其中:

第一获取单元11,用于获取待处理图像的人脸区域;

分割单元12,用于对人脸区域进行分割,得到所述人脸区域的第一人脸区域;

第二获取单元13,用于获取所述第一人脸区域中灰度值大于阈值的像素点集合,得到所述人脸区域的第一待修复区域;

修复单元14,用于根据所述第一人脸区域对所述第一待修复区域进行修复,得到修复后的图像。

检测单元15,用于对所述待处理图像进行人脸检测;

第三获取单元16,用于响应于所述人脸检测的结果,获取所述待处理图像中的所述人脸区域。

进一步地,所述分割单元12包括:获取子单元121,用于根据所述待处理图像和所述人脸区域,获取人脸区域掩膜;检测子单元122,用于对所述人脸区域进行关键点检测,得到包含预定关键点的第二人脸区域,其中,所述预定关键点包括眼睛、眉毛、嘴巴中的至少一种;处理子单元123,用于将所述人脸区域掩膜减去所述第二人脸区域,得到所述第一人脸区域。

进一步地,所述获取子单元121还用于:对所述人脸区域进行特征提取,得到皮肤特征图像;以及根据所述皮肤特征图像中的特征对所述皮肤特征图像进行区分,得到皮肤区域分割图;以及基于所述皮肤区域分割图和所述人脸区域,确定所述人脸区域掩膜。

进一步地,所述第二获取单元13包括:计算子单元131,用于对所述第一人脸区域进行梯度计算,得到所述第一人脸区域的梯度图;确定子单元132,用于根据所述梯度图,确定所述第一人脸区域中灰度值大于所述阈值的像素点集合,得到所述人脸区域中的第一待修复区域。

进一步地,所述计算子单元131还用于:将所述第一人脸区域进行图像下采样处理,得到缩小后的第一人脸区域;以及对所述缩小后的第一人脸区域进行梯度计算,分别得到x方向上的梯度和y方向上的梯度;以及将所述x方向上的梯度和所述y方向上的梯度融合,得到所述第一人脸区域的梯度图。

进一步地,所述确定子单元132还用于:从所述梯度图中找出梯度值变化大于设定阈值的像素点,得到所述第一人脸区域中灰度值大于所述阈值的像素点集合;以及根据所述像素点集合,得到所述人脸区域中的第一待修复区域。

进一步地,所述确定子单元132还用于:将所述第一待修复区域与所述待处理图像结合,得到更新的第一待修复区域;以及将所述更新的第一待修复区域与所述更新的第一待修复区域的周边区域比对,得到优化的第一待修复区域;以及根据所述第一人脸区域对所述优化的第一待修复区域进行修复,得到修复后的图像。

进一步地,所述确定子单元132还用于:根据所述待处理图像、所述第二人脸区域以及所述人脸区域掩膜,得到第一待修复区域掩膜。

进一步地,所述修复单元14包括:缩小子单元141,用于将所述第一待修复区域和所述第一待修复区域掩膜进行预定级数缩小,得到最小待修复图;修复子单元142,用于根据所述第一人脸区域对所述最小待修复图进行修复,得到修复后的最小图像;放大子单元143,用于将所述修复后的最小图像逐级放大,得到放大图;所述放大子单元143还用于逐级对每级放大图进行图像修复,直至所述放大图的图像尺寸与所述待处理图像尺寸相同,得到最后的修复区域;替换子单元144,用于将所述修复区域替换所述待处理图像中的对应区域,得到修复后的图像。

进一步地,所述修复子单元142还用于:对所述最小待修复图的待修复区域进行块匹配搜索,其中,搜索范围为所述最小修复图的待修复区域的周边区域;以及根据每个待修复的像素点被图像块覆盖的预定数目,计算预定数目像素点的均值;以及将所述均值作为待修复的像素点的像素值,得到修复后的像素点;以及根据每个修复后的像素点得到修复后的最小图像。

根据本申请提供的一种图像修复方法,可自动实现对图像中斑痘点的修复。通过对待处理图像逐层缩小,可大大减小运算量,提高处理速度;而通过对图像进行逐层放大修复,最终获得修复后的斑痘点掩膜,可以使斑痘点的中心到边缘过渡的更顺滑,突兀感更小。由于本申请通过斑痘点周边像素点的平均值来替换斑痘点处的像素值,完成对图像中斑痘点的修复,修复后斑痘点处与周边的差异会非常小,使得修复后的整体效果非常自然。

图7为本申请实施例提供的一种图像修复装置的硬件结构示意图。该修复装置2000包括处理器21,还可以包括输入装置22、输出装置23和存储器24。该输入装置22、输出装置23、存储器24和处理器21之间通过总线相互连接。

存储器包括但不限于是随机存储记忆体(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、或便携式只读存储器(compactdiscread-onlymemory,cd-rom),该存储器用于相关指令及数据。

输入装置用于输入数据和/或信号,以及输出装置用于输出数据和/或信号。输出装置和输入装置可以是独立的器件,也可以是一个整体的器件。

处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessingunit,cpu),在处理器是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

存储器用于存储网络设备的程序代码和数据。

处理器用于调用该存储器中的程序代码和数据,执行上述方法实施例中的步骤。具体可参见方法实施例中的描述,在此不再赘述。

可以理解的是,图7仅仅示出了图像修复装置的简化设计。在实际应用中,图像修复装置还可以分别包含必要的其他元件,包含但不限于任意数量的输入/输出装置、处理器、控制器、存储器等,而所有可以实现本申请实施例的图像修复装置都在本申请的保护范围之内。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,rom),或随机存储存储器(randomaccessmemory,ram),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digitalversatiledisc,dvd)、或者半导体介质,例如,固态硬盘(solidstatedisk,ssd)等。

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