All Projects → ambakick → Person Detection And Tracking

ambakick / Person Detection And Tracking

Licence: mit
A tensorflow implementation with SSD model for person detection and Kalman Filtering combined for tracking

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Person Detection And Tracking

Traffic Sign Detection
Traffic Sign Detection. Code for the paper entitled "Evaluation of deep neural networks for traffic sign detection systems".
Stars: ✭ 200 (+3.63%)
Mutual labels:  artificial-intelligence, object-detection, convolutional-neural-networks
Self Driving Golf Cart
Be Driven 🚘
Stars: ✭ 147 (-23.83%)
Mutual labels:  artificial-intelligence, object-detection, convolutional-neural-networks
Deep Learning With Python
Deep learning codes and projects using Python
Stars: ✭ 195 (+1.04%)
Mutual labels:  artificial-intelligence, object-detection, convolutional-neural-networks
Deeppicar
Deep Learning Autonomous Car based on Raspberry Pi, SunFounder PiCar-V Kit, TensorFlow, and Google's EdgeTPU Co-Processor
Stars: ✭ 242 (+25.39%)
Mutual labels:  artificial-intelligence, opencv, convolutional-neural-networks
Multi Camera Live Object Tracking
Multi-camera live traffic and object counting with YOLO v4, Deep SORT, and Flask.
Stars: ✭ 375 (+94.3%)
Mutual labels:  object-detection, opencv, tracking
Trafficvision
MIVisionX toolkit is a comprehensive computer vision and machine intelligence libraries, utilities and applications bundled into a single toolkit.
Stars: ✭ 52 (-73.06%)
Mutual labels:  artificial-intelligence, object-detection, convolutional-neural-networks
Computervision Recipes
Best Practices, code samples, and documentation for Computer Vision.
Stars: ✭ 8,214 (+4155.96%)
Mutual labels:  artificial-intelligence, object-detection, convolutional-neural-networks
Leagueai
LeagueAI software framework for League of Legends that provides information about the state of the game based on Image Recognition using OpenCV and Pytorch.
Stars: ✭ 128 (-33.68%)
Mutual labels:  artificial-intelligence, object-detection, opencv
Abnormal event detection
Abnormal Event Detection in Videos using SpatioTemporal AutoEncoder
Stars: ✭ 139 (-27.98%)
Mutual labels:  opencv, convolutional-neural-networks
Deep Learning For Tracking And Detection
Collection of papers, datasets, code and other resources for object tracking and detection using deep learning
Stars: ✭ 1,920 (+894.82%)
Mutual labels:  object-detection, tracking
Yolov3 Object Detection With Opencv
This project implements a real-time image and video object detection classifier using pretrained yolov3 models.
Stars: ✭ 191 (-1.04%)
Mutual labels:  artificial-intelligence, object-detection
Image classifier
CNN image classifier implemented in Keras Notebook 🖼️.
Stars: ✭ 139 (-27.98%)
Mutual labels:  artificial-intelligence, convolutional-neural-networks
Wsddn
Weakly Supervised Deep Detection Networks (CVPR 2016)
Stars: ✭ 138 (-28.5%)
Mutual labels:  object-detection, convolutional-neural-networks
Image Caption Generator
[DEPRECATED] A Neural Network based generative model for captioning images using Tensorflow
Stars: ✭ 141 (-26.94%)
Mutual labels:  artificial-intelligence, convolutional-neural-networks
Intelegent lock
lock mechanism with face recognition and liveness detection
Stars: ✭ 134 (-30.57%)
Mutual labels:  opencv, convolutional-neural-networks
Deep Learning With Pytorch Tutorials
深度学习与PyTorch入门实战视频教程 配套源代码和PPT
Stars: ✭ 1,986 (+929.02%)
Mutual labels:  artificial-intelligence, convolutional-neural-networks
Monocular Visual Odometry
A simple monocular visual odometry (part of vSLAM) by ORB keypoints with initialization, tracking, local map and bundle adjustment. (WARNING: Hi, I'm sorry that this project is just tuned for course demo, not for real world applications !!!)
Stars: ✭ 147 (-23.83%)
Mutual labels:  opencv, tracking
Compactcnncascade
A binary library for very fast face detection using compact CNNs.
Stars: ✭ 152 (-21.24%)
Mutual labels:  object-detection, convolutional-neural-networks
Motbeyondpixels
Monocular multi-object tracking using simple and complementary 3D and 2D cues (ICRA 2018)
Stars: ✭ 155 (-19.69%)
Mutual labels:  object-detection, tracking
Iresnet
Improved Residual Networks (https://arxiv.org/pdf/2004.04989.pdf)
Stars: ✭ 163 (-15.54%)
Mutual labels:  artificial-intelligence, convolutional-neural-networks

Person-Detection-and-Tracking

Introduction

The Project is based on Person Detection and tracking and I am mainly focusing on the Person tracking, if you go through the output gif in the README.md or watch output.mp4 you will be able to see that each person will be provided with an idea as soon as he enters a frame and the number remains with his regardless of the detection happening in concurrent frames. So basically the project focuses on Person Detection and track him as long as he remains in the frame.

For executing

Run Person_det_track.py

Person_det_track.py detects and tracks the person using SSD and Kalman Filter

Requirements

Please try to Stick on with the version provided as much as possible other-wise you will face compatibility issues. I have used the best combination possible during the time of coding.

  • opencv [v3.1]

    • Installation in linux: For complete installation of opencv in ubuntu you can refer here.
    • Installation in windows For complete installation of opencv in windows you can refer here
  • Tensorflow [v1.5.0]

    • Installation Tensorflow has an amazing documentation here

Methodology / Approach

The method Proposed here is divided into 2 main parts

  • 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:

    • Extract feature maps, and
    • 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.
  • 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)

Performance of Code

  • The code was run on both CPU and GPU:
    • Nvidia Quadro 4000 - ~30FPS
    • Nvidia Jetson TX2 - ~20FPS
    • Intel i5 CPU - ~10FPS

Output

Alt Text

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.

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.

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.

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.

By Neeraj Menon

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].