SSD算法简单解析

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

前言

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

算法初识

1》算法能干什么?
答:可以检测图片中的目标,并且画框并予以分类,21类(其实是20类,为什么后面会说)。

2》算法有什么优点?
答:SSD是one—stage算法,比Faster RCNN比YOLO准确。但是缺点也很明显,首先很多参数需要手工设置,调试需要依赖经验,其次对小目标不敏感,特征提取不充分导致精度下降。

算法框架

在这里插入图片描述
下面我么说一下SSD的基本结构和特点吧,首先SSD仍然用VGG16提取特征,其次SSD采用金字塔结构,即利用了conv4-3/conv-7/conv6-2/conv7-2/conv8_2/conv9_2这些大小不同的feature maps,在多个feature maps上同时进行softmax分类和位置回归。SSD还加入了Prior box,这个词大家可能有点陌生但是如果把他放到Faster RCNN中他就叫anchors,所以其实他就是先验框。这里我们先说一下Prior Box吧。
SSD按照如下规则生成prior box:以feature map上每个点的中点为中心,生成一些列同心的prior box,正方形prior box最小边长为和最大边长为:
在这里插入图片描述
prior box形状如下:
在这里插入图片描述
然后我们看一下prior box的预计的输出:
https://pic2.zhimg.com/v2-bef522c2669d850d20ea0cc1d0fb2535_b.jpg
我们可以看出最终的输出有三个:
1)softmax分类目标,目标分类一共21种,其实是20种因为SSD把非目标也当做一种类别。
2)bounding box regression就是回归的目标。
3)variance这相当于对bounding box regression的补充参数,其实就是bounding box regression的权重。
这里大概的结构就差不多了,我们在看一下结构图:
在这里插入图片描述
SSD的网络结构并不复杂,但是有一点需要解决,就是如何把6个尺寸的特征图合并为一个。下面我们以conv4_3和fc7为例分析SSD是如何将不同尺寸的特征图合并的。
在这里插入图片描述
对于conv4_3 feature map,conv4_3_norm_priorbox(priorbox层)设置了每个点共有4个prior box。由于SSD 300共有21个分类,所以conv4_3_norm_mbox_conf的channel值为num_priorbox * num_class = 4 * 21 = 84;而每个prior box都要回归出4个位置变换量,所以conv4_3_norm_mbox_loc的caffe blob channel值为4 * 4 = 16。fc7每个点有6个prior box,其他feature map同理。经过一系列图7展示的caffe blob shape变化后,最后拼接成mbox_conf和mbox_loc。而mbox_conf后接reshape,再进行softmax(为何在softmax前进行reshape,Faster RCNN有提及)。最后这些值输出detection_out_layer,获得检测结果。依照这种法则,我们就可以完成多尺度检测。
最后我们这里有额外两点来说:
1)般情况下negative default boxes数量>>positive default boxes数量,直接训练会导致网络过于重视负样本,从而loss不稳定。所以需要采取:所以SSD在训练时会依据confidience score排序default box,挑选其中confidence高的box进行训练,正负比例1:3。
2)SSD同样会对数据进行处理扩充裁剪方法:旋转、放大、缩小、裁剪。

损失函数

老规矩,由于是简单解析所以我们并不细讲损失函数,略讲:
在这里插入图片描述
我们可以看到损失分为两种:confidence loss和location loss,confidence loss是典型的softmax loss、location loss是典型的smooth L1 loss。而参数N是prior box数量,α是权重。

最后

SSD就简单的说完了,写的不怎麽好,但是本人已经尽力了,只想能帮助一下我这样的小白。在此向各位前辈致以诚挚敬意。


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

相关文章

深度学习算法之-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算法结…

目标检测SSD算法(新手入门)

SSD分析 SSD背景SSD FrameworkCNN-based detectorSSD的backbone&#xff1a;VGG16SSD ModelL2Norm先验框多尺度对SSD的影响定位、分类小结问题 SSD算法是比较经典的目标检测算法&#xff0c;讲解SSD的博客有很多&#xff0c;比如目标检测之SSD就讲的非常好。 本篇博客的不同之…

【Spring框架】全集详解

文章目录 ClassPathXmlApplicationContext工作原理01、IOC:控制反转02、什么是bean03、DI注入以及c、p命名空间p命名空间、c命名空间测试各种类型的注入 04、Autowired&#xff1a;自动装配05、注解&#xff1a;AnnotationComponent注解的作用RepositoryServiceController 06、…

spring 入门详解超

一.什么是spring 1.简介&#xff1a;Spring是一个开源的设计层面框架&#xff0c;解决了类与类之间的彻底解耦&#xff0c;它将面向接口的编程思想贯穿整个系统应用。 2.spring核心&#xff1a; IOC&#xff08;Inverse of Control 控制反转&#xff09;&#xff1a;将bean的…

Spring框架入门详解

Spring 为什么引入Spring框架 为了提高开发效率和实现模块之间的高聚合低耦合&#xff0c;所以引入了Spring框架 高聚合低耦合 高内聚 内聚是指模块内的联系&#xff0c;各个元素之间紧密联系共同完成任务&#xff0c;模块内的联系越紧密越好&#xff0c;这样可以提高他们…

Spring详解(小白教程,大佬勿入,勿喷。)

1.Spring概述 Spring是什么&#xff1f; 在resource目录下创建子包需要用/ 如&#xff1a;com/baidu/userMapper.xml Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架&#xff0c; 以 IoC&#xff08;Inverse Of Control&#xff1a;反转控制&#xff09;和 AOP&…