首页
/ TensorFlow 1 Detection Model Zoo 完全指南:TF1 Object Detection API 预训练模型选型与使用

TensorFlow 1 Detection Model Zoo 完全指南:TF1 Object Detection API 预训练模型选型与使用

2026-09-06 19:04:54作者:沈韬淼Beryl

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 文件

文档特别说明两点细节:

  1. 重度 Faster R-CNN 模型的加速版:对于推理耗时较长的 Faster R-CNN 模型,模型库额外提供一种使用大幅减少 proposal 数量的版本(对应表中以 lowproposals 命名的行),以换取速度提升。
  2. 量化模型的文件差异:若下载的是量化(quantized)模型 tar.gz,解压后得到的是一组不同的文件——即 checkpoint、一个配置文件,以及 TFLite 冻结图(txt/binary 格式),而不是普通的 frozen_inference_graph.pb。与之呼应的训练配置(如 ssd_mobilenet_v2_quantized_300x300_coco.configfacessd_mobilenet_v2_quantized_320x320_open_image_v4.config)也一并提供在仓库中,可用于复现训练与导出流程。

三、读懂模型表格:四个关键字段

官方 Model Zoo 的每张表都围绕四个信息维度组织:

  1. Model name:模型名与 samples/configs 目录中的某个训练配置文件一一对应。下表列出的模型名与其在仓库中的配置对应关系(当前仓库可确认的文件)如下,例如 ssd_mobilenet_v1_coco 对应 ssd_mobilenet_v1_coco.configfaster_rcnn_inception_resnet_v2_atrous_coco 对应 faster_rcnn_inception_resnet_v2_atrous_coco.config。实践中训练新模型时即可沿用这些配置。

  2. Speed (ms):报告的是每张 600×600 图像的运行时间(包含全部前处理与后处理)。官方文档强调该耗时高度依赖具体硬件——下表数据在 Nvidia GeForce GTX TITAN X 上测得,应更多作为相对速度参考而非绝对指标;同时桌面 GPU 耗时并不能代表移动端表现(例如 MobileNet V2 在移动设备上比 MobileNet V1 更快,但在桌面 GPU 上反而稍慢)。

  3. mAP:按数据集区分的精度指标。COCO 模型报告 COCO mAP([^1]);Kitti/iNaturalist/AVA 报告 Pascal mAP@0.5;Open Images 与 Serengeti 使用各自评测协议。文档说明 mAP 一律四舍五入到最近整数。

  4. 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.mdoid_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.mdoid_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 做基准对比的人都需要注意:

  1. 冻结图评测精度会略低于表中数字。原因是在生成冻结图时,代码会丢弃得分低于阈值(典型为 0.3)的检测结果。这等价于在检测器的 precision-recall 曲线上取了一个点、并丢弃其后的部分,因此会对标准 mAP 指标产生负面影响。即表中数字是高阈值剪枝前的理想状态,冻结图是剪枝后的部署状态,二者评测口径不同。

  2. 冻结图由 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.*checkpointpipeline.config(详见 exporting_models.md)。注意 --input_typeimage_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.mdoid_V2_detection_metrics。 [^4]: Open Images Challenge 指标,见 evaluation_protocols.mdoid_challenge_detection_metrics

如需在仓库中进一步追踪:模型对应训练配置统一存放于 samples/configs;TensorFlow 1 环境安装、Colab 快速上手与其他指南入口见 tf1.md;评测协议细节、导出工具与 TPU 兼容性分别见 evaluation_protocols.mdexporting_models.mdtpu_compatibility.md

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

项目优选

收起
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++
916
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