Try the online demo: http://willow-fd.rocq.inria.fr/unshake/

Overview

One common feature of “shaken” images is the presence of saturated pixels. These are caused when the radiance of the scene exceeds the range of the camera’s sensor, leaving bright highlights clipped at the maximum output value (e.g. 255 for an 8-bit image). To anyone who has attempted to take hand-held photographs at night, this effect should be familiar as the conspicuous bright streaks left by electric lights, such as in the images below. These bright pixels, with their clipped values, violate the assumption made by many algorithms that the image formation process is linear, and as a result can cause obtrusive artifacts in the deblurred images. This can be seen in the example images below. In this paper, we propose a non-blind deblurring algorithm that takes account of saturated pixels, and is able to greatly reduce the artifacts they cause in the deblurred results.

We also demonstrate an efficient approximation for spatially-varying blur, extending the work of Hirsch et al. [4] to handle our previously-proposed global model for spatially-varying camera shake blur [5]. This approximation, based on the local uniformity of the blur, allows the forward model for spatially-varying blur to be computed significantly faster than the exact model, while retaining the benefits of the global parameterization. Note that independently of our work, Hirsch et al. [6] have proposed a similar method to combine a global model of spatially-varying blur with their locally-uniform approximation.

Examples

Click to enlarge images. Navigate through with cursor keys.

  • Blurry image with saturation

  • Deblurred with Richardson-Lucy [1,2]

  • Deblurred with algorithm of Krishnan & Fergus [3]

  • Deblurred with proposed method

Efficient Approximation of the Global Blur Model

The images below show a synthetic blur kernel for our previously proposed model [5]. The PSF is visualized at various points across the image, using the exact forward model and the approximation at increasingly fine levels of discretization. The approximation quickly approaches the exact model, and at the finest discretization shown it is almost identical to the exact model.

  • Global blur kernel

  • PSF, exact forward model

  • PSF, approximate forward model,
    3 × 4 patches

  • PSF, approximate forward model,
    6 × 8 patches

  • PSF, approximate forward model,
    12 × 16 patches

Paper

Images

The images from the CPCV 2011 paper: Download (25MB)

The results of our algorithm on the images of Cho et al. [7]: Download (16MB)

Code

A package of Matlab code for non-blind deblurring of blurry images with clipped / saturated pixels.
Version 0.1 (20-Nov-2011): Download (7MB) | Readme

Code

This package contains code to perform fast blind deblurring of images degraded by camera shake, using the MAP algorithm described in our IJCV 2012 paper, and the fast approximation of spatially-varying blur described in our CPCV 2011 paper.

Version 1.0 (21-Sep-2014): Download (18MB) | Readme

Comparison to the Method of Cho et al.

The images below show the results of our non-blind deblurring algorithm on images provided by Cho et al. [7]. The (spatially-invariant) blur kernels for the images, along with the results of their algorithm, are provided by the authors online here.

Download the uncompressed images above, or at this link.

Click to enlarge images. Navigate through with cursor keys.

  • Blurry Image

  • Result from Cho et al. [7]

  • Our result

References

[1] W. H. Richardson. Bayesian-Based Iterative Method of Image Restoration. Journal of the Optical Society of America, 62(1), 1972.

[2] L. B. Lucy. An iterative technique for the rectification of observed distributions. Astronomical Journal, 79(6), 1974.

[3] D. Krishnan and R. Fergus. Fast Image Deconvolution using Hyper-Laplacian Priors. In Proc. NIPS, 2009.

[4] M. Hirsch, S. Sra, B. Scholkopf, and S. Harmeling. Efficient Filter Flow for Space-Variant Multiframe Blind Deconvolution. In Proc. CVPR, 2010.

[5] O. Whyte, J. Sivic, A. Zisserman, and J. Ponce. Non-uniform Deblurring for Shaken Images. In Proc. CVPR, 2010.

[6] M. Hirsch, C. J. Schuler, S. Harmeling, and B. Schölkopf. Fast Removal of Non-uniform Camera Shake. In Proc. ICCV, 2011.

[7] S. Cho, J. Wang, and S. Lee. Handling Outliers in Non-blind Image Deconvolution. In Proc. ICCV, 2011.

