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.
  • 模糊的数学模型,其中IBI_BIB​是模糊图像,k(M)k(M)k(M)是未知的模糊核,ISI_SIS​是清晰的图像,NNN是加性噪声:
    IB=k(M)×IS+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就是预训练了一个网络以便更好的提取特征,而损失就是真假图像送入网络ϕ\phiϕ和进行差距比较的,该论文用的是VGG:
    L=LGAN+λLX(2) \mathcal{L} = \mathcal{L}_{GAN}+ \lambda \mathcal{L}_{X} \tag{2} L=LGAN​+λLX​(2)
    LGAN=n=1NDθD(GθG(IB))(3) \mathcal{L}_{GAN} =\sum_{n=1}^N -D_{\theta_{D}} (G_{\theta_{G}}(I_B)) \tag{3} LGAN​=n=1∑N​−DθD​​(GθG​​(IB​))(3)
    LX=1Wi,jHi,jx=1Wi,jy=1Hi,j(ϕi,j(IS)x,yϕi,j(GθG(IB))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,j​Hi,j​1​x=1∑Wi,j​​y=1∑Hi,j​​(ϕi,j​(IS​)x,y​−ϕi,j​(GθG​​(IB​))x,y​)2(4)
    很容易理解,条件GAN都类似的,并不是和原始的分布去比较,而是找到一个对应的分布(去噪,图像转换等等),如上述即很简单地用到了均方差来作损失。

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


    DeblurGAN:Blind Motion Deblurring Using Conditional Adversarial Networks

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

DeblurGAN:Blind Motion Deblurring Using Conditional Adversarial NetworksDeblurGAN:Blind Motion Deblurring Using Conditional Adversarial Networks 强大源 发布了30 篇原创文章 · 获赞 15 · 访问量 1万+ 私信 关注
上一篇:codeforce.C. Primitive Primes


下一篇:为什么不能直接调用DbContext.ObjectContext 获取属性呢?