SSD: Single Shot MultiBox Detector

作者Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg

引用: Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." arXiv preprint arXiv:1512.02325 (2015).

引用次数: 23(Google Scholar,by 2016/11/28).

项目地址https://github.com/weiliu89/caffe/tree/ssd

主流的目标检测算法一般首先是一个region proposal的过程,即提出候选区域! SSD把这个过程取消了!!! 这是检测的速度加快的重要原因!

SSD网络包含两个部分,第一部分是基础网络(就是用于图像分类的网络,但是softmax分类层裁掉了); 第二部分是本文自己设计的网络,主要实现下面的目的: 使用多尺度特征maps进行检测.

创新点1: 使用多尺度特征maps进行目标检测

何凯明的多级pooling用的是conv5的特征maps,在这些特征maps来提取region proposals(bounding boxes从原图上映射到特征maps上),充分利用这些特征maps; 现在好像论文渐渐有这种趋势,开始使用多个特征maps上的特征,而不仅仅是使用最后一级的! 本文的SSD就是采用个特征maps,称之为多尺度特征maps.

创新点2: 使用卷积预测器进行目标检测

创新点3: 默认的boxes以及aspect ratios

这里将一些默认的bounding boxes和每个特征图cell相关联!

1. 图像经过CNN,得到图像的特征maps: A

2. 对这些特征maps进行多级提取特征maps: B

3. 在每个特征map中各个位置location,每个location对应多个default boxes

4. 计算每个default boxes的loc offset以及class score

5. 根据default box以及loc offset计算区域位置P,在根据class score计算每个default box的损失函数,累加得到最终的损失函数.

使用了图像的各个尺度下各个位置的特征进行了回归,既保证了速度,也保证了准确度

计算使用了多个尺度的特征maps,那就来看看到底有哪些尺度的特征maps: 输入图像的大小为:input:3*300*300, 使用的各级卷积层为: conv4_3:512*38*38, conv7:1024*19*19, conv8_2:512*10*10, conv9_2:256*5*5, conv10_2:256*3*3, Avg Pooling:256*1*1,这些卷积层从大到小逐级递减,这样的话就是多尺度检测.

2 The Single Shot Detector (SSD)

图1. SSD框架. GT是Ground Truth的缩写. (a) 训练的时候SSD仅仅需要一张输入图像以及每个待识别目标的GT矩形框. 使用卷积的方式, 我们构造一个具有不同aspect ratios的默认矩形框小集合(如: 4个小矩形框), 用这几个boxes在几个特征maps(这几个特征maps尺度不同, 如8x8(图b), 4x4(图c))的每个位置进行估计. 对于每个默认的box, 我们预测两个指标: 1) 形状偏移; 2) 对box所覆盖区域判定为每个类别(c1,c2,...,cp)的概率值.

2.1 Model

原理概括: SSD基于一个前向传播CNN, 可以产生一系列固定大小的bounding boxes, 以及每个box包含每个目标(c1,c2,...,cp)的可能性(score); 然后进行一个非极大值抑制, 得到最终的predictions. SSD主要由两部分组成: 基础网络(用于图像分类的标准网络,去掉了后面用于分类的层, VGG-16, 将fc6和fc7去掉) + 辅助的网络结构(见图2中的Extra Feature Layers, 加了5层卷积层, 用作多尺度采样).

多尺度特征 maps for detection

SSD在基础的网络结构(VGG-16)后面添加了额外的卷积层(见图2中的Extra Feature Layers), 这些卷积层的大小逐级递减(看图2中的: 19x19, 10x10, 5x5, 3x3, 1x1), 这样的话, 可以在多尺度下面进行预测.

卷积 predictors for detection

对于每个添加的特征层, 可以使用一组卷积滤波器(如图2中对19x19x1024的卷积maps使用3x3x1024的卷积核, 产生的predictions就是归属类别的一个得分)

Default boxes and aspect ratios

2.2 Training

用于检测的多尺度特征图: 300x300(输入图像大小), 38x38, 19x19, 10x10, 5x5, 3x3, 1x1.

