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. leetcode-零钱兑换—int溢出

     零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: c ...

  2. 209. First Unique Character in a String

    Description Find the first unique character in a given string. You can assume that there is at least ...

  3. 第二十次ScrumMeeting会议

    第二十次Scrum Meeting 时间:2017/12/10 地点:新主楼1039 人员:蔡帜 王子铭 游心 解小锐 王辰昱 李金奇 杨森 陈鑫 赵晓宇 照片: 目前工作进展 名字 今日 明天的工作 ...

  4. Android 开发 之 JNI入门 - NDK从入门到精通

    NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C ...

  5. 将代码上传到GitHub

    网上看了很多资料,都是用的命令行,比较难看懂,自己摸索了一下怎么样在图形界面上操作.下面记录的只是简单的如何把本地仓库直接上传到服务器上. 在mac上下载个GitHub Mac客户端,安装好后运行,输 ...

  6. LintCode-5.第k大元素

    第k大元素 在数组中找到第k大的元素 注意事项 你可以交换数组中的元素的位置 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的 ...

  7. TCP系列10—连接管理—9、syncookie、fastopen与backlog

    这部分内容涉及较多linux实现,可以跳过. 一.listen系统调用对backlog的处理 当socket处于LISTEN或者CLOSED状态时,fastopen队列的长度可以通过TCP_FASTO ...

  8. Android基础------SQLite数据库(一)

    1.SQLite介绍 SQLite是一款非常流行的嵌入式数据库,它支持SQL操作,并且只用很少的内存. Android在运行时集成了SQLite,所有每个Android应用程序都可以使用SQLLite ...

  9. KMP算法字符串查找子串

    题目: 经典的KMP算法 分析: 和KMP算法对应的是BF算法,其中BF算法时间复杂度,最坏情况下可以达到O(n*m),而KMP算法的时间复杂度是O(n + m),所以,KMP算法效率高很多. 但是K ...

  10. 深入理解:java类加载器

    概念理解:Java类加载器总结 1.深入理解Java类加载器(1):Java类加载原理解析 2.深入理解Java类加载器(2):线程上下文类加载器