1.安装
1.1 安装paddlepaddle
创建conda环境:
conda create -n paddle python=3.9
conda activate paddle
多卡训练需要安装nccl
conda install -c conda-forge nccl
进入下面paddle官网找到对应的版本安装,我的安装命令行为:
python -m pip install paddlepaddle-gpu==2.2.2 -i https://mirror.baidu.com/pypi/simple
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
1.2 安装PaddleDetection
git clone https://github.com/PaddlePaddle/PaddleDetection.git
安装requirements.txt中的依赖,如果opencv等依赖出问题,查看python版本是否对应
pip install -r requirements.txt
安装完成之后需要编译,否则导包会出现错误
cd PaddleDetection
python setup.py install
2.测试
测试是否安装成功
python ppdet/modeling/tests/test_architectures.py
出现下面的提示表示安装成功
3.配置configs文件
3.1数据集
进入datasets文件夹相对应的数据集配置文件,设置数据集的路径等信息,下面以coco为例
metric: COCO
num_classes: 80
TrainDataset:
!COCODataSet
image_dir: ../../data/coco/train2017
anno_path: ../../data/coco/annotations/instances_train2017.json
dataset_dir: ../../data/coco
data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
EvalDataset:
!COCODataSet
image_dir: ../../data/coco/val2017
anno_path: ../../data/coco/annotations/instances_val2017.json
dataset_dir: ../../data/coco
TestDataset:
!ImageFolder
anno_path: ../../data/coco/annotations/instances_val2017.json
dataset_dir: ../../data/coco
3.2模型参数
进入对应的模型配置yml,以picodet为例,设置训练次数,batch_size等超参数
_BASE_: [
'../datasets/coco_detection.yml',
'../runtime.yml',
'_base_/picodet_v2.yml',
'_base_/optimizer_300e.yml',
'_base_/picodet_416_reader.yml',
]
pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/legendary_models/PPLCNet_x2_0_pretrained.pdparams
weights: output/picodet_l_320_coco/best_model
find_unused_parameters: True
use_ema: true
epoch: 250
snapshot_epoch: 10
LCNet:
scale: 2.0
feature_maps: [3, 4, 5]
LCPAN:
out_channels: 160
PicoHeadV2:
conv_feat:
name: PicoFeat
feat_in: 160
feat_out: 160
num_convs: 4
num_fpn_stride: 4
norm_type: bn
share_cls_reg: True
use_se: True
feat_in_chan: 160
LearningRate:
base_lr: 0.12
schedulers:
- !CosineDecay
max_epochs: 300
- !LinearWarmup
start_factor: 0.1
steps: 300
TrainReader:
batch_size: 24
4.推理测试
4.1 picodet
运行下面代码块,输出的图片在output文件夹中
python tools/infer.py -c configs/picodet/picodet_l_416_coco_lcnet.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/picodet_l_416_coco_lcnet.pdparams --infer_img=demo/000000014439.jpg
结果展示:
4.2 ppyoloe
同理
python tools/infer.py -c configs/ppyoloe/ppyoloe_crn_s_300e_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams --infer_img=demo/000000087038.jpg