DLA:一种深度网络特征融合方法

本文回顾一篇CVPR 2018 的论文 Deep Layer Aggregation,一种网络特征融合方法,谷歌学术显示目前该文已有398次引用,希望对研究网络基础结构设计的同学有启发。

论文:https://arxiv.org/pdf/1707.06484.pdf

代码:https://github.com/ucbdrive/dla

0.动机

CNN为多种计算机视觉任务提供了很好的解决方案。随着视觉任务对高性能算法更严格的追求,Backbone的设计成为了一个很重要的主题。

更多的非线性操作、更大的网络往往能提高模型性能,bottleneck、residual block、concatenative connection等模块的出现,进一步增强了网络的性能和可实现性,网络架构也从最初的串行连接逐渐演变成包含skip connection的形式。

作者认为当前流行的skip connection结构过于单一,因此设计了IDA(Iterative Deep Aggregation)和HDA(Hierarchical Deep Aggregation)两个结构,作为对skip connection的扩展,能够更好地融合语义和空间特征。

1.IDA(Iterative Deep Aggregation)

为便于叙述,作者将CNN架构进行模块化拆分,1个CNN由多个stage组成,1个stage由多个block组成,每个block包含多个layer,用下面的图标表示block和stage:

传统的串行连接的CNN如下图所示:

为了融合浅层的底层信息和深层的语义信息,引入从浅层向深层的skip connection,如下图所示:

在此基础上,作者提出了IDA(Iterative Deep Aggregation)模块,结构如下:

上图中绿色的方块称作“Aggregation Node”,Aggregation Node在特征由浅到深传播的同时聚集特征。

使用如下公式表示上图:

在上面的公式中,表示整个IDA模块,表示Aggregation Node。例如表示一个输入为和的Aggregation Node,即图中最左侧的绿色方块。

从上图中也可以看出,IDA以stage为基本单位,IDA结构在多个stage外部增加连接和Aggregation Node。

2.HDA (Hierarchical Deep Aggregation)

IDA能够有效融合多个stage的特征,但是没有对stage内部多个block的特征进行融合。作者提出了HDA(Hierarchical Deep Aggregation)结构增强stage内部多个block的融合,如下图所示:

在上图结构的基础上,为了进一步对特征进行聚合,将Aggregation Node中的特征引回到Backbone中,使得当前block将前面聚合后的特征作为输入,如下图所示:

为提高计算效率,将上图中同一深度的Aggregation Node进行融合,融合后的结构如下图所示:

3.Aggregation Node

根据上文内容可以看出,在IDA结构中,Aggregation Node的输入为2个;在HDA结构中,Aggregation Node的输入为2个或更多。Aggregation Node将多个输入的特征进行融合,形成单一特征并输出。

可以使用任意网络结构构造Aggregation Node,为减少计算量,作者使用单个“卷积-BN-激活函数”结构来构造Aggregation Node,一般情况下使用卷积,表达式为:

上式中表示非线性激活函数,和表示卷积中的weight和bias。

此外,作者尝试在Aggregation Node中加入residual connection,表示如下:

4.Deep Layer Aggregation

将上述的IDA和HDA结合,形成下图所示的DLA(Deep Layer Aggregation)结构:

上图中每个红色框可以看作1个stage,使用IDA连接多个不同的stage,使用HDA融合stage内部的特征,IDA和HDA共享Aggregation Node。上图中包含4个stage,与ResNet类似,每个stage之间会进行降采样操作。这里使用kernel size为2、步长为2的max pooling进行降采样。

5.使用DLA构造CNN

DLA是一个通用的架构,可以很方便地融合到现有的CNN结构中来完成多种计算机视觉任务。

5.1 分类

使用类似ResNet的结构,以DLA为基础构造网络完成分类任务。作者构造了包含6个stage的CNN,除第1个stage外,每个stage都会对输入特征进行降采样操作,整个网络对输入图像进行32倍的降采样操作,CNN的最后是用于分类的global average pooling和softmax层。

为了和ResNet系列网络做性能对比,作者分别构造了与ResNet-34、ResNet-50和ResNet-101层数大致相等的多个网络结构,如下表所示:

上表中的Stage1和Stage2对应的数字表示feature map的通道数,Stage3-Stage6对应的2个数字分别代表aggregation depth和feature map通道数。名称包含“-C”的网络代表用于移动端部署的小网络,它们的参数只有1M个左右。

在ImageNet训练集上使用SGD方法训练上表中的网络和ResNet系列网络,在训练时对DLA和ResNet系列网络使用了同样的数据增强方法。

在ImageNet验证集上对训练好的网络进行评估,将图像resize,使得短边有256个像素,然后进行的central crop,作为网络输入。

测试结果如下图所示:

从上图可以看出,同等配置的DLA优于ResNet,同等配置的DLA-X优于ResNeXt。

将DLA系列中的小网络与SqueezeNet进行对比,实验结果如下:

上表中的FMAs表示fused multiply-adds。从上表中可以看出,同等参数量的DLA比SqueezeNet有更高的性能和更少的计算量。

5.2 语义分割

将DLA结构用于语义分割,需要在原来结构的基础上加入上采样模块。在传统上采样模块的基础上,加入IDA结构以提高性能,这里IDA中的Aggregation Node使用卷积。加入IDA后的上采样模块结构如下:

在上采样模块中,IDA融合了不同分辨率的特征。

使用Cityscapes训练集训练网络,使用random rotating和random scaling方法进行数据增强。训练完成后在Cityscapes验证集和测试集上进行测试,结果如下表所示:

从表中可以看出,DLA结构在语义分割任务中也有很好的性能。

6.总结

  • 提出了IDA和HDA,用来融合不同block和不同stage的特征,并将IDA和HDA融合为DLA模块,以DLA为基础构造CNN;
  • 通过实验证明了在分类和语义分割任务中,相比于同等规模的网络,使用DLA结构有明显的性能提升。

仅用于学习交流!

END

备注:综合

计算机视觉综合交流群

图像分割、姿态估计、智能驾驶、超分辨率、自监督、无监督、2D、3D目标检测等最新资讯,若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到

(0)

相关推荐