目标检测 - Tensorflow Object Detection API
一. 找到最好的工具
“工欲善其事,必先利其器”,如果你想找一个深度学习框架来解决深度学习问题,TensorFlow 就是你的不二之选,究其原因,也不必过多解释,看过其优雅的代码架构和工程化实现之后,相信这个问题不会有人再提,这绝非 Caffe an so on 所能比拟的。
回到题头 - 目标检测,相信你一定看过这篇 Paper: Speed/accuracy trade-offs for modern convolutional object detectors, Huang J, CVPR2017
所谓 Trade-Off 是指精度和效率之间的 Trade-Off,TensorFlow 给出了该方法的具体实现:
代码下载:【Github】
二. 跑通代码
先来看页面介绍,来看 Show 出的检测效果对比(IncResnet V2 对小目标的检测效果非常不错):
三. 论文阅读
程序跑起来之后,还是有必要来读一遍论文,了解技术原理,对于代码的运用和参数调整都有很大作用。
这是一篇综述性质的论文,主要比较了 Faster R-CNN,RFCN,SSD 三种检测框架,原理示意如下:
针对每个框架,结合不同的 特征提取网络来进行整合实验,里面主要比较的网络有:VGG,Inception v3,Resnet-101,Inception Resnet 等。
Model
Top-1 accuracy
Num. Params.
VGG-16
71.0
14,714,688
MobileNet
71.1
3,191,072
Inception V2
73.9
10,173,112
ResNet-101
76.4
42,605,504
Inception V3
78.0
21,802,784
Inception Resnet V2
80.4
54,336,736
具体每个网络就不展开了,这个都比较熟悉,通过比较,我们最关心的两点,一是准确度,二是效率,直接贴出来原文的图来说明:
可以看到,精度最高的Faster R-CNN效率是最低的,网络复杂度最高的 Inception Resnet 带来的精度提升比较明显,同样的,用 GPU Time 衡量的计算量与 Float运算、内存容量各方面的衡量指标是类似的,这里就不再全部列出来了。
可以通过两种方式有效提高算法效率: 一是降低图像分辨率,二是减少 Proposal 数量(仅支持Faster R-CNN 和 RFCN )。
需要强调一点的是 Region Proposal 的数量,对于效率的影响会比较明显,因为Proposal数量 决定了计算量(几乎是成比例的),因此提高 Proposal的准确度,减少数量是最好的方式(最有效的提高效率)。
目标检测 - Tensorflow Object Detection API的更多相关文章
- 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(二)
前言 已完成数据预处理工作,具体参照: 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(一) 设置配置文件 新建目录face_faster_rcn ...
- 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程
视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...
- Tensorflow object detection API 搭建物体识别模型(四)
四.模型测试 1)下载文件 在已经阅读并且实践过前3篇文章的情况下,读者会有一些文件夹.因为每个读者的实际操作不同,则文件夹中的内容不同.为了保持本篇文章的独立性,制作了可以独立运行的文件夹目标检测. ...
- Tensorflow object detection API 搭建物体识别模型(三)
三.模型训练 1)错误一: 在桌面的目标检测文件夹中打开cmd,即在路径中输入cmd后按Enter键运行.在cmd中运行命令: python /your_path/models-master/rese ...
- Tensorflow object detection API 搭建物体识别模型(一)
一.开发环境 1)python3.5 2)tensorflow1.12.0 3)Tensorflow object detection API :https://github.com/tensorfl ...
- Tensorflow object detection API 搭建物体识别模型(二)
二.数据准备 1)下载图片 图片来源于ImageNet中的鲤鱼分类,下载地址:https://pan.baidu.com/s/1Ry0ywIXVInGxeHi3uu608g 提取码: wib3 在桌面 ...
- TensorFlow object detection API应用
前一篇讲述了TensorFlow object detection API的安装与配置,现在我们尝试用这个API搭建自己的目标检测模型. 一.准备数据集 本篇旨在人脸识别,在百度图片上下载了120张张 ...
- TensorFlow object detection API应用--配置
目标检测在图形识别的基础上有了更进一步的应用,但是代码也更加繁琐,TensorFlow专门为此开设了一个object detection API,接下来看看怎么使用它. object detectio ...
- TensorFlow Object Detection API中的Faster R-CNN /SSD模型参数调整
关于TensorFlow Object Detection API配置,可以参考之前的文章https://becominghuman.ai/tensorflow-object-detection-ap ...
随机推荐
- 20145328 《Java程序设计》第4周学习总结
20145328 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1 何谓继承 继承也符合DRY(Don't Repeat Yourself)原则 ISA与O ...
- 20145331 《Java程序设计》第3周学习总结
20145331 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 •对象(Object):存在的具体实体,具有明确的状态和行为 •类(Class):具有相同属性和行 ...
- Python 实现C语言 while(scanf("%d%d", &a, &b) != EOF) 语句功能
reference:Python 实现C语言 while(scanf("%d%d", &a, &b) != EOF) 语句功能 在python中,无法通过input ...
- ReverseLinkedList,ReverseLinkedList2,链表反转问题
ReverseLinkedList: public class ReverseLinkedList { public ListNode reverseList(ListNode head) { if( ...
- 今天 学习用到的一些知识(properties 读取,js 删除元素)
1.properties文件位置的关系:当properties文件放在src目录下时,编译会自动把src里的文件放到bin文件平级,因此可用this.getClass.getClassLoader.g ...
- JavaScript encodeURIComponent()
■ 把字符串作为 URI 组件进行编码.JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unes ...
- 超好用的ip归属区域查询
源码如下: #!/usr/bin/env python#-*-coding:utf-8-*- import requestsfrom bs4 import BeautifulSoupimport re ...
- NOIP2018小反思
今天下午做了一道叫邮票 Stamps的题.敲代码的时候就发现,好像和去年D1T2货币系统有点像,原理都是一个完全背包DP.做完之后交上去发现有几个点RE了,于是马上把数组改大,AC. 我赶忙找到去年那 ...
- zookeeper常见错误
1.在注册中心找不到对应的服务 这种错误是服务层代码没有成功注册到注册中心导致,请检查一下你的服务层代码是否添加了@service注解,并且该注解的包一定是com.alibaba.dubbo.conf ...
- Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache
1.事件描述:CentOS7下使用tree命令,发现该命令没有被安装,在安装的过程中发现yum报错 1 2 3 4 5 [root@openstack-01 ~]# tree -d bash: tre ...