当前位置: 首页 > news >正文

FCN深度学习语义分割开山之作——学习笔记

《Fully Convolutional Networks for Semantic Segmentation》提出了首个端到端的针对像素级预测的全卷积网络(FCN),可直接处理任意大小的输入图像并输出相应大小的预测结果,超过了现有技术水平。

一、提出背景

传统的语义分割方法需要对每个像素进行分类,但计算成本高且复杂。该论文的目标是利用 FCN 实现端到端的像素级预测,以更高的效率达到更好的语义分割效果。

二、全卷积网络(FCN)的特点

全卷积网络通过移除全连接层,仅使用卷积层、池化层和激活函数,构建一个完全由卷积层组成的网络结构。由于没有固定的输入尺寸限制,FCN 可以接受任意大小的输入图像,并输出相应的像素级预测结果。

三、网络设计

提出了一种创新的 跳跃结构(skip architecture),将深层语义信息(表示语义的全局信息)与浅层外观信息(表示局部细节)结合。跳跃连接使得模型在预测过程中,不仅能捕获全局的语义信息,还能保留细粒度的空间信息,从而提高了分割精度。

在理解FCN的架构之前先回忆一下VGG的架构,如下图:

FCN就是将VGG后面的全连接层换成了卷积层,使VGG能够适用于语义分割领域,如下图所示:

1、跳跃连接

通过以下几种方式可以得到多尺度的特征图,将低层特征图(高分辨率但较浅)与高层特征图(低分辨率但语义丰富)结合,通过逐层的上采样生成更细致的分割图像。

(1)FCN-32s

FCN-32s架构如下图所示,就是将VGG的全连接层换成了卷积层FC6,FC7和1×1的卷积,然后用一个转置卷积实现上采样32倍。

(2)FCN-16s

FCN-16s就是将Maxpool4的特征图(如下图尺寸为\frac{h}{16}×\frac{w}{16})与通过转置卷积上采样2倍的特征图进行合并后,再进行一个转置卷积实现上采样16倍。

(3)FCN-8s

FCN-16s就是将Maxpool4的特征图(如下图尺寸为\frac{h}{16}×\frac{w}{16})与通过转置卷积上采样2倍的特征图进行合并后,再进行一个转置卷积实现上采样2倍,此时特征图尺寸为\frac{h}{8}×\frac{w}{8},最后与Maxpool3的特征图(如下图尺寸为\frac{h}{8}×\frac{w}{8})进行合并后,做最后一次转置卷积向上采样8倍。

2、转置卷积

转置卷积就是起到一个上采样的作用。

(1)为什么要提出新的上采样方法(转置卷积)?

可学习的参数,更具适应性
  • 传统的插值方法(如双线性插值)使用固定的插值权重,不能进行任务特定的学习,因此在恢复细节信息时效果有限。
  • 转置卷积引入了可学习的参数,能够通过反向传播来优化上采样过程,从而更好地恢复原始图像的细节,并对语义分割任务进行优化。
② 更精确的细节恢复
  • 在语义分割中,精细的边缘和小目标物体的识别至关重要。双线性插值等方法上采样后的结果可能模糊,无法清晰地表达物体的边缘。
  • 转置卷积通过学习,能自适应地生成细节更丰富、边界更清晰的分割结果,提高分割的精度。
③ 无缝集成于卷积神经网络(CNN)框架
  • 转置卷积可以直接集成在卷积神经网络中,与其他卷积层共享相同的操作机制。在前向传播中用于上采样,在反向传播中用于梯度更新,方便进行端到端训练。
  • 这样可以避免额外的上采样模块,使得整个网络结构更加简洁,并减少了预处理和后处理的复杂性。
④ 保持空间结构的连续性
  • 转置卷积通过可控的步幅和填充策略,可以确保上采样后的特征图保留空间上的连续性,即上采样后的每个像素仍然与输入图像有直接的空间关系。这种连续性对于像素级任务(如语义分割)尤为重要。
  • 通过上采样的过程中学习适应性的卷积核,转置卷积可以在增强细节的同时,保持整体的语义一致性。
⑤ 减少“花瓶效应”
  • 传统的插值方法在处理较深层的特征图时容易出现信息丢失,导致上采样后的特征图缺乏高层语义信息的清晰表达,出现“花瓶效应”(即物体的内部信息和边界被模糊化)。
  • 转置卷积通过学习不同尺度的特征信息,减少了“花瓶效应”的产生,在上采样时保留更丰富的语义信息。

参考视频:

FCN网络结构详解(语义分割)_哔哩哔哩_bilibili

转置卷积(transposed convolution)_哔哩哔哩_bilibili


http://www.mrgr.cn/news/59223.html

相关文章:

  • STMicroelectronics意法半导体车规芯片系列--亿配芯城(ICgoodFind)
  • OpenCV中的图像通道合并
  • 隨筆 20241024 Kafka 数据格式解析:批次头与数据体
  • Java--多态
  • 关于 Linux 内核“合规要求”与俄罗斯制裁的一些澄清
  • 英语语法学习框架(考研)
  • 更强的可操作性!Midjourney两大重要功能更新!
  • STL二分查找
  • 3285. 找到稳定山的下标
  • Qt的信号槽机制学习一
  • 常见存储器及其特点
  • 【C++习题】12.滑动窗口_将 x 减到 0 的最小操作数
  • vue3+vite 部署npm 包
  • PG数据库之事务处理
  • CANFD SSP第二采样点引发的“风波”分析
  • 数据结构------手撕链表(一)【不带头单向非循环】
  • STM32-HAL库 HC-SR04超声波测距 -- 2024.10.26
  • C++基础:三个字符串也能搞大小?
  • 谈谈你对AQS的理解
  • 百度智能云推出11.11活动,各大云厂商香港服务器优惠活动汇总
  • Spark 基础操作
  • 线程安全-同步与互斥/死锁
  • 读取文件内容,并按数学成绩排名,之后输出显示
  • linux学习笔记 Ubuntu下的守护进程supervisor安装与多项目部署
  • 2024系统架构师---真题考试知识点
  • python如何通过json以及pickle读写保存数据