U-Net:用于生物医学图像分割的卷积网络,经典中的经典,后续所有创新改进的起点
源码、配套笔记&讲解视频,点击文末名片
1 、介绍
1️⃣ 第一个故事:传统卷积网络——“一刀切”的图像分类
想象你是一位医生,手里有一张X光片。
- 传统卷积网络(CNN)的做法是:
“这张片子里有没有肿瘤?” → 回答一个标签(比如“有肿瘤”或“无肿瘤”)。
这就像用一把大剪刀直接剪下整张图,简单粗暴,但不知道肿瘤在哪儿。
2️⃣ 第二个故事:Ciresan的“滑动窗口”——用放大镜找病灶
现在,任务升级:医生不仅想知道有没有肿瘤,还要标出肿瘤的位置(每个像素是什么)。
Ciresan团队想了个办法:
- 滑动窗口法:
用一个小放大镜(比如32×32像素的补丁)在图像上滑动,每次只看这一小块,预测中心像素的类别(肿瘤/非肿瘤)。
优点:- 能定位!因为每个像素都被单独预测了。
- 数据量暴增!一张1000×1000的图能切出近百万个补丁,解决了“训练图像太少”的问题。
缺点: - 慢:每个补丁都要单独跑一次网络,而且相邻补丁高度重叠(比如32×32的补丁每次只滑动1像素)。
- 两难困境:
- 放大镜太小(如16×16):看不清周围组织(上下文信息不足,容易误判)。
- 放大镜太大(如64×64):需要更多池化层压缩信息,导致定位精度下降(肿瘤边缘模糊)。
3️⃣ 第三个故事:全卷积网络(FCN)——“拼图式”精准分割
Ciresan的方法像“逐像素盖章”,效率太低。而**全卷积网络(FCN)**换了个思路:
- 不再用放大镜,而是直接“画地图”:
- 收缩路径(编码器):像传统CNN一样,通过卷积和池化把图像压缩成“抽象特征图”(比如从1000×1000压到30×30)。
- 扩张路径(解码器):通过上采样(反卷积)逐步放大特征图,恢复到原图大小(1000×1000)。
- “拼接”技巧:在放大过程中,把收缩路径中对应的高分辨率细节(比如肿瘤边缘)拼接到当前层,避免丢失精准位置。
比喻:
- 收缩路径像“把地图折成小方块”,记住大致轮廓。
- 扩张路径像“把地图展开”,同时用折痕时的局部细节修正展开后的位置。
结果: - 一次前向传播就能输出整张图的像素级分类,速度碾压滑动窗口。
- 上下文和精度兼得:大感受野提供上下文,跳跃连接保留细节。
4️⃣ 总结:三代方法的进化
暂时无法在飞书文档外展示此内容
2 、模型架构
FCN用“先压缩再展开+拼接细节”的魔法,让网络像人类一样,既能看清森林(上下文),又能数清每片树叶(精准定位)
![[图片]](https://i-blog.csdnimg.cn/direct/44a9830d7d144600aced3d73fa9108d4.png)
🏗️ 网络架构:U形“变形金刚”
想象你在拼一幅1000片的拼图,但规则是:
- 先拆拼图(收缩路径):把大图越拆越小,但记住每块拼图的特征(比如颜色、形状)。
- 再拼回去(扩展路径):把小图逐步放大,同时用之前记住的特征精准还原原图,还要标出每个像素属于“天空”还是“草地”。
🔍 具体步骤:
- 收缩路径(左侧):
- 每步操作:
- 2次3×3卷积(像用3×3的放大镜看局部细节)。
- ReLU(把负数变成0,让网络专注有用的信息)。
- 2×2最大池化(压缩图像,去掉冗余,通道数翻倍→像把4张图的信息压进1张更厚的图)。
- 结果:图像越来越小,但“厚度”(通道数)越来越深,记住的是高层语义(比如“这是一只猫”)。
- 扩展路径(右侧):
- 每步操作:
- 上采样(放大图像,通道数减半)。
- 拼接(像把拆拼图时记住的边缘细节贴回来,避免放大后变模糊)。
- 2次3×3卷积(继续细化边界)。
- 最后一层:用1×1卷积把64个通道变成类别数(比如2类:细胞/背景)。
- 无缝平铺:
- 因为每次卷积会丢失边缘像素(比如3×3卷积会让图像“缩水”一圈),所以输入图像的尺寸必须设计好,确保所有池化层都能处理偶数尺寸(否则会出现半个像素这种bug)。
源码、配套笔记&讲解视频,点击文末名片
