All Projects → bendidi → Tracking With Darkflow

bendidi / Tracking With Darkflow

Licence: gpl-3.0
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Tracking With Darkflow

Tracking-with-darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 522 (+1.36%)
Mutual labels:  tracker, real-time, sort, yolo, darknet, mobile-development, yolo2
Deepstream Yolo
NVIDIA DeepStream SDK 5.1 configuration for YOLO models
Stars: ✭ 166 (-67.77%)
Mutual labels:  object-detection, deep-neural-networks, yolo, darknet
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+183.5%)
Mutual labels:  object-detection, convolutional-neural-networks, image-processing, real-time
Caffe2 Ios
Caffe2 on iOS Real-time Demo. Test with Your Own Model and Photos.
Stars: ✭ 221 (-57.09%)
Mutual labels:  object-detection, deep-neural-networks, yolo, real-time
Yolo Tf2
yolo(all versions) implementation in keras and tensorflow 2.4
Stars: ✭ 695 (+34.95%)
Mutual labels:  object-detection, deep-neural-networks, yolo, image-processing
Dmsmsgrcg
A photo OCR project aims to output DMS messages contained in sign structure images.
Stars: ✭ 18 (-96.5%)
Mutual labels:  object-detection, convolutional-neural-networks, yolo, image-processing
Yolo tensorflow
🚖 Object Detection (YOLOv1) implentation in tensorflow, with training, testing and video features.
Stars: ✭ 45 (-91.26%)
Mutual labels:  object-detection, convolutional-neural-networks, yolo, real-time
Easy Yolo
Yolo (Real time object detection) model training tutorial with deep learning neural networks
Stars: ✭ 98 (-80.97%)
Mutual labels:  object-detection, yolo, darknet, real-time
VideoRecognition-realtime-autotrainer-alerts
State of the art object detection in real-time using YOLOV3 algorithm. Augmented with a process that allows easy training of the classifier as a plug & play solution . Provides alert if an item in an alert list is detected.
Stars: ✭ 36 (-93.01%)
Mutual labels:  real-time, yolo, darknet, yolo2
Traffic Sign Detection
Traffic Sign Detection. Code for the paper entitled "Evaluation of deep neural networks for traffic sign detection systems".
Stars: ✭ 200 (-61.17%)
Mutual labels:  object-detection, deep-neural-networks, convolutional-neural-networks
Yolo Tf
TensorFlow implementation of the YOLO (You Only Look Once)
Stars: ✭ 200 (-61.17%)
Mutual labels:  object-detection, yolo, yolo2
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (-60.78%)
Mutual labels:  object-detection, yolo, darknet
Viseron
Self-hosted NVR with object detection
Stars: ✭ 192 (-62.72%)
Mutual labels:  object-detection, yolo, darknet
Map
mean Average Precision - This code evaluates the performance of your neural net for object recognition.
Stars: ✭ 2,324 (+351.26%)
Mutual labels:  object-detection, yolo, darknet
Computer Vision Guide
📖 This guide is to help you understand the basics of the computerized image and develop computer vision projects with OpenCV. Includes Python, Java, JavaScript, C# and C++ examples.
Stars: ✭ 244 (-52.62%)
Mutual labels:  object-detection, deep-neural-networks, image-processing
Color Tracker
Color tracking with OpenCV
Stars: ✭ 128 (-75.15%)
Mutual labels:  object-detection, image-processing, tracker
Mxnet Yolo
YOLO: You only look once real-time object detector
Stars: ✭ 240 (-53.4%)
Mutual labels:  object-detection, yolo, yolo2
Yolo2 Pytorch
PyTorch implementation of the YOLO (You Only Look Once) v2
Stars: ✭ 426 (-17.28%)
Mutual labels:  object-detection, deep-neural-networks, yolo2
Realtime object detection
Plug and Play Real-Time Object Detection App with Tensorflow and OpenCV. No Bugs No Worries. Enjoy!
Stars: ✭ 260 (-49.51%)
Mutual labels:  object-detection, deep-neural-networks, real-time
darkflow
Translate darknet to tensorflow. Load trained weights, retrain/fine-tune using tensorflow, export constant graph def to mobile devices
Stars: ✭ 5,986 (+1062.33%)
Mutual labels:  real-time, darknet, mobile-development

