DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better 图像去模糊

2023-11-19

目录

Abstract

1.Introduction

2.Related work

2.1.Image Deblurring

2.2.Generative adversarial networks

 3. DeblurGAN-v2 Architecture

3.1. Feature Pyramid Deblurring特征金字塔

3.2. Choice of Backbones:Trade-off between Performance and Efficiency

3.3. Double-Scale RaGAN-LS Discriminator

3.4. Training Datasets 

4. Experimental evaluation

4.1. Quantitative Evaluation on GoPro Dataset

4.2. Quantitative Evaluation on Kohler dataset

4.3. Ablation Study and Analysis

4.4. Extension to General Restoration

5. Conclusion


Abstract

设计了一个新的端到端的生成对抗网络,为了解决运动中图像模糊问题,DeblurGAN-V2,基于relativistic conditional GAN(拥有双尺度鉴别器)

首次将特征金字塔引入到去模糊问题,作为生成器的核心模块。可以灵活搭配各种主干网络,选择Inception-ResNet-v2主干网络可以获得更高的图片质量,采用轻量级网络像MobileNet和他的变形体可以获得更快的速度。

DeblurGAN-v2 在去模糊质量以及效率方面在几个流行的基准测试中获得了非常有竞争力的性能。此外,该架构对于一般图像恢复任务也是有效的。

论文原文:https://arxiv.org/abs/1908.03826

论文原码:GitHub - VITA-Group/DeblurGANv2: [ICCV 2019] "DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better" by Orest Kupyn, Tetiana Martyniuk, Junru Wu, Zhangyang Wang

1.Introduction

基于 DeblurGAN 的成功,本文旨在进一步推动基于 GAN 的运动去模糊。 我们引入了一个新框架来改进 DeblurGAN,称为 DeblurGAN-v2,提高了去模糊性能、效率、质量、高灵活性。 创新总结:

  1. 框架方面:构建了一个新的条件 GAN 框架来进行去模糊。对于生成器,首次将特征金字塔网络 (FPN) 引入到图像恢复任务中。对于鉴别器,我们采用relativistic鉴别器 ,其中使用最小二乘损失,并有两个评估,全局(image)和局部(batch)尺度。
  2. 主干方面:虽然上述框架与生成器主干无关,但选择会影响去模糊质量和效率。为了追求高质量去模糊,我们使用Inception-ResNet-v2 主干。为了提高速度,我们采用了 MobileNet,并进一步创建了具有深度可分离卷积 (MobileNet-DSC) 的变体。后两者在尺寸上变得非常紧凑并且推理速度很快。

  3. 实验方面:我们在三个流行的基准测试中进行了非常广泛的实验,以展示 DeblurGANv2 性能(PSNR、SSIM 和 perceptual quality)。在效率方面,带有 MobileNet-DSC 的 DeblurGAN-v2 比 DeblurGAN 快 11 倍,比DeepDeblur 和 ScaleRecurrent Network (SRN) 快 100 多倍,并且模型大小仅为 4 MB,这意味着有可能实现实时视频去模糊。我们还对真实模糊图像的去模糊质量进行研究。最后,我们展示了我们的模型在一般图像恢复中的潜力,作为额外的灵活性。

2.Related work

2.1.Image Deblurring

单幅图像运动去模糊传统上被视为去卷积问题。 早期的模型依靠自然图像先验来规范去模糊, 然而大多数手工制作的先验不能很好地捕捉真实图像中复杂的模糊变化。

新兴的深度学习技术推动了图像恢复任务的突破。利用卷积神经网络(CNN)进行模糊核估计。 使用完全卷积网络来估计运动流。 除了那些基于内核的方法之外,还探索了端到端的无内核 CNN 方法,以直接从模糊输入中恢复干净的图像。将 Multi-Scale CNN 用于盲图像去模糊的 Scale-Recurrent CNN,结果令人印象深刻。

自 Ramakrishnan 等人以来,GAN 在图像恢复方面的成功也影响了单幅图像去模糊。

2.2.Generative adversarial networks

GAN 由两个模型组成:鉴别器 D 和生成器 G。详细的可以看前面的GAN简介

