一种基于深度学习的人脸贴图水印遮挡修复方法与流程

文档序号:34228432发布日期:2023-05-24 11:01阅读:136来源:国知局
一种基于深度学习的人脸贴图水印遮挡修复方法与流程

本发明涉及语义分割和图像修复领域,尤其涉及一种基于deeplab和deepfill的人脸贴图水印遮挡修复方法。


背景技术:

1、近年来,计算机技术的迅猛发展推动了人脸识别和物体检测等技术的发展和进步。在实际的生产工作中,有些比如照片修复等工作的要求,会需要对加了水印或贴图的图像进行修复。而随着深度学习的发展,图像修复已经取得了一定的进展。

2、但几乎所有的图像修复模型都需要用户手动去标记图像需要修复的位置,这通常要消耗大量的人力资源。因此研究一套能快速标记图像修复位置的应用是非常迫切的,而且如果能自动完成修复工作将更具有实际意义。

3、然而并不是所有的图像都能精准地标记修复位置。对于自然图像而言,因为图像中的元素太多,往往在实验的过程中机器会难以判断实际物体的具体轮廓,这会导致在下一步的图像修复过程中给根据具体轮廓训练的模型带去过多的噪声,从而导致修复效果不理想。而对于人脸特写的图像而言,一般人脸都位于图像的正中部,因此图像的结构非常清晰。其次,如果需要修复的内容是水印或者贴图的话,修复区域的轮廓较为清晰,实现起来相对于自然遮挡物体而言更实际。本发明注重的难点不仅在于对于修复区域的轮廓提取,而更是需要提取出一个适合下一步图像修复的轮廓。过大的轮廓会丢失一定的图像语义信息,过小的轮廓又会导致给图像修复环节带去过多噪声。

4、因此,该技术主要注重两个方向的研究,一个是语义分割提取遮挡人脸的水印贴图轮廓,一个是根据上一步得到的轮廓完成原始图像的修复。

5、语义分割现在主流主要采用全卷积的分割模型。最早提出的是fcn(fullyconvolutional networks)模型,该模型的特点是全卷积网络没有全连接层,全部由卷积层构成。但这种方法得到的结果不太精确,对图像的细节不敏感,没有考虑像素与像素之间的关系,缺乏空间一致性,具体的表现即容易出现像素与像素之间的断联,得到的结果空洞较多。

6、针对fcn在语义分割时感受野固定和分割物体细节容易丢失或被平滑的问题,segnet被提出。segnet和fcn思路十分相似,编码部分主要由vgg(visual geometry group)16网络的前13个卷积层和5个池化层组成,解码部分同样也由13个卷积层和5个上采样层组成,最后一个解码器输出的高维特征被送到可训练的归一化指数函数分类器中,用于分类每个独立的像素。特别地,segnet网络采用了池化指数来保存图像的轮廓信息,降低了参数数量。但当对低分辨率的特征图进行去池化时,会忽略邻近像素的信息。

7、基于全卷积对称语义分割模型得到分割结果较粗糙,忽略了像素与像素之间的空间一致性关系。于是google提出了一种新的扩张卷积语义分割模型deeplab,考虑了像素与像素之间的空间一致性关系,可以在不增加参数量的情况下增加感受野。

8、图像修复的发展主要依附于神经网络的发展。2017年,ying tai,jian yang,xiaoming liu,chunyan xu提出了一个深度持续记忆网络,该网络引入了一个包含递归单元和门控单元的内存块,以通过自适应学习过程明确地挖掘持续记忆。递归单元学习当前状态在不同接受域下的多层表征。这些表征和之前内存块的输出被合并并发送至门控单元,门控单元自适应控制应保留多少先前状态,并决定应储存多少当前状态。然而该方法仅被利用于图像降噪或超分辨率中。

