一种使用全卷积神经网络生成证件照Trimap图的方法与流程

文档序号:16253687发布日期:2018-12-12 00:15阅读:1477来源:国知局
一种使用全卷积神经网络生成证件照Trimap图的方法与流程

本发明涉及计算机视觉的技术领域,尤其是指一种使用全卷积神经网络生成证件照Trimap图的方法。



背景技术:

证件照是各类证件中证明持有者身份的相片。人们在日常生活中需要办理各种各样的证件,而为制作这些证件所拍摄的照片也需经过特定的处理才能使用。一种很常见的证件照的处理方式是替换照片背景颜色,所涉及到的核心技术包括图像分割与抠图。大部分效果理想的抠图算法都依赖于Trimap图的输入,Trimap图的质量也直接影响了抠图结果,而目前针对Trimap自动生成的研究甚少,手工对图片进行标记对人力和时间的耗费也都不小,因此自动生成高质量的Trimap图的意义不言而喻。如果待处理的图片具有某些特定的相似的性质,我们就可以利用这些更加具体的特征来进行Trimap图自动生成的工作。通常,证件照具有背景简单、人像位置规范的特点,这些共有的特性为寻找一种用于证件照分割的方法提供了非常有价值的信息。然而由于拍摄环境、拍摄技术以及人们自身发型、衣服等因素的影响,用户提供的照片可能存在曝光不均匀、模糊、聚焦不清,头发丝过于散乱、衣服颜色与背景相近等问题,现有的研究成果在处理这类照片时往往得不到理想的效果,这也是处理这类问题的难点。

目前,C.Rother等人提出一种利用了图像中的纹理信息和边界信息来进行分割的Grabcut算法,如文献[C.Rother,V.Kolmogorov,and A.Blake.“GrabCut”—Interactive Foreground Extraction using Iterated Grap Cuts.In ACM Transactions on Graphics,2004,23(3):309-314.],该算法对Graghcut做了改进,不断进行分割估计和模型参数学习的交互迭代,简化了用户交互,通过border matting技术让边缘更加自然。此外,还有学者对证件照分割问题提出了有针对性的算法,如文献[谭文双.证件照人像自动抠图与合成.华南理工大学,2014.],该工作提出一种基于Grabcut图像分割的Trimap图自动生成方法,改进了Bayesian算法,在原算法基础上加入了α平滑约束项,提高了抠图的效果,并构建了一个抠图系统,自动处理成功率达到75%以上。文献[钟超军.证件照人脸自动偏色校正和高光去除.华南理工大学,2015.]提出一种基于二次函数的色彩映射方法来解决证件照中的偏色,自动处理的成功率达到70%以上。作者在经典的编辑传播的方法上加入了模糊来编辑人脸的局部区域,克服了经典编辑传播方法在编辑人脸局部区域时会影响人脸其他区域的问题。

近年来,全卷积网络被应用在图像分割领域,取得了很好的效果。J.Long等人改编当前的分类网络(AlexNet,the VGG net,and GoogLeNet)到完全卷积网络,并通过微调传递它们的学习表现到分割任务中,如文献[J.Long,E.Shelhamer,and T.Darrell.Fully Convolutional Networks for Semantic Segmentation.IEEE Transactions on Pattern Analysis&Machine Intelligence,2015,79(10):1337-1342.]。该工作将图像预测扩展到像素级别的预测,它定义了一个跳跃式的架构,结合来自深层的语义信息和来自浅层的表征信息来产生准确和精细的分割。全卷积网络在图像分割问题中有非常出色的表现。X.Shen等人提出了一种用于肖像的自动抠图方法,如文献[X.Shen,X.Tao,H.Gao,C.Zhou,and J.Jia.Deep automatic portrait matting.In Proceedings of ECCV 2016,92-107.],该方法不需要用户交互,它基于一种具有几个新组件的端到端CNN框架,包括trimap标记、形状掩模合并和抠图层设计。但当背景和前景对比度很低或未知区域很大时,这种方法并不能取得理想的效果。

