一. 找到最好的工具

“工欲善其事,必先利其器”,如果你想找一个深度学习框架来解决深度学习问题,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的更多相关文章

  1. 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(二)

    前言 已完成数据预处理工作,具体参照: 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(一) 设置配置文件 新建目录face_faster_rcn ...

  2. 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

    视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...

  3. Tensorflow object detection API 搭建物体识别模型(四)

    四.模型测试 1)下载文件 在已经阅读并且实践过前3篇文章的情况下,读者会有一些文件夹.因为每个读者的实际操作不同,则文件夹中的内容不同.为了保持本篇文章的独立性,制作了可以独立运行的文件夹目标检测. ...

  4. Tensorflow object detection API 搭建物体识别模型(三)

    三.模型训练 1)错误一: 在桌面的目标检测文件夹中打开cmd,即在路径中输入cmd后按Enter键运行.在cmd中运行命令: python /your_path/models-master/rese ...

  5. Tensorflow object detection API 搭建物体识别模型(一)

    一.开发环境 1)python3.5 2)tensorflow1.12.0 3)Tensorflow object detection API :https://github.com/tensorfl ...

  6. Tensorflow object detection API 搭建物体识别模型(二)

    二.数据准备 1)下载图片 图片来源于ImageNet中的鲤鱼分类,下载地址:https://pan.baidu.com/s/1Ry0ywIXVInGxeHi3uu608g 提取码: wib3 在桌面 ...

  7. TensorFlow object detection API应用

    前一篇讲述了TensorFlow object detection API的安装与配置,现在我们尝试用这个API搭建自己的目标检测模型. 一.准备数据集 本篇旨在人脸识别,在百度图片上下载了120张张 ...

  8. TensorFlow object detection API应用--配置

    目标检测在图形识别的基础上有了更进一步的应用,但是代码也更加繁琐,TensorFlow专门为此开设了一个object detection API,接下来看看怎么使用它. object detectio ...

  9. TensorFlow Object Detection API中的Faster R-CNN /SSD模型参数调整

    关于TensorFlow Object Detection API配置,可以参考之前的文章https://becominghuman.ai/tensorflow-object-detection-ap ...

随机推荐

  1. 20145312《Java程序设计》课程总结

    20145312<Java程序设计>课程总结 每周读书笔记链接汇总 20145312<Java程序设计>第一周学习总结 20145312<Java程序设计>第二周学 ...

  2. 如何使用openwrt下的分区表生成器ptgen

    1.基本用法如下: ptgen [-v] -h <heads> -s <sectors> -o <outputfile> [-a 0..4] [-l <ali ...

  3. ubuntu如何释放内存

    答: step 1: 以最高权限同步所有的缓存到磁盘中 sync sync step2: 执行以下命令指示内核对内存进行调整 echo 3 > /proc/sys/vm/drop_caches ...

  4. codeforces 578c - weekness and poorness - 三分

    2017-08-27 17:24:07 writer:pprp 题意简述: • Codeforces 578C Weakness and poorness• 给定一个序列A• 一个区间的poornes ...

  5. VirtualBox 安装增强功能失败 解决方法

    参考:virtualbox安装增强功能时[未能加载虚拟光盘] 在安装VirtualBox并配置虚拟机之后,想要安装增强功能:设备 => 安装增强功能. 出现未能加载虚拟光盘问题. 解决方法: 进 ...

  6. sa learning

    后缀数组之前一直在给队友搞,但是这个类太大了,预感到青岛八成会有,于是自己也学习一下,记录一下做题的历程 所用的模板暂时来自于队友的倍增nlogn da算法 int t1[maxn] , t2[max ...

  7. 决策树的剪枝,分类回归树CART

    决策树的剪枝 决策树为什么要剪枝?原因就是避免决策树“过拟合”样本.前面的算法生成的决策树非常的详细而庞大,每个属性都被详细地加以考虑,决策树的树叶节点所覆盖的训练样本都是“纯”的.因此用这个决策树来 ...

  8. Gtk基础学习总结(二)

    一.信号.事件 void g_signal_connect(instance,char* signalName,callback,gpointerobject); //instance:gtk控件 i ...

  9. shell 条件语句

    shell 条件语句 #!/bin/bash # 条件语句 NUM1=100 NUM2=200 if (($NUM1 > $NUM2));then echo "$NUM1 greate ...

  10. Spring MVC:控制器类名称处理映射

    控制器类名称处理映射的好好处是: 如果项目是hello,WelcomeController是控制器,那么访问地址是: http://localhost:8080/hello/welcome http: ...