基于轻量级GAN的实时视频图像去模糊模型①

2022-01-06 06:04张英俊谢斌红
计算机系统应用 2021年10期
关键词:卷积损失图像

贾 凡,张英俊,谢斌红

(太原科技大学 计算机科学与技术学院,太原 030024)

近年来,随着科技时代的快速发展,手机、摄像机等智能设备已经成为人们日常拍摄的主要工具,但在实际应用时,运动模糊通常会出现在手持智能设备拍摄的照片图像或包含运动物体的低帧速率视频中.图像模糊会降低人类的感知质量,并对后续的计算机视觉分析提出挑战.为此从模糊图像中恢复潜在的锐利图像不仅可以提高图像的视觉效果,还有利于其他的视觉任务,如目标检测和识别[1].

拍摄过程中造成视频图像模糊的原因可以分为运动模糊、失焦模糊和高斯模糊3大类.其中运动模糊是造成视频图像退化的主要原因,也是研究的热点之一.在进行科学研究和实际问题的处理中,模糊模型可以表示为:

其中,IB是模糊图像,IS是锐化图像,K(M)是由运动场M确定的未知模糊核,∗表示卷积,N是噪声.根据模糊核 K(M)是否已知,运动视频图像去模糊方法可划分为非盲去模糊和盲去模糊两大类.早期的工作主要集中在非盲去模糊,根据相机运动的信息,往往会假定一个运动视频图像的模糊函数(核),以此为基础对模糊图像 IB进行反卷积,从而得到去模糊的图像IS.近几年,许多非盲去模糊的方法都被提出,如Schmidt U[2]、Ren[3]、Richardson-Lucy[4]方法都利用各种数学方法模拟出退化机理(模糊核),再反卷积对模糊图像进行重新处理.但该类模拟出退化机理的方法需要花费大量时间推理,并且很难找到一个模糊核满足所有像素点.

盲运动去模糊方法主要目标是如何有效地抑制噪声对视频图像的影响,从而提高对视频图像的恢复质量.在实际处理中,盲去模糊算法的关键在于能够精确估算模糊的核函数.早期盲去模糊算法依赖于自然图像的先验去模糊的方法.2006年Fergus等[5]用混合高斯模型来约束条件服从自然图像梯度分布的规律,利用变分贝叶斯方法获得模糊核函数,然后使用RL算法对图像进行去模糊处理.2013年Xu等[6]利用一种参数化的先验计算模型对每次迭代后的模糊核和锐化图像的进行估计改进.这类方法的缺点是运算时的成本高,并且这类方法在用来处理具有一个更大图像尺度的模糊动态图像时,稳定性也会更差.

由于传统去模糊方法存在着计算量大、受噪声影响大、对模糊核估计要求较高等缺点,因此基于深度学习的去模糊方法得到了迅速发展.目前,卷积神经网络(Convolutional Neural Networks,CNN)[7]在图像的去模糊领域中已被广泛应用.2015年Sun等[8]提出了利用CNN预测运动图像模糊概率分布的深度学习方法,输入为已知模糊概率分布的模糊图像,使得训练输出的模糊概率和已知先验信息的模糊概率同分布,然后再反卷积得到清晰图像.2017年Nah等[9]提出一种以端到端的方式直接去除动态场景模糊的深度多尺度卷积网络; Ramakrishnan等[10]利用条件生成对抗网络框架与卷积神经网络相结合的方法,进行盲无核图像去模糊处理; Kupyn等[1]用条件生成对抗网络和内容损失函数相结合的方法,直接去除运动所产生的图像模糊.这些方法避免了模糊核的估计问题,直接端到端的生成锐化图像,并且取得较好效果,但缺点是推理速度慢,难以达到对模糊视频图像的实时处理.

针对上述研究,本文提出了一种基于轻量级生成对抗网络的实时视频图像去模糊新模型,避免了对模糊核的估计,以端到端的方式直接实现快速高效的视频图像复原.

1 理论基础

2014年,由Goodfellow等[11]提出的生成对抗网络(Generative Adversarial Network,GAN)可以使用生成器生成逼真的高质量图像,并为计算机视觉应用提供了新的技术和手段.GAN提出的初衷是为了判断生成人工数据样本的质量,目前已满足了许多领域的研究和应用需求[12],如语音和语言处理[13]、图标设计[14]、电脑病毒检测[15]等.

GAN模型启发于博弈论中的纳什均衡[16],生成对抗网络模型如图1所示,它包括生成网络(Generative net,G)和判别网络(Discriminative net,D)两个部分.两个网络对抗训练交替进行,生成网络接受噪声作为输入,输出生成数据,判别网络接受生成数据和真实数据更新参数进行优化时固定生成网络参数,目的是将它们区分开判断真假.更新参数优化生成网络时固定判别网络参数,目的是提高生成数据的可信度.