本发明在了解和认识了近年来的研究状况后,探究利用全卷积神经网络来进行证件照分割及生成Trimap图的方法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出了一种使用全卷积神经网络生成证件照Trimap图的方法,以提高证件照头像抠图的质量。这种方法在肩膀和衣服的识别、分割方面取得了较好的效果。

为实现上述目的,本发明所提供的技术方案为:一种使用全卷积神经网络生成证件照Trimap图的方法,包括以下步骤:

1)数据输入

给定任意分辨率的一张证件照,其保存格式为jpg图片,将这个jpg格式的图片作为网络的输入,由网络直接读取;

2)对全卷积神经网络模型进行训练

对全卷积神经网络模型进行训练,训练使用包含人体头像(包括肩膀)区域的图像数据集进行训练;

3)使用完成训练的模型对输入图片进行分割

使用一个全卷积神经网络对输入的数据进行特征提取,并进行分割,全卷积神经网络的输出是一张单通道的图片,是对证件照的分割图像,保存的图像格式为png格式,分割结果为Trimap图,即将图像分为三个部分,前景、背景和它们之间的过渡区域。

在步骤2)中,建立的数据集为:数据集来源为实验室项目需要采集的一批证件照,采集后对它们进行筛选,确保涵盖男性、女性,老年人、成年人、儿童,长发、短发,直发、卷发,各种颜色的衣服,灰色和蓝色背景的不同证件照,并剔除那些曝光不均匀、聚焦不清的照片;所有图片都基于人像位置被裁剪为相同的尺寸,以保证人像的可用性;

为了提高分割精度,使用数据增强的方法对数据集进行增强,数据增强的方法有缩放、旋转和添加噪声;缩放是对图片进行尺寸缩放,采用的缩放比例有0.6,0.8,1.2和1.5倍;旋转则主要有45°旋转、-45°旋转、135°旋转、-135°旋转;添加的噪声为标准的高斯噪声。

在步骤2)中,使用的训练方法为:训练过程中需要输入标签以计算损失值进行权值更新,与图像分类中使用的标签不同,图像分割的标签需要对每一个像素进行标记,因此需要先人工对证件照进行标注;

此次分割任务是获得证件照的Trimap图,因此将图片中的物体分为3类,第一类为确定前景,即人的头像包括肩膀区域,第二类为确定背景,第三类为确定前景和确定背景之间的过渡区域;

在制作标签集时,首先使用一个可交互的自动Trimap图生成软件对图像进行人工的头像区域分割,做法是先用软件进行初步分割标记,该软件能自动地大致分割出前景、背景和过渡区域,对于分割不准确的部分,再用交互的方式进行编辑修正;每个区域都使用一个纯色RGB值进行标记;由于网络最后的输出是一张单通道图片,为了与之相对应,因此标签集的图片也必须为单通道的图片,为此,使用图像处理算法对上述图片进行处理,转换为单通道的灰度图片,图片格式为jpg;

本次完成的标签集的标签规划是将背景区域的像素标记为0,过渡区域的像素标记为1,前景区域的像素标记为2,因此将背景区域的像素值全部修改为0,过渡区域的像素值全部修改为1,人的头像包括肩膀区域的像素值全部修改为2,这些图片也即是最终作为网络输入的标签集的图片,图片格式为png;

训练过程使用带动量的随机梯度下降法优化函数进行训练,训练当中使用的初始动量值为0.99,权重递减值为0.0005,鉴于机器内存的限制,训练的批大小为1;

训练是使用微调的方法进行训练的,微调使得训练更加有效率,在训练时,权值的初始化是很重要的问题,没有正确进行初始化往往会导致输出全为0的情况;具体情况如下:

由于模型最后只输出3个通道,因此从原始的21个通道中随机选择参数进行初始化;

