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、使用了反卷积网络结构

猜你喜欢

转载自www.cnblogs.com/xjlearningAI/p/11379495.html