PyTorch_YOLOv4
PyTorch_YOLOv4 copied to clipboard
PyTorch implementation of YOLOv4
YOLOv4
This is PyTorch implementation of YOLOv4 which is based on ultralytics/yolov3.
development log
Expand
-
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 |
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 |
640 | 48.3% | 67.2% | 52.7% | 30.8% | 53.8% | 62.4% | weights | ||
YOLOv4pacsp-x-mish | 672 | 50.0% | 68.5% | 54.4% | 32.9% | 54.9% | 64.0% | cfg | weights |
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
Teacher-Student Learning
Model | Teacher | Test Size | APval | AP50val | AP75val | APSval | APMval | APLval |
---|---|---|---|---|---|---|---|---|
YOLOv4pacsp-s-mish | - | 672 | 38.6% | 57.7% | 41.8% | 22.3% | 43.5% | 49.3% |
YOLOv4pacsp-s-mish | YOLOv4pacsp-mish | 672 | 39.3% | 58.4% | 42.5% | 23.4% | 44.5% | 50.7% |
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}
}