论文源址:https://arxiv.org/abs/1512.02325

tensorflow代码:https://github.com/balancap/SSD-Tensorflow

摘要

SSD也为单阶段的网络,在feature map的每个feature map像素上生成一系列不同尺寸与大小的默认框,预测时,网络输出的分数代表每个默认框中目标物的类别,同时,调整框的大小与目标物的外形更加匹配。针对不同尺寸大小的物体,网络结合不同的网络层(具有不同的分辨率)的预测值。相对于提取目标proposals,SSD消除了区域框的生成,像素或者特征重采样的过程,并将所有计算融合到一个网络中。SSD在具有较高准确率的基础上,保证了较快的检测速度。

介绍

目前,目标检测的算法为以下几类的变体:假设一些边界框,对每个框中进行特征与像素进行计算提取,后接一个高效的分类器。上述都是由于SS方法的提出,同时,Faster R-CNN基于深层特征提取proposals,虽然准确率较好,但相对于嵌入式系统来说需要占用大量的计算资源,在实现实时检测上存在一定的挑战性。Faster R-CNN处理图片只有7帧每秒。而SSD网络可以实现在VOC2007测试集取得59FPS的速度,和mAP74.%的结果。速度的提升主要是因为消除了proposals的生成,和一系列像素和特征的重采样步骤。

本文的改进如下:(1)使用一个小的卷积核预测目标物体的类别,与边界框的位置偏移。(2)使用分离的卷积核进行不同尺寸大小的检测并将这些卷积核应用到不同的feature ma中进而实现多尺寸的预测。

通过上述改进,可以使网络对于较低分辨率的输入仍可以进行较高准确率的检测。

本文贡献:

I.提出了比YOLO还快的多类别单流检测网络,准确率也较高(相比YOLO v1高(63.4%->74.3%)与faster rcnn相差不大)。

II.SSD的核心思想是,通过在feature maps上使用小的卷积核对固定数量的边界框预测类别和框的偏移。

III.通过在不同尺寸大小的feature map上进行不同的检测,提高准确率。

IV.实现了端到端的训练,提高了速度和准确率,在较低分辨率的输入图片上的表现效果也较好。

V.在PASCAL VOC,COCO,和ILSVRC数据集上效果很好。

The Single Shot Detector(SSD)

SSD基于前向卷积网络,产生一些固定尺寸大小的边界框和代表框中目标物类别的分数,最后通过使用NMS处理得到最终检测结果。

用于检测的多尺寸feature maps:在截断的base net后添加一层卷积层。这些网络层在大小上逐渐变小,同时可以实现多尺寸的检测预测。用于进行预测的卷积层各个不同。

检测的卷积预测器:网络结构如下,对于一个带下为mxnxp的特征层,一个潜在检测器的卷积核大小为3x3xp用于产生每个类别的score,或者是默认框坐标的偏移量。mxn每个位置都应用上面的卷积核,同时,产生一个输出值。预测框的输出值是相对每个feature map位置中默认边界框的偏移量。

默认框及其尺寸:对于每个feature map单元设置了一系列默认的边界框。边界框以卷积的方式平铺在feature map上,因此,每个单元里每个box的位置是相对固定的。在每个feature map单元上,对每个单元中默认框外形的相对偏差,与此同时预测每个框中类别分数值。对于每个位置输出k个框,计算c个类别的分数值,及相对原始默认框大小的4个偏差值,对于feature map中的每个像素点需要(c+4)*k个卷积核,对于mxn大小的feature map需要,(c+4)*k*m*n个卷积核。默认框的生成参考Faster R-CNN的锚。本文将该思想应用到不同的feature map上从而得到不同的分辨率。

训练

SSD与经典的基于region proposal的检测方法的关键不同点在于如何将ground truth映射到default box上。映射关系确定后,损失函数和反向传播可以进行端到端的训练。训练包括默认default box的选择和检测的尺寸,像hard negative mining 和数据增强策略。

匹配策略:    训练时,需要确认与ground  truth 相关的默认框并对网络进行训练。对于每个ground truth box,根据不同的位置,缩放比例,尺寸等来选择默认box。通过将ground truth 与默认box进行IOU计算进行匹配,选择最大的为正样本,其次,将与任意ground truth IOU计算大于0.5的default boxes进行匹配作为正样本。这里简化了学习问题,允许网络预测出多个不同IOU的default boxes的分数,而不是从中挑一个重叠度最大的一个。

