一种基于人脸色调与光影分离的自适应磨皮方法及系统与流程

文档序号:16268644发布日期:2018-12-14 22:05阅读:353来源:国知局
一种基于人脸色调与光影分离的自适应磨皮方法及系统与流程

本发明涉及图像处理技术领域,尤其涉及一种基于人脸色调与光影分离的自适应磨皮方法及系统。

背景技术

随着数码相机的日益普及、智能手机的拍摄功能不断发展,用户对数码相机、智能手机拍摄得到的数码照片效果也提出了更高要求。数码照片中的一个重要类别是人像照片。用户往往希望拍摄到的人像照片比本人更加美丽,因此各种针对人像照片进行处理美化的方法应运而生。

人像处理美化中比较重要的一种方法是人像磨皮技术。目前,各种摄影软件针对磨皮的算法,都是用高频滤波的各种变种方式来磨除色彩剧烈变化的区域。但是,这种方法在人物侧光时有意展现的光影效果往往也会被除去,使得照片丧失了立体感。同时,无差别的磨皮会把高清人像图片当中的皮肤纹理一并磨去,使得皮肤有浓重的塑料感,非常不真实。



技术实现要素:

针对现有技术的上述缺点,本发明提供了一种基于人脸色调与光影分离的自适应磨皮方法及系统。

本发明的一个方面提出了一种基于人脸色调与光影分离的自适应磨皮方法,包括如下步骤:

步骤a:通过人脸识别算法确定人像面部区域;

步骤b:对所述人像面部区域进行色调和光影分离,获得皮肤匀光色调区域和光影区域;所述皮肤匀光色调区域即人脸皮肤在标准匀光照下的色调区域,所述光影区域即人脸皮肤上的阴影区域;

步骤c:对所述光影区域通过反向补偿消除形成标准匀光照下的皮肤;

步骤d:对补偿后的人像面部区域进行磨皮;以及

步骤e:对经过磨皮的人像面部区域叠加步骤c提取的所述光影区域并输出。

优选地,步骤b进一步包括如下步骤:

步骤b1:对步骤a确定的人像面部区域剔除掉眉毛、眼睛、嘴巴、鼻孔区域;

步骤b2:构建皮肤的光影模型为i=s*d+l,其中i为拍摄到的人像的像素值,s为皮肤在标准匀光照下的颜色值,d为阴影程度,l为高光程度;这里i为已知的数值;

步骤b3:加入平滑限制,即设定s在人脸宽度直径范围内应该尽量平滑,d与l在人脸直径宽度的10%内应该尽量平滑;

步骤b4:在满足i=s*d+l的限制下求出s、d、l的平滑度的极大值,其中求得的s值表示匀光色调区域,d值和l值表示光影区域。

优选地,步骤b4中,通过对人像面部区域的图像进行普通高斯模糊后,带入上述限制条件,然后用牛顿梯度下降法,循环迭代约5次左右即能逼近出s、d、l的平滑度的极大值。

优选地,步骤c中,通过反向补偿,即根据i=s*d+l,得到s=(i-l)/d,从而获得所述光影区域的皮肤在标准匀光照下的像素值,所述像素值包括每个像素点的位置数据和颜色数据,这里,i为已知的原数值,l和d为步骤b4中求得的值。

优选地,步骤d进一步包括如下步骤:

步骤d1:根据所述人像面部区域的大小,获得皮肤上各种“瑕疵纹路”的形状;

步骤d2:对“瑕疵纹路”的形状进行判断,如为点状“瑕疵纹路”,则认为是痘印和雀斑,予以磨去,如为带状“瑕疵纹路”,则进一步获得所述带状“瑕疵纹路”的宽度;

步骤d3:判断所述带状“瑕疵纹路”的宽度是否大于规定阈值,如大于规定阈值,则认为是皱纹,予以磨去,如小于等于所述规定阈值,则认为是皮肤纹理,予以保留。

优选地,所述规定阈值为人脸直径宽度的0.8~1.2%。

优选地,获得所述“瑕疵纹路”的形状和宽度进一步包括如下步骤:

