全卷积网络(FCN)理解

概要

作为计算机视觉领域的三大任务之一(图像分类,目标检测,图像分割),图像分割这些年也获得了长足的发展,它被广泛用于在医学图像和自然图像的分割上,除此之外,图像分割也被用于在道路分割上,这对于自动驾驶的发展具有极其重要的意义。
图像分割到目前为止,大致分为三类:

1.语义分割(Semantic Segmentation)

图像语义分割的意思就是机器自动分割并识别出图像中的内容,如下图(b),能够区分物体和背景。

2.实例分割(Instance Segmentation)

图像实例分割,不仅要分割出图像中的不同类别,而且还要对同一类别的不同个体作出区分。如下图(c),对于人和汽车的不同个体都作出区分。

3.全景分割(Panoptic Segmentation)

Panoptic Segmentation 中文名为全景分割,是由 Facebook 的大神联手推出的结合 instance segmentation 和 semantic segmentation 的新任务。作者发现,instance segmentation 只能够分别物体,但是没有办法对 stuff 进行预测。而传统的 semantic segmentation 不能够区分物体。作者提出了同时对物体进行分割,并且对 stuff 进行分类的新任务,如下图(d)。
在这里插入图片描述
言归正传…回到全卷积网络:
全卷积神经网络(Fully Convolutional Network,FCN)是在2015年由美国加州大学伯克利分校的Jonathan Long等人提出的用于图像语义分割的一种框架。
论文地址:Fully Convolutional Networks for Semantic Segmentation
代码地址:FCN on Github

核心思想

三个keys:
1.卷积化:去掉全连接层,以卷积层代替,可以适应任意尺寸的输入。

简而言之,FCN将CNN中的FC层去掉换以卷积层替代。传统的CNN在预测图像分类时,最后经过以SoftMax输出的是一维的概率值向量,这些概率值分别对应每个预测种类的预测概率,取最大的那个为预测类别。
而,语义分割不同,语义分割所要得到的是像素级别的分割。而FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷基层的特征图(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图进行像素的分类。全卷积网络(FCN)是从抽象的特征中恢复出每个像素所属的类别。即从图像级别的分类进一步延伸到像素级别的分类。
FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。
那这样做有什么优势呢?首先,卷积层表示的是局部的信息,而全连接层则是描绘的是全局信息。用和全连接层相同维度大小的卷积层替换掉全连接层,能够使得卷积网络在一张更大的输入图像上滑动,使得输出图像具有位置信息。

在这里插入图片描述

2.上采样:在网络深处以上采样(反卷积)增大图像尺寸,提高输出精确度。

在论文中FCN使用了上采样。这里用的是反卷积操作,相比下采样是使得图像越来越小,而上采样则是使得图像变大。
例如经过5次卷积(和pooling)以后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,以得到原图一样的大小。这个上采样是通过反卷积(deconvolution)实现的。
在这里插入图片描述

3.dense prediction:采用skip方法结合网络不同层之间的信息,增加模型精确度和鲁棒性。

这种方式在文章中也提到,使用skip方法结合多层信息,如深层次的粗糙信息和低层次的精确信息。因为作者发现对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是Jonathan将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。
这种做法的好处是兼顾了local和global信息。
在这里插入图片描述

整体网络结构

在这里插入图片描述
这篇博文:FCN的学习及理解(Fully Convolutional Networks for Semantic Segmentation)
解释的我觉得很好,所以作为理解,拿来借鉴一下~
整体网络架构分为两部分:虚线上部分和虚线下部分:
虚线上部分表示的是全卷积网络,用来提取图像特征。
全连接层转换为卷积层:在两种变换中,将全连接层转化为卷积层在实际运用中更加有用。假设一个卷积神经网络的输入是 224x224x3 的图像,一系列的卷积层和下采样层将图像数据变为尺寸为 7x7x512 的激活数据体。AlexNet使用了两个尺寸为4096的全连接层,最后一个有1000个神经元的全连接层用于计算分类评分。我们可以将这3个全连接层中的任意一个转化为卷积层:

针对第一个连接区域是[7x7x512]的全连接层,令其滤波器尺寸为F=7,这样输出数据体就为[1x1x4096]了。

针对第二个全连接层,令其滤波器尺寸为F=1,这样输出数据体为[1x1x4096]。

针对最后一个全连接层也做类似的,令其F=1,最终输出为[1x1x1000]。

虚线下部分代表的是图像经过卷积层的不同阶段所产生的的深度为21的预测图像的分类结果。

例如:第一个模块输入16*16*4096,卷积模板尺寸1*1,输出16*16*21。
     相当于对每个像素施加一个全连接层,从4096维特征,预测21类结果。

实验效果

在这里插入图片描述

参考链接:

为什么使用卷积层替代CNN末尾的全连接层

FCN 全卷积网络 Fully Convolutional Networks for Semantic Segmentation

全卷积网络FCN

FCN于反卷积(Deconvolution)、上采样(UpSampling)

FCN的学习及理解(Fully Convolutional Networks for Semantic Segmentation)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值