# BoTSORT-cpp **Repository Path**: aijle_admin/BoTSORT-cpp ## Basic Information - **Project Name**: BoTSORT-cpp - **Description**: BoTSORT-cpp镜像 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-24 - **Last Updated**: 2024-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BoT-SORT: Unofficial C++ Implementation > [**BoT-SORT: Robust Associations Multi-Pedestrian Tracking**](https://arxiv.org/abs/2206.14651) > > Nir Aharon, Roy Orfaig, Ben-Zion Bobrovsky ## Description 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](https://github.com/mikel-brostrom/yolov8_tracking), [Official BoT-SORT](https://github.com/NirAharon/BoT-SORT) and [Official ByteTrack](https://github.com/ifzhang/ByteTrack) GitHub repositories were used as references. ## TODO - [x] Implement BoT-SORT tracker - [x] Load parameters from config file - [x] Implement Re-ID model for BoT-SORT tracker using TensorRT - [x] Dockerize the project - [ ] Re-ID performance analysis - [ ] Re-ID model quantization ## Preview of Results These results demonstrate the BoT-SORT tracker, implemented in this repository, utilizing MOT provided detections. [![MOT20-01](assets/MOT20-01.gif)](assets/MOT20-01.gif) [More Result Videos](https://www.youtube.com/watch?v=elQrRxFKxno&list=PL4tNOKTSVsFArSjEoLXLNywmmIbQTvBs1) ## Installation Guide 1. Install [Docker](https://docs.docker.com/engine/install/ubuntu/) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) 2. Clone the repository ```bash git clone git@github.com:viplix3/BoTSORT-cpp.git cd BoTSORT-cpp ``` 3. Build Docker image ```bash ./docker_build.sh ``` 4. Run Docker container ```bash ./docker_run.sh ``` 5. Build BoT-SORT tracker ```bash cd /home/user/work/ mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) ``` ## Usage Example code for using the BoT-SORT tracker is provided in [botsort_tracking_example.cpp](examples/botsort_tracking_example.cpp) The project by default builds the example code. To test the example code, run the following command: ```bash cd /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/ ``` ## Performance Analysis The performance of the BoT-SORT tracker, implemented in this repository, was evaluated on the MOT20 dataset. Details are provided in [this](docs/PerformanceReport.md) document. ### **Execution time of different modules (Host Machine, Release Build, Best of 3)** | 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 | ### **Execution time of different modules (Jetson-NX, Release Build, Best of 3)** | 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 | ## Accuracy Analysis The accuracy of the BoT-SORT tracker, implemented in this repository, was evaluated on the MOT20 train set. Details are provided in [this](docs/AccuracyReport.md) document.