步骤d21:对标准匀光下的皮肤的像素值s提取梯度;

步骤d22:选取人脸直径的5%的滑动滤波窗口,依次统计窗口中梯度下降的方向,方向的范围为0到360度之间;

步骤d23:如果是偏均匀分布,则判断为点状或圆状“瑕疵纹路”;如果是偏双峰分布,且双峰间距接近150度至210度,则判断为带状“瑕疵纹路”;

步骤d24:对于所述带状“瑕疵纹路”,依次寻找每个梯度值明显的点,求离其最近的梯度值明显且梯度下降方向错开150度至210度的点的距离,对窗口内所有这样的点对间的距离求均值,即为所述带状“瑕疵纹路”的宽度。

本发明的另一个方面提供了一种基于人脸色调与光影分离的自适应磨皮系统,包括:人脸识别模块,通过人脸识别算法确定人像面部区域;色调和光影分离模块,对所述人像面部区域进行色调和光影分离,获得皮肤匀光色调区域和光影区域;所述皮肤匀光色调区域即人脸皮肤在标准匀光照下的色调区域,所述光影区域即人脸皮肤上的阴影区域;反向补偿模块,对所述光影区域通过反向补偿消除形成标准匀光照下的皮肤;磨皮模块,对补偿后的人像面部区域进行磨皮;以及叠加输出模块,对经过磨皮的人像面部区域叠加步骤c提取的所述光影区域并输出。

优选地,所述色调和光影分离模块进一步包括:区域剔除模块,对人脸识别模块确定的人像面部区域剔除掉眉毛、眼睛、嘴巴、鼻孔区域;模型构建模块,构建皮肤的光影模型为i=s*d+l,其中i为拍摄到的人像的像素值,s为皮肤在标准匀光照下的颜色值,d为阴影程度,l为高光程度;这里i为已知的数值;设定模块,加入平滑限制,即设定s在人脸宽度直径范围内应该尽量平滑,d与l在人脸直径宽度的10%内应该尽量平滑;极大值获取模块,在满足i=s*d+l的限制下求出s、d、l的平滑度的极大值,其中求得的s值表示匀光色调区域,d值和l值表示光影区域。

优选地,所述磨皮模块包括“瑕疵纹路”形状获取模块、“瑕疵纹路”形状判断模块和去除模块,所述“瑕疵纹路”形状获取模块,根据所述人像面部区域的大小,获得皮肤上各种“瑕疵纹路”的形状以及获得带状“瑕疵纹路”的宽度;所述“瑕疵纹路”形状判断模块,对“瑕疵纹路”的形状进行判断,如为点状“瑕疵纹路”,则认为是痘印和雀斑,如为带状“瑕疵纹路”,则进一步判断所述带状“瑕疵纹路”的宽度是否大于规定阈值;如大于规定阈值,则认为是皱纹;如小于等于所述规定阈值,则认为是皮肤纹理;以及所述去除模块对痘印和雀斑以及皱纹予以磨去,对皮肤纹理予以保留。

本发明具有如下有益效果:

本发明的基于人脸色调与光影分离的自适应磨皮方法处理后的皮肤比起无差别磨皮更具光影感和皮肤质感,让人像看上去没有浓烈的后期处理痕迹,大大提高了最后成品的用户满意度。

附图说明

图1是根据本发明的一个实施例的基于人脸色调与光影分离的自适应磨皮方法的流程图。

图2是根据本发明的一个实施例的基于人脸色调与光影分离的自适应磨皮装置的框图。

具体实施方式

下面通过实施例对本发明作进一步说明,其目的仅在于更好地理解本发明的研究内容而非限制本发明的保护范围。

如图1所示,本发明的一个实施例的基于人脸色调与光影分离的自适应磨皮方法,包括如下步骤a~e。

首先,步骤a:通过人脸识别算法确定人像面部区域。人脸识别算法可以是现有的一些人脸识别算法。

接着,步骤b:对步骤a中确定的人像面部区域进行色调和光影分离,获得皮肤匀光色调区域和光影区域。这里,所述皮肤匀光色调区域即人脸皮肤在标准匀光照下的色调区域,所述光影区域即人脸皮肤上的阴影和高光区域。

