From Motion Blur to Motion Flow: a Deep Learning Solution for Removing Heterogeneous Motion Blur

2016·arXiv

Abstract

Abstract

Removing pixel-wise heterogeneous motion blur is challenging due to the ill-posed nature of the problem. The predominant solution is to estimate the blur kernel by adding a prior, but the extensive literature on the subject indicates the difficulty in identifying a prior which is suitably informative, and general. Rather than imposing a prior based on theory, we propose instead to learn one from the data. Learning a prior over the latent image would require modeling all possible image content. The critical observation underpinning our approach is thus that learning the motion flow instead allows the model to focus on the cause of the blur, irrespective of the image content. This is a much easier learning task, but it also avoids the iterative process through which latent image priors are typically applied. Our approach directly estimates the motion flow from the blurred image through a fully-convolutional deep neural network (FCN) and recovers the unblurred image from the estimated motion flow. Our FCN is the first universal end-to-end mapping from the blurred image to the dense motion flow. To train the FCN, we simulate motion flows to generate synthetic blurred-image-motion-flow pairs thus avoiding the need for human labeling. Extensive experiments on challenging realistic blurred images demonstrate that the proposed method outperforms the state-of-the-art.

1. Introduction

Motion blur is ubiquitous in photography, especially when using light-weight mobile devices, such as cellphones and on-board cameras. While there has been a sig-nificant progress on image deblurring [9, 6, 41, 27, 28, 10], most work focuses on spatially-uniform blur. Some recent methods [39, 12, 14, 18, 26] have been proposed to remove spatially-varying blur caused by camera panning, and/or

Figure 1. A blurry image with heterogeneous motion blur from a widely used dataset Microsoft COCO [23]. Estimated motion flows are shown in the bottom right corner of each image.

object movement, with some restrictive assumptions on the types of blur, image prior, or both. In this work, we focus on recovering a blur-free latent image from a single observation degraded by heterogeneous motion blur, i.e. the blur kernels may independently vary from pixel to pixel.

Motion blur in real images has a variety of causes, including camera [39, 46] and object motion [15, 26], leading to blur patterns with complex variations (See Figure 1 (a)). In practice, uniform deblurring methods [9, 6, 41] usually fail to remove the non-uniform blur (See Figure 1 (b)). Most existing non-uniform deblurring methods rely on a specific motion model, such as 3D camera motion modeling [11, 39] and segment-wise motion [20, 26]. Although a recent method [18] uses a flexible motion flow map to handle heterogeneous motion blur, it requires a time-consuming iterative estimator. In addition to the assumptions about the cause of blur, most existing deblurring methods also rely on predefined priors or manually designed image features. Most conventional methods [9, 22, 43] need to iteratively update the intermediate image and the blur kernel with using these predefined image priors to reduce the illposedness. However, solving these non-convex problems is non-trivial, and many real images do not conform to the assumptions behind a particular model. Recently, learningbased discriminative methods [4, 7] have been proposed to learn blur image patterns and avoid the heavy computational cost of blur estimation. However, their representation and prediction abilities are limited by their manually designed features and simple mapping functions. Although a deep learning based method [32] aimed to overcome these problems, it restrictively conducts the learning process at the patch-level and thus cannot take full advantage of the context information from larger image regions.

In summary, there are three main problems with existing approaches: 1) the range of applicable motion types is limited, 2) manually defined priors and image features may not reflect the nature of the data and 3) complicated and time-consuming optimization and/or post-processing is required. Generally, these problems limit the practical applicability of blur removal methods to real images, as they tend to cause worse artifacts than they cure.

To handle general heterogeneous motion blur, based on the motion flow model, we propose a deep neural network based method able to directly estimate a pixel-wise motion flow map from a single blurred image by learning from tens of thousands of examples. To summarize, the main contributions of this paper are:

• We propose an approach to estimate and remove pixel-wise heterogeneous motion blur by training on simulated examples. Our method uses a flexible blur model and makes almost no assumptions about the underlying images, resulting in effectiveness on diverse data.