训练共使用20690个训练样本,4000个测试样本;采用增量式训练,固定测试样本集,不断增加训练样本,观察测试结果的变化;初始学习率设置为1e-6,调整学习率将使得权值在训练过程当中波动范围改变;当精度达到稳定水平时,增加新的训练样本;同时,当loss值达到稳定水平时调整学习率,使其降低到1e-7;经过24万次迭代,网络得到了充分的训练,训练完成后网络能够对图像中的手部区域进行高精确度的分割;

如果在初次训练过程中,发现网络无法抓取特征,即网络输出为全零时,则需要调整训练参数,包括增加学习率、增加训练次数以及扩大数据集。

在步骤3)中,使用的全卷积神经网络分为两个部分,第一部分由多个卷积层和池化层堆叠,提取出图片的特征;而第二部分则采用反卷积层对图片进行上采样,将图片恢复成原始输入的分辨率大小,获得分割结果;

第一个部分的网络结构是单一的卷积层与池化层的重复:由六个小部分组成,第一第二小部分均为两层卷积层与一层池化层,池化层采用的是最大池化方法,第三、四、五小部分均为三层卷积层和一层池化层,第六小部分为两个卷积层;以上各卷积层参数设置在卷积核数量和大小、滑动步长、像素填充值上不尽相同,各池化层参数设置相同;最终,第一个部分的结构为由20层组成的网络,包括15个卷积层和5个池化层;其中,需要提到的一点是:第一部分的网络结构中的卷积层结果输出的图像尺寸均是与输入图像尺寸相同的,因此,在这个部分的网络当中,会使图像尺寸缩小的只有池化层,池化层会使图像的大小变为原来的二分之一,由于存在5个池化层,因此,第一部分网络最后的卷积层输出将是大小为原始图像32分之一的特征图;

第二部分的网络结构将输出最后的分割结果,因此将这部分结构看作输出层:首先将第一部分网络最后的输出再次经过一个附加的卷积层,然后是一个反卷积层,反卷积层对特征图进行上采样,这里采用的是双线性插值的方法,将输入图片的尺寸变为原来的32倍,最终得到网络的预测结果,该结果即为最终得到的分割好的Trimap图。

本发明与现有技术相比,具有如下优点与有益效果:

1、本发明提出一个使用全卷积神经网络生成证件照Trimap图的方法,给定一张证件照,该方法能够自动得到对应的Trimap图分割结果,弥补了过往研究对于证件照处理方面的空缺,具有极大的应用价值和意义。

2、通过本发明方法不仅能够得到证件照分割结果,而且由于本发明的分割结果为高质量的较精准的Trimap图,为后续的抠图工作提供了良好的输入,带来极大的便利和效果的提升。同时,本发明方法的抗噪性更好,鲁棒性更高。在以往的人像分割研究工作中,大部分都是基于颜色模型的,建立颜色模型不仅需要大量的样本,而且分割的效果并没有达到较为理想的程度,在背景与人的皮肤颜色或衣服颜色、花纹相近时,会出现不同程度的分割错误。而使用全卷积神经网络进行人体头像包括肩膀区域的分割,能够充分利用神经网络的自我学习特性,自动的学习人体头像区域的特征,训练完成后的网络模型,能够很好的把握人体头像区域的特征,从而较好的分割出人体头像区域。而且,在图像中信息较为复杂的情况下,例如头发丝繁乱,背景与衣服颜色相近等情况,也能够对人体头像包括肩膀区域进行具有一定精确度的分割。另外,在使用数据集外的图片进行测试时,也能够获得很好的结果。

3、使用简单,效率更高,代码量更低。往期的人像分割研究工作均需要建立较为复杂的模型,这涉及到比较大的代码量以及计算量,而且,要得到较好的图像分割结果,往往还需要较为复杂的后处理,例如边缘处理。而使用全卷积神经网络对人的头像包括肩膀区域进行分割,只需要建立网络模型,并对网络模型完成训练即可。在使用一些流行的深度学习框架如Caffe或者Tensorflow时,网络模型本身的代码量非常少,不到200行。对网络模型进行训练也只需要花费2-3天的时间即可。在完成训练后,网络能够很好的对图像进行分割,不需要复杂的预处理以及后处理,整个工作流程更为简单,效率更高。

