MMDetection评价标准Precision,Recall

自己最近也在使用mmdetection,过程中自己也遇到了一些问题,想分享一下解决的方法可以供大家参考,希望能对需要的人有所帮助。本人在这方面也是一个新手,所以欢迎大家跟我交流心得。

关于mmdetection中的评价指标,mAP是训练和测试都会直接打印的,这里就不过多赘述。主要讲的是打印precision和recall这两个指标。这里的precision和recall跟yolo中的一样,都是根据绘制的混淆矩阵进行计算求得的。 

首先使用我们训练好的模型进行测试并生成.pkl文件,这个文件是关键,通过运行以下命令(修改引号中对应的三个参数,运行时不带引号),运行后找到生成的pkl文件。

python tools/test.py '模型配置文件的路径,在config文件夹中的对应的模型的py文件' '训练好的权重路径,.pth文件的路径' '--out' '.pkl文件保存路径,例:

python tools/test.py configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py work_dirs/faster-rcnn_r50_fpn_1x_coco/epoch_12.pth results/faster-rcnn /faster-rcnn.pkl

修改tools/analysis_tools/confusion_matrix.py文件,在底部添加代码

# 计算每个类别的精确率和召回率
precision_per_class = []
recall_per_class = []

for i in range(len(confusion_matrix)-1):
    tp = diagonal_elements[i]
    precision = tp / np.sum(confusion_matrix[:, i]) if np.sum(confusion_matrix[:, i]) > 0 else 0
    recall = tp / np.sum(confusion_matrix[i, :]) if np.sum(confusion_matrix[i, :]) > 0 else 0
    precision_per_class.append(precision)
    recall_per_class.append(recall)

precision_per_class = np.array(precision_per_class)
recall_per_class = np.array(recall_per_class)

# 计算总体的平均精确率和召回率
mean_precision = np.mean(precision_per_class)
mean_recall = np.mean(recall_per_class)

print("每类的精确率:", precision_per_class)
print("每类的召回率:", recall_per_class)
print("总体平均精确率:", mean_precision)
print("总体平均召回率:", mean_recall)


 运行以下命令(原理同上)

python tools/analysis/confusion_matrix.py '模型配置文件的路径,在config文件夹中的对应的模型的py文件' '.pkl文件的路径' '生成文件保存路径',例:

 python tools/analysis_tools/confusion_matrix.py configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py results/faster-rcnn/faster-rcnn.pkl results/faster-rcnn
 

注意!!!混淆矩阵除了我们自己数据集已有的标签外,会额外加一个background标签,比如说我的数据集有11类,那么混淆矩阵就是12×12的,在使用混淆矩阵进行单类的precision和recall计算时,往往会算上background,这是正常的,但是在计算precision和recall的平均值时,也就是我们最后需要的precision和recall的指标时,我看到的文章的代码都没有把background给去掉,而是直接对混淆矩阵所有类别的precision和recall直接求平均,这样会导致真实值偏低,因为background的precision和recall的值都是0。我的这个代码是在计算最后的平均值的时候把background给去掉了,所以可以放心使用。

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: mmdetection是一个用于目标检测任务的开源框架,它提供了一系列常用的评价指标,用于评估训练模型的性能和准确率。 mmdetection主要包括以下几个评价指标: 1. 平均精度均值(mAP):mAP是目标检测任务中最常用的评价指标之一。它计算了检测模型在不同IOU阈值下的平均精度,并综合考虑了检测框的准确性和召回率。 2. Precision-Recall 曲线(PR 曲线):PR曲线展示了在不同阈值下模型的召回率和准确率之间的关系,可以帮助了解模型的性能表现。 3. IoU(Intersection over Union):IoU是指预测框(Detection)与真实框(Ground Truth)之间的交并比。IoU通常被用来计算检测模型预测的准确度,当IoU大于设定阈值时,认为该预测框与真实框匹配。 4. Recall(召回率):召回率是指模型能够正确检测到所有正样本的能力。召回率越高,说明模型的检测能力越强。 5. Precision(精确度):精确度是指模型正确检测到的正样本与所有检测到的样本之间的比例。精确度越高,说明模型的误检率越低。 6. F1-Score:F1-Score综合了精确度和召回率两个指标。它是二者的调和平均数,能够更好地评估模型的性能。 通过对这些指标的评估,可以综合分析模型的准确性和鲁棒性,为模型的优化和改进提供指导和依据。 ### 回答2: MMDetection是一个用于目标检测的开源项目,它提供了一种将深度学习模型与目标检测任务结合的框架。评价指标是衡量模型性能的标准,可以用来比较不同模型的准确性和鲁棒性。 在MMDetection中,常用的评价指标包括精确率(Precision)、召回率(Recall)和F1值。精确率是指模型正确预测为正例的样本占所有预测为正例的样本的比例,召回率是指模型正确预测为正例的样本占真实正例样本的比例。F1值是精确率和召回率的加权调和平均,可以综合评估模型的性能。 除了精确率、召回率和F1值,还有其他一些常见的评价指标,例如平均精确率均值(mAP)和Mean Average Precision at different IoU thresholds (mAP@[0.5:0.95])。mAP是对所有类别的平均精确率进行平均,用于度量模型的综合目标检测性能。而mAP@[0.5:0.95]是在不同的IoU阈值下计算的mAP值,可以更全面地评估模型在不同IoU要求下的准确性。 此外,MMDetection还可以计算不同尺度下的mAP和不同透明度下的mAP。这些指标可以更详细地评估模型在不同条件下的表现,帮助研究者和开发者选择合适的模型和调整训练策略。 总之,MMDetection提供了一系列评价指标来评估目标检测模型的性能,通过比较这些指标可以选择最佳的模型和优化训练策略,提高目标检测任务的准确性和鲁棒性。 ### 回答3: MMDetection 是一个用于目标检测的开源深度学习框架。评价指标是用来衡量目标检测算法性能的标准,可以帮助我们比较不同算法在目标检测任务上的表现。 在 MMDetection 中,常用的评价指标有以下几个: 1. 平均精度(Average Precision,AP):AP 是最常用的目标检测评价指标之一。它通过计算预测框和真实标注框之间的 IOU(交并比),来判断检测是否成功。AP 值越高,表示检测算法的性能越好。 2. 平均召回率(Average Recall,AR):AR 是指在不同的置信度阈值下,检测算法能够检测到的真实标注框的比例。AR 值越高,表示检测算法在不同置信度下的稳定性越好。 3. 精确率(Precision):精确率表示检测出的正样本中真实标注为正的比例。精确率越高,表示检测算法的误检率越低。 4. 召回率(Recall):召回率表示真实标注为正的样本被检测出的比例。召回率越高,表示检测算法的漏检率越低。 5. 特定类别指标(Class-specific metrics):对于多类别目标检测任务,可以计算每个类别的精确率、召回率、AP 值等指标,用于衡量不同类别的检测性能。 通过以上评价指标,我们可以客观地评估 MMDetection 框架在目标检测任务上的性能,并比较不同算法在准确率、召回率等方面的优劣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值