FCN相关问题的一些整理 (FCN VGG Segnet resnet )



1  FCN 相对CNN的优点

1) 2014年,加州大学伯克利分校的Long等人提出的完全卷积网络(Fully Convolutional Networks),推广了原有的CNN结构,在不带有全连接层的情况下能进行密集预测。

这种结构的提出使得分割图谱可以生成任意大小的图像,且与图像块分类方法相比,也提高了处理速度。在后来,几乎所有关于语义分割的最新研究都采用了这种结构。
2)  除了全连接层结构,在分割问题中很难使用CNN网络的另一个问题是存在池化层。池化层不仅能增大上层卷积核的感受野,而且能聚合背景同时丢弃部分位置信息。然而,语义分割方法需对类别图谱进行精确调整,因此需保留池化层中所舍弃的位置信息。

研究者提出了两个不同形式的结构来解决这个问题。
1) 第一种方法是编码器-解码器(encoder-decoder)结构。 在这种方法中,一种典型结构为U-Net网络。
2) 第二种方法使用了称作空洞卷积的结构,且去除了池化层结构。
3) 条件随机场(Conditional Random Field,CRF)方法通常在后期处理中用于改进分割效果。CRF方法是一种基于底层图像像素强度进行“平滑”分割的图模型,在运行时会将像素强度相似的点标记为同一类别。加入条件随机场方法可以提高1~2%的最终评分值。

FCN 论文:Fully Convolutional Networks for Semantic Segmentation
主要贡献 
http://www.dataguru.cn/article-11733-1.html
提出了跳跃连接来改善上采样的粗糙程度。
1)将端到端的卷积网络推广到语义分割中;
2)重新将预训练好的Imagenet网络用于分割问题中;
3)使用反卷积层进行上采样;
4)提出了跳跃连接来改善上采样的粗糙程度。

用卷积运算实现的全连接层结构
1)在将VGG等预训练网络模型的全连接层卷积化之后,由于CNN网络中的池化操作,得到的特征图谱仍需进行上采样。
2)反卷积层在进行上采样时,不是使用简单的双线性插值,而是通过学习实现插值操作。
此网络层也被称为上卷积、完全卷积、转置卷积或是分形卷积。

3 VGG 特点:

 VGGNet:

(1) 牛津大学计算机视觉组(Visual Geometry Group)和GoogleDeepMind公司的研究员一起研发的

(2)探索了卷积神经网络的深度与其性能之间的关系,反复读碟3*3的小型卷积核和2*2的最大池化层,16-19层深的卷积神经网络

(3)取得了ILSVRC2014比赛分类项目的第2 名,定位项目的第1名。

(4)VGG的网络结构:

  • 5段卷积层+3段全连接层
  • 两个3*3的卷积层串联相当于1个5*5的卷积层,即一个像素会跟周围5*5的像素产生关联,感受野大小为5*5
  • 三个3*3的卷积层串联的效果相当于1个7*7的卷积层。
  • 3个串联的3*3的卷积层,比1个7*7的卷积层参数量少,只有后者的(3*3*3)/(7*7)=55%
  • 3个3*3的卷积层比1个7*7的卷积层有更多的非线性变换,前者可以使用三次ReLU激活函数,后者只有一次
  • 至于为什么用3x3的滤波器尺寸,
  • 是因为这是能捕捉到各个方向的最小尺寸了,如ZFNet中所说,由于第一层中往往有大量的高频和低频信息,却没有覆盖到中间的频率信息,且步长过大,容易引起大量的混叠,因此滤波器尺寸和步长要尽量小;这里使用1x1的卷积模版是因为1x1就相当于可以看作是一种对输入通道进行线性变换的操作(增加决策函数的非线性且不会影响到感受野的大小)。

(5)VGG训练技巧:

  • 先训练级别A的简单网络,再复用A网络的权重来初始化后面的几个复杂模型,训练收敛的速度更快。
  • 训练时采用multi-scale方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224*224的图片,这样能增加很多数据量,防止过拟合。
  • 预测时,VGG采用Multi-scale的方法,输入图像为多尺度Q,且对于每个Q在最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸Q的结果平均得到最后结果。

