El modelo de preentrenamiento de PaddleDetection se exporta y se usa para paddex

El modelo de preentrenamiento de PaddleDetection se exporta y se usa para paddex

preámbulo

Recientemente, planeo usar paddlex para implementar el proyecto, pero después de algunos días de dificultades, descubrí que el modelo en paddleDetection no se puede exportar directamente a paddlex.La clave es que el archivo de configuración exportado por paddleDetection es infer_cfg.yml, python tools/export_model.pyy el contenido es el mismo que el modelo que puede usar paddlex. Hay algunas diferencias en yml. Un método es encontrar un conjunto de datos adecuado, usar la interfaz de tren en paddlex para entrenar durante varias rondas y generar automáticamente un archivo yml. El otro método es generar un archivo yml por sí mismo.

Descargar archivo de pesos de paddleDetection

Aquí se basa en ppyolov2, primero ingrese al almacén de paddleDetection
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/ppyolo/README_cn.md
Captura de pantalla del repositorio git
Después de la descarga, se ve así
Después de descargar se ve así

modelo de exportación

Luego use la herramienta de modelo de exportación para exportar, preste atención para ir a la carpeta de configuración para seleccionar el archivo de configuración correcto

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

El archivo exportado se ve así
inserte la descripción de la imagen aquí

Modificar modelo.yml

Aquí puede usar la interfaz de entrenamiento en paddlex para entrenar durante una o dos rondas primero, obtener un archivo model.yml y luego modificarlo

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

El modelo en él se cambia a su propio modelo, pero solo se
cambia el modelo compatible con paddlex. Las etiquetas se cambian a su propia categoría, la etiqueta
num_classes se cambia al número total de categorías. Tenga en cuenta que hay dos lugares para cambiar
el estado a Inferir. Si no se exportan los pdparams usados ​​La versión anterior es la
versión normal y la versión paddlex

Supongo que te gusta

Origin blog.csdn.net/weixin_45921929/article/details/123003108
Recomendado
Clasificación