  Rain streak removal is an important issue and has recently been investigated
extensively. Existing methods, especially the newly emerged deep learning
methods, could remove the rain streaks well in many cases. However the
essential factor in the generative procedure of the rain streaks, i.e., the
motion blur, which leads to the line pattern appearances, were neglected by the
deep learning rain streaks approaches and this resulted in over-derain or
under-derain results. In this paper, we propose a novel rain streak removal
approach using a kernel guided convolutional neural network (KGCNN), achieving
the state-of-the-art performance with simple network architectures. We first
model the rain streak interference with its motion blur mechanism. Then, our
framework starts with learning the motion blur kernel, which is determined by
two factors including angle and length, by a plain neural network, denoted as
parameter net, from a patch of the texture component. Then, after a
dimensionality stretching operation, the learned motion blur kernel is
stretched into a degradation map with the same spatial size as the rainy patch.
The stretched degradation map together with the texture patch is subsequently
input into a derain convolutional network, which is a typical ResNet
architecture and trained to output the rain streaks with the guidance of the
learned motion blur kernel. Experiments conducted on extensive synthetic and
real data demonstrate the effectiveness of the proposed method, which preserves
the texture and the contrast while removing the rain streaks.
