问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

U-Net网络结构详解:从原理到实现

创作时间:
作者:
@小白创作中心

U-Net网络结构详解:从原理到实现

引用
CSDN
1.
https://blog.csdn.net/m0_72800308/article/details/139095117

U-Net是一种经典的卷积神经网络架构,主要用于生物医学图像分割任务。其独特的编码器-解码器结构能够有效地提取图像特征并进行精确的像素级分类。本文将详细介绍U-Net的网络结构及其关键组件,并探讨其在实际应用中的改进和优化。

网络结构概述

U-Net的网络结构可以分为两个主要部分:编码器(Encoder)和解码器(Decoder)。编码器负责特征提取和下采样,解码器则通过上采样和特征融合生成最终的分割图。

  • 编码器(Encoder):对应U型结构的左半部分,主要通过卷积层和最大池化层进行特征提取和下采样。在论文中,这部分被称为收缩路径(contracting path)。
  • 解码器(Decoder):对应U型结构的右半部分,通过上采样和跳跃连接(skip connections)逐步恢复图像的空间分辨率。这部分被称为扩张路径(expanding path)。

详细结构分析

我们从输入开始逐步分析U-Net的网络结构:

输入层

以572×572的单通道图像为例(单通道的原因在于第一个长条上面标的是数字1)。

编码器部分

  1. 卷积层:首先经过一个卷积层(蓝色箭头),卷积核大小为3×3,步长为1,padding为0。经过这个卷积层后,图像的高和宽会减小,变为570×570。接着再经过一个卷积层,变为568×568,通道数变为64。
  2. 下采样:接着进行一个2×2的最大池化操作,图像的高和宽缩小为原来的一半,从568变为284,通道数保持不变,为64。
  3. 重复卷积和下采样:重复上述卷积和下采样的过程,直到特征图的高和宽变为32,再经过两个3×3卷积层后,变为28,通道数变为1024。

解码器部分

  1. 上采样:首先进行一个转置卷积(绿色箭头),这是一个上采样操作,高和宽变为原来的2倍,从28变为56,通道数减半,变为512。
  2. 特征融合:在上采样后,通过一个灰色箭头表示的copy and crop操作,将左侧的特征图进行裁剪并与之拼接。例如,将64×64的特征图裁剪成56×56后与上采样后的特征图拼接,通道数变为1024。
  3. 重复上采样和特征融合:重复上述上采样和特征融合的过程,直到特征图的高和宽变为388×388,通道数变为64。
  4. 最终输出:最后通过一个1×1的卷积层(青蓝色箭头),将通道数调整为2,得到一个388×388×2的分割图。

现代实现的改进

现代实现中,U-Net的结构有一些改进:

  1. 添加padding:在卷积层中添加padding,使得经过卷积层后图像的高和宽保持不变。
  2. 加入BN层:在卷积层和ReLU之间加入Batch Normalization(BN)层,对输入张量的每个通道进行归一化操作。这种改进可以表示为conv+bn+relu的组合。
import torch.nn as nn

conv_bn_relu = nn.Sequential(
    nn.Conv2d(in_channels=2, out_channels=8, kernel_size=3, stride=1, padding=1),
    nn.BatchNorm2d(num_features=16),
    nn.ReLU()
)

论文中的图像说明

  1. 输入输出区域:论文中的图2展示了输入和输出区域的关系。输入是蓝色框内的区域,输出是黄色框内的区域。对于边缘区域的处理,论文采用了镜像的原则,即以红色线为中心线对原图进行镜像处理。

  2. 分割示例:论文中的图3展示了具体的分割示例:

  • 图A:原始图像的灰度图
  • 图B:人工标注的实例分割标签数据
  • 图C:语义分割图
  • 图D:热力图,显示细胞间区域的权重分布

总结

U-Net通过其独特的编码器-解码器结构,能够在保持空间分辨率的同时提取深层特征,特别适合于生物医学图像的精确分割任务。现代实现中的一些改进,如添加padding和BN层,进一步提升了网络的性能和稳定性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号