(6)VGG结论:

  • LRN层作用不大。 LRN全称为Local Response Normalization,即局部响应归一化层
  • 越深的网络效果越好
  • 1*1的卷积也是很有效的,但是没有3*3的卷积好,大一些的卷积核可以学习更大的空间特征。

SegNet
FCN网络中,通过上卷积层和一些跳跃连接产生了粗糙的分割图,为了提升效果而引入了更多的跳跃连接。

然而,FCN网络仅仅复制了编码器特征,而Segnet网络复制了最大池化指数。

这使得在内存使用上,SegNet比FCN更为高效。

空洞卷积

论文:  Multi-Scale Context Aggregation by Dilated Convolutions
于2015年11月23日提交到arvix

主要贡献:
1)使用了空洞卷积,这是一种可用于密集预测的卷积层;
2)提出在多尺度聚集条件下使用空洞卷积的“背景模块”。

具体解释:
池化操作增大了感受野,有助于实现分类网络。但是池化操作在分割过程中也降低了分辨率。
因此,该论文所提出的空洞卷积层是如此工作的:


 空洞卷积示意图

1)空洞卷积层在不降低空间维度的前提下增大了相应的感受野指数。
2)在接下来将提到的DeepLab中,空洞卷积被称为多孔卷积(atrous convolution)。
3)从预训练好的分类网络中(这里指的是VGG网络)移除最后两个池化层,而用空洞卷积取代了随后的卷积层。
4)特别的是,池化层3和池化层4之间的卷积操作为空洞卷积层2,池化层4之后的卷积操作为空洞卷积层4。

RefineNet

所以,这篇论文提出了相应的编码器-解码器结构,其中编码器是ResNet-101模块,解码器为能融合编码器高分辨率特征和先前RefineNet模块低分辨率特征的RefineNet模块。

RefineNet网络结构

每个RefineNet模块包含一个能通过对较低分辨率特征进行上采样来融合多分辨率特征的组件,以及一个能基于步幅为1及5×5大小的重复池化层来获取背景信息的组件。

这些组件遵循恒等映射的思想,采用了残差连接的设计方式。


7 PSPNet
论文: Pyramid Scene Parsing Network   于2016年12月4日提交到Arxiv
主要贡献:
1)提出了金字塔池化模块来聚合背景信息;
2)使用了附加损失(auxiliary loss)。

具体解释:
1 )全局场景分类很重要,由于它提供了分割类别分布的线索。金字塔池化模块使用大内核池化层来捕获这些信息。

2)和上文提到的空洞卷积论文一样,PSPNet也用空洞卷积来改善Resnet结构,并添加了一个金字塔池化模块。该模块将ResNet的特征图谱连接到并行池化层的上采样输出,其中内核分别覆盖了图像的整个区域、半各区域和小块区域。

3)在ResNet网络的第四阶段(即输入到金字塔池化模块后),除了主分支的损失之外又新增了附加损失,这种思想在其他研究中也被称为中级监督(intermediate supervision)。

8 Resnet

ResNet要解决的问题

深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。 
这里写图片描述 
这里其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。 
但是现在浅层的网络(shallower network)又无法明显提升网络的识别效果了,所以现在要解决的问题就是怎样在加深网络的情况下又解决梯度消失的问题。

ResNet的解决方案

ResNet引入了残差网络结构(residual network),通过残差网络,可以把网络层弄的很深,据说现在达到了1000多层,最终的网络分类的效果也是非常好,残差网络的基本结构如下图所示 


9 大内核

论文: Large Kernel Matters — Improve Semantic Segmentation by Global Convolutional Network
于2017年3月8日提交到Arxiv
主要贡献:
 1) 提出了一种带有大维度卷积核的编码器-解码器结构。

具体解释:
这项研究通过全局卷积网络来提高语义分割的效果。

语义分割不仅需要图像分割,而且需要对分割目标进行分类。在分割结构中不能使用全连接层,这项研究发现可以使用大维度内核来替代。

采用大内核结构的另一个原因是,尽管ResNet等多种深层网络具有很大的感受野,有相关研究发现网络倾向于在一个小得多的区域来获取信息,并提出了有效感受野的概念。

大内核结构计算成本高,且具有很多结构参数。因此,k×k卷积可近似成1×k+k×1和k×1+1×k的两种分布组合。这个模块称为全局卷积网络(Global Convolutional Network, GCN)。

