SSD系列算法理解

Posted xjlearningai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSD系列算法理解相关的知识,希望对你有一定的参考价值。

SSD(Single Shot MultiBox Detector)系列算法属于one-stage算法;

SSD算法采用直接回归计算出目标类别和位置。处理对象为原始图像经过卷积之后的feature map。

与two-stage算法的区别是,不需要proposal box候选框的提取,即不需要RPN网络。

技术图片

                                                                                      图1 one-stage系列算法框架

 

同时使用多尺度的feature map的预测,即将得到的feature map通过下采样(这里使用pooling来实现下采样),得到不同大小的feature map,每个feature map作为后续层(Prior Box层)的输入。如下图所示:

技术图片

                                                                                  图2 SSD系列网络架构

 

Prior Box Layer(anchor机制):

假设有m*n个cell(原始图像经过卷积之后的feature map上的每个像素---以其映射到原图中的坐标为中心点坐标,选K个box,也就是anchor,一般选取3个尺寸大小和3个比例值,k=9)

如上所述,假设每个feature map有m*n个cell,每个cell产生k个bounding box,每个bounding box预测c个类别score和4个offset,则该网络有(c+4)*k*m*n个输出。

其中,对于38*38的feature map,每个cell产生4个prior box,19*19的feature map,每个cell产生6个prior box……,如下:

一共产生:38*38*4+19*19*6+10*10*6+5*5*6+3*3*4+1*1*4 = 8732个prior box。

每个cell的k个default box,经过与GT(Ground truth)做IOU,当IOU大于正样本阈值时作为正样本,如果IOU小于负样本阈值将其作为负样本,其余中间的prior box将其忽略掉。

训练时需要确保prior box的分类准确,且尽可能回归到GT Box。

注意点:

难例挖掘

正负样本比为1:3

 

损失函数如下:

技术图片

 

 

SSD算法对小目标不够鲁棒性,主要是因为浅层feature map的表征能力不强。------>DSSD网络

DSSD网络:

1、改变了主干网络:ResNet

2、使用了反卷积网络结构

 

以上是关于SSD系列算法理解的主要内容,如果未能解决你的问题,请参考以下文章

目标检测算法-YOLO算法纵向对比理解

深入理解遗传算法系列文章

《深入理解Java虚拟机系列二》--- 垃圾回收算法(通俗易懂)

TensorFlow2深度学习实战:SSD目标检测算法源码解析

TensorFlow2深度学习实战:SSD目标检测算法源码解析

看图轻松理解数据结构与算法系列(二叉搜索树)