基于组合学习的人脸超分辨率算法
2020-06-06许若波张彦铎
许若波,卢 涛*,王 宇,张彦铎
(1. 武汉工程大学计算机科学与工程学院,武汉430205; 2. 智能机器人湖北省重点实验室(武汉工程大学),武汉430205)
(*通信作者电子邮箱lut@wit.edu.cn)
0 引言
人脸超分辨率是一种从输入的低分辨率人脸图像推断出其潜在的对应高分辨率图像技术,该技术能够显著增强低分辨率图像的细节信息,因而被广泛地应用到了人脸识别、刑事侦察、娱乐等领域。
基于学习的超分辨率方法能够利用样本提供的先验信息推导低分辨率图像中缺失的高频细节信息,例如基于主成分分析(Principal Component Analysis,PCA)[1]的线性约束、局部线性嵌入(Locally Linear Embedding,LLE)[2]、稀疏表达[3]、局部约束表达[4]等,这些方法获得了较好的图像主客观重建质量。
深度学习提供了一种端到端的映射关系学习模式来处理超分辨率问题。Dong等[5]首次提出了使用卷积神经网络建立端到端的超分辨率算法(image Super-Resolution using deep Convolutional Neural Networks,SRCNN)。Kim 等[6]利用深层网络学习图像的残差信息(accurate image Super-Resolution using Very Deep convolutional networks,VDSR)。卢涛等[7]使用中继循环网络,增强超分辨率重建图像的重建效果。Ledig等[8]首次将生成对抗网络(Generative Adversarial Network,GAN)运用到图像超分辨率,使图像产生更加逼真的视觉效果。Yang 等[9]提出了判决性增强的生成对抗网络(Enhanced Discriminative Generative Adversarial Network for face superresolution,EDGAN)用于人脸图像的超分辨率。考虑到人脸的结构特性,Song 等[10]提出的通过组件生成和增强学习幻构人脸图像算法(Learning to hallucinate face images via Component Generation and Enhancement,LCGE),证明了人脸组件在重建高分辨率图像中的作用。在LCGE 的基础上,Jiang 等[11]通过两步法结合使用卷积神经网络去噪和多层邻域嵌入来幻构人脸图像。
基于卷积神经网络的模型可以重建出平滑的图像,同时网络易于收敛和训练,可以生成高的客观评分但相对平滑的结果。基于生成对抗网络的方法可以产生逼真的视觉效果,并恢复丰富的纹理细节,但获得的客观评分较低。由于人脸图像具有高度的结构性,在眼睛、鼻子和嘴巴周围包含丰富的细节。人脸超分辨率方法和通用图像超分辨率算法最大的不同之处在于如何利用人脸图像的结构信息。受到组合学习[12-13]方法的启示,由于人脸组件部分纹理的复杂性,仅仅利用一种模型难以充分利用人脸的结构性先验信息,针对这一问题,本文提出了一种基于组合学习的人脸超分辨率算法,采用多个并行训练的组件生成对抗网络(Component-Generative Adversarial Network,C-GAN)恢复人脸的重要器官部分,由此在训练网络的过程中每个人脸区域的数据分布不同,不同的子网络能够获得更精确的先验信息,并使用卷积神经网络(Convolutional Neural Network,CNN)重建人脸背景图像。首先对人脸图像使用超像素分割算法[14-15]进行分割,分割出重要的人脸组件部分和人脸背景部分;其次对人脸组件部分构建子网络,利用不同的超分辨率方法重建背景图像;然后在重建高分辨率组件的基础上建立特征融合网络,将不同学习方法获得的重建结果进行融合;最后输出高分辨率人脸图像。论文的创新之处在于:1)首次利用多种不同的超分辨率重建方法组合学习获得更精准的重建图像。2)提出了组件自适应权重学习的多源图像融合重建网络,拓展了图像重建先验的来源。
1 相关知识
近年来,基于深度学习的图像超分辨率受到很大的关注,Dong 等[5]提出使用3 层卷积神经网络重建低分辨率图像。Kim 等[6]在SRCNN 的基础上加深网络层数,学习图像的残差信息,并获得了卓越的重建性能。但是基于卷积神经网络重建的图像在主观效果上过于平滑,一些复杂的纹理细节难以恢复,尤其像人脸图像具有高度的结构性,更加难以学习其复杂的细节信息。为了重建的图像获得更加逼真的效果,Ledig等[8]提出使用生成对抗网络进行对抗学习来恢复更多的细节,并产生逼真的视觉效果。Yu等[16]采用生成对抗网络的思想提出了一种变换自动编码器网络,来重建未对齐且含有噪声的极低分辨率人脸图像。虽然生成对抗网络重建的图像可以恢复丰富的纹理细节,但是客观评估指标值较低。为了获得平滑度适中且具有更高的客观评分,利用两种不同深度学习模型的优势组合学习人脸结构的复杂先验信息,从而提高网络的重建性能。
2 本文方法
2.1 组合学习框架
为了充分发挥出不同的神经网络结构特点和重建性能,本文提出了一种多结构网络的组合学习框架,其网络结构如图1所示,其中C-GAN表示组件生成对抗网络,n表示人脸组件的个数,Fusion-Net表示组件融合网络。
图1 基于组合学习的人脸超分辨率算法框架Fig. 1 Outline of face hallucination via combined learning
C-GAN 用于恢复人脸图像纹理细节丰富的区域,而CNN则用于学习整个人脸图像作为背景信息,而Fusion-Net 则用于融合多网络重建的组件信息,提升超分辨率重建的质量。值得注意的是本文提供了一种多神经网络融合重建的超分辨率算法框架。为了便于说明和理解,采用了具体的网络结构加以说明,为了简化问题的复杂度,本文仅仅设置n= 3,n表示人脸组件的个数,建立C1(眼睛)、C2(鼻子)和C3(嘴巴)3种独立模型,用以证明本文所提出思路的有效性。组合学习算法流程如图2所示。
图2 组合学习算法流程Fig. 2 Flow chart of combined learning algorithm
其中:SLIC表示超像素分割算法,Lab表示生成的人脸组件标签,k和m表示超像素算法的基本参数,k表示预设的超像素个数,m用于调整超像素的紧凑程度和边缘特性,在本文中k= 30,m= 80。
超像素分割方法对低分辨率人脸图像进行分割,产生多个不规则的超像素块,每个超像素块拥有自己的标签,提取不规则人脸组件区域所有坐标:
E(Labl)表示提取人脸图像xi中标签为l的区域的所有横坐标点和纵坐标点,rowl和coll分别表示横坐标点和纵坐标点。最小横坐标点和最大横坐标点分别为min(rowl) 和max(rowl),最小纵坐标点和最大纵坐标点分别为min(coll)和max(coll),通过对角的两点坐标点确定最终的低分辨率人脸组件矩形面积为:
其中:rect表示通过两个对角坐标点生成一个规则的矩形,即人脸组件图像块。表示最终分割的低分辨率人脸组件图像块,j表示不同的人脸组建图像块,其中{j|1 ≤j≤3},因此可形成人脸组件训练集,i表示人脸组件训练数据集中的样本图像块索引为低分辨率人脸组件图像块,为与之对应的高分辨率人脸组件图像块。
2.2 重建网络
2.2.1 人脸组件生成对抗网络(C-GAN)
为了获取人脸组件周围更多的纹理细节,本文采用生成对抗网络来学习更精准的先验信息。由于人脸组件图像块较小,为了保持网络的重建性能,本文设计了一个适用于输入图像块较小的人脸组件生成对抗网络,并且此网络可以独立地训练人脸组件区域,形成多个并行的子网络,每个独立的子网络的数据分布不同,从而使独立的子网络学习更精确的先验信息。本文采用了一个浅层的生成对抗网络,加深了网络的宽度,训练过程中可以更好地提取人脸组件的重要特征,并且生成对抗网络通过生成网络和对抗网络互相对抗学习获得更好的视觉效果。人脸组件生成对抗网络结构如图3所示。
图3 人脸组件生成对抗网络(C-GAN)的网络结构Fig. 3 Network structure of face Component Generative Adversarial Networks(C-GAN)
在生成网络部分,首先在网络的开始层采用了较大感受野的卷积层(卷积核大小为5×5)来提取更加丰富全面的特征,其他层采用的是3×3的卷积核,采用两个反卷积层上采样至高分辨率图像块大小,反卷积层是由上采样层和卷积层级联起来。人脸组件生成对抗网络训练集为,低分辨率人脸组件图像块和高分辨率人脸组件图像块分别表示为∈ℜw×h和∈ℜwt×ht,t表示放大因子,t=4,设有3个独立的人脸组件生成对抗网络。人脸组件生成对抗网络重建图像为:
其中:Gj表示不同的人脸组件生成网络,表示不同人脸组件生成网络生成的高分辨率人脸组件图像块,i表示重建的人脸组件图像块索引。
在判别网络部分,使用了4 个卷积层,在其中3 个卷积层后级联最大池化层,随着网络层数加深,特征尺寸不断减小,并采用修正线性单元(Rectified Linear Unit,ReLU)作为激活函数,最终通过两个全连接层和最终的sigmoid 激活函数得到预测结果。判别网络能够区分输入的图像块是原始的高分辨率人脸组件图像块还是人脸组件重建图像块,相应的判别信息被反向传播到生成网络,从而可以生成视觉效果更加逼真的人脸组件重建图像块。
人脸组件生成网络损失函数使用均方误差(Mean Square Error,MSE)作为损失函数,采用L2范数损失学习低分辨率图像和高分辨率图像之间的差异,生成网络损失函数为:
其中:u表示人脸组件生成网络的参数,uCj表示不同的人脸组件生成网络的参数,p(sCj,yCj)表示人脸组件训练集中低分辨率人脸组件图像和原始高分辨率人脸组件图像的联合分布。
判别网络损失函数为:
其中:v表示判别网络的参数,表示不同的人脸组件判别网络的参数,p(yCj)和p()表示原始的高分辨率人脸组件和人脸组件重建图像的联合分布,D)和Dj(Gj())作为判别网络的输出,Dj(Gj())表示人脸组件重建图像块Gj(sCj)是原始人脸组件图像块的概率,损失函数LCj反向传播到生成网络来更新参数uCj,通过传播给生成网络判别信息,使生成网络可以生成更加逼真的高分辨率人脸组件图像块。
2.2.2 人脸背景图像重建网络
本文采用了一个20 层的深层残差网络作为人脸背景重建网络。第一层和最后一层的结构不同,第一层作为网络的输入,输出的通道数为64,最后一层的作用为输出重建后的图像,由1个3×3的卷积核组成。其余的18层网络结构由64个3×3 大小的卷积核组成,并且采用ReLU 作为激活函数,使网络更加容易学习,并提升网络的训练速度。
在人脸背景图像重建网络中,xi为低分辨率图像,将xi双三次插值至高分辨率图像大小表示为为对应的高分辨率图像,残差图像定义为ri=yi-残差图像的像素值非常小,因此在训练过程中大量减少了网络携带的信息,使网络更加容易收敛。人脸背景重建图像为:
其中:表示残差网络学习到的残差图像。
使用均方误差(MSE)作为损失函数,则损失函数为:
2.2.3 组件融合网络
本文利用C-GAN 模型重建的人脸组件和CNN 模型重建的人脸背景图像对应融合,提取其深层特征,在特征域自适应融合两种不同的特征,从而进一步学习低分辨率人脸组件图像至原始高分辨率人脸组件图像之间的映射关系,恢复更多的细节信息,进一步增强重建图像的质量,并提高组合模型的重建性能。为了保持空间信息,不使用任何池化层或跨步卷积层。特征提取网络并行使用了8 个残差块密集连接,使用本地连接和长跳跃连接获取更丰富的特征。组件融合网络结构如图4所示。
图4 组件融合网络结构Fig. 4 Network structure of component fusion
融合重建模块由5 个卷积层和4 个LeakyReLU 激活函数组成,第一个卷积层卷积核大小为1×1,其他卷积层卷积核大小为3×3,两种不同的特征拼接输入卷积核大小为1×1 的卷积层,从而可以降低维度,并保留重要的特征信息。最后一层卷积层为最终重建层,卷积核的个数为3。
通过取人脸背景重建图像Y˜i与人脸组件重建图像块的交集获取人脸背景重建图像的人脸组件区域形成组件融合网络训练集组件融合网络重建的高分辨率人脸组件图像块为:
其中:⊗表示融合,j表示不同的人脸组件图像块,表示人脸组件重建图像块。
将融合的人脸组件重建图像块合并至人脸背景重建图像中,形成最终的人脸高分辨率重建图像为:
其中:Yi表示最终合成的人脸图像,∪表示人脸组件和人脸背景图像合并。
融合网络采用均方误差(MSE)作为损失函数,计算融合重建后的人脸组件图像和原始的高分辨人脸组件图像之间的损失。损失函数为:
其中:θCj表示不同组件融合网络的模型参数,Fj表示不同的融合网络,LFj表示不同融合网络的损失函数。
3 实验结果
本文使用了FEI(FEI Face Database)数据集对所提出的方法进行实验验证,FEI 数据集含有400 张正面拍摄图像,共有200人,每个人有两张正面的图像。本文使用360张作为训练集,40张作为测试集,高分辨率图像大小为260×360像素,使用双三次插值进行下采样得到低分辨率图像,下采样因子为4,得到低分辨率图像大小为65×90像素。
3.1 参数设置
实验使用4个GPU(NVIDIA 1080Ti)并行训练4个独立的网络,其中3个GPU 并行训练眼睛、鼻子和嘴巴的人脸组件生成对抗网络,在人脸组件图像块中取大小为16×16 像素的图像块进行训练,共训练70 个时期,初始学习率设置为0.001,每个时期学习率自动更新,将初始学习率乘以一个辅助变量0.99γ作为下一次网络训练的学习率,γ表示当前的时期次数,网络的动量初始值设为0,每个时期增加0.000 8,训练集批量大小设置为64。第4 个GPU 用来训练人脸背景图像,将低分辨率人脸背景图像双三次插值至原始高分辨率图像大小,取大小为41×41 像素的图像块进行训练,训练80 个时期,初始学习率为0.1,每20 个时期学习率将下降至原来的1/10,网络的动量为0.9,ℓ2的权值衰减为0.000 1。
融合网络在高分辨率空间进行融合训练,从生成的高分辨率人脸组件数据集中取大小为64×64 像素的图像块作为网络的输入,融合网络共训练150 个时期,初始学习率设置为0.000 1,并且每30 个时期乘以0.1,批量大小设置为16,并且通过随机旋转和水平翻转来增加训练数据。
3.2 人脸组件提取
本文采用超像素分割方法分割人脸组件,利用像素之间特征的相似性将像素分组,人脸组件分割提取流程如图5 所示,首先通过低分辨率训练集生成平均面部图像,采用超像素分割算法对平均面部图像进行聚类并生成多个超像素块,每个超像素块拥有自己的标签,从图5 中可以看出生成的人脸组件标签模板,采用此模板对人脸图像进行分解,通过标签提取不规则的区域,对不规则区域进行矩形化得到最终的低分辨率人脸组件图像块,通过低分辨率人脸组件图像块的两个对角坐标点,获取对应的高分辨率人脸组件图像块。在本文中提取C1 低分辨率组件大小为48×16 像素,C2 低分辨率组件大小为19×20 像素,C3 低分辨率组件大小为28×17像素。
图5 人脸组件分割提取流程Fig. 5 Flow chart of face component segmentation and extraction
3.3 定量和定性分析
本文提出的算法与几种算法进行比较,包括双三次插值、SRCNN[5]、VDSR[6]、LCGE[10]和EDGAN[9]方法,使用FEI 数据集进行测试,为了公平比较,本文使用相同的训练集重新训练对比算法,由于LCGE 只公布了测试代码,所以只对LCGE 进行测试。本文采用了峰值信噪比(Peak Signal to Noise Ratio,PSNR)、结构相似性(Structural SIMilarity,SSIM)[17]和视觉信息保真度(Visual Information Fidelity,VIF)[18]作为图像质量客观评估指标。
3.3.1 融合网络的作用
为了验证不同深度学习模型重建的图像块自适应融合的有效性,本节比较了不同的模型所产生的效果,如表1 所示,相对于CNN 模型和C1-GAN 模型,本文方法的组合学习模型性能均有不同程度的提升,重建图像的质量明显上升,本文只展示40 张C1 区域的平均定量值对比实验结果,计算平均客观评估值,本文所提出的算法超过基于CNN 和C1-GAN 模型分别为1.60 dB/0.016 0/0.040 3,1.39 dB/0.013 9/0.059 9,这表明了组件融合网络的有效性。
表1 同一个区域不同模型的平均PSNR、SSIM和VIFTab. 1 Average PSNR,SSIM and VIF for different models in same region
3.3.2 组件重建性能比较
为了体现本文算法的独特性,本文将单独与对比算法比较眼睛、鼻子和嘴巴部分(C1、C2 和C3 区域)的客观评估指标,结果如表2 所示,本文算法的感兴趣区域都优于对比算法。从图6 中可以看出:双三次插值法并不能产生额外的细节信息;基于深度学习的SRCNN 和VDSR 通用图像超分辨率方法,由于其全局优化方案,可以很好地保持局部的基本结构,但是无法恢复更多的高频细节信息;虽然EDGAN 可以产生良好的视觉效果,但是本文方法与EDGAN相比具有更好的平滑度,而且在纹理细节上更加准确。实验结果表明,独立采用不同的深度学习模型重建感兴趣的区域可以产生更加丰富的细节信息。
表2 不同算法不同组件的PSNR和SSIM的结果比较Tab. 2 Comparison of PSNR and SSIM results of different algorithms and components
图6 在FEI数据集中本文算法与不同算法的主观比较Fig. 6 Subjective comparison of the proposed method with other algorithms on dataset FEI
3.3.3 人脸重建性能比较
本文对最终合成的人脸图像与对比算法进行比较,如表3 所示,最终实验结果的PSNR、SSIM 和VIF 平均超过通用图像SR 算法SRCNN、VDSR 分别为1.20 dB/0.008 5/0.044 2,0.24 dB/0.002 4/0.016 8,超 过 人 脸 图 像SR 算 法LCGE 和EDGAN 分 别 为1.23 dB/0.009 5/0.043 7,1.11 dB/0.013 9/0.066 7。与LCGE 相比,本文算法的测试时间减小了99%。虽然本文算法的测试时间比Bicubic、SRCNN、VDSR 稍微久一些,但是本文算法的PSNR、SSIM 和VIF 客观评估指标值超越了它们。实验结果表明,无论是组件还是最终合成的人脸图像均获得了较高的客观评分。
表3 不同算法PSNR,SSIM,VIF和测试时间的结果比较Tab. 3 Comparisonof PSNR,SSIM,VIF and testing time results of different algorithms
4 结语
本文提出了一种基于组合学习的人脸超分辨率算法,利用不同的网络结构重建性能优势,不仅能够恢复人脸重要器官的纹理细节信息,还能利用现有的其他超分辨率方法提供人脸背景重建信息,利用多种不同的超分辨率重建方法组合学习获得更精准的重建图像,并使用区域融合网络自适应融合不同深度学习模型重建的图像块,从而拓展了图像重建先验的来源,进一步提升了人脸超分辨率的重建性能。在后续的研究工作中,扩展更大的人脸图像数据集,并扩展到通用SR(Super-Resolution)中,来表明此方法的拓展性。并且在不同深度学习模型自适应融合工作中还存在改进的空间,可以进一步提升此方法的重建性能。