Bootstrap

Pelee阅读学习笔记

1.论文阅读:

摘要:

  • VOC 2007:76.4%;MS coco:22.4%
  • 速度:iPhone8的速度为23.6 fps,Nvidia TX2的速度为125 fps。

引言:

【MobileNet、ShuffleNet、MobileNet v2等相继被提出,这些模型都过度依赖于depthwise卷积,而深度可分离卷积缺乏高效实现】

本文主要工作:

1.提出了一种用于移动设备端的网络架构:PeleeNet——是Densenet的变体

【遵循了Desenet的连接模式和一些关键性的设计原则;能够满足对内存和计算预算的限制】

特点如下:

  • Two-Way Dense Layer:

如下图所示,受GoogLeNet启发,使用2-way dense layer来获得不同尺度的感受野。

One way 使用1个3X3的卷积

The other way使用两个堆叠的3X3卷积层来学习大目标的visual patterns

  • Stem Block:

如下图所示,​​​​​​​受Inception-v4和DSOD的启发,提出一种低成本的stem block。

用于第一个dense layer之前提取特征
能够提升特征表达能力,且没有增加太多的计算成本

  • Dynamic Number of Channels in Bottleneck Layer:
bottleneck中的通道数量根据输入feature map的形状而变化,并不是像Densenet中直接扩大4倍
实验结果表明,与原有的Densenet结构相比,该方法可以节省28.5%的计算成本,对计算精度影响较小。

  • Transition Layer without Compression:在PeleeNet中,过渡层不会进行通道数量的压缩。​​​​​​​
  • Composite Function:使用"Conv-BN-ReLU"(后激活),而不是想DenseNet那样进行预激活。后激活的好处是,在做inference阶段,可以将所有的BN层与卷积层合并,可以大幅提高计算速度。为了弥补后激活对精度降低的影响,PeleeNet在设计时尽可能“浅而宽”。并且在最后一个dense block之后添加了1*1卷积层以获得更高级的特征。

2.结合PeleeNet对SSD进行改进,提出了Pelee:

  •  Feature Map Selection :检测模型中有5组不同尺度的特征图——19*19、10*10、5*5、3*3、1*1;为了降低计算成本不选择38*38的尺度
  • Residual Prediction Block :设计ResBlock产生用于预测的feature map

  •  Small Convolutional Kernel for Prediction:ResBlock 使得能够应用1X1的卷积来进行预测分类得分和回归偏移量;精度与使用3X3卷积模型几乎一致,但能够降低21.5%的计算成本。

PELEENET:一种高效的特征提取网络

1.结构:

如表1所示,首先通过stem block[快速提取特征],然后通过4个由dense layers和1个Transition layer组成的stage[除了stage4以外,其他3个stage最后部分都使用了stride=2的平均池化],最后通过1X1卷积层以及全局平均池化做分类检测输出。

之后用可视化工具看了pelee的网络结构超级有规律

2.训练:

有训练SSD安装的caffe,所以只需要把pelee复制到caffe-ssd的examples文件夹中,生成好lmdb文件

sudo python train_voc.py

最后结果:

对比一下结果差了0.6%

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;