如何从论文入手,实战搭建分割FCN网络?

摘要:作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 FCN论文地址:Fully Convolutional Networks for Semantic Segmentation 一、什么是FCN? FCN
作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 FCN论文地址:Fully Convolutional Networks for Semantic Segmentation 一、什么是FCN? FCN即全卷积网络(Fully Convolutional Networks),由Jonathan Long、Evan Shelhamer和Trevor Darrell于2015年在CVPR会议上发表的论文《Fully Convolutional Networks for Semantic Segmentation》中首次提出,是深度学习首次真正意义上用于语义分割任务的端到端方法。FCN的提出具有里程碑意义,奠定了现代语义分割网络架构的基础。传统的卷积神经网络(如AlexNet、VGG、GoogLeNet)大多用于图像分类任务,其最终输出是一个固定维度的类别概率向量,对应整张图像的分类结果。然而,语义分割任务需要为图像中的每一个像素赋予语义标签,也就是像素级的密集预测(dense prediction),这与分类任务在输出形式上存在根本不同。为了让CNN能够完成这一类任务,FCN在结构上提出了两个关键的创新: 将分类网络全连接层改为卷积层:传统CNN中的全连接层要求输入为固定尺寸(如224×224),这是因为全连接层将所有空间信息扁平化,破坏了图像的空间结构。而FCN的做法是:将全连接层视为特定感受野大小的1×1卷积操作。换句话说:分类网络原来的fc6和fc7层可以被替换为两个大核的卷积层而输出仍然是特征图,但保持了空间维度,只是经过多次下采样后尺寸较小同时模型不再限制输入图像尺寸,可以接受任意大小的输入图像,得到相应尺寸的输出特征图(称为score map或heatmap)。这种转换后的网络就称为“Fully Convolutional”——完全由卷积、池化、激活等空间保留操作构成,没有任何破坏空间结构的层(如全连接、flatten等)。 使用上采样还原图像分辨率:由于卷积神经网络中通常包含多个步长大于1的池化操作(如最大池化),在逐层处理过程中图像的空间分辨率会不断降低。例如,在经典的VGG16结构中,最终输出的特征图相较于输入图像被下采样了32倍(例如输入为512×512,则输出仅为16×16)。为了将这类低分辨率的类别图还原为与原图相同大小的每像素预测结果,FCN引入了反卷积层(Deconvolution Layer),也称为转置卷积(Transposed Convolution),实现可学习的上采样操作。该过程可先以双线性插值进行初始化,再通过训练进一步优化,使模型能够生成更加细致、准确的分割图。同时,为了弥补高层特征图中空间信息的缺失,FCN设计了跳跃连接(Skip Connections),将低层次(高分辨率)特征与高层次(高语义)特征进行融合,有效提升边缘细节的预测能力与目标定位精度,并在此基础上提出了FCN-16s与FCN-8s等更精细的改进版本。 二、FCN网络结构详解 FCN 网络的最大特点是:完全由卷积(convolution)、池化(pooling)、激活函数(ReLU)和上采样(反卷积)组成,不含全连接层。它是从图像分类模型(如VGG、AlexNet)中“转化”而来,并重新设计用于像素级的语义分割任务。下面我们以论文中的 FCN-VGG16 为例,逐步分析其结构演变过程: 2.1 从分类网络到全卷积网络(Fully Convolutional) FCN网络结构主要分为两个部分:全卷积部分和反卷积(上采样)部分。其中,全卷积部分由传统的图像分类网络(如 VGG16、ResNet 等)构成,用于逐层提取图像的语义特征;反卷积部分则负责将这些压缩后的语义特征图上采样还原为与输入图像相同大小的语义分割图。最终输出的每个像素点,代表它所属类别的概率分布。FCN的最大特点是打破了传统CNN只能接受固定尺寸输入的限制。通过移除全连接层(Fully Connected)并替换为等效的卷积操作,FCN能够接受任意尺寸的输入图像,并保持卷积神经网络的空间信息结构。 以经典的 VGG16 网络为例,其原始设计目标是用于图像分类任务,即判断整张图像属于哪一个类别。它的结构可以分为两个部分: 特征提取部分:由 13个卷积层(conv) 和 5个最大池化层(max pooling) 组成,用于逐层提取图像的空间和语义特征。 分类决策部分:由 3个全连接层(fc6、fc7、fc8) 组成,将前面提取到的高层特征压缩为一个固定维度的向量,最终输出图像所属的类别。
阅读全文