samylee / YOLOV4_Train_PyTorch

1000行代码完美复现YOLOV4的训练和测试,精度、速度以及配置完全相同,两者模型可以无障碍相互转换
Apache License 2.0
2 stars 1 forks source link

YOLOV4_Train_PyTorch

1000行代码完美复现YOLOV4的训练和测试,精度、速度以及配置完全相同,两者模型可以无障碍相互转换。

指标展示

Model train test net_size mAP@0.5 mAP@0.75 FPS
yolov4(train from Darknet-AlexeyAB) 0712 2007_test 416x416 86.05 67.09 55
yolov4(ours) 0712 2007_test 416x416 86.85 68.14 55
yolov4(yolov5-loss) 0712 2007_test 416x416 88.74 74.93 55
yolov4(yolov5-loss + ema) 0712 2007_test 416x416 89.22 74.96 55

效果展示


使用说明

要求

Python >= 3.6 \ PyTorch >= 1.4

数据集下载

cd <path-to-voc>/
wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-2012.tar
tar xf VOCtrainval_06-Nov-2007.tar
tar xf VOCtest_06-Nov-2007.tar

数据生成

cd data/voc0712
python voc_label.py
cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

预训练模型下载

cd pretrain
wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137

训练和测试

python train.py

已训练好的模型:百度云(提取码:8888)

python detect.py

计算mAP

模型转换至darknet

python cvt2darknet.py

编译原始版本darknet

./darknet detector map cfg/voc.data cfg/yolov4-voc.cfg weights/yolov4-140.weights

复现重点

参考

https://blog.csdn.net/samylee
https://github.com/AlexeyAB/darknet