U-Net:图像分割的革命

U-Net:图像分割的革命#

摘要#

还记得 卷积神经网络 中的 CNN 分类吗?输入一张图,输出一个标签——“这是一只猫”。但现实中很多任务需要的不只是"这是什么",而是 “这些像素属于什么”:哪里是肿瘤、哪里是道路、哪里是细胞核。

分类问题是"看整体",分割问题是"看每个点"。这看似只是"输出变多了"(从 1 个标签到几十万个标签),但实际上是一个本质不同的问题——你既要知道一个大象的整体形状(高层的语义理解),又要精确到象鼻子尖端的每个像素(低层的空间精度)。

CNN 的编码器擅长前者(下采样→语义),但牺牲了后者。U-Net 的答案很巧妙:去做一个对称的解码器,再用"抄近道"(跳跃连接)把丢失的空间信息直接传送回来

学习目标

完成本章后,你将能够:

  1. 理解分割任务:图像分割是什么、为什么比分类更难、和 CNN 的关联

  2. 掌握 U-Net 架构:U 形结构、编码器-解码器、跳跃连接的直觉和原理

  3. 理解跳跃连接的价值:为什么"抄近道"能同时保留位置和语义

  4. 能够实现 U-Net:从核心组件到完整模型

  5. 了解损失函数:Dice 损失为什么比交叉熵更适合分割任务

本章概览#

章节

内容

与前面章节的联系

引言:图像分割问题

分割问题与 U-Net 的核心思想

"在哪"和"是什么"必须同时解决

U 形架构详解

U 形架构:编码器、解码器、跳跃连接

LeNet-5架构详解 的对称扩展

损失函数设计

Dice 损失与交叉熵损失

损失函数 的进阶应用

完整实现

从零实现 U-Net

神经网络模块:搭建计算图 的实践

数据增强与训练技巧

数据增强与训练技巧

神经网络训练基础 的迁移

总结与展望

应用、变体、局限与展望

U-Net 为什么十年不过时

学习路径#

本章是从"分类"到"分割"的范式跃迁

graph LR A[CNN分类<br/>这是什么?] --> B[图像分割<br/>每个像素是什么?] B --> C[编码器<br/>提取语义] C --> D[解码器<br/>恢复空间] D --> E[跳跃连接<br/>保留细节]

核心认知:分割不是"输出更多的分类",而是需要同时解决"是什么"和"在哪"两个互补问题。

本章定位#

卷积神经网络 中我们学会了 CNN 如何用卷积、池化、全连接做分类。但 CNN 的编码器通过下采样获取语义信息时,丢失了精确的空间位置信息。

U-Net 的解决方案:

  • 编码器:像 CNN 一样下采样,提取高级语义

  • 解码器:对称地上采样,恢复空间分辨率

  • 跳跃连接:把编码器的低层特征直接传到解码器,保留细节

学习路径:理解分割问题 → 掌握 U-Net 架构 → 动手实现 → 训练技巧

前置章节

本章应用

卷积神经网络

卷积/池化 → 编码器的构建块

LeNet-5架构详解

编码器-分类器 → 编码器-解码器

CNN 中的注意力机制

注意力 → Attention U-Net

前置要求#

学习本章前,请确保你已经掌握

本章假设你已掌握以下内容:

  1. CNN 核心机制:卷积、池化、感受野(卷积神经网络

  2. LeNet-5 架构:典型的编码器结构(LeNet-5架构详解

  3. 参数效率思维:为什么局部连接比全连接好(实验对比:全连接 vs CNN

  4. PyTorch 基础:能独立搭建和训练模型(神经网络模块:搭建计算图

还没掌握?

如果注意力机制(CNN 中的注意力机制)还没读过也不影响,但读过会更有感觉。

目录#

贡献者与修订历史

查看详细修订记录
  • bba351e 2026-04-29 - Heyan Zhu: docs: update chapter summaries and learning paths for consistency
  • b5e265a 2026-04-28 - Heyan Zhu: docs(unet): restructure documentation and update content
  • 0c291d7 2025-12-10 - Heyan Zhu: docs: restructure course materials and add new content