AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • 大模型基础

    • 语言模型基础

      • 概述
      • 基于统计方法的语言模型
      • 基于神经网络的语言模型
      • 语言模型的采样方法
      • 语言模型的评测
    • 大语言模型架构

      • 概述
      • 主流模型架构
      • Encoder-only
      • Encoder-Decoder
      • Decoder-only
      • 非Transformer 架构
    • Prompt工程

      • 工程简介
      • 上下文学习
      • 思维链
      • 技巧
    • 参数高效微调

      • 概述
      • 参数附加方法
      • 参数选择方法
      • 低秩适配方法
      • 实践与应用
    • 模型编辑

      • 简介
      • 方法
      • 附加参数法
      • 定位编辑法
    • RAG

      • 基础
      • 架构
      • 知识检索
      • 生成增强
  • 动手学深度学习

    • 深度学习基础

      • 引言
      • 数据操作
      • 数据预处理
      • 数学知识(线代、矩阵计算、求导)
      • 线性回归
      • 基础优化方法
      • Softmax回归
      • 感知机
      • 模型选择
      • 过拟合和欠拟合
      • 环境和分布偏移
      • 权重衰减
      • Dropout
      • 数值稳定性
    • 卷积神经网络

      • 模型基本操作
      • 从全连接层到卷积
      • 填充和步长
      • 多个输入和输出通道
      • 池化层
      • LeNet
      • AlexNet
      • VGG
      • NiN网络
      • GoogleNet
      • 批量归一化
      • ResNet
    • 计算机视觉

      • 图像增广
      • 微调
      • 目标检测
      • 锚框
      • 区域卷积神经网络
      • 单发多框检测
      • 一次看完
      • 语义分割
      • 转置卷积
      • 全连接卷积神经网络
      • 样式迁移
    • 循环神经网络

      • 序列模型
      • 语言模型
      • 循环神经网络
      • 序列到序列学习
      • 搜索策略
    • 注意力机制

      • 优化算法

全连接卷积神经网络

参考文献

  • 一文读懂语义分割与实例分割

  • 图像语义分割入门

背景与动机

在 FCN 提出之前(2014 年以前),主流的卷积神经网络(如 AlexNet、VGG)主要用于图像分类任务。这类网络通常包含:

  • 多个卷积层 + 池化层(用于提取特征)
  • 最后接若干全连接层(fully connected layers)进行分类。

这类网络存在的问题:

  • 固定尺寸输入:为了匹配全连接层的权重矩阵,传统 CNN 通常要求输入图像被缩放到固定尺寸(如 224x224)。这会丢失细节信息。
  • 输出单一:网络的最终输出是一个类别标签向量(如“猫”、“狗”),丢失了所有的空间信息。我们只知道“是什么”,但不知道“在哪里”。
  • 不适用于密集预测任务:对于需要逐像素预测的任务(如语义分割、目标检测),传统 CNN 的结构天然不匹配,即无法提供像素级预测。

传统卷积神经网络的全连接层如下:

image-20260320062529100

而许多计算机视觉任务(如语义分割)需要对每个像素进行分类,这就要求网络能输出与输入图像空间尺寸对应的密集预测图(dense prediction map)。

FCN 的核心思想:将传统 CNN 中的全连接层替换为卷积层,使整个网络完全由卷积操作构成,从而实现任意尺寸输入 → 像素级输出。

FCN把后面几个全连接都换成卷积,这样就可以获得一张2维的feature map,后接softmax获得每个像素点的分类信息,从而解决了分割问题,如图

image-20260320063156025

网络结构

整个FCN网络基本原理如图所示:

  1. image经过多个conv和 + 一个max pooling变为pool1 feature,宽高变为1/2
  2. pool1 feature再经过多个conv + 一个max pooling变为pool2 feature,宽高变为1/4
  3. pool2 feature再经过多个conv + 一个max pooling变为pool3 feature,宽高变为1/8
  4. ......
  5. 直到pool5 feature,宽高变为1/32。

image-20260320063307501

那么:

  1. 对于FCN-32s,直接对pool5 feature进行32倍上采样获得32 x upsampled feature,再对32 x upsampled feature每个点做softmax prediction获得32x upsampled feature prediction(即分割图)。
  2. 对于FCN-16s,首先对pool4 feature进行2倍上采样获得2 x upsampled feature,再把pool4 feature和2 x upsampled feature逐点相加,然后对相加的feature进行16倍上采样,并softmax prediction,获得16x upsampled feature prediction。
  3. 对于FCN-8s,首先进行pool3 + 2x upsampled feature逐点相加,然后又进行pool3 +2 x upsampled逐点相加,即进行更多次特征融合。具体过程与16s类似,不再赘述。

作者在原文种给出3种网络结果对比,明显可以看出效果:FCN-32s < FCN-16s < FCN-8s,即使用多层feature融合有利于提高分割准确性。

image-20260320063702249

上采样

上采样(upsampling)一般包括2种方式:

  1. Resize,如双线性插值直接缩放,类似于图像缩放;
  2. Deconvolution,也叫Transposed Convolution,转置卷积。

对于一般卷积,输入蓝色4x4矩阵,卷积核大小3x3。当设置卷积参数pad=0,stride=1时,卷积输出绿色2x2矩阵,如图:

image-20260320064107627

而对于转置卷积,相当于把普通卷积反过来,输入蓝色2x2矩阵(周围填0变成6x6),卷积核大小还是3x3。当设置反卷积参数pad=0,stride=1时输出绿色4x4矩阵,如图:

image-20260320064322246

传统的网络是subsampling的,对应的输出尺寸会降低;upsampling的意义在于将小尺寸的高维度feature map恢复回去,以便做pixelwise prediction,获得每个点的分类信息。

image-20260320064500867

可以看到经过上采样后恢复了较大的pixelwise feature map。这其实相当于一个Encode-Decode的过程。

总结

CNN图像语义分割也就基本上是这个套路:

  1. 下采样+上采样:Convlution + Deconvlution/Resize;
  2. 多尺度特征融合:特征逐点相加/特征channel维度拼接;
  3. 获得像素级别的segement map:对每一个像素点进行判断类别。

即使是更复杂的DeepLab v3+依然也是这个基本套路:

image-20260320065033621

最近更新: 2026/3/22 18:37
Contributors: klc407073648
Prev
转置卷积
Next
样式迁移