一种面向图像修复的改进生成对抗网络

2024-03-01 08:39刘庆俞
通化师范学院学报 2024年2期
关键词:全局残差损失

刘庆俞,胡 莹,陈 磊,肖 强,刘 磊

图像修复是机器视觉领域中的一个重要研究子课题,它的研究目的是在图像中恢复缺失部分、修复损坏区域,并尽可能恢复到原始图像的效果.目前图像修复技术已广泛应用于数字图像处理、计算机图形学、医学影像处理、视频编码等领域.

传统的图像修复主要有基于像素扩散和像素块的修复方法,典型的算法有基于全变分的修复方法[1]、基于曲率驱动扩散修复方法[2]、基于快速近邻场算法[3]、基于补丁优先级算法[4]等.基于扩散的方法通常只能修复缺失区域比较小的图像,且受限于缺失区域周围的像素信息,难以修复现实世界具有复杂纹理细节信息的图像.像素块的修复方法优于扩散的方法,但是其计算量会明显增加,且只能修复与训练集中相似的缺失区域,修复效果严重依赖原始数据集.近年来,随着深度学习技术的不断发展,基于深度学习的图像修复方法取得了显著的成果.尤其是基于生成对抗网络(Generative Adversarial Network,GAN)[5]的图像修复方法[6−9]逐渐成为人们的关注热点.相比于传统的图像修复方法,基于GAN 的图像修复方法和模型能够更好地保留图像的底层结构和纹理信息,并且具有良好的鲁棒性和泛化能力[10−11].

Context Encoder(CE)[12]是首个基于生成对抗网络的图像修复方法,整体结构为编码−解码器结构.由于其在图像生成过程中未充分考虑到全局一致性与语义连贯性,导致缺失区域修复后存在严重的模糊和边界突出现象.为解决该问题,本文构建了以UNet[13]结构为基础,融合了残差模块、全局一致损失和TVLoss的图像修复方法,旨在获得更好的图像修复效果.

1 相关理论

1.1 生成对抗网络

生成对抗网络是由IAN GOODFELLOW 提出的一种深度学习模型,其成果在图像、语音、文本生成等领域都取得了一定的成果,被认为是深度学习领域的一项重要进展.生成对抗网络通过让两个子网络以相互对抗的方式生成能够“骗过”人类的新数据.这两个子网络分别称为生成器(Generator)和判别器(Discriminator).生成器负责生成新样本,并尽可能使其与真实样本相似,以达到欺骗判别器的目的;判别器负责区别真实样本和假样本,并尽可能将两者区分开.生成器和判别器通过不断地对抗学习来提高各自的能力,最终促使生成器生成具有逼真程度的数据.

GAN 的训练过程可以形象地比喻为一场“博弈”,生成器和判别器之间进行不断地互动,其过程可以用以下公式表示:

式中:x表示真实数据;z表示生成器的输入,即随机噪声;D(x)和D(G(z))分别表示判别器对真实数据和生成样本的预测结果;minGmaxD表示生成器和判别器的优化目标;Preal(x) 表示真实数据的数学分布;Pz(z)表示生成器输入随机噪声数据的分布函数;Ex~Preal(x)表示真实数据的期望概率;Ez~Pz(z)表示生成样本的期望概率.

1.2 残差网络

残差网络(Residual Network,ResNet)是由何凯明等人于2016 年提出的一种深度神经网络结构[14],在图像识别、语义分割和自然语言处理等领域都取得了很好的效果.它通过引入“残差块”(Residual block)来解决深度神经网络中存在的梯度消失和梯度爆炸问题,使得网络可以更深、更容易训练和收敛.

在传统的卷积神经网络中,多个卷积层通常会被串联起来形成一个深层网络,如VGG等.但是,在网络变得更深时,通常会出现训练难度增加、精度下降等情况,被称为“退化问题”.其原因在于:当信息需要穿过多个卷积层时,由于每个卷积层都会对输入进行非线性变换,导致后面的卷积层无法获取到前面卷积层所丢失的信息,从而使得网络的表达能力降低.为了解决这个问题,ResNet 引入了残差块(Residual block),该块包含了两个卷积层,另外使用了跨越连接(Skip Connection)将输入直接进行1*1 卷积,然后传递到后面的卷积层,如图1 所示.这样,即使特征信息在处理过程中丢失,原始输入仍然可以保留并直接传递到后面的卷积层,从而实现跨越连接的效果.

图1 残差块结构图

F(X) 表示残差块中的变换函数,X表示输入.因此,F(X) 实际上表示网络要学习的部分,而X则是该部分未被学习到的部分.通过这种方式,卷积神经网络的层数可以变得更多,其特征提取能力会更强.

2 模型设计

本文在CE 模型的基础上,使用UNet 跳层连接改进生成器的网络模型.同时,生成器网络的下采样模块使用了改进的残差模块,以达到在下采样过程降低模型参数的同时不减少图像可提取的特征.生成器由7 个下采样模块和6 个上采样模块组成,假设生成器输入图像为(3,128,128),则生成图像为(3,64,64),如图2 所示.生成的图像和真实图像分别输入判别器网络进行判别处理.生成器生成的图像为缺失图像的修复结果,把其和原始输入图像结合得到修复的大图.

图2 模型整体结构

2.1 生成器网络

残差模块可以在深度卷积神经网络中提升图像的特征提取能力,考虑到不同大小的卷积核能够提取不同尺度的图像特征,因此对原始残差模块进行改进.通过增加一个5*5的卷积分支来增强残差模块的提取效率,具体如图3 所示.

