论文笔记:《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》

Caramel
热爱摄影的CV小白

27 人赞同了该文章

论文来源:arXiv2017

论文作者:Orest Kupyn,Volodymyr Budzan等

下载链接:PDF | github

论文主要贡献:

  • 提出使用DeblurGAN对模糊图像去模糊,网络结构基于cGAN和“content loss”。获得了目前最佳的去模糊效果
  • 将去模糊算法运用到了目标检测上,当待检测图像是模糊的的时候,先对图像去模糊能提高目标检测的准确率
  • 提出了一个新的合成模糊图像的方法

Introduction

最近,生成式对抗网络(GAN)在图像超分辨率重建、in-painting等问题上取得了很好的效果。GAN能够保留图像中丰富的细节、创造出和真实图像十分相近的图像。而在CVPR2017上,一篇由Isola等人提出的《Image-to-Image Translation with Conditional Adversarial Networks》的论文更是使用条件生成式对抗网络(cGAN)开启了“image-to-image translation”任务的大门。

Example results on several image-to-image translation problems.

本文的思想主要受近期图像超分辨率重建和“image-to-image translation”的启发,把去模糊问题当做“image-to-image translation”的一个特例。使用的网络是 image-to-image translation 论文中使用的cGAN(pix2pix)。


Proposed method:DeblurGAN的实现

给出一张模糊的图像 ,我们希望重建出清晰的图像 。为此,作者构建了一个生成式对抗网络,训练了一个CNN作为生成器 和一个判别网络

网络结构

整体结构如下图:


生成器CNN的结构如下图:


网络结构类似Johnson在风格迁移任务中提出的网络。作者添加了“ResOut”,即“global skip connection”。CNN学习的是残差,即 ,这种方式使得训练更快、模型泛化能力更强。

判别器的网络结构与PatchGAN相同(即 image-to-image translation 论文中采用的判别网络)。

损失函数

损失函数使用的是“content loss”和“adversarial loss”之和:


在文章实验中,

Adversarial loss

训练原始的GAN(vanilla GAN)很容易遇到梯度消失、mode collapse等问题,训练起来十分棘手。后来提出的“Wassertein GAN”(WGAN)使用“Wassertein-1”距离,使训练不那么困难。之后Gulrajani等提出的添加“gradient penalty”项,又进一步提高了训练的稳定性。WGAN-GP实现了在多种GAN结构上稳定训练,且几乎不需要调整超参数。本文使用的就是WGAN-GP,adversarial loss的计算式为:


Content loss

内容损失,也就是评估生成的清晰图像和ground truth之间的差距。两个常用的选择是L1(也称为MAE,mean absolute error)损失,和L2(也称为MSE)损失。最近提出了“perceptual loss”,它本质上就是一个L2 loss,但它计算的是CNN生成的feature map和ground truth的feature map之间的距离。定义如下:


其中, 表示将图像输入VGG19(在ImageNet上预训练的)后在第i个max pooling层前,第j个卷积层(after activation)输出的feature map。 表示feature map的维度。


Motion blur generation

相比其他的image-to-image translation任务,例如超分辨率和风格化,去模糊问题很难获得清晰-模糊的图像对用于训练。一种常见的办法是使用高速摄像头拍摄视频,从视频帧中获得清晰图像、合成模糊图像(详见我的另一篇文章:论文笔记:《Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring》)。另一种方法就是用清晰图像卷积上各式各样的“blur kernel”,获得合成的模糊图像。作者在现有第二种方法的基础上进一步拓展,提出的方法能够模拟更复杂的“blur kernel”。

首先,作者采用了Boracchi和Foi[1]提出的运动轨迹随机生成方法(用马尔科夫随机过程生成);然后对轨迹进行“sub-pixel interpolation”生成blur kernel。当然,这种方法也只能在二维平面空间中生成轨迹,并不能模拟真实空间中6D相机的运动。(具体细节arXiv上ver.2还没有提及,有待作者的更新)


Training Details

DeblurGAN的代码在很大程度上借鉴了pix2pix的代码,使用的框架是pyTorch。作者一共在不同数据集上训练了三个model,分别是:

  1. :训练数据是GOPRO数据集,将其中的图像随机裁剪成256×256的patches输入网络训练
  2. :训练数据集是MS COCO生成的模糊图像(根据上面提到的方法),同样随机裁剪成256×256的patches
  3. :在以上两个数据集的混合数据集上训练,合成图像:GOPRO=2:1

所有模型训练时的batch size都为1。作者在单张Titan-X GPU上训练,每个模型需要6天的训练时间。


