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

上一篇介绍了ssd算法的网络结构及一些令人迷惑的细节问题,比如8732个先验框如何设置,offset指的是什么,编码与解码过程。理解ssd算法之后,然后再去理解改进算法就会非常容易。

这一篇接着上一篇,主要介绍几种改进算法的主要思想

参考论文:

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、DSSD

先上结构图:

d9ac26967dcde32cd995669730dfd62d.png
图片来自原始论文

DSSD算法着眼于ssd对于小目标物体的检测效果依然不够理想,分析原因,就是浅层的特征图虽然比较容易定位小目标,但是浅层的特征图没有包含充分的语义信息,很难对定位出的目标进行分类。

因而,利用反卷积将特征图进行上采样,与原始的特征图进行融合,然后混合后的特征图输入感知器网络进行预测(感知器网络就是几层卷积层,输出为特定的维度,维度与位置与类别有关)。

将原始特征图与上采样后的特征图进行融合的方法一般有堆叠(concat)与求和(element-wise sum),但是这里作者经过实验说明在这种结构下(element-wise product)矩阵点积的效果比element-wise sum更好。

2、FSSD

先上结构图:

97a8ebc4f66f7ee5377ef5c03b74e867.png
图片来自原始论文

同样考虑到ssd算法独立的利用浅层与深层的特征图进行预测,对小物体的鲁棒性较差,提出了一种特征融合的方式,将vgg16产生的不同尺度的特征图,利用双线性插值变换为conv4-3层的特征图尺度大小,然后concat所有特征图,利用得到的特征图重新进行下采样得到不同的特征图尺度,输入感知器网络进行预测。

3、RfbNet

先上结构图

be29cd59784890320dc246252775fea7.png

2dd0f5a54c8fb2e99efc4bceac7cb586.png
上述图片来自原始论文

2018年eccv的一篇文章,作者受人眼视觉感知的偏心率的与影响,利用inception与atrous convolution相结合提出 感受野模块(receptive filed block),将rfb应用于ssd算法的特征图的头部,然后对处理后的特征图进行预测,结构简单,效果非常好。

4、M2Det

c975d37c56638eaf0ce2092359f0b620.png
图片来自原始论文

M2Det时2019AAAI的一片文章,作者认为之前的FSSD、DSSD等算法对于多尺度特征图的融合使用的策略过于简单,不能很充分的利用各层的特征,然后作者设计了一种特征融合的方式,对ssd算法的特征图进行融合,效果还行。

5、RefineDet

先上结构图

9809b00b64a6edf9a11d13d16008bb32.png
图片来自原始论文

这是cvpr2018的一篇文章,之所以放在最后,是因为此算法对于ssd的修改最多,而且这中算法看起来好像是目标检测一步法与两步法的结合算法。

这篇文章对于ssd的改进点与前边几篇文章的思路均不一样,更像是对目标检测一步法的改进,通过对ssd算法的prior box进行二次的refine,来提升算法的效果。

主要就是利用两步法的思想先对先验框进行一次分类(二分类,仅区分前景与背景)与回归,解决样本极不均衡的问题,提高准确率;同时利用FPN对不同的特征图进行融合,提高对小物体检测的鲁棒性。

整体来看该网络和tow stage的结构很像(都可以概括为two-step cascaded regression),一个子模块(anchor refinement module (ARM))对先验框进行二分类与回归,类似于RPN的功能,另一个子模块类似于SSD(object detection module (ODM))。在RefineDet中是先通过ARM部分生成refined anchor boxes(类似RPN网络输出的propsoal),然后在refined anchor boxes基础上进行回归,所以能有更高的准确率,而且得益于特征融合(transfer connection block (TCB))这个模块基本是是一个FPN,该算法对于小目标物体的检测更有效。

这篇文章应该好好读一下,前边的几篇文章很简单,很容易理解


自己看过的几篇ssd系列的文章在此总结梳理一下,ssd算法是一个具有非常优秀的算法,近几年很多算法都是在ssd算法上进行改进,看明白这个系列算法与学习R-CNN系列算法一样重要。


上一篇文章评论区有朋友推荐了pelee这篇文章,回去看了一下,这里写出一些这篇文章的主要思想及创新点

pelee

这篇文章主要立足于设计能够在移动端运行的实时性的算法网络,之前的轻量化网络(例如mobilenet,shufflenet,mobilenet v2)均采用了深度可分离卷积进行设计,文章作者提出不一定要依赖于深度可分离卷积设计轻量化网络,利用传统的卷积也可以设计轻量化的网络

这个网络的网络结构采用了densenet与googlenet的网络结构思想,设计了2-way dense layer

将densenet第一个stem block中的7x7 卷积利用3x3卷积进行替换,效果更好。

在bottleneck层的输出通道依据输入尺寸的大小是可变的,而不是像densenet一样输出为输入的通道数的4倍,这样很大程度上减小了计算量

利用conv-bn的post-activation,这样也加速了计算速度(不明白为什么)

对于ssd算法的感知特征图没有采用38x38的特征图,仅仅采用了后边的几层特征图

19x19的特征图设置两个不同大小的默认框,后边的特征图设置一个默认框

在每个感知特征图后面预测之前,利用残差模块进行处理

在预测部分的卷积核利用1x1的卷积替代3x3的卷积,减小模型的参数,提高速度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值