本发明涉及图像重建方法领域,具体涉及一种基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法。
背景技术:
在图像领域,图像的分辨率一直是表征图像观测水平的主要技术指标之一。图像的分辨率通常是指图像处理中的空间分辨率。图像的分辨率越高,一定数量的图像像素所代表的实际场景的面积就越小,图像能够反映的场景细节就越精细,越能提供丰富的信息。图像超分辨率重建技术有可能使图像实现从检出水平向识别水平的转化,或更进一步实现向细辨水平的转化。图像超分辨率重建技术可以提高图像的识别能力和识别精度。
现有很多安全部门、敏感公共场所、交通要道、居民小区等都配备了全天候实时视频监控系统,然而,由于受到监控摄像头分辨率性能、监控环境光照条件、目标距离等因素影响,监控系统所获取的视频图像可能是低质量的图像,人脸图像的分辨率偏低,人脸面部细节丢失,影响进一步的识别问题。因此,如何针对低分辨率人脸图像,研究高效的超分辨率重建技术,提高图像质量,提高低分辨率人脸的识别率,成为问题的关键。
单图像输入和多图像输入是超分辨率重建面临的两种不同情况。多图像输入意味着输入的是一系列图像或视频的一部分,这些图像间有着不同的像素平移,每幅图像都包含着高度相关的信息可以用于超分辨率重建一幅图像。而实际中,很多情况没有足够的相关输入图像来源,仅有一副人脸图像输入。因此,人脸超分辨重建技术旨在寻求实际输入人脸数据中的内在信息,从一张低分辨率图像恢复出丢失的高分辨率信息,得到相对应的高分辨率人脸图像。
人脸超分辨率重建方法可以分为三类:基于插值的方法、基于重建的方法和基于学习的方法。近年来,深度学习在计算机视觉中取得了巨大的成功。ianj.goodfellow的2014年的《generativeadversativenets》第一次提出了生成对抗网络(gan)模型,论文提出了一个新的框架,可以利用对抗过程估计生成模型,相比之前的算法,可以认为是在无监督表示学习上一个突破。基于生成对抗网络模型的人脸超分辨率重建方法,可以利用判别网络给出的判别信息来确认生成的高分辨率图像是否准确。但是,该方法通常使用反卷积层来完成输入图像的放大过程,由于反卷积层自身性质,生成图像会存在棋盘效应,影响图像质量。一种解决办法是充分挖掘低分辨率图像原始信息,利用学习到的像素值来重建图像,可解决反卷积所产生的棋盘状噪声。但是这类方法使用了图像逐像素求差的损失函数,无法感知图像语义方向的差异信息,特别是对人脸这种具有鲜明特征的图像,不能产生很好的人脸重建效果。
技术实现要素:
本发明为了解决上述技术问题提供一种基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法。
本发明通过下述技术方案实现:
基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法,包括以下步骤:
a、制作低分辨率人脸图像与对应高分辨率人脸图像训练集;
b、构建用于训练的生成对抗网络模型,在生成网络中加入亚像素卷积层,引入包含特征损失的加权型损失函数;
c、将步骤a得到的训练集依次输入生成对抗网络模型中进行模型训练,调整参数,达到收敛;
d、将待处理的图像进行预处理,输入步骤c得到的对抗模型得到超分辨率重建后的高分辨率图像。
本方法通过构建生成模型和判别模型,生成网络中加入亚像素卷积层来实现低分辨率人脸图像特征到高分辨率人脸图像的映射,利用生成对抗网络模型的对抗特性,结合生成图像特征的损失信息,训练达到收敛。本方案采用生成对抗网络模型结合亚像素卷积层的方法,引入包含特征损失的加权型损失函数,实现图像语义方向的差异信息的感知,保持特征不变性,特别是在对人脸这种具有鲜明特征的图像,重建效果好。将预处理低分辨率人脸图像输入该生成模型,可生成具有人脸轮廓更清晰、细节更具体、特征不变性的高分辨率对应图像,提升了人脸识别准确率,有更好的人脸超分辨率重建效果。
作为优选,步骤a具体为:
a1、获取人脸数据集并判别图像质量;
a2、对人脸数据集中的每张图片进行人脸检测和关键点检测,通过人脸关键点对齐算法对图片进行处理得到尺寸归一化的高分辨率人脸图像ihr;
a3、对高分辨率人脸图像ihr进行高斯滤波,然后下采样得到低分辨率图像ilr。
进一步的,所述低分辨率图像ilr的计算方法为:
其中,
k由图像i的k的邻域中的点计算得到,r为降采样比例。
通常,ihr和ilr都有c个颜色通道,因此,高分辨率人脸图像ihr和低分辨率图像ilr的实际张量大小分别为rh×rw×c和h×w×c。处理后的低分辨率人脸图像集作为生成对抗网络模型中的生成模型输入数据。
作为优选,步骤b具体为:
b1、由多个神经网络卷积层构建生成网络并加入亚像素卷积层完成映射;
b2、叠加多个卷积层和全连接层搭建判别网络,实现生成对抗网络模型的损失函数,计算反向梯度,连接生成网络与判别网络组成生成对抗网络模型。
进一步的,构建生成网络为搭建l–1层卷积网络,每一层输入图片大小与输出大小相同,其中,l为生成网络的网络深度,对于生成网络的前l–1层,表示为:
fl(ilr;w1:l;b1:l)=φ(wl*fl-1(ilr)+bl),
其中,wl、bl分别是神经网络中可学习的权重值和偏移值,l表示层数,l∈(1,l-1);wl是2d的大小为nl-1×nl×kl×kl的卷积核,nl是第l层的特征层数,n0=c;kl是第l层的卷积核尺寸,bl是长度为nl的向量,φ为非线性函数;
亚像素卷积层的实现过程为:
其中wl是大小为nl-1×r2c×kl×kl的权重值,
所述卷积层的层数为m,全连接层的为2层,其中,m>l。
所述损失函数包括生成网络的损失函数,所述生成网络的损失函数等于特征损失函数与相对损失函数的加权和,其中,
特征损失函数为:
其中,
式中,ihr指训练集中的高分辨率图像,isr指重建的高分辨率图像,x,y为ihr和isr中的像素点坐标,fsr、fhr为经过判别网络m+1层所提取到的人脸特征,n为特征向量的维度;
相对损失函数为:
其中,
所述损失函数包括判别网络的损失函数,所述判别网络的损失函数为原始高分辨率人脸图像与生成高分辨率人脸图像判别结果的交叉熵损失函数之和,其中,交叉熵损失函数为:
式中,zy表示真实结果,zj表示经过判别网络得到的结果,m为判别结果个数。
所述步骤c的具体过程为,
预训练:将步骤a得到的训练集的高分辨率人脸图像依次输入到对抗模型的判别网络中,不断迭代,使判别网络具备基本的判别能力;
正式训练:采用训练集中成对的人脸图像,将低分辨率人脸图像输入到对抗模型的生成网络中,得到重建结果,再将重建结果与真实高分辨率图像分别输入判别网络,将判别信息反向传输至生成网络。
所述步骤d具体为,
将待处理的图片进行人脸检测及关键点检测,通过人脸关键点对齐算法对图片进行处理,得到尺寸归一化的低分辨率人脸图像,并将该图片作为生成网络的输入,即得超分辨率重建后的高分辨率图像。
本发明与现有技术相比,具有如下的优点和有益效果:
本方法通过构建生成模型和判别模型,生成网络中加入亚像素卷积层来实现低分辨率人脸图像特征到高分辨率人脸图像的映射,利用生成对抗网络的对抗特性,结合生成图像特征的损失信息,训练达到收敛。将预处理低分辨率人脸图像输入该生成模型,可生成具有人脸轮廓更清晰、细节更具体、特征不变性的高分辨率对应图像,提升了人脸识别准确率,有更好的人脸超分辨率重建效果。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为原始高清分辨率人脸图像与细节放大图。
图2为低分辨率图像双三次插值的结果与细节放大图。
图3为基于反卷积层的生成对抗网络模型的重建结果与细节放大图。
图4为本发明重建结果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例
基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法,包括以下步骤:
a、利用常用的公开人脸图像数据集,进行预处理,制作低分辨率人脸图像与对应高分辨率人脸图像训练集;
b、构建用于训练的生成对抗网络模型,在生成网络中加入亚像素卷积层来实现超分辨率图像生成并引入包含特征损失的加权型损失函数;
c、将步骤a得到的训练集依次输入生成对抗网络模型中进行模型训练,调整参数,达到收敛;
d、将待处理的低分辨率人脸图像进行预处理,输入步骤c得到的对抗模型得到超分辨率重建后的高分辨率图像。
现根据上述原理公开具体实施方式。
步骤a制作训练集的具体实施方案为:
a1、获取公开的大规模人脸数据集,如webface、asianface、celeba,判别所得到的人脸图片的图像质量,保留高分辨率图像留作后续处理;
a2、对人脸数据集中的每张图片进行人脸检测和关键点检测,通过人脸关键点对齐算法对图片进行旋转、缩放、裁剪等处理,得到尺寸归一化的高分辨率人脸图像ihr,组成生成对抗网络模型中的真实数据训练集;
a3、对高分辨率人脸图像ihr进行高斯滤波,来模拟照相机的点散射函数,然后下采样得到低分辨率图像ilr,其中采样系数为r,即r为超分辨率重建的放大比率。
低分辨率图像ilr的计算方法为:
其中,
通常,ihr和ilr都有c个颜色通道,因此,高分辨率人脸图像ihr和低分辨率图像ilr的实际张量大小分别为rh×rw×c和h×w×c。处理后的低分辨率人脸图像集作为生成对抗网络模型中的生成模型输入数据。
步骤b具体包括以下过程:
b1、由多个神经网络卷积层构建生成网络并加入亚像素卷积层完成映射;
b2、叠加多个卷积层和全连接层搭建判别网络,实现生成对抗网络模型的损失函数,计算反向梯度,连接生成网络与判别网络组成生成对抗网络模型。
构建生成网络实质为搭建l–1层卷积网络,遵循保持每一层输入图片大小与输出大小不变的原则,其中l为可调参数,为生成网络的网络深度,可根据训练数据集的大小及模型实时性需求调整。
对于生成网络第1层,可表示如下:
f1(ilr;w1;b1)=φ(w1*ilr+b1),
则对于生成网络前l–1层,可表示如下:
fl(ilr;w1:l;b1:l)=φ(w1*fl-1(ilr)+bl),
其中,wl、bl分别是神经网络中可学习的权重值和偏移值,l表示层数,l∈(1,l-1)。wl是2d的大小为nl-1×nl×kl×kl的卷积核,nl是第l层的特征层数,n0=c;kl是第l层的卷积核尺寸,bl是长度为nl的向量,φ为非线性函数即激活函数。
亚像素卷积层的实现过程可表示如下:
其中wl是大小为nl-1×r2c×kl×kl的权重值,
即:
亚像素卷积层没有包含非线性操作,直接利用低分辨率图像的特征图中的数据产生高分辨率图像。而传统插值方法实现尺寸放大操作,卷积层的计算发生在高分辨率空间,会增长r2倍的计算量。如果采用反卷积网络,每一个输入像素都会与反卷积核元素智能相乘相加,叠加得到最终结果,计算更加复杂。因为反卷积核在滑动过程中,存在跨度r,结果中部分像素点上比其他位置累加了更多的次数,容易产生棋盘状噪声,影响图像边缘及细节信息。本发明中采用亚像素卷积层在保证速度的同时,有更好的图像超分辨率生成效果。
判别网络是生成对抗网络的重要组成部分,在后续训练过程中起到重要的指导作用。设计原则是判别网络的学习能力必须强于生成网络,传递给生成网络足够的梯度信息来促进生成网络的优化。本发明中级联m个卷积层,m>l,之后连接两个全连接层。卷积层作为特征层,用来表征判别网络学习到的输入人脸图像的抽象特征,特征层后的全连接层作为判别网络的分类层,得出判别结果。
生成对抗网络模型的损失函数是指示整个训练过程的指标,对生成网络的表现至关重要,其包括生成网络的损失函数和判别网络的损失函数。
损失函数通常定义为:给定的训练集中包含高分辨率图像
但是,使用求逐像素均方差作为损失函数,计算仅用对应像素作为参考,无法得到两个图像之间在语义上的差异。本发明提出加权型损失函数,即生成网络的损失函数等于特征损失函数与相对损失函数的加权和。特征损失函数通过计算生成高分辨率图像特征与实际图像特征的均方误差得到,表示图像的语义差异大小。本发明中使用的特征损失函数定义如下:
其中,
式中,ihr指训练集中的高分辨率图像,isr指重建的高分辨率图像,x,y为ihr和isr中的像素点坐标,fsr、fhr为经过判别网络m+1层所提取到的人脸特征,n为特征向量的维度;
相对损失函数为:
其中,
因此,生成网络的加权型损失函数可表示为:
其中,λ为可变参数,用于调节相对损失函数的影响比例。本发明中针对生成网络的加权型损失函数既考虑了人脸图像的特征层次的语义差异信息,又结合了生成对抗网络模型对重建图像的全局判别信息,进而保证了人脸重建图像的特征不变性。
所述判别网络的损失函数为原始高分辨率人脸图像与生成高分辨率人脸图像判别结果的交叉熵损失函数之和,其中,交叉熵损失函数为:
式中,zy表示真实结果,zj表示经过判别网络得到的结果,m为判别结果个数。
步骤c中的模型训练过程可基于谷歌开源的tensorflow深度学习平台来进行。为了使得判别网络达到最佳效果,首先对判别网络单独进行预训练过程,具体为将步骤a中得到的训练集中的高分辨率人脸图像分批次输入判别网络中,不断迭代,达到预期效果,使得判别网络具备基本的判别能力。正式训练过程采用训练集中成对的人脸图像,将低分辨率人脸图像输入生成网络,得到重建结果,再将重建结果与真实高分辨率图像分别输入判别网络,将判别信息反向传输至生成网络。如上所述,通过指定迭代次数来进行网络参数更新,同时,可以预留部分图像对,在训练过程中进行校验操作,随时观测网络的学习效果。
步骤d中,对需要超分辨重建的图片进行人脸检测及关键点检测,通过人脸关键点对齐算法,对图片进行旋转、缩放、裁剪等操作,得到尺寸归一化的低分辨率人脸图像。将该图像作为生成网络的输入,得到的输出即为超分辨率重建后的高分辨率图像。如图1至图4所示,是放大比率r=4的超分辨率重建效果图。其中图1为原始高分辨率人脸图像及细节放大图,图2为双三次插值结果及细节放大图,图3为基于反卷积的生成对抗网络模型的重建结果及细节放大图,图4为本发明的人脸超分辨率重建结果及细节放大图,由图可得,本发明算法重建出的图像在边缘细节方面都有更好的效果,人脸特征更明显,更接近于原始高分辨率人脸图像。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。