SSD - Single Shot MultiBox Detector 论文解读

title: Single Shot MultiBox Detector
paper link: https://arxiv.org/pdf/1512.02325.pdf
github: https://github.com/balancap/SSD-Tensorflow

文章基本思路:

SSD的基本思路是将目标检测的Bbox的输出空间离散化为多个不同尺度的feature map上每个位置上的一系列不同宽高比的anchor box(SSD文章中称为default box)。首先设定一些anchor box,这些box有不同的宽高比,用网络来预测anchor box 相对于GT box 的坐标偏移,以及每个box对应的物体类别。并且借鉴了FCN中使用不同尺寸(不同层)的feature map的信息提高分割的准确性的思路,在不同尺度的feature map上进行检测,以达到检测不同尺寸的物体的目的。

关于模型:

SSD模型以一个基本网络作为基础,如VGG,将基本网络后面的分类层去掉,添加了几个辅助层来产生检测结果,最后经过NMS得到最终的检测结果。添加的辅助网络有以下几个特点:
在这里插入图片描述
在基础网络的截断之后,添加了多个尺寸逐渐减小的卷积层,目的是使目标检测可以在多个不同的尺度上进行。(YOLO是在单一的尺度上进行检测) 对于增加的每一个用于预测的辅助卷积层(不一定是新增的,也可以是基础网络中的一层),通过一次卷积操作(图中的extra feature layers)产生不同尺度的特征图上的检测结果。例如对于10×10×512这个feature map,使用3x3×512的卷积核与其进行卷积,卷积核的数目为anchor_box_num×(4+class_num),得到卷积的结果的每一个位置上就是对应的预测的anchor box 的坐标和对应的目标类别的分数。(YOLO中使用的是全连接来计算得到Bbox相关的预测结果)不同于YOLO中在每个格子上的预测虽然有两个box坐标和分数,但是只预测一个物体的类别的分数的做法,这里是为每一个box都预测了一个物体类别的分数。

关于模型训练:

关于模型训练中的几个主要问题如下:
(1)box匹配策略
SSD模型预测的是anchor box相对于GT box 的偏移,所以在训练的过程中,需要将GT box与对应的anchor box进行匹配,这样才可以计算损失并进行训练。具体的匹配策略为:对于每一个anchor box,将其匹配到任意的与其IoU大于某一个阈值(0.5)GT box上,这样可以简化学习,网络可以对有较大重合的box预测较高的分数,而不是从从多有重合的box当中选择最大的那一个(例如将GT box匹配到与其IoU最大的那个anchor box)。匹配完成后所有这些匹配上的anchor box作为正样本,其余的没有匹配上的作为负样本。

(2)损失函数
SSD的损失函数分为两部分:localization loss 和confidence loss。loc loss计算正样本的smooth L1损失,包括Bbox 中心和宽高的损失;conf loss包括正负样本的softmax损失。
loc loss:
在这里插入图片描述

上面的坐标损失中在计算Bbox中心坐标的损失的时候,使用的是归一化的偏移量: g j c x − d i c x g_j^{cx} - d_i^{cx} gjcxd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值