多注意力域的稠密连接人脸超分算法

2020-10-19 04:41董占龙王富平
计算机工程与应用 2020年20期
关键词:人脸纹理注意力

刘 颖,董占龙 ,卢 津,王富平

1.西安邮电大学 电子信息现场勘验应用技术公安部重点实验室,西安 710121

2.西安邮电大学 图像与信息处理研究所,西安 710121

1 引言

人脸图像超分辨率(Super-Resolution,SR)重建[1]技术是通过SR 重建算法从低分辨率(Low Resolution,LR)人脸估计重建出高分辨率(High Resolution,HR)人脸的技术。因为人脸图像是人们工作生活中关注度最高的多媒体内容之一,因此,通过弥补观测到的LR人脸丢失的细节信息从而增强人脸分辨率是实际生活中亟待解决的问题。作为一种低成本的软件技术,人脸超分辨率重建在公共监控、多媒体通信、人脸识别等图像处理系统中得到广泛研究与应用。20世纪60年代,Harris等人首次提出了SR 重建技术,随后诸多学者掀起了对其的研究热潮,并使之得到了长足发展。目前,图像SR重建技术可分为三类:(1)基于插值的图像超分技术;(2)基于重建的图像超分技术;(3)基于学习的图像超分技术。

基于插值的图像SR 重建技术,以超分算法为理论基础,可细分为:基于单帧图像的最邻近插值(Nearest Neighbor Interpolation)、双线性插值(Bilinear Interpolation)、双立方插值(Bicubic Interpolation)和样条插值等算法,也有针对多帧图像的非均匀采样内插算法。基于插值的方法理论基础简单,计算量小,但是重建的图像质量比较差;而基于重建的图像SR方法是通过分析LR图像提供的先验信息降质过程进行重建的,该算法通过降质模型获取先验信息,重建效果受限于降质模型的有效性和噪声的大小,即随着图像放大倍数的增大急剧下降。

鉴于以上两类方法的不足,近年来,基于深度学习的学习型SR重建算法成为一大研究焦点。例如,Dong等人[2]提出了SRCNN 网络,该网络包含三层卷积神经网络,是第一个基于深度学习的超分算法。为了增加网络的深度,Kim 等人提出了 VDSR[3]和 DRCN[4],将网络深度增加到了20 层。随后,更多的基于深度学习的超分算法[5-8]不断涌现。然而,这些超分方法产生模糊和过于平滑的输出,重建的超分图像普遍缺乏高频纹理细节。为了解决这个问题,一些算法被提出来。典型的如,Dahl 等人[9]使用 PixelCNN 合成了真实的细节;Zhu 等人[10]将密集对应场估计与人脸超分辨率相结合;Yu 等人[11]对GAN[12]进行了研究,达到了创建感知现实的结果。然而,这些方法在超分辨率图像空间中的应用面临着许多问题,如计算复杂度[4]、训练的不稳定性[11]、对姿态和遮挡变化[13]的鲁棒性差等问题,Huang 等人将小波变换与深度学习相结合,提出了一种基于小波的多尺度人脸超分辨方法WaveletSRNet[14],将单幅图像的超分辨率转换为深度学习框架下的小波系数预测任务,实现了一种基于小波变换的柔性体积神经网络,取得了较好的人脸重建效果。然而,重建的人脸图像在局部细节纹理方面还有待深入研究。

鉴于此,本文在WaveletSRNet 网络架构的基础上,提出了基于注意力机制的稠密连接人脸超分算法。该算法主要由特征提取和图像重建两个部分组成,通过同时关注特征通道域和空间域的信息,建立多注意力域模块。其中,通过改变信道和空间上的相互关系和权重,自适应地对特征进行加权重组,并且使用密集的稠密连接和长短连接将不同层的特征融合在一起,实现提升网络性能。实验结果验证了本文算法的正确性;又与现有算法比较,表明了本文算法的优越性能,重建的人脸图像具有更清晰的纹理细节特征。

2 基于注意力机制的稠密连接超分网络

本文研究的算法框架分为:特征提取子网络和图像重建子网络,如图1所示。

在特征提取子网络中,首先输入低分辨率图像,通过卷积层(Conv)和一系列的稠密连接模块(Dense Block,DB)后,使用连接层(Concat)将各模块提取的特征图进行连接;将连接的特征输入图像重建子网络,通过卷积层(Conv)、批归一化层(Batch Normalization,BN)、激活层(Relu)、多注意力域模块(MADM)后,使用小波包逆变换(IDWPT)得到重建的高分辨率图像HR。

2.1 特征提取子网络

