冬落 d5e3a07abc optimize code пре 2 година
..
README.md ec10144a0e update all README files пре 2 година
build.py d5e3a07abc optimize code пре 2 година
loss.py 0744feec35 add YOLOv7-Plus пре 2 година
matcher.py 7cf531e7da add Tracking пре 2 година
yolov5.py f878ef3bcd add nms_class_agnostic for test пре 2 година
yolov5_backbone.py 22861e1213 train YOLOv5-S пре 2 година
yolov5_basic.py 7cf531e7da add Tracking пре 2 година
yolov5_head.py 7cf531e7da add Tracking пре 2 година
yolov5_neck.py 7cf531e7da add Tracking пре 2 година
yolov5_pafpn.py 7cf531e7da add Tracking пре 2 година

README.md

YOLOv5:

  • For training, we train YOLOv5 series with 300 epochs on COCO.
  • For data augmentation, we use the large scale jitter (LSJ), Mosaic augmentation and Mixup augmentation, following the setting of YOLOv5.
  • For optimizer, we use SGD with momentum 0.937, weight decay 0.0005 and base lr 0.01.
  • For learning rate scheduler, we use linear decay scheduler.
  • For YOLOv5's structure, we use decoupled head, following the setting of YOLOX.
  • For YOLOv5-M and YOLOv5-L, increasing the batch size may improve performance. Due to my computing resources, I can only set the batch size to 16.

Train YOLOv5

Single GPU

Taking training YOLOv5-S on COCO as the example,

python train.py --cuda -d coco --root path/to/coco -m yolov5_s -bs 16 -size 640 --wp_epoch 3 --max_epoch 300 --eval_epoch 10 --no_aug_epoch 20 --ema --fp16 --multi_scale 

Multi GPU

Taking training YOLOv5 on COCO as the example,

python -m torch.distributed.run --nproc_per_node=8 train.py --cuda -dist -d coco --root /data/datasets/ -m yolov5_s -bs 128 -size 640 --wp_epoch 3 --max_epoch 300  --eval_epoch 10 --no_aug_epoch 20 --ema --fp16 --sybn --multi_scale --save_folder weights/ 

Test YOLOv5

Taking testing YOLOv5 on COCO-val as the example,

python test.py --cuda -d coco --root path/to/coco -m yolov5_s --weight path/to/yolov5.pth -size 640 -vt 0.4 --show 

Evaluate YOLOv5

Taking evaluating YOLOv5 on COCO-val as the example,

python eval.py --cuda -d coco-val --root path/to/coco -m yolov5_s --weight path/to/yolov5.pth 

Demo

Detect with Image

python demo.py --mode image --path_to_img path/to/image_dirs/ --cuda -m yolov5_s --weight path/to/weight -size 640 -vt 0.4 --show

Detect with Video

python demo.py --mode video --path_to_vid path/to/video --cuda -m yolov5_s --weight path/to/weight -size 640 -vt 0.4 --show --gif

Detect with Camera

python demo.py --mode camera --cuda -m yolov5_s --weight path/to/weight -size 640 -vt 0.4 --show --gif
Model Backbone Batch Scale APval
0.5:0.95
APval
0.5
FLOPs
(G)
Params
(M)
Weight
YOLOv5-N CSPDarkNet-N 1xb16 640 29.8 47.1 7.7 2.4 ckpt
YOLOv5-S CSPDarkNet-S 1xb16 640 37.8 56.5 27.1 9.0 ckpt
YOLOv5-M CSPDarkNet-M 1xb16 640 43.5 62.5 74.3 25.4 ckpt
YOLOv5-L CSPDarkNet-L 1xb16 640 46.7 65.5 155.6 54.2 ckpt