GAN方法去模糊-DeblurGANv2

机器学习算法工程师

共 2684字,需浏览 6分钟

 ·

2021-11-27 04:05

   作者:晟 沚          

        


前  言


   DeblurGANv2是乌克兰天主教大学的Orest Kupyn等人提出的一种基于GAN方法进行盲运动模糊移除的方法。它在第一版DeblurGAN基础上进行改进而来,通过引入Feature Pyramid Network与轻量型backbone等使得DeblurGANv2取得更快、更优的性能。作者首次将FPN引入到去模糊中作为生成器的核心模块。FPN可以与大量的backbone协作,可以轻松的在性能与效率方面取得均衡。FPN-Inception-ResNet-v2集成取得了SOTA性能,而FPN-MobileNet系列取得10-100倍的速度提升同时具有媲美其他SOTA方法的性能,可以达到实时性需求。除了在去模糊领域,DeblurGANv2取得了SOTA性能,它同时适用于其他图像复原任务。在efficiency,quality, flexibility 三方面都取得了state-of-the-art 的效果。 

作者将FPN架构引入到去模糊问题中,同时采用了不同的backbone进行网络设计,配合GAN以及内容损失的训练学习,DeblurGANv2取得了更快更优的性能。论文的创新点包含:

  • Framework Level。对于生成器,为了更好的保准生成质量,作者构建了一个基于FPN的去模糊框架,判别器方面采用带有最小开方损失(least-square loss )的相对判别器(relativisticdiscriminator),并且分别结合了全局(global (image) )和局部(local (patch) )2个尺度的判别loss。

  • Backbone Level。采用了3种骨架网络,分别为Inception-ResNet-v2,MobileNet,MobileNet-DSC。Inception-ResNet-v2具有最好的精度,MobileNet和MobileNet-DSC具有更快的速度。 

  • Experiment Level。在3个指标PSNR, SSIM, perceptual quality 都取得了很好的结果。基于MobileNet-DSC的DeblurGAN-v2比DeblurGAN快了11倍,并且只有4M大小;同时作者也表明该框架同样适用于更广义的图像复原任务。


01

网络结构


上图给出了DeblurGANv2的架构示意图。下面将从不同的方面对其进行简单的介绍。

1

FPN


现有的图像复原任务往往采用类ResNet架构,或者采用多尺度输入方式进行图像去模糊。然而,多尺度方式较为耗时且占用过多内存。作者将目标检测中的FPN引入到图像去模糊应用中。

作者所设计的FPN包含5个尺度的特征输出,这些特征被上采样到原始输入四分之一大小并拼接作为一个整体(它包含多尺度信息),后接两个上采样模块以复原到原始图像大小并减少伪影。类似DeblurGAN,它同样引入了全局残差连接。输入图像归一化到[-1, 1],在输出部分添加tanh激活以确保生成图像的动态范围。FPN除具有多尺度特征汇聚功能外,它还在精度与效率之间取得均衡。

2

Backbone


该FPN框架支持多种backbone选择,基于该即插即用属于,可以根据性能与效率需求设计各式各样的网络架构。作者默认采用基于ImageNet预训练(包含更多语义相关特征)的模型的骨干网络。以Inception-ResNet-v2作为骨干网络追求更高的性能,其他如SE-ResNeXt同样有效。

为追求更高效以切合终端设备应用,作者选择将MobileNetv2及其变种作为骨干网络,这两个网络命名为:FPN-MobileNet,FPN-MobileNet-DSC。

除了上述提到的骨干网络外,其他相关骨干网络均可作为该架构的选择。

3

双尺度判别器



不同于DeblurGAN选择了WGAN-GP,作者在LSGAN基础上适配了relativistic,该RaGAN-LS损失定义如下所示。相比WGAN-GP,它可以使得训练更快、更稳定,同时生成的结果具有更高的感知质量、更优的锐利度。

 作者提到:对于高度非均匀模糊图像,尤其是包含复杂目标运动的图像,全局尺度有助于判别器集成全空间上下文信息。为充分利用全局与局部特征,作者提出了采用双尺度判别器进行训练(它使得DeblurGANv2可以处理更大更复杂的真实模糊)。

最终,作者构建的损失函数定义如下:




02

训练过程

 在实验过程中,采用了GoPro、DVD以及NFS三个数据。在制作数据时,将原始240fps视频通过视频插帧方法变为3840fps视频,然后再同一时间窗下采用均值池化方式制作模糊数据。这种方式可以产生更为平滑而连续的模糊(可参考下图ac为无插帧模糊,bd为插帧模糊)。

GoPro数据集 :3214 blurry/clear 图片对,其中2103作训练,1111做测试。

DVD数据集 :6708 blurry/clear 图片对

NFS 数据集:75个视频



03

实验结果

下图给出了在GoPro测试集上的性能对比

上表中数据看出:DeblurGANv2取得了SOTA性能。SRN在PSNR指标上稍优,这是因为DeblurGANv2的不是基于纯MSE训练,但DeblurGANv2具有更高的SSIM指标同时更低的计算量,节省了约78%的推理耗时。相比其他两个次之去模糊方法,轻量型版本取得了类似性能但具有超100倍更快速度。值得一提的是,MobileNet-DSC仅需0.04s,近乎达到了实时性要求,这是截止目前仅有的更快且具有高性能的去模糊算法。

下图给出了Kohler数据及上的效果以及指标对比。尽管SRN具有更高的指标,但DeblurGANv2具有更快的速度以及视觉效果,而SRN甚至出现了彩色伪影。


代码地址:https://github.com/VITA-Group/DeblurGANv2

本文给出分别使用开源的模型的结果如下,先放一张模糊的原图

fpn_inception模型结果

fpn_mobilenet模型结果







 

END





机器学习算法工程师


                                            一个用心的公众号


 









浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报