4、本发明中建立的数据集,是针对本技术方案建立的,具有针对性,为相关工作的研究提供了充实可靠的数据集。此外,通过数据增强的方法,能够快速提升数据集的数量和质量,增加数据集的多样性,使网络的训练效果更好。

附图说明

图1为本发明训练时所使用的自己建立的证件照数据集,其中眼睛部分的黑色矩形为保护隐私所添加,实际用于训练和测试的图片未作眼部遮挡处理,下同。

图2为本发明所使用的网络模型。

图3为本发明的一些图像分割结果,其中使用的测试图片来自训练数据集。

图4为本发明的一些图像分割结果,其中使用的测试图片来自训练集外的图片。

图5为在对图片做旋转变换后,使用本发明对图像进行分割实验的结果。

图6为在不同图片亮度下,使用本发明对图像进行分割实验的结果。

图7为在对图片加入噪声的情况下,使用本发明对图像进行分割实验的结果。

图8为在以本实验分割结果为输入的情况下,使用贝叶斯抠图方法得到的抠图结果。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

本实例所提供的使用全卷积神经网络生成证件照Trimap图的方法,其具体情况如下:

1)数据集准备

训练首先需要建立包含人体头像班阔肩膀区域的证件照数据集,如图1所示。数据集来源为实验室项目需要采集的一批证件照,采集后对它们进行筛选,确保涵盖男性、女性,老年人、成年人、儿童,长发、短发,直发、卷发,各种颜色的衣服,灰色和蓝色背景的不同证件照,并剔除那些曝光不均匀、聚焦不清的照片。所有图片都基于人像位置被裁剪为相同的尺寸,以保证人像的可用性。数据集包含初始图片2469张。

为了提高分割精度,使用数据增强的方法对数据集进行增强,数据增强的方法有缩放、旋转和添加噪声;缩放是对图片进行尺寸缩放,采用的缩放比例有0.6,0.8,1.2和1.5倍;旋转则主要有45°旋转、-45°旋转、135°旋转、-135°旋转等;添加的噪声为标准的高斯噪声。

训练过程中需要输入标签以计算损失值进行权值更新,与图像分类中使用的标签不同,图像分割的标签需要对每一个像素进行标记,因此需要先人工对证件照进行标注。

此次分割任务是获得证件照的Trimap图,因此将图片中的物体分为3类,第一类为确定前景(即人的头像包括肩膀区域),第二类为确定背景,第三类为确定前景和确定背景之间的过渡区域。

在制作标签集时,首先使用一个可交互的自动Trimap图生成软件对图像进行人工的头像区域分割,做法是先用软件进行初步分割标记,该软件能自动地大致分割出前景、背景和过渡区域,对于分割不准确的部分,再用交互的方式进行编辑修正。每个区域都使用一个纯色RGB值进行标记。由于网络最后的输出是一张单通道图片,为了与之相对应,因此标签集的图片也必须为单通道的图片,为此,使用图像处理算法对上述图片进行处理,转换为单通道的灰度图片,图片格式为jpg。

本次完成的标签集的标签规划是将背景区域的像素标记为0,过渡区域的像素标记为1,前景区域的像素标记为2,因此将背景区域的像素值全部修改为0,过渡区域的像素值全部修改为1,人的头像包括肩膀区域的像素值全部修改为2,这些图片也即是最终作为网络输入的标签集的图片,图片格式为png。

2)构建网络

网络模型如图2所示,灰色矩形为卷积层,黑边白色矩形为池化层,深灰色矩形为反卷积层。使用深度学习框架Caffe进行模型训练和测试。网络模型的设置为如下:使用的全卷积神经网络分为两个部分,第一部分由多个卷积层和池化层堆叠,提取出图片的特征;而第二部分则采用反卷积层对图片进行上采样,将图片恢复成原始输入的分辨率大小,获得分割结果。