具体地,步骤b进一步包括下述步骤b1~b4。

步骤b1:对步骤a确定的人像面部区域剔除掉眉毛、眼睛、嘴巴、鼻孔区域。

步骤b2:构建皮肤的光影模型为i=s*d+l。其中i为拍摄到的人像的像素值,s为皮肤在标准匀光照下的像素值,d为阴影程度,l为高光程度。这里,i为已知的像素值。

步骤b3:加入平滑限制,即设定s在人脸宽度直径范围内应该尽量平滑,d与l在人脸直径宽度的10%内应该尽量平滑。即,一般认为在实际中阴影与高光区域的大小不会小于人脸直径的10%。所述人脸直径宽度是这样定义的,人脸识别会识别出面部轮廓点,选择双眼连线延长线与面部轮廓相交的两点,该两点之间的距离(单位:像素)即为人脸直径宽度。另外,这里的区域(匀光色调区域、光影区域)并不是互斥的,而是可以互相叠加的。

加入平滑限制的意义在于,该模型i=s*d+l中,s、d、l均为未知,在不加其它限制条件下一个方程无法求出三元未知数,所以本发明加入了平滑限制。

步骤b4:在满足i=s*d+l的限制下求出s、d、l的平滑度的极大值,其中求得的s值表示匀光色调区域,d值和l值表示光影区域。

该步骤b4中,具体地,可以对所述人像面部区域的图像进行普通高斯模糊后带入上述限制条件,然后用牛顿梯度下降法,循环迭代约5次左右,即能逼近出s、d、l的平滑度的极大值。具体地,首先取整个面部区域剔除眼睛、眉毛、嘴巴、鼻孔后的皮肤区域为计算区域,取该区域中所有像素点的颜色的平均值为s的迭代初始化值,记为s0;取0为l的迭代初始化值,即l0=0。接下来,第一次迭代按如此顺序完成:将s0和l0代入i=s*d+l中可求出d的第一次迭代值d1,对d1做直径为人脸宽度10%的高斯模糊得到d1’。将s0和d1’代入i=s*d+l中可求出l的第一次迭代值l1,对l1做直径为人脸宽度10%的高斯模糊得到l1’。将d1’和l1’代入i=s*d+l中可求出s的第一次迭代值s1,对s1做直径为人脸宽度100%的高斯模糊得到s1’。如此完成第一次迭代后,按照该次的顺序将s1’和l1’代入依次求得d2、d2’、l2、l2’、s2、s2’……如此继续迭代。当迭代到第五次后计算出的s5、d5、l5即认为是s、d、l的最终逼近值(极大值)。

在其他实施例中,上述步骤b4,本领域的技术人员也可以使用其他已知的方法求得该方程中的未知数的极大值。

接下去是步骤c:对所述光影区域通过反向补偿消除形成标准匀光下的皮肤。该步骤c中,通过反向补偿,即根据步骤b中的模型i=s*d+l,得到s=(i-l)/d,从而获得所述光影区域的皮肤在标准匀光照下的像素值,这里所述像素值包括每个像素点的位置数据和颜色数据,这里,i为已知的像素值,l和d为步骤b4中求得的值。

由于步骤b4中加入了平滑约束即把各个图像先做高斯模糊后算最优解(极大值),这样并不会明显改变区域的大小但是颜色都被模糊过了(即i、s被模糊过)。但步骤c中所要求的s不仅仅是区域(位置数据)还有每个像素的具体颜色(颜色数据),所以需要通过原来的i值及步骤b4中获得的l和d来获得。

接下去是磨皮步骤。步骤d:对补偿后的人像面部区域进行磨皮。这里的磨皮即提取图像高频变化区域(“瑕疵纹路”区域),进一步包括步骤:d1:根据所述人像面部区域的大小,获得皮肤上各种“瑕疵纹路”的形状;步骤d2:对“瑕疵纹路”的形状进行判断,如为点状“瑕疵纹路”,则认为是痘印和雀斑,予以磨去,如为带状“瑕疵纹路”,则进一步获得所述带状“瑕疵纹路”的宽度;步骤d3:判断所述带状“瑕疵纹路”的宽度是否大于规定阈值,如大于规定阈值,则认为是皱纹,予以磨去,如小于等于所述规定阈值,则认为是皮肤纹理,予以保留。

