1 参数量(Parameters)
在目标检测模型中,参数量通常指的是模型中可学习参数的总数。参数量是衡量模型复杂度的一个重要指标,它直接影响到模型的存储需求、计算成本以及训练时间。参数量的多少也与模型的容量有关,即模型能够学习的特征信息量。
total_params = sum(p.numel() for p in model.parameters())
total_params += sum(p.numel() for p in model.buffers())
print(f'{total_params:,} total parameters.')
print(f'{total_params/(1024*1024):.2f}M total parameters.')
total_trainable_params = sum(
p.numel() for p in model.parameters() if p.requires_grad)
print(f'{total_trainable_params:,} training parameters.')
print(f'{total_trainable_params/(1024*1024):.2f}M training parameters.')
2 运算量 (GFLOPS)
GFLOPS衡量的是模型每秒能执行的浮点运算次数,单位是十亿(Giga)次浮点运算。在目标检测模型中,一个模型的GFLOPS越高,表示该模型在硬件上执行运算的能力越强。GFLOPS是衡量算法计算复杂度的指标,通常与模型的参数量和运算量相关。例如,一个具有大量参数和复杂运算的深度学习模型会有更高的GFLOPS需求
3 推理速度(FPS)
FPS衡量的是模型每秒能处理多少帧图像,即每秒可以完成多少次目标检测。在目标检测中,FPS是衡量模型实时性能的关键指标。一个高FPS值意味着模型可以快速处理输入图像并给出检测结果,这对于需要实时反馈的应用场景(如视频监控、自动驾驶等)非常重要。FPS受多种因素影响,包括模型的GFLOPS、硬件的计算能力、优化算法等
其公式为:
4 交并比(IoU, Intersection over Union)
预测边界框与真实边界框的交集面积与并集面积之比。IoU越大,说明预测边界框与真实边界框越相似。
5 精度(Precision)
精度关注的是模型预测为正类(positive class)中真正为正类的比例,即预测正确的正类样本占所有预测为正类样本的比例。其计算公式为:
其中:
- 𝑇𝑃(True Positives)是真正例的数量,即模型正确预测为正类(如检测到物体)的样本数。
- 𝑇𝑁(True Negatives)是真负例的数量,即模型正确预测为负类(如未检测到物体)的样本数。
- 𝐹𝑃(False Positives)是假正例的数量,即模型错误预测为正类(如将背景错误识别为物体)的样本数。
- 𝐹𝑁(False Negatives)是假负例的数量,即模型错误预测为负类(如未能检测到实际存在的物体)的样本数。
6 召回率(Recall)
-
召回率(Recall): 召回率关注的是模型预测正确的正类样本占所有实际正类样本的比例,即模型能够找出的正类样本占全部正类样本的比例。其计算公式为:
其中:
7 F1分数
在实际应用中,精度和召回率往往是一对矛盾的指标:提高精度可能会降低召回率,反之亦然。因此,寻找两者之间的平衡是分类模型优化的一个重要方面。F1分数(F1 Score)是一个综合考虑精度和召回率的指标,计算公式为:
F1分数的值介于0和1之间,1表示完美平衡的精度和召回率。
8 准确率(Accuracy)
准确率(Accuracy)是分类任务中一个非常基础且直观的性能评价指标,它用来衡量模型正确分类的样本数占总样本数的比例。在目标检测任务中,准确率通常不是首选的评价指标,因为它不能很好地反映类别不平衡问题,但在某些情况下仍然会被用来作为一个简单的参考指标。
准确率的计算公式如下:
在目标检测中,准确率可能过于简化,因为它没有考虑到预测边界框的准确性,也没有考虑到不同类别的不平衡问题。因此,更常用的评价指标是平均精度(AP)和均值平均精度(mAP),它们能够更细致地反映模型在各个类别上的性能。
9 平均精度(AP, Average Precision)
平均精度(AP)是目标检测领域中一个重要的性能评价指标,特别是当数据集中存在类别不平衡问题时。AP 考虑了模型在不同置信度阈值下的表现,并且能够更细致地反映模型在各个类别上的性能。
AP 的计算涉及以下步骤:
-
计算Precision-Recall曲线:对于每个类别,根据模型预测的结果,按照置信度从高到低排序,然后逐步增加阈值,对于每个阈值:
- Precision(查准率):在高于当前阈值的预测中,真正例(TP)占所有预测为正例(TP+FP)的比例,即 。
- Recall(查全率):真正例(TP)占所有实际正例(TP+FN)的比例,即 。
-
计算累积Precision:随着阈值的降低,累积Precision是Precision的累计最大值序列。
-
计算AP:对于每个类别,AP是Precision-Recall曲线下的面积,可以通过梯形法则(trapezoidal rule)来近似计算。具体来说,对于每个阈值 的Precision 和 以及对应的Recall 和,面积的近似值为:
其中,和 是在阈值 和 之间的所有预测的Precision和Recall的平均值。
-
计算mAP:如果需要评估模型在多个类别上的整体性能,可以计算所有类别的AP值的平均值,得到均值平均精度(mAP)。
请注意,AP 的计算依赖于IoU(Intersection over Union)阈值来决定一个预测是否为TP或FP。通常,IoU阈值设定为0.5,意味着只有当预测边界框和真实边界框的IoU大于0.5时,该预测才被认为是正确的。
10 均值平均精度(mAP, mean Average Precision)
所有类别的AP的平均值,用来衡量模型的整体性能。mAP是目标检测领域中最常用的评价指标之一,它在多个召回率阈值下计算精度的平均值。
-
计算每个类别的AP(Average Precision):如上所示
-
计算mAP: 一旦计算出每个类别的AP,mAP就是这些AP值的平均值。
其中,𝑁是类别的总数,𝐴𝑃𝑖是第𝑖个类别的平均精度。
mAP是一个综合考虑了精确度和召回率的指标,它能够平衡模型对于不同类别的识别能力。在一些情况下,mAP还会对小目标和大目标进行加权,以更公平地评估模型性能,这被称为加权平均精度(weighted mAP,wmAP)。