计算机视觉CV-骨干网络Backbone

计算机视觉CV-骨干网络Backbone

概述

2012-2022是深度学习集中爆发的10年, 在这10年间, 涌现出许许多多的新技术新理论,尤其是在骨干网络上。如果将视角拉到1989-2022, 我们可发现:

  • 经典骨干网络有ConvNet、LenNet、AlexNet、Inception、VGG、ResNet、DenseNet、SeNet、ViT、DeiT、SwimTransformer;
  • 计算机视觉经典理论有BP、Pool、Relu、Dropout、BatchNormal、AtrousConv、DeformableConv、Attention、DepthwiseConv、AdamW、PretrainFintune;
  • 经典轻量化卷积神经网络有SqueezeNet、MobileNet、ShuffleNet、Xception、IGCNet、EfficientNet、GhostNet、MicroNet、MixNet、CspNet、RepVGG;

经典骨干网络

1. ConvNet-1989

在这里插入图片描述

ConvNet-1989接近现代卷积神经网络CNN了,它具有两个特征(专利),一个是跨步卷积(strided-convolution),另一个是独立池化层(Pool)。基于该网络架构的系统被用于用于手写邮政编码识别。

2. LenNet-5

在这里插入图片描述

LenNet-5是一个简单的浅层卷积神经网络,激活函数为sigmoid,其输入INPUT为3232像素的单通道图像;第一个block的卷积层C1为6个55的卷积核,池化层S2为6个22卷积核(步长stride为2);第二个block的卷积层C2为16个55N卷积核(与现在的CNN不同,从6通道抽取16个特征, 按顺序分别是6个553,6个554,3个554,1个55*6),池化层S2为6个2×2卷积核(步长stride为2);全卷积层C5使用120个5×5x16卷积核;全连接层F6为点积加偏置;最后的全连接层(OUTPUT层)为高斯连接(分类函数为RBF函数,即径向欧式距离函数)。
网络结构具体来说就是:

  • input:32×32尺寸, 单通道
  • block-1: 55卷积层(步长2, 卷积核6) + 22卷积层(步长2, 卷积核6)
  • block-2: 22卷积层(步长2, 卷积核16) + 22卷积层(步长2, 卷积核6)
  • fully-connect: 5*5卷积层(步长2, 卷积核120) + FC-10 + RBF
    特点:
  • 接近现代的卷积层,跨步卷积(strided-convolution);
  • 独立的池化层(Pool);
  • 独立的全连接层。

3. AlexNet

在这里插入图片描述

AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex设计的。该卷积神经网络是人工智能、深度学习大爆发的里程碑。AlexNet创造性地使用更深更宽的卷积神经网络,成功应用线性整流函数(ReLU)、暂退法(Dropout)、局部响应归一化(LRN, Local Response Normalization)、重叠最大池化(Overlapping Pooling)、数据增强(Data Augmentation)、加入动量的随机梯度下降算法与学习率衰减(momentum, weight decay)、双GPU训练等tricks。
训练详情,
AlexNet是一个8层的卷积神经网络,由5个卷积层和3个全连接层构成,此外还有3个池化层,是浅层神经⽹络和深度神经⽹络分界线。8层网络具体为 1111的卷积层(步长4, 卷积核96) -->> LRN + 33的最大池化层(步长2) -->> 55的卷积层(步长1, 卷积核256) -->> LRN + 33的最大池化层(步长2) -->> 33的卷积层(步长1, 卷积核384) -->> 33的卷积层(步长1, 卷积核384) -->> 33的卷积层(步长1, 卷积核256) -->> 33的最大池化层(步长2)。最后全连接为FC-4096+RELU -->> FC-4096+RELU -->> FC-1000 + Softmax。
网络结构具体来说就是:

  • input:224×224尺寸, RGB三通道
  • block-1: 1111卷积层(步长2, 卷积核96) + LRN + 33最大池化层(步长2)
  • block-2: 55卷积层(步长1, 卷积核256) + LRN + 33的最大池化层(步长2)
  • block-3: 33卷积层(步长1, 卷积核384) + 33的卷积层(步长1, 卷积核384) + 33的卷积层(步长1, 卷积核256) + 33的最大池化层(步长2)
  • fully-connect: (FC-4096+RELU) -->> (FC-4096+RELU) -->> (FC-1000 + Softmax)

特点:

  • 前所未有的深层卷积神经网络,8层深度网络;
  • 线性整流函数(ReLU),解决sigmoid、tanh的接近0-1区间饱和问题,防止梯度消失,急速训练;
  • 暂退法(Dropout),防止过拟合,在一定程度上达到正则化的效果(相当于取平均、减少神经元之间复杂的共适应关系);
  • 局部响应归一化(LRN, Local Response Normalization),控制前一层输出的方差,使得训练更快更稳,防止梯度爆炸,部分防止过拟合;
  • 重叠最大池化(Overlapping Pooling),池化范围z > 步长s,避免平均池化;
  • 数据增强(Data Augmentation),防止过拟合;
  • 加入动量的随机梯度下降算法与学习率衰减(momentum, weight decay),防备落入局部最优点与跳出全局最优点;
  • 双GPU训练,加速训练;