第一个部分的网络结构是单一的卷积层与池化层的重复:由六个小部分组成,第一第二小部分均为两层卷积层与一层池化层,池化层采用的是最大池化方法,第三、四、五小部分均为三层卷积层和一层池化层,第六小部分为两个卷积层。以上各卷积层参数设置在卷积核数量和大小、滑动步长、像素填充值上不尽相同,各池化层参数设置相同;最终,第一个部分的结构为由20层组成的网络,其中包括15个卷积层和5个池化层;其中,需要提到的一点是:第一部分的网络结构中的卷积层结果输出的图像尺寸均是与输入图像尺寸相同的,因此,在这个部分的网络当中,会使图像尺寸缩小的只有池化层,池化层会使图像的大小变为原来的二分之一,由于存在5个池化层,因此,第一部分网络最后的卷积层输出将是大小为原始图像32分之一的特征图。

第二部分的网络结构将输出最后的分割结果,因此将这部分结构看作输出层:首先将第一部分网络最后的输出再次经过一个附加的卷积层,然后是一个反卷积层,反卷积层对特征图进行上采样,这里采用的是双线性插值的方法,将输入图片的尺寸变为原来的32倍,最终得到网络的预测结果,该结果即为最终得到的分割好的Trimap图。

3)使用建立的数据集对网络模型进行训练

使用的训练方法为:训练过程使用带动量的随机梯度下降法优化函数进行训练,训练当中使用的初始动量值为0.99,权重递减值为0.0005,鉴于机器内存的限制,训练的批大小为1;

训练是使用微调的方法进行训练的,微调使得训练更加有效率,在训练时,权值的初始化是很重要的问题,没有正确进行初始化往往会导致输出全为0的情况;具体情况如下:

由于模型最后只输出3个通道,因此从原始的21个通道中随机选择参数进行初始化。

训练集共有样本24690个,随机地将它们按5:1的比例分为训练集和测试集,最终共使用20690个训练样本,4000个测试样本。采用增量式训练,固定测试样本集,不断增加训练样本,观察测试结果的变化。初始学习率设置为1e-6,调整学习率将使得权值在训练过程当中波动范围改变。当精度达到稳定水平时,增加新的训练样本。同时,当loss值达到稳定水平时调整学习率,使他降低到1e-7。经过大约24万次迭代,网络得到了较充分的训练,训练完成后网络能够对图像中的手部区域进行高精确度的分割。

4)完成训练后,可以使用完成训练的模型对输入图片进行分割

使用一个全卷积神经网络对输入的数据进行特征提取,并进行分割,全卷积神经网络的输出是一张单通道的图片,是对证件照的分割图像,保存的图像格式为png格式。分割结果为Trimap图,即将图像分为三个部分,前景、背景和它们之间的过渡区域。

综上所述,本发明提出了一种使用全卷积神经网络生成证件照Trimap图的的技术方案,即通过使用全卷积神经网络对人体头像包括肩膀区域进行自动识别和分割,分割结果为包含前景、背景和过渡区域的Trimap图。使用全卷积神经网络的优势在于,能够自动对人体头像包括肩膀区域进行具有较高精确度的分割,而且抗噪性高,使用比较简便,代码量小;分割一张图片所需的时间也低,效率高。分割为Trimap图的优势在于,为后续的抠图工作提供良好的输入。本发明方案也经过了实验证明其可行性。图3、图4为本发明的一些图像分割结果,其中使用的测试图片分别来自训练数据集和数据集外的图片。图5、图6、图7分别为在对图片做旋转变换、在不同亮度下、在添加噪声的情况下,使用本发明对图像进行分割实验的结果。图8为在以本实验分割结果为输入的情况下,使用贝叶斯抠图方法得到的抠图结果。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

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