基于深度学习的图像语义分割算法:MaskFormer
字数 2189 2025-11-05 08:31:05
基于深度学习的图像语义分割算法:MaskFormer
题目描述
MaskFormer是一种将语义分割任务统一为掩码分类问题的深度学习算法。传统语义分割算法通常分为两类:
- 逐像素分类(如FCN、U-Net):直接为每个像素预测类别标签。
- 实例分割(如Mask R-CNN):同时检测物体实例并生成实例级掩码。
MaskFormer的创新在于:将语义分割和实例分割任务合并为一个通用框架,通过预测一组二进制掩码及其对应类别,实现像素级分割。这种方法在ADE20K(场景解析数据集)和COCO(实例分割数据集)上均达到领先性能。
解题过程
步骤1:问题建模——掩码分类范式
MaskFormer将分割任务重新定义:
- 输入图像生成 \(N\) 个二进制掩码(\(N\) 为超参数,如100),每个掩码对应一个可能的物体或区域。
- 同时为每个掩码预测一个类别概率分布(包括"空"类别)。
- 最终分割结果通过掩码与类别的组合得到:
\[ \text{分割结果} = \sum_{i=1}^{N} \arg\max(\text{类别}_i) \cdot \text{掩码}_i \]
优势:
- 无需区分语义分割(一类一掩码)和实例分割(一物一掩码),统一用掩码数量 \(N\) 控制粒度。
- 天然支持全景分割(同时处理可数实例和不可数背景)。
步骤2:模型架构设计
MaskFormer由三个核心模块组成:
-
骨干网络(Backbone)
- 使用CNN(如ResNet)或Transformer(如Swin Transformer)提取多尺度图像特征。
- 输出特征图记为 \(\mathcal{F} \in \mathbb{R}^{H \times W \times C}\)。
-
像素解码器(Pixel Decoder)
- 目的:将骨干网络的特征图 \(\mathcal{F}\) 上采样至原图分辨率,增强细节。
- 方法:类似FPN(特征金字塔网络)或U-Net的解码结构,通过跳跃连接融合低层细节和高层语义。
- 输出高分辨率特征图 \(\mathcal{Z} \in \mathbb{R}^{H \times W \times D}\)。
-
Transformer解码器(Transformer Decoder)
- 目的:生成 \(N\) 个掩码嵌入向量(每个向量对应一个掩码)和类别预测。
- 结构:
- 输入 \(N\) 个可学习的位置查询(类似DETR中的object queries)。
- 通过多头自注意力+交叉注意力机制,查询与图像特征 \(\mathcal{F}\) 交互。
- 输出 \(N\) 个掩码嵌入 \(\mathcal{E} \in \mathbb{R}^{N \times D}\)。
步骤3:掩码与类别预测
-
类别预测
- 对每个掩码嵌入 \(\mathcal{E}_i\) 应用线性层+Softmax,得到类别概率 \(p_i \in \mathbb{R}^{K+1}\)(\(K\) 为实际类别数,+1表示"空"类)。
-
掩码预测
- 将掩码嵌入 \(\mathcal{E}_i\) 与像素解码器输出的特征图 \(\mathcal{Z}\) 进行点积,后接Sigmoid:
\[ M_i = \text{Sigmoid}(\mathcal{E}_i \cdot \mathcal{Z}^T) \in [0,1]^{H \times W} \]
- 得到 \(N\) 个二进制掩码矩阵,每个矩阵值表示像素属于该掩码的概率。
步骤4:损失函数——掩码分类匹配
MaskFormer需解决二分图匹配问题:将预测的 \(N\) 个(掩码,类别)对与真实标注进行最优配对。
- 匈牙利匹配
- 计算每个预测掩码与真实掩码的匹配代价:
\[ \mathcal{L}_{\text{match}} = \lambda_{\text{cls}} \mathcal{L}_{\text{cls}} + \lambda_{\text{mask}} \mathcal{L}_{\text{mask}} \]
- $ \mathcal{L}_{\text{cls}} $:类别预测的交叉熵损失。
- $ \mathcal{L}_{\text{mask}} $:掩码的二元交叉熵损失或Dice损失。
- 使用匈牙利算法找到最优一对一匹配。
- 最终损失
- 对匹配成功的预测计算类别损失+掩码损失,未匹配的预测视为"空"类。
步骤5:推理与后处理
- 对每个预测对 \((p_i, M_i)\),选择类别概率最大的非空类(如 \(p_i > 0.5\))作为掩码标签。
- 将所有掩码按类别概率加权合并,得到最终分割图:
- 若多个掩码重叠,选择概率最高的掩码类别。
- 无需NMS(非极大抑制),因为掩码分类本身解决了重叠问题。
关键创新点
- 统一框架:用掩码分类范式兼容语义/实例/全景分割。
- 解耦设计:Transformer解码器负责识别物体,像素解码器负责细化掩码边界。
- 端到端训练:摆脱了传统分割中的启发式后处理(如ROI对齐、NMS)。
通过这种设计,MaskFormer在保持简洁性的同时,实现了多任务分割的高精度与灵活性。