论文链接:https://arxiv.org/pdf/2004.10934v1.pdf
作为YOLO系列经典检测网络,YOLOv4继承了YOLOv3的优势,总结了单阶段网络可以分为主干backbone、颈部neck和头部head三个部分、同时引入了大量的训练技巧、新的检测方案和损失方案
YOLOv4由主干网络CSPDarkNet53、颈部网络SPP和PANet、YOLOv3的头部网络组成,如下图所示
本项目基于AIStudio和PaddleDetection开源框架复现了YOLOv4。在COCO2017数据集上进行训练,并在COCO-test2017数据集进行测试,最终测试结果达到mAP=41.7%
-
百度网盘链接:https://pan.baidu.com/s/1WvHIuCP88FlQFK4XQwP_sw 提取码:2cts
-
AIStudio:https://aistudio.baidu.com/aistudio/datasetdetail/106545
将获取到的预训练权重复制到work/pretrain_model目录下(与配置文件对应)
cp data/data106469/yolov4_cspdarknet.pdparams work/pretrain_model
AIStudio:https://aistudio.baidu.com/aistudio/datasetdetail/7122
paddle选用2.0以上版本
GPU选用TeslaV100 32G及以上
数据集选用COCO2017数据集和训练好的权重(可在创建项目中添加数据集搜索选择)
cd ~/work
git clone https://github.com/Windxy/YOLOv4-Based-on-PaddleDetection.git
cd ~
pip install pycocotools
cd ~/data/data7122
unzip ann*.zip
unzip val*.zip
unzip image_info*.zip
unzip train*.zip
unzip test*.zip
cd ~/w
mv /home/aistudio/data/data7122 /home/aistudio/data/coco
python PaddleDetection/tools/train.py -c yolov4_cspdarknet_coco.yml --eval -o use_gpu=true
python PaddleDetection/tools/eval.py -c yolov4_cspdarknet_coco.yml -o use_gpu=true
python PaddleDetection/tools/eval.py -c yolov4_cspdarknet_coco_test.yml -o use_gpu=true
1.将测试集测试结果得到的bbox.json进行zip打包
2.进入https://competitions.codalab.org/competitions/20794#participate,注册并submit打包后的zip文件
3.下载输出结果
python PaddleDetection/tools/infer.py -c yolov4_cspdarknet_coco_test.yml -o use_gpu=true --infer_dir=自己图片的目录
进入官网https://competitions.codalab.org/competitions/20794#participate
注册并submit打包后的zip文件(已打包好的zip文件链接:https://pan.baidu.com/s/1HE7Krq0B6_goIsm-nVf2lA 提取码:b9n9 )
测试后文件存在coco_test2017_output
目录下
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.417
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.644
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.453
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.247
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.456
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.513
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.331
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.531
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.560
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.374
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.610
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.697