目标函数:minGmaxD,V(D,G)=E_{x\sim p_{data}(x)}[logD(x)]+E_{z\sim p_{z}(z)}[log(1-D(G(z)))]

这样的目标函数很难优化,还会在训练时产生模式崩溃或梯度消失/爆炸。 为了修复消失的梯度并稳定训练,最小二乘 GAN 鉴别器(LSGAN)试图引入一个损失函数,提供更平滑和不饱和的梯度。 作者观察到 log-type loss 很快饱和,因为它忽略了 x 到决策边界之间的距离。 相比之下,L2 损失提供与该距离成比例的梯度,因此离边界越远的假样本会受到更大的惩罚。 提议的损失函数还最小化了 Pearson χ 2 散度,从而获得更好的训练稳定性。LSGAN目标函数如下:

minD,V(D)=\frac{1}{2}E_{x\sim p_{data}(x)}[(D(x)-1)^2]+\frac{1}{2}E_{z\sim p_{z}(z)}[D(G(z))^2]

minG,V(G)=\frac{1}{2}E_{z\sim p_{z}(z)}[(D(G(z))-1)^2]​​​​​​​

GAN 的另一个相关改进是 Relativistic GAN [16]。 它使用relativistic鉴别器来估计给定的真实数据比随机采样的假数据更真实的概率。relativistic鉴别器​​​​​​​显示出更稳定和计算效率更高的训练。

 3. DeblurGAN-v2 Architecture

3.1. Feature Pyramid Deblurring特征金字塔

FPN 包括自下而上和自上而下的路径。 自下而上的路径是用于特征提取的常用卷积网络,虽然空间分辨率被降采样,但更多的语义上下文信息被提取和压缩。 通过自上而下的路径,FPN 从语义丰富的层重建更高的空间分辨率。 自下而上和自上而下路径之间的横向连接补充了高分辨率细节并帮助定位对象。

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

3.2. Choice of Backbones:Trade-off between Performance and Efficiency

新的 FPN 嵌入式架构与特征提取器主干的选择无关。 有了这种即插即用的特性,根据性能和效率我们可以灵活的选择不同的网络。 默认情况下,我们选择 ImageNet 预训练的主干来传达更多与语义相关的特征。 使用 Inception-ResNet-v2 来追求更好的去模糊性能。

由于移动设备图像增强的需求,作者选择 MobileNet V2 主干网络。 为了进一步降低复杂性,在 DeblurGANv2 和 MobileNet V2 之上尝试了另一个更积极的选择,通过用 Depthwise Separable Convolutions 替换整个网络中的所有正常卷积(包括不在主干中的那些)。 生成的模型表示为 MobileNet-DSC,可以提供极其轻量级和高效的图像去模糊。

3.3. Double-Scale RaGAN-LS Discriminator

DeblurGAN 中使用的是 WGAN-GP 鉴别器。作者在 LSGAN 上使用 relativistic ,创建新的 RaGAN-LS 损失函数:

