FCN网络详解

参考视频:FCN网络结构详解(语义分割)_哔哩哔哩_bilibili

FCN是首个端对端的针对像素级预测的全卷积网络

这是作者提出的网络中的输出对比图,可以看到当FCN-8s效果接近真实分割图。

普通卷积分类网络与FCN对比

在这个模型提出之前,我们来看一下普通的卷积分类网络模型结构如下图。

图片中的数字表示的是输出图片的通道数,网络通过卷积下采样得到图片特征,从4096那层开始为全连接层,21是因为使用的PASCAL VOC数据集有20个种类,加上背景一共21个分类,再对这个输出进行上采样,得到与原图相同大小的图片,对它进行softmax处理,输出每一个像素的最大概率分类。

这个网络在当时有一个弊端就是输入图片大小必须相同。有人就想用卷积层去替代后面的三层全连接层,FCN也就是这样产生的。

FCN

如图,将全连接层替换为卷积层后,实际上最后一层4096那一层输出特征会是1000通道的二维图片,高和宽大于1,这样对于每一个通道的数据实际就是2D的数据,这样就能对其可视化了

为了说明白是如何替换成卷积层的,我们先来看4096通道前面那部分模型结构,也就是VGG16模型,如下图:这里的VGG16指D的配置

分析:从224*224到7*7图片下采样了32倍

全连接层如何转化为卷积层

第一个全连接层转化为卷积层

为了方便连接我们忽略偏执:

如图上面为全连接层,有4096个结点,当上一层展平时得到7*7*512=25088个参数

下面为卷积层,使用的是7*7*4096的卷积核,这样得到1*1*4096的输出,对于一个卷积,参数也为25088

因为参数相同,所以我们可以对上面全连接层的参数进行reshape处理,这样就能构建卷积层,同时因为这样,卷积层处理过的特征相比全连接层保留了高和宽

(注:图片中的padding可调是指可以对7*7*512输出图片进行处理,一般这个padding为3是为了防止全连接层之前的输出为1*1,这样padding后也能继续处理了。)

接下来的第二个第三个全连接层的处理一样。

FCN-32s、FCN-16s、FCN-8s模型详细讲解

我们先看一张原论文中的一张表如下:

从表中可以看到从FCN-32s到FCN-8s模型,准确率是逐渐提高的。

下图为一张FCN-32s、FCN-16s、FCN-8s的模型整体结构图

图中的FCN-32s其实是对输出的图片进行上采样32倍得到的,因此成为FCN-32s,其他同理也是上采样16倍和上采样8倍。

FCN-32s

分析:图中VGG16Backbone指7 * 7 * 512那一层包括那一层之前的网络结构,经过前面的网络我们得到的是下采样了32倍的特征图。FC6为全连接层改成的第一个卷积层,这一层会padding = 3,所以经过这层图像大小还是h/32,w/32,又采用了4096个卷积所以又4096个通道,然后经过1 * 1的卷积层,输出特征图大小不变,再输入一层大小为1*1卷积核为要分类个数大小的卷积层,接下来用转置卷积上采样32倍,这里括号里面有双线性插值(双线性插值_太阳花的小绿豆的博客-CSDN博客_双线性插值)来初始化转置卷积。

FCN-16s

分析:前面基本和FCN-32s一样,只是上面输出时先对其上采样2倍得到[h/16,w/16,num_cls]大小的特征图,下面Maxpool4(这是VGG16 14 * 14 *512那一层的输入特征图)的输出经过一个1*1num_cls大小的卷积层,得到[h/16,w/16, num_cls]大小的特征图,最后将上面和下面的输出相加进行16的上采样得到最后的heatmap。

FCN-8s

分析:前面基本与FCN-8s和FCN-16s基本相同,基本类似。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值