• We introduce a universal FCN for end-to-end estimation of dense heterogeneous motion flow from a single blurry image. Beyond the previous patch-level learning [32], we directly perform training and testing on the whole image, which utilizes the spatial context over a wider area and estimates a dense motion flow map accurately. Moreover, our method does not require any post-processing.

2. Related Work

Conventional blind image deblurring To constrain the solution space for blind deblurring, a common assumption is that image blur is spatially uniform [5, 6, 9, 22, 28, 10]. Meanwhile, numerous image priors or regularizers have been studied to overcome the ill-posed nature of the problem, such as the total variational regularizer [5, 29], Gaussian scale mixture priors [9] and -norms [19], -norms [43, 27], and dark channel [28] based regularizers. Moreover, various estimators have been proposed for more robust kernel estimation, such as edge-extraction-based maximum-a-posteriori (MAP) [6, 33], gradient activation based MAP [10], variational Bayesian methods [21, 22, 45], etc . Although these powerful priors and estimators work well on many benchmark datasets, they are often characterised by restrictive assumptions that limit their practical applicability.

Spatially-varying blur removal To handle spatially-varying blur, more flexible blur models are proposed. In [34], a projective motion path model formulates a blurry image as the weighted sum of a set of transformed sharp images, an approach which is which is simplified and extended in [39] and [44]. Gupta et.al. [11] model the camera motion as a motion density function for non-uniform deblurring. Several locally uniform overlapping-patch-based models [13, 12] are proposed to reduce the computational burden. Zheng et.al. [46] specifically modelled the blur caused by forward camera motion. To handle blur caused by object motion, some methods [20, 8, 15, 26] segment images into areas with different types of blur, and are thus heavily dependent on an accruate segmentation of a blurred image. Recently, a pixel-wise linear motion model [18] is proposed to handle heterogeneous motion blur. Although the motion is assumed to be locally linear, there is no assumption on the latent motion, making it flexible enough to handle an extensive range of possible motion.

Learning based motion blur removing Recently, learning based methods have been used to achieve more flexible and efficient blur removal. Some discriminative methods are proposed for non-blind deconvolution based on Gaussian CRF [30], multi-layer perceptron (MLP) [31], and deep convolution neural network (CNN) [42], etc, which all require the known blur kernels. Some end-to-end methods [17, 25] are proposed to reconstruct blur-free images, however, they can only handle mild Gaussian blur. Recently, Wieschollek et.al. [40] introduce an MLP based blind deblurring method by using information in multiple images with small variations. Chakrabarti [3] trains a patch-based neural network to estimate the frequency information for uniform motion blur removal. The most relevant work is a method based on CNN and patch-level blur type classi-fication [32], which also focuses on estimating the motion flow from single blurry image. The authors train a CNN on small patch examples with uniform motion blur, where each patch is assigned a single motion label, violating the real data nature and ignoring the correspondence in larger areas. Many post-processing such as MRF are required for the final dense motion flow.

Figure 2. Overview of our scheme for heterogeneous motion blur removal. (a) We train an FCN using examples based on simulated motion flow maps. (b) Given a blurry image, we perform end-to-end motion flow estimation using the trained FCN, and then recover the sharp image via non-blind deconvolution.

3. Estimating Motion Flow for Blur Removal

3.1. A Heterogeneous Motion Blur Model

Letting denote a general convolution operator, a blurred image Y can be modeled as

where X denotes the latent sharp image, N refers to additive noise, and K denotes a heterogeneous motion blur kernel map with different blur kernels for each pixel in X. Let represent the kernel from K that operates on a region of the image centered at pixel (i, j). Thus, at each pixel of Y, we have

If we define an operator vecwhich vectorises a matrix and let y = vec(Y), x = vec(X) and n = vec(N) then (1) can also be represented as

where and each row corresponds to a blur kernel located at each pixel (i.e. ).

