PyTorch-YOLO_Nano
A minimal PyTorch implementation of YOLO_Nano
Trick here I have done
Bag of Freebies for Training Object Detection Neural Networks tell us that fixup in object detection can increase the mAP, So I realize it and test in result.
- Data Augmentation
- Fixup
- Cosine lr decay
- Warm up
- multi-GPU
Download COCO
$ cd data/
$ bash get_coco_dataset.sh
Module Pipeline
training
bash train.sh
Better Para:
--epochs 120
--batch_size 8
--model_def ./config/yolo-nano_person.cfg
--lr 2.5e-4
--fix_up True
--lr_policy cosine
Testing
python test.py --data_config ./config/coco_person.data --model_def ./config/yolo-nano_person.cfg --weights_path [checkpoint path]
Result
In this engineer we only train our model using coco-train person class
we compare with yolov-3,yolo-tiny. We got competitive results.
Methods | mAP@50 | mAP | weights | FPS | Model |
---|---|---|---|---|---|
yolov3(paper) | 74.4 | 40.3 | 204.8M | 28.6FPS | Google Disk |
yolov3-tiny(paper) | 38.8 | 15.6 | 35.4M | 45FPS | Google Disk |
yolo-nano | 55.6 | 27.7 | 22.0M | 40FPS | Baidu WebDisk |
Baidu WebDisk Key: p2j3
Ablation Result
Augmentation | fixup | mAP |
---|---|---|
No | No | 54.3 |
Yes | No | 53.9 |
No | YES | 55.6 |
YES | YES | 54.8 |