使用yolov8做目标检测任务的时候我修改了iou和conf两个超参数,为什么训练的时候还是只显示map50和map50-95。
epoch结束后以后的模型评估你是怎么设置的
根据参考资料中的段落11,我们可以在yolov8中修改IOU阈值和置信度这两个超参数,以获取更全面的评估指标。
首先,需要修改默认超参数。默认超参数位于hpy.scratch.yaml文件中。我们可以通过修改该文件来改变IOU阈值和置信度的取值。
接下来,根据段落1的说明,最佳推理结果是在训练和推理时使用相同的图像分辨率。因此,我们需要调整训练时的图像分辨率。可以使用命令行参数"--img"来设置训练时的图像分辨率。例如,使用"--img 1280"来训练时,推理时也要使用"--img 1280"进行测试。
然后,根据段落11的建议,我们可以尝试增加数据增强的超参数。增加数据增强可以减少过拟合,并提高最终的mAP值。
最后,我们可以尝试减少特定loss组件的过拟合。具体来说,可以修改hyp['obj']参数来减少对目标检测组件的过拟合。
综上所述,我们可以通过修改超参数和调整图像分辨率来改变IOU阈值和置信度,以获取更全面的评估指标。以下为示例代码:
# 修改超参数文件 hpy.scratch.yaml
iou_threshold: 0.5 # 设置IOU阈值
conf_threshold: 0.5 # 设置置信度阈值
# 调整图像分辨率
# 在训练时使用"--img 1280"来设置图像分辨率
# 在推理时也要使用"--img 1280"进行测试
# 增加数据增强
# 可以尝试增加数据增强的超参数,例如增加mosaic,mixup等操作
# 减少特定loss组件的过拟合
# 修改hyp['obj']参数来减少对目标检测组件的过拟合
map和你设置的iou conf无关,你设置的这两个参数是在检测阶段用的。
mAP@0.5参数的含义就是在IoU=0.5的情况下计算出来的每类AP的平均值,
mAP@0.5:0.95是指IoU 从0.5到0.95,以步长0.05计算出来每一个步长的平均AP