FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记

论文:FSSD: Feature Fusion Single Shot Multibox Detector
caffe实现:链接
我自己的更高精度的pytorch实现在这: 链接

该篇论文出自北航,看起来比较容易懂,因此笔记会写的简单一点。

Introduction

言归正传,本文是以SSD为基底进行“改造”的一篇文章。SSD是从网络的不同层中抽取不同scale的feature直接做predict,所以没有充分融合不同scale的feature。后续有提出DSSD,RSSD等改进方法,但是因为模型的complexity导致速度变慢很多。**本文借鉴了FPN的思想,重构了一组pyramid feature map,**使得算法的精度有了明显的提升,速度也没有太降。先看一张图直观感受一下FSSD对比其它算法的效果。

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第1张图片

Approach

对比下图中几种结构:
(a)中棕色的block之间没有联系,所以是使用不同scale的图片来生成不同scale的feature map进行predict,这是最不高效的一种方法;
(b)代表faster rcnn之类的two-stage算法,利用某一个scale的feature map来生成多scale的anchors去检测multi-scale objects;
©是典型的Top-Down结构,FPN为代表网络。该结构在此不做赘述,有不清楚的移步这里。DSSD也是该网络结构的应用;
(d)是SSD的结构代表图,从网络不同层抽取不同scale的feature做预测,这种方式不会增加额外的计算量,但是各个scale之间没有联系;
(e)是FSSD的结构图,就是把网络中某些feature调整为同一szie再 contact,得到一个像素层,以此层为base layer来生成pyramid feature map,作者称之为Feature Fusion Module。

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第2张图片

下面解释一下Feature Fusion Module。作者用一组公式表示整个过程:
FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第3张图片

对公式的字母含义进行说明:

  1. Xi 是前置网络中希望融合的feature map,作者在文中说明了size小于10的feature map能合并的信息太少了,因此不做考虑,此外将conv6-2的stride设为1,这样conv7-2的size就是10了(给出FSSD的网络结构链接),所以选择 conv4-3 (38*38) ,fc7 , conv7-2输出的feature map来进行融合(为什么非用7-2,难道原始s=2的6-2用起来效果很差?作者没有说明)。至于为什么不用conv3-3的特征,可以对比Tab 2的2,3行看出;
  2. Ti 表示对feature map进行降采样或者上采样方法的选择,目的让其scale一致。FSSD中均采用billnear将fc7 , conv7-2的scale统一为38;
  3. φf 是选择对scale一致的feature map进行Contact还是Element-wise sum。目的是融合feature map生成一个scale的feature,FSSD应用了concact,可对比Tab 2的2,7两行看出;
  4. **φp是如何利用得到的feature重构一组predict layer,也即Pyramid feature maps,**作者实验了Fig 3中的三种结构,其中棕色的block用来做predict,第一个结构使用fusion feature map作为第一层,**第二个是fusion feature map接了个33卷积后作为第一层,**最后一个结构是对于每一个predict层都先用11卷积来降低计算量,也就是bottleneck layer。从Tab 1可以看出中间的效果最好。

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第4张图片

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第5张图片

FSSD网络的结构如下图所示,也贴出notescop链接

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第6张图片

Experiment

实验不贴那么多了,贴一个在COCO上的对比图,从IOU[0.5:0.95]中可以看出FSSD的精度比SSD要高,但是比DSSD要低一点,因此FSSD中将VGG换成Resnet,也是接下来勇于探索的小伙伴的一个方向~
至于速度的话,在笔记的最开始的一张图中已经贴出,FSSD的速度稍慢于SSD,但比DSSD要快不少。毕竟FSSD模型的complexity较SSD增大不少,这也从侧面印证了speed和acc难以兼得呀!

FSSD: Feature Fusion Single Shot Multibox Detector 论文笔记_第7张图片

总结:本文其实就是SSD+FPN,acc提升是可想而知,speed降低当然也是显而易见。本文提出的结构也不难想,实验也可以完成,所以以后有想法了还是要赶紧实现啊!还有以后看论文也要像今天这样,半天看完论文,2个小时完成笔记~

你可能感兴趣的:(论文笔记)