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.
- 模糊的数学模型,其中IB是模糊图像,k(M)是未知的模糊核,IS是清晰的图像,N是加性噪声:
IB=k(M)×IS+N(1) - 早期都是非盲去模糊,假设k(M)已知的。但是实际中却是未知的,需要同时估计模糊核和清晰图像。同时有考虑模糊是均与的,不够充分;有迭代的方式的,但是迭代次数未知,也浪费时间。近年来也有很多深度学习的方法。
- GAN给予一定约束,就变成了条件GAN。
3.Details
-
损失函数由两部分组成;对抗损失(采用WGAN-GP)和内容损失(Perceptual loss,并没有用常规的均方差或绝对值);Perceptual loss就是预训练了一个网络以便更好的提取特征,而损失就是真假图像送入网络ϕ和进行差距比较的,该论文用的是VGG:
L=LGAN+λLX(2)
LGAN=n=1∑N−DθD(GθG(IB))(3)
LX=Wi,jHi,j1x=1∑Wi,jy=1∑Hi,j(ϕi,j(IS)x,y−ϕi,j(GθG(IB))x,y)2(4)
很容易理解,条件GAN都类似的,并不是和原始的分布去比较,而是找到一个对应的分布(去噪,图像转换等等),如上述即很简单地用到了均方差来作损失。 -
训练过程如下所示。很明显地,生成器输入模糊图像,要求输出恢复图像;判别器用来评价好坏,条件GAN的充分体现。在测试的时候,仅需要生成器即可。
-
运动模糊生成。先随机轨迹生成,然后模糊核就根据该轨迹向量对像素处理。