图1 生成对抗网络模型

GAN目标函数定义为:

2 轻量级高效模型

2.1 生成网络

本文引用GAN网络的思想,为了达到实时高效的视频图像去模糊效果,在生成网络部分选用轻量级MobileNet,该网络具有计算量少,体积小,精度高等优势.MobileNetV1[17]中使用了大量的深度可分离卷积,它是由一层深度卷积(DepthWise convolution,DW)和一层逐点卷积(PointWise convolution,PW)组合而成;MobileNetV2[18]中引入了Bottleneck块,该块第1层使用逐点卷积升维扩充通道数提取更多特征,第2层使用深度卷积进行特征融合,其激活函数均使用ReLU6,第3层使用逐点卷积降维,降维后使用Linear激活函数; MobileNetV3[19]分为Large和Small两个版本,它们分别针对高资源和低资源的使用情况,在MoblieNetV2的基础上将5×5大小的深度卷积代替了部分3×3的深度卷积.引入并改进Squeeze-and-Excitation(SE)模块[20]使得有效的权重大,无效或效果小的权重小,可以训练出更好的模型,并且减少了参数量和计算量,还有部分ReLU激活函数被H-Swish(HS)激活函数替代以提高模型精度,MoblieNetV3(Small)网络结构如表1,其中,NL(NonLinear)表示使用的非线性激活函数有HS和RE两种,NBN(No BatchNormalization)表示不使用批量标准化,k类表示1×1卷积抽取用于训练最后分类器的特征,最后划分到k类.

表1 MobileNetV3(Small)网络结构

另外,在图像的去模糊领域里,感受野的选取对于去模糊问题有着重要作用,为了使得去模糊后的视频图像纹理细节丰富和美观,就需要通过选取多个感受野进行特征提取,从而获得更多的图像上下文语义信息.因此,本文方法又加入了多尺度感受野模型特征金字塔网络(Feature Pyramid Net,FPN).FPN模型最初设计用于目标检测[21],它产生多个特征映射层,这些特征映射层编码不同的语义,并且包含更好的质量信息.FPN有自下而上和自上而下的两条路径,其中,自下而上的路径是使用卷积网络提取不同尺度的特征,在该过程中空间分辨率被下采样,可以提取和压缩更多的语义信息.另一方面,通过自上往下的路径,FPN从语义丰富的层重建出更高的空间分辨率.自下而上和自上而下通道之间的横向连接补充了高分辨率细节,有助于定位物体.

生成网络在DeblurGAN模型的基础上修改添加了多尺度特征FPN框架和轻量级MoblieNetV3(Small)主干网两部分,主干网络一共有16层,本文选取表1中的5层(1、2、4、9、12)提取图像特征,并作为多尺度FPN模型不同尺度的特征信息来进行合并,由此生成更清晰的去模糊图像.本文模型利用MoblieNetV3的轻量快捷和FPN重建的高分辨率丰富语义信息特点,使生成网络在速度和精度之间取得了平衡,生成网络模型如图2所示.

图2 生成网络模型

生成网络具体实现过程如下:

1)如表1,首先对输入的模糊图片256×256×3进行3×3的有效卷积下采样,得到第一个128×128×16的特征图lateral0.

2)随后再通过主干网提取4个不同尺度特征:64×64×16(lateral1),32×32×24(lateral2),16×16×48(lateral3),8×8×96(lateral4).

3)将lateral1-lateral4进行1×1的卷积改变特征通道数为128,并进行2倍上采样,与上一层的特征lateral融合分别得到特征图map1-map4,将latetal0进行1×1的卷积改变特征通道数为64 map0.

4)将map1-map4进行3×3相同卷积改变通道数为64并上采样到原输入尺寸的1/4大小并连接成一个张量(64×64×256),其中包含不同级别的语义信息.将该张量如同上述操作相同卷积后通道数变为64.

5)将该张量2倍上采样与map0进行特征融合后再次二倍上采样并进行3×3下相同卷积通道变为3,恢复原始图像大小并减少伪影.

6)最后引入了一个从输入到输出的直接跳过连接,以便学习集中在剩余部分.

2.2 判别网络

判别器网络的架构与PatchGAN[22]相同.为了使得判别网络在辅助生成网络生成更加逼真的去模糊图像,本文在PatchGAN上设置了双尺度判别器,分别为尺寸70×70的局部特征判别器和256×256的全局图像判别器来产生两个对抗性损失,以便捕获图像纹理的局部连续性和图像的全局特征,从而为生成网络提供更加丰富的信息,判别网络如图3所示.