实验结果对比

GoPro数据集


上图是DeblurGAN和Nah等人提出的 Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring 方法的结果对比。左侧一列是输入的模糊图像,中间是Nah等人的结果,右侧是DeblurGAN的结果。PSNR、SSIM两项指标的评估结果可以参见下表。


Kohler标准数据集



参考文献

[1]G. Boracchi and A. Foi. Modeling the performance of image restoration from motion blur. Image Processing, IEEE Transactions on, 21(8):3502 –3517, aug. 2012.

编辑于 2018-01-15
生成对抗网络(GAN)
计算机视觉
深度学习(Deep Learning)

​赞同 27​​22 条评论

​分享

​收藏


http://www.taodudu.cc/news/show-2353243.html

相关文章:

  • C++ fstream详解
  • 解决BIEE中地图FOI数据过多
  • P.W.N. CTF - MISC - Canadian FOI
  • FOI对象中显示labels --Oracle Map
  • FOI2019算法冬令营D1
  • 【FOI】异或问题
  • FOI 2019 游记
  • [FOI2020WC模拟]看上去很简单
  • FOI冬令营 Day4
  • FOI冬令营 Day1
  • FOI 冬令营 Day6
  • [FOI2020]楼房搭建
  • [FOI2020]手链强化
  • 镜头评价指标及测试方法(一)
  • [TSP-FCOS]Rethinking Transformer-based Set Prediction for Object Detection
  • html a 标签 邮件超链接 发送邮件
  • html中的邮件标签
  • 邮件在线编辑器-零基础制作精美图文并茂的HTML邮件不费力
  • 玩转HTML邮件格式-编写图文并茂邮件如此简单
  • 发送 HTML 形式的邮件
  • 注册成功邮件html代码模板
  • outlook邮件插入HTML格式内容调试
  • 邮件该如何发送html代码
  • 邮箱发送html邮件,遇到的问题(如阿里邮箱如何发送html邮件、qq向阿里发送邮件样式丢失等)解决方法
  • mac下发html邮件的方法
  • 制作HTML邮件邮箱注意问题和解决方案--兼容手机邮箱、电脑邮箱和邮件客户端
  • html邮件的排版问题
  • HTML邮件模板编写规则,编写邮件HTML模板
  • Springboot发送美观的HTML邮件
  • 邮件签名——html模板

论文笔记:《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. 关于stm32的数据类型
  2. Yum编译安装Error Downloading Packages报错
  3. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除
  4. [BZOJ3206][Apio2013]道路费用
  5. Knox网关、网关简介、概述、支持的Apache Hadoop服务、支持的Apache Hadoop生态系统的UI、参考资料
  6. gcc 5.2.0 手动更新(亲测)
  7. 一文带你掌握OBS的两种常见的鉴权方式
  8. mysql时间设计模式_java 23种设计模式及具体例子 收藏有时间慢慢看
  9. openjudge-1664 放苹果
  10. android助手盒子版,小米盒子助手
  11. JVM上篇:内存与垃圾回收篇一--JVM与Java体系结构
  12. 小米9刷鸿蒙,小米手机怎么刷机 小米9刷第三方ROM方法【详解】
  13. DockOne微信分享(六十六): Docker网络方案初探
  14. 微信小程序用户昵称表情字符储存的方案
  15. java基于springboot+vue的协同过滤算法的图书推荐系统 nodejs
  16. 2016年最新高效的60个网络推广方法汇总
  17. SFP-GE模块(1310nm, LC) 是什么意思
  18. 通过cluster reshard实现Redis集群缩减节点实战【详细步骤】
  19. 用 navicat 导出设计表表结构
  20. 【linux】血泪经验,在安装Linux上一定要创建/data 分区,将数据盘和系统盘分开,方便重新安装系统,随时恢复Linux系统,其实特别简单,还有7个常用技巧

热门文章

  1. 如何记忆 Spring Bean 的生命周期
  2. 关于「微软拼音」自定义文本这件事
  3. ApacheCN 数据科学译文集 20211109 更新
  4. 今天是本学期的第几周的第几天? (15 分) C语言
  5. delphi xe 10 程式外观
  6. 租房申请html模板,实用的租房房源标题模板
  7. 基于法律裁判文书的法律判决预测
  8. 高效程序员的七个习惯
  9. 大数据SQL中的Join【谓词下推】讲解
  10. 马克思主义哲学与计算机专业的关系,以科学技术哲学来分析与自然辨证法的统一关系...