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%的最终评分值。
2 FCN 论文:Fully Convolutional Networks for Semantic Segmentation
主要贡献
http://www.dataguru.cn/article-11733-1.html
提出了跳跃连接来改善上采样的粗糙程度。
1)将端到端的卷积网络推广到语义分割中;
2)重新将预训练好的Imagenet网络用于分割问题中;
3)使用反卷积层进行上采样;
4)提出了跳跃连接来改善上采样的粗糙程度。
3 用卷积运算实现的全连接层结构
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的卷积好,大一些的卷积核可以学习更大的空间特征。
4 SegNet
FCN网络中,通过上卷积层和一些跳跃连接产生了粗糙的分割图,为了提升效果而引入了更多的跳跃连接。
然而,FCN网络仅仅复制了编码器特征,而Segnet网络复制了最大池化指数。