SSD:Single Shot MultiBox Detector

Intro

SSD是一套one-stage算法实现目标检测的框架,速度很快,在当时速度超过了yolo,精度也可以达到two-stage的精度,可以与faster rcnn媲美,这套算法里用到了与faster rcnn的anchor相似的概念-default box,也解决了多尺度问题对one-stage的影响-对不同大小的feature map进行滑窗分类,使得不同尺度的feature map的分类器对原图目标尺度更加敏感。

one-stage和two-stage的算法区别主要在于,two-stage算法在区域提取的时候做分类是前景和背景,只有两个分类,然后再拿去给第二个专门用来分类的网络去学习分类具体类别;而one-stage算法直接在区域提取的时候给分类结果(这其中其实还设计到训练的时候default boxes 的label与ground truth label匹配的问题),我认为这是最大的不同。

Model

模型的结果其实很容易理解,就是在vgg16后面开始一边对每个feature map直接做分类,一边继续压缩feature map的size,然后继续做分类,以此类推。最后把所有的detection结果做nms。

文章先介绍了SSD作为多尺度检测器是通过对feature map的不同尺度进行的,而怎么做这个检测呢?利用类似于anchor的方法,在不同尺度的feature map上用3*3卷积核滑窗,这样每个卷积核作用得到一个结果,而对每个feature map cell,作者又安排了一组对应的default boxes,这些default boxes在size上有所不同,比例是预先设计好的。每个cell安排(c+4)*k个卷积核,c表示类别,4表示offset,k表示default boxes种类,这样,对每个default box而言,有不同的卷积核负责算类别概率、与bounding box的偏移值。因此,对于一个m*n的feature map而言,输出的结果有m*n*k*(c+4)个。作者也说了,他们设计的default boxes其实是类似于anchor boxes的,这点毋庸置疑。

Training

之前说过,训练很重要的一点是label的对应,因此作者在这里首先讲了匹配的策略。先从每个default box开始,把每个default box匹配一个与之重叠度最高的ground truth,这里重叠度用的jaccard算法,其实跟iou是一样的,交集比上并集,然后还没完,又从ground truth出发,让每个ground truth能够对应与之jaccard重叠度大于0.5的default boxes,然后把小于0.5的去除。这样减少了训练的数量,大大简化了训练。举个例子,一套简单题,一个同学在班上分数最高,他肯定就是这个班最强的人了,但是他只有五十分,你说选他还是不选他,菜鸡!当然不选了。

上面建立了从default box到ground truth box在空间上的映射,然后提出loss:

这里又通过p将空间映射在类别上细分。我们知道每个default box的预测有(c+4)个值,所以对于l,只需要说明是第几个参与训练的default box和第m个位置预测,m当然是在那4个中选,至于你安排哪几个预测位置,完全看你自己。两者经过smooth L1函数运算完,再看看类别对应上没有,显然对应上了这个值就应该是1,以此来最小化loss。分类的loss是所有正例分类概率的-log乘上匹配值,显然匹配上了是1,如果每匹配上,就是所有正例概率-log之和,加上负样本预测背景的概率-log,就是全预测0就是背景,即对0的预测概率,显然概率越高loss越小。

然后是hard negative mining,在经过matching之后,其实大多数default box是负样本,这就导致了正负样本极度不均衡,然后就把一些负样本变正呗,把iou高的变正,保证正负样本比例位1:3.

最后是数据增强,增强选项包括:

  1. 直接用原图
  2. sample a patch(实在不知道咋翻译但是会意就好了)使得iou是0.1 0.3 0.5 0.7 或者0.9
  3. 随机sample a patch(不用保证是上面的0.1 0.3 0.5 0.7 0.9)

实验部分到后面统一做,直接把看过的都用mxnet写一遍吧。希望有一天买得起GPU,不用天天看书而无法正儿八经跑项目和比赛。真心想参加比赛!!

[论文理解]SSD:Single Shot MultiBox Detector的更多相关文章

  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)的安装配置和运行

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

  4. SSD: Single Shot MultiBox Detector

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. CI框架中,扩展验证码类。

    使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...

  2. starUML建立时序图

    对于经常看项目代码或者写项目的人.时序图可以帮助理解.记录项目.设计项目等用途. 1.starUml下载安装比较简单,这里不再赘述.打开starUml 2. 在Model Explorer 中,在Un ...

  3. 洛谷P1349 广义斐波那契数列(矩阵快速幂)

    P1349 广义斐波那契数列 https://www.luogu.org/problemnew/show/P1349 题目描述 广义的斐波那契数列是指形如an=p*an-1+q*an-2的数列.今给定 ...

  4. HTML5学习笔记(四)语义元素

    语义元素能够清楚的描述其意义给浏览器和开发者. 无语义 元素实例: <div> 和 <span> - 无需考虑内容. 语义元素实例: <form>, <tab ...

  5. JSP 标准标签库(JSTL)(菜鸟教程)

    菜鸟教程 JSTL 1.1 与 JSTL 1.2 之间的区别?如何下载 JSTL 1.2? JSTL 1.2 中不要求 standard.jar 包. 您可以在 Maven 中央仓库中找到它们. ht ...

  6. 汇总:unity中弹道计算和击中移动目标计算方法

    http://download.jikexueyuan.com/detail/id/432.html 弹道计算是游戏里常见的问题,其中关于击中移动目标的自动计算提前量的话题,看似简单,其实还是挺复杂的 ...

  7. poj 2769 感觉♂良好 (单调栈)

    poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...

  8. 洛谷P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

    P2854 [USACO06DEC]牛的过山车Cow Roller Coaster 题目描述 The cows are building a roller coaster! They want you ...

  9. CF 1215解题报告

    T1 偶数输出n/2 奇数输出(n-1)/2即可 T2 判断是不是回文 不是直接输出子串 是回文继续判断 如果他前(len+1)/2内没有相同 输出-1 其他的 交换不同字符,输出子串 T3 贪心+二 ...

  10. Mysql 5.7 账户过期重启

    关闭mysql 重启mysql57