3.2. Blur Removal via Motion Flow Estimation

Given a blurry image Y, our goal is to estimate the blur kernel K and recover a blur-free latent image X through non-blind deconvolution that can be performed by solving a convex problem (Figure 2 (b)). As mentioned above, kernel estimation is the most difficult and crucial part.

Based on the model in (1) and (2), heterogeneous motion blur can be modeled by a set of blur kernels, one associated with each pixel and its motion. By using a linear motion model to indicate each pixel’s motion during imaging process [18], and letting p = (i, j) denote a pixel location, the motion at pixel p, can be represented by a 2-dimensional motion vector , where and represent the movement in the horizontal and vertical directions, respectively (See Figure 3 (a)). By a slight abuse of

Figure 3. Motion blur and motion vector. (a) An example with blur cause by clock-wise rotation. Three examples of the blur pattern, linear blur kernel and motion vector are shown. The blur kernels on caused by motions with opposite directions and have the same appearance. (b) Illustrations of the feasible domain of motion flow.

notation we express this as , which characterizes the movement at pixel p over the exposure time. If we have the feasible domain and , then , but will be introduced in detail later. As shown in Figure 3, the blur kernel on each pixel appears as a line trace with nonzero components only along the motion trace. As a result, the motion blur in (2) can be expressed as [2]:

where denotes the Dirac delta function. We thus can achieve heterogeneous motion blur estimation by estimating the motion vectors on all pixels, the result of which is M, which is referred as motion flow. For convenience of expression, we let M = (U, V), where U and V denote the motion maps in the horizontal and vertical directions, respectively. For any pixel p = (i, j), we define (U(i, j), V(i, j)) with and .

As shown in Figure 2 (b), given a blurred image and the estimated motion flow, we can recover the sharp image by solving an non-blind deconvolution problem

with regularizer on the unknown sharp image. In practice, we use a Gaussian mixture model based regularizer as

Figure 4. Our network structure. A blurred image goes through layers and produces a pixel-wise dense motion flow map. conv means a convolutional layer and uconv means a fractionally-strided convolutional (deconvolutional) layer, where for each uconv layer denotes that the up-sampling size is n. Skip connections on top of pool2 and pool3 are used to combine features with different resolutions.

3.3. Learning for Motion Flow Estimation

The key contribution of our work is to show how to obtain the motion flow field that results in the pixel-wise motion blur. To do so we train a FCN to directly estimate the motion flow field from the blurry image.

Let be a set of blurred-image and motion-flow-map pairs, which we take as our training set. Our task is to learn an end-to-end mapping function M = f(Y) from any observed blurry image Y to the underlying motion flow M. In practice, the challenge is that obtaining the training ground-truth dense motion flow for sufficiently many and varied real blurry images is infeasible. Human labeling is impossible, and training from automated methods for image deblurring would defeat the purpose. To overcome this problem, we generate the training set by simulating motion flows maps. (See section 4.2). Specifically, we collect a set of sharp images , simulate T motion flows in total for all images in , and then generate T blurred images based on the models in (1) and (4) (See Figure 2 (a)). Feasible domain of motion flow To simplify the training process, we train the FCN over a discrete output domain. Interestingly, classification on discrete output space has achieved some impressive results for some similar applications, e.g. optical flow estimation [35] and surface normal prediction [36]. In our work, we adopt an integer domain for both U and V, and treat the mapping M = f(Y) as a multi-class classification problem. Specifically, we uniformly discretize the motion values as integers with a 1 (pixel) interval, which provides a high-precision approximation to the latent continuous space. As a result, by assuming the maximum movements in the horizontal and vertical directions to be and , respectively, we have and , where Z denotes the integer domain.

As shown in Figure 3 (a), any linear blur kernel is symmetric. Any two motion vectors with same length and opposite directions, e.g. and , generate the same blur pattern, which may confuse the learning process. We thus further restrict the motion in the horizontal direction to be nonnegative as shown in Figure 3 (b), i.e. , by letting where

