基于PP-PicoDet的钢铁缺陷检测( 四 )


我们来看一下模型评估结果中的指标各自代表什么意思 。
8. 模型预测
模型预测也很简单,一行代码搞定,其中最常用的参数有:
--output_dir:保存检测结果的文件夹,默认保存在output文件夹 。--draw_threshold:可视化时分数的阈值,默认大于0.5的box会显示出来 。--save_txt:将图片的预测结果保存到文本文件中,与预测结果图片在同一文件夹下 。
#模型预测!python tools/infer.py -c configs/picodet/picodet_s_416_coco_lcnet.yml --infer_img=dataset/steel/test/IMAGES/1693.jpg -o weight=output/picodet_s_416_coco_lcnet/model_final.pdparams
9. 模型导出
在模型训练过程中保存的模型文件是包含前向预测和反向传播的过程,在实际的工业部署则不需要反向传播,因此需要将模型进行导成部署需要的模型格式 。
导出后的模型会保存在:
output_inference/picodet_s_416_coco_lcnet/
包含如下文件:
infer_cfg.ymlmodel.pdiparamsmodel.pdiparams.infomodel.pdmodel
导出后的文件,将用于后续的模型部署 。
# 导出模型!python tools/export_model.py -c configs/picodet/picodet_s_416_coco_lcnet.yml -o weight=output/picodet_s_416_coco_lcnet/model_final.pdparams
[12/13 18:17:47] ppdet.utils.checkpoint INFO: Finish loading model weights: output/picodet_s_416_coco_lcnet/model_final.pdparamsloading annotations into memory...Done (t=0.00s)creating index...index created![12/13 18:17:47] ppdet.engine INFO: Export inference config file to output_inference/picodet_s_416_coco_lcnet/infer_cfg.yml[12/13 18:17:53] ppdet.engine INFO: Export model and saved in output_inference/picodet_s_416_coco_lcnet
!python deploy/python/infer.py --model_dir=output_inference/picodet_s_416_coco_lcnet\--image_file=/home/aistudio/PaddleDetection/dataset/steel/test/IMAGES/1403.jpg\--device=GPU
import cv2import matplotlib.pyplot as pltimport numpy as npimage = cv2.imread('output/1693.jpg')plt.figure()plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))plt.show()
10 数据模型可视化
可视化—设置–选择/文件夹—启动服务
11 项目总结
本次项目的实践,从选题、确定数据集、选择模型、训练、评估、预测到导出模型,实现模型的可视化,是一次难得的全流程项目体验,感谢飞桨,提供的平台和算力,感谢高睿大佬()对此次任务的耐心指导 。
参考文献:
FLAG支持脚本用途默认值备注
-c
ALL
指定配置文件
None
必选,例如-c //.yml
-o
ALL
设置或更改配置文件里的参数内容
None
相较于-c设置的配置文件有更高优先级,例如:-o =False
–eval
train
是否边训练边测试
False
如需指定,直接--eval即可
-r/–
train
恢复训练加载的权重路径
None
例如:-r /oco/10000

ALL
模型压缩策略配置文件
None
例如-- /slim/prune/.yml

train/infer
是否使用记录数据,进而在面板中显示
False
需>=3.5

train/infer
指定记录数据的存储路径
train:/ infer: /image
需>=3.5

eval
评估阶段保存json路径
None
例如 --=, 默认为当前路径

eval
是否通过已存在的bbox.json或者mask.json进行评估
False
如需指定,直接--即可,json文件路径在--中设置

eval