CV实践--语义分割3

FCN

FCN原理及结构

FCN 首先将一幅 RGB 图像输入到卷积神经网络后,经过多次卷积以及池化过程得到一系列的特征图,然后利用反卷积层对最后一个卷积层得到的特征图进行上采样,使得上采样后特征图与原图像的大小一样,从而实现对特征图上的每个像素值进行预测的同时保留其在原图像中的空间位置信息,最后对上采样特征图进行逐像素分类,逐个像素计算 softmax 分类损失。

在这里插入图片描述
图中,image 是原图像,conv1,conv2…,conv5 为卷积操作,pool1,pool2,…pool5 为 pool 操作(pool 就是使得图片变为原图的 1/2),注意 con6-7 是最后的卷积层,最右边一列是 upsample 后的 end to end 结果。必须说明的是图中 nx 是指对应的特征图上采样 n 倍(即变大 n 倍),并不是指有 n 个特征图,如32x upsampled 中的 32x 是图像只变大 32 倍,不是有 32 个上采样图像,又如 2x conv7 是指 conv7的特征图变大 2 倍。

  • FCN-32s 过程
    如图,conv7对应的特征图大小为1,经过32x unsampled prediction图片变回32×32。作者在此处增加一个卷积层,卷积后图像大小为输入图像的32倍。简单假设军机和大小也为32,这样就是需要通过反馈训练 32x32 个权重变量即可让图像实现 end to end,完成了一个 32s 的 upsample。
    事实上在源码中卷积核的大小为64,同时没有偏置 bias。还有一点就是 FCN 论文中最后结果都是 21Œ*,这里的 21 是指 FCN 使用的数据集分类,总共有 21 类(20类+1类背景)。
  • FCN-16s 过程
    作者现在conv7进行一个2x conv7操作,将特征图大小变为conv7 的2倍。此时,2x conv7与pool4大小一致,作者提出对pool4与2x conv7做一个fuse操作(求和/拼接)。对fuse结果进行16x upsamplede prediction,卷积后图像大小为输入图的16倍,图像大小最终也变为原图大小。由此可知,FCN中的U盘sample实际是通过增加卷积层通过bp反馈的方法训练卷积层的方法实现的,此时的卷积层作用可看作是pool的逆过程。
  • FCN-8s 过程
    过程与前述类似。实验表明 FCN-8s 优于 FCN-16s,FCN-32s,超过 FCN-8s 之后,结果并不能继续优化。
  • 总结
    在 upsample 最后加上 softmax,就可以对不同类别的大小概率进行估计,实现 end to end。最后输出的图是一个概率估计,对应像素点的值越大,其像素为该类的结果也越大。FCN 的核心贡献在于提出使用卷积层通过学习让图片实现 end to end 分类
  • 缺点:
    1. 使用了较浅层的特征,在fuse操作加上层pool特征值会导致高维特征不能很好的得以使用
    2. 使用上层pool特征值,导致FCN对图像大小有所要求

训练过程

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

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

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

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

SegNet

Segnet 是用于进行像素级别图像分割的全卷积网络,分割的核心组件是一个 encoder 网络,及其相对
应的 decoder 网络,后接一个象素级别的分类网络。

  • encoder网络:
    其结构与 VGG16 网络的前 13 层卷积层的结构相似(不用全连接的层)。其作用是将由 encoder得到的低分辨率的 feature maps 进行映射,得到与输入图像 featuremap 相同的分辨率,进而进行像素级别的分类

  • Segnet 的亮点:
    decoder 进行上采样的方式,直接利用与之对应的 encoder 阶段中进行 max-pooling时的 polling index 进行非线性上采样,这样做的好处是上采样阶段就不需要进行学习。上采样后得到的feature maps 是非常稀疏的,因此,需要进一步选择合适的卷积核进行卷积得到 dense featuremaps 。
    在这里插入图片描述

  • SegNet 的思路和 FCN 十分相似,只是 Encoder,Decoder(Unsampling)使用的技术不一样。每个编码器层都对应一个解码器层,最终解码器的输出被送入 soft-max 分类器以独立的为每个像素产生类别概率。

Unet

