Models in CV

Backbone Models

1. Inception


Version 1

模型特点:

  1. 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合
  2. 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了
  3. 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
  4. 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。

但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,文章借鉴NIN2,采用1x1卷积核来进行降维。

例如:上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,padding=2),输出数据为100x100x256。其中,卷积层的参数为128x5x5x256。假如上一层输出先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32 + 32x5x5x256,大约减少了4倍。

Inception Block结构:

[图片上传失败...(image-7d0877-1548856862938)]

模型结构:

[图片上传失败...(image-c123b9-1548856862938)]


Version 2

模型改进:

  1. 使用BN层,将每一层的输出都规范化到一个N(0,1)的正态分布,这将有助于训练,因为下一层不必学习输入数据中的偏移,并且可以专注与如何更好地组合特征(也因为在v2里有较好的效果,BN层几乎是成了深度网络的必备);BN层能够提升模型的训练速度

Inception Block结构:

[图片上传失败...(image-ea7142-1548856862938)]

Result on ImageNet:

[图片上传失败...(image-1acbac-1548856862938)]

Version 4

Inception Block:

[图片上传失败...(image-d6d2d6-1548856862938)]

Conclusion:

  • Inception网络模式人工痕迹太重,模型太复杂。容易过拟合。
  • 模式属于split-transform-merge模式,每一路通道进行单独转换,最后所有通道concate(级联)
  • 版本越往后面参数越多,训练所花费的时间和资源越多

2. ResNet


3. ResNext


模型特点:

  1. 在ResNet模型的基础上增加了Residual Block的宽度(通道),检验了模型宽度所带来的精度提升。
  2. 最后所有通道仅仅是相加起来便可以融合。符合split-transform-merge模式
  3. 进一步验证了split-transform-merge模式的普遍性和有效性

ResNext Block:

Models in CV_第1张图片
img
  • 左ResNet 右ResNext(32 Paths)
Models in CV_第2张图片
img
  • a为基本的ResNext Block单元
  • 如果将最后1x1的合并到一起,等价于网络b中拥有和Inception-ResNet的结构(concate)
  • 进一步将输入的1x1合并,等价于网络c中和通道分组卷积网络结构类似

Conclusion:

  • ResNext-101 (32x4d)大小和Inception v4相当,精度略差。但是训练速度快很多
  • ResNext-101 (64x4d)大小和Inception-ResNet大一点,精度相当或略差,速度快非常多
  • 结构简单,可以防止对特定数据集的过拟合。

4. VGG

模型特点

  1. 整个网络都使用了同样大小的卷积核尺寸(3 x 3)和最大池化尺寸(2 x 2)
  2. 1 x 1卷积的意义主要在于线性变换,而输入通道数和输出通道数不变,没有发生降维。
  3. 两个3 x 3的卷积层串联相当于1个5 x 5的卷积层,即一个像素会跟周围5 x 5的像素产生关联,可以说感受野大小为5 x 5。而3个3 x 3的卷积层串联的效果则相当于1个7 x 7的卷积层。除此之外,3个串联的3 x 3的卷积层,拥有比1个7 x 7的卷积层更少的参数量,只有后者的(3 x 3 x 3)/(7 x 7)=55%。最重要的是,3个3 x 3的卷积层拥有比1个7 x 7的卷积层更多的非线性变换(前者可以使用三次ReLU激活函数,而后者只有一次),使得CNN对特征的学习能力更强。
  4. VGGNet在训练时有一个小技巧,先训练级别A的简单网络,再复用A网络的权重来初始化后面的几个复杂模型,这样训练收敛的速度更快。在预测时,VGG采用Multi-Scale的方法,将图像scale到一个尺寸Q,并将图片输入卷积网络计算。然后在最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸Q的结果平均得到最后结果,这样可提高图片数据的利用率并提升预测准确率。在训练中,VGGNet还使用了Multi-Scale的方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224x224的图片,这样能增加很多数据量,对于防止模型过拟合有很不错的效果。

模型结构

[图片上传失败...(image-7ce165-1548856862938)]


5. ZFNet & AlexNet


Object Detection Models

Two-Stage:

1. R-CNN

2. Faster R-CNN

3. FPN

4. RefineDet

One-Stage:

1. SSD

2. DSSD

3. YOLO

4. RetinaNet

5. RFBNet

Object Segmentation Models

1. FCN

2. U-Net

3. SegNet

4. RefineNet

5. PSPNet

6.Mask-R-CNN

你可能感兴趣的:(Models in CV)