目标的训练:

代表第i个default box与第j个类别为p的ground truth box是否匹配。损失函数如下,

default box尺寸和比例的选择:SSD受分割网络的启发,结合低层与高层feature maps用于检测。如下图所示,

同一网络中不同的网络层具有不同的感受野,SSD框架由于有default box的存在不需要将每层的感受野要与所在的网络层进行对应。假设预测需要使用m个feature maps。针对每个feature map default box尺寸的定义如下:

Hard negative mining:在进行匹配确定正负样本的步骤中,大多数的default boxes是负样本,这会导致训练时正负样本之间的不平衡。为此对负样本进行挑选,

(1)对于每个default box根据confidence 的损失由大到小的进行排序(2)挑选最高的几个调整正负样本的比例为3:1。

数据增强:(1)使用全部原始图片(2)使用IOU和目标物体为0.1, 0.3,0.5, 0.7, 0.9的patch (这些 patch 在原图的大小的 [0.1,1] 之间, 相应的宽高比在[1/2,2]之间)(3)随机进行裁剪 保留ground truth与采样的patch重叠的部分,采样完成后,将patch resize至固定尺寸,并以0.5的概率进行水平反转。

实验

Reference

1. Uijlings, J.R., van de Sande, K.E., Gevers, T., Smeulders, A.W.: Selective search for object
recognition. IJCV (2013)
      2. Ren, S., He, K., Girshick, R., Sun, J.: Faster R-CNN: Towards real-time object detection
with region proposal networks. In: NIPS. (2015)
      3. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR.
(2016)
      4. Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., LeCun, Y.: Overfeat: Integrated
recognition, localization and detection using convolutional networks. In: ICLR. (2014)

论文阅读笔记二十九:SSD: Single Shot MultiBox Detector(ECCV2016)的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. SSD: Single Shot MultiBox Detector

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

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

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

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

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

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

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

随机推荐

  1. CNN学习入门

    https://blog.csdn.net/ice_actor/article/details/78648780

  2. Javascript - ExtJs - TabPanel组件

    示例 Ext.create('Ext.tab.Panel', {     width: "100%",     renderTo: "tabBox",      ...

  3. Linux下查询文件的md5,sha1值

    验证下载下来的文件包是不是一致 ··· 验证md5值 #md5sum filename 验证shal值 #sha1sum filename ···

  4. Python运维开发基础10-函数基础【转】

    一,函数的非固定参数 1.1 默认参数 在定义形参的时候,提前给形参赋一个固定的值. #代码演示: def test(x,y=2): #形参里有一个默认参数 print (x) print (y) t ...

  5. PEP 530 -- 异步推导式

    PEP 530 -- 异步推导式 摘要 PEP 492和PEP 525使用async/await语法引入了协程.PEP 530建议添加list,set,dict推导式和生成器推导式的异步版本. 理论和 ...

  6. web服务器上某一中文名文件无法访问

    只需要在此目录下    convmv  -f GBK -t UTF-8 --notest  *.xxx 执行这个命令即可

  7. 删除元素splice、shift\pop

      splice() 方法: 向/从数组中添加/删除项目,然后返回被删除的项目. splice( index位数, 数量, 新添加 ) 该方法会改变原始数组 删除数组中第一个元素 arr.shift( ...

  8. OPENSSL编程 第二十章 椭圆曲线

    20.1  ECC介绍 椭圆曲线算法可以看作是定义在特殊集合下数的运算,满足一定的规则.椭圆曲线在如下两个域中定义:Fp域和F2m域. Fp域,素数域,p为素数: F2m域:特征为2的有限域,称之为二 ...

  9. Android apk动态加载机制

    参考链接:http://blog.csdn.net/singwhatiwanna/article/details/22597587

  10. winfrom里面打印类似小票

    首先在窗体上拖一个printDocument1控件和一个Button按钮,然后双击该控件的PrintPage事件,在事件里面复制下面代码: Pen blackPen = new Pen(Color.B ...