You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过TensorFlow目标检测API获取预训练模型准确率与混淆矩阵

TensorFlow目标检测API计算准确率、生成混淆矩阵方案

官方自带的评估脚本默认只会输出COCO标准的AP/AR指标,不会直接给准确率和混淆矩阵——毕竟目标检测是定位+分类的联合任务,没有分类任务那种开箱即用的全局准确率定义,得自己写个小脚本跑验证集统计,步骤很简单:


前置说明

你现在用的评估命令调用的是官方model_main_tf2.py脚本,输出的AP/AR是目标检测领域的通用指标,其中你这个结果里AP@IoU=0.5 = 1.0已经说明在0.5的IoU阈值下,模型的车牌检测几乎没有错检、漏检,mAP偏低是高IoU阈值下框的定位精度不够拉低了平均值。
要统计准确率和混淆矩阵,首先要固定匹配规则:预测框和真实框的IoU超过设定阈值(车牌场景选0.5即可)才算定位有效,之后再统计分类匹配情况。


具体实现步骤

  • 第一步:加载训练好的模型
    用TF目标检测API自带的工具加载配置和训练好的权重,参考代码:
    import tensorflow as tf
    from object_detection.builders import model_builder
    from object_detection.utils import config_util, label_map_util
    
    # 加载模型配置
    configs = config_util.get_configs_from_pipeline_file("你的pipeline_config.config文件路径")
    detection_model = model_builder.build(model_config=configs["model"], is_training=False)
    
    # 加载训练好的 checkpoint
    ckpt = tf.compat.v2.train.Checkpoint(model=detection_model)
    ckpt.restore("你的checkpoint目录下最新的ckpt文件路径").expect_partial()
    
    # 加载类别映射
    category_index = label_map_util.create_category_index_from_labelmap("你的label_map.pbtxt路径", use_display_name=True)
    
  • 第二步:遍历验证集做推理
    逐张读取验证集的图片、对应真实标注框和类别,输入模型得到预测结果,先过滤掉置信度低于你设定阈值(一般选0.5)的低置信度预测框。
  • 第三步:框匹配统计
    对每张图的真实框和预测框两两计算IoU,优先匹配IoU最大的框对:
    • 匹配成功的框对,记录对应的「真实类别-预测类别」标签对
    • 没匹配上的真实框记为漏检,预测类别记为「背景」
    • 没匹配上的预测框记为误检,真实类别记为「背景」
  • 第四步:计算指标、生成混淆矩阵
    • 准确率计算:目标检测场景一般没有统一的准确率定义,你可以根据需求自定义:如果要算检测精确率,就用「定位+分类都正确的样本数 / 所有模型输出的预测框总数」;如果要算全局准确率,就用「正确检测数 /(正确检测数+漏检数+误检数)」即可。
    • 混淆矩阵生成:把所有统计得到的真实标签、预测标签整理成两个列表,直接调用sklearn.metrics.confusion_matrix就能生成统计结果,搭配seaborn的heatmap可以直接做可视化。如果你是单类别车牌检测,混淆矩阵只会有3类结果:车牌检对、车牌漏检、背景误检成车牌。

你当前使用的评估命令参考:

command = "python {} --model_dir={} --pipeline_config_path={} --checkpoint_dir={}".format(TRAINING_SCRIPT, paths['CHECKPOINT_PATH'],files['PIPELINE_CONFIG'], paths['CHECKPOINT_PATH'])

现有评估输出参考:

Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.543641
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 1.00000
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.623451
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.570156
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.566508
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.514109
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.573684
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.636842
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.636842
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.666667
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.630769
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.633333

内容的提问来源于stack exchange,提问作者Irdina Hidayah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:45:48