BoT-SORT: Robust Associations Multi-Pedestrian Tracking
Nir Aharon, Roy Orfaig, Ben-Zion Bobrovsky
This repository contains an unofficial C++ implementation of BoT-SORT multi-pedestrian tracking algorithm.
This implementation has been tested on NVIDIA Jetson NX and it achieves real-time performance on 1080p videos.
YOLOv8-tracking, Official BoT-SORT and Official ByteTrack GitHub repositories were used as references.
- Implement BoT-SORT tracker
- Load parameters from config file
- Implement Re-ID model for BoT-SORT tracker using TensorRT
- Dockerize the project
- Re-ID performance analysis
- Re-ID model quantization
These results demonstrate the BoT-SORT tracker, implemented in this repository, utilizing MOT provided detections.
-
Install Docker and NVIDIA Container Toolkit
-
Clone the repository
git clone git@github.com:viplix3/BoTSORT-cpp.git cd BoTSORT-cpp
-
Build Docker image
./docker_build.sh
-
Run Docker container
./docker_run.sh
-
Build BoT-SORT tracker
cd /home/user/work/ mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc)
Example code for using the BoT-SORT tracker is provided in botsort_tracking_example.cpp The project by default builds the example code.
To test the example code, run the following command:
cd <project-root-dir>/build
./bin/botsort_tracking_example ../config/tracker.ini ../config/gmc.ini ../config/reid.ini ../assets/osnet_x0_25_market1501.onnx ../examples/data/MOT20-01.mp4 ../examples/data/det/det.txt ../output/
The performance of the BoT-SORT tracker, implemented in this repository, was evaluated on the MOT20 dataset. Details are provided in this document.
Sequence | Average Objects/Frame | Re-ID | Camera Motion Estimation | Motion Compensation | Kalman Filter | Algorithm Execution Time (ms) | Algorithm Execution FPS |
---|---|---|---|---|---|---|---|
MOT20-01 | 62 | ❌ | ✅ | ✅ | ✅ | 4.7771 | 209.3333 |
MOT20-01 | 62 | ❌ | ❌ | ✅ | ✅ | 0.2074 | 4819.2466 |
MOT20-01 | 62 | ❌ | ❌ | ❌ | ✅ | 0.2016 | 4959.9266 |
MOT20-05 | 226 | ❌ | ✅ | ✅ | ✅ | 6.6817 | 149.6633 |
MOT20-05 | 226 | ❌ | ❌ | ✅ | ✅ | 2.0498 | 487.9570 |
MOT20-05 | 226 | ❌ | ❌ | ❌ | ✅ | 2.0054 | 498.6453 |
Sequence | Avg Objects/image | Re-ID | Camera Motion Estimation | Motion Compensation | Kalman Filter | Algorithm Execution Time (ms) | Algorithm Execution FPS |
---|---|---|---|---|---|---|---|
MOT20-01 | 62 | ❌ | ✅ | ✅ | ✅ | 39.9968 | 25.0229 |
MOT20-01 | 62 | ❌ | ❌ | ✅ | ✅ | 2.6441 | 378.2070 |
MOT20-01 | 62 | ❌ | ❌ | ❌ | ✅ | 2.5185 | 397.0786 |
MOT20-05 | 226 | ❌ | ✅ | ✅ | ✅ | 52.4251 | 19.0749 |
MOT20-05 | 226 | ❌ | ❌ | ✅ | ✅ | 15.6337 | 63.9844 |
MOT20-05 | 226 | ❌ | ❌ | ❌ | ✅ | 14.7918 | 67.7275 |
The accuracy of the BoT-SORT tracker, implemented in this repository, was evaluated on the MOT20 train set. Details are provided in this document.