All Projects → Zhongdao → Towards Realtime Mot

Zhongdao / Towards Realtime Mot

Licence: mit
Joint Detection and Embedding for fast multi-object tracking

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to Towards Realtime Mot

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 (-1.44%)
Mutual labels:  tracking, tracking-by-detection
CrowdFlow
Optical Flow Dataset and Benchmark for Visual Crowd Analysis
Stars: ✭ 87 (-95.53%)
Mutual labels:  tracking, tracking-by-detection
UniTrack
[NeurIPS'21] Unified tracking framework with a single appearance model. It supports Single Object Tracking (SOT), Video Object Segmentation (VOS), Multi-Object Tracking (MOT), Multi-Object Tracking and Segmentation (MOTS), Pose Tracking, Video Instance Segmentation (VIS), and class-agnostic MOT (e.g. TAO dataset).
Stars: ✭ 293 (-84.96%)
Mutual labels:  tracking-by-detection, multi-object-tracker
Oblecto
Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.
Stars: ✭ 67 (-96.56%)
Mutual labels:  tracking
Instatrack
Convert Instagram user ID to username & vice versa
Stars: ✭ 70 (-96.41%)
Mutual labels:  tracking
Online learning
Online Learning for Human Detection in 3D Point Clouds
Stars: ✭ 97 (-95.02%)
Mutual labels:  tracking
Hyperlandmark
Deep Learning Based Free Mobile Real-Time Face Landmark Detector. Contact:[email protected]
Stars: ✭ 1,528 (-21.56%)
Mutual labels:  tracking
Find Maraudersmap
Internal positioning for everyone, in the style of Harry Potter
Stars: ✭ 62 (-96.82%)
Mutual labels:  tracking
Iros20 6d Pose Tracking
[IROS 2020] se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
Stars: ✭ 113 (-94.2%)
Mutual labels:  tracking
1hosts
DNS filter-/blocklists | safe. private. clean. browsing!
Stars: ✭ 85 (-95.64%)
Mutual labels:  tracking
Orgstat
Statistics visualizer for org-mode
Stars: ✭ 83 (-95.74%)
Mutual labels:  tracking
Memtrack
Code for "Learning Dynamic Memory Networks for Object Tracking"
Stars: ✭ 74 (-96.2%)
Mutual labels:  tracking
Hackvault
A container repository for my public web hacks!
Stars: ✭ 1,364 (-29.98%)
Mutual labels:  tracking
Siamvgg
SiamVGG: Visual Tracking with Deeper Siamese Networks
Stars: ✭ 69 (-96.46%)
Mutual labels:  tracking
Block
Let's make an annoyance free, better open internet, altogether!
Stars: ✭ 1,849 (-5.08%)
Mutual labels:  tracking
Mrs uav system
The entry point to the MRS UAV system.
Stars: ✭ 64 (-96.71%)
Mutual labels:  tracking
Jpdaf tracking
A tracker based on joint probabilistic data association filtering.
Stars: ✭ 107 (-94.51%)
Mutual labels:  tracking
Dfpm
DFPM is a browser extension for detecting browser fingerprinting.
Stars: ✭ 81 (-95.84%)
Mutual labels:  tracking
Odas web
A desktop visualization GUI for the ODAS library
Stars: ✭ 78 (-96%)
Mutual labels:  tracking
Awesome Quantified Self
📊 Websites, Resources, Devices, Wearables, Applications, and Platforms for Self Tracking
Stars: ✭ 1,315 (-32.49%)
Mutual labels:  tracking

Towards-Realtime-MOT

NEWS:

  • [2021.08.19] A pure C++ re-implementation by samylee. Helpful if you want to deploy JDE in your own project!
  • [2021.06.01] A nice re-implementation (and document) by Baidu PaddlePaddle team.
  • [2020.07.14] Our paper is accepted to ECCV 2020!
  • [2020.01.29] More models uploaded! The fastest one runs at around 38 FPS!.
  • [2019.10.11] Training and evaluation data uploaded! Please see DATASET_ZOO.md for details.
  • [2019.10.01] Demo code and pre-trained model released!

Introduction

This repo is the a codebase of the Joint Detection and Embedding (JDE) model. JDE is a fast and high-performance multiple-object tracker that learns the object detection task and appearance embedding task simutaneously in a shared neural network. Techical details are described in our ECCV 2020 paper. By using this repo, you can simply achieve MOTA 64%+ on the "private" protocol of MOT-16 challenge, and with a near real-time speed at 22~38 FPS (Note this speed is for the entire system, including the detection step! ) .

We hope this repo will help researches/engineers to develop more practical MOT systems. For algorithm development, we provide training data, baseline models and evaluation methods to make a level playground. For application usage, we also provide a small video demo that takes raw videos as input without any bells and whistles.

Requirements

  • Python 3.6
  • Pytorch >= 1.2.0
  • python-opencv
  • py-motmetrics (pip install motmetrics)
  • cython-bbox (pip install cython_bbox)
  • (Optional) ffmpeg (used in the video demo)
  • (Optional) syncbn (compile and place it under utils/syncbn, or simply replace with nn.BatchNorm here)
  • maskrcnn-benchmark (Their GPU NMS is used in this project)

Video Demo

Usage:

python demo.py --input-video path/to/your/input/video --weights path/to/model/weights
               --output-format video --output-root path/to/output/root

Docker demo example

docker build -t towards-realtime-mot docker/

docker run --rm --gpus all -v $(pwd)/:/Towards-Realtime-MOT -ti towards-realtime-mot /bin/bash
cd /Towards-Realtime-MOT;
python demo.py --input-video path/to/your/input/video --weights path/to/model/weights
               --output-format video --output-root path/to/output/root

Dataset zoo

Please see DATASET_ZOO.md for detailed description of the training/evaluation datasets.

Pretrained model and baseline models

Darknet-53 ImageNet pretrained model: [DarkNet Official]

Trained models with different input resolutions:

Model MOTA IDF1 IDS FP FN FPS Link
JDE-1088x608 73.1 68.9 1312 6593 21788 22.2 [Google] [Baidu]
JDE-864x480 70.8 65.8 1279 5653 25806 30.3 [Google] [Baidu]
JDE-576x320 63.7 63.3 1307 6657 32794 37.9 [Google] [Baidu]

The performance is tested on the MOT-16 training set, just for reference. Running speed is tested on an Nvidia Titan Xp GPU. For a more comprehensive comparison with other methods you can test on MOT-16 test set and submit a result to the MOT-16 benchmark. Note that the results should be submitted to the private detector track.

Test on MOT-16 Challenge

python track.py --cfg ./cfg/yolov3_1088x608.cfg --weights /path/to/model/weights

By default the script runs evaluation on the MOT-16 training set. If you want to evaluate on the test set, please add --test-mot16 to the command line. Results are saved in text files in $DATASET_ROOT/results/*.txt. You can also add --save-images or --save-videos flags to obtain the visualized results. Visualized results are saved in $DATASET_ROOT/outputs/

Training instruction

  • Download the training datasets.
  • Edit cfg/ccmcpe.json, config the training/validation combinations. A dataset is represented by an image list, please see data/*.train for example.
  • Run the training script:
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python train.py 

We use 8x Nvidia Titan Xp to train the model, with a batch size of 32. You can adjust the batch size (and the learning rate together) according to how many GPUs your have. You can also train with smaller image size, which will bring faster inference time. But note the image size had better to be multiples of 32 (the down-sampling rate).

Train with custom datasets

Adding custom datsets is quite simple, all you need to do is to organize your annotation files in the same format as in our training sets. Please refer to DATASET_ZOO.md for the dataset format.

Related Resources

  • FairMOT: An improved method based on the JDE framework, SOTA performance.
  • CSTrack: Better disentangled detection/embedding heads for JDE.
  • JDE-Paddle: A nice re-implementation (and document) by Baidu PaddlePaddle team.
  • JDE-CPP: A pure C++ re-implementation by samylee. Helpful if you want to deploy JDE in your own project!

Acknowledgement

A large portion of code is borrowed from ultralytics/yolov3 and longcw/MOTDT, many thanks to their wonderful work!

Citation

If you find this repo useful in your project or research, please consider citing it:

@article{wang2019towards,
  title={Towards Real-Time Multi-Object Tracking},
  author={Wang, Zhongdao and Zheng, Liang and Liu, Yixuan and Wang, Shengjin},
  journal={arXiv preprint arXiv:1909.12605},
  year={2019}
}
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].