图3 判别网络模型

2.3 损失函数

本文将像素空间损失、内容损失和对抗损失相结合训练网络.其中Ladv包含了局部判别器损失(Lpadv)和全局判别器损失(Lgadv).a、b、c为权重因子,用于平衡各项损失函数,总体损失函数定义为:

(1)对抗损失

GAN早期的优化对抗损失是基于JS(Jensen Shannon divergence)和KL(Kullback Leibler divergence),但是这种优化方式会使训练过程变得不稳定,并且很容易导致梯度消失和模型崩溃.针对上述问题,2017年Gulrajani等[23]提出WGAN-GP,使网络训练收敛速度加快,产生更多的纹理细节信息和视觉更好的锐利图片.2018年Jolicoeur-Martineau认为对抗损失中真实数据的概率应该是一个逐步下降的过程,假数据的概率应该是一个逐步上升的过程,这是以往标准GAN所欠缺的.故此提出了相对论判别器(relativistic discriminator)[24],本论文采用当中具有梯度惩罚的RaGAN-LS对抗损失来训练:

其中,S表示清晰图像,P表示概率,G(B)表示生成器生成的图像,S~Psharp(S)表示在真实清晰图像集中取样,B~Pblurred(B)表示在生成图像集中取样,E为期望值,相比于其他GAN相比,RaGAN-LS可以显著提高网络训练速度和稳定性,所产生的结果具有更高的感知质量和更清晰的输出.

(2)像素空间损失

像素空间损失用于保证生成图像与真实图像之间的相似性,选用L2损失(MSE)有助于纠正颜色和纹理失真.像素空间损失函数定义如下:

(3)内容损失

像素空间损失往往会产生过于平滑的像素空间输出,本文使用感知距离作为内容损失LC的一种形式.它将生成的图像和真实图像送入训练好的VGG19网络中,与L2相比通过计算第3个池化层前的第3个卷积层的特征差异来计算内容损失,使得产生的图像与目标清晰图像在语义上更为相似.内容损失函数定义为:

其中,S表示清晰图像,B表示模糊图像,Wi,j、Hi,j是特征的维度,表示特征映射图的宽和高,是第i个池化层之前的第j个卷积所获得的特征映射.

3 实验与结果分析

3.1 数据集

GoPro数据集[9]使用GoPro Hero 4相机每秒捕获240帧(fps)视频序列,随后通过平均连续的短曝光帧生成模糊图像.包含3214个模糊、清晰图像对,使用2103对进行训练,其余1111对进行评估测试.

Kohler数据集[25]由4幅图像组成,每一幅图像都使用12种不同的模糊核进行模糊处理.它是评估盲去模糊方法的标准数据集.该数据集是通过记录和分析实际的相机运动生成的,并在机器人平台上进行回放,从而记录了一系列清晰的图像,以对6D相机的运动轨迹进行采样.

DVD数据集[26]包含手机、运动相机,以及单反相机以240 fps的速度拍摄的71段视频,然后通过平均连续短曝光帧来近似长曝光,生成了6708个模糊和清晰对.

3.2 实验环境

本实验使用的软件环境为Ubuntu 16.04.6操作系统、PyTorch 1.5深度学习框架、Python 3.7语言版本;硬件环境主要有NVIDIA GeForce RTX 2080Ti显卡,11 GB显存,Intel(R)Xeon(R)Silver4210CPU@2.20 GHz处理器,10 GB内存.

3.3 训练细节

网络训练采用的数据集通过从GoPro数据集里2103对和DVD数据集6708对混合组成训练集,来减少对任何特定数据集的过度拟合.用于测试的数据集都为通用数据集,分别为GoPro数据集(1111对),Kohler数据集(48对).

模型epoch设置为300,式(3)中的权重因子a、b和c分别设为0.5、0.006和0.01.采用Adam优化器[27]来训练模型,batchsize设置为1,学习率初始化为10-4,,在训练150个epoch后学习率线性衰减到10-7.整个模型训练近112 h.采用客观量化的质量评价指标,即峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似度(Structural SIMilarity,SSIM)[28],其中,PSNR衡量的是锐化(生成)图像与模糊图像在像素值上的差异,值越高代表图像失真越小,图像质量越高; 而SSIM从亮度、对比度、结构信息3方面来衡量两幅图之间的相似度,其值越趋近于1,表明它们之间越相似.

训练过程的损失函数及PSNR、SSIM指标变化折线图如图4所示.

图4 变化折线图

3.4 对比实验

本文将提出模型与近年来几种先进的深度学习算法模型进行比较,包括文献[8]的模型、DG-wild[1]、DeepDeblur[9]、DG[1]和 IRv2[29].

3.4.1 GoPro数据集