这里,所述规定阈值为人脸直径的0.8%~1.2%。优选地,所述规定阈值可以为1%。

下面介绍获得皮肤上各种“瑕疵纹路”的形状和宽度的具体方法。该方法进一步包括如下步骤:

步骤d21:对标准匀光下的皮肤的像素值s提取梯度;

步骤d22:选取人脸直径的5%的滑动滤波窗口,依次统计窗口中梯度下降的方向,方向的范围为0到360度之间;

步骤d23:如果是偏均匀分布,则判断为点状或圆状“瑕疵纹路”,即痘印和雀斑,应全部予以磨去;如果是偏双峰分布,且双峰间距接近150度至210度,则判断为带状“瑕疵纹路”;

步骤d24:对于所述带状“瑕疵纹路”,依次寻找每个梯度值明显的点,求离其最近的梯度值明显且梯度下降方向错开150度至210度的点与前述梯度值明显的点之间的距离,并对窗口内所有这样的点对间的距离求均值,即为所述带状“瑕疵纹路”的宽度。

最后是步骤e:对经过步骤d的磨皮后的人像面部区域s’叠加步骤c提取的所述光影区域并输出,即s’*d+l。

如上所述,通过本发明的自适应磨皮方法处理后的皮肤比起无差别磨皮更具光影感和皮肤质感,让人像看上去没有浓烈的后期处理痕迹,大大提高了最后成品的用户满意度。

本发明的一个实施例还提供了一种基于人脸色调与光影分离的自适应磨皮装置20,如图2所示,包括人脸识别模块21,通过人脸识别算法确定人像面部区域;色调和光影分离模块22,对所述人像面部区域进行色调和光影分离,获得皮肤匀光色调区域和光影区域;所述皮肤匀光色调区域即人脸皮肤在标准匀光照下的色调区域,所述光影区域即人脸皮肤上的阴影区域;反向补偿模块23,对所述光影区域通过反向补偿消除形成标准匀光照下的皮肤;磨皮模块24,对补偿后的人像面部区域进行磨皮;以及叠加输出模块25,对经过磨皮的人像面部区域叠加步骤c提取的所述光影区域并输出。

优选地,所述色调和光影分离模块22进一步包括:区域剔除模块,对人脸识别模块确定的人像面部区域剔除掉眉毛、眼睛、嘴巴、鼻孔区域;模型构建模块,构建皮肤的光影模型为i=s*d+l,其中i为拍摄到的人像的像素值,s为皮肤在标准匀光照下的颜色值,d为阴影程度,l为高光程度;这里i为已知的数值;设定模块,加入平滑限制,即设定s在人脸宽度直径范围内应该尽量平滑,d与l在人脸直径宽度的10%内应该尽量平滑;极大值获取模块,在满足i=s*d+l的限制下求出s、d、l的平滑度的极大值,其中求得的s值表示匀光色调区域,d值和l值表示光影区域。

优选地,所述磨皮模块24包括“瑕疵纹路”形状获取模块、“瑕疵纹路”形状判断模块和去除模块,所述“瑕疵纹路”形状获取模块,根据所述人像面部区域的大小,获得皮肤上各种“瑕疵纹路”的形状以及获得带状“瑕疵纹路”的宽度;所述“瑕疵纹路”形状判断模块,对“瑕疵纹路”的形状进行判断,如为点状“瑕疵纹路”,则认为是痘印和雀斑,如为带状“瑕疵纹路”,则进一步判断所述带状“瑕疵纹路”的宽度是否大于规定阈值;如大于规定阈值,则认为是皱纹;如小于等于所述规定阈值,则认为是皮肤纹理,所述去除模块对痘印和雀斑以及皱纹予以磨去,对皮肤纹理予以保留。

显然,本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围。

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