ifzhang /ByteTrack

[ECCV 2022] ByteTrack: Multi-Object Tracking by Associating Every Detection Box

★ 6,791⑂ 1,155👁 47⑃ 64● 394▤ 0
PythonCreated 2021-08-27
6,791
stars
+0+1+55
1,155
forks
47
watchers
64
prs
394
issues
0
releases
–
discussions

README

ByteTrack





 ByteTrack is a simple, fast and strong multi-object tracker.



 ByteTrack: Multi-Object Tracking by Associating Every Detection Box
 
 Yifu Zhang, Peize Sun, Yi Jiang, Dongdong Yu, Fucheng Weng, Zehuan Yuan, Ping Luo, Wenyu Liu, Xinggang Wang
 
 arXiv 2110.06864

 Demo Links
| Google Colab Demo | Huggingface Demo |                  YouTube Tutorial                   | Original Paper: ByteTrack |
|:-----------------:|:----------------:|:---------------------------------------------------:|:-------------------------:|
||||arXiv 2110.06864 |
 Integrated to Huggingface Spaces with Gradio.


 Abstract
Multi-object tracking (MOT) aims at estimating bounding boxes and identities of objects in videos. Most methods obtain identities by associating detection boxes whose scores are higher than a threshold. The objects with low detection scores, e.g. occluded objects, are simply thrown away, which brings non-negligible true object missing and fragmented trajectories. To solve this problem, we present a simple, effective and generic association method, tracking by associating every detection box instead of only the high score ones. For the low score detection boxes, we utilize their similarities with tracklets to recover true objects and filter out the background detections. When applied to 9 different state-of-the-art trackers, our method achieves consistent improvement on IDF1 scores ranging from 1 to 10 points. To put forwards the state-of-the-art performance of MOT, we design a simple and strong tracker, named ByteTrack. For the first time, we achieve 80.3 MOTA, 77.3 IDF1 and 63.1 HOTA on the test set of MOT17 with 30 FPS running speed on a single V100 GPU.


 News
 (2022.07) Our paper is accepted by ECCV 2022!
 (2022.06) A nice re-implementation by Baidu PaddleDetection!

 Tracking performance
 Results on MOT challenge test set
| Dataset    |  MOTA | IDF1 | HOTA | MT | ML | FP | FN | IDs | FPS |
|------------|-------|------|------|-------|-------|------|------|------|------|
|MOT17       | 80.3 | 77.3 | 63.1 | 53.2% | 14.5% | 25491 | 83721 | 2196 | 29.6 |
|MOT20       | 77.8 | 75.2 | 61.3 | 69.2% | 9.5%  | 26249 | 87594 | 1223 | 13.7 |

 Visualization results on MOT challenge test set
   
   

 Installation
 1. Installing on the host machine
Step1. Install ByteTrack.
shell
git clone https://github.com/ifzhang/ByteTrack.git
cd ByteTrack
pip3 install -r requirements.txt
python3 setup.py develop


Step2. Install pycocotools.

shell
pip3 install cython; pip3 install 'git+https://github.com/cocodataset/cocoapi.gitsubdirectory=PythonAPI'


Step3. Others
shell
pip3 install cython_bbox

 2. Docker build
shell
docker build -t bytetrack:latest .

 Startup sample
mkdir -p pretrained && \
mkdir -p YOLOX_outputs && \
xhost +local: && \
docker run --gpus all -it --rm \
-v $PWD/pretrained:/workspace/ByteTrack/pretrained \
-v $PWD/datasets:/workspace/ByteTrack/datasets \
-v $PWD/YOLOX_outputs:/workspace/ByteTrack/YOLOX_outputs \
-v /tmp/.X11-unix/:/tmp/

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON