This repository provides a strong baseline for multi-UAV tracking in thermal infrared videos by leveraging YOLOv12 and BoT-SORT with ReID. Our method provides a significant boost over the well-established YOLOv5 with the DeepSORT combination, offering a high-performance starting point for UAV swarm tracking.
๐น Preview:
strong_baseline.webm
๐ Full video available at: Track 3
๐ See also SOT inferences: Track 1 and Track 2
๐ CVPR2025 | Workshops | 4th Anti-UAV Workshop | Track-1 | Track-2 | Track-3
- April 13, 2025: The datasets presented in Table 2 of the paper are now available.
- April 7, 2025: Our paper is now on arXiv.
- ๐ฅ Demos: Hugging Face | YouTube
- ๐ Quickstart: Colab Notebook | Kaggle Notebook
- ๐ Project Page: Link
Installation
$ conda create -n yolov12_botsort python=3.11 -y
$ conda activate yolov12_botsort
$ git clone https://github.com/wish44165/YOLOv12-BoT-SORT-ReID.git
$ cd YOLOv12-BoT-SORT-ReID/BoT-SORT/yolov12/
$ wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
$ pip install -r requirements.txt
$ pip install -e .
$ cd ../
$ pip3 install torch torchvision torchaudio
$ pip3 install -r requirements.txt
$ python3 setup.py develop
$ pip3 install cython; pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
$ pip3 install cython_bbox
$ pip3 install faiss-cpu
Folder Structure
YOLOv12-BoT-SORT-ReID/
โโโ data/
โย ย โโโ demo/
โย ย ย ย โโโ MOT/
โย ย ย ย โย ย โโโ Test_imgs/
โย ย ย ย โย ย โย ย โโโ MultiUAV-003/
โย ย ย ย โย ย โย ย โโโ MultiUAV-135/
โย ย ย ย โย ย โย ย โโโ MultiUAV-173/
โย ย ย ย โย ย โย ย โโโ MultiUAV-261/
โย ย ย ย โย ย โโโ TestLabels_FirstFrameOnly/
โย ย ย ย โย ย โโโ MultiUAV-003.txt
โย ย ย ย โย ย โโโ MultiUAV-135.txt
โย ย ย ย โย ย โโโ MultiUAV-173.txt
โย ย ย ย โย ย โโโ MultiUAV-261.txt
โย ย ย ย โโโ SOT/
โย ย ย ย โโโ Track1/
โย ย ย ย โย ย โโโ 20190926_111509_1_8/
โย ย ย ย โย ย โโโ 41_1/
โย ย ย ย โย ย โโโ new30_train-new/
โย ย ย ย โย ย โโโ wg2022_ir_050_split_01/
โย ย ย ย โโโ Track2/
โย ย ย ย โโโ 02_6319_0000-1499/
โย ย ย ย โโโ 3700000000002_110743_1/
โย ย ย ย โโโ DJI_0057_1/
โย ย ย ย โโโ wg2022_ir_032_split_04/
โโโ BoT-SORT/
Demonstration
$ cd BoT-SORT/
# Track 1
$ python3 tools/predict_track1.py --weights ./yolov12/weights/SOT_yolov12l.pt --source ../data/demo/SOT/Track1/ --img-size 640 --device "0" --conf-thres 0.01 --iou-thres 0.01 --track_high_thresh 0.1 --track_low_thresh 0.01 --fuse-score --agnostic-nms --min_box_area 4 --save_path_answer ./submit/track1/demo --hide-labels-name
# output: ./runs/detect/, ./submit/track1/demo/
# Track 2
$ python3 tools/predict_track2.py --weights ./yolov12/weights/SOT_yolov12l.pt --source ../data/demo/SOT/Track2/ --img-size 640 --device "0" --conf-thres 0.01 --iou-thres 0.01 --track_high_thresh 0.1 --track_low_thresh 0.01 --fuse-score --agnostic-nms --min_box_area 1 --save_path_answer ./submit/track2/demo --hide-labels-name
# output: ./runs/detect/, ./submit/track2/demo/
# Track 3
$ python3 tools/predict_track3.py --weights ./yolov12/weights/MOT_yolov12n.pt --source ../data/demo/MOT/ --img-size 1600 --device "0" --track_buffer 60 --save_path_answer ./submit/track3/demo --hide-labels-name
# output: ./runs/detect/, ./submit/track3/demo/
# Heatmap
$ cd yolov12/
$ python heatmap.py
# output: ./outputs/
Hardware Information
- CPU: Intelยฎ Coreโข i7-12650H
- GPU: NVIDIA GeForce RTX 4050 Laptop GPU (6GB)
- RAM: 23734MiB
- GPU: Spartan gpu-h100 (80GB), gpu-a100 (80GB)
Officially Released
4th_Anti-UAV_Challenge/
โโโ baseline/
โย ย โโโ Baseline_code.zip
โย ย โโโ MultiUAV_Baseline_code_and_submissi.zip
โโโ test/
โย ย โโโ MultiUAV_Test.zip
โย ย โโโ track1_test.zip
โย ย โโโ track2_test.zip
โโโ train/
โโโ MultiUAV_Train.zip
โโโ train.zip
Strong Baseline
train/
โโโ MOT/
โย ย โโโ AntiUAV_train_val.zip
โโโ ReID/
โย ย โโโ MOT20_subset.zip
โย ย โโโ MOT20.zip
โโโ SOT/
โโโ AntiUAV_train_val_test.zip
โโโ AntiUAV_train_val.zip
Enhancement
Details soon
Follow the folder structure below to ensure smooth execution and easy navigation.
YOLOv12-BoT-SORT-ReID/
โโโ BoT-SORT/
โย ย โโโ datasets/
โย ย โย ย โโโ README.md
โย ย โโโ fast_reid/
โย ย โย ย โโโ datasets/
โย ย โย ย ย ย โโโ generate_mot_patches.py
โย ย โย ย ย ย โโโ README.md
โย ย โโโ logs/
โย ย โย ย โโโ README.md
โย ย โโโ requirements.txt
โย ย โโโ runs/
โย ย โย ย โโโ README.md
โย ย โโโ submit/
โย ย โย ย โโโ README.md
โย ย โโโ tools/
โย ย โย ย โโโ predict_track1.py
โย ย โย ย โโโ predict_track2.py
โย ย โย ย โโโ predict_track3.py
โย ย โโโ yolov12/
โย ย โโโ heatmap.py
โย ย โโโ imgs_dir/
โย ย โย ย โโโ 00096.jpg
โย ย โย ย โโโ 00379.jpg
โย ย โย ย โโโ 00589.jpg
โย ย โย ย โโโ 00643.jpg
โย ย โโโ requirements.txt
โย ย โโโ weights/
โย ย โโโ MOT_yolov12n.pt
โย ย โโโ SOT_yolov12l.pt
โโโ data/
โย ย โโโ demo/
โย ย โโโ MOT/
โย ย โย ย โโโ README.md
โย ย โโโ SOT/
โย ย โโโ README.md
โโโ LICENSE
โโโ README.md
Details soon
Model | size (pixels) |
mAPval 50-95 |
params (M) |
FLOPs (G) |
---|---|---|---|---|
SOT_yolov12l.pt | 640 | 67.2 | 26.3 | 88.5 |
MOT_yolov12n.pt | 1600 | 77.7 | 2.6 | 6.3 |
If you find this project helpful for your research or applications, we would appreciate it if you could give it a star and cite the paper.
@article{chen2025strong,
title={Strong Baseline: Multi-UAV Tracking via YOLOv12 with BoT-SORT-ReID},
author={Chen, Yu-Hsi},
journal={arXiv preprint arXiv:2503.17237},
year={2025}
}
A large portion of the code is adapted from YOLOv12 and BoT-SORT. Thanks for their excellent work!