SSD算法通俗详解

article/2025/9/15 13:22:35

算法简介 算法原理 样本构造 损失函数 使用细节


# ssd算法

##简介

刘伟在2016年提出,发表在ECCV;是一种通过直接回归的方式去获取目标类别和位置的one-stage算法,不需要proposal;作用在卷积网络的输出特征图上进行预测,而且是不同尺度,因此能够保证检测的精度,图像的分辨率也比较低,属于端到端的训练;

input->CNN->Lreg,Lcls

CNN特征->区域分类,位置精修

##算法原理

输入是300x300,通过主干网络VGG-16(也可以是Resnet,MobileNet)得到feature map,然后通过下采样(Pooling层)得到6个不同尺度,38x38,19x19,10x10,5x5,3x3,1x1,将这6个不同尺度的feature map作为检测预测层的输入,最后用nms进行筛选和合并;
每一个feature map层都会进行default boundingbox的提取,针对每一个boundingbox都会有类别分数以及位置的偏移量,这里就有两个问题:

1.如何进行多个尺度的预测?(见下)

2.每个尺度上选择多少个bounding boxes?

答:通过ssd的相应的配置文件来进行配置,其实是通过相应层的name来进行配置,决定有多少个box,以及哪一层作为预测层的输入

###主干网络介绍

将VGG最后两个FC层(FC用来分类,映射每一类的概率)改成卷积层,并增加4个卷积层,增加了多次度预测,从而提升模型预测性能;

###多尺度feature map预测

(类似anchor机制)不同层的feature map(输入到相应的预测层),大小为mxn,以每一个点(cell,找到他在原图中的位置)为center,每个cell生成固定scale和aspect ratio的k个prior box,通过和GT的比较得到prior box的label,再对每一个prior box预测他们的类别score和坐标offset(x,y,w,h),得到维度为(4+C)xkxmxn的输出;

两个超参数:scale和aspect ratio

关于Prior box Layer:

上面说了,类似于anchor机制,shape数量越多,预测效果越好;

针对6种不同尺度的feature map层,提取的prior box的总数量为:38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732个

可以看到,这里每一个feature map cell并不是k个prior box都取,为什么呢,因为实际训练中,并不是每个prior box都去计算loss,那么具体怎么操作的呢?通过什么策略来进行筛选呢?接下来我们来看一下ssd的样本构造策略。

##样本构造
正样本:
从prio box集出发,寻找与GT box满足 IOU 大于0.5的最大prior box放入候选正样本集;
或者,从GT box出发,找到与之最为匹配的prior box放入候选正样本集;
负样本:
IOU小于0.5的作为负样本,而中间那些可以丢掉不考虑;一般正负样本比为1:3;
或者进行难例挖掘
在这里插入图片描述
注意:除了这种寻找正负样本的方法,还可以对正负样本做数据增强;
##损失函数
SSD的损失函数包含了两个部分:分类loss + 回归loss,其中前者一般用Softmax Loss,后者一般用Smooth L1 Loss,然后两者进行加权;在这里插入图片描述
在这里插入图片描述
在训练过程中,我们只需要确保prior box的分类准确,并且让每一个prior box尽可能回归到GT box;

##SSD使用细节

1.注意分类和回归网络的权重分配;

2.注意正负样本之比;

3.难例挖掘默认只去64个最高预测损失来从中寻找负样本;

4.SSD输入尺寸越大,mAP越高,但是会导致检测速度的下降,因此要具体需求进行选择;

5.更多的feature map,更多的default box,都可以使得结果更好;


http://chatgpt.dhexx.cn/article/jIQECXjF.shtml

相关文章

详细解读目标检测经典算法-SSD

学习目标: 知道SSD的多尺度特征图的网络知道SSD中先验框的生成方式知道SSD的损失函数的设计 目标检测算法主要分为两类: Two-stage方法:如R-CNN系列算法,主要思路就是通过Selective Search或者CNN网络产生一系列的稀疏矩阵的候…

SSD目标检测算法——通俗易懂解析

目录 前言SSD网络 前言 前面几篇文章我们讲解了YOLO系类的论文,今天我们来看下SSD算法。对YOLO有兴趣的小伙伴们可以一步到我前面的几篇博文: YOLOv1目标检测算法——通俗易懂的解析YOLOv2目标检测算法——通俗易懂的解析YOLOv3目标检测算法——通俗易懂…

SSD算法理解(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010167269/article/details/52563573 Preface 这是今年 ECCV 2016 的一篇文章,是 UNC Chapel Hill(北卡罗来纳大学教堂山分校) 的 Wei Li…

SSD算法分析

SSD算法分析 1 SSD算法概述2 SSD整体流程3 SSD中的重要概念3.1 多尺度Feature Map检测3.2 Default Box3.2.1 设计思路3.2.2 参数计算 4 SSD网络架构与网络预测4.1 网络架构4.2 网络预测4.3 预测值解码 5 网络训练5.1 Ground Truth编码5.2 匹配策略5.3 损失函数5.3.1 定位损失5.…

SSD算法简单解析

前言 今天学习SSD目标检测算法,SSD,全称Single Shot MultiBox Detector,是2016年提出的算法,今天我们还是老规矩,最简单的做算法解析,力求让像我一样的小白也可以看得懂。 算法初识 1》算法能干什么&…

深度学习算法之-SSD(一)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载需注明出处。 https://blog.csdn.net/qianqing13579/article/details/82106664 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_html…

SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)

