--- created: 2025-08-03 21:19:11 tags: - "Research" - "基础" - "Diffusion" - "U-net" - "图像分割" --- ![|500](https://raw.githubusercontent.com/student-zsbd/myImageHost/master/u-net-architecture.png) ## 1. U-net解决了什么问题 - **像素定位**:U-net能够对图像中的每一个像素点进行分类,输出根据像素点的类别而分割好的图像,这对于医学影像分析尤为重要,因为医务人员不仅需要知道图像的类别,更关心的是图像中各种组织的位置分布。 - **图像特征提取**:U-net通过卷积层提取图像特征,并通过反卷积层(上采样)恢复图像的原始尺寸,这使得网络能够精确地定位和分割图像中的结构。 - **小样本问题**:医学图像数据通常样本量较少,U-net通过特定的损失函数和数据增强技术,提高了模型在小样本情况下的泛化能力。 ## 2. U-net相较于之前的网络做出了什么改进 U-net相较于之前的网络,做出了以下改进: - **U形结构**:U-net的设计灵感来源于U形,它包含一个编码器(下采样路径)和一个解码器(上采样路径),这种结构使得网络能够在下采样过程中捕获图像的上下文信息,并在上采样过程中精确地恢复图像细节。 - **跳跃连接**:U-net通过[[残差链接 (Residual Skip Connect)|跳跃连接(skip connections)]]将编码器中的高分辨率特征与解码器中的对应层直接连接,这有助于在上采样过程中恢复图像的细节信息,并且减少了训练过程中的信息丢失。 - **端到端训练**:U-net是一个端到端的网络,可以直接从原始图像到分割图像的映射,这简化了训练流程,并提高了分割的准确性。 ## 3. U-net是如何实现的 U-net的实现可以分为以下几个关键步骤: - **编码器(下采样)**:通过连续的[[CNN-卷积层, 池化层 与 全连接层|卷积层和池化层]]逐步降低图像的空间维度,同时增加特征通道的数量,以捕获图像的上下文信息。 - **解码器(上采样)**:通过[[卷积和反卷积|反卷积]]层逐步恢复图像的空间维度,同时减少特征通道的数量,以恢复图像的细节信息。 - **跳跃连接**:在编码器和解码器之间建立[[残差链接 (Residual Skip Connect)|跳跃连接]],将编码器中的特征图直接复制到对应的解码器层,以增强特征融合。 - **损失函数**:使用带权重的交叉熵损失函数,以适应不同的分割任务,提高分割的准确性。 ### 关于上图中U-net流程的描述 - 深蓝色箭头:利用3×3的卷积核对图片进行卷积后,通过ReLU激活函数输出特征通道; - 灰色箭头:对左边下采样过程中的图片进行裁剪复制; - 红色箭头:通过最大池化对图片进行下采样,池化核大小为2×2; - 绿色箭头:反卷积,对图像进行上采样,卷积核大小为2×2; - 青色箭头:使用1×1的卷积核对图片进行卷积。 该U-net网络一共有四层,分别对图片进行了4次下采样和4次上采样。由于结构部分数字比较多,过程比较繁琐,下面将按照自己的理解尽可能地把整个过程描述清楚。 从最左边开始,输入的是一张572×572×1的图片,然后经过**64个**3×3的卷积核进行卷积,再通过ReLU函数后得到**64个**570×570×1的特征通道。然后把这570×570×64的结果再经过**64个**3×3的卷积核进行卷积,同样通过ReLU函数后得到**64个**568×568×1的特征提取结果,这就是第一层的处理结果。 第一层的处理结果是568×568×64的特征图片,通过2×2的池化核,对图片下采样为原来大小的一半:284×284×64,然后通过**128个**卷积核进一步提取图片特征。后面的下采样过程也是以此类推,每一层都会经过两次卷积来提取图像特征;每下采样一层,都会把图片减小一半,卷积核数目增加一倍。最终下采样部分的结果是28×28×1024,也就是一共有1024个特征层,每一层的特征大小为28×28。 右边部分从下往上则是4次上采样过程。从最右下角开始,把28×28×1024的特征矩阵经过**512个**2×2的卷积核进行反卷积,把矩阵扩大为56×56×512(_注意不是1024个卷积核,结果仅仅是右半边蓝色部分的512个特征通道,不包含左边白色的_),由于反卷积只能扩大图片而不能还原图片,为了减少数据丢失,采取把左边降采样时的图片裁剪成相同大小后直接拼过来的方法增加特征层(_这里才是左半边白色部分的512个特征通道_),再进行卷积来提取特征。由于每一次valid卷积都会使得结果变小一圈,因此每次拼接之前都需要先把左边下采样过程中的图片进行裁剪。矩阵进行拼接后,整个新的特征矩阵就变成56×56×1024,然后经过**512个**卷积核,进行两次卷积后得到52×52×512的特征矩阵,再一次进行上采样,重复上述过程。每一层都会进行两次卷积来提取特征,每上采样一层,都会把图片扩大一倍,卷积核数目减少一半。最后上采样的结果是388×388×64,也就是一共有64个特征层,每一层的特征大小为388×388。 在最后一步中,选择了**2个**1×1的卷积核把64个特征通道变成2个,也就是最后的388×388×2,其实这里就是一个二分类的操作,把图片分成背景和目标两个类别。 ### 关于U-net的输入与输出 在原始论文中确实是输出会比输入更小的, 但是后面有U-net++等的改进, **输入和输出是一样的大小**, 而且在[[Diffusion|Diffusion Model]]中使用的U-net网络也是输入与输出一样的大小 ## 4. U-net还可以做什么改进 尽管U-net在医学图像分割领域取得了显著的成果,但仍有一些潜在的改进方向: - **损失函数的改进**:根据不同的分割任务,可以设计更复杂的损失函数,以提高分割的准确性和鲁棒性。 - **网络结构的改进**:例如U-net++,它在U-net的基础上增加了更多的跳跃连接,以利用不同深度的特征信息,提高分割的精度。 - **数据增强技术**:开发新的数据增强技术,以适应不同的医学图像分割任务,提高模型在小样本情况下的表现。 - **多尺度特征融合**:通过融合不同尺度的特征图,可以提高网络对图像细节的捕捉能力,从而提高分割的准确性。 以上是基于提供的资源和U-net的基本概念整理的学习笔记,希望对你有所帮助。 ## 5. 参考资料 \[1\] [从零开始的U-net入门\_u net-CSDN博客](https://blog.csdn.net/qq_33924470/article/details/106891015)---非常好的介绍, 拓展阅读也值得一读 \[2] [〈 Diffusion Model 論文研究與實作心得 Part.2 〉 U-Net 模型架構介紹與實作 - HackMD](https://hackmd.io/@Tu32/Bkq3fQi0s)i \[3] [Intro to Diffusion Model — Part 5 | by DZ | Medium](https://dzdata.medium.com/intro-to-diffusion-model-part-5-d0af8331871)