post on
16 Feb 2025
about
2614words
require
9min
CC BY 4.0
(除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~
全景分割(Panoptic Segmentation)
** 定义**
全景分割是语义分割和实例分割的结合。它要求对图像中的每个像素分配一个语义标签,并识别出单独的对象实例。全景分割的目标是提供一个连贯、丰富和完整的场景分割。

-
统一处理“Things”和“Stuff”:
- Things(可数目标):如人、动物、车辆等,需要检测并区分每个实例。
- Stuff(不可数目标):如天空、草地、道路等,只需进行语义分割。
全景分割通过为每个像素分配类别和实例 ID,同时处理这两种类型的目标。
- 提供完整的场景理解:
全景分割不仅关注前景目标的分割和识别,还涵盖了背景区域的语义理解,从而生成连贯且完整的场景分割。
-
解决语义分割和实例分割的局限性:
- 语义分割无法区分同一类别中的不同实例。
- 实例分割仅关注前景目标,且分割结果可能重叠。
全景分割通过统一的格式和度量,克服了这些局限性。
** 特点**
- 同时处理“物体”(如人、车辆)和“非物体”(如草地、天空)区域。
- 输出格式为每个像素分配一个语义标签和一个唯一的实例标识符。
** 应用**
全景分割在以下领域有重要应用:
- 自动驾驶:提供全面的场景理解,包括车辆、行人和背景。
- 增强现实:用于构建虚拟与现实融合的场景。
- 场景解析:用于复杂场景的全面理解。
** 常见模型**
- 优点:统一框架,能够处理语义、实例和全景分割任务,高精度。
- 缺点:基于 Transformer 的架构复杂,训练难度大,资源密集型。
提出初衷
Mask2Former 的提出初衷是为了进一步改进 MaskFormer 的性能,并解决其在实例分割任务中的不足。MaskFormer 虽然在多个分割任务上取得了不错的结果,但在实例分割任务上与当时的 SOTA 模型仍有较大差距,Mask2Former 的主要动机和改进点如下:
- 引入掩码注意力(Masked Attention):Mask2Former 将交叉注意力限制在预测的掩码区域内,而不是关注整个特征图。这种局部注意力机制能够更高效地提取目标特征,同时减少计算量。
- 多尺度高分辨率特征:为了更好地处理小目标,Mask2Former 利用多尺度特征金字塔,并将不同分辨率的特征分别输入到 Transformer 解码器的不同层中。这一改进显著提升了对小目标的分割性能。
- 优化训练过程:Mask2Former 对 Transformer 解码器进行了多项优化,包括调整自注意力和交叉注意力的顺序、使查询特征(query embedding)可学习、移除 dropout 等。这些改进在不增加计算开销的情况下提升了模型性能。
- 重要性采样(Importance Sampling):Mask2Former 在计算损失时,采用随机采样的方式,仅在部分像素点上计算损失,而不是在整个图像上计算。这一策略加快了训练速度。
- 通用性与高效性:Mask2Former 的目标是提供一个通用的图像分割框架,能够同时处理语义分割、实例分割和全景分割任务。相比为每个任务设计专门的模型,Mask2Former 显著减少了研究工作量,并在多个数据集上达到了 SOTA 性能。

网络结构
Mask2Former 是一种通用的图像分割架构,能够同时处理全景分割、实例分割和语义分割任务。其网络结构主要由以下三个核心部分组成:
1. Backbone(骨干网络)
骨干网络用于从输入图像中提取低分辨率的特征图。Mask2Former 可以使用多种流行的骨干网络,例如 ResNet 或 Swin Transformer。这些特征图将被传递到后续模块以进行进一步处理。
2. Pixel Decoder(像素解码器)
像素解码器的作用是将骨干网络提取的低分辨率特征逐步上采样到高分辨率特征图。这一模块通过多尺度特征金字塔处理不同分辨率的特征,并生成高分辨率的逐像素特征嵌入。例如,Mask2Former 使用了多尺度可变形注意力(MSDeformAttn)作为像素解码器的结构,处理 1/8、1/16、1/32 大小的特征图,并通过上采样生成 1/4 分辨率的特征图。
Transformer 解码器是 Mask2Former 的核心模块,负责处理对象查询(object queries)并生成最终的分割掩码。Mask2Former 引入了掩码注意力(masked attention),将交叉注意力的范围限制在预测的掩码区域内,从而提取局部特征。此外,解码器还进行了多项优化:
- 掩码注意力:通过限制交叉注意力的范围,提高模型对小目标的分割性能。
- 多尺度特征利用:将不同分辨率的特征分别输入到 Transformer 解码器的不同层中,以更好地处理小目标。
- 优化训练过程:调整自注意力和交叉注意力的顺序,使查询特征可学习,并移除 dropout,从而提高计算效率。
4. 损失计算
Mask2Former 在训练时采用了一种高效的损失计算方式。它通过随机采样点计算掩码损失,而不是在整个掩码上计算损失。具体来说:
- 匹配损失(Matching Loss):在 Transformer 预测类别时,采用均匀采样计算损失。
- 最终损失(Final Loss):采用重要性采样(importance sampling),针对不同的预测结果采样不同的点计算损失。这种策略显著减少了显存占用,提高了训练效率。
Q:Mask2Former 是如何通过掩码注意力(Masked Attention)提升实例分割性能的呢?
相关资源
项目
- facebookresearch/Mask2Former: Code release for “Masked-attention Mask Transformer for Universal Image Segmentation”
- Mask2former Demo - a Hugging Face Space by hugging-fellows
- zzubqh/Mask2Former-Simplify
- https://bowenc0221.github.io/maskformer/
博客
- 【计算机视觉】MaskFormer:将语义分割和实例分割作为同一任务进行训练_语义分割标签作为输入-CSDN 博客
- LLM 大模型: Maskformer/Mask2Former 语义分割原理详解 - 第七子 007 - 博客园
论文
- [2112.01527] Masked-attention Mask Transformer for Universal Image Segmentation
Loading comments...