[论文理解]SSD:Single Shot MultiBox Detector
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.
最后是数据增强,增强选项包括:
- 直接用原图
- sample a patch(实在不知道咋翻译但是会意就好了)使得iou是0.1 0.3 0.5 0.7 或者0.9
- 随机sample a patch(不用保证是上面的0.1 0.3 0.5 0.7 0.9)
实验部分到后面统一做,直接把看过的都用mxnet写一遍吧。希望有一天买得起GPU,不用天天看书而无法正儿八经跑项目和比赛。真心想参加比赛!!
[论文理解]SSD:Single Shot MultiBox Detector的更多相关文章
- 论文笔记 SSD: Single Shot MultiBox Detector
转载自:https://zhuanlan.zhihu.com/p/33544892 前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-st ...
- 深度学习论文翻译解析(十四):SSD: Single Shot MultiBox Detector
论文标题:SSD: Single Shot MultiBox Detector 论文作者:Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Sz ...
- SSD(Single Shot MultiBox Detector)的安装配置和运行
下文图文介绍转自watersink的博文SSD(Single Shot MultiBox Detector)不得不说的那些事. 该方法出自2016年的一篇ECCV的oral paper,SSD: Si ...
- SSD: Single Shot MultiBox Detector
By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexande ...
- 机器视觉:SSD Single Shot MultiBox Detector
今天介绍目标检测中非常著名的一个框架 SSD,与之前的 R-CNN 系列的不同,而且速度比 YOLO 更快. SSD 的核心思想是将不同尺度的 feature map 分成很多固定大小的 box,然后 ...
- 目标检测--SSD: Single Shot MultiBox Detector(2015)
SSD: Single Shot MultiBox Detector 作者: Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, ...
- 【计算机视觉】目标检测之ECCV2016 - SSD Single Shot MultiBox Detector
本文转载自: http://www.cnblogs.com/lillylin/p/6207292.html SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot Mul ...
- SSD: Single Shot MultiBox Detector 编译方法总结
SSD是一个基于单网络的目标检测框架,它是基于caffe实现的,所以下面的教程是基于已经编译好的caffe进行编译的. caffe的编译可以参考官网 caffe Installation Instal ...
- SSD: Single Shot MultiBox Detector论文阅读摘要
论文链接: https://arxiv.org/pdf/1512.02325.pdf 代码下载: https://github.com/weiliu89/caffe/tree/ssd Abstract ...
随机推荐
- 教你如何暴力破解-telnet ftp ssh mysql mssql vnc 等
大家应该都知道暴力破解的原理,但却不知道遇见telnet和ftp等服务和数据库如何破解,今天小R就教大家如何利用一个工具就能对其破解. 今天要给大家介绍的工具是:hydra(中文名:九头蛇) 这个名听 ...
- 4. docker镜像的概念、管理(查看、下载、删除)
镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 下图展示的是Docker镜像的系统结构. ...
- 网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法:
转载自网络,非原创 1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head ...
- Go语言入门——数组、切片和映射
按照以往开一些专题的风格,第一篇一般都是“从HelloWorld开始” 但是对于Go,思来想去,感觉真的从“HelloWorld”说起,压根撑不住一篇的篇幅,因为Go的HelloWorld太简单了. ...
- MATLAB进行假设检验
4.8.1 已知,单个正态总体的均值μ的假设检验(U检验法) 函数 ztest 格式 h = ztest(x,m,sigma) % x为正态总体的样本,m为均值μ0,sigma为标准差,显著 ...
- 关于通过angularJs将页面中的html table 导出生成excel
直接上代码: <button class="btn btn-link" ng-click="exportToExcel('#table1')"> & ...
- 2014 Noip提高组 Day2
P2038 无线网络发射器选址 [题目描述] 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 ...
- uoj#400. 【CTSC2018】暴力写挂(边分治)
传送门 做一道题学一堆东西.jpg 猫老师的题--暴力拿的分好像比打挂的正解多很多啊--我纯暴力+部分分已经能有80了--正解没调对之前一直只有10分→_→ 先说一下什么是边分治.这个其实类似于点分治 ...
- python中的三元表达式(三目运算符)
python中没有其他语言中的三元表达式,不过有类似的实现方法 其他语言中,例如java的三元表达式是这样 int a = 1; String b = ""; b = a > ...
- STP-8-RSTP中的提议/同意过程
连接中断原因也可能是增加了新的链路,导致其中一台交换机重新选举根端口,最终认为新链路所连端口是根端口,RSTP在点到点链路上使用提议/同意(Proposal/Agreement)过程,让类似这种链路迅 ...