U-Net 架构及其应用指南
了解 U-Net 架构、它如何支持图像分割、其应用场景,以及它在计算机视觉发展中的重要意义。

计算机视觉 是人工智能 (AI) 的一个分支,专注于分析视觉数据。它为许多前沿系统铺平了道路,例如实现工厂产品检测流程自动化,以及帮助自动驾驶汽车在道路上导航。
最广为人知的计算机视觉任务之一是目标检测。该任务使模型能够使用边界框定位和识别图像中的目标。虽然边界框对各种应用很有帮助,但它们只能粗略估计目标的位置。
然而,在医疗保健等精度至关重要的领域,视觉 AI 的应用不只是识别目标。通常还需要与目标的确切形状和位置相关的信息。
这正是计算机视觉任务中的分割所要实现的目标。分割模型不使用边界框,而是在像素级别检测目标。多年来,研究人员开发了专门用于分割的计算机视觉模型。
U-Net 就是其中一种模型。尽管更新、更先进的模型已经超越了它的性能,但 U-Net 在计算机视觉发展史上仍占有重要地位。本文将深入了解 U-Net 架构、其工作原理、应用场景,以及它与如今可用的更现代分割模型之间的比较。

图 1. 使用 U-Net 深度学习模型进行分割的示例。(来源)
图像分割的发展历程#
在深入了解 U-Net 之前,我们先来更好地了解图像分割模型是如何演变的。
最初,计算机视觉依赖边缘检测、阈值处理或区域生长等传统技术来分离图像中的目标。这些技术利用边缘检测目标边界、按像素强度分离区域,并对相似像素进行分组。它们适用于简单情况,但当图像存在噪声、形状重叠或边界不清晰时,往往会失效。
随着2012 年深度学习的兴起,研究人员于 2014 年针对语义分割等任务引入了全卷积网络 (FCNs) 的概念。这些模型替换了卷积网络的某些部分,使计算机能够一次查看完整图像,而不是将其拆分成更小的部分。这让模型能够创建详细的图像映射,更清晰地展示图像中的内容。

图 2. 基于深度学习的分割算法演变。(来源)
在 FCNs 的基础上,弗赖堡大学的研究人员于 2015 年推出了 U-Net。它最初是为生物医学图像分割而设计的。具体来说,U-Net 的设计目标是在标注数据有限的情况下仍能实现良好性能。
与此同时,UNet++ 和 TransUNet 等后续版本加入了注意力层和更好的特征提取等升级。注意力层帮助模型聚焦于关键区域,而增强的特征提取能够捕获更详细的信息。
什么是 U-Net?特征如何在模型中流动?#
U-Net 是专为图像分割构建的深度学习模型。它以图像作为输入,并生成一个分割掩码,根据每个像素所属的目标或区域对其进行分类。
该模型因其 U 形架构而得名。它由两大部分组成:用于压缩图像并学习其特征的编码器,以及将图像恢复到原始大小的解码器。这种设计形成了对称的 U 形结构,有助于模型同时理解图像的整体结构和更精细的细节。
U-Net 的一个关键特征是使用跳跃连接,使编码器中的信息能够直接传递到解码器。这意味着模型可以保留图像压缩时可能丢失的重要细节。
U-Net 架构概览#
下面简要介绍 U-Net 架构的工作方式:
- 输入图像: U-Net 从一张 2D 图像开始,例如医学扫描图或卫星照片。目标是为图像中的每个像素分配一个类别标签。
- 下采样: 图像经过卷积层,这些卷积层学习重要的视觉特征。随着图像经过不同层,其分辨率会降低,而模型则会识别出更宏观的模式。
- 瓶颈层: 在网络中心,特征图达到最小的空间分辨率,同时捕获高级语义特征。简单来说,特征图的这种压缩表示就是输入的整体上下文。
- 上采样: 随后,网络通过逐步提高分辨率来重建图像。转置卷积有助于将特征图扩展回接近原始大小。
- 跳跃连接: 下采样路径中的特征图会与上采样路径中的特征图进行拼接。这有助于在整合高级上下文信息的同时保留细粒度的空间细节。
- 输出为分割图: 最终输出是与输入大小匹配的逐像素分割掩码。每个像素都会被分类为目标、背景或感兴趣区域等类别。