4. Dense Motion Flow Estimation

4.1. Network Design

The goal of this FCN network is to achieve the end-to-end mapping from a blurry image to its corresponding motion flow map. Given any RGB image with the arbitrary size , the FCN is used to estimate a motion flow map M = (U, V) with the same size to the input image, where and . For convenience, we let denote the total number of labels for both U and V. Our network structure is similar to the FCN in [24]. As shown in Figure 4, we use 7 convolutional (conv) layers and 4 max-pooling (pool) layers as well as 3 uconv layers to up-sample the prediction maps. Following [37], uconv denotes the fractionally-strided convolution, a.k.a. deconvolution. We use a small stride of 1 pixel for all convolutional layers. The uconv layers are initialized with bilinear interpolation and used to up-sample the activations. We also add skip connections which combine the information from different layers as shown in Figure 4.

The feature map of the last uconv layer (conv7 + uconv2) is a tensor with the top slices of fea- ture maps () corresponding to the estima- tion of U, and the remaining slices of feature maps () corresponding to the estimation of V. Two separate soft-max layers are applied to those two parts respectively to obtain the posterior probability estimation of both channels. Let represent the probability that the pixel at (i, j) having a movement u along the horizontal direction, and represent the probability that the pixel at (i, j) having a movement v along the vertical direction, we then use the sum of the cross entropy loss from

Figure 5. Demonstration of the motion flow simulation. (a) A sharp example image and the coordinate system of camera. (b)-(c) The sampled motion flow and the corresponding blurred image by simulating the translation along ), translation along ) and rotation around ), respectively. (d) A sample based on the model considering all components in (6).

both channels as the final loss function:

where 1 is an indicator function.

4.2. Simulate Motion Flow for Data Generation

The gist of this section is generating a dataset that contains realistic blur patterns on diverse images for training. Although an i.i.d. random sampling may generate very diverse training samples, since the realistic motion flow preserves some properties such as piece-wise smoothness, we aim to design a simulation method to generate motion flows reflecting the natural properties of the movement in imaging process. Although the object motion [15] can lead to heterogeneous motion blur in real images, our method only simulates the motion flow caused by camera motion for learning. Even so, as shown in Section 5.5, data generated by our method can also give the model certain ability to handle object motion.

For simplicity, we generate a 3D coordinate system where the origin at the camera’s optical center, the xy-plane is aligned with the camera sensors, and the z-axis is perpendicular to the xy-plane, as shown in Figure 5. Since our objective is the motion flow on an image grid, we directly simulate the motion flow projected on 2D image instead of the 3D motion trajectory [39]. Considering the ambiguities caused by rotations around x and y axis [11], we simulate a motion flow M by sampling four additive components:

where and denote the motion flows associated with the translations along x, y and z axis, receptively, and represents the motion from the rotation around z axis. We generate each element as the following.

Translation along x or y axis We describe the generation of as an example. We first sample a central pixel on image plane, a basic motion value and a acceleration coefficient . Then can be generated as the following can be generated in a similar way.

Translation along z axis The translation along z axis usually causes radial motion blur pattern towards the vanishing point [46]. By ignoring the semantic context and assuming a simple radial pattern, can be generated by where denotes a sampled vanishing point, is the distance from any pixel (i, j) to the vanishing point, and are used to control the shape of radial patterns, which reflects the moving speed.

Rotation around z axis We first sample a rotation center and an angular velocity , where denotes the clockwise rotation. Let . The motion magnitude at each pixel is s(i, j) = . By letting atan, motion vector at pixel (i, j) can be generated as .

We place uniform priors over all the parameters corresponding to the motion flow simulation as Uniform. More details can be found in supplementary materials. Note that the four components in (6) are simulated in continuous domain and are then discretized as integers.

Training dataset generation We use 200 training images with sizes around from the dataset BSD500 [1] as our sharp image set . We then independently simulate 10,000 motion flow maps with ranges and assign each 50 motion flow maps without duplication. The non-blurred images with U(i, j) = 0 and are used for training. As a result we have a dataset with 10,200 blurred-image-motion-flow pairs for training.

