热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SSD论文阅读

Singleshot指明了SSD算法属于one-stage方法,MultiBox指明了SSD是多框预测参考图中给出了不同算法的基本框架图,对于Fast

在这里插入图片描述

Single shot指明了SSD算法属于one-stage方法,MultiBox指明了SSD是多框预测

在这里插入图片描述

在这里插入图片描述

参考

图中给出了不同算法的基本框架图,对于Faster R-CNN,其先通过CNN得到候选框,然后再进行分类与回归,而Yolo与SSD可以一步到位完成检测。相比Yolo,SSD采用CNN来直接进行检测,而不是像Yolo那样在全连接层之后做检测。
这(采用卷积直接做检测)只是SSD相比Yolo的其中一个不同点,另外还有两个重要的改变,一是SSD提取了不同尺度的特征图来做检测,大尺度特征图(较靠前的特征图)可以用来检测小物体,
而小尺度特征图(较靠后的特征图)用来检测大物体;二是SSD采用了不同尺度和长宽比的先验框。Yolo算法缺点是难以检测小目标,而且定位不准,但是这几点重要改进使得SSD在一定程度上克服这些缺点。
下面我们详细讲解SDD算法的原理。

在这里插入图片描述

输入一幅图片(300x300),将其输入到预训练好的分类网络中来获得不同大小的特征映射,修改了传统的VGG16网络;将VGG16的FC6和FC7层转化为卷积层,如图1上的Conv6和Conv7;
去掉所有的Dropout层和FC8层;
添加了Atrous算法(hole算法)就是空洞卷积;
【解释:Atrous卷积,就是带洞的卷积,卷积核是稀疏的。】
将Pool5从2x2-S2变换到3x3-S1;
【解释:】抽取Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2层的feature map,然后分别在这些feature map层上面的每一个点构造6个不同尺度大小的bbox,然后分别进行检测和分类,生成多个bbox,如P5中的图所示;将不同feature map获得的bbox结合起来,经过NMS(非极大值抑制)方法来抑制掉一部分重叠或者不正确的bbox,生成最终的bbox集合(即检测结果);算法细节
(1)多尺度特征映射
SSD算法中使用到了conv4_3,conv_7,conv8_2,conv7_2,conv8_2,conv9_2,conv10_2,conv11_2这些大小不同的feature maps,目的是为了能够准确的检测到不同尺度的物体,因为在低层的feature map,感受野比较小,高层的感受野比较大,在不同的feature map进行卷积,可以达到多尺度的目的。(对上面那段话进行解释,先不念)我们将一张图片输入到一个卷积神经网络中,经历了多个卷积层和池化层,我们可以看到在不同的卷积层会输出不同大小的feature map(这是由于pooling层的存在,它会将图片的尺寸变小),而且不同的feature map中含有不同的特征,而不同的特征可能对我们的检测有不同的作用。总的来说,浅层卷积层对边缘更加感兴趣,可以获得一些细节信息,而深层网络对由浅层特征构成的复杂特征更感兴趣,可以获得一些语义信息,对于检测任务而言,一幅图像中的目标有复杂的有简单的,对于简单的patch(补丁)我们利用浅层网络的特征就可以将其检测出来,对于复杂的patch我们利用深层网络的特征就可以将其检测出来,因此,如果我们同时在不同的feature map上面进行目标检测,理论上面应该会获得更好的检测效果。
原文链接:https://blog.csdn.net/thisiszdy/article/details/89576389
(2)Defalut box

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

SSD中的Defalut box是预设一些目标预选框,后续通过softmax分类+bounding box regression获得真实目标的位置。对于不同尺度的feature map 上使用不同的Default boxes。
如图所示,我们选取的feature map包括38x38x512、19x19x1024、10x10x512、5x5x256、3x3x256、1x1x256,Conv4_3之后的feature map默认的box是4个,我们在38x38的这个平面上的每一点上面获得4个box,那么我们总共可以获得38x38x4=5776个;
同理,我们依次将FC7、Conv8_2、Conv9_2、Conv10_2和Conv11_2的box数量设置为66644,那么我们可以获得的box分别为2166600150364,即我们总共可以获得8732个box,然后我们将这些box送入NMS模块中,获得最终的检测结果。

在这里插入图片描述

公式1中的sk表示先验框大小相对于图片的比例
公式2中的ar就是[1, 2, 3, 1/2, 1/3]

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(上表)首先整体看一下SSD在VOC2007,VOC2012及COCO数据集上的性能。相比之下,SSD512的性能会更好一些。加*的表示使用了image expansion data augmentation(通过zoom out来创造小的训练样本)技巧来提升SSD在小目标上的检测效果,所以性能会有所提升。(下表)基本可以看到,SSD与Faster R-CNN有同样的准确度,并且与Yolo具有同样较快地检测速度。

在这里插入图片描述

(上表)作者的验证方法是:逐渐移除1:3,1:2的初始框,观察模型的表现效果。得出结论:
数据扩增技术很重要,对于mAP的提升很大;
使用不同长宽比的先验框可以得到更好的结果;

在这里插入图片描述


推荐阅读
author-avatar
mobiledu2502852497
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有