前段时间一直在看ssd,但是总是不太明白,今天突然明白了,就记录下自己的理解

先看下ssd的网络结构如下:

由于不想画这个结构,就盗了别人的图,非常感谢此作者。

SSD采用VGG16作为基础模型,然后在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测。可以明显看到SSD利用了多尺度的特征图做检测。模型的输入图片大小是300x300(还可以是512x512,其与前者网络结构没有差别,只是最后新增一个卷积层)。

采用VGG16做基础模型,首先VGG16是在ILSVRC CLS-LOC数据集预训练。然后借鉴了DeepLab-LargeFOV,分别将VGG16的全连接层fc6和fc7转换成3x3卷积层conv6和1x1卷积层conv7,同时将池化层pool5由原来的stride=2的2x2变成stride=1的3x3,为了配合这种变化,采用了一种Atrous Algorithm,其实就是conv6采用扩展卷积或带孔卷积(Dilation Conv),其在不增加参数与模型复杂度的条件下指数级扩大卷积的视野,其使用扩张率(dilation rate)参数,来表示扩张的大小,如下图所示,(a)是普通的3x3卷积,其视野就是3x3,(b)是扩张率为2,此时视野变成7x7,(c)扩张率为4时,视野扩大为15x15,但是视野的特征更稀疏了。Conv6采用3x3大小但dilation rate=6的扩张卷积

然后移除dropout层和fc8层,并新增一系列卷积层,在检测数据集上做finetuing。

其中VGG16中的Conv43层将作为用于检测的第一个特征图。conv43层特征图大小是38x38,但是该层比较靠前,其norm较大,所以在后面增加了一个L2 Normalization,以保证和后面的检测层差异不是很大,这个和Batch Normalization层不太一样,其仅仅是对每个像素点在channle维度做归一化,而Batch Normalization层是在[batch_size, width, height]三个维度上做归一化。归一化后一般设置一个可训练的放缩变量gamma。

anchor的设置

我觉得anchor的设置是一个难点,之前一直在这不是太明白,下面我就详细记录下。

SSD会为不同size的feature map设置不同大小和数目的anchor。在SSD300中,共有6个feature map,每层对应的anchor数分别为4, 6, 6,6, 4, 4。先验框的设置,包括尺度(或者说大小)和长宽比两个方面。对于先验框的尺度,其遵守一个线性递增规则:随着特征图大小降低,先验框尺度线性增加:

其中m指的特征图的个数,但却是5,因为第一层(Conv43层)是单独设置的, 表示先验框大小相对于图片的比例,而 和 表示比例的最小值与最大值。paper里面取0.2和0.9。对于第一个特征图,其先验框的尺度比例一般设置为 /2 = 0.1,那么尺度为300x0.1 = 30。每层的feature map都有两个参数min_size和max_size,分别代表该层上anchor的最小scale和最大scale,注意这里的scale是先验框的实际尺度,不再是比例。第k层的min_size为

,第k层的maxsize为 。还有一点需要注意,就是公式中的 计算的值向下取值,即0.17。这样可以得到每个特征图上的anchor的min_size为30,60,111,162,213,264。对于长宽比,一般选取
{1,2,3,
},对于特定的长宽比,按如下公式计算先验框的宽度和高度(这里的
也是指的的先验框的实际尺度,不再是比例)

默认情况下,每个特征图会有一个

=1且尺度为
的先验框,除此之外,还会设置一个尺度为
=
=1的先验框,这样每个特征图都设置了两个长宽比为1但大小不同的正方形先验框。注意最后一个特征图需要参考一个虚拟
=300x105/100 = 315来计算
。每个点长方形的anchor的个数,由每层anchor的数目决定。每个特征图一共有
个先验框
,但是在实现时,Conv4_3,Conv10_2和Conv11_2层仅使用4个先验框,它们不使用长宽比为
的先验框每个单元的先验框的中心点分布在各个单元的中心,即
,其中
为特征图的大小。计算好anchor的位置之后,我们还需要判断anchor是否超出图片的边缘,对于超出图片边缘的anchor,我们需要进行clip,如下图所示:

目前先记录到这里

参考链接:

小小将:目标检测|SSD原理与实现​zhuanlan.zhihu.com

Jacqueline:【目标检测】SSD​zhuanlan.zhihu.com

