文章目录[隐藏]
序言
最近准备用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
下载完长这样
导出模型
然后用导出模型工具导出,注意去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
暂无评论