GAN方法去模糊-DeblurGANv2
作者:晟 沚
作者将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
机器学习算法工程师
一个用心的公众号