Abstract
Since the introduction of VCR technology in the 1970s, video surveillance has been implemented worldwide as a monitoring method for security and research purposes \cite{cctv}. As computer vision technology advanced in the following decades, closed-circuit television systems have grown in sophistication and complexity. In this paper, we expose the modern video processing techniques that were researched and implemented in order to develop a video surveillance system for road traffic monitoring that is capable of tracking individual cars and estimating their velocity. The prototype will be robust against:
- Illumination changes in the video,
- Noise and degraded images (such as the resulting from low bitrate coding),
- Unwanted camera vibrations.
The paper with the project explanation and conclusions is available here.
The final presentation outlining all steps of the project is available here.
The development of the whole system has been planned in 5 weeks, as presented in detail in next sections.
Block 1: Foreground Extraction and Optical Flow
The goal of this first block is to understand and familiarize with the programing framework used in this project. Furthermore, the datasets used in the project together with the evaluation metrics that measure the performance of the algorithms used in the project will be implemented and preliminary tested. Some functions to open and write the video sequences provided by the datasets ara developed. To familiarize with the ground-truth provided by the databases functions to evaluate the results by measuring the proposed evaluation metrics are crated.
Block 2: Background estimation
The goal of this week is to model the background pixels of a video sequence using a simple statistical model. Firstly, a single gaussian model per pixel will be used to model the background pixels. The statistical model will be used to preliminary classify foreground pixels in the sequence. The simple model will be compared with more complex ones such as the Stauffer and Grimson (provided in the programming framework).
Block 3: Foreground segmentation
The goal for this block will be to implement a robust foreground segmentation algorithm. The statistical model implemented in the previous week is the baseline which must be improved during this week. Two basic strategies are to applied: hole filling and area filtering. In addition, a strategy to remove the shadows of the cars can also improve the final performance.
Block 4: Video Stabilization
Surveillance cameras are often placed on physical support that can vibrate because of weather conditions or nearby transportations. This camera jitering affects the video sequence, introducing an motion on both foreground objects and background. As a result, analysis algorithms that depend from the extraction and tracking of foreground object can be contaminated by the camera motion. This module focuses in the estimation of such camera motion and existing techniques to achieve a virtual stabilization of the camera.
Block 5: Region tracking
The goal of this assignment is the implementation of a tracking system to uniquely identify the objects in the scene. This tracking will allow counting the amount of vehicles and obtain an approximate estimation of their speed.
Here is the mean speed estimation for the cars in the highway sequence.
Authors
The code and the documentation has been created by Olaia Artieda, Miguel Rib, Raúl Gómez and Andrea Velasco, students of the Master in Computer Vision of the Universitat Autónoma de Barcelona. It's free to use and distribute.