PaddleDetection训练自己的(VOC)数据集

PaddleDetection训练自己的(VOC)数据集

简介:
PP-YOLO是PaddleDetection优化和改进的YOLOv3的模型,其精度(COCO数据集mAP)和推理速度均优于YOLOv4模型,PP-YOLO在COCO test-dev2017数据集上精度达到45.9%,在单卡V100上FP32推理速度为72.9 FPS, V100上开启TensorRT下FP16推理速度为155.6 FPS

一、项目说明

此项目基于PaddleDetection套件开发,基于PP-YOLO架构实现的目标检测模型

1)任务描述:使用PP-YOLO架构
2)数据说明:本项目数据集采用VOC格式数据集,以开源数据集印刷电路板(PCB)瑕疵数据集为例
3)本教程源码地址:
链接:https://pan.baidu.com/s/121AE_KZr3w4hcm3xzybu2g
提取码:30fo
PaddleDetection训练自己的(VOC)数据集_第1张图片

二、环境配置

操作系统 linux
python 3.6.5
paddlepaddle-gpu 1.8.4
CUDA 10.0
cuDNN 7.6
ppdet 0.0.4

三、项目结构

3.1源码项目结构:

PaddleDetection训练自己的(VOC)数据集_第2张图片

3.2成品项目结构:
PaddleDetection训练自己的(VOC)数据集_第3张图片

四、准备数据集

1、下载源码后,打开项目,在PaddleDetection/dataset目录下新建文件夹pcb

2、在PaddleDetection/dataset/pcb目录下新建文件夹Annotations、JPEGImages
PaddleDetection训练自己的(VOC)数据集_第4张图片
3、将所有所有标注的XML文件放到dataset/pcb/Annotations目录下 如下图
PaddleDetection训练自己的(VOC)数据集_第5张图片
4、将所有标注的图片放到dataset/pcb/ JPEGImages目录下,如下图
PaddleDetection训练自己的(VOC)数据集_第6张图片
5、将PaddleDetection/create_list_name.py 移动到你新建的pcb文件夹下
PaddleDetection训练自己的(VOC)数据集_第7张图片
6、执行成功会在dataset/pcb目录下会生成3个txt文件
PaddleDetection训练自己的(VOC)数据集_第8张图片

五、修改配置文件

****修改configs/ppyolo/ppyolo.yml 和 configs/ppyolo/ppyolo_reader.yml****
	***5.1、修改configs/ppyolo/ppyolo.yml***

PaddleDetection训练自己的(VOC)数据集_第9张图片
PaddleDetection训练自己的(VOC)数据集_第10张图片
PaddleDetection训练自己的(VOC)数据集_第11张图片
PaddleDetection训练自己的(VOC)数据集_第12张图片
PaddleDetection训练自己的(VOC)数据集_第13张图片
5.2、修改configs/ppyolo/ppyolo_reader.yml
PaddleDetection训练自己的(VOC)数据集_第14张图片
PaddleDetection训练自己的(VOC)数据集_第15张图片
PaddleDetection训练自己的(VOC)数据集_第16张图片
PaddleDetection训练自己的(VOC)数据集_第17张图片
PaddleDetection训练自己的(VOC)数据集_第18张图片
PaddleDetection训练自己的(VOC)数据集_第19张图片
PaddleDetection训练自己的(VOC)数据集_第20张图片
5.3、将源码中的configs/ppyolo/ppyolo.yml 和 configs/ppyolo/ppyolo_reader.yml与5.1和5.2中的模板对比,修改后即完成配置。

六、开始训练

命令行中运行 python tools/train.py -c configs/ppyolo/ppyolo.yml --eval

PaddleDetection训练自己的(VOC)数据集_第21张图片
训练过程中根据自己在ppyolo.yml中设置的snapshot_iter会间隔保存模型,本示例项目设置snapshot_iter为1000,所以每间隔1000步就保存一次模型。
根据自己在ppyolo.yml中设置的weights会指定路径保存模型,本示例项目设置weights为output/ppyolo/best_model
PaddleDetection训练自己的(VOC)数据集_第22张图片

七、预测

PP-YOLO模型部署及推理benchmark需要通过tools/export_model.py导出模型后使用Paddle预测库进行部署和推理,可通过如下命令一键式启动。

7.1、导出模型
命令行执行命令:python tools/export_model.py -c configs/ppyolo/ppyolo.yml -o weights=output/ppyolo/best_model.pdparams
在这里插入图片描述
执行命令后 在output/ppyolo目录下生成infer_cfg.yml。到此处 模型导出工作已完成
PaddleDetection训练自己的(VOC)数据集_第23张图片
PaddleDetection训练自己的(VOC)数据集_第24张图片
7.2、预测推理
执行命令:python deploy/python/infer/py --model_dir=output/ppyolo --image_file=demo/test.jpg --use_gpu=True
PaddleDetection训练自己的(VOC)数据集_第25张图片
PaddleDetection训练自己的(VOC)数据集_第26张图片

你可能感兴趣的:(深度学习,神经网络,边缘计算,paddlepaddle)