当前位置: 首页 > 工具软件 > PaddleClas > 使用案例 >

PaddleClas PaddleDetection使用总结:测试pipline.py文件能否正常运行& 如何训练自己的模型

闾丘冠玉
2023-12-01

PaddleClas PaddleDetection使用总结

前言:关于环境搭建,我是在本地windows系统上,有3060GPU显卡,驱动和cuda版本都是适配显卡的。cuda版本是11.2。我装了conda 4.10.3,Python3.8.8 , 直接在base环境下pip install Paddlepaddle。

一 PaddleDetection-2.5.0 (我理解的是用于检测)

ref1: 智慧交通:基于PP-Vehicle的交通监控分析系统_副本 (baidu.com)

ref2: 智慧交通:基于PP-Vehicle的交通监控分析系统 - 飞桨AI Studio (baidu.com)

ref3: PaddleDetection/PPVehicle_QUICK_STARTED.md at develop · PaddlePaddle/PaddleDetection · GitHub (github地址)

ref4:

1 测试pipline.py文件能否正常运行

1.1 【示例一】:采用了包含vehicle违停事件判断的配置文件验证。

(1)打开Anaconda Prompt
(2)cd 到D:\yolov5train\PaddleDetection目录下
(3)输入下列命令:(下列命令一行输入完成,不要回车,否则会报错)

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_illegal_parking.yml  --video_file=images/car_test.mov  --device=gpu  --draw_center_traj   --illegal_parking_time=3   --region_type=custom   --region_polygon 600 300 1300 300 1300 800 600 800
注意:

上述(3)中 --config 为配置文件路径,根据本地下载好的模型文件路径更改配置文件的内容;–video_file为待检测视频名称,pipeline.py文件的85-87行可以修改为对应的其他文件参数如camera_id,rtsp;–region_polygon 如果作违停判断,需要写入违停区域;–illegal_parking_time设定判断违停时长。

1.2 【示例二】:同【示例一】修改对应的配置文件或参数,采用其他模型查看效果。

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_vehicle_attr.yml  --video_file=images/car_test.mov  --device=gpu  --draw_center_traj

​ 上述命令中,指定 配置文件路径,修改相应配置文件中指定模型路径,指定pipline.py运行的相关参数以达到相应文件或功能的实现。

二 PaddleClas-release-2.5(我理解的用于 训练)

ref: GitHub - PaddlePaddle/PaddleClas: A treasure chest for visual classification and recognition powered by PaddlePaddle (github源码下载地址)

ref: 智慧交通:基于PP-Vehicle的交通监控分析系统 - 飞桨AI Studio (baidu.com)

ref: https://github.com/PaddlePaddle/PaddleDetection/blob/develop/deploy/pipeline/docs/tutorials/PPVehicle_QUICK_STARTED.md

2. 怎么训练一个自己的模型(PP-vehicle二次开发)

2.1 运行哪个文件,其中涉及的参数有哪些

​ 通过如下命令运行 ./PaddleClas-release-2.5/tools/train.py执行训练

export CUDA_VISIBLE_DEVICES=0,1,2,3
python3 -m paddle.distributed.launch --gpus="0,1,2,3" tools/train.py -c ./ppcls/configs/PULC/vehicle_attribute/PPLCNet_x1_0.yaml

上述命令中,-c ./ppcls/configs/PULC/vehicle_attribute/PPLCNet_x1_0.yaml 是对应训练所需的配置文件

其中涉及的参数:

(1)配置文件路径:PaddleClas-release-2.5\ppcls\configs\PULC\vehicle_attribute\PPLCNet_x1_0.yaml

(2)配置文件需要修改的内容:

① 修改Arch下的class_num,对应属性总位数。

# model architecture
Arch:
  name: "PPLCNet_x1_0"
  pretrained: True
  class_num: 19                           # 对应属性总位数

② 修改训练数据路径:修改DataLoader中Train、Eval下的 image_root和cls_label_path。分别表示训练数据根路径和标注文件路径(注意:标注文件train_list.txt中的图片路径是相对于image_root目录的相对路径。)如下

# data loader for train and eval
DataLoader:
  Train:
    dataset:
      name: MultiLabelDataset
      image_root: "dataset/VeRi/"                     # 训练数据根路径
      cls_label_path: "dataset/VeRi/train_list.txt"   # 标注文件路径
      label_ratio: True
      transform_ops:
      ... ...
      
  Eval:
    dataset:
      name: MultiLabelDataset
      image_root: "dataset/VeRi/"                    # 验证数据根路径
      cls_label_path: "dataset/VeRi/test_list.txt"
      label_ratio: True
      transform_ops:

③ 其他参数可以根据实际情况修改。

2.2 数据集的准备

标注数据格式: 车辆属性模型采用VeRi数据集的属性,共计10种车辆颜色及9种车型, 具体如下:

# 车辆颜色
- "yellow"
- "orange"
- "green"
- "gray"
- "red"
- "blue"
- "white"
- "golden"
- "brown"
- "black"

# 车型
- "sedan"
- "suv"
- "van"
- "hatchback"
- "mpv"
- "pickup"
- "bus"
- "truck"
- "estate"

在标注文件中使用长度为19的序列来表示上述属性。例如:

[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]

2.3 评估和模型导出

训练完成后可以执行以下命令进行性能评估:

export CUDA_VISIBLE_DEVICES=0,1,2,3
python3 -m paddle.distributed.launch --gpus="0,1,2,3" tools/eval.py -c ./ppcls/configs/PULC/vehicle_attribute/PPLCNet_x1_0.yaml -o Global.pretrained_model=./output/PPLCNet_x1_0/best_model

如果模型性能达到预期,可以使用以下命令导出模型,就可以在PP-Vehicle中使用了。

python3 tools/export_model.py  -c ./ppcls/configs/PULC/vehicle_attribute/PPLCNet_x1_0.yaml  -o Global.pretrained_model=output/PPLCNet_x1_0/best_model  -o Global.save_inference_dir=deploy/models/PPLCNet_x1_0_vehicle_attribute_model

2.4 在PP-vehicle中使用

​ 在PP-Vehicle的配置文件中使用修改属性模型路径为刚导出的模型路径

配置文件路径:PaddleDetection\deploy\pipeline\config\infer_cfg_ppvehicle.yml

修改该配置文件中的 VEHICLE_ATTR 下的 model_dir 。

VEHICLE_ATTR:
  model_dir: deploy/pipeline/ppvehicle/rec_word_dict.txt
  batch_size: 8
  color_threshold: 0.5
  type_threshold: 0.5
  enable: False
 类似资料: