基于PaddleDetetion目标检测训练,找出图像中的重要物品

基本信息:

1.预训练模型:PP-YOLOE

2.数据集格式:COCO

3.训练设备:GPU

一、准备数据集

1.使用标注工具对数据集图片进行标注,本次我们采用paddlelabel进行标注。

2.标注前对图片名称进行统一修改,名称可采用数字,字母,或字母数字组合命名。

3.图片格式统一使用jpg格式

4.图片实际宽高和参数宽高需要一致

5.生成coco数据集,生成内容为:

二、配置文件

需要的配置文件:

修改文件配置参数:

1.ppyoloe_r_crn_l_3x_dota.ym

# 将以下文件放在同一文件夹下
_BASE_: [
  './dota.yml',
  './runtime.yml',
  './optimizer_3x.yml',
  './ppyoloe_r_reader.yml',
  './ppyoloe_r_crn.yml'
]

log_iter: 50
snapshot_epoch: 1
#最终训练模型全名
weights: output/ppyoloe_r_crn_l_3x_dota/model_final

pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/CSPResNetb_l_pretrained.pdparams
depth_mult: 1.0
width_mult: 1.0

2.coco_detection.yml

metric: COCO
#目标检测类型个数,根据实际要求设置
num_classes: 10

TrainDataset:
  name: COCODataSet
  #存放进行训练的图片文件夹
  image_dir: image
  #标注文件位置名称
  anno_path: train.json
  #数据集基础位置,设置以后相关文件位置会加上该路径 如:标注文件路径会变为dataset/coco/annotations/instances_train2017.json
  dataset_dir: dataset/coco
  data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']

EvalDataset:
  name: COCODataSet
  #存放进行评估的图片文件夹
  image_dir: image
  anno_path: val.json
  dataset_dir: dataset/coco
  allow_empty: true

TestDataset:
  name: ImageFolder
  anno_path: test.json # also support txt (like VOC's label_list.txt)
  dataset_dir: dataset/coco # if set, anno_path will be 'dataset_dir/anno_path'

3.optimizer_80e.yml

epoch: 130 #训练次数

LearningRate:
  base_lr: 0.001
  schedulers:
    - name: CosineDecay
      max_epochs: 100
    - name: LinearWarmup
      start_factor: 0.
      epochs: 5

OptimizerBuilder:
  optimizer:
    momentum: 0.9
    type: Momentum
  regularizer:
    factor: 0.0005
    type: L2

4. runtime.yml 

use_gpu: true #设置GPU训练
use_xpu: false
use_mlu: false
use_npu: false
log_iter: 20
save_dir: output
snapshot_epoch: 1
print_flops: false
print_params: false

# Exporting the model
export:
  post_process: True  # Whether post-processing is included in the network when export model.
  nms: True           # Whether NMS is included in the network when export model.
  benchmark: False    # It is used to testing model performance, if set `True`, post-process and NMS will not be exported.
  fuse_conv_bn: False

三、训练

启动命令:

python -m paddle.distributed.launch --gpus 0  ../tools/train.py -c ppyoloe_plus_crn_l_80e_coco.yml --amp

参数说明:

paddle.distributed.launch --gpus 0:设置用于训练的GPU设备编号

amp: 使用混合精度训练

四、导出模型

导出命令:

python ../tools/export_model.py -c ppyoloe_plus_crn_l_80e_coco.yml -o weights=output/model_final.pdparams

导出后生成的文件:

参数说明:

weights:导出的模型路径

五、部署推理

使用Paddle FastDeploy进行部署。

1.安装

cpu版本安装

pip install numpy opencv-python fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

gpu版本安装

pip install numpy opencv-python fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

2.推理

import cv2
import fastdeploy.vision as vision

#加载模型文件,本文使用的的PPYOLOE模型训练,所以命令如下
model = vision.detection.PPYOLOE("model.pdmodel","model.pdiparams","infer_cfg.yml")
#加载需要推理的图片
im = cv2.imread("000000014439.jpg")
#进行推理
result = model.predict(im)
#输入结果和效果图片
print(result)
vis_im = vision.vis_detection(im, result, score_threshold=0.5)
cv2.imwrite("vis_image.jpg", vis_im)

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值