Intelligent Multi-camera Video Surveillance

More Info
expand_more

Abstract

Video surveillance is found in different areas, such as public buildings, metro stations and miliary areas. These systems have become increasingly cost efficient, allowing for larger systems as well. Traditionally multiple security cameras are positioned throughout the area, and linked to monitor screens. These screens are monitored by security pesonnel. Unfortunately humans suffer from certain flaws when it comes to surveillance. For example, humans may lose focus when nothing happens for a long period of time. Though computers may no be as good at computer vision and reasoning as human operators, they provide different advantages. For instance, computers are capable of working 24 hours a day, 7 hours a week. By using an automated intelligent multi-camera video surveillance system the security personnel could be supported in their work, allowing for less security flaws in monitoring the area. For this Bachelor project the project group has developed such an automated intelligent multi-camera video surveillance system. In particular, the system was developed for monitoring the 'Netherlands Defence Academy' (NLDA) area of the 'Koninklijk Instituut voor de Marine' (KIM). In order to develop the system, a scientific approach was used in combination with an incremental, agile development technique called Scrum. Weekly meetings were held with the goup, the supervisors and the domain experts. The system consists of two applications: a Client written in C++ with OpenCV and a Server application written in Java. The Client application is attached to a security camera, and will then detect moving objects, classify them as either human or non-human, and determine their location relative to the camera. For each detected object it will then transmit this information to the Server application. This Server application gathers the information from the Clients and combines the information into actual objects in the monitored area. It then reasons about these objects by using their history of GPS locations to detect whether suspicious situations are occurring. Examples of such situations are when a person enters a restricted area, when a person suddenly starts running or when a person has been following another person or a period of time. In case of a suspicious situation the security personnel is alarmed, and relevant information is displayed to allow the personnel to take action if required. Ensuring code quality, maintainability and extendability of the system was an important aspect of the project. Using a diverse set of tools we ensured that these properties of the system were maintained throughout the project. It is simple to change image processing modules in the Client, or add new reasoning rules to the Server. This resulted in a much appreciated 5 star rating from the Software Improvement Group. Another important aspect of the system was testing. Using Google Test for C++ and JUnit for Java the parts of the code with simple in- and output behavior were automatically tested. The more complex code parts were tested manually using recorded video, or simulation files generated with a specially developed application. A working beta implementation of the complete system has been delivered as a proof of concept and all initially set requirements were fulfilled.