基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

时间:2024-04-08 17:49:16

基于百度AI Studio平台使用PaddleDetection 训练自己的数据集
PaddleDetection:传送门
1.下载并安装PaddlePaddle深度学习框架(AI Studio已经自动下载成压缩包)
进入AI Studio终端,查看当前所在路径,查看PaddlePaddle版本号。
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

2.下载并安装PaddleDetection目标检测开发套件库(AI Studio也有提供压缩包,解压开箱即可)
unzip PaddleDetection
3.从PaddleDetection 种找到需要的模型配置文件(AI Studio也有提供)
(如:work/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml)
一切就绪之后
4.进入到PaddleDetection文件目录下:cd PaddleDetection
5.可查看所包含的文件目录:ls
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

PaddleDetection中包含:
(1)configs:存放模型的配置文件
(2)dataset:存放自己的数据集,主要以Pascal VOC 和COCO数据集格式
(3)deploy:部署方案
(4)slim:模型的压缩、量化、裁剪、蒸馏
(5)ppdet:存放了各大主流的目标检测网络模型仓库
(6)tools:这个就是用户通过configs里的yml格式模型配置文件,来调用训练、验证、推理、部署的API库。如图:
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

6.在PaddleDetection下安装依赖文件:pip install -r requirements.txt
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

7.安装完依赖后,我们主要使用的是tools下的各种API,我们进入看一看:
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

(1)anchor_cluster.py:聚类生成anchor,如在自己的数据集上,YOLOv3使用KMeans聚类生成anchor锚定框的宽高。
(2)eval.py:验证模式
(3)export_serving_model.py:导出部署模型
(4)infer.py:前向推理模式,预测模式
(5)train_multi_machine.py:多卡GPU训练模式,如果切换成单卡GPU训练,这里的学习率等参数需要除以GPU快数
(6)x2coco.py:数据格式转换
(7)export_model.py:到处模式
(8)train.py:高频使用的训练模式
看完了蛤,那我们重点关注一下train.py。

8.运行python tools/train.py --help:查看具体API使用:
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

(1)-c:加载模型配置文件 c值config
(2)-o:加载模型训练保存的网络权重等
(3)–use_vdl:使用visualDL 可视化训练结果
(4)–vdl log_dir :可视化日志
(5)–fp16
(6)–eval
(7)等等

9.PaddleDetection目标检测开发套件基本熟悉后,开始我们的训练,把准备好Pascal VOC 或者COCO数据集格式的数据集拷贝到PaddleDetection中的dataset中。
进入PaddleDetection/dataset的某数据文件下
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集
将根目录下的数据压缩文件拷贝到进来,再解压,查看解压后的数据集
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

COCO数据集格式:
Images:存放原始RGB图片
Annotations:存放对应的标签,为json格式
laBel_list.txt 存放类别
Train.txt 或valid.txt :存放训练集或者验证集的(原始图片绝对路径 标签路径)

基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

10.万事俱备,我们开始开启训练。在PaddleDetection中的config配置文件中自选用于训练的目标检测网络模型的配置文件,这里以yolov3_mobilenet_v1_roadsign_voc_template.yml为例。
在终端上调用API,开始训练:
python tools/train.py -c …/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o use_gpu=true

基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

训练的过程中,模型权重会自动保存在PaddleDetection output文件中
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

11.训练结束后,我们开启验证模式,判断我们训练的模型是否收敛或者过拟合,查看训练的map等。
python tools/eval.py -c …/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o weights=output/yolov3_mobilenet_v1_roadsign_voc_template/800
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集

12.验证满意后,我们可以进行预测啦,预测的结果最后自动保存在PaddleDetection中的output文件夹中。
python tools/infer.py -c …/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o weights=output/yolov3_mobilenet_v1_roadsign_voc_template/800 --infer_img=dataset/roadsign_voc/images/road554.png
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集
基于百度AI Studio平台使用PaddleDetection 训练自己的数据集