《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone

《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第1张图片
经典的Backbone

VGG:

《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第2张图片
VGG的网络结构图

VGG的特点是采用五组卷积核三组全连接,最后使用Softmax做分类。每次经过池化层后特征图的尺寸缩小一倍,而通道数增加一倍(除最后一个池化层)。
VGG摒弃了55的卷积层,而是采用了两个33的卷积层进行堆叠。在保证相同感受野的情况下,降低了参数量,并且提升了网络的学习能力(多了一个非线性激活函数)。

Inception

并行多个不同尺寸的卷积运算与池化,然后拼接起来。

《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第3张图片
后续版本加入了11的卷积,用于减少通道数,降低网络参数
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第4张图片
V2 版本引入了BN操作,并用两个3
3的卷积层替换了之前的55。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第5张图片
后续还将n
n的卷积拆分为1n与n1两个卷**积,用于降低计算成本。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第6张图片

ResNet

ResNet的思想是引入一个深度残差框架来解决梯度消失问题,让卷积网络学习残差映射,而不是期望每个堆叠层的网络都完整地拟合潜在的映射。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第7张图片
一个残差模块称为一个Bottleneck。一个模块至少不比原来的性能要差。

DenseNet

DenseNet可以理解为ResNet的增强版,每个模块中前一层网络跟后面所有的网络都有直连。但是也有区别,ResNet是逐元素相加,而DenseNet是通道拼接(Concatnate)。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第8张图片
两个Dense Block之间的部分称为Transition层,包含BN、ReLU、11卷积、22平均池化等操作。《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第9张图片
DenseNet的Block结构图,采用了激活函数在前,卷积层在后的顺序,跟一般的网络不同。

DenseNet的优势

  • 密集连接的特殊网络,一定程度上解决了梯度消失的问题。
  • DenseNet的参数更少,且效率更高。

DenseNet的缺点

  • 显存容易增加的很快,需要一定的显存优化技术。
  • 网络较为特殊,没有ResNet那样应用范围广。

特征金字塔FPN

传统的特征图尺寸较小,造成小物体在特征图上的有效信息较少,小物体的检测性能急剧下降,这就是多尺度问题。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第10张图片
上采样用的是二倍最近邻上采样,非线性插值。

横向连接的目的是为了将上采样后的高语义信息与浅层的定位细节特征进行融合。

FPN将深层的语义信息传到底层,来补充浅层的语义信息,从而获得了高分辨率、强语义的特征,在小物体检测、实例分割等领域有着不俗的表现。

DetNet

现有的物体检测是基于图像分类网络修改的,特征图的分辨率较低,从而导致下面两个缺陷。

  • 大物体难定位,物体的边缘难以精确预测,增加了回归边界的难度。
  • 小物体难检测,由于下采样导致小物体在较深的特征图上几乎不可见。

DETNet引入了空洞卷积,使模型兼具较大感受野与较高分辨率。
《深度学习之PyTorch物体检测实战》读书笔记(三)网络骨架Backbone_第11张图片
空洞卷积与残差网络的对比图

你可能感兴趣的:(计算机视觉)