趋近智
标准卷积神经网络 (neural network) (CNN),特别是那些为图像分类任务设计的网络,例如VGG或ResNet,通常以一个或多个全连接层结束。这些层将卷积滤波器学习到的空间信息汇聚成一个固定大小的向量 (vector),适用于为整个输入图像预测单一类别标签。然而,这种汇聚过程丢弃了分割任务所需的精确空间信息,因为分割要求对每个像素进行预测。如果将最后一个卷积层的特征图展平,就会丢失其二维结构。
由Long、Shelhamer和Darrell提出的全卷积网络(FCNs)提供了一种巧妙的办法。其基本思路是将分类网络中的全连接层替换为等效的卷积层。例如,一个作用于特征图(在VGG的最终分类层之前很常见)的全连接层,可以看作是对该特征图应用一个卷积核的卷积操作,为每个滤波器(类别)生成一个的输出图。通过使用卷积代替全连接层,FCNs在整个网络中保持了空间尺寸,使其能够输出与输入图像空间布局相对应的热图或密集预测图。
FCNs通常采用编码器-解码器结构:
基本编码器-解码器结构的一个重要难题是,深度、低分辨率的特征图虽然捕获了语义信息,但却缺少在池化过程中丢失的精确位置信息。仅对这些粗糙的图进行上采样,通常会导致分割边界模糊或定义不清。
FCNs通过加入跳跃连接来解决这个问题。
这些连接将编码器中较早、高分辨率层的特征图直接连接到解码器中相应的层。解码器随后将来自深层网络的粗粒度语义信息与来自浅层网络的精细空间细节结合起来。
例如,深层编码器层的输出可能会被上采样2倍。这个上采样后的图会与来自具有相同空间尺寸的早期编码器层的特征图进行逐元素相加。这个组合后的图随后会进一步上采样,并可能与更早层的特征结合。
简化的FCN架构,展示了编码器如何降低分辨率,解码器如何通过上采样提高分辨率,以及跳跃连接如何结合不同阶段的特征。N表示分割类别的数量。
最初的FCN论文根据最终预测层的步幅和所使用的跳跃连接数量提出了几种变体:
每个后续变体(32s -> 16s -> 8s)都从更早的层引入了更精细的细节,使得分割边界逐渐变得更清晰、更准确。
FCNs通常使用像素级损失函数 (loss function)进行端到端训练。
最常见的选择是独立计算每个像素的平均交叉熵损失。
对于单个像素,损失为,其中如果像素的真实类别是,则为1,否则为0;是预测的像素属于类别的概率(通常在softmax激活后)。图像的总损失是所有像素的平均值。
FCNs在深度学习 (deep learning)的语义分割方面取得了重大进展。它们表明卷积网络可以进行端到端训练以完成密集预测任务,并有效使用预训练 (pre-training)的分类网络。它们还提出了将全连接层转换为卷积层以及使用跳跃连接来合并多层特征的有效思路。
然而,FCNs仍然存在局限性:
这些局限促成了后续架构的发展,例如U-Net(它通过更广泛的跳跃连接改进了对称的编码器-解码器结构)和DeepLab(它引入了空洞卷积以不同方式处理空间分辨率),以及实例分割方法如Mask R-CNN,我们将在本章后面部分进行讨论。尽管如此,理解FCN对于掌握现代图像分割网络的核心原理来说非常重要。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•