TensorFlow 2 目标检测模型库(Detection Model Zoo)全解:COCO 预训练权重清单、指标解读与迁移使用指南
本文聚焦当前仓库中 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:取值为classification或detection,与本库对应的检测权重应填写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.py 从
pipeline_config+checkpoint导出中间 SavedModel,再用 TFLite Converter 的from_saved_model得到detect.tflite; - 量化与元数据:通过 Python API 设置
converter.optimizations = [tf.lite.Optimize.DEFAULT]、target_spec.supported_ops与representative_dataset可做训练后量化以减小体积、提升速度; - 可运行的端到端演练在 eager_few_shot_od_training_tflite.ipynb 与 convert_odt_model_to_TFLite.ipynb 中给出。
五、从零训练:configs/tf2 中的复现配置
原文档明确:若要自零训练这些模型,配置就在 configs/tf2 目录(同时随各 tar.gz 附带)。该目录下可看到与上表绝大部分条目对应的 pipeline.config,文件名约定为 <架构>_<主干>_<输入尺寸>_coco17_<设备>.config,例如 tpu-8、tpu-32、gpu-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_resizer 的 height/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 的流程即可。
六、配套入口汇总
- 推理演练:inference_tf2_colab.ipynb
- 少样本微调演练:eager_few_shot_od_training_tf2_colab.ipynb
- 训练与评估完整指南:tf2_training_and_evaluation.md
- TF2 环境要求与安装:tf2.md
- 移动端推断:running_on_mobile_tf2.md
- 从零复现的训练配置目录:configs/tf2
- 分类预训练权重(用于 classification 类型的初始化):tf2_classification_zoo.md
一句话总结:本模型库的价值在于"一张表打通"——按 COCO mAP 选精度、按 Speed (ms) 选时延、按 Outputs 选框/关键点/掩码任务,选定后即可用仓库中的配置与训练脚本直接进入迁移微调或从零训练。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00