语义分割之FCN

一、语义分割之FCN

Fully Convolutional Networks for Semantic Segmentation(语义分割的全卷积网络)

二、FCN算法

1、主要框架
在这里插入图片描述
2、算法详解

网络结构如下。
输入可为任意尺寸图像彩色图像;输出与输入尺寸相同,深度为:20类目标+背景=21
在这里插入图片描述

2.1 全卷积-提取特征

注:虚线上半部分为全卷积网络。(蓝:卷积;绿:max pooling)

这部分由深度学习分类问题中经典网络AlexNet修改而来。只不过,把最后两个全连接层(fc)改成了卷积层。

解释: 全连接层转卷积层:

AlexNet使用了两个尺寸为4096的全连接层[1×4096],最后一个有1000个神经元的全连接层[1×1000]用于计算分类评分。
我们可以将这3个全连接层中的任意一个转化为卷积层:
针对第一个连接区域是[7x7x512]的全连接层,令其滤波器尺寸为F=7,这样输出数据体就为[1x1x4096]了;
针对第二个全连接层,令其滤波器尺寸为F=1,这样输出数据体为[1x1x4096];
对最后一个全连接层也做类似的,令其F=1,最终输出为[1x1x1000];

2.2 逐像素预测

注:虚线下半部分中,分别从卷积网络的不同阶段,以卷积层(蓝色×3)预测深度为21的分类结果。

图1
在这里插入图片描述
图2
在这里插入图片描述
图1经过多次卷积和pooling以后,得到的图像越来越小,分辨率越来越低;
图2采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类

2.3 跳级结构

在这里插入图片描述

  • 如上图所示:对原图进行卷积conv1、pool1后图像缩小为1/2;对图像进行第二次卷积conv2、pool2后图像缩小为1/4;对图像进行第三次卷积conv3、pool3后图像缩小为1/8,此时保留pool3的feature map;对图像进行第四次卷积conv4、pool4后图像缩小为1/16,此时保留pool4的feature map;对图像进行第五次卷积conv5、pool5后图像缩小为1/32,然后把原来CNN操作过程中的全连接变成卷积操作的conv6、conv7,图像的feature map的大小依然为原图的1/32,此时图像不再叫feature map而是叫heat map
  • 其实直接使用前两种结构就已经可以得到结果了,这个上采样是通过反卷积(deconvolution)实现的,对第五层的输出(32倍放大)反卷积到原图大小**(FCN-32s)**。但是得到的结果还上不不够精确,一些细节无法恢复。于是将第四层的输出和第三层的输出也依次反卷积,分别需要16倍 (FCN-16s) 和8倍 (FCN-8s) 上采样,结果过也更精细一些了。这种做法的好处是兼顾了local和global信息。
  • 如果继续仿照FCN作者的步骤,我们可以对pool2,pool1实现同样的方法,可以有FCN-4s,FCN-2s,最后得到end to end的输出。这里作者给出了明确的结论,超过FCN-8s之后,结果并不能继续优化。

2.4 网络loss层

FCN网络的输入batchsize是1,因为分割loss的计算在每一个像素点都一个真值(标签),相当于每一个像素点的都是一个分类任务softmax,一个图像就有对应像素点个样本。所以分割任务的batch是一个图片,将一个图片最后在所有像素点上的分类loss加起来计算一次梯度的更新。

训练

训练过程分为四个阶段,也体现了作者的设计思路,值得研究。

  • 第1阶段
    在这里插入图片描述
    以经典的分类网络为初始化。最后两级是全连接(红色),参数弃去不用。

  • 第2阶段
    在这里插入图片描述
    从特征小图(16164096)预测分割小图(161621),之后直接升采样为大图。
    反卷积(橙色)的步长为32,这个网络称为FCN-32s。

  • 第3阶段
    在这里插入图片描述
    升采样分为两次完成(橙色×2)。
    在第二次升采样前,把第4个pooling层(绿色)的预测结果(蓝色)融合进来。使用跳级结构提升精确性。
    第二次反卷积步长为16,这个网络称为FCN-16s。

  • 第4阶段
    在这里插入图片描述
    升采样分为三次完成(橙色×3)。
    进一步融合了第3个pooling层的预测结果。
    第三次反卷积步长为8,记为FCN-8s。
    在这里插入图片描述
    较浅层的预测结果包含了更多细节信息。比较2,3,4阶段可以看出,跳级结构利用浅层信息辅助逐步升采样,有更精细的结果。

论文创新点

  • 不含全连接层(fc)的全卷积(fully conv)网络。可适应任意尺寸输入。
  • 增大数据尺寸的 反卷积(deconv) 层。能够输出精细的结果。
  • 结合不同深度层结果的跳级(skip)结构。同时确保鲁棒性和精确性。

猜你喜欢

转载自blog.csdn.net/thisiszdy/article/details/89080854