PaddleDetection——开始训练及评估预测

 2021SC@SDUSC 

开始训练

本项目在work/hw_configs/目录下提供以下配置文件

  • yolov3_mobilenet_v1_roadsign_voc_template.yml
  • yolov3_mobilenet_v1_roadsign_coco_template.yml
  • ppyolo_resnet50_vd_roadsign_coco_template.yml
  • faster_rcnn_r50_roadsign_coco_template.yml
  • faster_rcnn_r50_vd_fpn_roadsign_coco_template.yml
  • fcos_r50_roadsign_coco_template.yml

将~/work/hw_configs.zip解压到 configs 文件夹下

%cd ~/work/PaddleDetection/

!unzip -o ~/work/hw_configs.zip -d configs/

! ls configs/hw_configs/
# 选择配置开始训练。可以通过 -o 选项覆盖配置文件中的参数

# faster_rcnn_r50_vd_fpn
! python -u tools/train.py -c configs/hw_configs/faster_rcnn_r50_vd_fpn_roadsign_coco_template.yml -o use_gpu=True --eval

# yolov3
#! python -u tools/train.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o use_gpu=True --eval

# fcos
#! python -u tools/train.py -c configs/hw_configs/fcos_r50_roadsign_coco_template.yml -o use_gpu=True --eval

您可以通过指定visualDL可视化工具,对loss变化曲线可视化。您仅需要指定 use_vdl 参数和 vdl_log_dir 参加即可。

点击左侧 可视化 按钮,设置 logdir 和模型文件,就可以对训练过程loss变化曲线和模型进行可视化。

# 选择配置开始训练。可以通过 -o 选项覆盖配置文件中的参数 vdl_log_dir 设置vdl日志文件保存路径

# faster_rcnn_r50_vd_fpn
! python -u tools/train.py -c configs/hw_configs/faster_rcnn_r50_vd_fpn_roadsign_coco_template.yml -o use_gpu=True --use_vdl=True --vdl_log_dir=vdl_dir/scalar --eval

# yolov3
#! python -u tools/train.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o use_gpu=True --use_vdl=True --vdl_log_dir=vdl_dir/scalar --eval

# fcos
#! python -u tools/train.py -c configs/hw_configs/fcos_r50_roadsign_coco_template.yml -o use_gpu=True --use_vdl=True --vdl_log_dir=vdl_dir/scalar --eval

评估和预测

PaddleDetection也提供了tools/eval.py脚本用于评估模型,评估是可以通过-o weights=指定待评估权重。

PaddleDetection训练过程中若开始了--eval,会将所有checkpoint中评估结果最好的checkpoint保存为best_model.pdparams,可以通过如下命令一键式评估最优checkpoint

这里我们加载预训练好的权重进行预测:

  • https://paddlemodels.bj.bcebos.com/object_detection/yolov3_best_model_roadsign.pdparams
  • https://paddlemodels.bj.bcebos.com/object_detection/faster_r50_fpn_best_model_roadsign.pdparams
  • https://paddlemodels.bj.bcebos.com/object_detection/fcos_best_model_roadsign.pdparams
# 评估

# faster_rcnn_r50_vd_fpn
! python -u tools/eval.py -c configs/hw_configs/faster_rcnn_r50_vd_fpn_roadsign_coco_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_r50_fpn_best_model_roadsign.pdparams

# yolov3
#! python -u tools/eval.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_coco_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_best_model_roadsign.pdparams

# fcos
#! python -u tools/eval.py -c configs/hw_configs/fcos_r50_roadsign_coco_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/fcos_best_model_roadsign.pdparams

PaddleDetection提供了tools/infer.py预测工具,可以使用训练好的模型预测图像并可视化,通过-o weights=指定加载训练过程中保存的权重。

预测脚本如下:

img_path = './dataset/roadsign_voc/images/road554.png'

# faster_rcnn_r50_vd_fpn
! python tools/infer.py -c configs/hw_configs/faster_rcnn_r50_vd_fpn_roadsign_coco_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_r50_fpn_best_model_roadsign.pdparams --infer_img=dataset/roadsign_voc/images/road554.png

# yolov3
#! python tools/infer.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_best_model_roadsign.pdparams --infer_img=dataset/roadsign_voc/images/road554.png

# fcos
#! python tools/infer.py -c configs/hw_configs/fcos_r50_roadsign_coco_template.yml -o use_gpu=True weights=https://paddlemodels.bj.bcebos.com/object_detection/fcos_best_model_roadsign.pdparams --infer_img=dataset/roadsign_voc/images/road554.png
%matplotlib inline
import matplotlib.pyplot as plt 
import cv2

infer_img = cv2.imread("output/road554.png")
plt.figure(figsize=(15,10))
plt.imshow(cv2.cvtColor(infer_img, cv2.COLOR_BGR2RGB))
plt.show()

 

模型压缩

如果您要对模型进行压缩,PaddleDetection中模型压缩部分提供以下模型压缩方式:

模型部署

如果您要部署模型,请参考模型部署部分提供以下部署方式:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 YOLOv5 训练过程中,可以使用以下指令来得到训练结果中的 AP 值和 mAP 值: ``` python train.py --data coco.yaml --cfg models/yolov5s.yaml --weights '' --batch-size 64 --epochs 300 --device 0,1,2,3 --multi-scale --cache-images --name yolov5s_results --project yolov5_results --exist-ok --evolve ``` 其中,`--data` 指定数据集的配置文件,`--cfg` 指定模型的配置文件,`--weights` 指定预训练模型的权重文件,`--batch-size` 指定每个批次的图像数量,`--epochs` 指定训练的轮数,`--device` 指定训练使用的 GPU 设备编号,`--multi-scale` 表示使用多尺度训练,`--cache-images` 表示将图像缓存到内存中以加快训练速度,`--name` 指定训练结果保存的文件夹名称,`--project` 指定训练结果保存的项目名称,`--exist-ok` 表示如果训练结果文件夹已存在,则不会报错,而是继续训练,`--evolve` 表示进行超参数优化。 在训练完成后,可以使用以下指令来计算 AP 值和 mAP 值: ``` python val.py --data coco.yaml --weights runs/train/yolov5s_results/weights/best.pt --task val --img-size 640 --iou 0.65 --half --conf 0.001 --project yolov5_results --name yolov5s_results --exist-ok ``` 其中,`--data` 指定数据集的配置文件,`--weights` 指定训练完成后保存的模型权重文件,`--task` 指定需要进行的任务,`--img-size` 指定输入图像的尺寸,`--iou` 指定 IoU 阈值,`--half` 表示使用半精度浮点数计算,`--conf` 指定预测框的置信度阈值,`--project` 指定训练结果保存的项目名称,`--name` 指定训练结果保存的文件夹名称,`--exist-ok` 表示如果结果文件夹已存在,则不会报错,而是覆盖其中的文件。 计算完成后,AP 值和 mAP 值将会在控制台输出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值