计算机视觉-SSD(Single Shot MultiBox Detector)

 

首先我们来看看Faster RCNN存在的问题:
image

  • 对小目标检测效果比较差:
    个人感觉是因为它对整个的图像进行feature map,我们是对他卷积后的图像进行处理的,这样这个图像抽象的层次比较高,小的物体的特征很容易丢失。
  • 模型大,检测速度较慢

简介

SSD算法源于2016年发表的算法论文,论文网址:https://arxiv.org/abs/1512.02325

SSD的特点在于:

  • SSD结合了YOLO中的回归思想和Faster-RCNN中的Anchor机制,使用全图各个位置的多尺度区域进行回归,既保持了YOLO速度快的特性,也保证了窗口预测的跟Faster-RCNN一样比较精准。

  • SSD的核心是在不同尺度的特征特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移。

结构

以VGG-16为基础,使用VGG的前五个卷积,后面增加从CONV6开始的5个卷积结构,输入图片要求300×300
image
越往前的feature map层(越大的feature map)我们让他检测越小的物体,越靠后的层(越小的feature map)特征提取的比较很,然后检测比较大的物体。
image
比如说这个较小的猫,就适合在比较大的8×8feature map层进行检测,然后这个狗比较大,所以它就适合在比较小的4×4层进行检测。

流程

image
SSD中引入了Defalut Box,实际上与Faster R-CNN的anchor box机制类似,就是预设一些目标预选框,不同的是在不同尺度feature map所有特征点上使用PriorBox层

Detector & classifier

image
这里每个位置生成4个boxes。
Detector & classifier的三个部分:

  1. PriorBox层:生成default boxes,默认候选框

  2. Conv3 x 3:生成localization, 4个位置偏移

  3. Conv3 x 3:confidence,21个类别置信度(要区分出背景,也就是20个分类+1个背景)
    image

PriorBox层-default boxes

default box类似于RPN当中的滑动窗口生成的候选框,SSD中也是对特征图中的每一个像素生成若干个框。
image
image

  • 特点分析:
    • priorbox:相当于faster rcnn里的anchors,预设一些box,网络根据box,通过分类和回归给出被检测到物体的类别和位置。每个window都会被分类,并回归到一个更准的位置和尺寸上
    • 各个feature map层经过priorBox层生成prior box

image

根据输入的不同aspect ratio 和 scale 以及 num_prior来返回特定的default box,

  • default box 的数目是feature map的height x width x num_prior。
    image

localization与confidence

这两者的意义如下,主要作用用来过滤,训练

image
问题:SSD中的多个Detector & classifier有什么作用?
SSD的核心是在不同尺度的特征图上来进行Detector & classifier 容易使得SSD观察到更小的物体

训练与测试流程

image

  • 目标类别分数预测
    对于每一个default box都会预测c个回归参数
  • 边界框回归参数
    对于每一个default box预测4个边界

train流程

  • 输入->输出->结果与ground truth标记样本回归损失计算->反向传播, 更新权值
  1. 样本标记:
    先将prior box与ground truth box做匹配进行标记正负样本,每次并不训练8732张计算好的default boxes, 先进行置信度筛选,并且训练指定的正样本和负样本, 如下规则
  • 正样本
    • 1.与GT重合最高的boxes, 其输出对应label设为对应物体.
    • 2.物体GT与anchor iou满足大于0.5
  • 负样本:其它的样本标记为负样本

在训练时, default boxes按照正负样本控制positive:negative=1:3

  1. 损失
    网络输出预测的predict box与ground truth回归变换之间的损失计算, 置信度是采用 Softmax Loss(Faster R-CNN是log loss),位置回归则是采用 Smooth L1 loss (与Faster R-CNN一样)
    image

test流程

输入->输出->nms->输出

posted @   lipu123  阅读(135)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-10-11 问题 C: Unique Values(队列+子序列)
2020-10-11 High Load Database(二分+前缀和)
2020-10-11 Managing Difficulties(mp的变形+三元组)
2020-10-11 Sum of a Function(区间筛)
点击右上角即可分享
微信分享提示