摘 要: 人脸幻构是图像超分辨率重建领域的一个子领域,用于恢复面部基本特征且不变形.现有方法着重于恢复本身细节相对丰富的图像,本文针对高频细节已丢失严重的人脸图像提出了一种渐进式生成对抗网络的人脸超分辨率重建方法(P-FSRGAN),可生成逼真的8倍超高分辨率人脸图像.采用渐进式生成方法,通过分阶段拆分训练的方式来保证训练过程的稳定.Inception-ResNet结构的引入增加了网络的宽度;加快了网络收敛速度.引入语义分割网络获得人脸的边缘轮廓信息和面部特征.实验结果表明,在8倍放大尺度因子下,P-FSRGAN的峰值信噪比达到25.83dB、结构相似性指标达到0.7735、多尺度结构相似性指标达到0.8989,均优于其他算法,表明了本文方法的有效性.
关 键 词: 人脸超分辨率;语义分割;Inception-ResNet结构;生成对抗网络
1 引 言
近年来,图像超分辨率(SISR)的应用受到了广泛的关注,包括医学成像,卫星图像和视频监控等领域.图像超分辨率重建技术主要分为3类:基于插值、基于重建和基于学习的超分辨率重建方法.基于插值的方法主要利用中心点来计算周围点的值,这类方法能够很快速重建图像,但重建出来的图像细节模糊、特征信息丢失严重;基于重建的方法通过研究原始高分辨率图像(HR)在低分辨率(LR)上的表现形式,来建立两者的退化模型,该类方法易受噪声点影响且重建需要多张低分辨率图像,不符合实际应用场景;基于学习的方法通过对大量重建图像样本的学习,来实现低分辨率和高分辨率之间的“端对端”映射.
传统图像重建工作通常是在128×128分辨率、170×170分辨率甚至更高分辨率的图像上进行,原始图像本身细节就相对丰富,再经过重建后图片更加清晰.相比之下,较低像素(16×16)图像意味着能够得到的细节特征更少,严重影响相关智能算法对其特定表征与轮廓形状信息等进行特征提取工作.比如在16像素×16像素人脸图像中,人的眉毛和眼睛位置紧凑,基本上不能正确判断哪一块区域是眉毛,哪一块区域是眼睛.利用超分辨率在这类细节信息较少的图像上进行重建研究比较少,也是一个需要突破的难点.
2 相关工作
来自香港中文大学的Dong[1]等人率先将卷积神经网络(CNN)应用到重建技术中去,提出单帧图像重建(SRCNN)方法.SRCNN通过3层卷积神经网络来达到低分辨率和高分辨率之间的映射.FSRCNN[2]模型结构采用反卷积方式来进行重建,加快了重建速率.VDSR[3]加深了网络结构,使之可以有更广的感受野.以上虽然都对SRCNN做了改进,但是网络本身结构比较小,只适用于浅层网络的特征提取.
ResNet[4]和DenseNet[5]的提出,使得大量网络开始使用残差块(Residual Block)和稠密连接块(Dense Block)来提高模型性能.SRResNet[6]作为SRGAN[6]的生成器(Generator,G)部分,由残差块构成,网络虽在图像质量评价指标上有着更好的表现,但以GAN为基础的SRGAN生成的图像更加真实.EDSR[7]去掉了SRResNet中的批归一化层(Batch Normalization,BN),并进一步扩大网络模型的规模,文中指出批归一化层的加入让训练速度变慢且使网络不稳定,去除反而能降低训练复杂度.ESRGAN[8]引入密集残差块(Residual-in-Residual Dense Block,RRDB)来提升模型的结构,也除去了BN层,因其在GAN框架下训练会有伪影现象出现,该网络能够得到更好的视觉质量且更自然的纹理.RFANNet[9]提出了通用的残差特征聚合(Residual Feature Aggregation,RFA)框架,以及增强的空间注意(Enhanced Spatial Attention,ESA)块,使网络更加轻巧,性能也更快.文献[10]提出跨尺度非本地注意力模块(CS-NL),能有效将图像中关键的特征标识出来.但这些重建方法存在的共同问题是,使用的重建图像本身较大,纹理细节也较丰富,若面对初始图像的像素很低时,网络就无法更好发挥其效果.
本文以GAN[11]网络结构为基础,生成器采用渐进式的生成方式让低分辨率图像在生成的过程中更加稳定,同时引入Inception-ResNet[12]网络,去除其BN层.Inception模块的加入,使得模型可以对图像信息多尺度并行分开处理,再融合汇总,充分利用资源增加了模型的深度和宽度.残差结构的加入,可以提高整个网络训练时收敛速度,并能避免因感受野扩大导致的细节丢失问题.在整体训练过程中,加入由语义分割网络计算得到的语义特征图,能有效的提取人脸面部特征、边缘轮廓信息等,为重建工作提供帮助.
3 渐进式生成对抗网络的人脸超分辨率重建
3.1 整体框架
本文设计了渐进式生成对抗网络的人脸超分辨率重建算法(Progressive GAN for Face Image Super-resolution,P-FSRGAN)来完成对单帧人脸图像的超分辨率重建工作.遵循GAN架构,超分辨率重建工作由生成器网络(Generator,G)和判别器网络(Discriminator,D)两部分组成,此外,还增加了一个语义分割网络(Segmentation Network,SN).通过加入MSE损失、感知损失和对抗损失来训练优化整个网络,本论文的模型结构如图1所示.
图1 P-FSRGAN模型结构
Fig.1 Model structure of P-FSRGAN
为了能够稳定地训练生成器和判别器,本文构建一个由3个阶段进行重建任务的超分辨率图像的网络结构,每一阶段都将低分辨率图像进行×2重建.重建过程如式(1)所示:
(1)
以阶段1为例,输入16×16低分辨率图像ILR,经过语义分割网络得到语义特征图M1,M2和M3,分别送到各个阶段.原始输入经过两个3×3卷积层得到初始特征图(Feature Map,FM)FM0,FM0经过阶段1的Stem block后与SM1一起送入Inception-residual block中,然后通过Upscaling block进行×2上采样操作,得到阶段1的特征图FM1.FM1再经过一个9×9卷积层进行卷积处理后得到阶段1重建后的图像最后将和阶段1的高分辨率图像通过判别器进行真伪判别,来提高重建图像的质量和逼真度.
3.2 Segmentation Network
语义分割可以看做是像素级别的图像分类问题,对每个像素点进行所属语义区域的预测,从而实现整张图像的语义标注[13].人脸面部组件包括嘴唇、牙齿、鼻子、眉毛和头发等器官,语义分割网络的加入能够有效的提取这些人脸面部信息,从而使网络在重建过程中,能够更深层次的推断出人脸的高级特征,捕获人脸的边缘信息,为之后深度特征提取提供帮助.
在本文中,对低分辨率图像(LR)的特征提取,不仅使用了Stem block模块,而且采用语义分割网络对图像提取相应的语义分割特征图.我们的分割模型首先将低分辨率图像经双3次插值(Bicubic)重建成高分辨率图像,然后放入语义分割网络中对其进行处理.对低分辨率图像xlr∈Rh×w×3进行语义分割,这一网络映射关系,定义为:
M=Seg(fbicubic(xlr))
(2)
其中,fbicubic表示双3次插值操作,Seg表示语义分割操作,M表示语义分割特征图,且:
M∈{0,1}Hhr×Whr×N
(3)
其中,Hhr和Whr为高分辨率图形的长和宽,N是语义区域的数量,即对于每个语义区域{M0,…,MN-1}都由二进制编码组成.本文中,从低分辨率的图像中需要学习预测具有19个语义区域的高分辨率分割图.训练时,语义分割网络独立于生成器和判别器网络.本文将DeepLab V3+[14]作为人脸信息的语义分割网络.
3.3 生成器网络结构
给定低分辨率图像ILR,图像超分辨率重建的任务就是让生成器(Gθ)根据ILR进行超分辨率重建出ISR的过程.本文Gθ同时利用高分辨率语义特征图作为人脸特征引导,来进行重建过程,则:
(4)
其中,表示重建图像,M表示语义分割特征图,参数θ=W,b作为网络的权重和偏差,通过优化训练样本上使参数θ满足:
(5)
其中,lSR为损失函数,和ILR分别代表高分辨率图像和低分辨率图像的集合.
生成器的网络结构如图2所示.本文采用渐进式网络生成器结构,生成器网络是由Inception-ResNet[12]组成的前馈神经网络结构构成.主要分为Stem block,Inception-residual block和Upscaling block这3块组成.由于网络是渐进式生成的形式,可进行×2,×4和×8超分辨率重建过程.渐进式的生成方式,能有效增强生成器训练时的稳定性,提升网络的训练速度,最终得到更好的图像质量.如不采用渐进式的生成形式,生成器网络层数的突变往往会造成整个GAN网络在训练过程不稳定.
图2 生成器结构
Fig.2 Generator structure
3.3.1 Stem Block
Stem block主要用于提取图像的低维浅层特征,若直接将Inception-residual block用于低维特征的提取将使整个模型的性能降低,也可以将Stem block看做对数据进行预处理过程.以fstem来表示该Block的卷积运算,则:
(6)
其中,FMn表示第n个阶段特征图且FM0由ILR经两个3×3卷积得到.Fstem表示经过Stem block得到的低维浅层特征.
3.3.2 Inception-residual Block
Inception-residual block设计参照于Inception-ResNet-V2[12].主要用来提取图像深度特征信息,其采用不同大小的卷积核意味着网络能够得到不同大小的感受野,最后拼接到一起来完成不同尺度的特征融合.在计算之前融入语义分割特征图,以fInception来表示该Block的卷积运算,则:
(7)
其中,M表示语义分割特征图,δ为权重且δ∈[0,1].FInception表示经过Inception-residual block得到的高维深层特征.
3.3.3 Upscaling Block
从LR图像到HR图像的过程中,需要进行上采样操作.本Upscaling block中,在上采样之前使用不同大小卷积核进行卷积处理来提高网络性能,网络结构如图3所示.使用PixelShuffle[15]代替传统的双线性插值或反卷积来进行上采样操作,保证提高分辨率后特征信息仍不丢失,相比于传统方式,运算量更低且不会出现网格效应.以fup表示该Block的卷积运算,则:
图3 Upscaling block模块
Fig.3 Upscaling block module
(8)
(9)
其中,Fup表示经过Upscaling block得到的特征.f9×9表示经过1个9×9的卷积操作.表示第n个阶段重建图像.
3.4 判别器
本文的判别器结构以SRGAN[6]中判别器VGG-19[16]结构为基础,在此基础上进行修改.在STEP1中,包含1个3×3卷积、3个特征提取块、1个1×1卷积、1个平均池化层(Global Average Pooling,GAP)和sigmoid激活函数.3×3卷积用于提取低维特征并调整通道大小;每个特征提取块由3×3卷积层、LeakyReLU激活函数和批量归一化(Batch Normalization,BN)构成,用于提取高维度特征的信息;GAP代替原来的全连接层从而降低模型拟合风险并且减少参数量;最后经sigmoid激活函数得到输入样本分类为真实高分辨率图像的概率.在STEP2和STEP3中,在原有基础上各增加了2个特征提取块,以此增强网络的判别能力.
3.5 损失函数
3.5.1 MSE损失
使用基于像素的均方误差(MSE)损失比较高分辨率图像(HR)和超分辨率图像(SR)之间误差.MSE损失定义为:
(10)
其中,为真实高分辨率图像为输入的低分辨率图像,M表示语义分割特征图,r、W和H分别表示通道数、宽度值和高度值.
3.5.2 感知损失
感知损失[17]以训练好的VGG-19[16]网络提取SR和HR的高维特征图,通过计算特征图的差异程度,防止产生模糊和不真实的人脸图像.感知损失定义为:
(11)
其中,φi,j表人脸图像通过VGG-19[16]感知网络进行特征提取,Wi,j和Hi,j表示特征图尺寸.
3.5.3 对抗损失
为了能够让网络训练稳定,并且有更好质量的图像,我们使用WGAN Loss[18]训练网络.在WGAN中,Wasserstein距离被用来定义为目标图像IHR~Pr与生成图像之间的距离.为了能够让训练过程更加稳定,我们应用了WGAN-GP[19]中的梯度约束.对抗损失定义为:
(12)
其中,pg为生成样本的数据分布,Pr为真实样本的数据分布,λ为梯度惩罚的函数.
3.5.4 总损失
总损失函数定义为:
Lours=αLpixel+βLfeature+γLWGAN
(13)
其中,α、β和γ为损失权重.
3.6 算法步骤
模型输入:输入图像数据集包含低分辨率图像(ILR)和3个阶段的高分辨率图像
Step 1.将ILR输入到阶段1的生成器网络G1中,输出得到生成的图像由和来计算生成器损失LG,根据LG来更新G1,将和放入阶段1的判别器网络D1,计算判别损失LD,根据LD来更新D1.以上迭代T1次,得到一阶段的网络模型参数和
Step 2.将Step 1得到的和加载到阶段2的网络中,并固定与阶段1重叠网络的参数来进行阶段2训1练,训练方式与Step 1相同,以此来得到模型参数和
Step 3.将Step 2得到的和加载到阶段3的网络中,并固定与阶段2重叠网络的参数来进行训练,训练方式也与Step 1相同.以此来得到模型参数和
模型输出:得到可以分别进行×2,×4和×8重建图像的生成器网络模型参数和判别器模型参数和
4 实验和分析
本文实验基于Ubuntu16.04 LTS 64位操作系统,使用开源的框架Pytorch以及cuda10.0和cudnn7.5;硬件方面采用Intel Core i9-9820X CPU处理器,内存32GB,显卡为GTX1080Ti,显存16GB.
4.1 数据集及训练参数
在我们的实验中,使用CelebAMask-HQ[20]和CelebA[21]数据集进行人脸训练,并以此评估本文模型.
在训练前期工作中,由于CelebA中图片的高度为218像素宽度为178像素,不是正方形,因此对图像按中心点裁剪成178×178分辨率,最后调整尺寸大小为128×128分辨率.同样,对于CelebAMask-HQ也由原来的1024×1024分辨率通过双3次插值下采样到128×128分辨率.
调整后的128×128分辨率的人脸图像作为STEP3中高分辨率图像目标;再通过双3次插值下采样到64×64作为Step 2的目标,32×32作为Step 1目标,以及16×16作为LR图像输入到网络中.在CelebA数据集中,162770张图像作为训练集,选取5000张图像作为测试集.设置其更新迭代次数为50次,并且设置每10个epoch(迭代次数)后学习率为原来的1/10.在CelebAMask-HQ数据集中选取30000幅人脸图像,其中前25000幅作为训练集,后5000幅作为测试集.设置更新迭代次数为100次,每20个epoch后学习率设置为原来的1/10.
考虑到batch size(一次训练所选取的样本数)受计算机本身显存大小的影响,我们根据输入图像大小和放大比例来改变batch size值.在Step 1、Step 2和Step 3中,分别将batch size设置为16,8和4.
本次实验采用Adam优化器[22]训练模型,生成器和判别器的学习率lr初始值分别设置为0.001和0.001.在训练过程中,参数α、β和γ分别取0.9、0.001和0.005.根据经验设置语义分割网络的权重δ为0.8.
4.2 语义分割网络
本文在CelebAMask-HQ数据集中训练DeepLab V3+[14]语义分割网络,采用随机梯度下降进行优化,动量为0.9,衰变率为10-4,学习率为0.001,总共训练8000个epoch.
最终语义分割结果如图4所示.图像在测试集中随机抽取.第1列和第4列分别对应低分辨率图像(LR)和原始高分辨率图像(HR);第2列为双3次插值得到的图像,同时也是作为语义分割网络的输入,通过语义分割网络可以得到具有19个通道的特征图.为了能够更直观显示,本文将其转成灰度图(见第3列).由此可见,语义分割网络能捕获面部组件,为生成器网络约束整体轮廓、提升五官纹理细节提供帮助.
图4 人脸语义分割结果
Fig.4 Face semantic segmentation results
4.3 评价指标
本实验采用峰值信噪比(PSNR)、结构相似度指标(SSIM)和多尺度结构相似性指标(MS-SSIM)来评价SR的结果,因为PSNR只限于计算像素差异,且在表示图像感知方面的差异也有一定的局限性,所以我们进一步测量了SSIM和MS-SSIM.
峰值信噪比(PSNR)计算如式(14)所示:
(14)
其中,MAXSR是图像中像素的最大灰度值,一般默认值为255.MSE为SR图像与HR图像的均方误差,即:
(15)
其中,W和H为图像的长和宽,i和j为对应的像素坐标.
结构相似度指标(SSIM)计算如式(16)所示:
(16)
其中,μx和μy分别为x和y平均值,和分别是x和y方差,σxy是x和y的协方差.C1和C2是用来维持稳定的常数.
多尺度结构相似性指标(MS-SSIM)计算如式(17)所示:
(17)
其中,输入图像的长和宽都以2M-1为因子进行缩小.li、cj和sj分别表示亮度、对比度和结构的相似性.文献[23]指出了更贴近主观感受的参数值,即β1=γ1=0.0448,β2=γ2=0.2856,β3=γ3=0.3001,β4=γ4=0.2363,α5=β5=γ5=0.1333.
4.4 模型分析
4.4.1 模型性能分析
为了验证渐进式GAN结构和Inception-ResNet[12]结构加入后整个网络训练情况,本文进行了比较研究.图5展示在CelebAMask-HQ数据集中训练时PSNR的收敛情况.可以看出,P-FSRGAN在训练过程中出现少许轻微震荡的情况,但比VDSR和SRGAN更加稳定.加入Incaption-RseNet显著提高了网络的收敛速度,训练迭代40个epoch时网络基本趋于收敛状态,且PSNR始终具有较好的值,充分验证了Inception-ResNet[12]结构的加入有助于模型效果的提升以及渐进式GAN结构使得网络在训练过程中更加稳定.
图5 网络模型收敛性分析
Fig.5 Network model convergence analysis
4.4.2 对比试验
为了够更好地验证GAN结构和语义分割网络对模型起到的效果,本文训练了3种不同模型进行对比实验.
训练的第1个模型P-FSRNET仅使用本文生成器网络结构,未加入判别器网络,且仅有MSE损失;第2个模型P-FSRGAN-包含生成器和判别器子网络,融合MSE损失、感知损失和对抗损失;第3个模型为本文P-FSRGAN,在第2个模型基础上加入语义分割网络.所有模型在CelebAMASK-HQ数据集中进行训练,进行50次迭代后在测试集上计算各个模型×2,×4和×8重建的PSNR.最终结果如图6所示.
图6 模型实验结果对比
Fig.6 Comparison of model experiment results
从图6中可以看出,相比于P-FSRNET,未加入语义分割网络的P-FSRGAN-在模型指标上有一定的提升,优越性主要体现在×4和×8的重建任务上,但未达到最好效果.而本文所提出的P-FSRGAN通过加入语义分割网络,加强人脸五官轮廓约束,其在×2,×4和×8的重建任务上均达到最好效果.因此可以验证语义分割网络的加入有助于模型整体效果的提升.
4.5 算法对比
为了验证本文提出的P-FSRGAN网络模型在CelebA和CelebAMASK-HQ测试集中的重建效果,分别与Bicubic、VDSR[3]、SRResNet[6]、SRGAN[6]、ESRGAN[8]进行对比.这些算法实验结果和实验代码均已公开.其中,VDSR和SRResNet是普通的SR网络,而SRGAN和ESRGAN是以GAN为基础的网络结构,能够生成纹理更加清晰的图像.对比主要从客观评价指标和主观分析两方面进行.
表1展示了本文算法与参加比较的5种算法在×2,×4重建下PSNR和SSIM性能指标.从表1中可以看出,本文算法在这两种上采样因子上均取得了较好效果,但评价指标与其他算法相比提升不大.表2展示在×8重建下各算法在PSNR、SSIM和MS-SSIM性能指标上的实验结果.其中,MS-SSIM的加入可以产生比单一尺度更好的评估结果[24].因ESRGAN未提供×8重建的图像实验,所以在此比较时忽略了该算法.由表2可知,P-FSRGAN在×8重建的各项指标上均领先其他算法.以CelebAMask-HQ测试集为例,P-FSRGAN在PSNR指标上,超过第2算法0.62dB,在SSIM指标上超过第2算法0.0502,在MS-SSIM指标上超过第2算法0.0868.体现了本算法的有效性和优越性.
表1 P-FSRGAN与其他5种方法在CelebA和CelebAMASK-HQ测试集上的结果比较
Table 1 Comparison of P-FSRGAN with other five methods on CelebA and CelebAMASK-HQ test datasets
表2 不同模型在×8重建下PSNR、SSIM和MS-SSIM性能指标
Table 2 PSNR/SSIM/MS-SSIM of different models under ×8 super-resolution
为了能直观的观察不同算法的差异性,图7和图8分别展示在CelebA和CelebAMask-HQ数据集中,不同算法8倍放大因子下重建的视觉对比结果.可见,在主观视觉效果上与其他算法相比,P-FSRGAN视觉感受更加真实,且不会出现伪影情况,纹理细节也更加清晰.其增强了人脸轮廓的约束,得到了更加清晰的五官边缘,人脸细节特征如头发、鼻子等能够更好的重建出来.与其他算法相比,P-FSRGAN重建图像的高频细节信息更加丰富,生成的SR人脸结果更为逼真,表明了本模型的有效性.
图7 不同模型在CelebA数据集上视觉效果对比
Fig.7 Comparison of visual effects of different models on the CelebA dataset
图8 不同模型在CelebAMask-HQ数据集上视觉效果对比
Fig.8 Comparison of visual effects of different models on the CelebAMask-HQ dataset
5 总结与展望
本文提出了一种新颖的人脸SR方法,可以充分反映人脸的细节信息.为了实现这个目标,采用了渐进式的方式生成逼真的人脸信息.此外,在×2,×4和×8重建中添加人脸的语义分割信息,使得人脸面部细节信息在超分辨率图像中能够更清晰的表示.实验证明了我们提出的方法能够更准确地恢复面部细节,尤其是此方法所重建的高质量的人脸图像在感知上与真实图像相似.综上所述,本文提出的方法能够更好地对人脸图像进行超分辨率重建,使其具有更精确的面部细节.