一种基于图像修复模型的人脸自动去痘方法与流程

文档序号:16885625发布日期:2019-02-15 22:36阅读:543来源:国知局
一种基于图像修复模型的人脸自动去痘方法与流程

本发明涉及图像处理领域,具体涉及一种基于图像修复模型的人脸自动去痘方法。



背景技术:

随着各类视频社交娱乐软件和美颜相机的普及,人们对于拍照后图片的美化处理越来越重视。但是针对皮肤去痘,目前大致有两种思路:第一,借助磨皮美白等整体处理方法,通过增大这些操作的阈值来缓解皮肤存在的瑕疵。这种方法没有从根本上解决问题,对于痘印较为明显或较为密集的情况,处理后的结果在视觉上很难达到要求。

第二,如ps和美颜相机,需要用户手动指定痘印的位置,算法通过类似附近选区替换的方法去痘。这种方法去痘效果较好,但是需要较多的用户干预,显然对于很多痘印的情况需要花费用户较多的时间,比较繁琐耗时。



技术实现要素:

本发明针对现有技术的不足,提出一种基于图像修复模型的人脸自动去痘方法,具体技术方案如下:

一种基于图像修复模型的人脸自动去痘方法,其特征在于:

采用以下步骤,

步骤1:确定图片中人脸位置,通过人脸检测模块识别图片中的人脸,通过人脸68个关键点定位人脸范围,得到人脸范围矩形框;

步骤2:确定人脸肤色范围,以人脸范围矩形框为内核,沿人脸范围矩形框外周构造一个填充区域;

利用rgb肤色检测算法定位肤色区域,使用轮廓填充方法填充每一个检测到的肤色区域,然后使用漫水填充方法锁定人脸肤色区域;

步骤3:对人脸存在的痘印进行定位,将位于rgb空间的人脸转换到hsv空间,选取饱和度s通道,确定在饱和度s通道中保存的痘印信息,设定有阈值c;

然后选取25*25像素为标准块,在标准块中选取3*3像素块为中心块,得到标准块的平均饱和度值m,确定平均饱和度值m与中心块的饱和度值a的差值b,通过比较c与b的大小来判断是否为痘印;

步骤4:建立修复模型,随机从人脸肤色区域中截取m*m像素大小的图片作为训练图片,在该训练图片中随机抠n*n像素大小的空洞作为要修复的区域,将该训练图片作为神经网络的输入用于训练整个修复模型,n<m;

所述神经网络包括粗粒度网络和细粒度网络,训练图片先通过粗粒度神经网络重建图片内容损失,得到第一阶段图片,再将第一阶段图片通过一个细粒度网络重建局部纹理,最终得到一阶段去痘图片;

步骤5:设置初始修复模板,该修复模板创建为,创建一张与原图大小相同的掩膜图片,在掩膜图片中有痘印的地方像素值置为255,没有痘印的像素值置为0,将该初始修复模板分配到稀疏模板;

步骤6:利用模板对痘印进行修复。

进一步地:所述人脸关键点采用dlib库中的68个关键点位置信息。

进一步地:初始修复模板分配到稀疏模板的方法为,

s1:将已经确定的痘印从初始修复模板中分离,所有的痘印组成痘印集合q,对痘印集合q中每个痘印按位置进行编号,确保每一个痘印有唯一的位置编号;

s2:设置有密集指数s,如果初始修复模板内的痘印数量超过密集指数s,则判断该修复模板为密集型,进入步骤s5,否则,进入步骤s4;

s3:对初始修复模板范围内的痘印进行合并,进入到s7;

s4:将该初始修复模板分配到t个稀疏的模板中,t>1,以空洞大小的一半d作为分配依据;

s5:在痘印集合q中随机选取一个痘印作为种子点,以该种子点生成一个稀疏模板;

s6:逐个遍历痘印集合q中的痘印,对痘印与种子点之间的距离超过d的痘印加入到稀疏模板中;

s7:重复s5和s6,直到将痘印集合q中的痘印分配到不同的稀疏模板中,进入步骤6。

本发明的有益效果为:第一,用户体验好,不需要用户指定痘印的位置,算法可以自动完成去痘。第二,相对于整体的较大程度的磨皮美白,本发明能够较为彻底的清除痘印同时较为自然。本发明能有效的减少手工修图的时间,不需要人工指定去痘的区域。相对于目前的去痘方法,具有较强的彻底性和便捷性。相对于目前的过度磨皮美颜方法,本发明能够有效的保留原来的肤质,直观上看起来更加真实自然。

附图说明

图1为本发明的工作流程图;

图2为神经网络训练图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

如图1和图2所示:

一种基于图像修复模型的人脸自动去痘方法,

采用以下步骤,

步骤1:确定图片中人脸位置,通过人脸检测模块识别图片中的人脸,通过人脸68个关键点定位人脸范围,得到人脸范围矩形框,该人脸关键点可以使用如dlib库有68个关键点位置信息;

步骤2:确定人脸肤色范围,以人脸范围矩形框为内核,沿人脸范围矩形框外周构造一个填充区域;

利用rgb肤色检测算法定位肤色区域,肤色检测结果会把部分非肤色,为头发和背景等误检为肤色,因此,再使用轮廓填充方法填充每一个检测到的肤色区域,然后使用漫水填充方法锁定人脸肤色区域;

步骤3:对人脸存在的痘印进行定位,将位于rgb空间的人脸转换到hsv空间,选取饱和度s通道,确定在饱和度s通道中保存的痘印信息,设定有阈值c;

然后选取25*25像素为标准块,在标准块中选取3*3像素块为中心块,得到标准块的平均饱和度值m,确定平均饱和度值m与中心块的饱和度值a的差值b,通过比较c与b的大小来判断是否为痘印,采用该种方法能够准确定位痘印位置;

步骤4:建立修复模型,随机从人脸肤色区域中截取m*m像素大小的图片作为训练图片,在该训练图片中随机抠n*n像素大小的空洞作为要修复的区域,将该训练图片作为神经网络的输入用于训练整个修复模型,n<m;

所述神经网络包括粗粒度网络和细粒度网络,训练图片先通过粗粒度神经网络重建图片内容损失,得到第一阶段图片,再将第一阶段图片通过一个细粒度网络重建局部纹理,最终得到一阶段去痘图片,该修复模型对于皮肤存在较多且分布较为集中的痘印修复很容易带来纹理破坏或起皱,一阶段去痘图片上任然留有痘印;

步骤5:设置初始修复模板,该修复模板创建为,创建一张与原图大小相同的掩膜图片,在掩膜图片中有痘印的地方像素值置为255,没有痘印的像素值置为0,将该初始修复模板进行分配,该初始修复模板分配方法为,

s1:将已经确定的痘印从初始修复模板中分离,所有的痘印组成痘印集合q,对痘印集合q中每个痘印按位置进行编号,确保每一个痘印有唯一的位置编号;

s2:设置有密集指数s,如果初始修复模板内的痘印数量超过密集指数s,则判断该修复模板为密集型,进入步骤s4,否则,进入步骤s3;

s3:对初始修复模板范围内的痘印进行合并,进入到s7;

s4:将该初始修复模板分配到t个稀疏的模板中,t>1,以空洞大小的一半d作为分配依据;

s5:在痘印集合q中随机选取一个痘印作为种子点,以该种子点生成一个稀疏模板;

s6:逐个遍历痘印集合q中的痘印,对痘印与种子点之间的距离超过d的痘印加入到稀疏模板中;

s7:重复s5和s6,直到将痘印集合q中的痘印分配到不同的稀疏模板中;

步骤6:利用模板对痘印进行修复。

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