Table 1. Evaluation on motion blur estimation. Comparison on PSNR and SSIM of the recovered images with the estimated blur kernel. The best results are bold-faced.

5. Experiments

We implement our model based on Caffe [16] and train it by stochastic gradient descent with momentum and batch size 1. In the training on the dataset simulated on BSD, we use a learning rate of and a step size of . The training converges after 65 epochs.

5.1. Datasets and Evaluation Metrics

Datasets We conduct the experiments on both synthetic datasets and real-world images. Since ground truth motion flow and sharp image for real blurry image are diffi-cult to obtain, to perform general quantitative evaluation, we first generate two synthetic datasets, which both contain 300 blurred images, with 100 sharp images randomly picked from BSD500 [1]2, and 3 different motion flow maps for each. Note that no two motion flow maps are the same. We simulate the motion flow with , which is same as in the training set. For fairness to the method [32] with a smaller output space, we also generate relative mild motion flows for the second dataset with . These two are referred as BSD-S and BSD-M, respectively. In addition, we evaluate the generalization ability of the proposed method using two synthetic datasets (MC-S and MC-M) with 60 blurry images generated from 20 sharp images from Microsoft COCO [23] and above motion flow generation setting.

Evaluation Metrics For evaluating the accuracy of estimated motion flow, we measure the mean-squared-error (MSE) of the motion flow map. Specifically, given an estimated motion flow and the ground truth M, the MSE is defined as , where |M| denotes the number of motion vectors in M. For evaluation of the image quality, we adopt peak signal-to-noise-ratio (PSNR) and structural similarity index (SSIM) [38].

5.2. Evaluation of Motion Flow Estimation

We first compare with the method of Sun et.al. (“patchCNN”) [32], which is the only method with available code for estimating motion flow from blurry images3. This method performs training and testing on small image patches, and uses MRF to improve the accuracy on

Figure 6. A motion flow estimation example on a synthetic image in BSD-M. The method of Sun et.al. [32] is more sensitive to the image content (See the black box in (c)).

the entire image. Its version without MRF post-processing (“noMRF”) is also compared, where the soft-max output is directly used to get the motion flow as in our method. Table 2 shows the average MSE of the estimated motion flow maps on all images in BSD-S and BSD-M. It is noteworthy that, even without any post-processing such as MRF or CRF, the comparison manifests the high quality of our estimated motion flow maps. Furthermore, our method can still produce accurate motion flow even on the more challenging BSD-S dataset, on which the accuracies of the patch based method [32] decrease significantly. We also show an example of the the estimated motion flows in Figure 6, which shows that our result preserves a smooth motion flow very similar to the ground truth, and the method of Sun et.al. [32] is more sensitive to the image contents. From this example, we can see that the method of Sun et.al. [32] generally underestimates the motion values and produces errors near the strong edges, maybe because its patch-level processing is confused by the strong edges and ignores the blur pattern context in a larger area.

Table 2. Evaluation on motion flow estimation (MSE). The best results are bold-faced.

To compare with other blind deblurring methods of Xu and Jia [41], Xu et.al. [43] and Whyte et.al. [39], which do not estimate the motion flow, we directly evaluate the quality of the image recovered using their estimated blur kernel. For fairness, we use the same non-blind deconvolution method with least square loss function and a Gaussian mixture model prior [47] to recover the sharp image. As the non-blind deconvolution method may limit the recovering quality, we evaluate the images recovered using the ground truth motion flow as reference. Table 1 shows the average values on all images in each dataset, which shows that our method produce significantly better results than the others.

5.3. Evaluation of Generalization Ability

To evaluate the generalization ability of our approach on different images, we use the datasets based on the Microsoft COCO [23] (i.e. MC-S and MC-M) to evaluate our model trained on the dataset based on BSD500 [1]. Table 3 shows the evaluation and comparison with the “patchCNN” [32]. The results demonstrate that our method stably produces high accuracy results on both datasets. This experiment suggests that the generalization ability of our approach is strong.

