引言:性能指标是评估对象检测模型的准确性和效率的关键工具。它们阐明了模型如何有效地识别和定位图像中的对象。这些见解对于评估和增强模型的性能至关重要。下面是我再yolov8训练过程中一些遇到的map过低的一些解决办法和见解
我遇到的问题是数据集过大,导致训练不充分可以两种方法解决
子集训练
子集训练是一种智能策略,涉及在表示较大数据集的较小数据集上训练模型。它可以节省时间和资源,尤其是在初始模型开发和测试期间。如果您时间紧迫或尝试不同的模型配置,子集训练是一个不错的选择。
fraction
参数。此参数允许您指定数据集中用于训练的比例。例如,将 fraction=0.1
将在 10% 的数据上训练模型。在提交使用完整数据集训练模型之前,可以使用此技术进行快速迭代和调整模型。子集训练可帮助您快速取得进展并及早发现潜在问题。
多尺度培训
多尺度训练是一种通过在不同尺寸的图像上进行训练来提高模型泛化能力的技术。您的模型可以学会检测不同尺度和距离的物体,从而变得更加强大。
scale
参数。此参数按指定因子调整训练图像的大小,模拟不同距离的对象。例如将 scale=0.5
会将图像大小减小一半,而 scale=2.0
会翻倍。配置此参数可让您的模型体验各种图像比例,并提高其在不同对象大小和场景中的检测能力。
对于人脸表情检测,可以将scale 设置为2.0以应对map过小,fraction设置为0.5以应对10000张训练集导致速度过慢
一 .map介绍
-
mAP:适用于对模型性能进行广泛评估。
-
低 mAP:表示模型可能需要全面改进。
-
Box(P、R、mAP50、mAP50-95):该指标可帮助我们深入了解模型在检测物体方面的性能:
-
P(精确度):检测物体的精确度,表示有多少检测是正确的。
-
R(召回率):模型识别图像中所有物体实例的能力。
-
mAP50:按 0.50 的交集大于联合(IoU)阈值计算的平均精度。这是仅考虑 "容易 "检测的模型精确度的衡量标准。
-
mAP50-95:在 0.50 至 0.95 之间的不同 IoU 门限下计算得出的平均精度的平均值。它全面反映了模型在不同检测难度下的表现。
-
平均精度 (AP):AP 计算精度-召回曲线下的面积,提供一个包含模型精度和召回性能的单一值。
-
平均精度(mAP):mAP 通过计算多个对象类别的平均精度值,扩展了 AP 的概念。这在多类物体检测场景中非常有用,可以全面评估模型的性能。
-
精确度和召回率:精度量化了所有阳性预测中的真阳性比例,评估模型避免假阳性的能力。另一方面,召回率计算的是真阳性预测在所有实际阳性预测中所占的比例,衡量的是模型检测出某类所有实例的能力。
-
F1 分数:F1 分数是精确度和召回率的调和平均值,在考虑假阳性和假阴性的同时对模型的性能进行均衡评估。
-
一.影响 map的一些性能指标
-
IoU:在需要精确定位目标时必不可少。
-
精确:当优先考虑尽量减少误检测时非常重要。
-
召回:在需要检测对象的每个实例时非常重要。
-
F1 分数:在需要平衡精确度和召回率时非常有用。
三.解决办法
下面三个案例应对map过低
案例 1
-
情况:mAP 和 F1 分数都不理想,但召回率很高,精度却不高。
-
解释与行动:错误检测可能太多。收紧置信度阈值可以减少错误检测,但也可能会略微降低召回率。
案例 2
-
情况:MAP 和 Recall 可以接受,但 IoU 不足。
-
解释与行动:模型能很好地检测物体,但可能无法精确定位。改进边界框预测可能会有所帮助。
案例 3
-
情况:有些班级的 AP 比其他班级低得多,即使总的 mAP 还不错。
-
解释与行动:这些类别对模型来说可能更具挑战性。在训练过程中为这些类别使用更多数据或调整类别权重可能会有所帮助。
或者修改
backbone
修改主干部分,使用常用的一个强的backbone一般都会带来mAP的提升,但是在考虑速度的情况下,还是要谨慎使用过大的backbone。。
fpn
目前我只是使用过fpn,是不是其他的fpn会带来提升我也没试过。
标签:map,训练,指数,检测,模型,mAP,yolov8,召回 From: https://blog.csdn.net/weixin_62323885/article/details/142904509