本文所提出的模型在标准性能指标(PSNR、SSIM)、推理速度(在单个GPU上测量每个图像的平均运行时间)以及模型大小与其他模型进行了比较,结果如表2所示,实验对比图如图5所示.

图5 实验对比图

从表2可以看出,本文去模糊模型在PSNR和SSIM值上都保持较高水平,并且在推理速度有了显著提升.表2中,文献[8]的模型训练时所用的数据集是由模糊核和清晰图像卷积合成的,这与真实场景中的模糊有很大不同,因此应用到真实视频图像去模糊不能够有效恢复图像.相比于使用GoPro数据集进行训练和测试的模型DG-wild[1],本文模型的PSNR提升了1.46 dB,SSIM也有所提高.文献[9,29]的模型、DG[1]与本文模型PSNR都达到了28以上,SSIM达到了0.9以上,说明本文模型也可以生成纹理信息丰富、与原始图像相近的图像,与模型DeepDeblur[9]相比推理速度提高了近127倍; 与模型IRv2[29]相比,本文所提出来的模型尺寸要小的多(233 MB vs.10.5 MB),同时推理速度提高了近10倍; 与现有的轻量级网络MobileNet模型[29]相比,PSNR和SSIM都有所提升,模型大小也占有优势,推理速度提升了近1.7倍.这表明本文模型可以对29 fps的视频进行实时帧去模糊处理.本文模型是能够同时实现速度和精度需求的去模糊模型.

3.4.2 Kohler数据集

各模型在Kohler数据集上的测试结果如表3所示,实验对比图如图6所示.与GoPro结果类似,相比于文献[8]的传统去模糊模型,文献[1,9,29]的模型和本文模型采用端到端的网络模型得到的去模糊图像SSIM较高,说明模型对图像去模糊效果依然显著.PSNR提升并不明显、普遍较低,这是因为基于深度网络学习的端到端去模糊模型依赖于训练时的数据集,当测试数据集与训练数据集相关程度不高时,模型没有学习此类数据特征,导致重建的去模糊图像在纹理细节上较差.表2和表3中DG-wild[1]和DG[1]两个模型的测试结果相反是因为训练时数据集的分配比例不同所导致的,所以在端到端的去模糊网络模型训练中,训练数据是关键问题,在未来具有大量、准确训练对的数据情况下,所训练的网络模型泛化能力应有更大的提升.

图6 实验对比图

表2 GoPro数据集的实验对比结果

表3 Kohler数据集的实验对比结果

3.4.3 消融实验

为验证本文模型各组成部分的有效性,在GoPro数据集进行了消融实验,起点为生成对抗网络(生成器部分MobileNetV3、感知损失和WGAN-GP,全局判别器)端到端直接去模糊,结果如表4所示.

表4 本文方法的消融实验(GoPro)

从表4中可以看出本文提出的方法各部分都在稳步提升PSNR和SSIM,FPN模块的贡献最大,另外加入均方误差或感知损失有利于训练的稳定性和最终结果.

3.4.4 自行拍摄图像去模糊

许多经过训练好的模型应用到实际场景中,不能很好地获得去模糊效果,为了验证本文模型的实用性,在训练好的模型上对手机拍摄的校园模糊图像进行去模糊处理,结果如图7所示.

图7 自行拍摄校园图像去模糊

4 结论

本文主要研究单幅图像盲运动去模糊问题,针对的主要是由相机抖动或低帧率视频中运动物体引起的非均匀运动模糊.在DeblurGAN模型的基础上提出了一种基于轻量级生成对抗网络实时视频图像去模糊新方法,解决了早期去模糊算法计算复杂、推理效率慢以及恢复图像效果差等问题.该方法在GAN的生成器中引入轻量级网络MobileNetV3进行特征提取,并加入多尺度FPN框架进行特征融合,这两者结合使得生成网络在推理效率上有了显著提升.双判别网络可以为生成网络提供更加丰富的局部纹理细节和全局特征,更加准确的区分生成的去模糊图像和真实的清晰图像.实验结果表明,本文方法在PSNR和SSIM保持着较高的结果,同时速度比其它方法快1.7-127倍,并且网络模型仅10.5 MB.训练测试时时使用的图片类型为jpg或png,本文的网络模型是完全卷积的,因此可以应用于任意尺寸大小的图像,另外还可以将本文方法用于车辆、人脸的去模糊任务中.未来工作一是进一步改进网络模型,在保持推理效率的同时,进一步提升图像复原的质量; 二是扩展该方法以实现实时视频增强.

猜你喜欢
卷积损失图像
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
两败俱伤
A、B两点漂流记
损失
名人语录的极简图像表达
一次函数图像与性质的重难点讲析