您现在的位置是:首页 > 编程 > 

MMDetection学习系列(2)——SSD深度探索与实战指南

2025-07-27 18:32:01
MMDetection学习系列(2)——SSD深度探索与实战指南 目标检测是计算机视觉领域的一个重要任务,它旨在从图像中识别出感兴趣的目标,并确定它们的位置和大小。在众多目标检测算法中,SSD(Single Shot MultiBox Detector)以其高效和精确的性能,受到了广泛关注。本文将带你走进SSD目标检测算法,一起探索它的工作原理和实践应用。论文信息:SSD: Single Shot

MMDetection学习系列(2)——SSD深度探索与实战指南

目标检测是计算机视觉领域的一个重要任务,它旨在从图像中识别出感兴趣的目标,并确定它们的位置和大小。在众多目标检测算法中,SSD(Single Shot MultiBox Detector)以其高效和精确的性能,受到了广泛关注。本文将带你走进SSD目标检测算法,一起探索它的工作原理和实践应用。

  • 论文信息:SSD: Single Shot MultiBox Detector
  • 论文链接:.0225

摘要

论文中提出了一种使用单一深度神经网络检测图像中物体的方法。我们的方法被命名为SSD,它将边界框的输出空间离散化为一组默认框,每个特征图位置的长宽比和比例各不相同。在预测时,该网络会对每个默认框中存在的每个物体类别进行评分,并对框进行调整,以更好地匹配物体形状。此外,该网络还结合了来自不同分辨率的多个特征图的预测结果,从而自然地处理各种尺寸的物体。相对于需要物体提案的方法,SSD非常简单,因为它完全省去了提案生成和后续的像素或特征重采样阶段,并将所有计算封装在一个网络中。这使得SSD易于训练,并可直接集成到需要检测组件的系统中。在PASCAL VOC、COCO和ILSVRC数据集上的实验结果证实,SSD的精确度与使用额外对象建议步骤的方法相比具有竞争力,而且速度更快,同时还为训练和推理提供了统一的框架。对于00×00的输入,SSD在vidia TitanX上以59 FPS的速度进行的VOC2007测试中实现了74.%的mAP1;对于 512×512的输入,SSD实现了76.9%的mAP,超过了同类最先进的Faster R-C模型。与其他单级方法相比,即使输入图像尺寸较小,SSD的准确率也要高得多。


SSD介绍

当前最先进的对象检测系统主要基于以下流程:首先假设(或生成)一系列边界框(bounding boxes),然后对每个框重新采样像素或特征,并应用高质量的分类器。

这种方法自选择性搜索(Selective Search)工作以来,在对象检测基准测试中一直占据主导地位。最新的成果,如基于Faster R-C的PASCAL VOC、COCO和ILSVRC检测,都采用了这种方法,但使用了更深层次的特征。尽管这些方法在准确性方面表现出,但它们对计算资源的需求很高,对于嵌入式系统来说过于复杂,甚至在高端硬件上也难以实现实时应用。

与需要生成对象提议的方法相比,SSD方法简单得多。它完全消除了提议生成和后续的像素或特征重采样阶段,将所有计算封装在单个网络中。这使得SSD易于训练,并且可以直接集成到需要对象检测组件的系统中。

实验结果表明,SSD在PASCAL VOC、COCO和ILSVRC数据集上与使用额外对象提议步骤的方法在准确性上具有竞争力,同时速度更快。对于00×00的输入,SSD在VOC2007测试集上达到了74.%的平均精度(mAP),在vidia Titan X上的速度为每秒59帧;对于512×512的输入,SSD的mAP达到了76.9%,超过了类似的最先进的Faster R-C模型。

与其他单阶段方法相比,即使在较小的输入图像尺寸下,SSD也展现出更好的准确性。


网络结构

可以分为两个主要部分:基础网络和附加网络。

基础网络

基础网络主要用于提取图像的多尺度特征,通常采用预训练的分类网络,如VGG16或Reset。以下是基础网络的一般结构:

VGG16网络结构(以VGG16为例):

输入图像经过一系列卷积层(Conv1-Conv5)和最大池化层(Pooling),逐渐提取图像的深层特征。

Conv1-Conv5包含多个卷积层,每个卷积层后面通常跟着一个ReLU激活函数和一个最大池化层。