9、2018年guilin liu,bryan catanzaro等人提出使用部分卷积网络,其中卷积被掩蔽并重新归一化为仅以有效像素为条件。他们还设计了一种机制,可自动为下一层生成更新的遮罩作为前向传递的一部分。对于不规则遮罩,他们的模型优于其它方法,并通过与其它方法进行定性、定量对比对他们的方法进行了验证。同年,jaakko lehtinen,timo aila等人将基本统计推理应用于机器学习的信号重构——学习将损坏的观察结果映射到干净的信号上——由此得到一个简单而有力的结论:在某些常见的情况下,可以在不观察清晰信号的前提下学会恢复信号,达到接近或等于使用清晰样本进行训练的性能。然而该方法不能从距离遥远的区域提取出近似修复区域的特征,这导致修复区域仅能感受到修复区域边界上的信息。而在本发明中修复边界上参杂噪声信息的可能性较高,因此需要一个能获得全图语义信息的方法。

10、2018年yu j,lin z,yang j等人提出了deepfill模型,提出了一种语境注意力层来从距离遥远的区域提取近似待修复区域的特征。该模型第一阶段粗修复网络:使用空洞卷积+重建损失先补出一个模糊粗糙的结果;第二阶段精修复网络:使用带语境注意力模块空洞卷积+重建损失+全局、局部gan-gp对抗损失来进一步细化结果。该模型与本发明的出发点相对契合,因此本发明的图像修复阶段着重于对该模型的超参数进行优化。

11、本发明针对待修复图像中提取适合图像修复的轮廓这一难点,旨在实现对图像待修复区域进行轮廓提取后能有效进行图像修复这一目标,提出了一种能提取合适的待修复区域轮廓并合理进行图像修复的方法。


技术实现思路

1、本发明提出了一种基于深度学习的人脸贴图水印遮挡修复方法。本发明通过语义分割得到图像中应被修复的贴图水印遮挡部分,再通过图像修复模型对遮挡部分进行修复,实现了对人脸遮挡图像的快速准确修复,克服了现有人工ps等手段工作繁琐,效率低下的现象。

2、为实现上述目的,本发明的技术方案包含以下三个内容:

3、1.根据预先准备好的人脸图像和贴图图像得到对应的合成图像和遮罩图像;

4、2.用语义分割模型对合成图像和遮罩图像进行训练;

5、3.用图像修复模型对人脸图像和遮罩图像进行训练。

6、每个内容对应的具体步骤如下:

7、1:根据预先准备好的人脸图像和贴图图像得到对应的合成图像和遮罩图像:

8、1.1通过pil等工具对人脸图像素材和贴图素材进行遍历和整合,得到n张合成图像c={c1,c2,…,cn};cn表示第n张图像;以及n张对应的遮罩图像m={m1,m2,…,mn};mn表示第n张图像;以及n张原始人脸图像o={o1,o2,…,on};on表示第n张图像;已经n张贴图图像s={s1,s2,…,sn};sn表示第n张贴图图像;

9、1.2通过pil工具按顺序读取每张原始图像on以及其对应的贴图图像sn,并将图像由1024x1024缩放至650x650;图像的分辨率应尽量满足长宽相等,以此保证训练结果的普适性;

