一. val.py 介绍
主要用于评估已经训练好的模型的性能和精度。通过在验证集上运行模型,计算模型在检测任务上的指标和评估结果。
具体来说功能如下:
-
加载模型和数据:
val.py
会加载训练好的模型权重文件和用于验证的数据集。它会根据配置文件中的设置,加载模型架构和权重,并准备验证数据。 -
图像预处理:在验证过程中,输入图像会被预处理以适应模型的要求。这包括调整图像大小、归一化像素值等操作,以确保输入图像符合模型的要求。
-
模型推理:
val.py
在验证集上运行模型进行推理。它会将预处理后的图像输入模型,得到模型对图像中目标的预测结果。 -
后处理和评估:在模型推理完成后,
val.py
会对模型的输出结果进行后处理。它会将模型输出的边界框进行解码和筛选,并计算预测结果的精度指标,如精确率、召回率、平均精确率等。 -
输出结果和指标:
val.py
会将评估结果和指标打印输出到控制台,以提供模型在验证集上的性能信息。这些信息可以用于评估模型的准确性和优化模型的参数和超参数。
通过运行 val.py
脚本,可以对已训练的模型进行验证,了解模型在检测任务上的表现,并根据评估结果进行优化和改进。
二. 使用说明
使用如下指令:
python3 val.py --weights best.engine --data ./dataset/dataset.yaml --half --imgsz 640
参数 | 说明 |
---|---|
–weights best.engine | 指定模型(best.engine 为使用 Tensorrt 加速的模型) |
–data ./dataset/dataset.yaml | 指定验证数据集 |
–half | 使用半精度 FP16 计算 |
–imgsz 640 | 指定图片尺寸为 640*640,源码默认无法验证长方形图片,即输入长方形尺寸将会报错 |
另外还需要保证如何参数设置与检测推理时一样,否则验证结果是无效,不能代表检测推理情况:
参数 | 说明 |
---|---|
–conf-thres | 置信度阈值 |
–iou-thres | 非最大抑制(NMS)时的IOU阈值。IOU阈值指定了两个边界框之间的最小重叠程度 |
三. 参考连接:
- YOLOv5-6.2 val.py 验证模型在自定义数据集上的效果 精度0.995
- YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析