计算机视觉新手如何轻松地理解SSD算法?

本文以简单易懂的方式介绍了SSD(Single Shot MultiBox Detector)算法,这是一种用于目标检测的一阶段方法,强调了其速度优势。文章详细讲解了一阶段与二阶段目标检测的区别,以及边界框的概念。通过网络架构解析,阐述了SSD如何在VGG16基础上添加额外卷积层进行特征提取,并利用先验框进行物体检测。最后,概述了非极大抑制在处理重叠框中的作用,帮助读者理解SSD的工作流程。
摘要由CSDN通过智能技术生成

CV_01 SSD算法的简单理解(入门级别)

一. 写这篇博文的初衷

其实在很多论坛也好,贴吧也罢已经有了很多关于SSD算法的剖析与理解,但大部分都比较学术和深奥,博主在初学的时候也是遇到了不少难以理解的问题,在反复地学习之后,有了一些比较浅显的理解与感悟,因此在这里与大家分享一下,当然不免会出现比较低级的错误,如果有错误的地方还请读者大大们踊跃地提出来,我们一起进步。

二. 什么叫SSD?

SSD算法,其英文全名是Single Shot MultiBox Detector,翻译成中文就是:“单激发多框探测器”,Single shot就指明了SSD算法属于one-stage方法,MultiBox指明了SSD是由多个bounding box来完成预测的。那么问题来了什么叫one-stage,什么又叫做bounding box呢?

1. one-stage VS two-stage
简单地来说,计算机在做目标检测的时候,通常需要做两件事,第一件事是【目标在哪(定位)】,第二件事是【目标是啥(分类)】。因此人们就根据这两件事,把目标检测分为了两大类,一类叫做two-stage,另一类就叫做one-stage。对于two-stage来说,它会先生成一些候选区域,这些区域有可能会包含一个待检测目标(定位),紧接着再采取一些后续操作来区分每个候选区域里具体包含了哪些目标(分类)。对于one-stage来说,它则是通过一次网络就同时得到了被检测物体的位置信息和分类信息。因此可以看出来:two-stage的精确度更高,而one-stage的速度更快

2. bounding box
bounding box翻译成中文来说就是“边界框”,从字面上不难理解,它是用来区分框内物体与框外背景的一个工具。也就是说当一张图片中出现了bounding box的时候,其实就明确地告诉了你图片中所存在的被检测物体的位置,有了这个“边界框”之后,就可以针对边界框内被检测物体的特征来完成对它的分类操作。

三. SSD算法的网络架构及实现流程

by demo
大家对这张图肯定不陌生(我把小汽车换成了小猫咪)。

  1. 在特征提取环节我加入三个不同颜色的框框把SSD目标检测网络切分成了三个部分。第一个部分(黄色)做的事情就是为了防止图像失真从而将待传入网络的图片进行 300x300x3 的resize处理。第二个部分(蓝色)就是SSD网络对VGG16深度卷积神经网络的“调用”,也就是先让传入网络中的图像先过一遍VGG16深度卷积神经网络提取出一大堆特征。第三个部分(红色)就是SSD算法新颖的地方,就是它在VGG16的基础上又新增了四个卷积层,从而进行了更多次的特征提取,来获得更多数量的特征层。在每一个特征层的上边都有一组 “数字x数字x数字” 的标注,对于这个标注的理解其实可以简单地把它想做把图像分割成了多少个网格,比如 38x38x512 就可以理解为将一张图片分割成了 38x38 个小网格并进行了512次的特征提取。
  2. 在获取完这些特征层并对图像添加了网格之后,就需要来添加先验框了!这里以SSD作者的解释为例(如下图):可见右边这两个feature map中的虚线部分,就是我们提前根据每个网格的中心而添加的先验框(def box)。这也就是我们为什么要在特征提取环节要对图像绘制网格的原因了。
    by demo
    对应SSD网络架构图中标识,可以看出来我们一共添加了:38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732个先验框。也就得到了类似于以下的结果。
    by demo
  3. 在获得了这么多的先验框(def box)之后,分别判断这8732个先验框中有没有我们需要的物体,如果有的话就把它标记出来,当然在利用这些先验框所得到的框中肯定会有一些比如发生了与被检测物体重合的情况,之后就需要我们对这些框的得分和重合情况进行判断,利用非极大抑制的方法找到我们需要的框并且标记出它所属于的种类,这样就算完成了SSD检测算法的检测过程了。

四. 博文推荐

由于博主这篇博文是为了让新手更加轻松地去理解SSD算法,实际上SSD算法的巧妙之处并不止这些,如果您想要进一步深入地去了解SSD算法,请移步以下大佬的博文。

  1. 目标检测算法——SSD详解
  2. 目标检测SSD算法(新手入门)
  3. 睿智的目标检测23——Pytorch搭建SSD目标检测平台
  4. SSD算法详解

如有问题,敬请指正。欢迎转载,但请注明出处。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值