10、1.3将on图像调整为rgba结构,同时创建一个新底层图片q;将sn粘贴到底层图片上,再将新得到的底层图片q`与on合成,得到合成图像cn;

11、1.4对每张贴图图像sn进行逐像素遍历,根据像素的坐标位置可以得到横坐标x和纵坐标y;利用pil工具中的load函数得到当前像素的rgba值队列img_array[x,y],以下简称a;根据队列的排列方式可知a[3]即为像素的透明度,当透明度为255时,将a的前三个值即a[0],a[1],a[2]都设为0,即此时图像中非透明部分将转换成黑色;而当透明度为0时,将a的前三个值即a[0],a[1],a[2]都设为255,即此时图像中非透明部分将转换成白色;接着创建一个新的底层图片p,p的尺寸为650x650,rgba属性为(255,255,255,255);然后将修改后的sn粘贴到p上,于是得到了当前贴图图像sn对应的遮罩图像mn。

12、进一步的改进,步骤1.2中,图像的尺寸要求如下:

13、人脸图像的缩放尺寸应结合贴图图像进行变动,一般根据分辨率较小者的尺寸变动,但一般需要满足至少512x512的分辨率,不然会导致图像训练前就丢失过多细节;

14、情况一、人脸图像比贴图图像小时,人脸图像应保持原分辨率,此时贴图图像缩放至70%至80%;

15、情况二、贴图图像比人脸图像小时,人脸图像应缩放至贴图图像的1.2至1.3倍。

16、进一步的改进,步骤1.3中,所述的合成操作要求如下:

17、情况一、当修复场景应用于一般的中心区域修复时,贴图在q上的粘贴部位为分辨率的10%的位置。

18、情况二、当修复场景需要一些复杂情况,类似半透明贴图水印以及边角水印时,应对图像进行相应的图像增强操作;利用albumentations可以实现图像的随机平移,灰度增加等。

19、2:用语义分割模型对合成图像和遮罩图像进行训练:

20、2.1创建类别集class[],按顺序加入字符串“background”,“sticker”;创建类别集对应的rgb值集values[],按顺序加入数组[0,0,0],[255,255,255];类别集应当根据实际要求增加或者减小,其对应的标签颜色可以根据数据集进行调整;

21、2.2分别读入合成图像集c和遮罩图像集m;

22、对c不进行额外操作,直接执行2.3步;

23、对于每个m中的单个遮罩图像mn,按顺序读取values[],对当前遮罩图像的每个像素的rgb值分别与values[]中的每个标签作比较,得到相应个数的布尔矩阵;对每个布尔矩阵的最后一维进行布尔值的比较,将最后一维返回单个布尔值;创建一个semantic[]数组,将每个标签得到的矩阵添加至该数组中,等到所有标签对应的矩阵添加完毕后,对该数组沿着最后一维的方向进行堆叠,最后得到一个三维数组,前两维即为图像的宽和高,第三维即为图像的标签数;

24、2.3对图像集c和m进行增强操作,先将图像全部缩小至256x256的分辨率,再根据实际需要对图像进行顺时针或逆时针30度以内的倾斜,同时适当加上模糊滤镜;

25、2.3对图像集c和m进行预处理操作,将平均值设置为[0.485,0.456,0.406],标准差设置为[0.229,0.224,0.225],输入范围设置为[0,1]。

26、2.4定义训练的各种参数;设置迭代次数为50次,运行设备选为gpu,损失函数设置为diceloss:

27、

28、ldice表示x和y之间的相似度,取值范围在[0,1]之间;

29、评判标准设置为iou(intersection over union):

30、

31、式中intersection表示物体实际区域与推测区域重合的面积,union表示两个区域整体所占的面积;当训练的iou高于原有最好的模型时,就将新模型保存替换原模型;

32、优化器选择adam,学习率设置为0.0001;学习率的调整函数ηt为:

33、

34、式中ηmin为最低学习率,ηmax为初始学习率,tcur为最近一次学习率重启过去的次数,ti为两次重启间的周期次数;

35、2.5将参数导入deeplab模型中开始训练,最后得到一个可以分辨合成图像中贴图水印位置的模型。

36、3:用图像修复模型对人脸图像和遮罩图像进行训练:

37、3.1导入人脸图像集o,和遮罩图像m(其中m以灰度图像的格式读入),对m中的每张mn先缩小至256x256分辨率,之后将得到的矩阵图像除以255,再转换成uint8类型,最后进行两次对第一维的扩维;

38、3.2对模型的判别器和生成器的学习率进行调整,优化器同样选择adam,学习率设置为0.0001,其中adam的beta1设为0.5,beta2设为0.999,其余设置皆按照默认设置;

39、3.3将参数导入deepfill模型中开始训练,最后得到一个可以根据遮罩给出的位置对图片进行修复的模型。

40、本发明的优点:

41、本发明利用深度学习的优势,通过预训练大量的数据,实现了一种短时间内便可以达到高准确率的图像自动修复模型,克服了现有的人工处理下工作繁琐,效率低下且准确率不高的问题。

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