在这里插入图片描述

4. InceptionV1(GoogleNet)

在这里插入图片描述

InceptionV1又叫做GoogleNet,在2014年的ImageNet竞赛中ILSVRC分类任务夺得了冠军,其重要特点有两个:一是使用1x1的卷积来进行升降维;二是在多个尺寸上同时进行卷积再聚合。具体来说,其提升网络性能的方式就是增加网络深度和宽度,深度指网络层次数量、宽度指神经元数量,也就是并行采用不同大小的卷积核处理特征,增加网络的处理不同尺度特征的能力,最后将所有的特征concat起来送入下面的结构。Inception结构代替卷积+激活经典组件。
训练详情,训练期间辅助分类器的损失权重为0.3,推理阶段辅助网络被丢弃。
InceptionV1是一个22层的卷积神经网络,网络结构可以分为5个模块(模块间为步长2的3*3最大池化,下采样)。具体来说就是:

  • input:224×224尺寸, RGB三通道
  • block-1:77卷积层(步长2) + 33最大池化(步长2) + LRN(Local Response Normalization)
  • block-2:11卷积层(步长1) + 33卷积层(步长1) + LRN(Local Response Normalization) + 3*3最大池化(步长2)
  • block-3:Inception3a单元 + DeepConcat + Inception3a单元 + DeepConcat + 33最大池化(步长2), Inception3a单元为[(11conv) + (11conv->33conv) + (11conv->55conv) + (33maxpool->11conv)]
  • block-4:Inception3a单元 + DeepConcat + Inception4b单元 + DeepConcat + Inception3a单元 + DeepConcat + Inception3a单元 + DeepConcat + Inception4b单元 + DeepConcat + 33最大池化(步长2), Inception4b单元多了一个辅助分类器(低层无用, InceptionV3删除), 为 [55平均池化(步长3) -->> 1*1卷积层(步长1) -->> FC-1024 -->> FC-1000 -->> Softmax]
  • block-5:Inception3a单元 + DeepConcat + Inception3a单元 + DeepConcat + 7*7平均池化(步长1) + Dropout(0.7/0.4)
  • fully-connect: FC-1000 + Softmax

特点:

  • 采用模块化的结构(Inception,宽度),方便增添和修改;
  • 使用平均池化(average pooling)代替全连接层,来源NIN(Network in Network),些许提升,但保留Dropout;
  • 为避免梯度消失,额外增加2个辅助的softmax辅助分类器,权重0.3;

InceptionV1网络参数
在这里插入图片描述

InceptionV1网络架构
在这里插入图片描述

5. VGG

VGG同GoogleNet一样都是2014年提出的,获得了2014年ILSVRC定位任务的冠军和分类任务的亚军,是一个十分重要的基石网络,其贡献在于:一是证明了更深的网络能提升性能(VGG-16/VGG-19);二是全部使用3*3的卷积核替代Alex的大尺寸卷积核。
训练详情,训练批尺寸256、动量为0.9、学习率1e-2、衰减L2惩罚乘数设置为5e−4、前两个全连接层学习率衰减0.5、指标不变后学习率衰减10倍(共3次, 74epoch)、预训练(先3层+全连接层)与0-mean/1e-2_variance。

VGG-16是一个16层的卷积神经网络,网络结构可以分为5个模块(模块间为步长2的2*2最大池化max-pooling)。具体来说就是:

  • input:224×224尺寸, RGB三通道
  • block-1:33卷积层(步长1) + 33卷积层(步长1) + 2*2最大池化(步长2)
  • block-2:33卷积层(步长1) + 33卷积层(步长1) + 2*2最大池化(步长2)
  • block-3:33卷积层(步长1) + 33卷积层(步长1) + 33卷积层(步长1) + 22最大池化(步长2)
  • block-4:33卷积层(步长1) + 33卷积层(步长1) + 33卷积层(步长1) + 22最大池化(步长2)
  • block-4:33卷积层(步长1) + 33卷积层(步长1) + 33卷积层(步长1) + 22最大池化(步长2)
  • fully-connect: FC-4096 + FC-4096 + FC-1000 + Softmax

特点:

  • 更深层数的卷积神经网络VGG-16/VGG-19,网络架构很简洁,只有33的卷积层与22的最大池化层;
  • 证明了小滤波器33卷积层的组合比一个大滤波器(55/77/1111)卷积层性能好,并且参数更少;
  • 引入预训练方式训练,先训练小模型初始化(Model-A),再训练大模型;

VGG网络参数
在这里插入图片描述

