(一)Google发布了一个新的Tensorflow物体识别API

2023-10-26

       做图像识别有很多不同的途径。谷歌最近发布了一个使用Tensorflow的物体识别API,让计算机视觉在各方面都更进了一步。
这篇文章将带你测试这个新的API,并且把它应用在youtube上(可以在GitHub上获取用到的全部代码
https://github.com/priya-dwivedi/Deep-Learning/blob/master/Object_Detection_Tensorflow_API.ipynb),结果如下:

API概述
        这个API是用COCO(文本中的常见物体)数据集(http://mscoco.org/)训练出来的。这是一个大约有30万张图像、90种最常见物体的数据集。物体的样本包括:

COCO数据集的一些物体种类

这个API提供了5种不同的模型,使用者可以通过设置不同检测边界范围来平衡运行速度和准确率。

上图中的mAP(平均精度)是检测边界框的准确率和回召率的乘积。这是一个很好的混合测度,在评价模型对目标物体的敏锐度和它是否能很好的避免虚假目标中非常好用。mAP值越高,模型的准确度越高,但运行速度会相应下降
(想要了解更多跟模型有关的知识https://github.com/tensorflow/models/blob/477ed41e7e4e8a8443bc633846eb01e2182dc68a/object_detection/g3doc/detection_model_zoo.md)

实测时间

我决定使用最轻量级的模型(ssd_mobilenet)。主要步骤如下:
1. 下载一个打包模型(.pb-protobuf)并把它载入缓存
2. 使用内置的辅助代码来载入标签,类别,可视化工具等等。
3. 建立一个新的会话,在图片上运行模型。
总体来说步骤非常简单。而且这个API文档还提供了一些能运行这些主要步骤的Jupyter文档——
https://github.com/tensorflow/models/blob/master/object_detection/
object_detection_tutorial.ipynb

这个模型在实例图像上表现得相当出色(如下图):

更进一步——在视频上运行上
接下来我打算在视频上尝试这个API。我使用了Python moviepy库,主要步骤如下:
首先,使用VideoFileClip函数从视频中提取图像;
然后使用fl_image函数在视频中提取图像,并在上面应用物体识别API。fl_image是一个很有用的函数,可以提取图像并把它替换为修改后的图像。通过这个函数就可以实现在每个视频上提取图像并应用物体识别;
最后,把所有处理过的图像片段合并成一个新视频。
对于3-4秒的片段,这个程序需要花费大概1分钟的时间来运行。但鉴于我们使用的是一个载入缓存的模型,而且没有使用GPU,我们实现的效果还是很惊艳的!很难相信只用这么一点代码,就可以以很高的准确率检测并且在很多常见物体上画出边界框。

当然,我们还是能看到有一些表现有待提升。比如下面的例子。这个视频里的鸟完全没有被检测出来。

再进一步,继续探索
几个进一步探索这个API的想法:
尝试一些准确率更高但成本也更高的模型,看看他们有什么不同;
寻找加速这个API的方法,这样它就可以被用于车载装置上进行实时物体检测;
谷歌也提供了一些技能来应用这些模型进行传递学习。例如,载入打包模型后添加一个带有不同图像类别的输出层。

参考文献:
Google Tensorflow Object Detection Github
COCO dataset

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(一)Google发布了一个新的Tensorflow物体识别API 的相关文章

随机推荐

  • 关于Rust

    Rust 文章目录 Rust 开发环境搭建 在线模式 离线模式 引入自定义第三方库 通用编程概念 Hello 注释 印屏 Display 变量 变量可变性 不可变变量与常量 变量冻结 延迟绑定 变量隐藏 数据类型 基本数据类型 类型别名 简
  • android 学习中遇到的知识点(杂)

    1 用xml 合成图片 ic launcher xml 作用 将两个图片组合成一个图片 一个背景图 一个icon
  • Oracle 实例名/服务名 请问SID和Service_Name有什么区别啊?

    可以简单的这样理解 一个公司比喻成一台服务器 数据库是这个公司中的一个部门 1 SID 一个数据库可以有多个实例 如RAC SID是用来标识这个数据库内部每个实例的名字 就好像一个部门里 每个人都有一个自己的名字 2 SERVICE NAM
  • spring boot 整合mybatis

    环境 eclipse Version 2019 06 4 12 0 jdk java version 1 8 0 144 maven Apache Maven 3 6 1 步骤 1 https spring io projects spri
  • 满月——有技巧的暴力

    题目描述 某一天你要去看满月 但是你发觉月亮只能看到一部分 现在你看到这些部分全部抽象成平面上的点 并且这些点只可能是在月亮的中心或者是月亮的边缘上 现在问你 月亮可能在什么位置上 就是哪个点可以做月亮的中心 输入 第一行一个整数N 表示有
  • 位运算符之异或

    按位运算符 异或 1 按位运算符 按位运算符对整数值的位进行操作 例如 左移运算符将位向左移 按位非运算符将所有的1变成0 所有的0变为1 C 共有6个这样的运算符 lt lt gt gt 今天我们来介绍其中一种 异或运算符 2 按位异或运
  • SpringBoot整合RabbitMQ

    该篇文章内容较多 包括有rabbitMq相关的一些简单理论介绍 provider消息推送实例 consumer消息消费实例 Direct Topic Fanout的使用 消息回调 手动确认等 但是关于rabbitMq的安装 就不介绍了 在安
  • ElasticSearch第七讲 ES查询速度为什么那么快

    介绍给大家一个开源SpringCloud项目 整合了大部分开源中间件 详情信息可以查看文档 spring cloud开源组件开发 另外自己以后博客所讲解的代码内容 都会我的Git上同步 GitHub同步 GIT地址 ES使用的数据结构是倒排
  • Git基础(常用命令)介绍

    版本控制是一种记录若干文件内容变化 以便将来查阅特定版本修订情况的系统 关于版本控制分为三种 本地版本控制系统 如rcs 集中化的版本控制系统 如CVS SVN 分布式版本控制系统 如Git Git基础要点 Git和其它版本控制系统的主要差
  • 【华为OD机试】乱序整数序列两数之和绝对值最小【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 给定一个随机的整数 可能存在正整数和负整数 数组 nums 请你在该数组中找出两个数 其和的绝对值 nums x nums y 为最小值 并返回这个两个数 按从小到大
  • 安卓开发--应用市场的界面制作(一)--viewpager+fragment实现可滑动的底部导航栏

    相关文章 前言 布局文件 MainAcivity 细节 相关文章 Android Fragment完全解析 关于碎片你所需知道的一切 这是一片很不错的博文 基本上看完就懂fragment是个什么情况了 ViewPager防止Fragment
  • 什么是智慧矿山解决方案发展方向?企业又该怎么做呢?

    什么是智慧矿山呢 智慧矿山是指采用现代高新技术和全套矿山自动化设备等等一些新兴的技术来提高矿山的生产效率和经济效益 通过对矿山生产过程进行实时动态监控 通过这些措施能够让矿山生产维持在最佳状态和最优水平 新型数字化技术能够帮助传统矿业在生产
  • STM32 PWM输出

    STM32 PWM输出 工作过程 我们假定定时器工作在向上计数PWM 模式 且当 CNT
  • 天梯赛座位分配PTA

    天梯赛座位分配PTA 天梯赛座位分配PTA TOC 前言 PTA的一道题目 一 题目内容 题目 天梯赛每年有大量参赛队员 要保证同一所学校的所有队员都不能相邻 分配座位就成为一件比较麻烦的事情 为此我们制定如下策略 假设某赛场有 N 所学校
  • QT学习_02_Lambda表达式——槽函数的正确打开方式

    1 带参数的信号 假设发送的信号带参数 信号是可以重载的 我用同一个函数名称 一个带参数 一个不带参数 在点击 切换到主窗口 按钮的时候 同时发射这两个信号 subwidget h ifndef SUBWIDGET H define SUB
  • ubuntu学习笔记

    ubuntu学习笔记 前言 一 ubuntu 22 04 更换阿里源 二 ubuntu22 04安装搜狗输入法 三 linux系统分区 个人向 四 vi及vim文本编辑器使用 五 nano文本编辑器使用 六 查看IP及网关DNS并设置IP地
  • 第09课:生活中的工厂模式——你要拿铁还是摩卡

    用程序来模拟生活 从剧情中思考工厂模式 工厂模式的模型抽象 类图 模型说明 简单工厂的优点 简单工厂的缺点 模型的拓展应用 应用场景 拓展 工厂三姐妹 简单工厂模式 工厂方法模式 抽象工厂模式 进一步思考
  • 遇到问题--Nginx---tomcat启动web程序访问静态资源时404找不到

    http blog csdn net zzq900503 article details 76927074 给web站点配置域名转发后 tomcat启动web程序访问静态资源时404找不到 经过确认项目资源路径都没问题 后来经过排查后发现是
  • 配置samba服务

    什么是samba服务 是 和windows 进行 文件打印机共享的组件 结果就是linux windows 之间可以互相访问它们的共享文件 说明 我用的是ubuntu系统 ubuntu系统安装samba服务 确定自己是否安装samba dp
  • (一)Google发布了一个新的Tensorflow物体识别API

    做图像识别有很多不同的途径 谷歌最近发布了一个使用Tensorflow的物体识别API 让计算机视觉在各方面都更进了一步 这篇文章将带你测试这个新的API 并且把它应用在youtube上 可以在GitHub上获取用到的全部代码 https