特征提取子网络结构如图1左半部分描述,其由高分辨率图像通过插值降采样得到低分辨率图像作为网络的输入,低分辨率图像首先经过一个3×3 的卷积,得到特征图,这个卷积层的作用是提取图像的低级特征,同时扩展特征的通道数,通过长连接加入到每一个DB的输入,以便同每一个DB模块提取的高层语义特征进行融合。随后,一系列DB用来提取图像的高级语义特征。

图1 算法整体框架示意图

图2是本文构建的DB模块,其包括m个卷积层,每个卷积层后连接BN 层和Relu 层。如果每个卷积层产生c维的特征向量,则一个稠密连接模块产生c×m维的特征向量。这里,c称为增长系数,表示每个卷积操作为最后的输出贡献的信息量。与残差连接模块不同的是每一层可以将其之前的所有层提取的特征作为输入,即:

式中,F0表示第一个卷积层输出的特征图,FDB1,FDB2,…,FDBn-1表示当前DB之前每个DB的输出。

图2 DB结构图

通常,在神经网络中,合理地使用跳跃连接可以有效地提高SR 重建性能。因此,构建的DB 模块,邻近层间都设计短的通道。以此加强通过深层网络的信息流,从而缓解消失梯度问题;且DB可通过特性重用大大减少参量个数,减轻内存负担,降低计算量,从而实现高性能。另外,采用DB作为基础的卷积模块,不同于当前超分的稠密连接网络,而是在DB中加入了BN层,并移除了可删除特征图像素信息的池化层和丢弃层,将更利于超分图像的重建。

2.2 图像重建子网络

在人脸图像的超分任务中,由于需要将低分辨率图像重建为高分辨率图像,所以涉及到图像尺寸需放大。现今研究中,主要有两种策略:一是如SRCNN[2]和VDSR[3]所阐述,将低分辨率图像直接插值到与高分辨率图像一样的大小,输入神经网络,但是这种方法由于输入尺寸变大,增加可计算的复杂度,而且并没有为图像的重建带来新的信息;另一种是输入低分辨率图像,使用反卷积层来扩展图像的尺寸,虽然不会增加计算复杂度,但是反卷积操作在特征图中引入额外的信息。正因为诸如此类问题的存在,本文采用网络学习获取小波域图像,通过小波包的逆变换来实现图像重建。基于此,图像重建子网络涉及多注意力域模块(MADM)和小波包逆变换(IDWPT)。

计算机视觉中,卷积神经网络通过提取图像的特征从而进行各种任务,但是传统的神经网络其实是将全部特征等价对待,这是不符合实际情况的。而注意力机制的网络通过给不同的特征分配相应的权重,使神经网络更加关注“好的”特征,忽视“坏的”特征,从而提升网络的性能。袁等人[15]将注意力机制用于图像识别,构建了一个基于特征图通道和子空间的注意力卷积模块,在识别精度上获得较大提升;孙等人[16]在目标检测中引入与子区域特征和宽高比特性相关的注意力库,生成注意力特征图对原始候选框池化特征进行优化,取得了较大的精度提升;Li 等人[17]在人脸面部识别中引入注意力机制,感知人脸遮挡部分,将网络的注意力集中到最具区分度的人脸遮挡部分,实现更好的面部识别精度。

针对网络注意力域的不同,一般分为时间域、空间域、通道域。通常任务只关注特征的一个注意力域,比如通道域[18]或空间域[19]。为了使网络可以关注到特征图中更有效的信息,本文融合通道域和空间域,创建用于人脸超分任务中的多注意力域模块,如图3所示。