Table 3. Evaluation of the generalization ability on datasets MC-S and MC-M. The best results are bold-faced.

5.4. Running-time Evaluation

We conduct a running-time comparison with the relevant motion flow estimation methods [32, 18] by running motion flow estimation for 60 blurred images with sizes around on a PC with an NVIDIA GeForce 980 graphics card and Intel Core i7 CPU. For the method in [18], we quote its running-time from the paper. Note that both the method of Sun et.al. and ours use the GPU to accelerate the computation. As shown in Table 4, the method in [18] takes very long time due to its iterative optimization scheme. Our method takes less than 10 seconds, which is more efficient than others. The patchCNN method [32] takes more time because many post-processing steps are required.

Table 4. Running-time comparison.

5.5. Evaluation on Real-world Images

As the ground truth images of real-world blurry images are unavailable, we only present the visual evaluation and comparison against several state-of-the-art methods for spatially-varying blur removing. More results can be found in supplementary materials.

Results of motion flow estimation We first compare the proposed method with the method of Sun et.al. [32] on motion flow estimation. Four examples are shown in Figure 7. Since the method of Sun et.al. performs on local patches, their motion flow components are often misestimated, especially when the blur pattern in a small local area is subtle or confusing, such as the areas with low illumination or textures. Thanks to the universal end-to-end mapping, our methods can generate more natural results with smooth flow and less clutters. Although we train our model on dataset with only smoothly varying motion flow, compared with [32], our method can obtain better results on images with moving object.

Comparison with the method in [18] Kim et.al. [18] use the similar heterogeneous motion blur model as ours and also estimate motion flow for deblurring. As their code is unavailable, we directly perform a comparison on their real-world data. Figure 8 shows the results on an example. Compared with the results of Kim and Lee [18], our motion flow more accurately reflects the complex blur pattern, and our recovered image contains more details and less artifacts.

Figure 8. Comparison with the method of Kim and Lee [18].

Images with camera motion blur Figure 9 shows an example containing blur mainly caused by the camera motion. The deblurred image generated by the non-uniform camera shake deblurring method [39] suffers from heavy blur because its model ignores the blur caused by large forward motion. Compared with the result of Sun et.al. [32], our method produces a sharper result with more details and less artifacts.

Images with object motion blur We evaluate our method on the images containing object motion blur. In Figure 10, the result of Whyte et.al. [39] contains heavy ringing artifacts due to the object motion. Our method can handle the strong blur in the background and generate a more natural image. We further compare with the segmentation-based deblurring method of Pan et.al. [26] on an image with large scale blur caused by moving object on static background. As shown in Figure 11, the result of Sun et.al. [32] is oversmooth due to the underestimate of motion flow. In the result of Pan et.al. [26], some details are lost due to the segmentation error. Our proposed method can recover the

Figure 7. Examples of motion flow estimation on real-world blurry images. From top to bottom: Blurry image Y, motion flow estimated by the patchCNN [32], and by our motion flow M. Our results are more smooth and more accurate on moving objects.

Figure 9. Deblurring results on an image with camera motion blur.

Figure 10. Deblurring results on an non-uniform blur image with strong blur on background.

Figure 11. Deblurring results on an image with large scale motion blur caused by moving object.

details on blurred moving foreground and keep the sharp background as original.

6. Conclusion

In this paper, we proposed a flexible and efficient deep learning based method for estimating and removing the heterogeneous motion blur. By representing the heterogeneous motion blur as pixel-wise linear motion blur, the proposed method uses a FCN to estimate the a dense motion flow map for blur removal. Moreover, we automatically generate training data with simulated motion flow maps for training the FCN. Experimental results on both synthetic and real-world data show the excellence of the proposed method.

References

