TensorFlow 预训练目标检测模型集合
Tensorflow 提供了一系列在不同数据集上预训练的目标检测模型,包括 COCO 数据集、Kitti 数据集、Open Images 数据集、AVA v2.1 数据集、iNaturalist 物种检测数据集 和 Snapshot Serengeti 数据集。这些模型可以直接用于推理,特别是当你对这些数据集中已有的类别感兴趣时。同时,它们也可用于新数据集上训练模型时的初始化。
下表列出了每个预训练模型,包括:
- 模型名称,对应于
samples/configs目录中用于训练此模型的配置文件; - 包含预训练模型的 tar.gz 文件的下载链接;
- 模型速度 —— 我们报告的是每张 600x600 图像的运行时间(包括所有预处理和后处理),但请注意这些时间高度依赖于特定的硬件配置(这些时间是在 Nvidia GeForce GTX TITAN X 显卡上测得的),在很多情况下应被视为相对时间。同时注意,桌面 GPU 的时间并不总是反映移动设备的运行时间。例如,Mobilenet V2 在移动设备上比 Mobilenet V1 快,但在桌面 GPU 上略慢;
- 在 COCO 验证集的子集、Open Images 测试集、iNaturalist 测试集或 Snapshot Serengeti LILA.science 测试集上的检测器性能,以数据集特定的 mAP 度量。这里,数值越高越好,我们只报告四舍五入到整数的边界框 mAP。
- 输出类型(
Boxes,如果适用的话还有Masks)
你可以通过例如以下命令来解压缩每个 tar.gz 文件:
tar -xzvf ssd_mobilenet_v1_coco.tar.gz
在解压缩后的目录中,你将找到:
- 一个图模型(
graph.pbtxt) - 一个检查点(
model.ckpt.data-00000-of-00001、model.ckpt.index、model.ckpt.meta) - 一个将权重作为常量烘焙进图的冻结图模型(
frozen_inference_graph.pb),用于直接推理(在 Jupyter 笔记本中试试这个!) - 一个用于生成图的配置文件(
pipeline.config)。这些直接对应于 samples/configs 目录中的配置文件,但通常具有修改后的得分阈值。在较重的 Faster R-CNN 模型的情况下,我们还提供了一个使用更少提议数量以提高速度的模型版本。 - 仅限移动模型:一个可以部署在移动设备上的 TfLite 文件(
model.tflite)。
关于冻结推理图的一些说明:
- 如果你尝试评估冻结图,可能会发现一些模型的性能略低于我们在下表中报告的数值。这是因为在创建冻结图时,我们丢弃了得分低于阈值(通常为 0.3)的检测。这实际上相当于在检测器的精确度召回曲线上选择一个点(并丢弃该点之后的部分),这会对标准 mAP 度量产生负面影响。
- 我们的冻结推理图是使用 Tensorflow 的 v1.12.0 版本生成的,我们不保证这些图能与其它版本兼容;话虽如此,每个冻结推理图都可以使用你当前版本的 Tensorflow 重新生成,方法是重新运行 exporter,指向模型目录以及 samples/configs 中相应的配置文件。
COCO 训练模型
| 模型名称 | 速度(ms) | COCO mAP | 输出 |
|---|---|---|---|
| ssd_mobilenet_v1_coco | 30 | 21 | Boxes |
| ssd_mobilenet_v1_0.75_depth_coco ☆ | 26 | 18 | Boxes |
| ssd_mobilenet_v1_quantized_coco ☆ | 29 | 18 | Boxes |
| ssd_mobilenet_v1_0.75_depth_quantized_coco ☆ | 29 | 16 | Boxes |
| ssd_mobilenet_v1_ppn_coco ☆ | 26 | 20 | Boxes |
| ssd_mobilenet_v1_fpn_coco ☆ | 56 | 32 | Boxes |
| ssd_resnet_50_fpn_coco ☆ | 76 | 35 | Boxes |
| ssd_mobilenet_v2_coco | 31 | 22 | Boxes |
| ssd_mobilenet_v2_quantized_coco | 29 | 22 | Boxes |
| ssdlite_mobilenet_v2_coco | 27 | 22 | Boxes |
| ssd_inception_v2_coco | 42 | 24 | Boxes |
| faster_rcnn_inception_v2_coco | 58 | 28 | Boxes |
| faster_rcnn_resnet50_coco | 89 | 30 | Boxes |
| faster_rcnn_resnet50_lowproposals_coco | 64 | Boxes | |
| rfcn_resnet101_coco | 92 | 30 | Boxes |
| faster_rcnn_resnet101_coco | 106 | 32 | Boxes |
| faster_rcnn_resnet101_lowproposals_coco | 82 | Boxes | |
| faster_rcnn_inception_resnet_v2_atrous_coco | 620 | 37 | Boxes |
| faster_rcnn_inception_resnet_v2_atrous_lowproposals_coco | 241 | Boxes | |
| faster_rcnn_nas | 1833 | 43 | Boxes |
| faster_rcnn_nas_lowproposals_coco | 540 | Boxes | |
| mask_rcnn_inception_resnet_v2_atrous_coco | 771 | 36 | Masks |
| mask_rcnn_inception_v2_coco | 79 | 25 | Masks |
| mask_rcnn_resnet101_atrous_coco | 470 | 33 | Masks |
| mask_rcnn_resnet50_atrous_coco | 343 | 29 | Masks |
注意:模型名称后的星号(☆)表示该模型支持 TPU 训练。
注意:如果你下载了量化模型的 tar.gz 文件并解压,将得到一组不同的文件 - 一个检查点、一个配置文件和 tflite 冻结图(文本/二进制)。
移动模型
| 模型名称 | Pixel 1 延迟(ms) | COCO mAP | 输出 |
|---|---|---|---|
| ssd_mobiledet_cpu_coco | 113 | 24.0 | Boxes |
| ssd_mobilenet_v2_mnasfpn_coco | 183 | 26.6 | Boxes |
| ssd_mobilenet_v3_large_coco | 119 | 22.6 | Boxes |
| ssd_mobilenet_v3_small_coco | 43 | 15.4 | Boxes |
Pixel4 Edge TPU 模型
| 模型名称 | Pixel 4 Edge TPU 延迟(ms) | COCO mAP (fp32/uint8) | 输出 |
|---|---|---|---|
| ssd_mobiledet_edgetpu_coco | 6.9 | 25.9/25.6 | Boxes |
| ssd_mobilenet_edgetpu_coco | 6.6 | -/24.3 | Boxes |
Pixel4 DSP 模型
| 模型名称 | Pixel 4 DSP 延迟(ms) | COCO mAP (fp32/uint8) | 输出 |
|---|---|---|---|
| ssd_mobiledet_dsp_coco | 12.3 | 28.9/28.8 | Boxes |
Kitti 训练模型
| 模型名称 | 速度(ms) | Pascal mAP@0.5 | 输出 |
|---|---|---|---|
| faster_rcnn_resnet101_kitti | 79 | 87 | Boxes |
Open Images 训练模型
| 模型名称 | 速度(ms) | Open Images mAP@0.5[^2] | 输出 |
|---|---|---|---|
| faster_rcnn_inception_resnet_v2_atrous_oidv2 | 727 | 37 | Boxes |
| faster_rcnn_inception_resnet_v2_atrous_lowproposals_oidv2 | 347 | Boxes | |
| facessd_mobilenet_v2_quantized_open_image_v4 [^3] | 20 | 73 (faces) | Boxes |
| 模型名称 | 速度(ms) | Open Images mAP@0.5[^4] | 输出 |
|---|---|---|---|
| faster_rcnn_inception_resnet_v2_atrous_oidv4 | 425 | 54 | Boxes |
| ssd_mobilenetv2_oidv4 | 89 | 36 | Boxes |
| ssd_resnet_101_fpn_oidv4 | 237 | 38 | Boxes |
iNaturalist 物种训练模型
| 模型名称 | 速度(ms) | Pascal mAP@0.5 | 输出 |
|---|---|---|---|
| faster_rcnn_resnet101_fgvc | 395 | 58 | Boxes |
| faster_rcnn_resnet50_fgvc | 366 | 55 | Boxes |
AVA v2.1 训练模型
| 模型名称 | 速度(ms) | Pascal mAP@0.5 | 输出 |
|---|---|---|---|
| faster_rcnn_resnet101_ava_v2.1 | 93 | 11 | Boxes |
Snapshot Serengeti Camera Trap 训练模型
| 模型名称 | COCO mAP@0.5 | 输出 |
|---|---|---|
| faster_rcnn_resnet101_snapshot_serengeti | 38 | Boxes |
| context_rcnn_resnet101_snapshot_serengeti | 56 | Boxes |
[^1]:提到的COCO mAP(平均精度均值)是在COCO 2014年的minival数据集上评估的。这个数据集的划分与COCO 2017年的Val数据集不同。用于分割的完整图像ID列表可以在这里找到。COCO评估协议的详细信息可以在MSCOCO evaluation protocol查看。
[^2]:这里提到的是PASCAL mAP,但采用了稍微不同的真正例计算方法。具体细节可以在Open Images evaluation protocols中查看,特别是oid_V2_detection_metrics部分。
[^3]:在训练过程中,非人脸框被丢弃,而在评估时,非人脸的真实框被忽略。
[^4]:这是Open Images挑战赛的度量标准,具体细节也可以在Open Images evaluation protocols中查看,特别是oid_challenge_detection_metrics部分。
对于Open Images evaluation protocols,它包含了Open Images数据集的评估协议和度量标准,这些协议和标准用来评估目标检测、图像分类等任务的性能。这些评估协议详细说明了如何计算精确度、召回率和平均精度(AP)等指标,以及如何处理边界框的匹配和重叠问题。具体的评估协议和度量标准文档可以在Open Images官方GitHub页面或相关技术论文中找到。
相关文章:
TensorFlow 预训练目标检测模型集合
Tensorflow 提供了一系列在不同数据集上预训练的目标检测模型,包括 COCO 数据集、Kitti 数据集、Open Images 数据集、AVA v2.1 数据集、iNaturalist 物种检测数据集 和 Snapshot Serengeti 数据集。这些模型可以直接用于推理,特别是当你对这些数据集中已…...
字符串的区别
C 和 Java 字符串的区别 最近 C 和 Java 在同步学习,都有个字符串类型,但二者不太一样,于是就做了些许研究。 在编程中,字符串作为数据类型广泛应用于不同的场景。虽然 C 和 Java 都允许我们处理字符串,但它们在字符…...
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人: 李钰(绝顶) | 阿里云智能集团资深技术专家,阿里云 EMR 团队负责人 活动: 2024 云栖大会 AI - 开源大数据专场 数据平台技术演变 …...
Linux find 匹配文件内容
在Linux中,你可以使用find命令结合-exec或者-execgrep来查找匹配特定内容的文件。以下是一些示例: 查找当前目录及其子目录下所有文件内容中包含"exampleText"的文件: find . -type f -exec grep -l "exampleText" {} \…...
【Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key】
Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key 一、Key的设计1. 命名规范2. 长度限制在44字节以内 二、BigKey优化1. 查找bigkey2. 删除BigKey3. 优化BigKey 三、Pipeline批处理Key1. 单节点的Pipeline2. 集群下的Pipeline 一、Key的设计…...
数据结构与算法分析:你真的理解图算法吗——深度优先搜索(代码详解+万字长文)
一、前言 图是计算机科学中用来表示复杂结构信息的一种基本结构。本章我们会讨论一些通用的围表示法,以及一些频繁使用的图算法。本质上来说,一个图包含一个元素集合(也就是顶点),以及元素两两之间的关系(也就是边),由于应用范围所限,本章我们仅仅讨论简单图,简单围并不会如(a…...
LinkedList 分析
LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍到。 双向链表 不过,我们在项目中一般是不会使用到 Link…...
【C/C++】模拟实现strlen
学习目标: 使用代码模拟实现strlen。 逻辑: strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1:使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…...
mybatis从浅入深一步步演变分析
mybatis从浅入深一步步演变分析 版本一:不使用代理(非spring) package com.yimeng.domain;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id…...
Java阶段三02
第3章-第2节 一、知识点 面向接口编程、什么是spring、什么是IOC、IOC的使用、依赖注入 二、目标 了解什么是spring 理解IOC的思想和使用 了解IOC的bean的生命周期 理解什么是依赖注入 三、内容分析 重点 了解什么是spring 理解IOC的思想 掌握IOC的使用 难点 理解IO…...
【Linux】掌握库的艺术:我的动静态库封装之旅
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.什么是库1.2 认识动静态库1.2.1 动态库1.2.2…...
UE5动画控制 基础
素材 mixamo先去选择一个character 点击下载 就这个下载下来 然后选几个animation, 记得勾选 把动作下载了 without skin就是只要动作 然后把他们放在一个文件夹里先 UE里导入 找一个文件夹,直接拖拽进来那个character的fbx,默认配置就…...
流畅!HTMLCSS打造网格方块加载动画
效果演示 这个动画的效果是五个方块在网格中上下移动,模拟了一个连续的加载过程。每个方块的动画都是独立的,但是它们的时间间隔和路径被设计为相互协调,以创建出流畅的动画效果。 HTML <div class"loadingspinner"><…...
linux命令之top(Linux Command Top)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...
数据结构-希尔排序(ShellSort)笔记
看动画理解 【数据结构】八大排序(超详解附动图源码)_数据结构排序-CSDN博客 一 基本思想 先选定一个整数gap,把待排序文件中所有记录分成gap个组,所有距离为gap的记录分在同一组内,并对每一组内的元素进行排序。 然后将gap逐渐减小重复上…...
Junit + Mockito保姆级集成测试实践
一、做好单测,慢即是快 对于单元测试的看法,业界同仁理解多有不同,尤其是在业务变化快速的互联网行业,通常的问题主要有,必须要做吗?做到多少合适?现在没做不也挺好的吗?甚至一些大…...
软件项目管理要点
一.项目管理 1.盈亏平衡分析 销售额固定成本可变成本税费利润 当利润为0的时候就是盈亏平衡点。 2.范围管理 范围定义的输入包括:项目章程、项目范围管理计划、组织过程资产、批准的变更申请。 3.时间管理 项目时间管理中的过程包括活动定义、活动排序、活动的资…...
ESP8266 连接 MQTT 服务器EMQX 连接MQTTX
目录 1.先用有一台自己的云服务器 2. 使用FinalShell连接阿里云云服务器ECS 3.安装宝塔 4.在云服务器打开8888端口 5.使用外网面板地址打开宝塔面板 6.安装Docker 7.下载emqx 8.打开emqxWeb 界面 9.下载MQTTX 10.EMQX加一个客户端 11.开始通信 12.加入单片机ESP8266 …...
Python中如何处理异常情况?
1、Python中如何处理异常情况? 在Python中,处理异常情况通常使用try/except语句。try语句块包含可能会引发异常的代码,而except语句块包含处理异常的代码。如果try块中的代码引发了异常,控制流将立即转到相应的except块。 以下是…...
openpnp - 在openpnp中单独测试相机
文章目录 openpnp - 在openpnp中单独测试相机概述笔记END openpnp - 在openpnp中单独测试相机 概述 底部相机的位置不合适, 重新做了零件,准备先确定一下相机和吸嘴的距离是多少才合适。 如果在设备上直接实验,那么拆装调整相机挺麻烦的。 准备直接在电…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
