环境准备
环境设置
GPU:GeForce GTX 1080Ti (12GB)
python:3.8.12
Paddle:2.1
PaddleDetection下载
通过如下git clone命令下载PaddleDetection目标检测库。
git clone https://github.com/PaddlePaddle/PaddleDetection # 下载PaddleDetection目标检测库
安装PaddleDetection依赖库
通过如下方式安装PaddleDetection依赖。
cd PaddleDetection/ pip install -r requirements.txt # requirements.txt列出了PaddleDetection的所有依赖库 pip install Cython pycocotools
数据准备
PaddleDetection提供了COCO、VOC等数据集下载脚本如dataset/coco/download.py,通过此脚本可自动下载对应数据集。
COCO的train数据集较大,训练比较耗时,本项目将训练集和验证集划分构建MINI_COCO数据集。
python dataset/coco/download_coco.py # coco数据集下载脚本 python dataset/coco/split_coco.py # 构建MINI_COCO数据集 python dataset/voc/download_coco.py # VOC数据集下载脚本
对于VOC数据集,我们还需要通过脚本dataset/voc/creat_list.py构建test.txt和test.txt文件
python dataset/voc/creat_list.py # 构建txt文件
模型训练与评估
VOC数据集
本项目选取yolov3_darknet.yml作为本项目的训练配置文件。该配置文件选取的是YOLOv3_darknet模型,骨干网络为DarkNet,yolo_head为YOLOv3Head。
对于VOC数据集,我们不需要修改配置文件,直接用脚本运行,进行训练及评估。
python tools/train.py -c configs/yolov3/yolov3_darknet53_270e_cocoval.yml #训练VOC数据集 python -u tools/eval.py -c configs/yolov3/yolov3_darknet53_270e_cocoval.yml #评估yolov3_darknet模型
最终评估结果如下图所示:
从上图中,可以看出yolov3_darknet模型在VOC数据集上的mAP = 74.42 , FPS = 15.79