People Detection and Tracking (SSD + Kalman Filtering)

Neeraj Menon

Neeraj Menon

Coimbatore, Tamil Nadu

1 0
  • 0 Collaborators

The Project focuses on a real time robust human detection and tracking system for video surveillance which can be used in varying environments. This system consists of human detection, human tracking and false object detection ...learn more

Project status: Published/In Market

Internet of Things, Artificial Intelligence

Groups
Internet of Things, Artificial Intelligence Europe, Artificial Intelligence India, Student Developers for AI, DeepLearning

Code Samples [1]

Overview / Usage

The system consist of two parts first human detection and secondly tracking. Early research is biased to human recognition rather than tracking. Monitoring the movements of human being raised the need for tracking. Monitoring movements are of high interest in determining the activities of a person and knowing the attention of person. This project focuses on Person Detection and tracking.

  1. Identity retrieval - Tracking of human being can be used as a prior step in biometric face recognition. Keeping continuous track
    of person will allow to identify person at any time. Thus even if his face identification is not possible at a particular set of frames
    his identity can be found out. This can be very useful in the case of anomaly detection as the person's face may not face to the
    camera when an anomaly is detected. So with the help of tracking his identity can be revealed.

  2. Reducing the computation power requirement - A normal objection detection algorithm just detects the Person but do not
    assign an Id for an Person thus has to be run in every frame to get the bounding box. Tracking will help to reduce the number of
    times the Detection algorithm has to be run i.e instead of running the Detection algorithm every frame we can run it once in
    every 5 frames.

  3. Object Detection model failure compensation - there might be some poses where SSD may not detect the person. Even occlusion can affect the detector to a significant level that is where tracking algorithm can be of great help to us.

Methodology / Approach

The method Proposed here is divided into 2 main parts

  1. Person Detection - The person detection in Real-time is done with the help of Single Shot MultiBox Detector. SSD achieves 75.1%
    mAP, outperforming a comparable state of the art Faster R-CNN model. and the SSD model is available in the Tensorflow detection
    zoo. The seamless integration of SSD with tensorflow helps in further optimization and implementation of the algorithm.
    The SSD object detection composes of 2 parts:
    (i) Extract feature maps, and
    (ii) Apply convolution filters to detect objects.

Even though SSD is capable of detecting multiple objects in the frame, in this project I limited its detection to just human.

  1. Person Tracking - Bounding box can be achieved around the object/person by running the Object Detection model in every frame, but this is computationally expensive.

The tracking algorithm used here is Kalman Filtering . The Kalman Filter has long been regarded as the optimal solution to many tracking and data prediction tasks. Its use in the analysis of visual motion. The purpose of Filtering is to extract the required information from a signal, ignoring everything else. In this project the Kalman Filter is fed with the velocity, position and direction of the person which helps it to predict the future location of the Person based on his previous data.

The tracking part still faces some problem at the time of an occlusion. (Working on it)

Technologies Used

Implemented on Nvidia Jetson TX2 (~20FPS)
Implemented Quadro 4000 power PC (~30FPS)
Tensorflow (Single Shot Detection Implementation)
Kalman Filtering (For tracking the person)
OpenCV(Library)

Repository

https://github.com/ambakick/Person-Detection-and-Tracking

Comments (0)