[1] P. Arbelaez, M. Maire, C. Fowlkes, and J. Malik. Contour detection and hierarchical image segmentation. IEEE Trans. on PAMI, 33(5):898–916, 2011. 5, 6, 7

[2] F. Brusius, U. Schwanecke, and P. Barth. Blind image de- convolution of linear motion blur. In International Conference on Computer Vision, Imaging and Computer Graphics, pages 105–119. Springer, 2011. 3

[3] A. Chakrabarti. A neural approach to blind motion deblur- ring. ECCV, 2016. 2

[4] A. Chakrabarti, T. Zickler, and W. T. Freeman. Analyzing spatially-varying blur. In CVPR, pages 2512–2519, 2010. 2

[5] T. F. Chan and C.-K. Wong. Total variation blind deconvolu- tion. Trans. on Image Processing, 7(3):370–375, 1998. 2

[6] S. Cho and S. Lee. Fast motion deblurring. SIGGRAPH ASIA, 2009. 1, 2

[7] F. Couzinie-Devy, J. Sun, K. Alahari, and J. Ponce. Learning to estimate and remove non-uniform image blur. In CVPR, pages 1075–1082, 2013. 2

[8] S. Dai and Y. Wu. Removing partial blur in a single image. In CVPR, pages 2544–2551. IEEE, 2009. 2

[9] R. Fergus, B. Singh, A. Hertzmann, S. T. Roweis, and W. T. Freeman. Removing camera shake from a single photograph. In ACM Transactions on Graphics, 2006. 1, 2

[10] D. Gong, M. Tan, Y. Zhang, A. van den Hengel, and Q. Shi. Blind image deconvolution by automatic gradient activation. In CVPR, 2016. 1, 2

[11] A. Gupta, N. Joshi, C. L. Zitnick, M. Cohen, and B. Curless. Single image deblurring using motion density functions. In ECCV, pages 171–184, 2010. 1, 2, 5

[12] M. Hirsch, C. J. Schuler, S. Harmeling, and B. Sch¨olkopf. Fast removal of non-uniform camera shake. In ICCV, 2011. 1, 2

[13] M. Hirsch, S. Sra, B. Sch¨olkopf, and S. Harmeling. Efficient filter flow for space-variant multiframe blind deconvolution. In CVPR, volume 1, page 2, 2010. 2

[14] Z. Hu, L. Xu, and M.-H. Yang. Joint depth estimation and camera shake removal from single blurry image. In CVPR, pages 2893–2900, 2014. 1

[15] T. Hyun Kim, B. Ahn, and K. Mu Lee. Dynamic scene de- blurring. In CVPR, pages 3160–3167, 2013. 1, 2, 5

[16] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Gir- shick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv, 2014. 6

[17] J. Kim, J. K. Lee, and K. M. Lee. Accurate image super- resolution using very deep convolutional networks. In CVPR, 2016. 2

[18] T. H. Kim and K. M. Lee. Segmentation-free dynamic scene deblurring. In CVPR, 2014. 1, 2, 3, 6, 7, 8

[19] D. Krishnan, T. Tay, and R. Fergus. Blind deconvolution using a normalized sparsity measure. In CVPR, pages 233– 240, 2011. 2

[20] A. Levin. Blind motion deblurring using image statistics. In NIPS, pages 841–848, 2006. 1, 2

[21] A. Levin, Y. Weiss, F. Durand, and W. T. Freeman. Under- standing and evaluating blind deconvolution algorithms. In CVPR, pages 1964–1971, 2009. 2

[22] A. Levin, Y. Weiss, F. Durand, and W. T. Freeman. Efficient marginal likelihood optimization in blind deconvolution. In CVPR, pages 2657–2664, 2011. 2

[23] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ra- manan, P. Doll´ar, and C. L. Zitnick. Microsoft coco: Common objects in context. In ECCV, pages 740–755, 2014. 1, 6, 7

[24] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, pages 3431– 3440, 2015. 4