U-net 对称语义分割模型,该网络模型主要由一个收缩路径和一个对称扩张路径组成,收缩路径用来
获得上下文信息,对称扩张路径用来精确定位分割边界。U-net 使用图像切块进行训练,所以训练数据量
远远大于训练图像的数量,这使得网络在少量样本的情况下也能获得不变性和鲁棒性。
在这里插入图片描述

  • Encoder:左半部分,由两个 3x3 的卷积层(RELU)+2x2 的 max pooling 层(stride=2)反复组成,每经过一次下采样,通道数翻倍;
  • Decoder:右半部分,由一个 2x2 的上采样卷积层(RELU)+Concatenation(crop 对应的 Encoder层的输出 feature map 然后与 Decoder 层的上采样结果相加)+2 个 3x3 的卷积层(RELU)反复构成;
  • 最后一层通过一个 1x1 卷积将通道数变成期望的类别数。

DeepLab

基于全卷积对称语义分割模型得到的分割结果比较粗糙,忽略了像素与像素之间的空间一致性关系。于是 Google
提出了一种新的扩张卷积语义分割模型,考虑了像素与像素之间的空间一致性关系,可以在不增加数量的情况下增加感受野。

在这里插入图片描述

  • Deeplabv1 是由深度卷积网路和概率图模型级联而成的语义分割模型,由于深度卷积网路在重复最大池化和下采样的过程中会丢失很多的细节信息,所以采用扩张卷积算法增加感受野以获得更多上下文信息。考虑到深度卷积网路在图像标记任务中的空间不敏感性限制了它的定位精度,采用了完全连接条件随机场(Conditional Random Field,CRF)来提高模型捕获细节的能力。
  • Deeplabv2 予以分割模型增加了 ASPP(Atrous spatial pyramid pooling)结构,利用多个不同采样率的扩张卷积提取特征,再将特征融合以捕获不同大小的上下文信息。
  • Deeplabv3 语义分割模型,在 ASPP 中加入了全局平均池化,同时在平行扩张卷积后添加批量归一化,有效地捕获了全局语义信息。
  • DeepLabV3+ 语义分割模型在 Deeplabv3 的基础上增加了编-解码模块和 Xception 主干网路,增加编解码模块主要是为了恢复原始的像素信息,使得分割的细节信息能够更好的保留,同时编码丰富的上下文信息。增加 Xception 主干网络是为了采用深度卷积进一步提高算法的精度和速度。在inception 结构中,先对输入进行 11 卷积,之后将通道分组,分别使用不同的 33 卷积提取特征,最后将各组结果串联在一起作为输出。

RefineNet

RefineNet 采用了通过细化中间激活映射并分层地将其链接到结合多尺度激活,同时防止锐度损失。网络由独立的 RefineNet 模块组成,每个模块对应于 ResNet。

在这里插入图片描述

  • 每个 RefineNet 模块由三个主要模块组成,即剩余卷积单元(RCU)多分辨率融合(MRF)链剩余池(CRP)。RCU 块由一个自适应块组成卷积集,对于分割问题微调预训练的 ResNet 权重。MRF 层融合不同的激活物使用卷积上采样层来创建更高的分辨率地图。最后,在 CRP 层池中使用多种大小的内核用于从较大的图像区域捕获背景上下文。

PSPNet

金字塔场景稀疏网络语义分割模型(Pyramid Scene Parsing Network,PSP)首先结合预训练网络ResNet 和扩张网络来提取图像的特征,得到原图像 1/8 大小的特征图,然后,采用金字塔池化模块将特征图**同时通过四个并行的池化层得到四个不同大小的输出,将四个不同大小的输出分别进行上采样,**还原到原特征图大小,最后与之前的特征图进行连接后经过卷积层得到最后的预测分割图像。

在这里插入图片描述

基于全卷积的 GAN 语义分割模型

利用对抗训练方法训练语义分割模型,将传统的多类交叉熵损失与对抗网络相结合,首先对对抗网络进行预训练,然后使用对抗性损失来微调分割网络,如下图所示。左边的分割网络将 RGB 图像作为输入,并产生每个像素的类别预测。右边的对抗网络将标签图作为输入并生成类标签(1 代表真实标注,0 代表合成标签)。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值