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

SSD: Single Shot MultiBox Detectorios

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

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

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

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

 

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

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

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

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

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

创新点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的损失函数, 累加获得最后的损失函数. 

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

相关文章
相关标签/搜索