1. PeleeNet
参考代码:
论文名称:
《PeleeNet:A Real-Time Object Detection System on Mobile Devices》
1.1 设计理念
在类MobileNet的轻量化网络中广泛采用深度可分离卷积用于减少参数量和计算量,但文章指出这样的结构在不同深度学习推理框架中效率却不高。对此文章全部采用传统卷积的形式在DenseNet的基础上进行改进得到名为PeleeNet的网络。相比MobileNet网络更加轻量化,运行的速度也更快。
相比原是的DenseNet网络文章从下面的角度对其进行改进:
- 1)Two-Way Dense Layer:这部分改进是参考InceptionNet系列网络,在原本的Dense Layer中再添加两个分支,从而可以增加网络对大目标的感知力与网络表达能力,改进前后的网络结构对比见下图所示:
- 2)Stem Block:对于网络输入的初级文章使用多分枝的结构进行改进,避免直接采用增加初级channel数量的方式进行网络表达能力增强(开销大),其结构件下图所示:
- 3)Dynamic Number of Channels in Bottleneck Layer :这里将DenseNet中的Bottleneck中的中间层channel变化倍率与输入特征图的分辨率进行关联,从而抛弃之前采用的固定倍率的方案。也就是大尺寸的特征图相应得到更小的倍率,从而减少计算量,参见下图:
- 4)Transition Layer without Compression:这里对transition层中的channel数量不做压缩,避免对特征表达带来损失;
- 5)Composite Function:采用Conv+BN+ReLU的形式而不是Conv+ReLU+BN的形式,从而方便进行网络折叠;
消融实验:
设计出的网络结构:
这篇文章提出的方法是建立在检测任务上的,这里采用检测算法头为SSD,对此文章在如下的方面进行调整:
- 1)检测特征选择:采用5个尺度的特征进行检测结果预测( 19 ∗ 19 , 10 ∗ 10 , 5 ∗ 5 , 3 ∗ 3 , 1 ∗ 1 19*19,10*10,5*5,3*3,1*1 19∗19,10∗10,5∗5,3∗3,1∗1);
- 2)预测头与特征图采用残差连接,同时进行特征抽取;
- 3)由于采用了残差连接的形式,预测头部分使用 1 ∗ 1 1*1 1∗1的卷积进行预测,从减少计算开销;
文章对于检测部分的改进见下图所示:
1.2 实验结果
ImageNet:
PASCAL VOC 2007:
2. VoVNet
参考代码:
vovnet-detectron2
论文名称:
《An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection》
2.1 设计理念
这篇文章在DenseNet的基础上从MAC(memory access cost)和GPU并行计算效率角度对DenseNet中的dense_block进行改进,从而得到兼顾性能和效率的OSA(one-shot aggregation)模块,并在此基础上构建了VoVNet。其在计算速度和功耗上均比相同级别的DenseNet具有较大改善。
MAC角度分析:
内存访问的时间在网络推理过程中是较为重要的因素,对于内存访问次数可以通过下面的计算方式进行计算:
M A C = h w ( c i + c o ) + k 2 c i c o MAC=hw(c_i+c_o)+k^2c_ic_o