【论文笔记】Mask2Former: Masked-attention Mask Transformer for Universal Image Segmentation

在这里插入图片描述

论文地址:http://arxiv.org/abs/2112.01527
项目地址:https://bowenc0221.github.io/mask2former

本文提出了用于通用图像分割(全景、实例或语义)的 Masked-attention Mask Transformer (Mask2Former)

Mask2Former建立在一个简单的元框架 (MaskFormer)和一个新的 Transformer 解码器上,其关键组成部分为掩码注意力(Masked-attention),通过将交叉注意力限制在预测的掩码区域内来提取局部特征。

与为每个任务(全景、实例或语义)设计专门模型相比,Mask2Former 节省了 3 倍的研究工作,并且有效节省计算资源。

Mask2Former 在全景分割(COCO 上的 57.8 PQ)、实例分割(COCO 上的 50.1 AP)和语义分割(ADE20K 上的 57.7 mIoU)上都实现了SOTA。

本文提出的关键改进在于:
1、在 Transformer 解码器中使用屏蔽注意力,将注意力限制在以预测段为中心的局部特征上(根据分组的特定语义,可以是对象或区域)。与关注所有位置的标准 Transformer 解码器中使用的交叉注意力相比,掩码注意力可以得到更快的收敛和更好的性能。
2、使用多尺度高分辨率特征,帮助模型分割小对象/区域。
3、提出了优化改进,例如切换自注意力和交叉注意力的顺序,使查询特征可学习,去除dropout;所有这些都无需额外计算即可提高性能。
4、通过在K个随机采样点上计算掩码损失,在不影响性能的情况下节省了 3 倍的训练内存。

模型整体架构

本文的模型整体架构来自于MaskFormer的简单的元架构,由三个组件组成:

  1. 主干特征提取器:从图像中提取低分辨率特征的;
  2. 像素解码器:从主干的输出中逐渐上采样低分辨率特征生成高分辨率的每像素嵌入;
  3. Transformer 解码器:对图像特征进行操作以处理对象查询。 最终的二元掩码预测是从带有对象查询的每像素嵌入中解码的。

本文主要改进在Transformer 解码器中。

屏蔽注意力(Masked Attention)

Masked Attention 操作符,通过将交叉注意力限制在每个查询的预测掩码的前景区域内来提取局部特征,而不是关注完整的特征图。

标准交叉注意(带有残差路径)计算公式如下

掩码注意力通过添加掩码值调节注意力矩阵

高分辨率特征

高分辨率特征可以提高模型性能,特别是对于小目标。但增加了对计算的要求。
本文提出了一种有效的多尺度策略来引入高分辨率特征,同时控制计算量的增加。
利用一个由低分辨率和高分辨率特征组成的特征金字塔,并将多尺度特征的不同尺度特征分别馈送到不同的Transformer解码器层。
对于每个分辨率,添加了一个正弦位置嵌入以及一个可学习的尺度级嵌入
重复3层Transformer 解码器L次,最终的 Transformer 解码器因此具有 3L层。

Transformer 解码器优化改进

为了优化 Transformer 解码器设计,进行了以下三点改进:

1、切换自注意力和交叉注意力(新的“掩蔽注意力”)的顺序以使计算更有效:对第一个自注意力层的查询特征还不依赖于图像特征,因此应用自注意力不会产生任何意义。
2、使查询特征(X0)也可学习(仍然保留可学习的查询位置嵌入),并且可学习的查询特征在用于 Transformer 解码器的预测掩码(M0)之前直接受到监督。 作者发现这些可学习的查询特征功能类似于region proposal network [43],并且能够生成掩码proposals。
3、dropout 不是必需的,通常会降低性能。作者因此在解码器中完全删除了 dropout。

提高训练效率

训练通用架构的一个限制是由于高分辨率掩码预测而导致的大量内存消耗,这使得它们比对内存更友好的专用架构更难以接收。例如,MaskFormer 只能在具有 32G 内存的 GPU 中容纳单个图像。

受 PointRend [30] 和 Implicit PointRend [13] 的启发,可以通过在 K个随机采样点而不是整个掩码上计算掩码损失来训练分割模型。在本文中设置K=12544,即112×112点。

本文在匹配损失最终损失计算中使用采样点计算掩码损失。

  • 在构建二分匹配成本矩阵的匹配损失中,对所有预测和真实掩码的相同的 K 点集进行均匀采样。
  • 在预测之间的最终损失及其匹配的ground truth中,使用重要性采样[30]为不同的预测和ground truth对不同的K点集进行采样。

这种训练策略有效地将训练内存减少了 3 倍,从每张图像 18GB 到 6GB。

训练细节

使用 AdamW [38] 优化器步进式学习率计划
对所有主干使用 0.0001 的初始学习率和 0.05 的权重衰减
模型训练 50 个epochs,批次大小为 16
对于数据增强,使用大规模抖动 (LSJ) 增强 ,随机尺度从 0.1 到 2.0 范围内采样,然后是固定大小的裁剪到 1024×1024。

Masked-attention(掩模注意力)是一种在自然语言处理中常用的技术。它被用于解决序列模型中的“未来问题”——在模型预测序列中的某个位置时,只能看到该位置之前的标记,无法看到之后的内容。因此,为了能够准确预测目标位置,我们需要一种机制来对未来信息进行掩盖。 掩模注意力通过在注意力机制中引入掩模矩阵来处理这个问题。掩模矩阵是一个与输入序列相同形状的二进制矩阵,其中元素为0表示需要进行掩模的位置,而1表示不需要掩模的位置。在计算注意力权重时,将掩模位置的对应权重置为负无穷大,这样在softmax操作中就会得到极小值,从而有效地屏蔽了未来信息。 与传统的注意力机制相比,掩模注意力不仅考虑了当前位置之前的信息,还能够建模未来的约束,因此在长序列任务中效果更好。掩模注意力广泛用于许多NLP任务中,如语言建模、翻译、问答等。 除了基本的掩模注意力,还有一些变种模型。例如,自回归变换器(Autoregressive Transformer)将掩模延伸到了所有层,以确保训练过程中不会泄露未来信息。此外,多头掩模注意力使用多个掩模头进行预测,以增加模型的表示能力。 需要注意的是,掩模注意力在计算效率上存在一定的挑战。由于矩阵运算的复杂度,掩模的引入会导致计算量增加。因此,研究人员一直在探索如何通过优化计算方法来提高效率。 综上所述,masked-attention是一种解决序列模型“未来问题”的注意力机制。它通过引入掩模矩阵来屏蔽未来信息,从而能够更准确地预测目标位置。在自然语言处理中,掩模注意力被广泛应用于各种任务,并且不断有新的变种模型出现。但是,由于计算复杂度的挑战,优化计算方法仍然是一个值得研究和探索的方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值