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

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
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
data_dir='/public/work/Personal/wuxu/qiantao_17' for file1 in ${data_dir}/*.fasta; do for file2 in ${data_dir}/*.fasta; do if [ "$file1" != "$file2" ]; then touch snp_indel.end.sh && cat snp_indel.end.sh && \ export PATH=/public/work/Personal/pangshuai/software/conda/miniconda3/bin/:${PATH} && \ nucmer --mum -t 8 -g 1000 -p ${file1##*/}.${file2##*/}.ref_based.nucmer $file1 $file2 && \ delta-filter -1 -l 200 ${file1##*/}.${file2##*/}.ref_based.nucmer.delta > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter && \ dnadiff -d ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter -p ${file1##*/}.${file2##*/}.ref_based.nucmer && \ show-coords -rcloT ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.coords && \ show-coords -THrd ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.syri.coords && \ show-snps -ClrTH ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp && \ show-diff ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.inv && \ perl /public/work/Pipline/Structural_Variation/pipeline/2.1.1/bin/filter_the_MUmmer_SNP_file.pl ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.SNPs ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.Insertions ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.Deletions 10000000 && \ touch snp_indel.end.tmp && \ mv snp_indel.end.tmp snp_indel.end && \ sleep 10 fi done done ,增加一个判断,使/public/work/Personal/wuxu/qiantao_17路径下以.fasta结尾的文件两两一组不分前后只组合一次,然后再执行touch 后面的代码
06-03

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃油淋鸡的莫何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值