Last updated: 14th December 2011

Efficient Deblurring for Shaken and Partially Saturated Images的更多相关文章

  1. 论文笔记---Deblurring Shaken and Partially Saturated Images

    抖动和部分饱和图像去模糊 摘要 我们解决了由相机抖动造成的模糊和饱和或过度曝光像素导致的图像去模糊的问题.饱和像素对于现有的非盲去模糊算法是一个问题,因为它们不符合图像形成过程是线性的这一假设,并且经 ...

  2. 图像运动去模糊(Motion Deblurring)代码

    http://blog.csdn.net/qianliheshan/article/details/12853157 http://www.di.ens.fr/~whyte/ Efficient De ...

  3. paper 15 :整理的CV代码合集

    这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...

  4. Needle in a haystack: efficient storage of billions of photos 【转】

    转自09年的blog,因为facebook在国内无法访问,故此摘录. The Photos application is one of Facebook’s most popular features ...

  5. One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables(中英双语)

    文章标题 One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of S ...

  6. 论文阅读(Lukas Neuman——【ICDAR2015】Efficient Scene Text Localization and Recognition with Local Character Refinement)

    Lukas Neuman--[ICDAR2015]Efficient Scene Text Localization and Recognition with Local Character Refi ...

  7. Notes on 'Efficient Graph-Based Image Segmentation'

    Notes on Efficient Graph-Based Image Segmentation 算法的目标 按照一种确定的标准, 将图片分割成细粒度的语义区域, 即Super pixel. 算法步 ...

  8. Web Pages - Efficient Paging Without The WebGrid

    Web Pages - Efficient Paging Without The WebGrid If you want to display your data over a number of p ...

  9. 论文笔记之:Deep Recurrent Q-Learning for Partially Observable MDPs

    Deep Recurrent Q-Learning for Partially Observable MDPs  摘要:DQN 的两个缺陷,分别是:limited memory 和 rely on b ...

随机推荐

  1. Resharp使用简记

    一图流: 拾贝: .字符串引号中直接回车键自动添加连接字符串 Ctrl+B:转到定义 Ctr+F11:展示类结构 Ctr+Alt+j:包围代码块 Ctr+\:注释和取消注释 Alt+Ins:重构 Ct ...

  2. 【template、import、include】微信小程序:模板(template)、引用(import、include)说明

    模板(template): 定义模板 <template name="[String]"> <!-- 模板代码 --> <view> <t ...

  3. informix如何查询第一条记录

    1.select first 1 * from shop; 正序查询第一条数据 2.select first 1 * from shop order by create_time desc; 按创建时 ...

  4. Jedis 与 MySQL的连接线程安全问题

    Jedis的连接是非线程安全的 下面是set命令的执行过程,简单分为两个过程,客户端向服务端发送数据,服务端向客户端返回数据,从下面的代码来看:从建立连接到执行命令是没有进行任何并发同步的控制 pub ...

  5. codeforces 301D Yaroslav and Divisors(树状数组)

    Yaroslav has an array p = p1, p2, ..., pn (1 ≤ pi ≤ n), consisting of n distinct integers. Also, he ...

  6. JavaBean中DAO设计模式简介

    一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...

  7. iOS开发开辟线程总结--NSThread

    1.简介: 1.1 iOS有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue ...

  8. iOS开发UIColor,CGColor,CIColor三者的区别和联系

    最近看了看CoreGraphics的东西,看到关于CGColor的东西,于是就想着顺便看看UIColor,CIColor,弄清楚它们之间的区别和联系.下面我们分别看看它们三个的概念: 一.UIColo ...

  9. eclipse 创建并运行maven web项目

    这两天想在eclipse上运行maven web项目,折腾了许久,总算success啦. 1,利用eclipse创建dynamic web project(eclipse需要安装m2eclipse). ...

  10. do_group_exit函数

    一个进程在sleep状态如何获取进程的调用栈 TASK_WAKEUPKILL状态 一个进程sleep了,我如何获取他的用户态栈,如何获取用户堆栈 如何在内核态打印用户态+内核态的栈? 确定上一个调用栈 ...