  Robust and computationally efficient anomaly detection in videos is a problem
in video surveillance systems. We propose a technique to increase robustness
and reduce computational complexity in a Convolutional Neural Network (CNN)
based anomaly detector that utilizes the optical flow information of video
data. We reduce the complexity of the network by denoising the intermediate
layer outputs of the CNN and by using powers-of-two weights, which replaces the
computationally expensive multiplication operations with bit-shift operations.
Denoising operation during inference forces small valued intermediate layer
outputs to zero. The number of zeros in the network significantly increases as
a result of denoising, we can implement the CNN about 10% faster than a
comparable network while detecting all the anomalies in the testing set. It
turns out that denoising operation also provides robustness because the
contribution of small intermediate values to the final result is negligible.
During training we also generate motion vector images by a Generative
Adversarial Network (GAN) to improve the robustness of the overall system. We
experimentally observe that the resulting system is robust to background
motion.
