SSD同样是经典论文,后续很多论文以此为基础,所以搞懂流程比较重要,中间如果 有写的不对、有问题或者有看不懂的地方,还望指正。如果有了新的理解,我会持续更新。

作为经典论文,SSD算法也同样产生了很多后续工作比如 DSSD、RefineDet等等,而且由于有速度优势,工程中使用SSD和YOLO的可能性会更大。

一、网络结构:

上图是SSD和YOLO的网络结构,通过对比可以发现,SSD的优点就是它生成的 default box 是多尺度的,这是因为SSD生成default box 的 feature map 不仅仅是CNN输出的最后一层,还有利用比较浅层的feature map 生成的default box。所以SSD对于小目标的检测一定会优于YOLO v1(小目标经过高层卷积后特征几乎都消失了)。同时,又因为SSD生成的多尺度default box一定有更高概率找到更加贴近于 Ground Truth 的候选框,所以模型的稳定性是肯定比YOLO强的(YOLO的bounding box很少,只有98个,如果距离GT比较远,那么修正 bounding box 的线性回归就不成立,训练时模型可能会跑飞)。但是SSD的候选框数量是三种经典网络中最多的,有8732个,所以训练时应该会比较慢。

二、算法流程:

首先来看一下SSD的基本步骤(比YOLO稍微复杂点,但是也很直接了):

  • 输入一幅图片,让图片经过卷积神经网络(CNN)提取特征,并生成 feature map
  • 抽取其中六层的feature map,然后再 feature map 的每个点上生成 default box(各层的个数不同,但每个点都有)
  • 将生成的所有 default box 都集合起来,全部丢到 NMS(极大值抑制)中,输出筛选后的 default box,并输出

三、算法细节:

3.1 default box怎么生成的:

这是原文中的图,图(b)和 图(c)中的虚线框就是生成的 default box,总共的怎么算呢? 38x38x4、19x19x6、10x10x6、5x5x6、3x3x4、1x1x4,也就是 5773、2166、600、150、36、4,加起来一共有 8732 个box,然后我们将这些box送入NMS模块中,获得最终的检测结果。

3.2 default 的生成规则:

由于不同层的 feature map 对应到原图上的感受野不同,所以在不同层山生成的default box其实大小是不一样的(比例一样)。

生成 default box 时,在 feature map 上每个点上生成一系列同心的Defalut box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置)使用m(这里m = 6,因为就选了6层)个不同大小的feature map 来做预测,最底层的 feature map 的 scale 值为 Smin=0.2,最高层的为Smax=0.9,其他层通过下面的公式计算得到:

使用不同的ratio值,[1, 2, 3, 1/2, 1/3],通过下面的公式计算 default box 的宽度w和高度h

而对于ratio=1的情况,指定的scale如下所示,即总共有 6 中不同的 default box。

default box 的中心点坐标为:   , fk时第k层的feature map 的大小。

3.3 Loss 函数:

后续的很多目标检测论文都是用这样的损失函数,SSD算法的损失函数分为两部分:计算相应的default box与目标类别的confidence loss以及相应的位置回归。

其中 N 是match到Ground Truth的default box数量;而alpha参数用于调整confidence loss和location loss之间的比例,默认alpha=1。

3.3.1 位置回归则是采用 Smooth L1 loss,目标函数为:

3.3.2 confidence loss是典型的softmax loss:

下图非常好的解释了SSD的Loss函数是怎么来的(用下别人的图,有时间自己画一个,方便理解):

3.4 训练样本比例:

文中提到,由于有8000多个default box 那么matching之后会有大量的负样本,为了数据集更加干净,正负样本比例取到 1:3。

以上

参考:https://www.cnblogs.com/MY0213/p/9858383.html

https://blog.csdn.net/wfei101/article/details/78176322

https://blog.csdn.net/jy001227801/article/details/80388192

