拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

2017-11-27网络整理 编辑:国人体育

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人 | 附论文+代码

2017-11-26 12:50 来源:量子位 数码 /GoPro

原标题:拍照手抖有救了!DeblurGAN消除运动模糊效果惊人 | 附论文+代码

安妮 编译自 ArXiv

十图九糊。

置身异国街道,感受着陌生环境里熙熙攘攘的街道,你掏出手机想留住这一刻。

好嘞,一、二、三,咔嚓。

由于行人和车辆都在运动,再加上你的手稍微抖了一抖,照片中的景象是这样的——

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

这样的——

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

和 这样的——

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

这是什么AV画质啊!

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

拍照时手抖,或者画面中的物体运动都会让画面模糊,女友辛辛苦苦摆好的各种Pose也将淹没在各种模糊的线条中,是时候要有一种新的算法解救水深火热中的你了。

近日,乌克兰天主教大学、布拉格捷克理工大学和解决方案提供商Eleks联手公布了一篇论文,文章标题为《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》。

这篇文章中,研究人员提出一种基于条件对抗式生成网络和内容损失(content loss)的端对端学习法DeblurGAN,去除图像上因为物体运动而产生的模糊。

效果嘛,可以说好到让你不太相信自己的眼睛。

比如我们刚刚在异国街头拍糊了的那张,处理后变成了这样——

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

炉火纯青。

还不来学习一下去糊大法的手艺?

GAN中得到灵感

回归我们的终极议题:在没有提供任何关于核(kernel)或相机的运动信息的情况下,怎样去除单张照片中的运动模糊(Motion Blur)呢?

这不禁让人联想起生成对抗网络(GAN),因为它能够保存高纹理细节,创建的图案又接近真实图像,所以是图像超分辨率和图像修复中的主力军。

能否将这种方法应用到消除运动模糊的工艺中呢?

可以。模糊处理可以看作是图像转化中的一个特例,研究人员提出基于条件生成式对抗网络和多元内容损失的DeblurGAN法。

这是种什么方法?我们继续往下看。

基本原理

因为目标是把模糊图像IB在没有提供模糊核的情况下恢复成清晰图像IS,因此,我们需要训练一个CNN GθG作为生成器。每张IB都对应着一张估计出的清晰图像IS。此外,在训练阶段,我们将引入critic函数DθD,以对抗的方式训练两个网络。

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

DeblurGAN生成网络架构

从上图的架构中可以看出,DeblurGAN包含两个1/2间隔的卷积单元、9个剩余residual单元和两个反卷积单元。每个ResBlock由一个卷积层、实例归一化层和ReLU激活组成。

去除运动模糊的整个流程,如下图所示:

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

先生成运动模糊图像

想去糊,先得知道怎样将清晰图像转换成运动模糊图像,这个准备阶段也学问多多。

与超分辨率和黑白照片上色等流行的图像到图像(image-to-image)的转换问题相比,用于训练算法的清晰和模糊的图像对(image pairs)难以获取,一种典型的获取方法是用高帧频相机捕捉视频中清晰的帧模拟模糊图像。

用这种方法创建真实图片的模糊图像,会将图像空间(image space)局限在拍摄的视频中出现的场景,并将数据集变得更复杂。

根据前人的实验,研究人员提出的方法更真实地模拟了复杂的模糊核(blur kernel)。这种方法遵循了Boracchi和Foi 2012年在论文Modeling the performance of image restoration from motion blur中所描述的随机轨迹生成的概念,对轨迹矢量应用亚像素插值法生成核。每个轨迹矢量都是一个复杂矢量,对应着一个连续域中的二维随机运动物体的离散位置。

拍照手抖有救了!DeblurGAN消除运动模糊效果惊人

生成的相机运动轨迹和模糊内核以及相应的模糊图像示例

轨迹生成由马尔可夫过程完成、由算法总结。根据前一个点速度和位置、高斯摄动方程和脉冲摄动,随机生成下一个点的位置。

打造DeblurGAN

基本思路和运动模糊生成后,可以开始着手训练模型了。

研究人员用PyTorch中实现了自己的所有模型,整个训练过程是在一个Titan-X GPU上执行三种不同的数据集。

大家都爱看
查看更多热点新闻