图3 改进后残差模块

F(X) 表示残差块中3*3 和5*5 分支的变换函数,X表示输入.这时,F(X)实际上表示网络要学习的部分.改进后残差模块通过3 个分支中的卷积步长来控制特征图的大小变化.

生成器的每个下采样模块使用2 个改进后的残差模块,其中一个残差模块进行特征图的下采样操作,如图4 所示.上采样模块使用反卷积提升图像分辨率,使得生成器的输出图像达到指定大小.

图4 下采样模块结构图

2.2 判别器网络

判别器网络的主要作用是区分真实图像和生成的“假”图像,因此判别器的输入图像和生成器的输出图像大小一致.判别器网络通过3 个卷积层将输出变化为(1,8,8)的矩阵,而不是一个具体标量值,矩阵中的每一个值代表判别器输入图像的一个小的区域.如果一个区域是来自真实图像,则其对应的值为1,否则为0.利用patchGAN[15]的思想可以使图像的局部纹理细节得到有效增强.

2.3 损失函数

在生成器和判别器的对抗训练过程中,损失函数起着至关重要的作用.生成器网络生成缺失区域的小图,小图嵌入遮挡缺失区域得到修复后的完整图像.因此,考虑增加全局L1 损失约束图像的整体一致性.针对修复区域的边界突出问题,引入TVLoss降低图像噪声和保持边界的平滑性.生成器损失包括对抗损失、局部L1 损失、全局L1 损失和TV Loss损失,具体如下所示:

式中:Lossadv、LossL−L1、LossG−L1、LossTV分别是 对抗损失、局部L1 损失、全局L1 损失和TVLoss损失;γadv、γL−L1、γG−L1、γTV分别对应四种损失函数的权重.

判别器损失如下:

式中:Lossadv表示对抗损失.

3 实验结果与分析

3.1 实验准备

CelebA 图像数据集是香港中文大学制作的开放数据集,包含全球10 000 多位名人的202 599 张图片,是图像和人脸处理的非常好用的数据集.本文随机选取其中46 000 张图像作为训练数据集,另外选取1 000 张图像作为测试数据集.考虑到硬件条件限制,所有图像统一缩放到128*128 尺寸,遮挡区域为居中64*64 大小.

实验操作系统为Ubuntu 20.04,Python 3.7,Pytorch 1.10.实验超参数batch size 为1 000,γadv为0.02,γL−L1为0.48,γG−L1为0.48,γTV为0.02,优化器为Adam,生成器和判别器的学习率都是0.000 2.

3.2 实验对比

为了验证所设计模型的有效性,将CE 模型的生成器添加UNet 结构(简称CE−UNet 模型),进行定性和定量的对比实验.在定量分析方面,使用峰值信噪比(PSNR)和结构相似性(SSIM)两项指标进行数据分析.PSNR一般用于衡量最大值信号和噪音数据之间的图像质量参考值.PSNR值越大,表示图像失真越少.SSIM是一种衡量图像之间相似度的指标.SSIM值越大,表明原图和生成图像相似度越高.

图5 为3 种修复模型的修复结果图,其中第一列为矩形遮挡人脸图像,后面依次是CE模型、CE−UNet 模型和本文模型,最后一列为原始未遮挡人脸图像.通过直观比较,本文模型的修复效果最好,修复后人脸各器官相对自然,符合人们视觉认知习惯.而CE 模型、CE−UNet 模型的修复结果存在明显的图像模糊和语义不连贯等问题,可读性较差.

图5 修复结果对比

表1 清晰地说明了本文修复结果在PSNR和SSIM指标上的优越性.CE−UNet 模型因为存在跳层连接,可以很好地将图像底层特征和高层抽象特征融合,所以比原始CE 模型修复结果略好.

表1 修复结果的定量分析

3.3 损失函数验证

对生成器而言,除了对抗损失,还有局部L1 损失、全局L1 损失和TVLoss.因此,设计了生成器损失函数的消融实验,在生成器的损失函数中分别移除局部L1 损失、全局L1 损失和TVLoss,然后进行定量和定性分析.

通过图6 可以得出,局部L1 损失、全局L1损失和TVLoss三种损失函数对图像的最终修复效果都起着一定的促进作用.其中,当移除局部L1 损失时,图像修复效果最差,局部L1损失可以实现遮挡区域像素级别的处理.而全局L1 损失和TVLoss则可以很好地保证图像的整体连贯性和修复边界的平滑过渡.

图6 修复结果(损失函数验证)

表2 说明,三种损失函数对图像的最终修复都起着不同程度的作用,三种损失函数共同使用,联合对抗损失,修复效果才能达到最优.

表2 损失函数的定量分析

4 结语

图像修复具有重要的理论研究价值和实际意义.在CE 算法的基础上,使用UNet 结构替换生成器模型,同时在其下采样模块中引入多路分支残差模块进行特征提取.生成器损失函数综合使用了对抗损失、局部一致损失、全局一致损失和TVLoss损失,从而提高图像的修复能力.实验结果表明,本文提出的改进生成对抗网络在CelebA 数据集上取得了较好的图像修复效果,和CE 等修复模型相比,主客观评价指标均得到提升.

猜你喜欢
全局残差损失
Cahn-Hilliard-Brinkman系统的全局吸引子
基于双向GRU与残差拟合的车辆跟驰建模
量子Navier-Stokes方程弱解的全局存在性
胖胖损失了多少元
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
玉米抽穗前倒伏怎么办?怎么减少损失?
落子山东,意在全局
一般自由碰撞的最大动能损失
损失