图 3. U-Net 架构示意图。(来源)
了解 ViT 与 U-Net 之间的差异#
在了解 U-Net 的过程中,你可能会想知道它与其他深度学习模型有何不同,例如同样能够执行分割任务的视觉 Transformer (ViT)。虽然两种模型都能执行类似任务,但它们在构建方式和处理分割任务的方式上有所不同。
U-Net 通过编码器-解码器结构中的卷积层,在像素级别处理图像。它通常用于需要精确分割的任务,例如医学扫描图或自动驾驶汽车场景。
另一方面,视觉 Transformer (ViT) 将图像分割成图像块,并通过注意力机制同时处理这些图像块。它使用自注意力机制(一种让模型衡量图像不同部分相对于彼此重要性的机制)来捕捉图像不同部分之间的关联,这不同于 U-Net 的卷积方法。
另一个重要区别是,ViT 通常需要更多数据才能良好运行,但它非常擅长捕捉复杂模式。相比之下,U-Net 在较小的数据集上也能表现良好,训练速度更快,通常所需的训练时间也更少。
U-Net 模型的应用#
现在我们已经更好地了解了 U-Net 是什么以及它如何工作,下面来看看 U-Net 如何应用于不同领域。
医学影像中的脑出血分割#
U-Net 成为复杂医学图像像素级分割的可靠方法,尤其是在其研究应用的鼎盛时期。研究人员使用它来突出医学扫描图中的关键区域,例如 CT 和 MRI 图像中的肿瘤及内部出血迹象。这种方法显著提高了诊断的准确性,并简化了研究环境中复杂医疗数据的分析。
U-Net 对医疗保健研究产生影响的一个例子,是利用它从医学扫描图中识别中风和脑出血。研究人员可以使用 U-Net 分析头部扫描图并突出显示疑似区域,从而更快地识别需要立即关注的病例。

图 4. 使用 3D U-Net 对出血性中风病灶进行分割。(来源)
农业中的作物分割#
研究人员使用 U-Net 的另一个领域是农业,尤其是对作物、杂草和土壤进行分割。它帮助农民监测植物健康状况、估算产量,并在大型农场中做出更好的决策。例如,U-Net 可以将作物与杂草分离,使除草剂的施用更加高效并减少浪费。
为应对无人机图像中的运动模糊等挑战,研究人员使用图像去模糊技术改进了 U-Net。这确保了更清晰的分割,即使数据是在移动过程中采集的,例如进行航空测量时。

图 5. 使用 U-Net 将农田中的作物与杂草分离。(来源)
自动驾驶#
在更先进的 AI 模型推出之前,U-Net 在探索分割如何增强自动驾驶方面发挥了重要作用。在自动驾驶汽车中,可以使用 U-Net 的语义分割将图像中的每个像素分类为道路、车辆、行人和车道线等类别。这为汽车提供了清晰的周围环境视图,帮助其安全导航并有效决策。

图 6. 使用 U-Net 对可行驶区域进行分割的道路场景。(来源)
U-Net 的优缺点#
即使在今天,凭借简单性、准确性和适应性之间的平衡,U-Net 仍然是研究人员进行图像分割的不错选择。以下是它脱颖而出的一些主要优势:
- 适用于不同模态: U-Net 已适配不同类型的数据,包括 3D 医学扫描图、卫星图像,甚至视频帧。
- 优化后推理速度快: 经过适当调优后,U-Net 可以高效运行,适合实时或近实时应用。
- 开源且拥有社区支持: U-Net 可用于各大深度学习库,并得到庞大开发者和研究人员社区的支持。
虽然 U-Net 具有许多优势,但也有一些需要注意的局限。以下是需要考虑的几个因素:
- 对数据质量敏感: 低质量数据(例如含噪或低分辨率图像)可能会对 U-Net 的性能产生负面影响。
- 小数据集下容易过拟合: 尽管 U-Net 在数据有限的情况下表现良好,但如果没有进行适当的正则化,仍存在过拟合风险,尤其是在数据集过小或缺乏多样性时。
- 计算资源: U-Net 可能需要较高的计算成本,尤其是在处理大型数据集时,训练需要大量硬件资源。
要点总结#
U-Net 是图像分割发展过程中的一个重要里程碑。它证明了深度学习模型可以使用较小的数据集获得准确结果,尤其是在医学影像等领域。
这一突破为各个领域中更先进的应用铺平了道路。随着计算机视觉不断发展,U-Net 等分割模型仍然是让机器能够高精度理解和解释视觉数据的基础。
想构建自己的计算机视觉项目?探索我们的 GitHub 代码库,深入了解 AI,并查看我们的许可选项。访问我们的解决方案页面,了解医疗保健中的计算机视觉如何提高效率,并探索零售业中的 AI所带来的影响!立即加入不断壮大的社区!









