学习笔记九——SSD

SSD是一种高效的物体检测方法,融合了YOLO和Faster R-CNN的优点。它采用特征金字塔网络,不同层级的特征图用于检测不同大小的目标,避免了提案生成和像素采样阶段,提高了速度。默认边界框(default boxes)类似Faster R-CNN的anchor,用于预测目标位置。损失函数结合定位和置信度损失,训练时采用hard negative mining策略平衡样本。
摘要由CSDN通过智能技术生成

The Single Shot Detector——SSD现有主流检测器之一,比Faster-RCNN更快,比YOLO有更高的mAP。

该SSD检测方法借鉴以下思想:(1)YOLO中将检测转换成回归问题的思路。(2)基于anchor(Faster-RCNN)提出default boxes。(3)特征金字塔实现多尺度特征映射。

改进之处:与faster rcnn不同,SSD没有生成 proposal以及随后的像素或特征重采样阶段,这就极大提高了检测速度。

SSD方法基于前馈卷积网络,该网络产生固定大小的边界框default boxes集合,并对这些边界框中存在的目标类别实例进行评分,然后进行非极大值抑制步骤来产生最终的检测结果。

1、网络结构:

YOLO在卷积层后直接接全连接层。

而SSD根据特征金字塔结构,即利用大小不同的feature maps,在多个特征图上同时进行softmax分类和位置回归。主网络结构是VGG16,将最后两个全连接层改成卷积层,并随后增加了4个卷积层来构造网络结构。对其中5种不同的卷积层的输出分别用两个不同的 3×3 的卷积核进行卷积,一个输出分类用的confidence,每个default box 生成21个类别confidence;一个输出回归用的 localization,每个 default box 生成4个坐标值(x, y, w, h)。以及这5个feature map还生成 prior box(生成的是坐标)。上述5个feature map中每一层的default box的数量是给定的(8732个)。最后将前面三个计算结果分别合并然后传给loss层。

这样做的目的是为了使用低级的特征图检测小目标,高层检测大目标。

2、default boxes:

SSD使用默认边界框,即相似于Faster RCNN中的anchor,作为目标的预选框,再通过softmax分类和bounding box regression获得真实目标的位置。

原理:对于特征图的每个单元格假设有k个default box,每个default box都需要预测c个类别分数和4个offset(坐标),那么如果一个feature map的大小是m×n(即有m*n个单元格),那么这个特征图就一共有(c+4)*k * m*n 个输出,即对应卷积过滤器的个数。

在代码实现中是使用不同数量的3*3卷积核对该层特征图进行卷积:(1)c*k*m*n是类别输出,表示每个default box的置信度,即类别的概率;(2)4*k*m*n是定位输出,表示每个default box回归后的坐标。

但在实际中不是所有的default box都会选择,最终实际选择的default box即为prior box。

默认边界框的计算:以特征图单元格的中心(offset=0.5),获得同心的Defalut box,一共使用m个不同大小的特征图来做预测,最底层的特征图的 scale 值为 Smin=0.2,最高层的为Smax=0.95,其他层通过公式得到。

比例大小为[1, 2, 3, 1/2, 1/3],则宽w和高h计算公式为:

不足:边框是默认的,需要人工进行设置。

3、损失函数:是最经典的,总体目标损失函数是定位损失(loc)和置信度损失(conf)的加权和。其中N是匹配到Ground Truth的默认边界框的数量。α用于调整confidence loss和location loss之间的比重问题。

定位损失是预测框(l)与真实框(g)参数之间的Smooth L1损失:

置信度损失是在多类别置信度(c)上的softmax损失:

 

4、Hard negative mining:

正例与负例:将prior box 和 grount truth box 按照IOU进行匹配(将默认边界框匹配到IOU重叠高于阈值0.5的任何实际边界框),匹配成功则这个prior box就是positive example,如果匹配不上,就是negative example

由于负例默认边界框数量远多于正例默认边界框,这会在正的训练实例和负的训练实例之间引入显著的不平衡,会导致网络过于重视负样本,从而loss不稳定。所以SSD在训练时会依据confidience score排序默认边界框,挑选其中置信度高的box进行训练,控制负例和正例之间的比例至多为3:1。

并使用了数据增强提高SSD的精度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值