目标检测之单步检测(Single Shot detectors)

前言

像RCNN,fast RCNN,faster RCNN,这类检测方法都需要先通过一些方法得到候选区域,然后对这些候选区使用高质量的分类器进行分类。这类方法的检测准确率比较高但是计算开销非常大,不利于实时检测和嵌入式等设备。
另一类方法是将提取候选区和进行分类这两个任务融合到一个网络中。既不使用预定义的box也不使用候选区生成网络来进行寻找目标物体。而是通过一些的卷积核来对卷积网络得到的特征来计算类别分数和位置偏差。

利用卷积神经网络进行区域定位

利用卷积神经网络来进行的分类任务中,通常网络结构最后都有一个全连接层来计算属于各个类别的概率值。例如对于输入为640×480像素的三通道图像,经过多个卷积层池化层以后得到13x18×2048通道的特征图,相当于把原图“划分”(并不严谨)成13×18的小区块(cell)。

原来的图像由640×480像素压缩到13×18cell,每个cell代表了原图的大范围的区域,我们可以在检测目标物体是否在cell内出现。另外每个cell的信息由2048维的向量表示,因此图像信息并没有丢失太多(除非使用较多的池化层)。
对于每个cell,你可以想象使用1×1卷积层(关于1×1卷积,你可以看这里)来对每个cell进行分类(前景还是后景),同样你也可以连接上其他的卷积层或全连接层来预测Bounding box的坐标:(x,y,w,h),这样你就可以在一个过程中得到类别评分和位置的预测值。
可能有人认为这个过程就是简单的把原图像直接划分为几个网格,这样想就错了。这个过程虽然是用少数的几个cell来代表整张图像,但是cell的特征维度很高,而且cell之间会有一些重叠并非平铺的。在训练的时候,我们还需要对真实的标注和虚拟的cell之间进行一系列的匹配。

如何得到bounding box

可能一开始会让人理解困难的是检测网络是如何将cells物体实际的bounding box,以下是一些使用单步检测策略的目标检测方法:

  1. SSD:Uses different activation maps (multiple-scales) for prediction of classes and bounding boxes
  2. YOLO: Uses a single activation map for prediction of classes and bounding boxes
  3. R-FCN(Region based Fully-Convolution Neural Networks): Like Faster Rcnn (400ms), but faster (170ms) due to less computation per box also it's Fully Convolutional (No FC layer)

使用多尺度有助于实现更高的mAP(mean average precision),能更好的对不同大小的目标进行检测。
这类方法使用的策略总结:

  1. 训练一个卷积神经网络作为bounding box的回归器和目标物体的分类器。
  2. 通常,它们的损失函数更复杂,因为它必须实现多个任务(是否存在目标物体、分类、回归)
  3. 从多个层总结激活结果,然后使用全连接层或特殊的卷积层(工作过程和全连接层类似)来实现分类和确定位置。
  4. 在预测期间,使用算法例如非极大值抑制来过滤围绕相同对象的多个框。
  5. 在训练时,使用IoU来表示预测值和真实标签值之间的差距大小。

这类单步检测网络,都会有许多的互相重叠的cell,这些cell有不同的空间位置,尺度,这些cell被称为“anchors”(有时也被称作“priors”,“default boxes”)。

目标检测之单步检测(Single Shot detectors)的更多相关文章

  1. 【计算机视觉】目标检测之ECCV2016 - SSD Single Shot MultiBox Detector

    本文转载自: http://www.cnblogs.com/lillylin/p/6207292.html SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot Mul ...

  2. SSD: Single Shot MultiBox Detector论文阅读摘要

    论文链接: https://arxiv.org/pdf/1512.02325.pdf 代码下载: https://github.com/weiliu89/caffe/tree/ssd Abstract ...

  3. 目标检测--SSD: Single Shot MultiBox Detector(2015)

    SSD: Single Shot MultiBox Detector 作者: Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, ...

  4. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

  5. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  6. 翻译SSD论文(Single Shot MultiBox Detector)

    转自http://lib.csdn.net/article/deeplearning/53059 作者:Ai_Smith 本文翻译而来,如有侵权,请联系博主删除.未经博主允许,请勿转载.每晚泡脚,闲来 ...

  7. SSD(Single Shot MultiBox Detector)的安装配置和运行

    下文图文介绍转自watersink的博文SSD(Single Shot MultiBox Detector)不得不说的那些事. 该方法出自2016年的一篇ECCV的oral paper,SSD: Si ...

  8. SSD: Single Shot MultiBox Detector

    By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexande ...

  9. SSD(single shot multibox detector)

    SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,截至目前是主要的检测框架之一,相比Faster RCNN有明显的速 ...

随机推荐

  1. 文档对象DOM的操作及使用

    Dom对象是什么? DOM对象就是每次你打开浏览器后,进入一个网址时浏览器获取到的HTML文本内容,当浏览器获取到HTML文本内容时,会将其内容以DOM对象的形式缓存到内存中,这时你便可以对DOM对象 ...

  2. Ant Design框架中不同的组件访问不同的models中的数据

    Ant Design框架中不同的组件访问不同的models中的数据 本文记录了我在使用该框架的时候踩过的坑,方便以后查阅. 一.models绑定 在某个组件(控件或是页面),要想从某个models中获 ...

  3. MySQL定时备份(全量备份+增量备份)

    MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份.差异备份.增量备份 更多binlog的学习参考马丁传奇的 MySQL的 ...

  4. UGUI源码之Selectable

    Selectable是Button.InputField.Toggle.ScrollBar.Slider.Dropdown的基类. Selectable的继承的类与接口如下: public class ...

  5. 恕我直言,牛逼哄哄的MongoDB你可能只会30%

    MongoDB闪亮登场 自我介绍 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...

  6. python封装简介

    1.效果图: 对比一: 对比二: 2.学习来源代码: # 封装是面向对象的三大特性之一 # 封装指的是隐藏对象中一些不希望被外部所访问到的属性或方法 # 如何隐藏一个对象中的属性? # - 将对象的属 ...

  7. 简单介绍HTTP的请求(get请求和post请求)以及对应的响应的内容

    链接解析: https://oa.hbgf.net.cn/login.jsp;jsessionid=47084322738F8DB18D60752944DFD1AA http或者https表示使用的是 ...

  8. C++读书笔记

    C与C++的不同点 C++在struct,union中定义的函数叫成员函数,在class中定义的数据叫数据成员 C++引入了三个存取权限的关键字:public,protected,private pu ...

  9. [bzoj2186] [洛谷P2155] [Sdoi2008] 沙拉公主的困惑

    Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...

  10. MySQL 相关规约(v1.0) (转)

    0)前言 a. 基本规约 [强制]表存储引擎必须使用InnoDB(针对主库一般是强制要求的) [强制]表字符集默认使用utf8,必要时候使用utf8mb4(个人踩坑:emoji表情存储问题)•说明:• ...