paddleDetection预训练模型导出,并且给paddex使用

序言

最近准备用paddlex部署项目,但是踩了几天的坑发现paddleDetection中的模型并不能直接导出给paddlex使用,关键是paddleDetection使用python tools/export_model.py导出的配置文件是infer_cfg.yml,里面的内容与paddlex可以使用的model.yml有些区别,一种方法是找合适一个数据集,用paddlex中的train接口训练几轮,自动生成一个yml文件,另一种方法是自己生成一个yml文件。

下载paddleDetection权重文件

这里以ppyolov2为基础,首先进入paddleDetection仓库
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/ppyolo/README_cn.md
git仓库截图
下载完长这样
下载完长这样

导出模型

然后用导出模型工具导出,注意去config文件夹选择正确的配置文件

python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml --output_dir=./inference_model -o weights=ppyolov2_r50vd_dcn_365e_coco.pdparams

导出后的文件长这样
在这里插入图片描述

修改model.yml

这里可以先用paddlex中的train接口先训练一两轮, 得到一个model.yml文件,然后再修改

Model: PPYOLOv2
Transforms:
- Resize:
    interp: CUBIC
    keep_ratio: false
    target_size: !!python/tuple
    - 640
    - 640
- Normalize:
    is_scale: true
    max_val:
    - 255.0
    - 255.0
    - 255.0
    mean:
    - 0.485
    - 0.456
    - 0.406
    min_val:
    - 0
    - 0
    - 0
    std:
    - 0.229
    - 0.224
    - 0.225
_Attributes:
  best_accuracy: 7.663954650946425
  best_model_epoch: 1
  eval_metrics:
    bbox_map: 7.663954650946425
  fixed_input_shape: null
  labels:
  - person
  - bicycle
  - car
  - motorcycle
  - airplane
  - bus
  - train
  - truck
  - boat
  - traffic light
  - fire hydrant
  - stop sign
  - parking meter
  - bench
  - bird
  - cat
  - dog
  - horse
  - sheep
  - cow
  - elephant
  - bear
  - zebra
  - giraffe
  - backpack
  - umbrella
  - handbag
  - tie
  - suitcase
  - frisbee
  - skis
  - snowboard
  - sports ball
  - kite
  - baseball bat
  - baseball glove
  - skateboard
  - surfboard
  - tennis racket
  - bottle
  - wine glass
  - cup
  - fork
  - knife
  - spoon
  - bowl
  - banana
  - apple
  - sandwich
  - orange
  - broccoli
  - carrot
  - hot dog
  - pizza
  - donut
  - cake
  - chair
  - couch
  - potted plant
  - bed
  - dining table
  - toilet
  - tv
  - laptop
  - mouse
  - remote
  - keyboard
  - cell phone
  - microwave
  - oven
  - toaster
  - sink
  - refrigerator
  - book
  - clock
  - vase
  - scissors
  - teddy bear
  - hair drier
  - toothbrush
  model_type: detector
  num_classes: 80
_init_params:
  anchor_masks:
  - - 6
    - 7
    - 8
  - - 3
    - 4
    - 5
  - - 0
    - 1
    - 2
  anchors:
  - - 10
    - 13
  - - 16
    - 30
  - - 33
    - 23
  - - 30
    - 61
  - - 62
    - 45
  - - 59
    - 119
  - - 116
    - 90
  - - 156
    - 198
  - - 373
    - 326
  backbone: ResNet50_vd_dcn
  ignore_threshold: 0.7
  label_smooth: false
  nms_iou_threshold: 0.45
  nms_keep_topk: 100
  nms_score_threshold: 0.01
  nms_topk: -1
  num_classes: 80
  scale_x_y: 1.05
  use_drop_block: true
  use_iou_aware: true
  use_iou_loss: true
  use_matrix_nms: true
  use_spp: true
completed_epochs: 1
status: Infer
version: 2.1.0

其中的Model改为你自己的模型,但是只能是paddlex支持的模型
labels改为你自己的类别标签
num_classes改为类别总数,注意有两处要改
status改为Infer,如果使用的pdparams这些未导出前的为normal
version版本为paddlex版本

版权声明:本文为CSDN博主「Patience�」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45921929/article/details/123003108

Patience�

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

深度学习之目标检测YOLOv5

一.简介 YOLOV4出现之后不久,YOLOv5横空出世。YOLOv5在YOLOv4算法的基础上做了进一步的改进,检测性能得到进一步的提升。虽然YOLOv5算法并没有与YOLOv4算法进行性能比较与分析&#xff0