先给出论文链接:SSD: Single Shot MultiBox Detector

本文将对SSD中一些难以理解的细节做仔细分析,包括了default box和ground truth的结合,default box结合到不同检测的feature map层上,难样本挖掘,数据扩充,Atrous Algorithm算法原理等。包括了SSD对一阶段目标检测的贡献以及总结了SSD对其他目标检测方法的关键改进点。

一、SSD具有如下主要特点

1. 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类。

2. 基于Faster RCNN中的Anchor,提出了相似的(default box)Prior box。

3. 加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,即在不同感受野的feature map上预测目标。

二、优点和缺点

SSD算法的优点应该很明显:运行速度可以和YOLO媲美,检测精度可以和Faster RCNN媲美。除此之外,还有一些鸡毛蒜皮的优点,不解释了。这里谈谈缺点:

1. 需要人工设置prior box的min_size,max_size和aspect_ratio值。网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验。

2. 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。

三、关键点分析

1. 多尺度feature map得到default boxes及其 4个位置偏移和21个类别置信度。

对于不同尺度feature map(图中 38x38x512,19x19x512, 10x10x512, 5x5x512, 3x3x512, 1x1x256)上的所有特征点:以5x5x256为例,它的#defalut_boxes = 6。

结合这个图,就可以厘清上面的思路。

四、其他相关技术点分析

1. Hard Negative Mining(难负样本挖掘)

指的是分类错误,很难分辨的样本,包括了前景和背景。SSD做了这方面的处理。有一个名词是OHEM(Online Hard Example Mining)。是将容易分为负样本的正类,即图像中的目标类别。

2. 数据扩充

3. Atrous Algorithm

SSD在设计模型的时候,用了Atrous算法,这提高了模型的性能。其实Atrous算法就是一个下采样算法。在卷积操作的时候,stride增加,比如stride为2,则feature map下采样为1/4大小(长宽分别为上一层的1/2),此时表示感受野增加。相反,当stride减少时,比如stride为1,则feature map不变,此时你获得的特征感受野就减少。为了防止feature map和receptive filed之间的互斥性,采用了Atrous 算法。具体的讲解如下分析所示。

五、总结

1. SSD对目标检测的贡献

(1). SSD, a single-shot detector for multiple categories (faster than YOLO, accurate as Faster R-CNN).

        (2). The core of SSD is predicting category scores and box offsets for a fixed set of default bounding boxes using small convolutional filters applied to multiple feature maps from different layers.

        (3). Experimental evidence: high accuracy, high speed, simple end-to-end training (single shot).

        2. SSD对于其他方法的改进的关键点

(1). Using a small convolutional filter to predict object categories and offsets in bounding box locations.

(2). Using separate predictors (filters) for different aspect ratio detections.

(3). Using multiple layers for prediction at different scales (apply these filters to multiple feature maps to perform detection at multiple stages).

六、感谢

感谢这些博主的详细分析。给出他们的链接:

目标检测方法——SSD:https://www.bbsmax.com/A/gGdX0Vepd4/

SSD分析: SSD - 知乎

**如果有用,记得点赞

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析相关推荐

  1. SSD+caffe︱Single Shot MultiBox Detector 目标检测+fine-tuning(二)

    承接上一篇SSD介绍:SSD+caffe︱Single Shot MultiBox Detector 目标检测(一) 如果自己要训练SSD模型呢,关键的就是LMDB格式生成,从官方教程weiliu89 ...

  2. SSD+caffe︱Single Shot MultiBox Detector 目标检测(一)

    作者的思路就是Faster R-CNN+YOLO,利用YOLO的思路和Faster R-CNN的anchor box的思想. . 0 导读 (本节来源于BOT大赛嘉宾问答环节 ) SSD 这里的设计就 ...

  3. 目标检测 SSD: Single Shot MultiBox Detector - SSD在MMDetection中的实现

    目标检测 SSD: Single Shot MultiBox Detector - SSD在MMDetection中的实现 flyfish 目标检测 SSD: Single Shot MultiBox ...

  4. 目标检测--SSD: Single Shot MultiBox Detector

    SSD: Single Shot MultiBox Detector ECCV2016 https://github.com/weiliu89/caffe/tree/ssd 针对目标检测问题,本文取消 ...

  5. 目标检测方法简介:RPN(Region Proposal Network) and SSD(Single Shot MultiBox Detector)

    原文引用:http://lufo.me/2016/10/detection/ 最近几年深度学习在计算机视觉领域取得了巨大的成功,而在目标检测这一计算机视觉的经典问题上直到去年(2015)才有了完全使用 ...

  6. 目标检测 - 基于 SSD: Single Shot MultiBox Detector 的人体上下半身检测

    基于 SSD 的人体上下半身检测 这里主要是通过将训练数据转换成 Pascal VOC 数据集格式来实现 SSD 检测人体上下半身. 由于没有对人体上下半身进行标注的数据集, 这里利用 MPII Hu ...

  7. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)

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

  8. ssd网络结构_封藏的SSD(Single Shot MultiBox Detector)笔记

    关注oldpan博客,侃侃而谈人工智能深度酝酿优质原创文! 阅读本文需要xx分钟 ? 前言 本文用于记录学习SSD目标检测的过程,并且总结一些精华知识点. 为什么要学习SSD,是因为SSD和YOLO一 ...

  9. 深度学习之 SSD(Single Shot MultiBox Detector)

    目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型: (1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(R ...

最新文章

  1. Linux之切换目录命令
  2. kafka系列三、Kafka三款监控工具比较
  3. Android 事件与事件监听器
  4. LeetCode题组:第1162题-地图分析
  5. java使用stream将List转为Map
  6. 【机器学习】干货!机器学习中 5 种必知必会的回归算法!
  7. java 绑定微信号开发_Java开发中的常见危险信号
  8. 训练日志 2019.2.10
  9. C++——构造高度平衡的BST,并按层序输出
  10. python 学习笔记(6)-转载
  11. php word 数学公式,如何在word中输入复杂的数学公式? 详细始末
  12. python可以做exe文件吗_手动制作python的exe可执行程序
  13. 华为eNSP Windows10安装教程及错误讲解
  14. 【golang】golang获取客户端ip
  15. 9点EXCEL计算公式
  16. 用大于一素数的最小素数替换4*4矩阵中的素数
  17. java中怎么审阅图片_java – Crucible REST API:无法添加审阅者
  18. Apache安全配置
  19. redis恢复阿里云rdb文件
  20. 超级计算机 任务提交,超算任务提交系统slurm用法

热门文章

  1. 2022-2028年中国基因工程药物产业市场研究及前瞻分析报告
  2. 如何判断飞机的年限_技术流带你鉴定前风挡玻璃更换,不再使用日期判断!
  3. Linux shell 学习笔记(3)— shell 父子关系及内建命令
  4. 【牛腩新闻发布系统】开始后端02
  5. github下载源码也用命令进行安装包的联系
  6. OneFlow 概念清单
  7. 跟踪自主车辆软件平台
  8. 2021年大数据Spark(十二):Spark Core的RDD详解
  9. Linux虚拟机和Window本地共享文件夹用于PHP项目调试
  10. python 2x list 里面的中文打印效果为unicode 编码 的处理方法