目标检测入门系列手册六:SSD训练教程

简介: 目标检测入门系列手册六:SSD训练教程

>>戳此处立即下载电子书<<,学习全套目标检测算法&模型

image.png

SSD

SSD[4] 同时借鉴了YOLO 网格的思想和Faster R-CNN 的anchor 机制,使得SSD 可以快速进行预测的同时又可以相对准确地获取目标的位置。

图2-15 中的(b)和(c)分别代表不同的特征层,(c)相对(b)离最终预测结果较近,因此跨越同样像素个数能检测的目标就越大。按照图2-15 所示,在特征层(b)的每个点上都将产生4 个不同大小的anchor(1:1 两个,1:2 两个),在特征层(c)上也是如此。因此,根据真实目标矩形框与每个anchor 的IOU 大小计算可知,(b)中有2 个anchor 为正样本,(c)中1 个anchor 为正样本。

image.png

图2-15 SSD 特征层与anchor 示意图[4]

对比之前学过的Faster R-CNN,接下来我们介绍SSD 的一些特点:

使用多尺度特征层进行检测。
在 Faster Rcnn 的 RPN 中,anchor 是在主干网络的最后一个特征层上生成的,而在SSD 中,anchor 不仅仅在最后一个特征层上产生,在几个高层特征层处同时也在产生anchor。如图2-16 所示,SSD 在VGG16 的conv6 开始,在conv7、conv8、conv9、conv10 都产生anchor。这些特征层大小依次递减,使得SSD 可以检测不同尺度的目标。这里简单解释下,比如同样一个3×3 的anchor,它在conv6 看到的目标(感受野)就要远小于conv10 看到的目标,可以理解为靠前的特征层用于检测小目标,而靠后的特征层用来检测大目标。与RPN 网络(2.2.3 中介绍)产生anchor 的方法类似,SSD 也是在特征层的每个点上产生多个比例、多个尺度的n 个anchor。如图2-15(b)是一个8×8 的特征层,每个小方格子是一个特征点,每个特征点上可以产生宽高比为1:1,1:2,1:3,大小多个尺度的anchor。

image.png

图2-16 SSD 结构图[4]

SSD 中所有特征层产生的 anchor 都将经过正负样本的筛选(在 2.2.3 介绍过如何使用IOU 进行anchor 的筛选)后直接进行分类分数以及bbox 位置的学习。
也就是说,特征层上生成的正负样本直接进行最终的分类(ClassNum 个类别)以及bbox 的学习,不像Faster R-CNN 那样先在第一步学是否有物体(只有0/1 两个类别)和bbox 位置,然后在第二步学最终的分类(ClassNum个类别)以及对bbox 位置的微调。

实际应用时我们往往不仅关注精度,很多情况下也要考虑速度,比如对视频内容进行实时地检测,这时候我们就希望有方法可以很好的做速度和精度的平衡。YOLO是第一个提出来效果很好的1-stage 检测方法,SSD 借鉴了它的一些思想并在其基础上做了改进,做到了比较好的平衡。

image.png

目录
相关文章
|
Web App开发 监控 测试技术
|
C# Windows BI
|
分布式数据库 数据库 Hbase
双研究员带你了解数据库技术现状,及阿里云为什么要推出HBase
纵观整个排行榜,RDBMS牢牢占据了前3席,各个数据库的热度亦一览无余。然而,在这背后,大数据时代下,数据库技术究竟发生了什么样的变化和发展?2月21日,阿里巴巴中间件技术部负责人蒋江伟与阿里巴巴 ApsaraDB 负责人余锋将为你揭开!
9466 123
|
缓存 Linux 调度
24小时学通Linux内核之电源开和关时都发生了什么
  说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自己制定的任务,不过总有几个读者给自己鼓励,很欣慰的事情,不多感慨了,加紧时间多多去探索吧,今天要去描述的是电源开和关时都发生了什么,一起去看看吧~~   bootloader引导装入程序将内核映像加载到内存并处理控制权传送到内核后在内核引导时每个子系统都必须要初始化,我们根据实际执行的线性顺序跟踪内核的初始化过程,下图说明了从系统加电到断电这一过程中所有事情发生的顺序,这个图不多加解释了,看图就知道其线性执行顺序,中间过程也是很简单的步骤啦。
|
JavaScript
Lazy Load Plugin for jQuery延迟加载测试成功
一直需要的功能,网页图片太多时对于降低网络流量超有用。 最新的V1.9.3版本其实已不用修改就可以起作用了。 不用网上说的要自己修改代码。
1144 123
|
Scala
Scala入门到精通——第三节 Array、List
本节主要内容 数组操作实战 列表List操作实战 数组操作实战 1 定长数组 //定义一个长度为10的数值数组 scala&gt; val numberArray=new Array[Int](10) numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) //定义一个长度为10的String类
6408 119
|
关系型数据库 测试技术 Oracle
【整理】小布老师 LoadRunner系列培训视频
本文内容来自:http://www.boobooke.com [V] 小布老师LR系列培训视频 - LoadRunner安装http://www.boobooke.com/v/bbk1061 [V] 小布老师LR系列培训视频 - LoadRunner概述(上下)http://www.
1140 123