TensorFlow 1 Detection Model Zoo 完全指南:TF1 Object Detection API 预训练模型选型与使用
TensorFlow Models 仓库(research/object_detection,即 TensorFlow Object Detection API)为 TensorFlow 1 时代维护了一套官方预训练检测模型集合,即本文主题 TF1 Detection Model Zoo。本指南以该 Model Zoo 官方文档为骨架,完整解读其覆盖的数据集、每张表格中模型名与速度/精度的含义、压缩包内文件构成,并结合仓库内的训练配置文件与导出工具,说明如何从模型库出发完成开箱推理或作为迁移学习初始化权重,帮助你在 COCO、Kitti、Open Images 等场景中快速选定合适的检测架构。
一、Model Zoo 是什么:覆盖哪些数据集与模型
TF1 Detection Model Zoo 提供了一批已在公开数据集上预训练好的检测模型,你下载的是一个 tar.gz 压缩包,其中既包含可直接用于推理的冻结图,也包含可继续训练/微调的 checkpoint 与训练配置。官方文档明确其两大用途:
- 若你的目标类别恰好属于下述数据集(如 COCO 的 80/90 类),可直接用于开箱(out-of-the-box)推理;
- 若你在新数据集上训练,这些模型非常适合作为初始化权重(fine-tune checkpoint),显著缩短收敛时间。
模型库覆盖的数据集(以官方文档为准)包括:
| 数据集 | 说明 |
|---|---|
| COCO | 目标检测基准数据集,模型数量最多,分 COCO 14 架构训练 |
| Kitti | 自动驾驶场景数据集(faster_rcnn_resnet101_kitti) |
| Open Images | 大规模检测数据集,区分 OID v2 与 OID v4 两批模型 |
| AVA v2.1 | 时空动作定位数据集 |
| iNaturalist Species Detection | 物种检测数据集(FGVC) |
| Snapshot Serengeti | 相机陷阱(Camera Trap)野生动物数据集,含 Context R-CNN 模型 |
对应代码结构上,每个模型的训练配置位于 research/object_detection/samples/configs 目录(当前仓库共有 64 个 .config 配置文件),涵盖 SSD(MobileNet/Inception/ResNet 主干)、Faster R-CNN、R-FCN、Mask R-CNN、Context R-CNN、MobileDet、SpaghettiNet 等主流检测与实例分割架构。
二、模型压缩包:下载后的目录结构
官方文档给出统一解压方式:
tar -xzvf ssd_mobilenet_v1_coco.tar.gz
解压后目录内通常包含以下文件:
| 文件 | 用途 |
|---|---|
graph.pbtxt |
图结构文本(graph proto) |
model.ckpt.data-00000-of-00001 / model.ckpt.index / model.ckpt.meta |
训练 checkpoint(用于继续训练或重新导出) |
frozen_inference_graph.pb |
权重已冻结为常量的推理图,可直接用于开箱推理(可在 Jupyter notebook 中体验) |
pipeline.config |
生成该模型所用的训练/推理配置,与 samples/configs 下对应配置文件一致,但通常将 score threshold 调整为更接近部署场景的值 |
model.tflite |
仅移动端模型包含:可部署到移动设备的 TFLite 文件 |
文档特别说明两点细节:
- 重度 Faster R-CNN 模型的加速版:对于推理耗时较长的 Faster R-CNN 模型,模型库额外提供一种使用大幅减少 proposal 数量的版本(对应表中以
lowproposals命名的行),以换取速度提升。 - 量化模型的文件差异:若下载的是量化(quantized)模型 tar.gz,解压后得到的是一组不同的文件——即 checkpoint、一个配置文件,以及 TFLite 冻结图(txt/binary 格式),而不是普通的
frozen_inference_graph.pb。与之呼应的训练配置(如 ssd_mobilenet_v2_quantized_300x300_coco.config、facessd_mobilenet_v2_quantized_320x320_open_image_v4.config)也一并提供在仓库中,可用于复现训练与导出流程。
三、读懂模型表格:四个关键字段
官方 Model Zoo 的每张表都围绕四个信息维度组织:
-
Model name:模型名与
samples/configs目录中的某个训练配置文件一一对应。下表列出的模型名与其在仓库中的配置对应关系(当前仓库可确认的文件)如下,例如ssd_mobilenet_v1_coco对应 ssd_mobilenet_v1_coco.config,faster_rcnn_inception_resnet_v2_atrous_coco对应 faster_rcnn_inception_resnet_v2_atrous_coco.config。实践中训练新模型时即可沿用这些配置。 -
Speed (ms):报告的是每张 600×600 图像的运行时间(包含全部前处理与后处理)。官方文档强调该耗时高度依赖具体硬件——下表数据在 Nvidia GeForce GTX TITAN X 上测得,应更多作为相对速度参考而非绝对指标;同时桌面 GPU 耗时并不能代表移动端表现(例如 MobileNet V2 在移动设备上比 MobileNet V1 更快,但在桌面 GPU 上反而稍慢)。
-
mAP:按数据集区分的精度指标。COCO 模型报告 COCO mAP([^1]);Kitti/iNaturalist/AVA 报告 Pascal mAP@0.5;Open Images 与 Serengeti 使用各自评测协议。文档说明 mAP 一律四舍五入到最近整数。
-
Outputs:输出类型,
Boxes表示仅检测框,Masks表示同时输出实例分割掩码(对应 Mask R-CNN 模型)。
四、COCO-trained 模型全表
COCO 系列是 Model Zoo 的核心,覆盖 SSD、SSD+FPN、Faster R-CNN、R-FCN、Mask R-CNN、NAS 等多种架构。表中 COCO mAP 在 COCO 14 minival 集上评测(注意该划分与 COCO 17 Val 不同;本次评测所用图片 id 完整列表见仓库文件 data/mscoco_minival_ids.txt)。
| Model name(仓库对应配置) | Speed (ms) | COCO mAP[^1] | Outputs |
|---|---|---|---|
| ssd_mobilenet_v1_coco(config) | 30 | 21 | Boxes |
| ssd_mobilenet_v1_0.75_depth_coco ☆(config) | 26 | 18 | Boxes |
| ssd_mobilenet_v1_quantized_coco ☆(config) | 29 | 18 | Boxes |
| ssd_mobilenet_v1_0.75_depth_quantized_coco ☆(config) | 29 | 16 | Boxes |
| ssd_mobilenet_v1_ppn_coco ☆(config) | 26 | 20 | Boxes |
| ssd_mobilenet_v1_fpn_coco ☆(config) | 56 | 32 | Boxes |
| ssd_resnet_50_fpn_coco ☆(config) | 76 | 35 | Boxes |
| ssd_mobilenet_v2_coco(config) | 31 | 22 | Boxes |
| ssd_mobilenet_v2_quantized_coco(config) | 29 | 22 | Boxes |
| ssdlite_mobilenet_v2_coco(config) | 27 | 22 | Boxes |
| ssd_inception_v2_coco(config) | 42 | 24 | Boxes |
| faster_rcnn_inception_v2_coco(config) | 58 | 28 | Boxes |
| faster_rcnn_resnet50_coco(config) | 89 | 30 | Boxes |
| faster_rcnn_resnet50_lowproposals_coco | 64 | — | Boxes |
| rfcn_resnet101_coco(config) | 92 | 30 | Boxes |
| faster_rcnn_resnet101_coco(config) | 106 | 32 | Boxes |
| faster_rcnn_resnet101_lowproposals_coco | 82 | — | Boxes |
| faster_rcnn_inception_resnet_v2_atrous_coco(config) | 620 | 37 | Boxes |
| faster_rcnn_inception_resnet_v2_atrous_lowproposals_coco | 241 | — | Boxes |
| faster_rcnn_nas(config) | 1833 | 43 | Boxes |
| faster_rcnn_nas_lowproposals_coco | 540 | — | Boxes |
| mask_rcnn_inception_resnet_v2_atrous_coco(config) | 771 | 36 | Masks |
| mask_rcnn_inception_v2_coco(config) | 79 | 25 | Masks |
| mask_rcnn_resnet101_atrous_coco(config) | 470 | 33 | Masks |
| mask_rcnn_resnet50_atrous_coco(config) | 343 | 29 | Masks |
模型名带 ☆(星号)的含义:表示该模型支持 TPU 训练。从源码目录结构看,
_sync后缀的 config 版本即是为同步多卡/TPU 训练准备的(例如 ssd_mobilenet_v1_300x300_coco14_sync.config)。
关于 COCO mAP 数字的解读:上表除 Pixel 6 Edge TPU 模型外,mAP 均在 COCO 14 minival 集(而非 COCO 17 Val)上评测,官方划分的全部图像 id 见 data/mscoco_minival_ids.txt,评测协议为 MSCOCO evaluation protocol。
移动端模型(Mobile models)
移动端模型表格的评测维度是 Pixel 1 上的延迟(ms),mAP 为 COCO 14 minival 上的结果。相比桌面 GPU 速度表,该表更能反映手机端推理表现:
| Model name(仓库对应配置) | Pixel 1 Latency (ms) | COCO mAP | Outputs |
|---|---|---|---|
| ssd_mobiledet_cpu_coco(config) | 113 | 24.0 | Boxes |
| ssd_mobilenet_v2_mnasfpn_coco(config) | 183 | 26.6 | Boxes |
| ssd_mobilenet_v3_large_coco(config) | 119 | 22.6 | Boxes |
| ssd_mobilenet_v3_small_coco(config) | 43 | 15.4 | Boxes |
其中 ssd_mobilenet_v3_small 以 43ms 延迟实现 15.4 mAP,是典型的超低延迟方案;MobileDet CPU 模型在 113ms 内达到 24.0 mAP,综合表现均衡。
Pixel 4 Edge TPU 模型
在 Pixel 4 Edge TPU 上测得的延迟(ms),并同时报告 fp32 与 uint8 两种精度的 COCO mAP:
| Model name | Pixel 4 Edge TPU Latency (ms) | COCO mAP (fp32/uint8) | Outputs |
|---|---|---|---|
| ssd_mobiledet_edgetpu_coco(config) | 6.9 | 25.9 / 25.6 | Boxes |
| ssd_mobilenet_edgetpu_coco(config) | 6.6 | — / 24.3 | Boxes |
可见在 Edge TPU 硬件加速下,延迟压缩到个位数毫秒级别,且 uint8 量化几乎不损失精度(25.6 vs 25.9),适合端侧实时检测。
Pixel 4 DSP 模型
在 Pixel 4 DSP 上评测的 MobileDet 变体:
| Model name | Pixel 4 DSP Latency (ms) | COCO mAP (fp32/uint8) | Outputs |
|---|---|---|---|
| ssd_mobiledet_dsp_coco(config) | 12.3 | 28.9 / 28.8 | Boxes |
五、其他数据集训练的模型
Kitti-trained
| Model name | Speed (ms) | Pascal mAP@0.5 | Outputs |
|---|---|---|---|
| faster_rcnn_resnet101_kitti(config) | 79 | 87 | Boxes |
Open Images-trained(OID v2 系列)
OID v2 系列使用的 Open Images 评测为 PASCAL mAP 的变体(true positives 计算方式略有不同),细节见 evaluation_protocols.md 中 oid_V2_detection_metrics 一节:
| Model name | Speed (ms) | Open Images mAP@0.5[^2] | Outputs |
|---|---|---|---|
| faster_rcnn_inception_resnet_v2_atrous_oidv2(config) | 727 | 37 | Boxes |
| faster_rcnn_inception_resnet_v2_atrous_lowproposals_oidv2 | 347 | — | Boxes |
| facessd_mobilenet_v2_quantized_open_image_v4(config)[^3] | 20 | 73 (faces) | Boxes |
[^3] 说明:该人脸检测模型在训练时丢弃了非人脸框,评测时也忽略非人脸 GT 框,因此其 mAP 针对的是人脸类别(73,faces)。
Open Images-trained(OID v4 系列)
OID v4 系列采用 Open Images Challenge 评测指标(见 evaluation_protocols.md 的 oid_challenge_detection_metrics 一节):
| Model name | Speed (ms) | Open Images mAP@0.5[^4] | Outputs |
|---|---|---|---|
| faster_rcnn_inception_resnet_v2_atrous_oidv4(config) | 425 | 54 | Boxes |
| ssd_mobilenetv2_oidv4(config) | 89 | 36 | Boxes |
| ssd_resnet_101_fpn_oidv4(config) | 237 | 38 | Boxes |
iNaturalist Species-trained(FGVC)
面向细粒度物种检测的两阶段模型:
| Model name | Speed (ms) | Pascal mAP@0.5 | Outputs |
|---|---|---|---|
| faster_rcnn_resnet101_fgvc(config) | 395 | 58 | Boxes |
| faster_rcnn_resnet50_fgvc(config) | 366 | 55 | Boxes |
AVA v2.1-trained
| Model name | Speed (ms) | Pascal mAP@0.5 | Outputs |
|---|---|---|---|
| faster_rcnn_resnet101_ava_v2.1(config) | 93 | 11 | Boxes |
Snapshot Serengeti Camera Trap-trained
相机陷阱数据集模型同时给出 Faster R-CNN 与引入上下文建模的 Context R-CNN 版本(Context R-CNN 的完整数据准备/训练/导出流程见 context_rcnn.md):
| Model name | COCO mAP@0.5 | Outputs |
|---|---|---|
| faster_rcnn_resnet101_snapshot_serengeti | 38 | Boxes |
| context_rcnn_resnet101_snapshot_serengeti(config) | 56 | Boxes |
Pixel 6 Edge TPU 模型(SpaghettiNet)
SpaghettiNet 系列是面向 Pixel 6 Edge TPU 的端侧模型,报告中同时给出 Edge TPU 计算耗时与 CPU 上完成后处理的整机耗时,mAP 在 COCO 2017(而非 COCO 14 minival)上以 uint8 精度评测:
| Model name | Pixel 6 Edge TPU Speed (ms) | Pixel 6 Speed with Post-processing on CPU (ms) | COCO 2017 mAP (uint8) | Outputs |
|---|---|---|---|---|
| spaghettinet_edgetpu_s | 1.3 | 1.8 | 26.3 | Boxes |
| spaghettinet_edgetpu_m | 1.4 | 1.9 | 27.4 | Boxes |
| spaghettinet_edgetpu_l | 1.7 | 2.1 | 28.0 | Boxes |
六、精度数据使用须知:冻结图评测与得分阈值
官方文档对冻结推理图的精度给出两条重要提醒,任何拿 Model Zoo 做基准对比的人都需要注意:
-
冻结图评测精度会略低于表中数字。原因是在生成冻结图时,代码会丢弃得分低于阈值(典型为 0.3)的检测结果。这等价于在检测器的 precision-recall 曲线上取了一个点、并丢弃其后的部分,因此会对标准 mAP 指标产生负面影响。即表中数字是高阈值剪枝前的理想状态,冻结图是剪枝后的部署状态,二者评测口径不同。
-
冻结图由 TF 1.12.0 版本导出。Model Zoo 提供的
frozen_inference_graph.pb是在 TensorFlow v1.12.0 发布版本下生成的;若你使用其他版本,可以用当前版本的 TensorFlow 重新导出:以模型目录 + samples/configs 下对应配置文件为输入,重新运行导出器即可(详见下文)。
七、从 Model Zoo 出发的三个实战路径
Model Zoo 的价值最终要落到两条实战路径上:开箱推理与迁移学习初始化。
路径一:冻结图开箱推理
解压后直接用 frozen_inference_graph.pb 加载模型即可进行推理,无需再走训练/导出流程。TensorFlow 1 环境下的完整推理示例见官方 Colab 教程 colab_tutorials/object_detection_tutorial.ipynb(TF1 入门总览见 tf1.md)。加载冻结图时注意该文件构建于较早期的 TensorFlow 版本,若遇到算子兼容问题可按下述方法重新导出。
路径二:基于 checkpoint 在新数据集上微调
模型包内的 model.ckpt.* 可直接作为预训练权重初始化新任务。在训练配置中,你需要修改两个字段(以仓库中 faster_rcnn_resnet101_pets.config 为例,其注释建议搜索 PATH_TO_BE_CONFIGURED 定位待填字段):
# 定位到 train_config 段
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED/model.ckpt" # 改为下载解压出的 checkpoint 前缀
# 定位到 train_input_reader / eval_input_reader 段
input_path: "PATH_TO_BE_CONFIGURED/pet_faces_train.record-?????-of-00010"
label_map_path: "PATH_TO_BE_CONFIGURED/pet_label_map.pbtxt"
从源码层面看(参见 samples/configs/ssd_mobilenet_v1_coco.config 等配置文件),一个标准 pipeline 由 model{...}(含 box_coder、matcher、anchor_generator 等组件)、train_config{...}、train_input_reader{...}、eval_config{...}、eval_input_reader{...} 组成。选好 Model Zoo 中的同架构预训练模型并填入 fine_tune_checkpoint,即可获得与该预训练权重完全匹配的网络结构,避免 shape 不匹配问题。基于 Pets 数据集的完整训练/评测流程可参考 running_pets.md,分布式训练与评测参数见 tf1_training_and_evaluation.md。
路径三:用当前 TensorFlow 版本重新导出冻结图
若需将 Model Zoo 模型适配到当前环境,官方提供 export_inference_graph.py 导出器(源码见 export_inference_graph.py),命令参考(自 research/ 目录执行):
INPUT_TYPE=image_tensor
PIPELINE_CONFIG_PATH={path to pipeline config file} # 即压缩包内的 pipeline.config
TRAINED_CKPT_PREFIX={path to model.ckpt}
EXPORT_DIR={path to folder that will be used for export}
python object_detection/export_inference_graph.py \
--input_type=${INPUT_TYPE} \
--pipeline_config_path=${PIPELINE_CONFIG_PATH} \
--trained_checkpoint_prefix=${TRAINED_CKPT_PREFIX} \
--output_directory=${EXPORT_DIR}
导出后会在 EXPORT_DIR 中生成 saved_model/(SavedModel 格式)、frozen_inference_graph.pb(冻结图)、model.ckpt.* 与 checkpoint、pipeline.config(详见 exporting_models.md)。注意 --input_type 除 image_tensor(4-D 图像张量)外,还可配置为接收编码图像或序列化 tf.Example,从而与不同推理前端对接。
八、选型速查
综合上表可提炼出面向不同需求的选型思路(仅基于 Model Zoo 实测数据归纳):
- 追求端侧极致低延迟:Pixel 6 Edge TPU 上的 SpaghettiNet S(1.3ms)、Pixel 4 Edge TPU 上的 MobileDet/MobileNet EdgeTPU(约 6.6–6.9ms);
- 桌面 GPU 上精度优先:Faster R-CNN NAS(43 mAP,1833ms)、Faster R-CNN Inception-ResNet-v2 Atrous(37 mAP,620ms);
- 速度与精度均衡:SSD ResNet-50 FPN(35 mAP,76ms)或 SSD MobileNet V1 FPN(32 mAP,56ms);
- 需要实例分割输出:从
Masks列挑选 Mask R-CNN 系列,覆盖 25~36 mAP 区间; - 少样本/场景迁移:iNaturalist FGVC、Open Images、Snapshot Serengeti 等模型可作为相应垂直领域的预训练起点。
注意桌面 GPU 延迟与移动端延迟并不线性相关(官方文档已示例说明 MobileNet V1/V2 的反转关系),移动端选型应优先参考 Pixel 系列延迟表,而非桌面 TITAN X 速度表。
[^1]: 见 MSCOCO evaluation protocol;COCO mAP(除 Pixel 6 Edge TPU 模型外)在 COCO 14 minival 集上评测,划分与 COCO 17 Val 不同,完整图像 id 列表见仓库 data/mscoco_minival_ids.txt。
[^2]: PASCAL mAP 变体,true positives 计算方式略有不同,见 evaluation_protocols.md 的 oid_V2_detection_metrics。
[^4]: Open Images Challenge 指标,见 evaluation_protocols.md 的 oid_challenge_detection_metrics。
如需在仓库中进一步追踪:模型对应训练配置统一存放于 samples/configs;TensorFlow 1 环境安装、Colab 快速上手与其他指南入口见 tf1.md;评测协议细节、导出工具与 TPU 兼容性分别见 evaluation_protocols.md、exporting_models.md 与 tpu_compatibility.md。
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 StartedRust0629
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