在SSD中,通常会对VGG16进行一些修改,例如将全连接层(fc6和fc7)转换为卷积层(conv6和conv7),以适应目标检测任务。

附加网络

附加网络是SSD的核心部分,它负责生成一系列默认框(Default Boxes),并对这些框进行分类和回归。附加网络的结构如下:

多尺度特征图

基础网络的基础上,附加网络通过一系列卷积层(如Conv6-Conv7)生成不同尺度的特征图。这些特征图具有不同的分辨率,可以捕捉到不同大小的目标。

默认框(Default Boxes)

对于每个特征图位置,SSD会生成一系列具有不同宽高比和尺度的默认框。这些默认框会在后续的检测过程中用于预测目标的类别和位置。

分类和回归

对于每个默认框,网络会输出两个部分:一个是分类得分(表示该框内包含各个类别的概率),另一个是位置偏移量(用于调整默认框的位置,使其更准确地匹配目标)。

结构细节

SSD网络的具体结构通常包括以下卷积层:Conv6、Conv7、Conv8_1、Conv8_2、Conv9_1、Conv9_2、Conv10_1、Conv10_2、Conv11_1和Conv11_2。

每个卷积层后面通常会跟着一个ReLU激活函数,除了最后一层卷积层外。图中的架构为VGG16作为baseet的SSD模型结构。

相比于YOLOV1,其差别如下:

主要差别在于 (1)多尺度预测; (2)引入了anchor;() 全卷积形式,接下来按照目标检测通用算法流程思路来讲解。ssd也是包括backbone、head、正负样本选取、bbox编解码和损失函数5个部分。

backbone

SSD的骨架是VGG16,其是当前主流的分类网络,其主要特点是全部采用x的卷积核,然后通过多个卷积层和最大池化层堆叠而成,是典型的直筒结构。VGG16是在ILSVRC CLS-LOC数据集上预训练过,为了更加适合目标检测,作者进行了适当扩展:

(1) 借鉴DeepLab-LargeFOV思想,将VGG16的全连接层fc6和fc7转换成x卷积层conv6和1x1的conv7,同时将池化层pool5由原来的stride=2的2x2变成stride=1的x,为了配合这种变化,对conv6(x卷积且空洞率为6)采用了空洞卷积,其在不增加参数与模型复杂度的条件下指数级扩大卷积的视野,其使用扩张率(dilation rate)参数来表示扩张的大小。

(2) 然后移除原始vgg的dropout层和fc8层,并新增一系列卷积层,在检测数据集上做微调。SSD算法包括两个模型分别是SSD00和SSD512,后面数字表示输入图片size,这两个模型都是新增一系列卷积层,但是SSD512模型新增的卷积会多一些,其余都是完全相同。

head

backbone模块会输出n个不同尺度的特征图,head模块对每个特征图进行处理,输出两条分支:分类和回归分支。假设某一层的anchor个数是m,那么其分类分支输出shape=(b,(num_cls+1)×m,h',w'),回归分支输出shape=(b,4*m,h',w')。

正负样本选取

1)正样本选取

为每个标注框匹配正样本的步骤有两个:

为每个标注框匹配一个iou最大的预设框作为正样本;

每个预测框与每个标注框计算iou,大于阈值(0.5)则认为是正样本;如此操作简化学习成本,允许网络预测出多个交叠的高分bbox。

2)负样本选取

在选取过正样本后,剩下的未匹配预设框均为负样本,其数量远远大于正样本,对此,SSD将所有的负样本预设框按照loss的置信度降序排序,选取其top *正样本数量的预设框作为负样本。

bbox编解码

对于任何一个正样本anchor位置,其gt bbox编码方式采用的依然是Faster rcnn里面的变换规则DeltaXYWHBBoxCoder即

g表示gt bbox,d表示anchor,可以看出中心点xy预测是gt bbox中心点减掉anchor中心点,然后利用anchor的wh进行归一化,而wh预测是基于gt bbox的wh除以anchor的wh,最后利用log来压缩大小gt bbox范围差异。

损失函数

总体损失:总体的损失函数是有位置损失和置信度损失的加权和,如公式(1)所示。

位置损失:用Smooth L1损失来表示,位置计算时,使用预设框d距离中心(cx, cy)的相对距离(相对预设框的宽w高h),其中l表示标注框,g表示预设框,d^w、d^h表示预设框的宽和高。

