图像分割-语义分割

1.FCN

1.1 CNN与FCN的比较

简单的说,FCN与CNN的区别在于FCN把CNN最后的全连接层换成卷积层,其输出的是一张已经标记好的图,而不是一个概率值。如下两图所示:
(1)在CNN中, 猫的图片输入到AlexNet, 得到一个长为1000的输出向量, 表示输入图像属于每一类的概率, 其中在“tabby cat”这一类统计概率最高, 用来做分类任务。
在这里插入图片描述(2)FCN是对图像进行像素级的分类(也就是每个像素点都进行分类),从而解决了语义级别的图像分割问题。与上面介绍的经典CNN在卷积层使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷基层的特征图(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后奇偶在上采样的特征图进行像素的分类。如下图所示:
在这里插入图片描述总结:
在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,7,7)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。

1.2 三种上采样方法

经过全卷积化的网络后,我们会发现在整个过程中,原图象被进行了32倍的降采样。
在这里插入图片描述但是FCN网络一般是用来对图像进行语义分割的,于是就需要对图像上的各个像素进行分类,这就需要一个上采样将降采样32倍的图像上采样到原图的大小。上采样对于低分辨率的特征图,常常采用上采样的方式将它还原高分辨率,这里陈述上采样的三种方法。

1.2.1 双线性插值上采样

简单来说,插值指利用已知的点来“猜”未知的点,一个分析帖。特点是不需要进行学习,运行速度快,操作简单。
单线性插值(一个方向上)就是知道两个点的值,并将两点连成一条直线,来确定中间的点的值,假设,现在有两点 (x1​,y1​)、(x2​,y2​)连成一条直线 [x1​,x2​]中的点就可以用线上的点表示。双线性插值(两个方向上)是一个三维的坐标系,因此,需要找到4个点来确定中心点坐标,如下图所示的例子:

在这里插入图片描述已知的红色数据点和待插值的绿色数据点。咱们已知函数f在Q1,Q2,Q3,Q4四个点值,咱们想获得未知函数f在点P= (x,y) 的值。
第一步:X方向的线性插值,在Q12,Q22中插入蓝色点R2,Q11,Q21中插入蓝色点R1。
在这里插入图片描述

第二步 :Y方向的线性插值 ,经过第一步计算出的R1与R2在y方向上插值计算出P点。
在这里插入图片描述
在x与y方向上,z值成单调性特性的应用中,此种方法能够作外插运算,便可以求解Q11~Q22所构成的正方形之外的点的值,计算正方形之外的点就是上采样的过程!!!

1.2.2 反卷积上采样

首先要记住把反卷积理解成逆卷积(Deconvolution)比较容易引起误会,把反卷积理解为转置卷积(Transposed Convolution)是一个更为合适的叫法.
(1)外围全补零(Full padding)反卷积
在这里插入图片描述在这里插入图片描述

(2)插零分数步长反卷积
其实上面这种补0的方法事有问题的,你想一下,只在四周补0会导致最边上的信息不太好,那我们把这个信息平均下,在每个像素与像素之间补0,这就是插零分数步长反卷积
在这里插入图片描述在这里插入图片描述

1.2.3 反池化上采样

反池化可以用下图来理解,
(1)在池化时需要记录下池化的位置,形成“池化索引”
(2)反池化时把池化的位置直接还原,其他位置填0。

在这里插入图片描述注意:
反卷积与反池化之间最大的区别在于反卷积过程是有参数要进行学习的。
理论上反卷积可以实现反池化(UnPooling) ,只要卷积核的参数设置的合理。

在这里插入图片描述

1.3 FCN-跳层结构(Skip-layer)

首先为什么要做跳层呢?

我们看到5个卷积层之前已经有了32倍的降采样,而后面的6、7卷积层也是32倍的降采样,然后降采样之后直接通过双线性插值生成32倍,这个直接拿来做优化是有问题的,即直接使用32倍反卷积得到的分割结果粗糙
这样的话就需要引入前面几个卷积层来做辅助,用以保证空间位置上的精确度,边缘区域分割的精确性。

如何实现跳层结构?
使用第4层和第3层输出的反卷积操作(分别需要16倍和8倍的上采样),再把这3个反卷积的结果图像融合,提升了结果的精确度:
• 跳层:Pool4和Pool3后会增加一个1x1卷积层做预测
• 较浅网络的结果精细,较深网络的结果鲁棒
在这里插入图片描述
注意如下图所示:
(1)在最后预测过程中的反卷积层是不用学习的,如1,2,3
(2)但是在融合两层信息的过程中的反卷积是要学习的,如4,5

在这里插入图片描述

1.4 FCN架构

在这里插入图片描述

具体操作:
1、 迁移学习AlexNet卷积层参数
以经典的AlexNet分类网络为初始化进行迁移学习。
最后两级是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值