目录
1 参考链接
2 环境
3 数据集准备
4 训练 train.py
5 导出预测模型
6 预测
源码来自作者 夜雨飘零1,我对参考链接的代码略有修改,网盘地址
链接:百度网盘 请输入提取码 提取码:ipl5
1 参考链接
博客地址 基于PaddlePaddle实现的目标检测模型PP-YOLOE_夜雨飘零1的博客-CSDN博客_paddlepaddle目标检测
项目地址 GitHub - yeyupiaoling/PP-YOLOE: PaddlePaddle实现的目标检测模型PP-YOLOE
2 环境
- 系统 Linux
- 显卡 NVIDIA GeForce RTX 3060
- CUDA 11.1
- CUDNN 8.2.1
python版本3.9,环境如下
安装的时候首先使用的是项目中的requirement.txt
- pip install -r requirement.txt
安装的过程中有几个东西没装上,比如paddle,之后用的官方提供的安装paddle的命令,虽然我当前的cuda版本是11.1,但使用下面的命令确实可以安装,并且可以使用
- conda install paddlepaddle-gpu==2.4.1 cudatoolkit=11.2 -c Index of /anaconda/cloud/Paddle/ | 北京外国语大学开源软件镜像站 | BFSU Open Source Mirror -c conda-forge
如果没有cudnn安装的时候不会出问题,但使用的时候会出现cudnn的问题,官方的命令上有提示,告诉你选8.2.1这个版本
我们找到cudnn8.2.1 cuDNN Archive | NVIDIA Developer 下载这个tar.gz
解压后放到cuda目录中就可以了
- sudo cp cuda/include/cudnn.h /usr/local/cuda/include
- sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
- sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
训练时默认使用GPU资源进行训练
项目放在home下,项目命名为paddlepaddle_object_detection
3 数据集准备
数据集为877张图像,4分类,其中speedlimit 705个框,crosswalk 174个框,traffclight 154个框,stop 88个框
将标注文件xml放在dataset中,图像文件jpg放在images中
运行create_voc_list.py
运行后会在dataset中得到这三个文件
运行voc2coco.py
在dataset中会得到这两个文件
4 训练 train.py
将这里改为数据集的分类数量
然后直接运行就好了,一些warning可以无视掉
再第一次训练的时候会进行 预训练模型 的下载,预训练模型会下载到这个文件夹中
训练结束后会生成文件夹models
models中还有一个文件夹PPYOLOE_M,其中有一个best_model
5 导出预测模型
修改 export_model.py的类别数量,然后运行
在models/PPYOLOE_M中会得到一个文件夹infer,infer中有导出的模型
6 预测
更改infer.py中需要预测的图片
运行后可以得到预测结果