Intro

The purpose of this little project is to add object tracking to yolov2 and achieve real-time multiple object tracking.

The current architecture is set to only track one type of objects, but it should be easy to generalise over all objects.

Currently support people tracking (as the provided weights for deep_sort were trained on people tracking)

Dependencies

python
numpy
opencv 3
tensorflow 1.0
Cython.
sklean.

for using sort :

scikit-learn

scikit-image

FilterPy

Setup

1 - Clone this repository : git clone https://github.com/bendidi/Tracking-with-darkflow.git

2 - Initialize all submodules: git submodule update --init --recursive

3 - Go to darkflow directory and do in place build: python3 setup.py build_ext --inplace

Getting started

Download the weights :

Read more about YOLO (in darknet) and download weight files here,In case the weight file cannot be found, thtrieu has uploaded some of his here, which include yolo-full and yolo-tiny of v1.0, tiny-yolo-v1.1 of v1.1 and yolo, tiny-yolo-voc of v2.

The artchitecture I used/tested in this project is cfg/yolo.cfg with the weights bin/yolo.weights.

Next you need to download the deep_sort weights here (networks folder), provided by nwojke

The deep_sort weights provided by nwojke has been cancelled. you can get them from here instead ( thanks to @louxy126 )

extract the folder and copy it to deep_sort/resources

Edit Flags in run.py following your configuration :

  • demo : path to video file to use, set to "camera" if you wish to use your camera

  • model : what model configuration to use for YOLO, you can get more information and .cfg files in here(put them in darkflow/cfg/ folder)

  • load : The corresponding weights to use with the chosen model (put them in darkflow/bin/) more info in here

  • threshold : the confidance threshold of the YOLO detections

  • gpu : How much GPU to use, 0 means use cpu

  • track : to activate tracking or Not

  • trackObj: which objects to track as a list (notice that deep_sort's encoder was only trained on people , so you need train your own encoder, more information in here)

  • saveVideo : whether to save video or not

  • BK_MOG : add opencv's MOG background subtraction module, only useful when YOLO can't detect people in a video (low quality, ...) use it to detect boxes around moving objects

  • tracker : which tracker to use : "deep_sort" or "sort"

          **NOTE** : "deep_sort" only supports people tracking as it was only trained to track people(the code for training is not yet published)
    
          **TODO** : add support for GOTURN tracker(tensorflow implementation)
    
          **TODO** : add support for opencv trackers (MIL,KCF,TLD,MEDIANFLOW)
    
  • skip : skip frames to increase fps, might decrease accuracy !

  • csv : save csv file of detections in the format (frame_id,object_id,x,y,w,h)

  • display : display video while processing or Not

Next you just have to run python run.py, and enjoy !

Some numbers :

`speed using yolo.cfg:

YOLO with track Flag set to False : 30fps

YOLO with track Flag set to True (deep_sort) : 14 fps

YOLO with track and background subtraction Flags set to True : 10.5 fps

Tests done on (1024, 1280, 3) resolution video on Nvidia GTX 1080

skipping up to 3 frames allows for more speed up while keeping accuracy of tracking`

Disclamer :

this project is using code forked from:

thtrieu/darkflow: for the real-time object detections and classifications.

nwojke/deep_sort: for Simple Online Realtime Tracking with a Deep Association Metric.

Please follow the links to get an understanding of all the features of each project.

Citation

Yolov2 :

@article{redmon2016yolo9000,
  title={YOLO9000: Better, Faster, Stronger},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1612.08242},
  year={2016}
}

deep_sort :

@article{Wojke2017simple,
  title={Simple Online and Realtime Tracking with a Deep Association Metric},
  author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},
  journal={arXiv preprint arXiv:1703.07402},
  year={2017}
}

sort :

@inproceedings{Bewley2016_sort,
  author={Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben},
  booktitle={2016 IEEE International Conference on Image Processing (ICIP)},
  title={Simple online and realtime tracking},
  year={2016},
  pages={3464-3468},
  keywords={Benchmark testing;Complexity theory;Detectors;Kalman filters;Target tracking;Visualization;Computer Vision;Data Association;Detection;Multiple Object Tracking},
  doi={10.1109/ICIP.2016.7533003}
}
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].