接下来谈结构,ResNet(不带空洞卷积)组成了整个结构的编码器部分,同时GCN网络和反卷积层组成了解码器部分。该结构还使用了一种称作边界细化(Boundary Refinement,BR)的简单残差模块。






1  FCN 相对CNN的优点

1) 2014年,加州大学伯克利分校的Long等人提出的完全卷积网络(Fully Convolutional Networks),推广了原有的CNN结构,在不带有全连接层的情况下能进行密集预测。

这种结构的提出使得分割图谱可以生成任意大小的图像,且与图像块分类方法相比,也提高了处理速度。在后来,几乎所有关于语义分割的最新研究都采用了这种结构。
2)  除了全连接层结构,在分割问题中很难使用CNN网络的另一个问题是存在池化层。池化层不仅能增大上层卷积核的感受野,而且能聚合背景同时丢弃部分位置信息。然而,语义分割方法需对类别图谱进行精确调整,因此需保留池化层中所舍弃的位置信息。

研究者提出了两个不同形式的结构来解决这个问题。
1) 第一种方法是编码器-解码器(encoder-decoder)结构。 在这种方法中,一种典型结构为U-Net网络。
2) 第二种方法使用了称作空洞卷积的结构,且去除了池化层结构。
3) 条件随机场(Conditional Random Field,CRF)方法通常在后期处理中用于改进分割效果。CRF方法是一种基于底层图像像素强度进行“平滑”分割的图模型,在运行时会将像素强度相似的点标记为同一类别。加入条件随机场方法可以提高1~2%的最终评分值。

FCN 论文:Fully Convolutional Networks for Semantic Segmentation
主要贡献 
http://www.dataguru.cn/article-11733-1.html
提出了跳跃连接来改善上采样的粗糙程度。
1)将端到端的卷积网络推广到语义分割中;
2)重新将预训练好的Imagenet网络用于分割问题中;
3)使用反卷积层进行上采样;
4)提出了跳跃连接来改善上采样的粗糙程度。

用卷积运算实现的全连接层结构
1)在将VGG等预训练网络模型的全连接层卷积化之后,由于CNN网络中的池化操作,得到的特征图谱仍需进行上采样。
2)反卷积层在进行上采样时,不是使用简单的双线性插值,而是通过学习实现插值操作。
此网络层也被称为上卷积、完全卷积、转置卷积或是分形卷积。

3 VGG 特点:

 VGGNet:

(1) 牛津大学计算机视觉组(Visual Geometry Group)和GoogleDeepMind公司的研究员一起研发的

(2)探索了卷积神经网络的深度与其性能之间的关系,反复读碟3*3的小型卷积核和2*2的最大池化层,16-19层深的卷积神经网络

(3)取得了ILSVRC2014比赛分类项目的第2 名,定位项目的第1名。

(4)VGG的网络结构:

  • 5段卷积层+3段全连接层
  • 两个3*3的卷积层串联相当于1个5*5的卷积层,即一个像素会跟周围5*5的像素产生关联,感受野大小为5*5
  • 三个3*3的卷积层串联的效果相当于1个7*7的卷积层。
  • 3个串联的3*3的卷积层,比1个7*7的卷积层参数量少,只有后者的(3*3*3)/(7*7)=55%
  • 3个3*3的卷积层比1个7*7的卷积层有更多的非线性变换,前者可以使用三次ReLU激活函数,后者只有一次

(5)VGG训练技巧:

  • 先训练级别A的简单网络,再复用A网络的权重来初始化后面的几个复杂模型,训练收敛的速度更快。
  • 训练时采用multi-scale方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224*224的图片,这样能增加很多数据量,防止过拟合。
  • 预测时,VGG采用Multi-scale的方法,输入图像为多尺度Q,且对于每个Q在最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸Q的结果平均得到最后结果。

(6)VGG结论:

  • LRN层作用不大。 LRN全称为Local Response Normalization,即局部响应归一化层
  • 越深的网络效果越好
  • 1*1的卷积也是很有效的,但是没有3*3的卷积好,大一些的卷积核可以学习更大的空间特征。

SegNet
FCN网络中,通过上卷积层和一些跳跃连接产生了粗糙的分割图,为了提升效果而引入了更多的跳跃连接。

