DeblurGAN:Blind Motion Deblurring Using Conditional Adversarial Networks

DeblurGAN:Blind Motion Deblurring Using Conditional Adversarial Networks

Paper:http://openaccess.thecvf.com/content_cvpr_2018/papers/Kupyn_DeblurGAN_Blind_Motion_CVPR_2018_paper.pdf
Code:https://github.com/KupynOrest/DeblurGAN
Tips:CVPR2018的一篇paper。
(阅读笔记)

1.Main idea

  • 提出了端到端解决运动模糊的一个方法。
  • 真实图像的去模糊效果也很好。
  • 提出了一个数据集增强的方法。

2.Intro

  • 提出的方法速度快,效果好。we propose a loss and architecture which obtain state-of-the art results in motion deblurring.
  • 提出了数据增强的方法。we present a method based on random trajectories for generating a dataset for motion deblurring training in an automated fashion from the set of sharp image.
  • 提出了通过目标检测的方法来评估去模糊的方法。we present a novel dataset and method for evaluation of deblurring algorithms based on how they improve object detection results.
  • 模糊的数学模型,其中 I B I_B IB是模糊图像, k ( M ) k(M) k(M)是未知的模糊核, I S I_S IS是清晰的图像, N N N是加性噪声:
    I B = k ( M ) × I S + N (1) \begin{aligned} I_B=k(M)\times I_S+N \tag{1} \end{aligned} IB=k(M)×IS+N(1)
  • 早期都是非盲去模糊,假设 k ( M ) k(M) k(M)已知的。但是实际中却是未知的,需要同时估计模糊核和清晰图像。同时有考虑模糊是均与的,不够充分;有迭代的方式的,但是迭代次数未知,也浪费时间。近年来也有很多深度学习的方法。
  • GAN给予一定约束,就变成了条件GAN。

3.Details

  • 损失函数由两部分组成;对抗损失(采用WGAN-GP)和内容损失(Perceptual loss,并没有用常规的均方差或绝对值);Perceptual loss就是提前预训练了一个网络以便更好的提取特征,损失就是真实图像 I S I_S IS和生成器生成的图像 G θ G ( I B ) ) G_{\theta_{G}}(I_B)) GθG(IB))送入网络 ϕ \phi ϕ和进行差距比较的,论文用的是VGG。based on the difference of the generated and target image CNN feature maps.
    生成器的损失函数如下所示:
    L = L G A N + λ L X (2) \mathcal{L} = \mathcal{L}_{GAN}+ \lambda \mathcal{L}_{X} \tag{2} L=LGAN+λLX(2)
    L G A N = ∑ n = 1 N − D θ D ( G θ G ( I B ) ) (3) \mathcal{L}_{GAN} =\sum_{n=1}^N -D_{\theta_{D}} (G_{\theta_{G}}(I_B)) \tag{3} LGAN=n=1NDθD(GθG(IB))(3)
    L X = 1 W i , j H i , j ∑ x = 1 W i , j ∑ y = 1 H i , j ( ϕ i , j ( I S ) x , y − ϕ i , j ( G θ G ( I B ) ) x , y ) 2 (4) \mathcal{L}_{X} = \frac{1}{W_{i,j}H_{i,j}} \sum_{x=1}^{W_{i,j}} \sum_{y=1}^{H_{i,j}} (\phi_{i,j}(I_S)_{x,y}- \phi_{i,j}(G_{\theta_{G}}(I_B))_{x,y})^2 \tag{4} LX=Wi,jHi,j1x=1Wi,jy=1Hi,j(ϕi,j(IS)x,yϕi,j(GθG(IB))x,y)2(4)
    很容易理解,条件GAN都类似的,并不是和原始的分布去比较,而是找到一个对应的分布(去噪,图像转换等等),如上述即很简单地用到了均方差来作损失。而判别器的训练和WGAN-GP一样。
    其中The architecture of critic network is identical to PatchGAN.

  • 训练过程如下所示。很明显地,生成器输入模糊图像,要求输出恢复图像;判别器用来评价好坏,条件GAN的充分体现。在测试的时候,仅需要生成器即可。


    在这里插入图片描述

  • 运动模糊生成。先随机轨迹生成,然后模糊核就根据该轨迹向量对像素处理。

### 使用生成对抗网络 (GAN) 去除运动模糊的技术实现方法 #### 一、技术背景介绍 为了应对由相机抖动或物体快速移动引起的图像和视频中的运动模糊问题,研究者们提出了多种基于深度学习的方法。其中,《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》介绍了利用条件对抗网络(Conditional Adversarial Networks, CANs)来解决这一挑战的新颖方案[^1]。 #### 二、具体实施方案概述 该模型采用端到端的学习框架,主要组成部分包括: - **生成器(Generator)**:负责接收含噪输入并尝试恢复清晰版本; - **判别器(Discriminator)**:用于区分真实样本与生成样本之间的差异; 两者相互竞争,在此过程中不断提升彼此性能直至达到理想效果。特别地,文中提到的内容损失函数对于保持重建质量至关重要,因为它有助于保留更多细节特征而不只是简单模仿整体结构。 #### 三、实践指南 针对想要动手实施该项目的研究人员或开发者而言,有几点建议值得注意: - 安装合适的开发工具链,推荐使用Anaconda创建独立的Python虚拟环境,并优先考虑GPU加速支持以加快训练速度[^3]。 - 确认所依赖软件包及其版本号匹配良好,避免因API变更带来的潜在冲突问题。 - 寻找经过验证可以正常工作的开源项目作为起点,这不仅能节省大量时间成本还能减少遇到棘手错误的概率。 ```python import tensorflow as tf from tensorflow.keras.layers import Input, Conv2D, LeakyReLU, BatchNormalization, Activation from tensorflow.keras.models import Model def build_generator(input_shape): inputs = Input(shape=input_shape) # Encoder layers... outputs = ... # Decoder part omitted here model = Model(inputs=inputs, outputs=outputs) return model def build_discriminator(input_shape): img_A = Input(shape=input_shape) img_B = Input(shape=input_shape) combined_imgs = tf.concat([img_A, img_B], axis=-1) d = Conv2D(64, kernel_size=4, strides=2, padding='same')(combined_imgs) d = LeakyReLU(alpha=0.2)(d) # More convolutional blocks... validity = Conv2D(1, kernel_size=4, strides=1, padding='same')(d) model = Model([img_A, img_B], validity) return model ``` 上述代码片段展示了构建基本生成器和判别器架构的方式,实际应用时还需要加入更多的层以及优化参数配置等内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值