Skip to content

GiuliaCiaramella/PyTorch_YOLOv4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YOLOv4

This is PyTorch implementation of YOLOv4 which is based on ultralytics/yolov3.

development log

Expand
  • 2021-01-17 - support anchor-free-based methods. center-yolo
  • 2021-01-14 - support joint detection and classification.
  • 2020-01-02 - design new PRN and CSP-based models.
  • 2020-12-22 - support transfer learning.
  • 2020-12-18 - support non-local series self-attention blocks. gc dnl
  • 2020-12-16 - support down-sampling blocks in cspnet paper. down-c down-d
  • 2020-12-03 - support imitation learning.
  • 2020-12-02 - support squeeze and excitation.
  • 2020-11-26 - support multi-class multi-anchor joint detection and embedding.
  • 2020-11-25 - support joint detection and embedding.
  • 2020-11-23 - support teacher-student learning.
  • 2020-11-17 - pytorch 1.7 compatibility.
  • 2020-11-06 - support inference with initial weights.
  • 2020-10-21 - fully supported by darknet.
  • 2020-09-18 - design fine-tune methods.
  • 2020-08-29 - support deformable kernel.
  • 2020-08-25 - pytorch 1.6 compatibility.
  • 2020-08-24 - support channel last training/testing.
  • 2020-08-16 - design CSPPRN.
  • 2020-08-15 - design deeper model. csp-p6-mish
  • 2020-08-11 - support HarDNet. hard39-pacsp hard68-pacsp hard85-pacsp
  • 2020-08-10 - add DDP training.
  • 2020-08-06 - support DCN, DCNv2. yolov4-dcn
  • 2020-08-01 - add pytorch hub.
  • 2020-07-31 - support ResNet, ResNeXt, CSPResNet, CSPResNeXt. r50-pacsp x50-pacsp cspr50-pacsp cspx50-pacsp
  • 2020-07-28 - support SAM. yolov4-pacsp-sam
  • 2020-07-24 - update api.
  • 2020-07-23 - support CUDA accelerated Mish activation function.
  • 2020-07-19 - support and training tiny YOLOv4. yolov4-tiny
  • 2020-07-15 - design and training conditional YOLOv4. yolov4-pacsp-conditional
  • 2020-07-13 - support MixUp data augmentation.
  • 2020-07-03 - design new stem layers.
  • 2020-06-16 - support floating16 of GPU inference.
  • 2020-06-14 - convert .pt to .weights for darknet fine-tuning.
  • 2020-06-13 - update multi-scale training strategy.
  • 2020-06-12 - design scaled YOLOv4 follow ultralytics. yolov4-pacsp-s yolov4-pacsp-m yolov4-pacsp-l yolov4-pacsp-x
  • 2020-06-07 - design scaling methods for CSP-based models. yolov4-pacsp-25 yolov4-pacsp-75
  • 2020-06-03 - update COCO2014 to COCO2017.
  • 2020-05-30 - update FPN neck to CSPFPN. yolov4-yocsp yolov4-yocsp-mish
  • 2020-05-24 - update neck of YOLOv4 to CSPPAN. yolov4-pacsp yolov4-pacsp-mish
  • 2020-05-15 - training YOLOv4 with Mish activation function. yolov4-yospp-mish yolov4-paspp-mish
  • 2020-05-08 - design and training YOLOv4 with FPN neck. yolov4-yospp
  • 2020-05-01 - training YOLOv4 with Leaky activation function using PyTorch. yolov4-paspp

Pretrained Models & Comparison

Model Test Size APval AP50val AP75val APSval APMval APLval cfg weights
YOLOv4 672 47.7% 66.7% 52.1% 30.5% 52.6% 61.4% cfg weights
YOLOv4pacsp-s 672 36.6% 55.5% 39.6% 21.2% 41.1% 47.0% cfg weights
YOLOv4pacsp 672 47.2% 66.2% 51.6% 30.4% 52.3% 60.8% cfg weights
YOLOv4pacsp-x 672 49.3% 68.1% 53.6% 31.8% 54.5% 63.6% cfg weights
YOLOv4pacsp-s-mish 672 38.6% 57.7% 41.8% 22.3% 43.5% 49.3% cfg weights
(+BoF) 640 39.9% 59.1% 43.1% 24.4% 45.2% 51.4% weights
YOLOv4pacsp-mish 672 48.1% 66.9% 52.3% 30.8% 53.4% 61.7% cfg weights
(+BoF) 640 49.3% 68.2% 53.8% 31.9% 54.9% 62.8% weights
YOLOv4pacsp-x-mish 672 50.0% 68.5% 54.4% 32.9% 54.9% 64.0% cfg weights
(+BoF) 640 51.0% 69.7% 55.5% 33.3% 56.2% 65.5% weights

Requirements

pip install -r requirements.txt

※ For running Mish models, please install https://github.com/thomasbrandon/mish-cuda

Training

python train.py --device 0 --batch-size 16 --img 640 640 --data coco.yaml --cfg cfg/yolov4-pacsp.cfg --weights '' --name yolov4-pacsp

Testing

python test.py --img 640 --conf 0.001 --batch 8 --device 0 --data coco.yaml --cfg cfg/yolov4-pacsp.cfg --weights weights/yolov4-pacsp.pt

Citation

@article{bochkovskiy2020yolov4,
  title={{YOLOv4}: Optimal Speed and Accuracy of Object Detection},
  author={Bochkovskiy, Alexey and Wang, Chien-Yao and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2004.10934},
  year={2020}
}
@inproceedings{wang2020cspnet,
  title={{CSPNet}: A New Backbone That Can Enhance Learning Capability of {CNN}},
  author={Wang, Chien-Yao and Mark Liao, Hong-Yuan and Wu, Yueh-Hua and Chen, Ping-Yang and Hsieh, Jun-Wei and Yeh, I-Hau},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops},
  pages={390--391},
  year={2020}
}

Acknowledgements

About

PyTorch implementation of YOLOv4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 98.3%
  • Shell 1.7%