然而,FCN网络仅仅复制了编码器特征,而Segnet网络复制了最大池化指数。

这使得在内存使用上,SegNet比FCN更为高效。

空洞卷积

论文:  Multi-Scale Context Aggregation by Dilated Convolutions
于2015年11月23日提交到arvix

主要贡献:
1)使用了空洞卷积,这是一种可用于密集预测的卷积层;
2)提出在多尺度聚集条件下使用空洞卷积的“背景模块”。

具体解释:
池化操作增大了感受野,有助于实现分类网络。但是池化操作在分割过程中也降低了分辨率。
因此,该论文所提出的空洞卷积层是如此工作的:


 空洞卷积示意图

1)空洞卷积层在不降低空间维度的前提下增大了相应的感受野指数。
2)在接下来将提到的DeepLab中,空洞卷积被称为多孔卷积(atrous convolution)。
3)从预训练好的分类网络中(这里指的是VGG网络)移除最后两个池化层,而用空洞卷积取代了随后的卷积层。
4)特别的是,池化层3和池化层4之间的卷积操作为空洞卷积层2,池化层4之后的卷积操作为空洞卷积层4。

RefineNet

所以,这篇论文提出了相应的编码器-解码器结构,其中编码器是ResNet-101模块,解码器为能融合编码器高分辨率特征和先前RefineNet模块低分辨率特征的RefineNet模块。

RefineNet网络结构

每个RefineNet模块包含一个能通过对较低分辨率特征进行上采样来融合多分辨率特征的组件,以及一个能基于步幅为1及5×5大小的重复池化层来获取背景信息的组件。

这些组件遵循恒等映射的思想,采用了残差连接的设计方式。


7 PSPNet
论文: Pyramid Scene Parsing Network   于2016年12月4日提交到Arxiv
主要贡献:
1)提出了金字塔池化模块来聚合背景信息;
2)使用了附加损失(auxiliary loss)。

具体解释:
1 )全局场景分类很重要,由于它提供了分割类别分布的线索。金字塔池化模块使用大内核池化层来捕获这些信息。

2)和上文提到的空洞卷积论文一样,PSPNet也用空洞卷积来改善Resnet结构,并添加了一个金字塔池化模块。该模块将ResNet的特征图谱连接到并行池化层的上采样输出,其中内核分别覆盖了图像的整个区域、半各区域和小块区域。

3)在ResNet网络的第四阶段(即输入到金字塔池化模块后),除了主分支的损失之外又新增了附加损失,这种思想在其他研究中也被称为中级监督(intermediate supervision)。

8 Resnet

ResNet要解决的问题

深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。 
这里写图片描述 
这里其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。 
但是现在浅层的网络(shallower network)又无法明显提升网络的识别效果了,所以现在要解决的问题就是怎样在加深网络的情况下又解决梯度消失的问题。

ResNet的解决方案

ResNet引入了残差网络结构(residual network),通过残差网络,可以把网络层弄的很深,据说现在达到了1000多层,最终的网络分类的效果也是非常好,残差网络的基本结构如下图所示 


9 大内核

论文: Large Kernel Matters — Improve Semantic Segmentation by Global Convolutional Network
于2017年3月8日提交到Arxiv
主要贡献:
 1) 提出了一种带有大维度卷积核的编码器-解码器结构。

具体解释:
这项研究通过全局卷积网络来提高语义分割的效果。

语义分割不仅需要图像分割,而且需要对分割目标进行分类。在分割结构中不能使用全连接层,这项研究发现可以使用大维度内核来替代。

采用大内核结构的另一个原因是,尽管ResNet等多种深层网络具有很大的感受野,有相关研究发现网络倾向于在一个小得多的区域来获取信息,并提出了有效感受野的概念。

大内核结构计算成本高,且具有很多结构参数。因此,k×k卷积可近似成1×k+k×1和k×1+1×k的两种分布组合。这个模块称为全局卷积网络(Global Convolutional Network, GCN)。

接下来谈结构,ResNet(不带空洞卷积)组成了整个结构的编码器部分,同时GCN网络和反卷积层组成了解码器部分。该结构还使用了一种称作边界细化(Boundary Refinement,BR)的简单残差模块。






猜你喜欢

转载自blog.csdn.net/scutjy2015/article/details/77358172
FCN