  We introduce a deep network architecture called DerainNet for removing rain
streaks from an image. Based on the deep convolutional neural network (CNN), we
directly learn the mapping relationship between rainy and clean image detail
layers from data. Because we do not possess the ground truth corresponding to
real-world rainy images, we synthesize images with rain for training. In
contrast to other common strategies that increase depth or breadth of the
network, we use image processing domain knowledge to modify the objective
function and improve deraining with a modestly-sized CNN. Specifically, we
train our DerainNet on the detail (high-pass) layer rather than in the image
domain. Though DerainNet is trained on synthetic data, we find that the learned
network translates very effectively to real-world images for testing. Moreover,
we augment the CNN framework with image enhancement to improve the visual
results. Compared with state-of-the-art single image de-raining methods, our
method has improved rain removal and much faster computation time after network
training.
