SSD详解

论文地址:Single Shot MultiBox Detector
github :代码

SSD300 网络结构:
在这里插入图片描述

目标检测两大类:
two-stage: 产生稀疏的候选框,然后对候选框进行分类和回归。优点在于精准,但是速度欠缺。

one-stage:均匀在图片不同位置上进行密集抽样,抽样可以采用不同的尺度和宽高,然后提取特征进行分类和回归。优点是速度快,但是均匀密集采样的缺点是训练难,主要是因为正负样本分布不均衡(使用FocalLoss)。

多尺度 + 先验框(anchor)预测

在这里插入图片描述
MultiBox预测,提取不同尺度的特征图,大尺度的特征图(浅层特征)检测小物体,小尺度的特征图(深层特征)检测大物体
在这里插入图片描述
不同尺度上先验框的分布是不一样的。如上图,大尺度的先验框负责预测小物体(猫),而小尺度的先验框负责预测大物体(狗)。

相对于yolo,SSD对每一个先验框输出一套独立的检测值。对于一个bounding box 输出两个部分:

1 、类别预测:c+1 个类别的置信度,多了一个背景类。第一置信度指是否含有目标或者说是背景的概率。当第一个置信度值最高时,表示是背景,表示bbox 并不包含目标。

2、bbox 回归:类似faster rcnn,

预测值:gA​=(dx​,dy​,dw​,dh​)

预测编码:
dx​=(xc​−axc​)/aw
dy​=(yc​−ayc​)/ah
dw​=log(w/aw)
dh​=log(h/ah)

希望网络学习到的参数能让预测值尽可能符合预测编码的过程,这样通过预测后解码得到预测值。那么就要在网络学习的过程中让预测编码尽可能接近真值编码

先验框生成规则

1、以feature map上每个点的中点为中心,生成一些列同心的prior box
2、正方形prior box最小边长为和最大边长为:
min_size, sqrt(min_size * max_size)
3、设置 aspect ratio, 生成2个 anchor, 长宽为:
sqrt(aspect_ratio) * min_size
1/sqrt(aspect_ratio) * min_size

在这里插入图片描述
min_size 和 max_size 选取:
每个feature map对应prior box的min_size和max_size由以下公式决定:
在这里插入图片描述

m 为 feature map 的个数。如原文为 6 。s_min , s_max 为超参数。原文设定 s_min = 0.2, s_max = 0.9。例如 k = 2 时:
在这里插入图片描述
这个公式给出了每一层的预测的s_k。同时确保了下一层的min_size等于上一层的max_size
在这里插入图片描述

SSD 缺点:

虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题
在这里插入图片描述

SSD训练过程

1、loss

在这里插入图片描述
N 是匹配到GT的prior box 数量。SSD 中 confidence loss 是典型的softmax loss。

在这里插入图片描述在这里插入图片描述
代表第i个prior box匹配到了第j个class为p类别的GT box;而location loss是典型的smooth L1 。

在这里插入图片描述

2、负责预测匹配策略:

groundtruth boxes 与 prior boxes 按照如下方式进行配对:

1、找到每一个gt box 有最大IOU的prior box。保证每一个gt box 与唯一一个prior box 对应。一定要有prior box 负责预测gt box,不能落下
2、对于与任意一个gt box IOU都不是最大的prior box, 通过阈值决定是否匹配。对于IOU > 0.5 认为是positive,小于 0.5 的为negtive,这里没有ignore类。

3、Hard negative mining

一般情况下negative default boxes数量>>positive default boxes数量,直接训练会导致网络过于重视负样本,从而loss不稳定。所以需要采取

所以SSD在训练时会依据confidience score排序default box,挑选其中confidence高的box进行训练,使得:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值