Convolutional predictors for detection: 对于每个添加的特征层, 我们使用一组卷积滤波器, 可以得到一组固定数目的目标检测的预测, 对于一个尺寸为mxn的p通道特征层, 我们使用一个3x3xp的小核作为一个基础元素来预测一个坑的检测的信息(类别信息, 位置信息)

图像经过卷积网络, 得到图像的base特征A; 再对这个特征进行多层级的提取特征图B; 在每个特征图中的各个位置, 每个location对应多个default box; 计算每个默认box的loc offset以及class score. 根据默认box以及loc offset计算区域位置P, 再根据class score, 计算每个默认box的损失函数, 累加得到最后的损失函数.

使用图像在各个只读下的各个位置的特征进行回归, 既保证了速度, 也保证了准确度.

目标检测--SSD: Single Shot MultiBox Detector(2015)的更多相关文章

  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

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

  3. 深度学习论文翻译解析(十四):SSD: Single Shot MultiBox Detector

    论文标题:SSD: Single Shot MultiBox Detector 论文作者:Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Sz ...

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

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

  5. 机器视觉:SSD Single Shot MultiBox Detector

    今天介绍目标检测中非常著名的一个框架 SSD,与之前的 R-CNN 系列的不同,而且速度比 YOLO 更快. SSD 的核心思想是将不同尺度的 feature map 分成很多固定大小的 box,然后 ...

  6. 论文笔记 SSD: Single Shot MultiBox Detector

    转载自:https://zhuanlan.zhihu.com/p/33544892 前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-st ...

  7. SSD: Single Shot MultiBox Detector 编译方法总结

    SSD是一个基于单网络的目标检测框架,它是基于caffe实现的,所以下面的教程是基于已经编译好的caffe进行编译的. caffe的编译可以参考官网 caffe Installation Instal ...

  8. [论文理解]SSD:Single Shot MultiBox Detector

    SSD:Single Shot MultiBox Detector Intro SSD是一套one-stage算法实现目标检测的框架,速度很快,在当时速度超过了yolo,精度也可以达到two-stag ...

  9. 论文阅读笔记二十九:SSD: Single Shot MultiBox Detector(ECCV2016)

    论文源址:https://arxiv.org/abs/1512.02325 tensorflow代码:https://github.com/balancap/SSD-Tensorflow 摘要 SSD ...

随机推荐

  1. windows下搭建vue开发环境+IIS部署 [转]

    特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图:     详细的安装步骤如下: 一.安装node.js 说明:安装node.js的windows版本后 ...

  2. windows 2003 IIS FTP 530 home directory inaccessible

    在 Windows Server 2003 及更新的版本中,IIS 中的 FTP 可以使用用户隔离了. 隔离有什么好处呢? 看起来更高级.比如 ftp1 用户打开的时候看到的路径是 /,但内容是自己文 ...

  3. sqlserver 导入数据出现 无法创建 OLE DB 取值函数。请查看列元数据是否有效

    我用的是Sql Server 的导入导出功能来实现的,但是有些数据可以导进去,有些就不行.总是出现一些错误! 执行之前 (错误)消息错误 0xc0202005: 数据流任务: 在数据源中找不到列“Un ...

  4. java包的所有类生成class

    javac的编译单位其实就是单个的java文件,为了达到同时编译多个java文件的目的,可以将所需编译的java文件路径保存在一个txt中,比如sourcelist.txt,以换行为分隔符(这个过程称 ...

  5. Nvivo

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  6. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  7. nginx的location、root、alias指令用法和区别

    nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域: [root] 语法:root path 默认值:root html 配置段:http.server.location.i ...

  8. thread join和detach的区别

    线程状态: 在一个线程的生存期内,可以在多种状态之间转换,不同的操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态,但大体来说,如下几种状态是通用的: 1)就绪:参与 ...

  9. Hadoop记录-MRv2(Yarn)运行机制

    1.MRv2结构—Yarn模式运行机制 Client---客户端提交任务 ResourceManager---资源管理 ---Scheduler调度器-资源分配Containers ----在Yarn ...

  10. HDU - 4333 Revolving Digits(扩展KMP)

    http://acm.hdu.edu.cn/showproblem.php?pid=4333 题意 一个数字,依次将第一位放到最后一位,问小于本身的数的个数及等于本身的个数和大于本身的个数,但是要注意 ...