学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现

基于PaddleDetection的PPYOLO模型复现

  • 1. PPYOLO模型简介
  • 2. 环境搭建
    • 2.1 Paddle框架安装
    • 2.2 PaddleDetection依赖库安装
  • 3. 训练自己的数据集
    • 3.1 准备数据集
    • 3.2 修改配置文件
    • 3.3 训练
  • 4. 推理测试

1. PPYOLO模型简介

PP-YOLO是PaddleDetection优化和改进的YOLOv3的模型,其精度(COCO数据集mAP)和推理速度均优于YOLOv4模型。PPYOLO可以在均值平均精度(42.5%mAP)和检测速率(72.9FPS)之间取得更好地平衡,超过了目前最先进的检测器Efficient和YOLOv4,但是模型较大,更适合于服务端的部署。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第1张图片

2. 环境搭建

2.1 Paddle框架安装

PPYOLO需要使用百度paddle框架,我们打开飞桨官网:https://www.paddlepaddle.org.cn/ ,在下方的快速安装选择适合自己版本的paddlepaddle,
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第2张图片

使用指令:

`python -m pip install paddlepaddle-gpu==2.1.0.post101 -f https://paddlepaddle.org.cn/whl/mkl/stable.html` 

安装GPU版本的paddle,paddle框架安装好之后进行入python界面,输入:

import paddle.fluid as fluid 
fluid.install_check.run_check()

查看paddle是否可以正常使用。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第3张图片

2.2 PaddleDetection依赖库安装

paddle框架安装好之后进行入从github上下载PaddleDetection并解压到目录,下载地址:https://github.com/PaddlePaddle/PaddleDetection 将paddledetection根目录添加到环境变量。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第4张图片

根据requirement.txt文件安装依赖库,依赖库安装结束后使用命令:

python ppdet/modeling/tests/test_architectures.py

测试是否可用,结果为ok可以正常使用。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第5张图片

3. 训练自己的数据集

3.1 准备数据集

PaddleDetection支持coco和voc两种格式的数据集,coco数据集的默认位置为dataset/coco目录下,数据集格式如下所示。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第6张图片
PaddleDetection包含了多种模型,PPYOLO、YOLOv3、faster_rcnn和mask_rcnn等模型配置文件存放在configs目录下。

3.2 修改配置文件

数据集准备好之后修改配置文件,打开configs/ppyolo文件夹,可以看到文件内包含多种模型
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第7张图片
这里我们使用PPYOLO轻量级模型PP-YOLO_MobileNetV3_small进行训练,打开ppyolo_mbv3_small.yml可以看到它还包含五个配置文件,需要对这些文件参数进行修改。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第8张图片
打开coco_detection.yml修改类别数量num_classes、图片路径imge_dir和标签路径anno_dir,其中num_classes的值不包含背景类。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第9张图片
打开optimizer_1x.yml修改epoch次数,在学习率learningRate下修改基础学习率base_lr为0.00125,默认值为8卡学习率0.01,学习率计算公式为:base_lr=0.01/8*GPU数量。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第10张图片
打开ppyolo_mbv3_small_coco.yml分别在TrainReader、EvalReader和TestReader下修改batch_size、num_workers和num_classes的值
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第11张图片
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第12张图片

snapshot_epoch为每训练多少次生成一个权重文件,这里我们修改为2
在这里插入图片描述
至此配置文件就修改完毕了,注意配置文件中不能添加中文注释,否则会报错!

3.3 训练

参数配置完成后,使用命令:

python tools/train.py -c configs/ppyolo/ppyolo_mbv3_small_coco.yml --eval

开始训练,训练结果会保存在output/ppyolo_mbv3_small_coco文件夹内。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第13张图片
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第14张图片

4. 推理测试

将要进行测试的图片放在demo文件夹内,使用命令:

python tools/infer.py -c configs/ppyolo/ppyolo_mbv3_small_coco.yml -o weights=output/ppyolo_mbv3_small_coco/best_model.pdparams --infer_dir=demo

进行推理测试,测试结果存放在output文件夹内。
学习笔记(三)基于PaddleDetection的PPYOLO目标检测模型复现_第15张图片

你可能感兴趣的:(机器视觉学习,深度学习,python,机器学习)