FCN的网络结构:
FCN将传统卷积网络后面的全连接层换成了卷积层,这样网络输出不再是类别而是heatmap;同时为了解决因为卷积和池化对图像尺寸的影响,提出使用上采样的方式恢复。因为模型网络中所有的层都是卷积层,故称为全卷积网络。全卷积神经网络主要使用了三种技术:卷积化(Convolutional)、上采样(Upsample)、跳跃结构(Skip Layer)
FCN 模型处理过程,通过卷积和反卷积我们基本能定位到目标区域,我们会发现模型前期是通过卷积、池化、非线性激活函数等作用输出了特征权重图像,但是,我们经过反卷积等操作输出的图像实际是很粗糙的,毕竟丢了很多细节。因此使用跳跃结构来填补丢失的细节数据。我们正向过程的卷积、池化等操作都会输出每个层的特征,我们使用反卷积然后和历史中的池化和卷积数据结合,利用它们的数据填补我们缺失的数据。
PSPNET的网络结构:
FCN的缺点是分割结果不够精细、没有考虑上下文,再次基础上提出了PSPNET。PSPNET通过利用不同大小的池化来增大感受野,从而考虑上下文。多尺度特征融合和基于特征进行预测的特征使PSPNET的效果非常好。
PSPNET是为了解决复杂场景中语义分割问题而提出的一种网络结构。PSPNet通过引入金字塔池化模块(Pyramid Pooling Module, PPM)来捕获多尺度的上下文信息。PSPNet的网络结构同样包括编码器和解码器两部分。在编码器部分,PSPNet采用了类似于ResNet的深度卷积神经网络作为特征提取器。PPM模块被插入到编码器和解码器之间,用于捕获不同尺度的上下文信息。PPM模块通过对特征图进行不同尺度的池化操作,得到一系列不同尺度的特征图,然后将这些特征图进行上采样并拼接在一起,形成一个包含多尺度信息的特征图。解码器部分则负责将PPM模块输出的特征图恢复到原始图像的大小,并进行最终的语义分割。
Deeplab-v3的网络结构:
Deeplab网络是一个专门用来处理语义分割的模型,该系列一共有三篇文章,分别对应Deeplabv1, Deeplabv2和Deeplabv3。因为之前的语义分割网络存在池化导致丢失了信息,并且没有利用标签之间的概率关系,所以Deeplab系列使用空洞卷积来避免池化带来的信息损失。
相于DeepLab v2改进:
1.引入了Multi-Grid策略,即多次使用空洞卷积核而不像在v1和v2中仅使用一次空洞卷积。
在之前的DeepLab模型中虽然一直在使用膨胀卷积,但设置的膨胀系数都比较随意,因此引入Multi-Grid参数使效果更好。
2.优化ASPP的结构,包括加入BN等。
Deeplabv3以前的ASPP以不同的rate能够有效地捕捉多尺度信息,但是随着Block的深入,空洞卷积的rate的变大,就会导致卷积核退化为1 * 1,因而捕获不到全局信息。为了解决由于rate增大带来的问题,优化ASPP,添加了Image-Level 图像级别的特征。