1. 为什么要做图像分割综述以及这篇综述的价值这两年做深度学习相关的项目尤其是计算机视觉方向几乎绕不开图像分割。不管是自动驾驶里的道路与障碍物识别、医疗影像里的器官与病灶勾画还是电商场景里的商品抠图、工业质检里的缺陷定位最底层依赖的都是像素级的分类能力也就是图像分割。但很多初学者一上来就扎进代码里今天跑一个U-Net明天试一下DeepLab后天又去追最新的Transformer分割模型学得很零散对整条技术演进路线没有完整认知。真正到选型的时候不知道哪些模块是关键哪个结构解决什么问题为什么某些改进能带来质的提升某些只是微小的优化。这篇标题为《Evolution of Image Segmentation using Deep Convolutional Neural Network: A Survey》的综述做的正是这件事把图像分割这条技术主线串起来。从传统方法的局限讲起分析深度卷积神经网络如何一步步突破这些局限中间经历了哪些关键架构变革以及当下的研究趋势和开放问题。这篇文章的价值本质上是一份“地图”。它适合三类人阅读刚进入CV方向的研究者或学生需要一个系统框架去理解分割任务的全貌而不是东拼西凑看碎片化博客。已经在做相关项目的工程师想在动手前理清方案选型的依据知道不同架构的适用范围和性能边界。需要规划技术路线或调研方向的技术管理者通过一篇综述快速把握这个领域的技术演进脉络与前沿动态。我个人的体会是做应用和做研究有一个共同点方向感比技巧更重要。读完一篇好的综述你对“为什么这么做”“下一步能往哪走”的理解会远超你自己零散看几十篇论文或代码的效果。2. 图像分割的核心问题与技术坐标定位2.1 三个容易混淆的任务语义分割、实例分割、全景分割在展开技术演进之前必须先把这个领域的任务坐标系说清楚。很多刚入门的同学会在三个概念之间打转语义分割、实例分割、全景分割。语义分割处理的是“像素属于哪个类别”这个问题它不区分同一类别里的不同个体。比如街景里有三辆车语义分割把所有车的像素都标成“车”这个类别不关心它们是车A、车B还是车C。这是最基础的分割任务形态也是本综述讨论的重心。实例分割稍微复杂一点它不仅要告诉像素属于什么类别还要区分同类别的不同个体。还是街景的例子实例分割会把三辆车分别标成车1、车2、车3每个实例都有独立的掩码。这个任务对边界精度和分离能力的要求更高代表性框架是Mask R-CNN这类“检测分割”的组合思路。全景分割是前两者的统一它要求对场景中的所有像素都进行分割和语义标注同时区分同类别的不同实例。像街景里天空、道路这种无实例的“stuff”类别按语义分割处理而车辆、行人这种“thing”类别则按实例分割处理。理解这个坐标系非常关键因为在看综述里的网络结构时很多架构设计会因任务不同而分化。2.2 分割为什么难感受野与空间细节的矛盾从信号处理的角度来看图像分割本质上面临一对核心矛盾全局上下文与局部细节之间的张力。要做准确的像素分类网络需要足够大的感受野来理解“这个像素属于什么”比如一个像素周围是路面、车道线还是人行道决定了它更可能是哪种类别。感受野越大上下文信息越充分类别判断越准确。但同时分割要求输出与输入同分辨率的逐像素标签这意味着网络必须保留或恢复精细的空间结构。边缘轮廓、细小纹理、狭长物体这些细节信息如果被过度下采样恢复起来就非常困难。这就解释了一个技术上的常见困惑为什么不直接用分类网络来做分割。分类网络通过连续的卷积和下采样不断扩大感受野把图像逐步压缩成高维特征甚至一个类别概率向量。这个过程对“全局理解”是友好的但对“空间精度”是致命的。直接拿分类网络改造成分割模型通常只能得到一团模糊的色块边缘一塌糊涂。2.3 深度卷积网络带来的三个根本性变革这篇综述的核心论点就是把深度卷积神经网络视为分割任务走向实用的分水岭。与传统方法相比它带来了三个根本性变革。第一个是特征表达从人工设计转向自动学习。传统分割方法依赖颜色直方图、纹理特征、手工滤波器等浅层线索对光照变化、视角变化、遮挡等因素非常敏感。而深度网络能在大规模数据上自动学习从边缘、角点到部件、物体层级的分层特征表达泛化能力大幅提升。第二个是端到端的训练范式。传统方法通常是一个流水线先提特征再聚类或分类后处理后融合每个环节独立调优误差不断累积。深度分割网络可以把“图像输入”到“分割结果”直接构造成一个可微的整体用像素级标注进行监督一步到位地联合优化所有参数。第三个是数据驱动的持续迭代能力。深度模型的性能提升高度依赖数据和算力这也使得该领域形成了一个“数据标注越精细、模型能力越强、应用越广泛、进一步推动数据生产”的正向循环。有了这个坐标系再往下看具体的架构演进就会清晰得多。3. 技术演进路线从全卷积到多尺度融合3.1 全卷积网络分割领域的分水岭如果说要在这篇综述里选一个“最值得理解透彻”的里程碑那一定是全卷积网络。它几乎是所有现代深度分割模型的鼻祖标题里提到的“Deep Convolutional Neural Network”很重要的一个转折点就是卷积层替换全连接层这个看似简单的改动。全连接层的问题在于它的输入输出维度是固定的。分类网络最后几个全连接层把特征图拍扁成固定长度的向量从而丢失了空间位置信息。而全卷积网络把最后的全连接层替换为卷积层使网络可以接受任意尺寸的输入并且输出仍然是一张二维的特征图特征图上的每个位置与输入图像上的位置保持对应关系。当然由于网络中间的池化和步长卷积输出特征图尺寸远小于输入图像通常是原始尺寸的1/32。为了得到像素级预测需要把低分辨率的特征图“放大”回原图大小。这里的上采样方式很关键最朴素的是双线性插值但缺少可学习能力。全卷积网络里用了转置卷积也叫反卷积它本质上是卷积的逆操作通过可学习的卷积核将低分辨率特征映射回高分辨率空间。这个设计让上采样过程也能参与梯度反传从而端到端训练。但是简单的跳步上采样效果并不理想这就是综述里会反复讨论的第一个痛点上采样恢复的边界过于粗糙。原因在于底层空间细节已经在多次下采样中丢失再好的上采样也无法凭空“变出”细节。全卷积网络当时也尝试了跨层融合把浅层的高分辨率特征和深层的低分辨率语义特征加在一起但这只是融合的雏形远没有后续U-Net、DeepLab系列做得彻底。3.2 编码器-解码器结构与U-Net的“对称之美”在解决“低分辨率语义特征与高分辨率细节信息如何结合”这个问题上U-Net给出了一个非常经典的方案也因此在医学图像分割领域成为事实标准。U-Net的名字来自它的结构形状左侧是编码器逐层下采样提取特征右侧是解码器逐层上采样恢复分辨率。中间通过“跳跃连接”把编码器每一层的特征图直接拼接到解码器对应层。这样每一层解码器不仅能拿到来自深层的语义信息还能拿到对应尺度的高分辨率空间细节。这个设计背后的“为什么”值得展开。跳跃连接的动机在于随着下采样进行空间细节信息是逐步流失的。编码器最后输出的特征图虽然语义最强但空间位置已经非常模糊。如果只在最终层做上采样再分割相当于让一个记忆模糊的人凭感觉给整张图涂色。而有了跳跃连接解码器的每一层都能“看到”当初编码器经过这一层时的细节快照相当于一边恢复形状一边参考原图细节。信息通路更短梯度也能更顺畅地流向浅层。对称的U型结构还有一个实际好处参数量和特征图裁剪都很自然适用于数据量不大的场景。这让U-Net在医学影像这种“标注贵、数据量少”的领域特别受欢迎。后来很多变体比如残差连接、注意力门控、多层特征融合的U-Net等本质都是在进一步优化跳跃连接的融合方式或解码器的特征处理效率。3.3 空洞卷积与DeepLab系列的密度哲学另一条重要路线是空洞卷积。它解决的核心问题是增大感受野的同时不降低特征图分辨率。常规做法是通过增加池化或步长卷积来扩大感受野但这会牺牲分辨率对分割这种需要稠密输出的任务很不利。空洞卷积通过在卷积核元素之间插入“空洞”来扩大采样范围用比普通卷积更大的步幅覆盖输入区域但参数数量和输出尺寸保持不变。通俗地说就是用同样的参数量挂着望远镜看更远的区域。DeepLab系列是这条路线上的代表。早期的DeepLab使用空洞卷积来获得多尺度的上下文信息并配合全连接条件随机场做后处理细化分割边界。后面版本则引入了空洞空间金字塔池化在同一个特征图上用不同扩张率的空洞卷积并行采样再把结果融合起来捕捉多尺度上下文。这个设计灵感可以理解为人的视觉系统看一幅图时既需要关注整体场景又需要注意局部细节多尺度并行采集正是模拟这种能力。后续DeepLab版本又引入了编码器-解码器结构解码器逐步恢复空间信息与空洞空间金字塔池化特征融合。这个演变路径非常清晰地体现了综述强调的趋势单一主干网络难以同时满足“大感受野”和“高分辨率”两个要求多分支并行、多尺度融合成为主流解法。3.4 从卷积到注意力Transformer分割架构的兴起综述里关于趋势的讨论绕不开Transformer架构对分割领域的冲击。注意力机制本质上是一种动态权重分配机制它让网络在计算某个位置的输出时不只看固定卷积核覆盖的局部邻域而是可以按内容自动决定该“关注”全图的哪些位置。这个机制天然适合分割任务因为分割对长距离依赖的需求非常强烈。比如一张图像里同类的像素点可能相隔很远但它们应当被一致地识别。传统卷积通过层层堆叠来扩大有效感受野而注意力一步到位建立全局关联打破局部感受野的物理限制。实践中比较有代表性的方案有两类思路。一类是像SETR那样把图像切块序列化用Transformer编码器提取全局特征再通过解码器恢复逐像素预测。另一类是把Transformer与U型架构结合编码器部分替换为Transformer结构同时保留跳跃连接这种混合思路在医学分割和遥感分割等任务上取得了很好的效果。不过Transformer也有代价计算量随序列长度平方增长对高分辨率输入很不友好。所以很多近期的实践在探索窗口注意力、稀疏注意力、分层Transformer等方案在效率和性能之间做权衡。4. 关键机制与训练实战术如何在工程中做对选择4.1 主干网络选型分类网络做特征提取器的原因在几乎所有深度分割模型里主干网络用的都是图像分类领域的经典结构比如各种ResNet变体、MobileNet、EfficientNet等。为什么不直接为分割任务设计全新的主干答案是实用主义。分类网络在ImageNet这类大规模数据集上预训练后已经学到了非常泛化的底层视觉特征包括边缘、纹理、颜色渐变等。分割任务的数据集往往规模较小从头训练一个深网络很容易过拟合。用预训练分类网络做主干再在其上添加分割头或解码器是大规模迁移学习的经典做法。选主干有个朴素原则算力充足、追求精度时选大容量主干比如ResNet-101或更大的网络算力受限、追求实时性时选轻量主干比如MobileNet系列。同一个分割框架替换主干往往精度和速度的差异非常大这种模块化的设计是工程里很方便的操作方式。4.2 特征融合与多尺度上下文空洞空间金字塔池化的工程变体空洞空间金字塔池化“多分支并行不同扩张率”的设计在工程实现时有几个值得注意的参数细节。扩张率到底应该选多大并不是拍脑袋的事而是取决于特征图的分辨率和有效感受野。有一个经验公式可以参考对于普通卷积核大小为k的空洞卷积扩张率为r时等效感受野大小为k(k-1)×(r-1)。比如3×3卷积核扩张率为2时等效感受野为5×5扩张率为4时等效感受野为9×9。设计多分支时不同分支的扩张率应当覆盖从局部到全局的多个尺度层次。工程里有一个常见的坑扩张率设置过大会导致采样过于稀疏特征图里大量像素根本不在卷积核覆盖范围内本应关联的位置反而没有关联。更糟的是某些扩张率组合会导致部分像素永远无法被感受野覆盖类似棋盘格般的死区。所以在做空洞空间金字塔池化时通常搭配1×1卷积等价于扩张率为1来捕捉精细的局部特征同时避免空洞卷积带来的网格伪影。4.3 损失函数设计细节与类别不平衡处理分割训练里最容易被忽视但影响最大的环节是损失函数。很多初学者直接用交叉熵发现网络输出一片全背景不输出前景目标就以为是模型结构有问题其实往往是类别不平衡在作祟。以医学影像分割为例病灶区域可能只占整张图的百分之几如果直接用像素级交叉熵网络只要把所有像素预测为背景损失就已经很低了。这个时候就体现出Dice损失的价值。Dice系数的本质是预测掩码与真实掩码的重叠度对类别不平衡天然不敏感因为它是按区域计算而不是按像素独立计算的。实际工程中的常见做法是组合损失把交叉熵和Dice损失按权重相加。交叉熵对每个像素独立监督梯度密度稳定收敛平稳Dice损失则直接优化目标指标对前景区域敏感。两者互补往往比单独使用任何一种效果都稳定得多。边界损失和高斯距离图损失在某些精细分割任务里也很有效。前者惩罚边界预测错误引导网络精细化边缘后者将标注点扩展为高斯热图软化边界监督信号让网络在模糊区域不那么“激进”。这些设计本质上都是在回答同一个问题分割评价指标是像素级的但用户真正关心的是区域和边界的质量。4.4 后处理与推理技巧条件随机场还有用吗在早期分割模型里条件随机场几乎算是标配。它利用像素之间的空间关系对分割结果进行图模型推理平滑杂散的预测区域锐化边界。但随着深度分割网络的输出质量越来越好尤其是空洞卷积和注意力机制极大增强了上下文建模能力条件随机场带来的增益越来越小。以我在实际项目中的经验当前条件随机场在深度模型上的提分幅度通常在零点几个百分点以内却会带来额外的推理复杂度和更长的耗时。除非对边界平滑有非常苛刻的需求否则不值得在后处理上花太多精力。与其在决策层做条件随机场不如在特征层做充分的上下文建模比如空洞空间金字塔池化或注意力融合这类端到端的优化收益更大、更可控。推理阶段还有一个实用技巧多尺度翻转预测。测试时将输入图像缩放成多个尺度分别推理对每个输出做翻转推理最后取平均值或最大值。这个技巧能稳定带来一到两个百分点的精度提升代价是推理时间成倍增加。在离线评估或竞赛冲刺阶段很值得用但在实时推理场景下要慎重。5. 典型应用场景与选型对照拿方案直接落地5.1 医疗影像分割U-Net为何至今仍是首选基线医疗影像分割是一个对精度和鲁棒性要求极高的应用场景。器官轮廓、肿瘤区域、细胞结构的分割结果直接影响后续诊断和治疗规划。医疗影像的固有特点是标注成本极高、数据规模有限、各向异性强、类间差异大。在这个背景下U-Net类结构几乎是天然适配对称的编码器-解码器配合跳跃连接使得在少量数据下也能高效学习高分辨率细节保留对器官边界勾画至关重要。我在实际项目中见过一个很有价值的经验先在公开数据集上预训练主干部分再用目标医院的小样本数据集微调比直接小数据量从头训练效果稳定得多。现代医疗分割框架中很多都沿用U-Net的整体结构但替换了特征提取模块比如引入残差连接、注意力门控、通道注意力等。这些改动的本质是通过更精细的特征选择和融合增强网络对结构复杂、边界模糊区域的判别力。5.2 自动驾驶场景解析实时性与精度的平衡艺术自动驾驶场景是另一个典型的分割应用方向但它对分割模型的要求和医疗影像非常不同。自动驾驶需要处理街景中的多类别、多尺度、多实例目标同时对推理速度有严格要求。一个分割网络如果精度很高但单帧推理耗时超过500毫秒在行车场景里几乎不具备落地价值。这个约束催生了一批轻量级分割网络的研究。它们的核心思路依然是编码器-解码器或空洞卷积路线但大量使用了深度可分离卷积、通道剪枝、低精度量化等手段来降低计算量。比较关键的一个认知是在自动驾驶场景里类别层面的语义分割通常只是中间步骤后续还要配合检测、跟踪、预测等模块使用所以分割模块的相对位置和输出格式需要与整体系统设计协同。5.3 遥感图像与工业质检尺度差距最大的分割任务遥感图像分割和工业质检巡检是两个相当有代表性的场景。遥感图像的特点是目标尺度跨度极大整片农田和单栋建筑可能需要同时分割。工业质检则往往目标占比极小缺陷区域可能只占图像的1%甚至更低。这两个场景对分割网络有一个共同的挑战尺度与占比。对遥感图像必须有非常强的多尺度上下文建模能力空洞空间金字塔池化、多分支不同扩张率的并行融合、以及最近越来越常见的多尺度输入自适应选择机制都是有效方案。对工业质检核心则在于极端的类别不平衡和低对比度缺陷Dice损失及其变体会成为关键同时数据增强中针对缺陷区域的裁剪、粘贴增强等操作也很重要。6. 常见问题与排查经验综述之外的一线实战记录6.1 网络训练不收敛或发散先检查损失与学习率训练分割网络时最常遇到的崩溃级问题就是Loss出现NaN或直接发散。这个问题的排查顺序在工程中非常重要。第一优先级检查损失函数定义。Dice损失在类别完全不存在时分子分母同时为零如果实现时没有加平滑因子就会出现除零导致NaN。第二优先级检查学习率。分割任务通常比分类任务对学习率更敏感因为解码器部分是重新初始化的浅层预训练部分的特征分布差异也会影响学习动态。常见的做法是主干使用较低学习率新添加的头部使用较高学习率两套学习率可以差5到10倍。6.2 小目标分割效果差问题往往不在解码器很多项目调试到后期都会问为什么网络对大目标分割得很好小目标却频繁漏掉或断开。直觉上会先怀疑解码器细节恢复能力不足但实际上更常见的原因是下采样阶段把小目标的信息彻底丢弃了。当小目标只占几个像素时经过连续的池化和步长卷积后它们可能直接消失。在这个阶段考虑两个方案一个是调整下采样倍率让特征图尺寸更大比如把1/32的输出改为1/16或1/8另一个是引入更浅层的高分辨率特征参与融合在U型结构里把第二层或第三层的特征也拼接进来。这两种做法本质上都是“信息保真度”的考量。6.3 边界区域模糊可能是标签本身也有问题有一类问题和模型无关很容易被忽略边界区域模糊其实来自标注噪声。不同标注人员在画标注时对边界的定义本身存在主观差异。尤其是医学影像中不同模态、不同组织之间的过渡带以及遥感图像中地物之间的过渡真实边界本身就是一个渐变区域而不是一条明确线。此时网络输出的“模糊”边界某种程度上是在学习标注的不确定性分布并不完全是模型的缺陷。针对这类情况一个实用方案是采用软标签训练把标注边界区域替環为渐变的软概率值而不是硬性的0或1。还有一些方法是采用标签平滑、边界加权损失本质上都是让模型在不确定区域不要“过度自信”。6.4 一个可复现的分割训练流水线参考把前面讲到的经验汇总成一条完整的可复现流水线对快速启动一个分割项目很有帮助。我这里整理一个通用流程适用于大多数语义分割任务。第一步数据准备与增强统一图像与掩码尺寸归一化做随机翻转、随机裁剪、颜色抖动、弹性变形等增强。对于类别不平衡严重的任务加上针对前景区域的裁剪增强。第二步模型搭建与预训练选择合适的主干结构加载预训练权重选择U-Net、带空洞空间金字塔池化的结构等作为分割框架修改输出层类别数。第三步训练策略损失函数采用交叉熵Dice组合学习率使用预设策略主干初始学习率值为新头部的1/10左右配合Momentum优化器或自适应优化器。每轮评估Dice、交并比等核心指标。第四步推理与后处理多尺度翻转推理条件随机场按需使用输出前进行连通域分析和轮廓提取再接入业务逻辑。7. 展望与开放问题综述之外我看到的真实方向综述会总结领域已有的成果而站在从业者的角度我更关心下一阶段值得投入的方向。第一个不可回避的方向是多模态融合。当前分割模型大多只在RGB图像上工作但现实中很多场景已经能同时获取深度图、热红外图像、多光谱数据等。如何让分割网络有效利用这些跨模态信息是一个潜力非常大且尚未完全解决的问题。医学影像里不同模态的互补性尤其明显而多模态融合的数据获取在工业现场也已经越来越成熟。第二个方向是弱监督与少样本分割。像素级标注的成本是分割落地的主要瓶颈之一因此如何在只有图像级类别标签、边界框标注、点标注甚至涂鸦标注的情况下训练出接近全监督性能的分割模型是学术界和工业界都非常关注的。目前基于对比学习、伪标签迭代训练、不确定性建模的方法已有不少进展但离成熟落地还有一段距离。第三个方向是开放世界分割。传统分割模型只能识别训练时见过的类别一旦出现新类别就需要重新收集数据、重新标注、重新训练。而开放世界分割的目标是让模型能在推理时识别未知的新类别并与已知类别统一输出。这也是把分割模型从“封闭任务工具”变成“持续学习系统”的关键一步。8. 写在最后先有地图再走代码我个人做图像分割项目这几年最大的经验恰恰就是这篇综述标题里最朴素的那个词Evolution。分割技术不是一堆并列的模型集合而是一连串对矛盾持续求解的演进过程。理解了这个演进逻辑你会对网络结构中的每一个设计选择有更深层的直觉而不是人云亦云地调参。如果让我给一条建议那就是不要一开始就对着最新论文里的复杂结构死磕而是从全卷积网络、U-Net、DeepLab这条主线走一遍搞清楚“每个阶段为什么这样改、解决了哪个问题、又带来了什么新问题”。这条主线走完之后你会发现无论是读代码、选框架还是做工程方案都能迅速抓住要害。最后分享一个小技巧。读综述时不要只在文字层面理解建议配合画图的方式把每个网络结构的“信息流路径”画出来——输入从哪里进来特征在哪一层被下采样哪些层之间有跳跃连接信息如何被融合。一张图胜过十段文字。等你亲手画完这条信息流你对分割网络的理解就已经超过绝大多数只看博客的初学者了。