首页
/ TensorFlow 2 目标检测模型库(Detection Model Zoo)全解:COCO 预训练权重清单、指标解读与迁移使用指南

TensorFlow 2 目标检测模型库(Detection Model Zoo)全解:COCO 预训练权重清单、指标解读与迁移使用指南

2026-09-06 19:12:39作者:宗隆裙

本文聚焦当前仓库中 tf2_detection_zoo.md 所收录的 TensorFlow 2 目标检测模型库:它是以 COCO 2017 数据集预训练的一组检测模型清单,覆盖 SSD/RetinaNet、EfficientDet、CenterNet、Faster R-CNN、Mask R-CNN 等主流架构与多种输入分辨率。读者可通过本文掌握该模型库的完整条目与速度/精度数据、理解 Boxes/Keypoints/Masks 等不同输出形式,并学会三种典型用法——开箱即用推理、在新数据集上做迁移微调、以及面向移动端导出与部署。

一、什么是 TF2 Detection Model Zoo

TensorFlow 2 Object Detection API 的整体体系中,模型库(Model Zoo)承担"预训练权重供给站"的角色。仓库中该模型库的官方入口即是 tf2_detection_zoo.md,配套的能力地图如下:

  • 模型库:收录基于 COCO 2017 数据集预训练的检测模型,可直接用于"类别恰好落在 COCO 80 类之内"的场景做即时推理(out-of-the-box inference);
  • 迁移起点:这些权重同样适合作为新数据集训练的初始化参数,尤其是数据量较小时可显著加速收敛;
  • 端侧延伸:其中符合条件(主要是 SSD 系列)的模型可转换为 TensorFlow Lite 用于移动端推断;
  • 从零复现:如果希望从零训练同类模型,对应的 pipeline 配置放在 configs/tf2 目录中,也随官方发布的可下载 tar.gz 一并提供。

该模型库与 TF2 训练/评估体系的关系,可参考 tf2_training_and_evaluation.md——其"Model Parameter Initialization"一节明确指出:用户可用两类预训练权重来初始化模型,分类权重清单见 tf2_classification_zoo.md,检测权重清单就是本模型库。

二、完整模型清单

下表完整保留原文档所列全部条目。其中 Speed (ms) 表示模型推理耗时(毫秒,数值越小越快),COCO mAP 表示在 COCO 指标下的平均精度,输出列说明模型产出的是检测框(Boxes)、关键点(Keypoints)还是掩码(Masks)。原文档中每个模型名称均链接到一个包含模型权重(checkpoint)与配置的 tar.gz 压缩包;本仓库内与之等价的 pipeline 配置文件可在 configs/tf2 找到。

2.1 CenterNet 系列

模型名称 输入尺寸 Speed (ms) COCO mAP 输出
CenterNet HourGlass104 512x512 512x512 70 41.9 Boxes
CenterNet HourGlass104 Keypoints 512x512 512x512 76 40.0/61.4 Boxes/Keypoints
CenterNet HourGlass104 1024x1024 1024x1024 197 44.5 Boxes
CenterNet HourGlass104 Keypoints 1024x1024 1024x1024 211 42.8/64.5 Boxes/Keypoints
CenterNet Resnet50 V1 FPN 512x512 512x512 27 31.2 Boxes
CenterNet Resnet50 V1 FPN Keypoints 512x512 512x512 30 29.3/50.7 Boxes/Keypoints
CenterNet Resnet101 V1 FPN 512x512 512x512 34 34.2 Boxes
CenterNet Resnet50 V2 512x512 512x512 27 29.5 Boxes
CenterNet Resnet50 V2 Keypoints 512x512 512x512 30 27.6/48.2 Boxes/Keypoints
CenterNet MobileNetV2 FPN 512x512 512x512 6 23.4 Boxes
CenterNet MobileNetV2 FPN Keypoints 512x512 512x512 6 41.7 Keypoints

2.2 EfficientDet 系列

模型名称 输入尺寸 Speed (ms) COCO mAP 输出
EfficientDet D0 512x512 512x512 39 33.6 Boxes
EfficientDet D1 640x640 640x640 54 38.4 Boxes
EfficientDet D2 768x768 768x768 67 41.8 Boxes
EfficientDet D3 896x896 896x896 95 45.4 Boxes
EfficientDet D4 1024x1024 1024x1024 133 48.5 Boxes
EfficientDet D5 1280x1280 1280x1280 222 49.7 Boxes
EfficientDet D6 1280x1280 1280x1280 268 50.5 Boxes
EfficientDet D7 1536x1536 1536x1536 325 51.2 Boxes

2.3 SSD / RetinaNet 系列

