概述
PP-PicoDet算法源码:GitHub源码地址
1. 环境配置
1.1 conda 安装 paddlepaddle
conda create -n paddle python=3.8 # 创建python环境
conda activate paddle # 进入环境
飞桨官网选择合适的安装版本安装
python -m pip install paddlepaddle-gpu==2.3.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
安装环境验证
使用python进入python解释器,输入
import paddle.fluid
paddle.fluid.install_check.run_check()
如果出现“Your Paddle Fluid is installed succesfully!”,说明您已成功安装。
如果希望在多卡环境下使用PaddleDetection,请首先安装NCCL 2。NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all-gather, reduce, broadcast)库,Nvidia做了很多优化。
conda 安装 nccl :
conda install -c conda-forge nccl
或者
conda install -c conda-forge/label/cf202003 nccl
1.2 安装 PaddleDetection
PaddleDetection是百度基于paddlepaddle开发的目标检测开发套件,提供了从数据准备、模型训练、模型评估、模型导出到模型部署的全流程。
git clone https://github.com/PaddlePaddle/PaddleDetection.git
cd PaddleDetection
pip install -r requirements.txt
python setup.py install
检查是否安装成功:
python ppdet/modeling/tests/test_architectures.py
目标检测测试
# 在GPU上预测一张图片
export CUDA_VISIBLE_DEVICES=0
python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg
2. PicoDet 训练自己的数据集(COCO)
2.1 数据集格式
如何自定义数据集
2.2 修改配置文件
参考:30分钟快速上手PaddleDetection
主配置文件,如
PaddleDetection/configs/picodet/picodet_l_320_coco_lcnet.yml
主配置文件需要依赖以下文件:
'../datasets/coco_detection.yml', #主要说明了训练数据和验证数据的路径
'../runtime.yml', #主要说明了公共的运行参数,比如说是否使用GPU、每多少个epoch存储checkpoint等
'_base_/picodet_v2.yml', #主要说明模型、和主干网络的情况
'_base_/optimizer_300e.yml', #主要说明了学习率和优化器的配置
'_base_/picodet_320_reader.yml',#主要说明数据读取器配置,如batch size,并发加载子进程数等,同时包含读取后预处理操作,如resize、数据增强等等
注意 :
各模块配置文件的配置参数可以直接copy到主配置文件中进行修改。在主配置文件中重写的配置参数会覆盖掉加载的配置参数。
建议使用在主配置文件重写的方式,如重置 coco_detection.yml 中的项目类别和数据路径, 在主配置文件中增加以下设置:
num_classes: 3
TrainDataset:
!COCODataSet
image_dir: JPEGImages
anno_path: train.json
dataset_dir: dataset/coco
data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
EvalDataset:
!COCODataSet
image_dir: JPEGImages
anno_path: val.json
dataset_dir: dataset/coco
TestDataset:
!ImageFolder
anno_path: val.json
dataset_dir: dataset/coco
3. 训练
PaddleDetection提供了单卡/多卡训练模式,满足用户多种训练需求;
GPU单卡训练
export CUDA_VISIBLE_DEVICES=0 #windows和Mac下不需要执行该命令
python tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet.yml
GPU多卡训练
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 #windows和Mac下不需要执行该命令
python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py
-c configs/picodet/picodet_s_320_coco_lcnet.yml
--eval --use_vdl=true
--vdl_log_dir=vsdl_logs/picodet_s_320_coco_lcnet
--amp
4. 模型转换
导出模型
python ../PaddleDetection/tools/export_model.py -c ./configs/picodet_s_320_coco_lcnet.yml -o weights=./output/picodet_s_320_coco_lcnet/best_model.pdparams export.benchmark=True --output_dir=./onnx_out
模型转ONNX
paddle2onnx --model_dir onnx_out/picodet_s_320_coco_lcnet
--model_filename model.pdmodel
--params_filename model.pdiparams
--opset_version 11
--save_file picodet_s_320_coco_lcnet.onnx
模型转MNN
pip install MNN
python3 -m MNN.tools.mnnconvert -f ONNX --modelFile picodet_s_320_coco_lcnet.onnx --MNNModel picodet_s_320_coco_lcnet.mnn --bizCode MNN
最后
以上就是老实大炮为你收集整理的PicoDet 训练自己的数据集(COCO)1. 环境配置2. PicoDet 训练自己的数据集(COCO)3. 训练的全部内容,希望文章能够帮你解决PicoDet 训练自己的数据集(COCO)1. 环境配置2. PicoDet 训练自己的数据集(COCO)3. 训练所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复