This is PyTorch implementation of YOLOv4 which is based on ultralytics/yolov5.
Expand
2020-08-29- support deformable kernel.2020-08-24- support channel last training/testing.2020-08-16- design CSPPRN.2020-08-15- design deeper model.csp-p6-mish2020-08-11- support HarDNet.hard39-pacsphard68-pacsphard85-pacsp2020-08-10- add DDP training.2020-08-06- support DCN, DCNv2.yolov4-dcn2020-08-01- add pytorch hub.2020-07-31- support ResNet, ResNeXt, CSPResNet, CSPResNeXt.r50-pacspx50-pacspcspr50-pacspcspx50-pacsp2020-07-28- support SAM.yolov4-pacsp-sam2020-07-24- update api.2020-07-23- support CUDA accelerated Mish activation function.2020-07-19- support and training tiny YOLOv4.yolov4-tiny2020-07-15- design and training conditional YOLOv4.yolov4-pacsp-conditional2020-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-syolov4-pacsp-myolov4-pacsp-lyolov4-pacsp-x2020-06-07- design scaling methods for CSP-based models.yolov4-pacsp-25yolov4-pacsp-752020-06-03- update COCO2014 to COCO2017.2020-05-30- update FPN neck to CSPFPN.yolov4-yocspyolov4-yocsp-mish2020-05-24- update neck of YOLOv4 to CSPPAN.yolov4-pacspyolov4-pacsp-mish2020-05-15- training YOLOv4 with Mish activation function.yolov4-yospp-mishyolov4-paspp-mish2020-05-08- design and training YOLOv4 with FPN neck.yolov4-yospp2020-05-01- training YOLOv4 with Leaky activation function using PyTorch.yolov4-paspp
| Model | Test Size | APval | AP50val | AP75val | APSval | APMval | APLval | yaml | weights |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv4s-mish | 672 | 40.3% | 59.4% | 43.8% | 23.9% | 45.3% | 52.2% | yaml | weights |
| YOLOv4m-mish | 672 | 44.7% | 64.0% | 48.7% | 28.3% | 50.2% | 57.7% | yaml | weights |
| YOLOv4l-mish | 672 | 48.1% | 66.8% | 52.6% | 31.9% | 53.3% | 61.0% | yaml | weights |
| YOLOv4x-mish | 672 | 49.8% | 68.4% | 54.4% | 32.7% | 55.3% | 63.6% | yaml | weights |
| YOLOv4x-mish | TTA | 51.2% | 69.1% | 56.1% | 35.6% | 56.3% | 64.9% | yaml | weights |
| CSPp6-mish | 1280 | 53.9% | 72.0% | 59.0% | 39.3% | 58.3% | 66.6% | yaml | - |
| CSPp6-mish | TTA | 54.4% | 72.3% | 59.6% | 39.8% | 58.9% | 67.6% | yaml | - |
| CSPp7-mish | 1536 | 55.0% | 72.9% | 60.2% | 39.8% | 59.9% | 68.4% | yaml | - |
| CSPp7-mish | TTA | 55.5% | 72.9% | 60.8% | 41.1% | 60.3% | 68.9% | yaml | - |
| Model | Test Size | APtest | AP50test | AP75test | APStest | APMtest | APLtest | batch1 throughput |
|---|---|---|---|---|---|---|---|---|
| CSPp6-mish | 1280 | 54.3% | 72.3% | 59.5% | 36.6% | 58.2% | 65.5% | 30 fps |
| CSPp6-mish | TTA | 54.9% | 72.6% | 60.2% | 37.4% | 58.8% | 66.7% | - |
| CSPp7-mish | 1536 | 55.4% | 73.3% | 60.7% | 38.1% | 59.5% | 67.4% | 15 fps |
| CSPp7-mish | TTA | 55.8% | 73.2% | 61.2% | 38.8% | 60.1% | 68.2% | - |
pip install -r requirements.txt
python train.py --data coco.yaml --cfg yolov4l-mish.yaml --weights ''
※ Please also install https://github.com/thomasbrandon/mish-cuda
python test.py --img 672 --conf 0.001 --batch 32 --data coco.yaml --weights weights/yolov4l-mish.pt
@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}
}