[25] X.-J. Mao, C. Shen, and Y.-B. Yang. Image restoration us- ing convolutional auto-encoders with symmetric skip connections. arXiv, 2016. 2

[26] J. Pan, Z. Hu, Z. Su, H.-Y. Lee, and M.-H. Yang. Softsegmentation guided object motion deblurring. 2016. 1, 2, 7, 8

[27] J. Pan, Z. Hu, Z. Su, and M.-H. Yang. Deblurring text im- ages via -regularized intensity and gradient prior. In CVPR, pages 2901–2908, 2014. 1, 2

[28] J. Pan, D. Sun, H. Pfister, and M.-H. Yang. Blind image deblurring using dark channel prior. In CVPR, 2016. 1, 2

[29] D. Perrone and P. Favaro. Total variation blind deconvolu- tion: The devil is in the details. In CVPR, pages 2909–2916, 2014. 2

[30] U. Schmidt, C. Rother, S. Nowozin, J. Jancsary, and S. Roth. Discriminative non-blind deblurring. In CVPR, pages 604– 611, 2013. 2

[31] C. J. Schuler, H. Christopher Burger, S. Harmeling, and B. Scholkopf. A machine learning approach for non-blind image deconvolution. In CVPR, pages 1067–1074, 2013. 2

[32] J. Sun, W. Cao, Z. Xu, and J. Ponce. Learning a convolu- tional neural network for non-uniform motion blur removal. In CVPR, pages 769–777. IEEE, 2015. 1, 2, 4, 6, 7, 8

[33] L. Sun, S. Cho, J. Wang, and J. Hays. Edge-based blur kernel estimation using patch priors. In ICCP, pages 1–8, 2013. 2

[34] Y.-W. Tai, P. Tan, and M. S. Brown. Richardson-lucy de- blurring for scenes under a projective motion path. Trans. on PAMI, 33(8):1603–1618, 2011. 2

[35] J. Walker, A. Gupta, and M. Hebert. Dense optical flow prediction from a static image. In ICCV, pages 2443–2451, 2015. 4

[36] X. Wang, D. Fouhey, and A. Gupta. Designing deep net- works for surface normal estimation. In CVPR, pages 539– 547, 2015. 4

[37] X. Wang and A. Gupta. Generative image modeling using style and structure adversarial networks. In ECCV, 2016. 4

[38] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. IEEE Trans. on Image Processing, 13(4):600– 612, 2004. 6

[39] O. Whyte, J. Sivic, A. Zisserman, and J. Ponce. Non-uniform deblurring for shaken images. IJCV, 98(2):168–186, 2012. 1, 2, 5, 6, 7, 8

[40] P. Wieschollek, B. Sch¨olkopf, H. P. A. Lensch, and M. Hirsch. End-to-end learning for image burst deblurring. In ACCV, 2016. 2

[41] L. Xu and J. Jia. Two-phase kernel estimation for robust motion deblurring. In ECCV, pages 157–170, 2010. 1, 6

[42] L. Xu, J. S. Ren, C. Liu, and J. Jia. Deep convolutional neu- ral network for image deconvolution. In NIPS, pages 1790– 1798, 2014. 2

[43] L. Xu, S. Zheng, and J. Jia. Unnatural l0 sparse represen- tation for natural image deblurring. In CVPR, pages 1107– 1114, 2013. 2, 6

[44] H. Zhang and D. Wipf. Non-uniform camera shake removal using a spatially-adaptive sparse penalty. In NIPS, pages 1556–1564, 2013. 2

[45] H. Zhang, D. Wipf, and Y. Zhang. Multi-image blind deblur- ring using a coupled adaptive sparse prior. In CVPR, 2013. 2

[46] S. Zheng, L. Xu, and J. Jia. Forward motion deblurring. In CVPR, pages 1465–1472, 2013. 1, 2, 5

[47] D. Zoran and Y. Weiss. From learning models of natural image patches to whole image restoration. In ICCV, pages 479–486, 2011. 4, 6

Designed for Accessibility and to further Open Science