图像分割FCN全卷积神经网络

FCN全卷积神经网络是图像分割的基础网络

FCN实现了端到端的网络,输入mxm图像,输出为mxmxc的图像,其中c代表种类。

1思想概述

FCN叫做全卷积神经网络,顾名思义所有曾都是卷积层!也就是抛掉了全连接层,这是第一个改变;再者卷积神经网络卷到最后特征图尺寸越来越少,分辨率比较小,不适合我们做图像分割,好,这里引入一个上采样的做法,卷积完之后再上采样到大尺寸图;网络又考虑层数不断叠加后原图的信息丢失的比较多,那么我们这里引入一个跳层结构,把前面的第四层、第三层特征引过来叠加一下。有种resnet思想。

2FCN网络图

我们再看一下下面这个图网络的主题,从左到右卷积、池化一顿操作猛如虎(蓝色卷积,绿色池化),到了最右边16*16*4096,全连接层丢了,先给他弄到21通道再上采样到34*34*21然后合并featuremap4后再上采样,最后经过一系列得到最后500*500*21的特征图。之后怎么做?很多人没有说好,我们平时做分类是得到全连接的1*21这样对他进行softmax,21类,每类有个分数存在1*21的向量中,好我们这500*500*21是像素级别的分类,总共有500*500个像素,每个像素属于21个类别的分别得分是啥,这样用softmax计算损失。所以我们看那些标注图是每个像素有个颜色代表它所属于的类别。端到端!伟大!

端到端学习是一种解决问题的思路,与之对应的是多步骤解决问题,也就是将一个问题拆分为多个步骤分步解决,而端到端是由输入端的数据直接得到输出端的结果。
在这里插入图片描述

那么接下来就要解决细节问题,上采样怎么实现?怎么合并数据?

3上采样

对于低分辨率的特征图,我们常常采用上采样的方式将它还原高分辨率,这里陈述三种方法。

3.1双线性插值上采样

首先线形插值是什么?线形插值就是知道两个点的值,连一条直线,来确定中间的点的值,具体怎么做,我们找(x1,y1)、(x2,y2)连成一条直线,[x1,x2]中的点就可以用线上的点表示。
双线性插值是一个三维的坐标系,我们找到四个点来确定中心点坐标,如下图为网上找的一个例子。
在这里插入图片描述

这种方法计算简单,无需训练。

3.2反卷积上采样

3.2.1 怎样上采样
普通的卷积操作,会使得分辨率降低,如下图3*3的卷积核去卷积4*4得到2*2的输出。上采样的过程也是卷积,那么怎么会得到分辨率提高呢?之前我们看卷积时有个保持输出与输入同分辨率的方法就是周围补0,嗯嗯。那么你是否灵机一动,那要是让分辨率提高呢?是不是再多补一些0,对的看看图2。

在这里插入图片描述
图1 常规卷积操作
在这里插入图片描述
图2 上采样操作(四周补0)

其实呢作者在这又换了个方法,你想一下,只在四周补0会导致最边上的信息不太好,那我们把这个信息平均下,在每个像素与像素之间补0呢,看图3就是这么操作的。

在这里插入图片描述
图3 反卷积插零

3.2.2 反卷积补多少零?
然后我们看一下参数的计算,先看一下四周补0的情况。下图给出了发卷积的参数,我们要保持转置卷积的输出核卷积的输入相同也就是i=o’,转置卷积就是反卷积。这里主要算出p为多少就是补多少个0,看我图5给出了计算。
在这里插入图片描述
图4 四周补零反卷积
在这里插入图片描述
图5 四周补0计算

再看一下反卷积间隙补0的计算如图6所示。其中插零输入是先往里面插入i‘-1个0。再计算p’

在这里插入图片描述
图6 间隙补0反卷积
在这里插入图片描述
图7 间隙补零反卷积计算

3.3反池化上采样

反池化可以用下图来理解,再池化时需要记录下池化的位置,反池化时把池化的位置直接还原,其他位置填0。
在这里插入图片描述

3.4 小结

三种方法各有优缺,双线性插值方法实现简单,无需训练;反卷积上采样需要训练,但能更好的还原特征图;

4跳层结构Skip-Layer

跳层结构是啥呢,就是把第四层的featuremap考虑进来和最后一层得到的featuremap上采样合并信息再进行上采样。这个结构叫做跳层。那么实际你可以再结合第三层featuremap这样上次样倍数就需要提高,考虑的源信息就越多。

5再看FCN网络

之后我们再看FCN这个网络,如果你只考虑最后一层信息,进行上采样,得到下图,这是在ALEXnet上做了修改,把最后的全连接层去掉改为卷积操作,最后卷出来16*16*21的featuremap进行了一个步长为32的双线性插值上采样得到500*500*21的图,可想而知这家伙肯定差太多了,中间这么多点都是插值插出来的!
在这里插入图片描述
继续,改一下,这里把那个上采样改为2倍的反卷积采样,上采样到34*34*21,然后考虑第四层featuremap对他进行1*1*21卷积得到34*34*21的图,之后再合并两个信息,直接对应元素相加,得到34*34*21然后进行步长16的上采样。在这之后考虑还不行就在考虑第三个特征层加进去!

在这里插入图片描述

6实验结果

实验分别对FCN32、16、8的结构做了实验,可以看出考虑浅层的信息越多,实验效果越好!
在这里插入图片描述

7小结

FCN给我们提供了一个上采样的思路来解决图像分辨率低的问题,以及跳层结构来考虑浅层网络的特征来考虑多图像信息。

参考文献

[1]FCN中反卷积、上采样、双线性插值之间的关系
https://blog.csdn.net/u011771047/article/details/72872742/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值