L_{D}^{RaLSGAN}=E_{x \sim P_{data}(x)} [ D(x)-E_{z\sim p_{z}(z)}[D(G(z)-1)^2]+E_{z\sim p_{z}(z)}[D(G(z))-E_{x\sim P_{data}(x)}(D(x)+1)^2]
与 WGAN-GP 相比,可以显着提高训练速度和稳定性。 我们还根据经验得出结论,生成的结果具有更高的感知质量和整体更清晰的输出。

作者观察到,对于高度不均匀的模糊图像,尤其是当涉及复杂的物体运动时,“全局”尺度对于鉴别器对于完整的空间信息非常有必要。 为了利用全局和局部特征,使用双尺度鉴别器,由一个局部分支组成,一个分支在batch级别上运行,另一个全局分支提供完整的输入图像。 这样的 DeblurGAN-v2 可以更好地处理更大和更复杂的的真实模糊。

像素空间损失L_{p},例如,最简单的L_{1}L_{2}距离,使用L_{p}往往会产生过度平滑的像素空间输出。使用感知距离,作为“内容”损失L_{X}的一种形式。 与L_{2}相比,它计算 VGG19 conv3_3 特征图上的欧几里得损失。 作者使用混合三项损失来训练 DeblurGAN-v2: 

L_{G}=0.5*L_{p}+0.006*L_{X}+0.01*L_{adv}

L_{adv}项包含全局和局部鉴别器损失。 此外,选择均方误差L_{2} (MSE) 损失作为L_{p}:尽管 DeblurGAN 不包含L_{p}项,但是它有助于纠正颜色和纹理失真。

3.4. Training Datasets 

GoPro 数据集使用 GoPro Hero 4 相机捕获每秒 240 帧 (fps) 的视频序列,并通过对连续短曝光帧进行平均来生成模糊图像。它是图像运动模糊的常用基准,包含 3,214 个模糊/清晰图像对。我们遵循相同的分割,使用 2,103 对进行训练,其余 1,111 对用于评估。

DVD 数据集收集了由 iPhone 6s、GoPro Hero 4 和 Nexus 5x 等各种设备以 240 fps 捕获的 71 个真实世界视频。然后,作者通过平均连续的短曝光帧来近似更长的曝光,生成了 6708 个合成的模糊和锐利对。该数据集最初用于视频去模糊,但后来也用于图像去模糊领域。

NFS 数据集最初被提议用于对视觉对象跟踪进行基准测试。它由 iPhone 6 和 iPad Pro 的高帧率相机拍摄的 75 个视频组成。此外,从 YouTube 收集了 25 个序列,这些序列以 240 fps 从各种不同的设备捕获。它涵盖了各种场景,包括运动、跳伞、水下、野生动物、路边和室内场景。

训练数据准备:通常,模糊帧是从连续的干净帧中平均而来的。然而,在观察直接平均帧时,我们注意到不切实际的鬼影效果,如图 3(a)(c) 所示。为了缓解这种情况,我们首先使用视频帧插值模型将原始 240-fps 视频增加到 3840 fps,然后在同一时间窗口(但现在有更多帧)执行平均池化(average pooling)。它导致更平滑和更连续的模糊,如图 3(b)(d) 所示。实验上,这种数据准备并没有显着影响 PSNR/SSIM,但观察到可以提高视觉质量结果。

4. Experimental evaluation

4.1. Quantitative Evaluation on GoPro Dataset

我们比较了标准性能指标(PSNR、SSIM)和推理效率(在单个 GPU 上测量的每个图像的平均运行时间)。结果总结在表1中。

在 PSNR/SSIM 方面,DeblurGAN-v2 (InceptionResNet-v2) 和 SRN 排名前 2:DeblurGAN-v2 (Inception-ResNet-v2) 的 PSNR 略低,这并不奇怪,因为它不是在纯 MSE 下训练的损失;但它在 SSIM 中优于 SRN。然而,DeblurGAN-v2 (InceptionResNet-v2) 比 SRN 的推理时间少 78%。此外,两个轻量级模型 DeblurGAN-v2 (MobileNet) 和 DeblurGAN-v2 (MobileNet-DSC) 显示 SSIM(0.925 和 0.922)与另外两个最新的深度去模糊方法 DeblurGAN (0.927) 和 DeepDeblur 相当(0.916),同时速度提高了 100 倍。​​​​​​​

特别是,MobileNet-DSC 每张图像的成本仅为 0.04 秒,对于 25 fps 的视频,它甚至可以实现近乎实时的视频帧去模糊。DeblurGAN-v2 (MobileNet-DSC) 是迄今为止唯一可以同时实现(合理)高性能去模糊方法。

4.2. Quantitative Evaluation on Kohler dataset

Kohler 数据集由 4 个图像组成,每个图像用 12 个不同的内核进行模糊处理。它是评估盲去模糊算法的标准基准。该数据集是通过记录和分析真实相机运动生成的,然后在机器人平台上回放,以便记录一系列清晰的图像,对 6D 相机运动轨迹进行采样。

比较结果如表 2 所示。与 GoPro 类似,SRN 和 DeblurGAN-v2 (Inception-ResNetv2) 仍然是最好的两个 PSNR/SSIM 性能,但这次 SRN 在两者中都略胜一筹。但是 DeblurGAN-v2 (Inception-ResNet-v2) 的成本仅为 SRN 推理复杂度的 1/5。此外,DeblurGAN-v2 (MobileNet) 和 DeblurGAN-v2 (MobileNet-DSC) 在 Kohler 数据集上的 SSIM 和 PSNR 都优于 DeblurGAN:鉴于前两者的权重要轻得多,这令人印象深刻。

图 4 显示了 Kohler 数据集上的可视化示例。 DeblurGAN-v2 有效地恢复了边缘和纹理,没有明显的伪影。这个特定示例的 SRN 在放大时显示了一些颜色伪影。

论文原文中还对在DVD dataset,Lai dataset数据集上进行了分析。感兴趣的可以去看看。

4.3. Ablation Study and Analysis

我们对 DeblurGAN-v2 每一部分进行单独研究Ablation Study。从最初的 DeblurGAN(ResNet G、局部尺度补丁 D、WGAN-GP + 感知损失)开始,逐步修改生成器(添加 FPN)、鉴别器(添加全局尺度)和损失(替换 WANGP RaGAN-LS 损失,并添加 MSE 项)。结果总结在表 6 中。我们可以看到,我们提出的所有组件都在稳步提高 PSNR 和 SSIM。特别是,FPN 模块的贡献最为显着。此外,添加 MSE 或感知损失对训练稳定性和最终结果都有好处。

4.4. Extension to General Restoration

真实世界的自然图像通常会同时经历多种退化(噪声、模糊、压缩等),作者还研究了 DeblurGAN-v2 的效果在一般图像恢复任务上。

作者合成了一个新的具有挑战性的恢复数据集。我们从 GoPRO 中拍摄了 600 张图像,从 DVD 中拍摄了 600 张图像,两者都已经带有运动模糊。然后,使用albumentations library进一步向这些图像添加高斯和斑点噪声、JPEG 压缩和放大伪影。最终,拆分了 8000 张图像用于训练,1200 张用于测试。训练并比较 DeblurGAN-v2 (Inception-ResNet-v2)、DeblurGANv2 (MobileNet-DSC) 和 DeblurGAN。如表 6 和图 6 所示,DeblurGAN-v2 (Inception-ResNet-v2) 实现了最佳的 PSNR、SSIM 和视觉质量。

5. Conclusion

本文介绍了 DeblurGAN-v2,这是一种强大而高效的图像去模糊框架,具有良好的定量和定性结果。 DeblurGAN-v2 能够在不同的主干之间切换,以在性能和效率之间进行灵活的权衡。 作者提到有计划将其适用于视频增强领域以更好处理混合降质问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better 图像去模糊 的相关文章

随机推荐

  • CentOS7 中把yum源更换成163源

    CentOS默认yum源是国外的 速度无法保证 用起来很不爽 今天我们把默认源换成国内的163源 163是目前国内最好用的源 速度是相当快的 还有一些比较好的源 比如阿里源 1 首先我们把CentOS7配置为可以上外网的环境 这里不会的可以
  • Python requests下载超大文件/批量下载文件

    一 下载超大文件 使用 python 下载超大文件 直接全部下载 文件过大 可能会造成内存不足 这时候要使用 requests 的 stream 模式 主要代码如下 iter content 一块一块的遍历要下载的内容 iter lines
  • Android 键盘小设置

    键盘设置主要是对activity页面的控制 清单文件对应的activity配置如下 弹出键盘 上移屏幕 android windowSoftInputMode stateVisible adjustResize 弹出键盘 覆盖屏幕 andr
  • 眼图测量

    百度百科 1 眼图测量解释 https baike baidu com item E7 9C BC E5 9B BE E6 B5 8B E9 87 8F 5938447 fr aladdin
  • YOLO算法v1-v3原理通俗理解

    YOLO算法v1 v3原理通俗理解 深度学习检测方法简述 我们所使用的目标检测 其实就是让机器在图片找到对应的目标 然后给图片上的目标套上一个框框 并贴上标签 比如如果图片上有人 就把人框起来并标注一个 person 使用深度学习进行目标检
  • Python学习第八天——模块

    模块 一 什么是模块 模块是一系列功能的集合体 1 模块分为四种类别 一个 py就是可以是一个模块 包 就是一个存放 init py文件的文件夹 使用C编写并链接到Python解释器的内置模块 已被编译为共享库或DLL的C或C 扩展 2 模
  • 量子速写(网站+小程序)

    使用方法非常简单 只需要输入标题 选择文章长短 它就能给你生成一篇AI文章 nbsp nbsp nbsp nbsp 泪奔 它是根据能在网上搜到的相关信息 进行AI组合的 所以不涉及侵权 并且写的合情合理 nbsp nbsp nbsp 加大难
  • 学姐去微软了

    这篇文章是我邀请在微软工作的学姐写的 最近正好是金九银十校招季 所以我邀请学姐写下当年她面试时的一些经验 希望对大家有帮助 自我介绍 烤冷面 女 hitCS专业本 硕 2018年之前没有PM实习经验 2018年暑期实习拿到腾讯和微软的PM岗
  • 如何查看和修改Windows远程桌面端口

    Windows远程桌面的默认端口为3389 基于安全性考虑 部分用户有修改默认端口的需要 以减少通过远程桌面恶意攻击和扫描主机的次数 因此今天带大家一起学习下 如何查看和修改Windows远程桌面的默认端口 一 查看Windows远程桌面端
  • HTML from 表单提交请求到servlet 实例

    HTML源码展示
  • ads+jlink和keil+jlink调试环境配置

    ads1 2 and jlinkv8 1 安装ads1 2和jlink驱动Setup JLinkARM V408i exe 安装ads1 2时 最后在100 时如果持续时间长 耐心等一下吧 没有等待而点了cancel 则之后就不好重装了 解
  • [交互]AJAX

    交互 AJAX 创建 XMLHttpRequest 发送请求 服务器响应 XMLHttpRequest readyState 状态值 响应数据 请求状态变更回调函数 XMLHttpRequest status 的值 常用状态码设置 AJAX
  • css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍

    在网页布局中有时为了网页的整体美观 可能需要将网页中的某些部分设置为背景颜色透明 那么如何设置背景颜色透明呢 本篇文章就来给大家介绍一下css设置背景颜色透明的方法 在css中设置背景颜色透明的方法有两种 一种是通过rgba方式设置 另一种
  • ubuntu+anaconda3+python配置basicsr环境,真实有效

    活动地址 CSDN21天学习挑战赛 1 环境要求 BasicSR官方网站 Python gt 3 7 推荐使用 Anaconda 或 Miniconda PyTorch gt 1 3 NVIDIA GPU CUDA 2 Python3 8
  • Anaconda常用命令

    Anaconda常用命令 虚拟环境创建与切换 查看当前conda的信息 conda info 查看当前已经创建的虚拟环境 conda env list 或 conda info e 或conda info env 创建虚拟环境 conda
  • DECLARE_DYNCREATE(DECLARE_DYNAMIC)与IMPLEMENT_DYNCREATE(IMPLEMENT_DYNAMIC)

    一 问题 看源码 发现这两组宏的实现是有细微差别的 需要配合使用 二 原理 这两组宏的作用类似 但有一些细微的区别 DECLARE DYNCREATE 和 IMPLEMENT DYNCREATE DECLARE DYNCREATE 用于在类
  • Mysql You can‘t specify target table ‘表名‘ for update in FROM clause错误解决方案

    Mysql You can t specify target table 表名 for update in FROM clause错误解决方案 测试表结构及测试数据 1 更新 code 开始以 1 2 的数据 status 的值为 1 1
  • 开源软件许可证—GPL、AGPL、LGPL、Apache、ZLIB/LIBPNG、MIT

    转自 http www dushibaiyu com 2013 08 E5 BC 80 E6 BA 90 E8 BD AF E4 BB B6 E8 AE B8 E5 8F AF E8 AF 81 gpl E3 80 81agpl E3 80
  • Spring Set注入:基本类型、List、Map、Set、Array、Date类型注入

    Spring依赖注入有两种 构造器注入与Set注入 其中以Set注入为首选 下面演示几个示例 Bean类 User package com lwf bean import java util Date import java util Li
  • DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better 图像去模糊

    目录 Abstract 1 Introduction 2 Related work 2 1 Image Deblurring 2 2 Generative adversarial networks 3 DeblurGAN v2 Archit