深度学习 -- SSD 算法流程详解相关推荐

  1. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

  2. 深度学习经典算法 | 遗传算法详解

    遗传算法生物学基础 在一定的时间内,有一群兔子,其中一些比另外一些兔子跑得快,而且更聪明,这些兔子被狐狸吃掉的可能性比较小,因此它们中的多数就存活下来并繁殖更多的兔子.当然,一些跑得慢而愚蠢的兔子也会 ...

  3. 推荐系统整体架构及算法流程详解

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 知识图谱在美团推荐场景中的应用实践 搜索场景下的智能实体推荐 机器学习在B站推荐系统中的应用实践 小红书推荐系统 ...

  4. 推荐系统架构与算法流程详解

    你知道的越多,不知道的就越多,业余的像一棵小草! 成功路上并不拥挤,因为坚持的人不多. 编辑:业余草 zhuanlan.zhihu.com/p/259985388 推荐:https://www.xtt ...

  5. 深度学习网络模型——Vision Transformer详解 VIT详解

    深度学习网络模型--Vision Transformer详解 VIT详解 通用深度学习网络效果改进调参训练公司自己的数据集,训练步骤记录: 代码实现version-Transformer网络各个流程, ...

  6. 深度学习网络模型——RepVGG网络详解、RepVGG网络训练花分类数据集整体项目实现

    深度学习网络模型--RepVGG网络详解.RepVGG网络训练花分类数据集整体项目实现 0 前言 1 RepVGG Block详解 2 结构重参数化 2.1 融合Conv2d和BN 2.2 Conv2 ...

  7. 独家总结| 基于深度学习的目标检测详解

    欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯                                                基于深度学习的目标检测 基于深度学习的目 ...

  8. 【深度学习】一文详解RNN及股票预测实战(Python)!

    循环神经网络(RNN)是基于序列数据(如语言.语音.时间序列)的递归性质而设计的,是一种反馈类型的神经网络,其结构包含环和自重复,因此被称为"循环".它专门用于处理序列数据,如逐字 ...

  9. 【深度学习】Batch Normalization详解

    Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一.背景意义 ...

最新文章

  1. paip.odbc DSN的存储与读取
  2. 我们常常意识不到问题的存在,直到有人解决了这些问题
  3. java中class_Java中Class对象详解
  4. python flask 学习与实战
  5. python win10 桌面_Python3如何实现Win10桌面自动切换
  6. C#算法设计排序篇之10-桶排序(附带动画演示程序)
  7. SpringMVC学习指南-前言
  8. 基于RV1126平台imx291分析 --- imx291注册
  9. 【SVP补帧】【教程】尽量不改变电脑设置的压制方案
  10. 第22篇 项目进度管理__计划评审技术__重点内容
  11. 微信公众号开发2自动回复
  12. (附源码)app学科竞赛活动报名系统 毕业设计 012239
  13. 【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD登录并获取AccessToken -- cca.acquireTokenByCode(tokenRequest)
  14. 福利:阿里云免费试用劵
  15. 关于win7阉割版pycharm pyttsx3库无法使用解决方法
  16. 基于Linux+ARM的远程视频监控--硬件篇
  17. 手表运动状态识别(静止/走路/跑步)_数据样例
  18. 使用table2excel做excel表格下载
  19. java获取session失效时间_Java设置session超时(失效)的时间
  20. Windows操作系统Jenkins下载安装及配置

热门文章

  1. linux 对称加密命令,linux安全和加密篇(三)—openssl工具和CA证书
  2. 5G NR 基本概念
  3. 发现网站被劫持该怎么办?网站域名劫持如何有效预防
  4. [noip2016]天天爱跑步
  5. 好心情精神心理科医生:如何与青春期的孩子沟通?
  6. jsonp无X-Requested-With 及其深扒
  7. 【分治】剑指 Offer 33. 二叉搜索树的后序遍历序列
  8. 安徽大学计算机学院张兴义教授,CCF YOCSEF合肥与CCF合肥分部联合成功举办 “2018CCF合肥为新研究生导航”活动...
  9. 毕业设计:新闻大数据搜索系统 (完整代码运行)
  10. 管理者的人品的重要性