Implementation of paper - [Article Title]{RC-SODet: A Re-parameterized Multi-scale Compact Feature Extraction Model for Small Object Detection](-)
MS VisDrone
| Model | Test Size | APval | AP50val | AP50-95val | Param. | FLOPs |
|---|---|---|---|---|---|---|
| RC-SODet-T | 640 | 46.3% | 33.3% | 34.5% | 4.2M | 21.5G |
| RC-SODet-S | 640 | 52.6% | 39.5% | 41.3% | 16.0M | 80.1G |
| RC-SODet-M | 640 | 57.9% | 43.5% | 46.1% | 40.30M | 179.2G |
| RC-SODet-C | 640 | 59.2% | 45.7% | 48.1% | 65.7M | 355.1G |
conda create -n RC-SODet python=3.11
conda activate RC-SODet
pip install -r requirements.txtRC-SODet-T.pt RC-SODet-S.pt RC-SODet-M.pt RC-SODet-C.pt
# evaluate converted yolov9 models
python val_dual.py --data data/VisDrone.yaml --img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 --weights '.RC-SODet-C.pt' --save-json --name RC-SODet-C_640_val
# evaluate yolov9 models
# python val_dual.py --data data/VisDrone.yaml --img 640 --batch 4 --conf 0.001 --iou 0.7 --device 0 --weights '.RC-SODet-C.pt' --save-json --name RC-SODet-C_640_val
## Training
Data preparation
https://docs.ultralytics.com/datasets/detect/visdrone/#what-are-the-main-subsets-of-the-visdrone-dataset-and-their-applications
Single GPU training
``` shell
# train SDO-RepCIN models
python train_dual.py --workers 8 --device 0 --batch 4 --data data/VisDrone.yaml --img 640 --cfg models/detect/RC-SODett.yaml --weights '' --name RC-SODett --hyp hyp.scratch-high.yaml --min-items 0 --epochs 200 --close-mosaic 15
# train gelan models
# python train.py --workers 8 --device 0 --batch 32 --data data/coco.yaml --img 640 --cfg models/detect/gelan-c.yaml --weights '' --name gelan-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15Multiple GPU training
# train RC-SODetc models
python -m torch.distributed.launch --nproc_per_node 8 --master_port 9527 train_dual.py --workers 8 --device 0,1,2,3,4,5,6,7 --sync-bn --batch 128 --data data/VisDrone.yaml --img 640 --cfg models/detect/RC-SODetc.yaml --weights '' --name RC-SODetc --hyp hyp.scratch-high.yaml --min-items 0 --epochs 200 --close-mosaic 15
# inference yolov9 models
python detect_dual.py --source '.data/images/9999970_00000_d_0000012.jpg' --img 640 --device 0 --weights './RC-SODet-C.pt' --name RC-SODet-C.pt_640_detect
# inference gelan models
# python detect.py --source './data/images/horses.jpg' --img 640 --device 0 --weights './gelan-c.pt' --name gelan_c_c_640_detect-
@article{wang2024yolov9,
title={{YOLOv9}: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}