基于通道域的注意力机制如图3 上半部分所示。上一层输出的特征首先经过全局平均池化得到一个1×1×c的全连接层,其中c表示上一层特征的通道数,顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野。随后首先将特征维度降低到输入的1/r,这样做比直接用一个全连接层的好处在于:(1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;(2)极大地减少了参数量和计算量,其中r表示降维压缩比,r需要根据实验来进行调整,r过大会造成有效信息的过分丢失,r太小计算复杂度过高。最后经过ReLu激活后再通过一个全连接层升回到原来的维度c,此时的全连接层表示特征图每个通道的权重,与输入特征图进行相乘可得到通道注意力特征图FCA。

图3 MADM框架示意图

其次,在空间域中,每一个卷积滤波器输出一个H×W的特征图,和人类视觉系统一样,人们看一张图时,总是会聚焦到图中最重要的部分,同样在神经网络中,希望网络能够聚焦到特征图中最重要的部分,所以给特征图上每个像素赋予不同的权重来对它们的重要性进行区分。如图3下半部分,前面卷积层提取出的特征被分成三个支路,分别经过一个1×1 的卷积层,用来减少通道的数量,降低计算复杂度。三个支路的输出分别为Q、K、V,即:式中,WQ、WK、WV分别表示三个卷积层的参数,F为前面卷积层输出的特征图。

紧接着对上面两个支路进行压缩,此时,Q∈Rc×N,K∈Rc×N,V∈Rc×N。其中,c表示特征图的通道数,N=H×W为每个通道像素的总个数。随后,将Q进行转置并与K进行相乘,通过softmax 函数,将空间特征权重归一化到[0,1]之间,具体公式如下:

此时,S∈RN×N,sij表示特征图中第i个像素对第j个像素的影响权重。

得到空间注意力特征图FSA。随后,将通道域和空间域的特征进行融合F=FSA+FCA,得到最终给予不同权重的特征图,将其通过一个3×3 的卷积得到小波域的图像,最后,通过小波包逆变换得到最终的高分辨率图像。

2.3 损失函数

在人脸超分任务中,普遍使用基于像素的均方误差(Mean Square Error,MSE)作为损失函数。然而,正如文献[4]所述,仅仅是最小化基于像素的均方误差损失函数,会使重建图像过于平滑,很难捕捉到高频纹理细节,导致模糊的纹理重建效果。但是,利用高频小波系数描述纹理细节,将超分辨率问题从原始图像空间转化为小波域,引入基于小波的损耗可以来帮助纹理重建,避免使用均方误差损失导致的模糊的纹理重建效果。相比于直接在原始图像空间中进行超分辨率,在小波域中可以将图像分解成相同大小的小波系数序列,可以对不同频率的信息分多支路进行重建,最后通过小波包逆变换进行重建。相比仅单独使用整个图像计算损失,每个支路的任务更为单一,从而使重建效果具有更多的高频纹理细节。在损失函数中limg表示整个图像的损失函数,而lwavelet表示不同频率的小波系数的损失函数来约束网络重建出各个频率的小波系数。多个损失函数共同对网络进行约束,使网络重建出更清晰的图像。同时,为了得到更清晰的纹理细节,使用VGG19中间层的输出特征来计算感知损失。

具体损失函数如下:

式中,ωi表示第i个损失函数的权重,lwavelet、limg、ltexture和lperceptual分别为小波系数损失函数、图像损失函数、纹理损失函数和感知损失函数,各损失函数的计算如下。

小波系数的损失函数为:

式中,Cˆ和C分别表示网络预测的小波系数和真实高分辨率图像产生的小波系数。

整个图像的损失函数为:

同样,为了防止小波系数为0,加入纹理损失为:

由于在深度学习的网络中,浅层网络一般提取纹理结构等基础特征,随着网络的加深,就会得到更多的深层语义特征,所以在预训练的VGG19网络中,分别输入重建图像和原始图像,得到其浅层网络输出的纹理结构特征来计算感知损失,以此来约束重建图像得到更多的纹理细节信息。提取预训练的VGG19网络中间层的特征来计算感知损失:

式中,φˆ和φ表示预测高分辨率图像和真实高分辨率图像输入VGG19 网络后中间层提取出的特征。最后,联立损失函数式(6)~(9),进行加权整合,得到总的损失函数lfull,如式(5)所示。

3 实验分析

使用LFW、Celeba 以及Helen 三个主要人脸数据集,其中 Celeba 数据集有 202 599 张人脸图像,LFW 数据集包括13 000多张人脸图像,Helen数据集包含2 230张人脸图像。在实验中,分别挑选Celeba 数据集中的10 042张图像和LFW数据集中的12 233张人脸图像作为训练集;测试时,分别在Celeba 数据集中挑选1 000张,在LFW 数据集中挑选1 000 张,在Helen 数据集中挑选330张图像,且所有测试图像均不在训练集中。所有图像均被裁剪到128 pixel×128 pixel,并将训练数据使用插值进行下采样输入网络中,本文实验均在Pytorch深度学习框架下,硬件平台为TeslaV100 显卡,显存为32 GB。

实验中,采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性[20](Structural Similarity Index,SSIM)作为性能评价指标。其中,PSNR计算为:

式中,n为每像素的比特数,一般取8,即像素灰阶数为256。PSNR 的单位是dB,数值越大表示失真越小。其中,MSE表示当前图像X和参考图像Y的均方误差:

式中,H、W分别为图像的高度和宽度。

SSIM的计算为:

式中,l(X,Y) 、c(X,Y)、s(X,Y)分别表示亮度比较、对比度比较、结构比较:

其中,μX、μY分别表示图像X和Y的均值,σX、σY分别表示图像X和Y的方差,σXY表示图像X和Y的协方差,SSIM 是一个0 到1 之间的数,越大表示输出图像和无失真图像的差距越小,即图像质量越好。

3.1 实验讨论

3.1.1 批归一化(BN)的影响

BN层作为一种有效的归一化方法被广泛应用于深度学习的各个领域。文献[21]认为,在网络中加入BN层不利于超分图像的重建。实验在相同的网络中分别加入BN 层和移除BN 层,结果发现:BN 层有利于人脸图像的重建,在相同的网络结构中加入BN,PSNR 和SSIM 均得到提升。这主要因为不同于通用图像的超分,人脸图像具有相似的结构,BN层有利于增强人脸图像的结构信息。具体实验结果如表1所示。

表1 相同网络下有无BN层实验结果

3.1.2 稠密连接模块规模的分析

在稠密连接中,主要有3个参数影响到该模块的规模,分别为稠密连接模块的个数n,模块中卷积层的数量m,以及每个卷积操作输出的特征通道数(增长系数)c。实验中,分别选择不同的参数来观察其对实验结果的影响,发现在超分网络中,增加网络的深度(m、n)和宽度(c),有利于图像的重建,但是并不是网络越深越好,网络过深有可能陷入局部最优,从而降低网络性能。具体的实验结果如表2和表3所示。

表2 不同稠密连接模块的实验结果

表3 不同增长系数的实验结果

3.2 实验结果分析

为了验证提出算法的优越性能,采用双三次插值算法(Bicubic Interpolation)、SRCNN、VDSR、WaveletSRNet、EDSR及本文算法在相同数据集上进行训练与测试,其结果如图4和图5所示。图4为本文算法与现存的各算法在SSIM性能上的曲线图,由图中可以看出,本文算法在三个不同的数据集上均取得了较好的性能,在Celeba数据集以及Helen 数据集上均取得了最好的SSIM 指标,在LFW数据集上稍逊于VDSR算法,但在视觉效果上要优于VDSR 算法,如图6 所示;图5 为各算法在PSNR 指标上的性能曲线图,相比于Wavelet 方法,本文算法在三个数据集上PSNR 分别提升0.22 dB、0.44 dB、0.39 dB,并且本文算法在三个数据集上均取得了最高的PSNR值,证明本文算法的优越性。

图4 SSIM对比曲线

图6 实验结果示例

图6展示了不同方法的实验结果图像示例,可以看到,SRCNN的超分结果虽然在PSNR和SSIM上不如直接进行插值的Bicubic方法,但是在视觉效果上要优于后者,但是在图像边缘会出现黑色的横纹;VDSR和EDSR相对SRCNN 方法取得一些改善,并且取得了较高的PSNR,但是其超分结果过于平滑,无法恢复出牙齿等纹理细节;WaveletSRNet 虽能够恢复出一些细节信息,但局部细节纹理的清晰度依然存在改进空间,相比之下,本文算法重建出的人脸图像具有更清晰的牙齿等纹理细节特征,并且在特征边缘避免了像素失真问题。得益于为网络中的不同通道和不同空间赋予了不同的权重,使对重建结果有利的特征和通道发挥更大的作用,并且降低不利特征和通道对结果的影响,使得最终重建出更好的结果。

4 结束语

本文提出了一种基于注意力机制的稠密连接人脸超分算法,在网络中使用多注意力域模块,并且使用稠密连接和长短连接。通过实验分析,证明了与一般超分任务不同,人脸图像由于具有相似的结构,使用批归一化层有利于增强人脸图像的结构信息;并且通过对稠密连接模块规模的实验,证明在人脸超分任务中,网络结构并不是越深越好。最后,通过与现有算法比较,本文方法重建的人脸图像在量化指标和主观视觉效果上均优于其他几种重建方法,在重建的人脸图像上能够恢复出更清晰的纹理细节。

相比于传统的深度学习超分方法,本文方法重建的人脸图像虽然在高频纹理细节上得到一定的改进,但是相对于真实图像而言,补充的细节虽然是细节,但是可能和真实的细节不同,纹理结构比较单一,并且和实际不符,不过总归是有了细节,视觉感官上要更好一些。而生成式对抗网络通过鉴别器来对重建图像和真实图像进行鉴别,直到鉴别不出两者的区别,使得重建的细节更加符合真实图像的细节。加入生成对抗网络,在训练阶段增加了网络的规模,但是在测试阶段只需要保留生成器进行图像重建。

猜你喜欢
人脸纹理注意力
让注意力“飞”回来
有特点的人脸
一起学画人脸
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
三国漫——人脸解锁
TEXTURE ON TEXTURE质地上的纹理
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
消除凹凸纹理有妙招!