A Distributed Approach to Interactive Surveillance Using a UAV Mounted Camera Network Multi-Camera surveillance systems have become a modern trend in many fields both for research and for the industry. These systems are being increasingly used to enhance safety and security in public places such as parks, airports, and banks, as well as in restricted areas like government and military facilities. Furthermore, the possibility to mount cameras on Unmanned Aerial Vehicles (UAVs) extends the capabilities of these surveillance systems to a whole new level. Indeed, the employment of flying cameras allow for a substantial reconfigurability of the network and enable for new perspectives on the environment and wider coverage.
Project Abstract
The aim of this project is to find a possible solution to the Interactive Surveillance problem using multiple UAV mounted cameras, from a top down perspective, in known environments. The coordinated patrolling problem is approached in a distributed fashion using a Bayesian-based Greedy algorithm with State Exchange. The results of this strategy are compared in restricted environments with the optimal paths obtained through linear programming. Furthermore, the overall performance is evaluated on large scale environments, where the optimal problem becomes infeasible. Kalmanβs theory is employed to implement a smart target tracking algorithm with camera zoom control optimized for target containment and information loss minimization. Several simulations are performed tracking a target with different trajectory models and varying the sampling frequency of the filter and the accuracy of the detection. Finally, the robustness of such an algorithm to measurement errors and camera failures is put to the test.
For the technical results complete dissertation and the detailed description of the adopted strategies you can refer to the Project Report π.
Working Simulation
The results achieved with this project can be clearly appreciated in the following simulation. Indeed, the Interactive Sourveillance task performed by our UAV mounted camera system can be divided in 4 steps:
- All the agents (:full_moon:) of the camera network patroll the environment sharing information to autonomously select the most suitable direction to follow
- An intruder (:red_circle:) enters the environment and it is soon detected from one of our UAV cameras (:full_moon: -> :large_blue_circle:)
- The camera begins the tracking task adjusting the zoom (:black_square_button: size) managing the tradeoff between tracking robustness and information gathering
- On target loss the tracking camera returns to the tracking task (:large_blue_circle: -> :full_moon:), asking for the support of other UAVs in order to maximize the probability of tracking recovery
Project Organization
.
βββ Data/ : Contains precompiled environments
βββ src/ : Contains media resources
βββ Camera.m : Class defining a UAV camera object
βββ Environment.m : Class defining the environment
βββ BLP.m : Routine to test the Binary Linear Programming solution to the patrolling problem
βββ Optimal_zoom.m : Routine to test the smart zoom feature
βββ SEBS.m : Routine to test the distributed approach to the patrolling problem
βββ Simulation.m : Routine to test the complete system on large scale environments
βββ Simulation_preprocessing.m : Defines the Simulation parameters
βββ Tracking_Control.m : Routine to test the UAV movement system during the tracking task
βββ Tracking_indices.m : Routine to the tracking robustness
βββ control.slx : Simulink scheme for the UAV movement control system
βββ envCell.m : Function for environment cellularization
βββ envEdges.m : Function defining the allowed movement in the cellularized environment
βββ getAllCycles.m : Function returning all possible simple cycles given a set of edges from a connected graph
βββ getPID.p : Private function returning the PID gains according to the Bode's method
βββ getPID.m : Header of getPID.p
βββ kalman.m : Function implementing the one step ahead Kalman filter
βββ remapEdges.m : Function returning the set of edges associated to the connected components of a graph
βββ splitCycles.m : Function splitting a cycle in all its sub-paths
βββ bargellesi_et_al_2020.pdf : Project Report
βββ README.md : Project Summary
A work in collaboration with Luca Facin and Lorenzo Marchini.