ssd网络结构_SSD的理解
前段时间一直在看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为
默认情况下,每个特征图会有一个
目前先记录到这里
参考链接:
小小将:目标检测|SSD原理与实现zhuanlan.zhihu.com
Jacqueline:【目标检测】SSDzhuanlan.zhihu.com
ssd网络结构_SSD的理解相关推荐
- ssd网络结构_SSD论文与代码详解
1.前言 目标检测领域,从FasterRCNN的实战,Anchor,从loss到全局解析到YOLO V1,YOLO V2,YOLO V3的网络讲解,YOLO V3的anchor和loss都已经讲完了. ...
- ssd网络结构_封藏的SSD(Single Shot MultiBox Detector)笔记
关注oldpan博客,侃侃而谈人工智能深度酝酿优质原创文! 阅读本文需要xx分钟 ? 前言 本文用于记录学习SSD目标检测的过程,并且总结一些精华知识点. 为什么要学习SSD,是因为SSD和YOLO一 ...
- RCNN、FastRCNN、FasterRCNN、YOLO、SSD网络结构通俗解读(一)
写在前面 计算机视觉共有三大核心任务,图像分类.目标检测和图像分割.今天我们来讲下目标检测领域所用基本框架. 目标检测领域算法目前可分为两部分. 两步走(two-stage)算法:先产生候选区域然后再 ...
- SSD算法priorbox的理解
之前看了很多SSD的博客,关于prior box的地方大部分都是照着论文翻译了一下,但是实际的代码中并不是完全按照论文的,特此记录一下自己的理解. SSD的大致流程: 输入一幅图片(300x300), ...
- 计算机视觉新手如何轻松地理解SSD算法?
CV_01 SSD算法的简单理解(入门级别) 一. 写这篇博文的初衷 其实在很多论坛也好,贴吧也罢已经有了很多关于SSD算法的剖析与理解,但大部分都比较学术和深奥,博主在初学的时候也是遇到了不少难以理 ...
- 目标检测 | 清晰易懂的SSD算法原理综述
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 SSD(Single Shot Detection)是一个流行且强 ...
- 【学习干货】目标检测算法之SSD
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 前言 目标检测近年来已经取得了很重要 ...
- 目标检测|SSD原理与实现
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉联盟 前言 目标检测近年来已经取得了很重要的进 ...
- 带你深入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 引言 深度学习目前已经应用到了 ...
- 目标检测算法——SSD详解
目录 一. 背景(基本介绍) 二. 网络结构 三. 具体过程 1. default box 匹配 2. 损失函数 3. 数据增广 4. Atrous Algothrim 5. NMS(非极大值抑制) ...
最新文章
- ThinkPHP 数据库表结构处理类(简单实用)
- mysql sum 为 0 的解决方法
- python xpath语法-Python Xpath语法
- Fragment 的生命周期
- 四柱加强版汉诺塔HanoiTower----是甜蜜还是烦恼
- lua如何判断是否支持cookie_我们应该如何判断机油是否变质?
- CentOS6.7上使用FPM打包制作自己的rpm包
- 中科大计算机专业少实习_为什么很少有计算机科学专业的人?
- 用python numpy实现幻方
- 服务器内存条故障显示器,客户的电脑原故障是不开机,现在又变成蓝屏:变着法加钱就搞鬼...
- wps 项目进度_wps excle做甘特图|如何利用excel自动生成施工进度计划横道图
- Renesas:RH850的FDL库的移植与使用
- 关于能力模型的思考总结
- c语言实现 三角函数,小型嵌入式系统的三角函数C实现
- 布局中颜色搭配怎么看最舒服之白色的最佳10种颜色搭配
- 在Centos7中安装英伟达显卡驱动
- 台风怎么看内存颗粒_《CY》又一4000+的颗粒,三星新版D-DIE颗粒超频测试
- Java中不同时区时间的转换
- Proximal和ADMM
- java导出excel文件(标题为中文乱码)