Skip to content

wish44165/YOLOv12-BoT-SORT-ReID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Strong Baseline: Multi-UAV Tracking via YOLOv12 with BoT-SORT-ReID

arXiv PyPI - Python Version Hugging Face Demo Colab Notebook Kaggle Notebook

DOI MSI Spartan

ResearchGate Medium YouTube

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

๐Ÿ—ž๏ธ News

๐Ÿš€ Quickstart: Installation and Demonstration

Colab Notebook Kaggle Notebook

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/

๐Ÿ› ๏ธ Implementation Details

Hardware Information

Laptop

Spartan

  • CPU: Intelยฎ Coreโ„ข i7-12650H
  • GPU: NVIDIA GeForce RTX 4050 Laptop GPU (6GB)
  • RAM: 23734MiB

HPC

Spartan

  • GPU: Spartan gpu-h100 (80GB), gpu-a100 (80GB)

๐Ÿ–ป Data Preparation

Officially Released

DOI

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

DOI

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

๐Ÿ“‚ Folder Structure

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

๐Ÿ”จ Reproduction

Details soon

โœจ Models

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

๐Ÿ“œ Citation

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}
}

๐Ÿ™ Acknowledgments

A large portion of the code is adapted from YOLOv12 and BoT-SORT. Thanks for their excellent work!