目标检测概述-下篇之SSD

SSD( Single Shot MultiBox Detector)

SSD 论文地址:https://arxiv.org/abs/1512.02325
SSD 论文中使用 VGG16 提取特征图。再使用 Conv4_3 层检测对象,是经典的ones stage网络。网络结构:

请添加图片描述

算法步骤

  • 输入一幅图片,让图片经过卷积神经网络(CNN)提取特征,并生成 feature map
  • 抽取其中六层的feature map,(多尺度),然后再 feature map 的每个点上生成 default box
  • 将生成的所有 default box 都集合起来,全部丢到 NMS(极大值抑制)中,输出筛选后的 default box,并输出

SSD结合了YOLO中的回归思想和Faster-RCNN中的Anchor机制(论文中称为Defalut Box),使用全图各个位置的多尺度区域进行回归,既保持了YOLO速度快的特性,也保证了窗口预测的跟Faster-RCNN一样比较精准,SSD的核心是在不同尺度的特征特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移,SSD核心设计主要有下面三点:

一、多尺度

SSD算法中使用到了conv4_3,c,conv8_2,conv7_2,conv8_2,conv9_2,conv10_2,conv11_2这些大小不同的feature maps,其目的是为了能够准确的检测到不同尺度的物体,因为在低层的feature map,感受野比较小,高层的感受野比较大,在不同的feature map进行卷积,可以达到多尺度的目的。
请添加图片描述
在较大尺度的特征图(a)上匹配较小的目标,在较深层的特征图(b)上匹配较大的目标,
在这里插入图片描述

二、用卷积层代替全连接层进行预测

SSD 不使用全连接层。 它使用小型卷积滤波器计算位置和类别分数。 提取特征图后,SSD 对每个单元应用 3×3 卷积滤波器进行预测。 (这些滤波器计算结果就像常规的 CNN 过滤器一样。)每个滤波器输出 25 个通道:每个类的 21 个分数加上一个边界框。

三、设置先验框

default boxes(Prior Box)类似于RPN当中的滑动窗口生成的候选框,SSD中也是对特征图中的每一个像素生成若干个框。

nameOut_sizeprior_box_nameTotal_num
conv4_338x3845776
conv5_219x1962166
conv7_210x106600
conv9_25x56150
conv10_23x3436
conv11_21x144
8732

先验框相当于faster rcnn里的anchors,预设一些box,网络根据box,通过分类和回归给出被检测到物体的类别和位置。每个window都会被分类,并回归到一个更准的位置和尺寸上。
论文中对conv4_3,conv10_2,conv11用4个default boxes,其他三个设置6个default boxes。对于default boxes的数量(prior_box_name)以及尺寸设置计算根据下表:
在插入图片描述
图片来源:SSD算法理论

训练与预测

输入->输出->结果与ground truth标记样本回归损失计算->反向传播, 更新权值
先将prior box与ground truth box做匹配进行标记正负样本,每次并不训练8732张计算好的default boxes, 先进行置信度筛选,并且训练指定的正样本和负样本, 如下规则:
正样本:
匹配与GT(标记值-ground truth)最大IOU的 default box 为正样本,对于任一ground truth IOU 大于0.5也设为正样本。
请添加图片描述
图片截取原论文

负样本:
对于confidence loss 越大,导致损失越大,选择排在前面的值为负样本,在训练时, default boxes按照正负样本控制positive:negative=1:3

损失计算
L ( x , c , l , g ) = 1 N ( L c o n f ( x , c ) + α L l o c ( x , l , g ) L(x, c, l, g)=\frac{1}{N}\left(L_{c o n f}(x, c)+\alpha L_{l o c}(x, l, g)\right. L(x,c,l,g)=N1(Lconf(x,c)+αLloc(x,l,g)

L conf  ( x , c ) = − ∑ i ∈ P o s N x i j p log ⁡ ( c ^ i p ) − ∑ i ∈ N e g log ⁡ ( c ^ i 0 )  where  c ^ i p = exp ⁡ ( c i p ) ∑ p exp ⁡ ( c i p ) L_{\text {conf }}(x, c)=-\sum_{i \in P o s}^{N} x_{i j}^{p} \log \left(\hat{c}_{i}^{p}\right)-\sum_{i \in N e g} \log \left(\hat{c}_{i}^{0}\right) \quad \text { where } \quad \hat{c}_{i}^{p}=\frac{\exp \left(c_{i}^{p}\right)}{\sum_{p} \exp \left(c_{i}^{p}\right)} Lconf (x,c)=iPosNxijplog(c^ip)iNeglog(c^i0) where c^ip=pexp(cip)exp(cip)

  • N是match到GT(Ground Truth)的prior box数量
  • c ^ i p \hat{c}_{i}^{p} c^ip 为预测的第 i i i 个 default box对应GT box的类别概率 P \mathrm{P} P
  • x i j p = { 0 , 1 } x_{i j}^{p}=\{0,1\} xijp={0,1} 为第 i i i 个default box匹配到的第 j \mathrm{j} j 个 GT box(类别是 P \mathrm{P} P )

参考文献:
SSD: Single Shot MultiBox Detector
SSD object detection: Single Shot MultiBox Detector for real-time processing
目标检测|SSD原理与实现
深度学习 – SSD 算法流程详解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值