目标检测:SSD Single Shot MultiBox Detector

内容来源于:
https://blog.csdn.net/cdknight_happy/article/details/91994312
https://blog.csdn.net/xiaohu2022/article/details/79833786
https://blog.csdn.net/thisiszdy/article/details/89576389
包括整理!
论文:https://arxiv.org/abs/1512.02325
代码:https//github.com/weiliu89/caffe/tree/ssd

SSD: Single Shot MultiBox Detector

摘要

我们提出了一种使用单个深度神经网络进行图像中目标检测的方法。我们的方法名为SSD,将边界框的输出空间离散化为一组默认框,在每个特征图位置上获得了多种宽高比、尺度的检测框。在预测时,网络为每个默认框中的每个对象类别的存在可能性进行评分,并对检测框进行调整以更好地匹配目标形状。另外,网络使用不同分辨率的多个特征图的预测组合在一起以检测多种尺寸的目标。SSD相对于需要对象提议的方法而言更加简单,因为它完全消除了提议生成和后续像素或特征重采样阶段,并将所有计算封装在单个网络中。这使得SSD易于训练并且可以直接集成到需要检测组件的系统中。在PASCAL VOC,COCO和ILSVRC数据集上的实验结果证实,SSD与使用额外对象提议步骤的方法相比具有竞争力,并且速度更快,同时为训练和推理提供了统一的框架。对于300×300的输入图像,SSD在VOC2007测试集中获得74.3%mAP,在Nvidia Titan X上为59 FPS,对于512×512的输入,SSD达到76.9%mAP,优于同类最先进的Faster R-CNN模型。与其他单阶段检测方法相比,即使输入图像尺寸较小,SSD也具有更高的精度。

1 引言

目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型:(1)two-stage方法,如R-CNN系列算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高,缺点是速度慢;(2)one-stage方法,如Yolo系列和SSD,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快,但是均匀的密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡(参见Focal Loss),导致模型准确度稍低。不同算法的性能如图1所示,可以看到两类方法在准确度和速度上的差异。
在这里插入图片描述
图1 不同检测算法的性能对比

本文讲解的是SSD算法,其英文全名是Single Shot MultiBox Detector,Single shot指明了SSD算法属于one-stage方法,MultiBox指明了SSD是多框预测,其效果与Faster R-CNN一样准确,速度却快。

图2给出了不同算法的基本框架图,对于Faster R-CNN,其先通过CNN得到候选框,然后再进行分类与回归,而Yolo与SSD可以一步到位完成检测。

SSD相比于Yolo的改变:SSD采用CNN来直接进行检测,而不是像Yolo那样在全连接层之后做检测;SSD提取了不同尺度的特征图来做检测,大尺度特征图(较靠前的特征图)可以用来检测小物体,而小尺度特征图(较靠后的特征图)用来检测大物体;SSD采用了不同尺度和长宽比的先验框(Prior boxes, Default boxes,在Faster R-CNN中叫做锚,Anchors)。Yolo算法缺点是难以检测小目标,而且定位不准,但是这几点重要改进使得SSD在一定程度上克服这些缺点。
在这里插入图片描述
图2 不同算法的基本框架图

2 SSD

2.1 设计理念

SSD设计理念总结为以下三点:

(1)采用多尺度特征图用于检测

多尺度采用大小不同的特征图,CNN网络一般前面的特征图比较大,后面会逐渐采用stride=2的卷积或者pool来降低特征图大小。这样做的好处是比较大的特征图来用来检测相对较小的目标,而小的特征图负责检测大目标,如图3所示,8x8的特征图可以划分更多的单元,但是其每个单元的先验框尺度比较小。
在这里插入图片描述
图3 不同尺度的特征图

(2)采用卷积进行检测

SSD直接采用卷积对不同的特征图来进行提取检测结果。对于形状为m×n×p的特征图,只需要采用3×3×p这样比较小的卷积核得到检测值。

(3)设置先验框

SSD借鉴了Faster R-CNN中anchor的理念,每个单元设置尺度或者长宽比不同的先验框,预测的边界框(bounding boxes)是以这些先验框为基准的,在一定程度上减少训练难度。一般情况下,每个单元会设置多个先验框,其尺度和长宽比存在差异,如图4所示,可以看到每个单元使用了4个不同的先验框,图片中猫和狗分别采用最适合它们形状的先验框来进行训练。
在这里插入图片描述
图4 SSD的先验框

SSD的特征图将输入图像分成m*n个小格,每个小格有k个先验框,每个先验框预测c个类别的置信度和4个坐标修正值 ( c x , c y , w , h ) (cx,cy,w,h) (cx,cy,w,h)(跟RCNN一样),每个特征图有 m n k ( c + 4 ) mnk(c+4) mnk(c+4)个预测值。

2.2 网络结构

在这里插入图片描述
图5 SSD网络结构

(1)修改VGG基础网络

*SSD采用VGG16作为基础模型,VGG16是在ILSVRC CLS-LOC数据集预训练;
*将VGG16的全连接层fc6和fc7转换成3×3卷积层conv6和1×1卷积层conv7;
*移除dropout层和fc8层,并新增一系列卷积层,在检测数据集上做finetuing;
*池化层pool5由原来的2×2−s2变成3×3−s1;
*采用Atrous算法,在Conv6采用3×3,dilation rate=6的扩展卷积。扩展卷积是在不增加参数与模型复杂度的条件下指数级扩大卷积的视野,使用扩张率参数来表示扩张的大小。如下图6所示,(a)普通的3×3卷积,视野是3×3;(b)扩张率为2,视野是7×7;©扩张率为4,视野是15×15,视野特征更稀疏。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值