SSD浅层网络_ssd系列算法总结

目标检测算法“one stage ”算法的一个主要的系列算法SSD是比较有代表性,比较有研究价值,效果相对较好,在SSD算法出现之后,后续又有一系列的算法对SSD针对不同的角度进行改进,不同算法效果均有了很大的改善,了解SSD系列算法的特点,有助于理解目标检测算法的一些基本的思想。

SSD系列算法的主要文章(仅整理自己读过的几篇论文):

SSD:Single Shot MultiBox Detector

DSSD: Deconvolutional Single Shot Detector

FSSD:Feature Fusion Single Shot Multibox Detector

RefineDet: Single-Shot Refinement Neural Network for Object Detection

RfbNet:Receptive Field Block Net for Accurate and Fast Object Detection

M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

Pelee:Pelee: A Real-Time Object Detection System on Mobile Devices

1、SSD

SSD是ECCV2016的一篇文章,算法效果比yolo v1效果好了非常多,可以说开创了应用多尺度的特征图进行目标检测的先河,其后几乎所有的目标检测算法(自己了解知识范围内),均或多或少采用多尺度的思想。

利用多尺度特征图提高目标检测准确率的思想主要来自,浅层特征图包含着位置信息,对于目标定位非常重要;深层的特征图包含大量的语义信息,对图像目标的分类具有重要的意义。

同时,由于深层的特征图anchor所对应的目标的区域较大,例如特征图缩小为原始尺度的64倍,那么这个特征图每个锚点所对应的原始图像目标尺度为64个像素。因而仅仅采用较高层的特征图进行目标检测,很难检测出较小的物体,这也是ssd效果优于yolo的一个主要的原因。

先看结构图:

cfe4aadbae84388f171ed965ededc3c1.png
图片来自ssd论文原文

算法采用Vgg16作为基础特征提取网络,然后分别利用conv43的特征图(下采样3次,尺度缩小为原始大小的1/8左右)、conv7的特征图(在conv4_3基础上下采样一次),这一部分是vgg16,,然后再利用逐步下采样得到的特征图,分别进行检测。

算法的pytorch源码:https://github.com/amdegroot/ssd.pytorch

ssd算法的配置:

voc 

其中feature_maps:所使用用来进行目标检测的特征图尺度

steps: 进行目标检测的特征图乘以step,即可映射回原始位置。

aspectratios: 每层特征图的所用的anchor的长宽比。每个aspect_ratio可以产生两个目标框

Conv4_3: 38 × 38 × 4 = 5776
Conv7: 19 × 19 × 6 = 2166
Conv8_2: 10 × 10 × 6 = 600
Conv9_2: 5 × 5 × 6 = 150
Conv10_2: 3 × 3 × 4 = 36
Conv11_2: 4

那么最终一共有先验框8762个。

先验框的设置:pytorch源码,layer/function/priorboxes.py文件说明这个过程。

计算思路:以feature map上每个点的中点为中心(offset=0.5),生成一些列同心的prior box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置),最后会归一化处理

正方形prior box最小边长为min_size,最大边长为

每在priorbox设置一个aspect ratio,会生成2个长方形,长宽为:

,

因而在conv4_3上会有38×38×4个,两个正方形两个矩形。

同时在预测阶段,依照论文所说预测的时offset,也就是真实的目标框与先验框的坐标转换后的值。也就是一个编码与解码过程。

先验框的位置表示为

对应的真实边界框的位置为

那么预测得到的值l实际为:

然后再根据预测的值进行解码得到原始的位置

如上边代码段所示,在pytorch源码中还存在variance参数,这个参数将得到的预测值进行变换,将原始的预测值,l进行如下变换。然后进行匹配,也就是decode,这种encode与decode源码存在于utils/box_utils.py中。

如此基本上的算法的结构及一些实现的细节(包括先验框的设置,编码与解码)介绍清楚。


下一篇将会介绍几种算法的改进思想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值