SSD系列算法原理介绍 SSD算法介绍&#xff1a; Single Shot MultiBox Detector&#xff08;One-stage方法&#xff09; - Wei Liu在ECCV 2016提出 - 直接回归目标类别和位置 - 不同尺度的特征图上进行检测 - 端到端的训练 - 图像的分辨率比较低&#xff0c;也能保证检测的精度 …

目标检测算法——SSD详解

目录 一、 背景&#xff08;基本介绍&#xff09; 二、 网络结构 三、 具体过程 1. default box 匹配 2. 损失函数 3. 数据增广 4. Atrous Algothrim 5. NMS&#xff08;非极大值抑制&#xff09; 五、 性能评估 优点&#xff1a; 缺点&#xff1a; SSD 算法的改进…

SSD算法原理与代码(三)

说明&#xff1a;这几篇文章是讲解SSD&#xff0c;从算法原理、代码到部署到rk3588芯片上的过程。环境均是TF2.2&#xff0c;具体的安装过程请参考网上其他的文章。 一、SSD简介 SSD算法是一个优秀的one-stage目标检测算法。能够一次就完成目标的检测和分类过程。主要是的思路…

目标检测算法之SSD

码字不易&#xff0c;欢迎给个赞&#xff01; 欢迎交流与转载&#xff0c;文章会同步发布在公众号&#xff1a;机器学习算法全栈工程师(Jeemy110) 目录 目录前言设计理念网络结构训练过程预测过程性能评估TensorFlow上的实现小结参考文献 前言 目标检测近年来已经取得了很重…

深度学习 -- SSD 算法流程详解

SSD同样是经典论文&#xff0c;后续很多论文以此为基础&#xff0c;所以搞懂流程比较重要&#xff0c;中间如果 有写的不对、有问题或者有看不懂的地方&#xff0c;还望指正。如果有了新的理解&#xff0c;我会持续更新。 作为经典论文&#xff0c;SSD算法也同样产生了很多后续…

SSD原理解读-从入门到精通

前言 当初写这篇博客的初衷只是记录自己学习SSD的一些心得体会&#xff0c;纯属学习笔记&#xff0c;后来由于工作上的需要&#xff0c;需要对小伙伴进行目标检测方面的培训&#xff0c;后来就基于这篇博客进行了扩展&#xff0c;逐渐演变成了现在的样子&#xff0c;本文力求从…

SSD算法理论

SSD算法 SSD(Single Shot MultiBox Detector)是one-stage目标检测方法&#xff0c;one-stage算法就是目标检测和分类是同时完成的&#xff0c;其主要思路是利用CNN提取特征后&#xff0c;均匀地在图片的不同位置进行密集抽样&#xff0c;抽样时可以采用不同尺度和长宽比&#…

SSD算法详解

SSD github : https://github.com/weiliu89/caffe/tree/ssd SSD paper : https://arxiv.org/abs/1512.02325 SSD 动态PPT&#xff1a; https://docs.google.com/presentation/d/1rtfeV_VmdGdZD5ObVVpPDPIODSDxKnFSU0bsN_rgZXc/pub?startfalse&loopfalse&delayms3000…

目标检测—SSD系列算法原理介绍

一、SSD系列算法原理介绍 1.1 SSD算法介绍: ➢Single Shot MultiBox Detector (one-stage方法) ●Wei Liu在ECCV 201 6提出 ●直接回归目标类别和位置 ●不同尺度的特征图上进行预测 ●口端到端的训练 …

目标检测->SSD算法

目标检测算法总体分为&#xff1a;基于区域的算法和基于回归的算法 1&#xff09;基于区域的算法&#xff1a; RCNN, Fast RCNN, Faster RCNN, Mask RCNN 等。整个检测过程分为两个阶段。在第一个阶段&#xff0c;检测器需要找到一些假设的区域 (ROI)&#xff1b;在第二个阶段…

SSD算法解析

目标检测算法主要分为两类&#xff1a; Two-stage方法&#xff1a;如R-CNN系列算法&#xff0c;主要思路就是通过Selective Search或者CNN网络产生一系列的稀疏矩阵的候选区域&#xff0c;然后对这些候选区域进行分类和回归&#xff0c;two-stage的方法优势在于准确率度高&…

SSD算法简单介绍

SSD算法 论文连接SSD: Single Shot MultiBox Detector SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是目前主要的检测框架之一&#xff0c;其基于将detection转化为regression的思路&#xff0c;可以一次完成目标定位与分类。该算法基于Faster RCNN中的Anc…

SSD算法

目录 SSD算法SSD网络结构backboneextra部分loc和clsPriorBox层先验框的生成方法loc的预测结果 模型训练正负样本标记损失函数困难样本挖掘 模型预测总结 SSD算法 学习目标 知道SSD的多尺度特征图的网络知道SSD中先验框的生成方式知道SSD的损失函数的设计 目标检测算法主要分…

SSD算法原理介绍,包含算法结构、Loss计算、默认框计算几个方面

一、SSD算法的介绍 1、SSD算法&#xff1a; 是One-stage目标检测算法中的一种&#xff0c;不需要region proposal阶段&#xff0c;可以直接产生物体的类别概率和位置坐标值&#xff0c;经过单次检测即可直接得到最终的检测结果&#xff0c;具有检测速度快的特点。 2、SSD算法结…