ssd网络结构_SSD的理解相关推荐

  1. ssd网络结构_SSD论文与代码详解

    1.前言 目标检测领域,从FasterRCNN的实战,Anchor,从loss到全局解析到YOLO V1,YOLO V2,YOLO V3的网络讲解,YOLO V3的anchor和loss都已经讲完了. ...

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

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

  3. RCNN、FastRCNN、FasterRCNN、YOLO、SSD网络结构通俗解读(一)

    写在前面 计算机视觉共有三大核心任务,图像分类.目标检测和图像分割.今天我们来讲下目标检测领域所用基本框架. 目标检测领域算法目前可分为两部分. 两步走(two-stage)算法:先产生候选区域然后再 ...

  4. SSD算法priorbox的理解

    之前看了很多SSD的博客,关于prior box的地方大部分都是照着论文翻译了一下,但是实际的代码中并不是完全按照论文的,特此记录一下自己的理解. SSD的大致流程: 输入一幅图片(300x300), ...

  5. 计算机视觉新手如何轻松地理解SSD算法?

    CV_01 SSD算法的简单理解(入门级别) 一. 写这篇博文的初衷 其实在很多论坛也好,贴吧也罢已经有了很多关于SSD算法的剖析与理解,但大部分都比较学术和深奥,博主在初学的时候也是遇到了不少难以理 ...

  6. 目标检测 | 清晰易懂的SSD算法原理综述

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 SSD(Single Shot Detection)是一个流行且强 ...

  7. 【学习干货】目标检测算法之SSD

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 前言 目标检测近年来已经取得了很重要 ...

  8. 目标检测|SSD原理与实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉联盟 前言 目标检测近年来已经取得了很重要的进 ...

  9. 带你深入AI(4)- 目标检测领域:R-CNN,faster R-CNN,yolo,SSD, yoloV2

    带你深入AI(4)- 目标检测领域:R-CNN,faster R-CNN,yolo,SSD, yoloV2 2018年04月15日 11:09:29 阅读数:103 1 引言 深度学习目前已经应用到了 ...

  10. 目标检测算法——SSD详解

    目录 一. 背景(基本介绍) 二. 网络结构 三. 具体过程 1. default box 匹配 2. 损失函数 3. 数据增广 4. Atrous Algothrim 5.  NMS(非极大值抑制) ...

最新文章

  1. ThinkPHP 数据库表结构处理类(简单实用)
  2. mysql sum 为 0 的解决方法
  3. python xpath语法-Python Xpath语法
  4. Fragment 的生命周期
  5. 四柱加强版汉诺塔HanoiTower----是甜蜜还是烦恼
  6. lua如何判断是否支持cookie_我们应该如何判断机油是否变质?
  7. CentOS6.7上使用FPM打包制作自己的rpm包
  8. 中科大计算机专业少实习_为什么很少有计算机科学专业的人?
  9. 用python numpy实现幻方
  10. 服务器内存条故障显示器,客户的电脑原故障是不开机,现在又变成蓝屏:变着法加钱就搞鬼...
  11. wps 项目进度_wps excle做甘特图|如何利用excel自动生成施工进度计划横道图
  12. Renesas:RH850的FDL库的移植与使用
  13. 关于能力模型的思考总结
  14. c语言实现 三角函数,小型嵌入式系统的三角函数C实现
  15. 布局中颜色搭配怎么看最舒服之白色的最佳10种颜色搭配
  16. 在Centos7中安装英伟达显卡驱动
  17. 台风怎么看内存颗粒_《CY》又一4000+的颗粒,三星新版D-DIE颗粒超频测试
  18. Java中不同时区时间的转换
  19. Proximal和ADMM
  20. java导出excel文件(标题为中文乱码)

热门文章

  1. ASIO Link Pro 声卡跳线(搭配福克斯特solo声卡)
  2. kali初学——nmap扫描
  3. 5G Wifi频段及信道介绍
  4. 模糊聚类 matlab 代码,模糊聚类+Matlab代码
  5. 解决Python包下载慢/超时的方法
  6. 喝酒必备神器微信小程序源码下载免服务器和域名带流量主收益
  7. oppo手机解锁_OPPO手机忘记解锁密码怎么办 解锁手机密码
  8. 前端技术-HTML5与CSS
  9. Java主流开发框架
  10. 利用Bitvise等软件通过SSH登录linux系统的心得