置信度损失:使用多类softmax损失,如公式()所示。


模型训练

在SSD中提出应该采用大量有效的数据增强来提升目标检测性能。在SSD中其提出了:

  • 使用原始图片输入;
  • 采样部分,使得采样的部分与目标的最小交叠比为0.1,0.,0.5,0.7或0.9;
  • 随机采样图中的一部分。

采样的尺寸是原始图片尺寸的[0.1, 1],放缩比介于0.5-1之间,若标注的box的中心在采样部分,则保留其交叠部分。采样过后,每个采样被resize到固定大小,并以0.5的概率水平翻转。


实验结果

基础网络

实验全部基于在 ILSVRC CLS-LOC 数据集上预先训练过的VGG16;与DeepLab-LargeFOV 算法类似,我们将fc6和fc7转换为卷积层,对fc6和fc7的参数进行子采样,将pool5从2×2-s2改为×-s1,并使用三角算法来填补 “漏洞”;删除了所有滤波层和fc8层。使SGD对生成的模型进行微调,初始学习率为10-,动量为0.9,权重衰减为0.0005,批量大小为2。

PASCAL VOC2007

在VOC2007测试集(4952张图片)上,与Fast R-C和Faster R-C进行比较;SSD00模型使用conv4_、conv7 (fc7)、conv8_2、conv9_2、conv10_2和conv11_2进行位置和置信度预测;SSD00在VOC2007 trainval上的表现已经超过Fast R-C,SSD512在更大的输入图像尺寸下表现更好,超过Faster R-C。

PASCAL VOC2012

使用与VOC2007相同的设置,但在更大的数据集上进行训练和测试。SSD00和SSD512在VOC2012测试集上的表现与VOC2007测试集上观察到的性能趋势一致。

COCO

在COCO数据集上训练SSD00和SSD512架构。由于COCO中的对象倾向于更小,因此使用更小的默认框。SSD00在COCO test-dev2015上的表现优于Fast R-C,SSD512在更大的图像尺寸下表现更好。

ILSVRC结果

将相同的网络架构应用于ILSVRC DET数据集。SSD00在ILSVRC2014 DET train和val1上的训练结果达到了4.4 mAP。


总结

SSD是一种适用于多个类别的快速单次物体检测器。模型的一个主要特点是使用多尺度卷积边界框输出,并将其连接到网络顶部的多个特征图上。通过这种表示方法,我们可以对可能的框形状空间进行有效建模。我们通过实验验证,在适当的训练策略下,精心选择更多的默认边界框可以提高性能。与现有方法相比,我们建立的SSD模型对方框位置、比例和长宽比的预测采样至少多了一个数量级。我们证明,在相同的VGG-16基本架构下,SSD在准确性和速度方面都优于最先进的物体检测器。在PASCAL VOC和COCO上,我们的SSD512模型在准确性方面明显优于最先进的Faster R-C,同时速度快倍。我们的实时SSD00模型以59 FPS的速度运行,比目前的实时YOLO更快,同时检测准确率也明显更高。

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1177132.html

相关标签:无
上传时间: 2025-07-21 19:15:44
留言与评论(共有 14 条评论)
本站网友 湿疹是什么
17分钟前 发表
此外
本站网友 发烧物理降温方法
19分钟前 发表
逐渐提取图像的深层特征
本站网友 呼和浩特二手房出售
21分钟前 发表
Conv10_1
本站网友 马苋菜
4分钟前 发表
Conv9_1
本站网友 蜀国烤鱼
7分钟前 发表
d表示anchor
本站网友 海花岛宣传片
13分钟前 发表
在检测数据集上做微调
本站网友 仙林国际花园
23分钟前 发表
同时还为训练和推理提供了统一的框架
本站网友 扬天m4680n
5分钟前 发表
剩下的未匹配预设框均为负样本
本站网友 红枣菊花枸杞茶
28分钟前 发表
与其他单阶段方法相比
本站网友 深圳白癜风专科医院
28分钟前 发表
这使得SSD易于训练
本站网友 高升桥
26分钟前 发表
PASCAL VOC2007在VOC2007测试集(4952张图片)上
本站网友 庄园酒店
2分钟前 发表
与其他单阶段方法相比
本站网友 海尔张瑞敏
20分钟前 发表
SSD的准确率也要高得多