机器学习21:全卷积神经网络FCN(整理)
看了很多关于全卷积神经网络的文章和博客,首先放上三篇我认为最有帮助以及适合入门的文章图像语义分割入门+FCN/U-Net网络解析,FCN学习:Semantic Segmentation以及10分钟看懂全卷积神经网络( FCN ):语义分割深度模型先驱。在学习过程中因为对全卷积神经网络中的反卷积算法理解的不够透彻,因此对反卷积算法单独整理为一篇博客机器学习17:反卷积算法。
这篇博客大多整理自前三篇文章,关于反卷积算法的原理和实现,可以参考后一篇论文。
1.CNN 与 FCN概述:
(1)CNN概述:
1)CNN网络结构概述:
CNN在图像分类方面取得了巨大的成就。通常CNN网络有卷积层提取图像特征,在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。
CNN的强大之处在于它的多层结构能自动学习特征,并且可以学习到多个层次的特征:
a.较浅的卷积层感知域较小,学习到一些局部区域的特征;
b.较深的卷积层具有较大的感知域,能够学习到更加抽象一些的特征。
这些抽象特征对物体的大小、位置和方向等敏感性更低,从而有助于识别性能的提高。下图CNN分类网络的示意图:

这些抽象的特征对分类很有帮助,可以很好地判断出一幅图像中包含什么类别的物体,但是因为丢失了一些物体的细节,不能很好地给出物体的具体轮廓、指出每个像素具体属于哪个物体,因此做到精确的分割就很有难度。
以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都期望得到整个输入图像的一个概率的数值描述,用来表示输入图像属于每一类的概率(softmax归一化)。比如下图中的猫, 输入AlexNet, 得到一个长为1000的输出向量表示输入图像属于每一类的概率, 其中在“tabby cat”这一类统计概率最高。

2)CNN网络结构的缺点:
传统的基于CNN的分割方法为了对一个像素分类,使用该像素周围的一个图像块作为CNN的输入用于训练和预测。这种方法有几个缺点:
a.存储开销很大。不断滑动窗口给CNN进行判别分类,因此则所需的存储空间根据滑动窗口的次数和大小急剧上升。
b.计算效率低下。针对互有重叠的像素块逐个计算卷积使得计算有很大程度上的重复。
c.像素块大小的限制了感知区域的大小。通常像素块只能提取一些局部的特征,从而导致分类的性能受到限

本文深入解析全卷积神经网络(Fully Convolutional Networks, FCN)在图像语义分割中的应用,对比CNN,阐述FCN如何解决像素级分类问题,通过卷积化、上采样及跳跃结构提升分割精度。
最低0.47元/天 解锁文章
2677

被折叠的 条评论
为什么被折叠?



