/Multi-Camera-Object-Tracking

Track an object across a CCTV Network with non-overlapping camera views.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Multi-Camera-Object-Tracking

Track an object across a CCTV Network with non-overlapping camera views.

ani-gif

Chopiness is due to a low framerate camera being used to record CCTV Footage

FULL DEMO

Table of Contents

       

Dependencies

  • Directions in /DEPENDENCIES folder
  • opencv and opencv_contrib
  • numpy
  • PyTorch
  • matplotlib

How it works

When a tracking subject is selected by the user, they are "remembered" by the algorithm. While in the view of a single camera, the subject is tracked using a general object tracking algorithm from OpenCV. When the subject has left the view of a given camera, the surrounding cameras are searched for the tracking subject using the user's initial selection as a reference. Once the algorithm identifies the tracking subject in new camera, single camera tracking resumes. The algorithm outputs a

Algorithm Flowchart

algorithm-flowchart

Output

The algorithm outputs a video of the tracking subject travelling through the network with a bounding box around them. Below, are still frames from the output video produced on our sample footage.

cam2

cam3

Inputting information about the Camera Network

The algorithm relies on a user-inputted "map" of the camera network (showing relative location and camera adjacency) entered here:

camera-gui

The user can "place" cameras in placement mode, then indicate the adjacency through the "connections" in connection mode.

Authors