Restoring rain images is important for many computer vision applications in outdoor scenes. Rain degrades visibility significantly and causes many computer vision systems to likely fail. Generally, rain introduces a few types of visibility degradation. Raindrops obstruct, deform and/or blur the background scenes. Distant rain streaks accumulate and generate atmospheric veiling effects similar to mist or fog, which severely reduce the visibility by scattering light out and into the line of sight. Nearby rain streaks exhibit strong specular highlights that occlude background scenes. These rain streaks can have various shapes and directions, particularly in heavy rain, causing severe visibility degradation.
In the past decades, many researchers have devoted their attention to solving the problem of restoring rain images. Some focus on rain image recovery from video sequences [2, 3, 4, 8, 12, 13, 14, 15, 41]. Others focus on rain removal from the single image, by regarding the rain streak removal problem as a signal separation problem [22, 17, 31, 8, 27], or by relying on nonlocal mean smoothing . While there are varying degrees of success, majority of existing methods suffer from several limitations:
Due to the intrinsic overlapping between rain streaks and background texture patterns, most methods tend to remove texture details in non-rain regions, leading to over-smoothing the regions.
The basic operation of many existing algorithms is on a local image patch or a limited receptive field (a limited spatial range). Thus, spatial contextual information in larger regions, which has been proven to be useful for rain removal , is rarely used.
Considering these limitations, our goal is to develop a novel rain model that is more capable of describing various rain conditions in real scenes, including rain streak accumulation and heavy rain, and then, use them to design an effective deep learning architecture. Here, we focus on a single input image.
To achieve the goal, we explore the possible rain models and deep learning architectures that can effectively restore rain images even in the presence of heavy rain. Our ideas are as follows. First, we introduce novel region-dependent rain models. In the models, we use a rain-streak binary map, where 1 indicates the presence of individually visible rain streaks in the pixels, and 0 otherwise. We also model the appearance of rain streak accumulation (which is similar to that of mist or fog), and the various shapes and directions of overlapping streaks, to simulate heavy rain.
Second, based on our introduced models, we construct a deep network that jointly detects and removes rain. Rain streak regions are detected automatically and are used to constrain the rain removal. With this, our network is capable of performing an adaptive operation on rain and non-rain regions, preserving richer details.
Third, to retrieve more contextual information, we propose a contextualized dilated network to enlarge the receptive field. In this network, the extracted features are enhanced in each recurrence progressively by the aggregated information from several parallel dilated convolutions.
Finally, to restore images captured in the environment with both rain accumulation and various rain streak directions, we propose a recurrent rain detection and removal network that progressively removes rain streaks. Extensive experiments and evaluations demonstrate that our method outperforms state-of-the-art methods significantly on both synthesized data and real data. Particularly for some heavy rain images, our method achieves considerably good results.
Hence, our contributions are:
The first method to model the rain-streak binary mask, and also to model the atmospheric veils due to rain streak accumulation as well as various shapes and directions of overlapping rain streaks. This enables us to synthesize more similar data to real rain images for the network training.
The first method to jointly detect and remove rains from single images. With the additional information of detected rain regions, our rain removal achieves better performance.
The first rain removal method that uses a contextualized dilated network to obtain more context while preserving rich local details.
The first method that addresses heavy rain by introducing an recurrent rain detection and removal network, where it removes rain progressively, enabling us to obtain good results even in significantly complex cases.
Our training and testing data, as well as our codes, will be publicly available.
2 Related Work
Compared with the video based deraining problem, the single image based problem is more ill-posed, due to the lack of temporal information. Some single-image based rain removal methods regard the problem as a layer separation problem. Huang et al.  attempted to separate the rain streaks from the high frequency layer by sparse coding, with a learned dictionary from the HOG features. However, the capacity of morphological component analysis, the layer separation, and learned dictionary are limited. Thus, it usually causes the over-smoothness of the background. In , a generalized low rank model is proposed, where the rain streak layer is assumed to be low rank. In , Kim et al. first detected rain streaks and then removed them with the nonlocal mean filter. In , Luo et al. proposed a discriminative sparse coding method to separate rain streaks from background images. A recent work of 
exploits the Gaussian mixture models to separate the rain streaks, achieving the state-of-the-art performance, however, still with slightly smooth background.
3 Region-Dependent Rain Image Model
We briefly review the commonly used rain model, and generalize it to explicitly include a rain-streak binary map. Subsequently, we introduce a novel rain model that captures rain accumulation (atmospheric veils) and rain streaks that have various shapes and directions, which are absent in the existing rain models.
3.1 Region-Dependent Rain Image Formation
where is the background scene without rain streaks, and is the rain streak layer. is the captured image with rain streaks. Based on this model, rain removal is regarded as a two-signal separation problem. Namely, given the observation
, removing rain streaks is to estimate the background B and rain streak, based on the different characteristics of the rain-free images and rain streaks. Existing rain removal methods relying on Eq. (1) suffer from following two deficiencies. First, has heterogeneous density, and heavy rain regions are much denser than light rain regions. Thus, it is hard to model with a uniform sparsity level assumption, which is needed for most of existing sparsity-based methods. Second, solving the signal separation problem in Eq. (1) without distinguishing the rain and non-rain regions will cause over-smoothness on the rain-free regions. The main reason for these difficulties lies in the intrinsic complexity to model . In Eq. (1), needs to model both location and intensity of rains, thus it is hard for the existing methods to jointly to localize and remove the rain streaks.
To overcome these drawbacks, we first propose a generalized rain model as follows:
which includes a new region-dependent variable to indicate the location of individually visible rain streaks. Here elements in takes binary values, where indicates rain regions and indicates non-rain regions. Note that, although can be easily estimated from via hard-thresholding, modeling separately from provides two desirable benefits for learning based rain removal methods: (1) it gives additional information for the network to learn about rain streak regions, (2) it allows a new rain removal pipeline to detect rain regions first, and then to operate differently on rain-streak and non-rain-streak regions, preserving background details.
3.2 Rain Accumulation and Heavy Rain
The rain image model introduced in Eq. (2) captures region-dependent rain streaks. In the real world, rain appearance is not only formed by individual rain streaks, but also by accumulating multiple rain streaks. When rain accumulation is dense, the individual streaks can not be seen clearly. This rain streak accumulation, whose visual effect is similar to mist or fog, causes the atmospheric veiling effect as well as blur, especially for distance scenes, as shown in Fig. 2.a. Aside from rain accumulation, in many occasions, particularly in heavy rain, rain streaks can have various shapes and directions that overlap to each other, as shown in Fig. 2.a and 2.b.
In this section, based on the model in Eq. (1), we create a model to accommodate rain streak accumulation:
where each is the direction- and shape-consistent individually-visible rain streaks, is the overlapping streak number, and is the number of shape and direction consistent rain streaks within an image. is the global atmospheric light, is the scene transmission. Based on Eq. (3), we can synthesize the rain accumulation and heavy rain images as the training data, which is closer to the appearance of natural rain, as shown in Fig. 3. Note that the atmospheric veiling effect is enforced on the integrated rain-contaminated image , thus Eq. (3) implies that, we can handle rain accumulation and rain streak removal separately, which provides convenience for our training.
In the following section, we first develop a deep convolutional network to detect and remove rain streaks from the rainy images having rain patterns explained by Eq. (3). Then we consider the heavy rain situations and generalize the CNN model to a recurrent one to perform iterative rain removal.
4 Convolutional Joint Rain Detection and Removal
We construct a convolutional multi-task network to perform JOint Rain DEtection and Removal (JORDER) that solves the inverse problem in Eq. (2) through end-to-end learning. Rain regions are first detected by JORDER to further constrain the rain removal. To leverage more context without losing local details, we propose a novel network structure – the contextualized dilated network – for extracting the rain discriminative features and facilitating the following rain detection and removal.
4.1 Convolutional Multi-Task Networks for Joint Rain Detection and Removal
Relying on Eq. (2), given the observed rain image , our goal is to estimate , and . Due to the nature of the ill-posed problem, it leads to a maximum-a-posteriori (MAP) estimation:
where , and are the enforced priors on and , respectively. Previous priors on and include hand-crafted features, e.g. cartoon texture decomposition , and some data-driven models, such as sparse dictionary  and Gaussian mixture models . For deep learning methods, the priors about , and are learned from the training data and are embedded into the network implicitly.
The estimation of and is intrinsically correlated. Thus, the estimation of benefits from the predicted and . To address this, the natural choice is to employ a multi-task learning architecture, which can be trained using multiple loss functions based on the ground truths of , and (see the blue dash box in Fig. 4 and please here ignore the subscript to denote the recurrence number).
As shown in the figure, we first exploit a contextualized dilated network to extract the rain feature representation . Subsequently, , and are predicted in a sequential order, implying a continuous process of rain streak detection, estimation and removal. Each of them is predicted based on :
is estimated by two convolutions on ,
is predicted by a convolution on the concatenation ,
is computed from a convolution on the concatenation .
There are several potential choices for the network structures, such as estimating the three variables in the order of , , , or in parallel (instead of sequential). We compare some alternative architectures and demonstrate the superiority of ours empirically in our supplementary material.
4.2 Contextualized Dilated Networks
For rain removal tasks, contextual information from an input image is demonstrated to be useful for automatically identifying and removing the rain streaks . Thus, we propose a contextualized dilated network to aggregate context information at multiple scales for learning the rain features. The network gains contextual information in two ways: 1) it takes a recurrent structure, similar to the recurrent ResNet in , which provides an increasingly larger receptive field for the following layers; 2) in each recurrence, the output features aggregate representations from three convolution paths with different dilated factors and receptive fields.
Specifically, as shown in the gray region of Fig. 4, the network first transforms the input rain image into feature space via the first convolution. Then, the network enhances the features progressively. In each recurrence, the results from the three convolution paths with different dilated factors are aggregated with the input features from the last recurrence via the identity forward. The dilated convolution  weights pixels with a step size of the dilated factor, and thus increases its receptive field without losing resolution. Our three dilated paths consist of two convolutions with the same kernel size . However, with different dilated factors, different paths have their own receptive field. As shown in the top part of the gray region in Fig. 4, path P consists of two convolutions with the dilated factor . The convolution kernel is shown as the case of DF. Thus, cascading two convolutions, the three paths have their receptive fields of , and .
4.3 Network Training
Let and denote the inverse recovery functions modeled by the learned network to generate the estimated rain streak binary map , rain streak map and background image based on the input rain image . We use to collectively represent all the parameters of the network.
We use sets of corresponding rain images, background images, rain region maps and rain streak maps for training. We adopt the following joint loss function to train the network parametrized by such that it is capable to jointly estimate , and based on rain image :
Here and are the parameters to balance the importance among estimating , and . The network is trained to minimize the above loss, via error back-propagation.
5 Removing Rains from Real Rain Images
In the previous section, we construct a convolutional multi-task learning network to jointly detect and remove rain streaks from rain images. In this section, we further enhance our network to handle rain accumulation and rain streaks that possibly have various shapes and directions in one image.
5.1 Recurrent Rain Detection and Removal
The recurrent JORDAR model can be understood as a cascade of the convolutional joint rain detection and removal networks to perform progressive rain detection and removal and recover the image with increasingly better visibility.
We define the process of the network in the blue dash box of Fig. 4 that generates the residual image between and as . Then, the recurrent rain detection and removal works as follows,
In each iteration , the predicted residue is accumulated and propagated to the final estimation via updating and . Note that, although the estimated rain mask and streak are not casted into the next recurrence directly. However, the losses to regularize them in fact provide strong side information for learning an effective . The final estimation can be expressed as:
where is the total iteration number. Hence, the process removes the rain streak progressively, part by part, based on the intermediate results from the previous step. The complexity of rain removal in each iteration is consequently reduced, enabling better estimation, especially in the case of heavy rains.
The recurrent JORDAR network introduces an extra time variable to the loss function in Eq. (4.3) and gives , where . When , is equivalent to that replaces and by and , respectively, where is generated from the -th iterations of the process Eq. (5.1) on the initial . Then, the total loss function for training is
5.2 Joint Derain and Dehaze
Distant rain streaks accumulate and form an atmospheric veil, causing visibility degradation. To resolve this, clearing up the atmospheric veil, which is similar to dehazing or defogging, is necessary.
Eq. (3) suggests that dehazing should be the first step in the process of joint deraining and dehazing. Thus, we propose to estimate first. However, placing dehazing as a preprocessing has complicated effects on deraining, since all rain streaks (including the ones that are already sharp and clearly visible) are boosted, making the streaks look different from those in the training images. Hence, in our proposed pipeline, we derain first, then followed by dehazing and at last finished with deraining. This, as it turns out, is beneficial, since dehazing will make the appearance of less obvious rain streaks (which are likely unnoticed by the first round of deraining) become more obvious.
We implement a dehazing network based on the structure of contextualized dilated network, with only one recurrence, trained with the synthesized data generated with the random background reliance and transmission value . We find that the sequential process of derain-dehaze-derain is generally effective (see the supplementary material for the evaluation of other possible sequences). The reason is that some obvious rain streaks, noises and artifacts are removed in the first round deraining. Then, the dehazing cleans up the rain accumulation, enhances the contrast and visibility, and at the same time boosts weak rain streaks. The subsequent deraining removes these boosted rain streaks, as well as artifacts caused by dehazing, making the results cleaner.
6 Experimental Results
We compare our method with state-of-the-art methods on a few benchmark datasets: (1) Rain12 111http://yu-li.github.io/ , which includes 12 synthesized rain images with only one type of rain streak; Rain100L, which is the synthesized data set with only one type of rain streak (Fig. 5.c); (2) Rain20L, which is a subset of Rain100L used for testing the potential network structures in the supplementary material; (3) Rain100H, which is our synthesized data set with five streak directions (Fig. 5.d). Note, while it is rare for a real rain image to contain rain streaks in many different directions, synthesizing this kind of images for training is observed to boost the capacity of the network.
The images for synthesizing Rain100L, Rain20L and Rain100H are selected from BSD200 . The dataset for training our network and another deep learning baseline – SRCNN for deraining – is BSD300, excluding the ones appeared in Rain12. The rain streaks are synthesized in two ways: (1) the photorealistic rendering techniques proposed by  as shown in Fig. 5.a; (2) the simulated sharp line streaks along a certain direction with a small variation within an image as shown in Fig. 5.b. We will release our training and testing sets, as well as their synthesis codes for public in the future.
We compare the four versions of our approaches, JORDER- (one version of our methods that has only one convolution path in each recurrence without using dilated convolutions), JORDER (Section 4), JORDER-R (Section 5.1), JORDER-R-DEHAZE (Section 5.2) with five state-of-the-art methods: image decomposition (ID) , CNN-based rain drop removal (CNN) , discriminative sparse coding (DSC) , layer priors (LP)  and a common CNN baseline for image processing – SRCNN , trained for deraining. SRCNN is implemented and trained by ourselves, while other methods are kindly provided by the authors.
For the experiments on synthesized data, two metrics Peak Signal-to-Noise Ratio (PSNR)  and Structure Similarity Index (SSIM)  are used as comparison criteria. We evaluate the results only in the luminance channel, which has a significant impact on the human visual system to perceive the image quality.
Table 1 shows the results of different methods on Rain12. As observed, our method considerably outperforms other methods in terms of both PSNR and SSIM. Table 2 presents the results of JORDER and JORDER-R on Rain100H. Note that, our JODDER-R is designed to handle such hard cases, thus achieves considerably better results than other compared methods. The PSNR of JORDER-R gains over JORDER more than 1dB. Such a large gain demonstrates that the recurrent rain detection and removal significantly boosts the performance on synthesized heavy rain images.
Fig. 6 shows the results of real images. For fair comparisons, we use JORDER-R to process these rain images and do not handle the atmospheric veils on these results, to be consistent with other methods. As observed, our method significantly outperforms them and is successful in removing the majority of rain streaks.
We also compare all the methods in two extreme cases: dense rain accumulation, and heavy rain as shown in Fig. 7. Our method achieves promising results in removing the majority of rain streaks, enhancing the visibility and preserving details. All the results and related codes will be publicly available in the future.
compares the running time of several state-of-the-art methods. All baseline methods are implemented in MATLAB. Our methods are implemented on the Caffe’s Matlab wrapper. CNN rain drop and some versions of our methods are implemented on GPU, while others are based on CPU. Our GPU versions is computationally efficient. The CPU version of JORDER, a lightest version of our method, takes up the shortest running time among all CPU-based approaches. In general, our methods in GPU are capable of dealing with arain image less than 10s, which is considerably faster than the existing methods.
|Scale||JORDER (C)||JORDER (G)||JR (G)||JRD (G)|
Evaluation on joint derain and dehaze.
Fig. 8 shows the significant superiority of our method (f), in an order of derain-dehaze-derain, than other potential combinations ((b)-(e)).
7 Conclusion and Future Works
In this paper, we have introduced a new deep learning based method to effectively learn to joint remove rain from a single image, even in the presence of rain streak accumulation and heavy rain. A new region-dependent rain image model is proposed for additional rain detection and is further extended to simulate rain accumulation and heavy rains. Based on this model, we developed a fully convolutional network that jointly detect and remove rain. Rain regions are first detected by the network which naturally provides additional information for rain removal. To restore images captured in the environment with both rain accumulation and heavy rain, we introduced an recurrent rain detection and removal network that progressively removes rain streaks, embedded with a dehazing network to remove atmospheric veils. Evaluations on real images demonstrated that our method outperforms state-of-the-art methods significantly.
F. Agostinelli, M. R. Anderson, and H. Lee.
Adaptive multi-column deep neural networks with application to robust image denoising.In Proc. Annual Conf. Neural Information Processing Systems. 2013.
-  P. C. Barnum, S. Narasimhan, and T. Kanade. Analysis of rain and snow in frequency space. Int’l Journal of Computer Vision, 86(2-3):256–274, 2010.
-  J. Bossu, N. Hautière, and J.-P. Tarel. Rain or snow detection in image sequences through use of a histogram of orientation of streaks. International journal of computer vision, 93(3):348–367, 2011.
-  N. Brewer and N. Liu. Using the shape characteristics of rain to identify and remove rain from video. In Joint IAPR International Workshops on SPR and SSPR, pages 451–458, 2008.
-  H. C. Burger, C. J. Schuler, and S. Harmeling. Image denoising with multi-layer perceptrons, part 1: comparison with existing algorithms and with bounds. arXiv:1211.1544.
-  H. C. Burger, C. J. Schuler, and S. Harmeling. Image denoising with multi-layer perceptrons, part 2: training trade-offs and analysis of their mechanisms. arXiv:1211.1552.
-  B. Cai, X. Xu, K. Jia, C. Qing, and D. Tao. Dehazenet: An end-to-end system for single image haze removal. IEEE Trans. on Image Processing, PP(99):1–1, 2016.
-  Y.-L. Chen and C.-T. Hsu. A generalized low-rank appearance model for spatio-temporally correlated rain streaks. In Proceedings of the IEEE International Conference on Computer Vision, pages 1968–1975, 2013.
-  Z. Cui, H. Chang, S. Shan, B. Zhong, and X. Chen. Deep network cascade for image super-resolution. In Proc. IEEE European Conf. Computer Vision. 2014.
-  C. Dong, C. Loy, K. He, and X. Tang. Image super-resolution using deep convolutional networks. TPAMI, 2015.
-  C. Dong, C. C. Loy, K. He, and X. Tang. Image super-resolution using deep convolutional networks. In ECCV. 2014.
-  D. Eigen, D. Krishnan, and R. Fergus. Restoring an image taken through a window covered with dirt or rain. In Proc. IEEE Int’l Conf. Computer Vision, December 2013.
K. Garg and S. K. Nayar.
Detection and removal of rain from videos.
Proc. IEEE Int’l Conf. Computer Vision and Pattern Recognition, volume 1, pages I–528, 2004.
-  K. Garg and S. K. Nayar. Photorealistic rendering of rain streaks. In ACM Trans. Graphics, volume 25, pages 996–1002, 2006.
-  K. Garg and S. K. Nayar. Vision and rain. Int’l Journal of Computer Vision, 75(1):3–27, 2007.
-  L. A. Gatys, A. S. Ecker, and M. Bethge. A neural algorithm of artistic style. arXiv:1508.06576, 2015.
-  D.-A. Huang, L.-W. Kang, Y.-C. F. Wang, and C.-W. Lin. Self-learning based image decomposition with applications to single image denoising. IEEE Transactions on multimedia, 16(1):83–93, 2014.
-  D.-A. Huang, L.-W. Kang, M.-C. Yang, C.-W. Lin, and Y.-C. F. Wang. Context-aware single image rain removal. In Proc. IEEE Int’l Conf. Multimedia and Expo, pages 164–169, 2012.
-  Q. Huynh-Thu and M. Ghanbari. Scope of validity of psnr in image/video quality assessment. Electronics letters, 44(13):800–801, 2008.
-  V. Jain and S. Seung. Natural image denoising with convolutional networks. In Proc. Annual Conf. Neural Information Processing Systems. 2009.
-  Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. In ACM Trans. Multimedia, pages 675–678, 2014.
-  L. W. Kang, C. W. Lin, and Y. H. Fu. Automatic single-image-based rain streaks removal via image decomposition. IEEE Trans. on Image Processing, 21(4):1742–1755, April 2012.
-  J.-H. Kim, C. Lee, J.-Y. Sim, and C.-S. Kim. Single-image deraining using an adaptive nonlocal means filter. In IEEE Trans. on Image Processing, pages 914–917, 2013.
-  J. H. Kim, C. Lee, J. Y. Sim, and C. S. Kim. Single-image deraining using an adaptive nonlocal means filter. In Proc. IEEE Int’l Conf. Image Processing, pages 914–917, Sept 2013.
-  Y. Li, R. T. Tan, X. Guo, J. Lu, and M. S. Brown. Rain streak removal using layer priors. In Proc. IEEE Int’l Conf. Computer Vision and Pattern Recognition, pages 2736–2744, 2016.
-  K. G. Lore, A. Akintayo, and S. Sarkar. Llnet: A deep autoencoder approach to natural low-light image enhancement. arXiv preprint arXiv:1511.03995, 2015.
-  Y. Luo, Y. Xu, and H. Ji. Removing rain from a single image via discriminative sparse coding. In Proc. IEEE Int’l Conf. Computer Vision, pages 3397–3405, 2015.
-  D. Martin, C. Fowlkes, D. Tal, and J. Malik. A database of human segmented natural images and its application to evaluating segmentation algorithms and measuring ecological statistics. In Proc. IEEE Int’l Conf. Computer Vision, volume 2, pages 416–423, July 2001.
-  C. Osendorfer, H. Soyer, and P. van der Smagt. Image super-resolution with fast approximate convolutional sparse coding. In Neural Information Processing. 2014.
-  C. J. Schuler, M. Hirsch, S. Harmeling, and B. Schölkopf. Learning to deblur. arXiv:1406.7444, 2014.
-  S.-H. Sun, S.-P. Fan, and Y.-C. F. Wang. Exploiting image structural similarity for single image rain removal. In Proc. IEEE Int’l Conf. Image Processing, pages 4482–4486, 2014.
P. Vincent, H. Larochelle, I. Lajoie, Y. Bengio, and P.-A. Manzagol.
Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion.
Journal of Machine Learning Research, 2010.
-  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.
H. Z. J. P. X. C. Wenqi Ren, Si Liu and M.-H. Yang.
Single image dehazing via multi-scale convolutional neural networks.In Proc. IEEE European Conf. Computer Vision, pages 914–917, October 2016.
-  J. Xie, L. Xu, and E. Chen. Image denoising and inpainting with deep neural networks. In Proc. Annual Conf. Neural Information Processing Systems. 2012.
-  L. Xu, J. S. Ren, C. Liu, and J. Jia. Deep convolutional neural network for image deconvolution. In Proc. Annual Conf. Neural Information Processing Systems. 2014.
-  Z. Yan, H. Zhang, B. Wang, S. Paris, and Y. Yu. Automatic photo adjustment using deep neural networks. ACM Trans. Graphics, 2015.
-  W. Yang, J. Feng, J. Yang, F. Zhao, J. Liu, Z. Guo, and S. Yan. Deep Edge Guided Recurrent Residual Learning for Image Super-Resolution. ArXiv, April 2016.
-  F. Yu and V. Koltun. Multi-scale context aggregation by dilated convolutions. In International Conference on Learning Representation, 2016.
-  K. Zhang, W. Zuo, Y. Chen, D. Meng, and L. Zhang. Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising. ArXiv e-prints, August 2016.
-  X. Zhang, H. Li, Y. Qi, W. K. Leow, and T. K. Ng. Rain removal in video by combining temporal and chromatic properties. In Proc. IEEE Int’l Conf. Multimedia and Expo, pages 461–464, 2006.