Anomaly Detection In Videos From Surveillance Cameras

Heavy industry


The manufacturing company has a number of factories and employs thousands of workers. As production volume and number of technical employees grown, safety supervision became really hard and requires lots of people to constantly monitor the CCTV records. Checking archive records would also be really time-consuming without any tags.

The company required a computer vision system that would work with CCTV cameras mounted above the workstations. The system would monitor a workflow, detect malfunctions of a production process and alert about dangerous or suspicious events.

Our work

Project Goals

  • Build a data pipeline that can collect data from the CCTV, preprocess it and stream it to the model.
  • Develop a Machine Learning model that will be able to detect anomalies in videos.
  • The model should work in real-time and alert a shift manager in case of any unusual events.


  • No one can define all unwanted events that can occur.
  • Availability of the anomalous data is very limited.
  • Hardware infrastructure has to meet specific requirements.

The outcome

We decided to build a model that can be trained only on data that not contain anomalies. It is a desirable situation because anomalies are really rare and data annotation will be very time-consuming. Since this is clearly a computer vision problem, deep learning and precisely convolutional neural networks were our first pick. We built a state-of-the-art models base on GANs (Generative Adversarial Networks) which takes into account objects appearance and motion patterns.

The models were developed using TensorFlow and deployed with TensorFlow serving in Docker containers – this solution allows really fast response time, seamless model updates and provides isolated environment independent from a host machine.


  • Enhanced safety issues at the workplace.
  • The shift manager is immediately informed about the disturbances in the workflow.
  • Faster, a more directed reaction in case of an unwanted event.
  • No need of a person watching all the CCTV streams all the time – people can allocate their time to other, more creative tasks.
Technology used
  • Python
  • TensorFlow
  • OpenCV