基于部分卷积和多尺度特征融合的人脸图像修复模型*
2023-02-20张玉涛
孙 琪,翟 锐,左 方,张玉涛
(1.河南大学软件学院,河南 开封 475000;2.河南省智能网络理论与关键技术国际联合实验室,河南 开封 475000; 3.河南省高等学校学科创新引智基地,河南 开封 475000;4.河南省智能数据处理工程研究中心,河南 开封 475000)
1 引言
人脸识别通过提取人脸的面部特征实现身份识别,因其非接触性、简便性等优势,成为生物特征识别领域的热门研究内容。实际应用场景中,若出现人脸被遮挡的现象,将严重影响识别成功率,这是目前人脸识别面临的主要问题之一。针对该问题,可采用图像修复进行人脸信息补全。图像修复是指利用完好部分的关联信息对缺失部分进行修复的过程,有助于恢复图像的完整信息。但是人脸五官细节个性化明显,几何结构复杂,包含了大量的语义信息,人脸图像修复的难度较大。
传统的图像修复方法对于受损面积较小、结构简单的受损图像修复具有良好的效果。Barnes等[1]使用迭代的方法搜索最合适的补丁来填充破损区域。但是,该方法修复的背景大多是平滑的区域,难以捕捉到高级的语义信息。
近年来,基于深度学习的图像修复方法取得了良好的效果。基于深度学习的图像修复方法除了利用受损图像的自身信息以外,还结合了图像的结构特征和语义特征,合理性进一步提高,并取得了更好的修复质量和视觉效果。
Liu等[2]提出了一种基于部分卷积PConv(Partial Convolution)和自动掩膜更新的模型,对缺失的图像进行识别。其中,与普通卷积相比,部分卷积更注重获取图像完整区域的特征信息。随着神经网络层数的加深,无效像素逐渐变成有效像素,导致深层网络无法学习掩膜与图像之间的关系,使修复后的图像存在边界伪影和局部色差问题。Liu等[3]提出了一种多级人脸图像修复网络模型MLGN(Multi-Level Generative Network),使用多级结构对缺失图像进行修复,可以获取更多特征信息。但是,特征信息之间的关联性不足,导致修复后的图像出现模糊、细节缺陷等问题。
针对上述问题,本文开展了相关研究,对不规则掩膜的人脸图像进行修复,并消除模糊现象,提出了基于部分卷积和多尺度特征融合的人脸图像修复模型MS-FIIM(Multi-Scale feature integration Facial Image Inpainting Model),主要内容如下:
(1)MS-FIIM包括多尺度修复网络和判别器网络。多尺度修复网络由主分支模块(Main Branch)和多级特征提取模块MS-FEM(Multi-Scale Feature Extraction Module)组成,负责获取面部的多尺度特征信息。其中,在多级特征提取模块中使用SE(Squeeze and Excitation)注意力机制提升有用特征信息的重要程度,抑制无用的特征信息。使用多尺寸卷积核的Inception块获取不同感受野上的人脸图像特征信息。此外,通过加入跳跃连接,使下采样过程中的特征再次被利用,以有效解决图像破损部分的特征损失,缓解梯度消失的问题。判别器网络由多种卷积神经网络组合而成,通过与多尺度修复网络的相互对抗,保证修复图像的纹理结构和色彩的一致性,达到消除局部色差和边界伪影的目的。
(2) 使用多尺度结构相似度MS-SSIM(Multi-Scale StructuralSIMilarity)[4]和L1距离改进的内容损失、生成图像与修复图像的对抗损失、感知损失、风格损失、全变分损失共同组成联合损失函数对模型进行训练,提高对图像特征的捕捉能力,保证修复图像的全局一致性。
2 相关工作
图像修复的目的是将图像中缺失的部分补全,并使其与周围情景保持一致性。图像修复技术不断发展,在计算机视觉领域得到了广泛应用。本节主要从传统方法和基于深度学习的方法出发,对图像修复方法进行简要的分析,并基于现有研究和现存问题,提出了一种更有效的解决方案。
2.1 传统图像修复方法
传统的图像修复方法可以分为基于扩散(diffusion-based)[5]的方法和基于纹理(patch-based)[6,7]的方法2种。
2.1.1 基于扩散的方法
Bertalmio等[5]提出了基于扩散的方法填充损坏的区域,将相邻像素的特征信息传播到破损区域,使缺失的信息得以填补。但是,该方法仅适用于处理小面积的破损区域,并要求破损区域与周围像素之间的色彩和纹理差异较小。当破损区域过大且含有丰富纹理时,能利用的图像块的相似性减弱,导致匹配到合适纹理块的难度加大,从而使修复区域变得模糊,无法达到理想的修复结果。
2.1.2 基于纹理的方法
针对基于扩散的方法无法修复大面积破损区域的问题,Criminisi等[6]于2003年提出了基于纹理的目标移除和区域填充方法,改善了修复后的结构和纹理。此后,众多研究人员在Criminisi方法的基础上提出了许多改进方法。Tang等[7]提出的CBLS(Coherence-Based Local Searching)方法,提升了对背景复杂的大块破损区域的修复效果。Barnes等[1]提出了一种用于快速匹配图像块之间的近似临近点的随机算法,通过采样找到匹配点,然后利用自然图像中的连贯性将匹配点快速传播到周围区域。
总体来说,针对小区域遮挡,图像信息与缺损区域相似度较高的图像,传统的修复方法能够取得较好的修复效果。但是,当图像的缺损区域较大,图像的内容和层次缺乏连贯性时,可能会造成关键信息的丢失,修复结果较差。对于被遮住的人脸图像,上述方法无法根据图像的语义信息生成对应的图像目标。
2.2 基于深度学习的修复方法
基于深度学习的图像修复技术凭借其优异的性能逐渐成为业内的主流研究方向。其中,最具有代表性的图像修复方法包括基于卷积神经网络CNN(Convolutional Neural Network)的方法[8]和基于生成对抗网络GAN(Generative Adversarial Network)的方法[9]。
基于CNN的图像修复方法在早期基于深度学习的图像修复方法中占据重要地位。Pathak等[10]首先将深度学习用于图像修复,使用编码器-解码器结构,通过编码器将待修复的图像特征映射到低维特征空间,解码器通过反卷积重建输出信号。由于该编解码网络使用普通的卷积网络,在修复任意形状的掩码图像时,会出现视觉伪影。Liu等[2]提出了基于部分卷积和自动更新掩膜的方法对缺失的图像进行修复,但修复后的图像存在边界伪影和局部色差问题。Ronneberger等[11]在2015年提出了U-Net,因其网络结构类似于U形,因此被称为U-Net,在医学图像分割以及语义分割方面得到了广泛应用。它采用编码-解码的方法,将底层信息与高层信息相融合。此后,Hong等[12]通过引入特征融合网络与U-Net网络结合进行图像修复;杨文霞等[13]将U-Net网络与密集连接块相结合对人脸图像进行修复。
对于遮挡区域较大、结构复杂的图像,使用基于CNN的方法修复后的图像存在区域色差过大、图像纹理缺失等问题。2014年,Goodfellow等[9]提出了由2个深层神经网络组成的GAN,具有自生成的能力,被广泛应用于图像生成、风格迁移和超分辨率重建等。与CNN相比,GAN对语义结构复杂的图像修复效果较好,尤其是面部图像修复[14]。
Iizuka等[15]使用扩张卷积,通过引入一个局部和全局性的判别器,保留图像的空间结构,对于大块的结构状遮挡区域,修复效果较差。Yu等[16]引入由粗到细的两阶段修复方法,首先得到破损区域的粗略估计,然后引入注意力机制,再对粗略结果精细化,但会存在失真现象。Yu等[17]在部分卷积的基础上进一步提出了门卷积,使神经网络学习掩膜的大小和参数,更好地完成图像修复,但门控卷积需要内嵌在多层生成对抗网络中才能发挥作用。Liu等[3]使用多级生成网络对人脸图像进行修复,但修复部分会产生模糊现象,与非缺失部分人脸细节的匹配度不高。
为解决破损人脸图像的修复问题,本文提出了一种基于部分卷积和多尺度特征融合的人脸图像修复模型,包括多尺度修复网络和判别器网络2大模块。多尺度修复网络利用部分卷积的特性得到与破损区域更接近原图语义信息的纹理结构,通过多尺度网络架构,获取多尺度的特征信息。此外,通过多尺度修复网络与判别器网络之间的对抗训练使修复图像更加逼真,提高了图像修复的质量和真实度,解决了生成图像的局部色差问题,使修复图像的全局一致性得到保障,视觉效果进一步增强。
3 本文提出的模型
本节详细介绍所提出的基于部分卷积和多尺度特征融合的人脸图像修复模型MS-FIIM的网络结构和工作原理。模型主要分为2部分:多尺度修复网络和判别器网络,结构如图1所示。其中,Iin和Imask分别表示输入图像和掩膜,Igen表示生成器生成的图像,Igt表示真实图像,Icomp表示修复后的图像,Lvalid表示非破损区域的损失,Lhole表示破损区域的损失,Ltv表示全变分损失,Lperceptual表示感知损失,Lstyle表示风格损失,Ladv_gen表示生成图像的对抗损失,Ladv_comp表示修复图像的对抗损失。多尺度修复网络主要采用部分卷积的自动掩膜更新策略,可以根据卷积过程中掩膜的变化进行调整。在进行掩膜率较大的修复任务时,可以避免虚假信息的误用,生成接近真实图像的结果。但是,由于修复网络不断加深,浅层特征信息无法得到充分利用,导致修复结果出现边界伪影和局部色差问题,因此本文设计了多尺度修复网络,用于提取不同尺度的特征信息对受损图像进行修复。其中,使用SE注意力机制学习每个特征通道的重要程度,并根据重要程度提升有用的特征信息,抑制对人脸修复作用较小的特征信息。使用多尺寸卷积核的Inception模块聚合多种不同感受野上的特征获取人脸图像的特征信息。另外在多尺度修复网络中加入跳跃连接,用于融合深层特征和浅层特征,确保提取的特征信息得到充分利用。判别器网络则通过与多尺度修复网络的对抗训练,解决修复图像存在的伪影模糊问题,确保图像破损区域与全局区域的一致性。
Figure 1 Structure of MS-FIIM model图1 MS-FIIM模型结构
3.1 多尺度修复网络
多尺度修复网络包括主分支模块(Main Branch)和多级特征提取模块,如图2所示。主分支模块用于提取图像的高分辨率特征并融合不同层次的分辨率特征。多级特征提取模块由中空间分辨率分支(Middle Spatial Branch)和低空间分辨率分支(Low Spatial Branch)组成,用于提取不同尺度的特征,增强对不同特征的表达能力。
Figure 2 Structure of multi-scale inpainting network图2 多尺度修复网络结构
3.1.1 主分支模块
主分支模块是一个15层U-Net结构的网络。对任意不规则掩膜进行修复时,与普通卷积相比,部分卷积可以将掩膜与图像同时卷积,以提高修复的生成效果。对人脸图像修复时,使用多尺寸卷积核的Inception模块[18]获取人脸的多尺度特征信息。Inception模块结构如图3所示,图中S1表示卷积核的步长为2。通过不同大小的卷积核融合多尺度特征信息,增强了图像破损区域与完好区域的关联性,提升了修复后图像的完整性,增大了网络感受野。使用编码器-解码器结构可以提高输入图像的平移、旋转等基本变换的鲁棒性,这对具有姿态变化的人脸图像的修复非常重要。
Figure 3 Structure of Inception module 图3 Inception模块结构
下采样阶段共包含8层,由部分卷积层、批量归一化层BN(Batch Normalization)和LeakyReLU(Leaky Rectified Linear Unit)激活函数层组成。部分卷积层的内核大小分别为3,4,4,4,4,4,4,4,通道数分别为32,64,128,256,256,512,512,512。第2层到第6层网络中,先经过卷积层进行下采样操作,再经过Inception模块提取多层次特征。使用Concatenate操作连接多级特征提取模块,实现多个尺度特征的融合。加入BN层可以增加网络的泛化能力。随着通道数的增加,特征图的尺寸逐渐减小,实现逐层获取修复图像的特征信息。
上采样阶段共包含7层,由部分卷积层、BN层和ReLU激活函数层组成。部分卷积层的内核大小为3,通道数分别为512,512,256,256,128,64,3。在图像进入卷积层前,上采样操作先使用最近邻插值法放大图像尺寸。最后一层使用Sigmoid激活函数生成最终的修复图像。与下采样阶段相似,上采样阶段使用Concatenate连接中空间分辨率分支和低空间分辨率分支提取的特征,获取多尺度的特征信息。为了使网络有效融合深层的语义信息和浅层的空间局部信息,搜寻和提取图像破损区域的语义信息,在下采样和上采样阶段,相同分辨率的特征图之间使用跳跃连接,以改进训练速度,提升网络性能。
3.1.2 多级特征提取模块
特征金字塔网络FPN(Feature Pyramid Network)[19]是一个利用多层特征处理的卷积神经网络,利用金字塔池捕捉上下文信息。受FPN启发,本文在多尺度修复网络中设置MS-FEM。通过特征提取模块(FEM)对图像进行编码,将编码后的特征分成2个分支,即中空间分辨率分支和低空间分辨率分支。中空间分辨率分支共包含8层,由卷积核大小为5×5和3×3的部分卷积以及LeakyReLU激活函数组成,并在部分卷积层和LeakyReLU激活函数层之间加入BN层。此外,在2个分支网络中,卷积层间隔使用最近邻插值法对图像尺寸进行放大。
Figure 4 Structure of SE attention mechanism图4 SE注意力机制结构
3.2 判别器网络
判别器网络用于判别输入图像是真实图像还是修复图像,并通过与修复网络的对抗训练,改善修复图像中存在的边界伪影问题,以此提高破损区域与非破损区域内纹理结构的一致性。判别器网络结构如图5所示。
Figure 5 Structure of discriminator图5 判别器网络结构
判别器网络共包括7层,前6层使用卷积核大小为4×4、步长为2(图中表示为S1)的卷积对特征图的大小进行缩减,并在每一层卷积后,加入BN和LeakyReLU激活函数;最后1层使用卷积核大小为4×4、步长为1(图中表示为S2)的卷积以及Sigmoid激活函数输出判别器结果。判别器结构如图5所示。
3.3 损失函数
为了保持修复图像的全局一致性和细节精细化,本文构造了一个联合损失函数。由于L1损失仅仅惩罚像素之间的差异,并未考虑到图像自身潜在的结构信息,因此本文引入多尺度结构相似度MS-SIM,构造了新的内容损失(L1+MS-SSIM)。此外,还引入对抗损失用于判别器与多尺度修复网络之间的对抗训练,使修复效果更具有真实感。本文所设计的联合损失函数共由6个损失函数组成:内容损失(非破损区域的损失Lvalid、破损区域的损失Lhole)、感知损失Lperceptual、风格损失Lstyle、全变分损失Ltv和对抗性损失Ladv,如式(1)所示:
Ltotal=λ1Lhole+λ2Lvalid+λ3Lperceptual+
λ4Lstyle+λ5Ltv+λ6Ladv
(1)
其中,λ1,λ2,λ3,λ4,λ5和λ6分别为相应损失项的权重系数。
通过对100幅验证图像执行超参数搜索确定各损失项的权重系数,λ1,λ2,λ3,λ4,λ5和λ6分别取值6.0,1.0,0.05,120,0.1和0.1。
3.3.1 内容损失
内容损失包括破损区域的损失Lhole和非破损区域的损失Lvalid。本文使用L1距离和MS-SSIM组合构建内容损失,分别如式(2)和式(3)所示:
Lhole=(1-a)‖(E-M)⊙(Igen-Igt)‖1+
a(1-MSSIM)((E-M)⊙(Igen-Igt))
(2)
Lvalid=(1-a)‖M⊙(Igen-Igt)‖1+
a(1-MSSIM)(M⊙(Igen-Igt))
(3)
其中,M表示初始图像掩膜,⊙表示Hadamard乘积,Igen表示生成器生成的图像,Igt表示真实图像,MSSIM为多尺度结构相似指数[4],α=0.16表示超参数。MSSIM计算如式(4)和式(5)所示:
l(x,y)·cs(x,y)
(4)
(5)
其中,μx和μy分别表示图像x和y中所有像素的均值;σx和σy为图像的方差;σxy为图像x和y的协方差;C1和C2是为避免分母出现0而设置的常数,lM(·,·)表示在尺度M下2幅图像的亮度;csj(·,·)表示在尺度j下2幅图像的对比度和结构相似度;M表示最大尺度。
3.3.2 感知损失
为了保留全局图像的结构信息,保证高层结构的相似性,图像修复需要采用类似真实图像的特征表示,而不仅是图像之间的像素匹配。感知损失使用在ImageNet数据集[20]上预训练的VGG-16特征提取器[21]分别提取生成图像和真实图像的特征图,并根据两者之间的L1距离来计算,如式(6)所示:
(6)
3.3.3 风格损失
感知损失有助于获得更高层次的结构,避免生成图像偏离真实图像。为了保持风格一致性,本文在联合损失函数中增加了风格损失。风格损失计算图像经过VGG-16生成的特征图的克莱姆矩阵的L1距离。风格损失如式(7)所示:
(7)
3.3.4 总变分损失
总变分损失用来增强图像的空间平滑度,如式(8)所示:
(8)
3.3.5 对抗损失
感知损失和风格损失是图像语义和特征信息的组合,但它们在处理细节方面还有欠缺。因此,在联合损失函数中增加对抗损失,通过判别生成的修复图像是来自生成器还是来自真实的图像,使修复的效果具有真实感。对抗损失包括生成图像的对抗损失Ladv_gen和修复图像的对抗损失Ladv_comp,并通过系数权衡二者的重要程度。实验中使用交叉熵定义对抗损失。对抗损失如式(9)所示:
Ladv=0.7Ladv_gen(ygen,ygt)+
0.3Ladv_comp(ycomp,ygt)
(9)
其中,ycomp为修复后的图像经过判别器网络的预测结果,ygen为生成图像经过判别器网络的预测结果,ygt为真实图像的标签。
4 实验与结果分析
4.1 实验设置
本文使用人脸数据集CelebA-HQ[22]对模型进行实验。该数据集共包含30 000幅图像,按训练集与测试集9∶1的比例,使用随机分配方法将27 000幅图像作为训练集,3 000幅图像作为测试集,训练集与测试集的图像不重复,没有交集。使用NVIDIA提供的掩膜数据集,按照尺寸分为(0.01,0.1],(0.1,0.2],(0.2,0.3],(0.3,0.4],(0.4,0.5]和(0.5,0.6]共6种比例,其中每种比例按照有、无边界各分1 000幅,因此掩膜测试集的数量共为12 000幅。不同掩膜率的数据集样例如图6所示。在实验中,所有训练和测试的掩膜和图像尺寸为256×256,并使用随机的水平和垂直翻转对掩膜数据集进行数据增强。输入图像的批大小设为8。生成器和判别器的初始学习率分别设置为0.000 5和0.000 02。训练过程共设置150个epochs。所有的实验均在Python和Ubuntu 16.4系统上进行。
Figure 6 Samples mask images with different proportions 图6 不同掩膜率样例图
4.2 实验结果和分析
本节从定性和定量2个方面分析本文提出的模型MS-FIIM与2种基于深度学习的图像修复模型的对比结果。
4.2.1 定性比较
本节讨论所提出模型MS-FIIM与PConv和MLGN的定性比较,结果分别如图7和图8所示。
Figure 7 Comparison of image inpainting results with boundary masks图7 有边界掩膜的图像修复结果比较
Figure 8 Comparison of image inpainting results with no-boundary masks图8 无边界掩膜的图像修复结果比较
实验结果表明,当掩膜率较小时,PConv、MLGN和MS-FIIM对受损人脸图像的修复效果均取得了较好的效果。当掩膜率增大时,PConv和MLGN修复的人脸图像与真实人脸图像的差异较大,图像中出现瑕疵、模糊等现象。PConv模型修复的图像细化了纹理结构,获得了合理的上下文语义,但无法保证局部一致性,存在边界伪影和局部色差问题。MLGN模型修复的图像虽然填充区域像素与周围像素在语义上有一定的相似性,但产生的图像较模糊,修复区域的纹理细节不够精细,例如眼睛、皮肤等纹理细节不清晰,人脸比例和表情视觉效果不够好。本文提出的模型MS-FIIM,修复后图像具有合理的纹理结构和上下文的语义信息,保证了全局一致性,局部色差问题有明显改善,在视觉效果上极大提高了修复图像的真实性,增强了修复图像的质量,体现出MS-FIIM在任意比例不规则掩膜情况下图像修复的优越性。
4.2.2 定量比较
本文采用3个定量评价指标,分别为结构相似度SSIM(Structural SIMilarity)[23]、峰值信噪比PSNR(Peak Signal-to-Noise Ratio)[23]和L1损失。在图像修复的定量分析中,通过比较修复图像和真实图像之间的相似度衡量所提出模型的性能。
如表1所示,本文比较了在CelebA-HQ数据集[22]上,结合6种掩膜率(0.01,0.1],(0.1,0.2],(0.2,0.3],(0.3,0.4],(0.4,0.5]和(0.5,0.6],本文提出的MS-FIIM与PConv和MLGN修复结果的PSNR、SSIM和L1损失值。表1中,加粗数字代表单列上最优,N表示无边界,B表示有边界。
Table 1 Comparison of PSNR, SSIM and L1 of various models on CelebA-HQ dataset表1 各模型在CelebA-HQ数据集上的PSNR、SSIM和L1损失值
从表1可以看出,本文模型在掩膜率较小的情况下修复效果提高并不明显,与PConv和MLGN的修复结果相比差距较小。出现该情况可能存在的原因是,当掩膜率较小时,破损区域的面积较小,PConv和MLGN生成图像的局部色差、边界伪影和区域模糊问题不明显,因此都取得了较好的效果。当掩膜率较大时,本文所提出的模型MS-FIIM在PSNR、SSIM和L1损失3个指标上表现更好。与PConv和MLGN的修复结果相比有较大的提升,大幅度减轻局部色差,使生成的图像具有细致的纹理结构和更好的视觉效果,这也证明了所提出模型的可行性和优越性。
5 结束语
本文针对人脸图像修复存在的局部色差、边界伪影等问题,提出了一种基于部分卷积和多尺度特征融合的人脸图像修复模型,实现对人脸图像中不同比例、形状和位置的破损区域的修复。通过与其他先进修复模型进行实验对比,本文提出的模型能够得到具有更合理的纹理结构和上下文语义信息的修复图像。引入SE注意力残差块和跳跃连接的多尺度特征融合,使修复图像具有更好的视觉效果,弥补了部分卷积在深层网络中因其自身局限性造成的局部色差问题。同时,结合生成对抗网络思想,利用判别器与修复网络的对抗训练,改善了图像中边界伪影的问题,使图像的破损区域与全局区域具有视觉一致性。另一方面,模型也存在局限性,当掩膜率较大时,修复图像仍有细节缺陷,比如眼睛颜色不一致和牙齿模糊等问题。但是,从修复图像的整体质量和视觉效果而言,本文模型在很大程度上提高了修复的性能。本文下一步的工作是针对细节缺陷问题,提出新的解决方案。