模型名称 输入尺寸 Speed (ms) COCO mAP 输出
SSD MobileNet v2 320x320 320x320 19 20.2 Boxes
SSD MobileNet V1 FPN 640x640 640x640 48 29.1 Boxes
SSD MobileNet V2 FPNLite 320x320 320x320 22 22.2 Boxes
SSD MobileNet V2 FPNLite 640x640 640x640 39 28.2 Boxes
SSD ResNet50 V1 FPN 640x640 (RetinaNet50) 640x640 46 34.3 Boxes
SSD ResNet50 V1 FPN 1024x1024 (RetinaNet50) 1024x1024 87 38.3 Boxes
SSD ResNet101 V1 FPN 640x640 (RetinaNet101) 640x640 57 35.6 Boxes
SSD ResNet101 V1 FPN 1024x1024 (RetinaNet101) 1024x1024 104 39.5 Boxes
SSD ResNet152 V1 FPN 640x640 (RetinaNet152) 640x640 80 35.4 Boxes
SSD ResNet152 V1 FPN 1024x1024 (RetinaNet152) 1024x1024 111 39.6 Boxes

2.4 Faster R-CNN 与 Mask R-CNN 系列

模型名称 输入尺寸 Speed (ms) COCO mAP 输出
Faster R-CNN ResNet50 V1 640x640 640x640 53 29.3 Boxes
Faster R-CNN ResNet50 V1 1024x1024 1024x1024 65 31.0 Boxes
Faster R-CNN ResNet50 V1 800x1333 800x1333 65 31.6 Boxes
Faster R-CNN ResNet101 V1 640x640 640x640 55 31.8 Boxes
Faster R-CNN ResNet101 V1 1024x1024 1024x1024 72 37.1 Boxes
Faster R-CNN ResNet101 V1 800x1333 800x1333 77 36.6 Boxes
Faster R-CNN ResNet152 V1 640x640 640x640 64 32.4 Boxes
Faster R-CNN ResNet152 V1 1024x1024 1024x1024 85 37.6 Boxes
Faster R-CNN ResNet152 V1 800x1333 800x1333 101 37.4 Boxes
Faster R-CNN Inception ResNet V2 640x640 640x640 206 37.7 Boxes
Faster R-CNN Inception ResNet V2 1024x1024 1024x1024 236 38.7 Boxes
Mask R-CNN Inception ResNet V2 1024x1024 1024x1024 301 39.0/34.6 Boxes/Masks

2.5 ExtremeNet 系列

模型名称 输入尺寸 Speed (ms) COCO mAP 输出
ExtremeNet (deprecated) Boxes
ExtremeNet Boxes

说明:ExtremeNet 两项为旧版与更新版发布,原文档中均未给出速度与精度数值;其中 2020 年发布的早期版本在原文档中被标记为已弃用(deprecated)。

三、如何读表与选型:架构维度的精度/速度分布规律

将整张表按架构家族纵向观察,可以得到相当清晰的选型梯度(数据均出自上表,不作外部推测):

CenterNet 家族。HourGlass104 主干把精度推到了全库最高档:512x512 输入下 mAP 41.9(70 ms),1024x1024 输入下达到 44.5(197 ms);而 MobileNetV2 FPN 只需 6 ms 即可拿到 23.4 mAP,是全库最快的检测模型之一。CenterNet 是当前库中唯一同时提供关键点(Keypoints)输出的一族:关键点版本在 COCO mAP 列给出"框精度/关键点精度"两组数值(如 ResNet50 V1 FPN Keypoints 为 29.3/50.7),输出列对应标注为 Boxes/Keypoints。若需要人体等关键点检测,CenterNet 系列是该库的直接选择。

EfficientDet D0–D7。该族呈典型的复合缩放规律:输入分辨率从 512 递增到 1536,mAP 从 33.6 稳步升至 51.2(全库 Boxes 精度最高),代价是耗时从 39 ms 上升到 325 ms。它适合追求"高精度 + 中等代价"的单阶段检测场景。

SSD / RetinaNet 系列。此族命名中的括号(RetinaNet50/101/152)来自配置头注释——RetinaNet 本质上是"ResNet 主干 + FPN + 共享 box predictor + focal loss"的 SSD 变体。主干从 MobileNetV2(320x320,19 ms,20.2 mAP)一路加码到 ResNet152 FPN 1024x1024(111 ms,39.6 mAP)。FPNLite 与 MobileNetV1/V2 系列兼顾速度,是该库移动端(TFLite)导出的主力阵容。

Faster R-CNN 与 Mask R-CNN。两阶段家族在相同主干/分辨率下精度与单阶段接近,但推理耗时明显更高;其价值在于更高可扩展性与原生掩码输出——Mask R-CNN Inception ResNet V2 1024x1024 输出 Boxes/Masks 两组精度 39.0/34.6,是全库唯一的实例分割模型。若同时需要"框 + 掩码",应锁定该条目。

四、模型库的三种典型用法

原文档为这份权重清单明确了三类使用场景,以下是落地路径。

4.1 用法一:开箱即用推理

如果你的目标类别已经在 COCO 2017 覆盖范围内,可直接用预训练模型做即时推理,无需任何训练。原文档提供的配套入口是推理 Colab:inference_tf2_colab.ipynb,其中演示了加载模型库中的 checkpoint / 配置并在示例图片上完成检测推理的完整过程。