VGG网络架构
在这里插入图片描述

6. ResNet

在这里插入图片描述

ResNet(Deep residual network,度残差网络)的提出是CNN图像史上的一件里程碑事件,它是2015年ImageNet竞赛中的冠军,识别精度首次超过人类,是一种特别重要的基石网络,其贡献在于:提出了残差网络(residual net),解决了深层次网络的训练问题,并提高了性能;
ResNet-50是一个50层的卷积神经网络,网络结构可以分为5个模块(浅一点网络的block是两个33的卷积层,深层次网络的block是两个11卷积层中间包一个3*3卷积层,第一个block后接一个步长为2的最大池化,最后一个block后接全局平均池化,其他block后是步长为2卷积层)。具体来说就是:

  • input:224×224尺寸, RGB三通道
  • block-1:77卷积层(步长2, 卷积核64) + 22最大池化(步长2)
  • block-2:3 * [11卷积层(步长2, 卷积核64) + 33卷积层(步长1, 卷积核64) + 1*1卷积层(步长1, 卷积核256)]
  • block-3:4 * [11卷积层(步长2, 卷积核128) + 33卷积层(步长1, 卷积核128) + 1*1卷积层(步长1, 卷积核512)]
  • block-4:6 * [11卷积层(步长2, 卷积核256) + 33卷积层(步长1, 卷积核256) + 1*1卷积层(步长1, 卷积核1024)]
  • block-4:3 * [11卷积层(步长2, 卷积核512) + 33卷积层(步长1, 卷积核512) + 1*1卷积层(步长1, 卷积核2048)]
  • fully-connect: AvgPooling + FC-1000 + Softmax

特点:

  • 提出residual(残差结构)模块,即恒等映射x=F(x)+x、短路连接ShortCut,解决深层网络退化问题;
  • 实现了超深的网络结构(超过1000层);
  • 使用BatchNormal加速训练(丢弃dropout)。

ResNet网络参数
在这里插入图片描述

ResNet网络架构
在这里插入图片描述

7. SeNet

在这里插入图片描述

SENet(Squeeze-and-Excitation,SE)最后一届ImageNet竞赛分类任务的冠军(2017),其贡献在于:引入注意力机制融合通道channel之间的信息;
SeNet是一个很简单的模块,其思路很简单,直接插入原有网络每个block后就可以了,与ResNet一样很容易扩展在已有网络结构中。具体来说就是:

  • Block-extend:SeNet = Squeeze(全局平均池化通道信息_Global-Average-Pooling) + Excitation(FC-1/r + RELU + FC-r + Sigmoid + Scale)

特点:

  • 提出SE(Squeeze-and-Excitation)模块,即通道channel层面的信息融合。

SENet网络参数
在这里插入图片描述
SENet网络架构
在这里插入图片描述

8. ViT(Vision Transformer)

ViT(Vision Transformer, 2020)可能是CV界自AlexNet(2012)以来最大的突破(之前各种CNN架构都是改良),其贡献在于:简单将图片切成16X16的patch作PathEmbedding,引入NLP领域大放异彩的Transformer,就取得了里程碑式突破。
ViT与NLP领域的Transformer大同小易,重点是引入了PathEmbedding,即把图像切为1616的图像块Embedding作为输入,等同于对图片做一个1616卷积(步长16),Encode基本相同。具体来说就是:

  • Embedding: PathEmbedding + PositionEmbedding
  • Encode: Transformer

特点:

  • 成功将Transformer引入CV领域,并取得了很好的效果;
  • 引入PathEmbedding作输入进行全局特征抽取;
  • 数据增强与大规模数据预训练,迁移效果好。

ViT网络参数
在这里插入图片描述

ViT网络架构
在这里插入图片描述

8. Swin(Swin Transformer)

在这里插入图片描述

Swin(Swin Transformer)是ICCV-2021的最佳论文,可作为一种通用基石网络架构,其贡献在于:一是引入CNN中常用的层次化构建方式;二是引入locality思想,对无重合的window区域内进行self-attention计算。
Swin重点是采用层次化构建的方式,以及引入局部注意力机制,其分辨率是4*4有利于低分辨率的图像分割识别任务。具体来说就是:

  • Embedding: PathEmbedding
  • Block: LN + W-MSA + Ln + FFN + PatchMerg + LN + SW-MSA + Ln + FFN + PatchMerg

特点:

  • 采用了分层的结构(金字塔结构),解决物体大小尺度不一的问题;
  • 限制了attention的计算范围(W-MSA/SW-MSA),使得它成为线性复杂度,解决在高分辨率上运行的问题。

Swin网络参数
在这里插入图片描述

Swin网络架构
在这里插入图片描述

参考资料-经典骨干网络

参考资料-经典理论

参考资料-轻量化卷积神经网络

猜你喜欢

转载自blog.csdn.net/rensihui/article/details/125854490