4.2 用法二:作为新数据集上的迁移学习/少样本微调起点

在新数据集上训练时,用 COCO 预训练权重做初始化可以避免"从零起步"的长周期训练(tf2_training_and_evaluation.md 指出从零训练检测器可能耗时数天)。原文档给出的少样本微调演练入口为 eager_few_shot_od_training_tf2_colab.ipynb

在 pipeline 配置层面,初始化由 train_config 中的两个字段控制(详见 tf2_training_and_evaluation.md):

  • fine_tune_checkpoint:指向预训练 checkpoint 的路径前缀(形如 /path/model.ckpt-#####),即填写本模型库中某条权重;
  • fine_tune_checkpoint_type:取值为 classificationdetection,与本库对应的检测权重应填写 detection(分类权重来自 tf2_classification_zoo.md)。

本地训练/评估的入口脚本是 model_main_tf2.py,典型启动命令如下(来自 tf2_training_and_evaluation.md):

# 在 tensorflow/models/research/ 目录下执行
PIPELINE_CONFIG_PATH={path to pipeline config file}
MODEL_DIR={path to model directory}
python object_detection/model_main_tf2.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --alsologtostderr

其中 ${MODEL_DIR} 为训练 checkpoint 与事件文件的输出目录。

4.3 用法三:移动端(TensorFlow Lite)部署

原文档将移动端场景单独指向指南 running_on_mobile_tf2.md,要点包括:

  • 适用范围:TFLite 目前仅支持 SSD 架构(EfficientDet 除外)做框检测;CenterNet 的端侧支持属于实验特性,见 centernet_on_device.ipynb
  • 转换两步走:先用 export_tflite_graph_tf2.pypipeline_config + checkpoint 导出中间 SavedModel,再用 TFLite Converter 的 from_saved_model 得到 detect.tflite
  • 量化与元数据:通过 Python API 设置 converter.optimizations = [tf.lite.Optimize.DEFAULT]target_spec.supported_opsrepresentative_dataset 可做训练后量化以减小体积、提升速度;
  • 可运行的端到端演练eager_few_shot_od_training_tflite.ipynbconvert_odt_model_to_TFLite.ipynb 中给出。

五、从零训练:configs/tf2 中的复现配置

原文档明确:若要自零训练这些模型,配置就在 configs/tf2 目录(同时随各 tar.gz 附带)。该目录下可看到与上表绝大部分条目对应的 pipeline.config,文件名约定为 <架构>_<主干>_<输入尺寸>_coco17_<设备>.config,例如 tpu-8tpu-32gpu-8 后缀反映训练所用加速器规模。

以 SSD ResNet50 V1 FPN 640x640(即 RetinaNet50,表中 mAP 34.3)的配置 ssd_resnet50_v1_fpn_640x640_coco17_tpu-8.config 为例,其头部注释直接给出复现基准:"Trained on COCO, initialized from Imagenet classification checkpoint / Train on TPU-8 / Achieves 34.3 mAP on COCO17 Val"——由此可以推断表中 COCO mAP 数值对应 COCO 2017 上的评估结果,且 COCO 训练通常以 ImageNet 分类权重为起点。配置主体节选如下:

model {
  ssd {
    inplace_batchnorm_update: true
    freeze_batchnorm: false
    num_classes: 90            # COCO 检测类别数(80 类 + 背景相关设定)
    image_resizer {
      fixed_shape_resizer {
        height: 640
        width: 640
      }
    }
    anchor_generator {
      multiscale_anchor_generator {
        min_level: 3
        max_level: 7
        anchor_scale: 4.0
        aspect_ratios: [1.0, 2.0, 0.5]
        scales_per_octave: 2
      }
    }
    box_predictor {
      weight_shared_convolutional_box_predictor {
        depth: 256
        ...
      }
    }
    ...
  }
}

对照表中数据与配置结构可以注意到:输入尺寸直接由 image_resizer.fixed_shape_resizerheight/width 决定,这解释了为什么同一架构(如 RetinaNet50)在 640x640 与 1024x1024 两档输入下分别呈现 34.3/38.3 的 mAP 与 46/87 ms 的耗时差异;weight_shared_convolutional_box_predictor(共享卷积框预测头)加 focal loss 正是其被称为 RetinaNet 的由来。若把表中某行替换为自己的骨干或分辨率,只需基于该目录内同名配置改这几处字段再走 tf2_training_and_evaluation.md 的流程即可。

六、配套入口汇总

一句话总结:本模型库的价值在于"一张表打通"——按 COCO mAP 选精度、按 Speed (ms) 选时延、按 Outputs 选框/关键点/掩码任务,选定后即可用仓库中的配置与训练脚本直接进入迁移微调或从零训练。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.8 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
529
593
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
915
1.83 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.58 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.35 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.01 K
515
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
388