《Mask2Former》算法详解

文章地址:《Masked-attention Mask Transformer for Universal Image Segmentation》
代码地址:https://github.com/facebookresearch/Mask2Former

文章为发表在CVPR2022的一篇文章。从名字可以看出文章像提出一个可以统一处理各种分割任务(全景分割、语义分割、实例分割)的网络。

这里稍微通俗的解释一下上述的几个分割任务:
全景分割:分割的结果有背景概念(天空、大海),有实例概念(person1、person2、person2)。
语义分割:只有类别概念,比如上述的person1、person2、person3都属于people这一类,不区分每个实例。且包含背景类别的识别。
实例分割:只有前景类别的概念,例如只有人、猫、狗等类别,没有天空大海这一类背景类别。且前景类别是有实例概念的。

更详细一点的说,在coco数据集里面定义,背景类称为stuff类别,这一类类别是没有边界的概念,例如一张图只有一片天空。前景类别称为things类别。

本文提出的网络就是可以一次性处理上述几个分割任务,而不用向之前的网络,一个任务去处理特定的一种任务。如下图所示

上图不仅可以看出不同任务的示意,还可以看出文章的网络在各个任务上表现都是SOTA的。

一、网络结构

文章采用的网络架构与MaskFormer 一致的。该类架构由三部分组成,一个backbone用于提取图片的特征,一个pixel decoder用于将主干网络提前的特征进行上采样生成高分辨率的图像特征,一个transformer decoder用于根据图像特征来处理object queries。最终网络根据pixel decoder输出的高分辨率的图像特征和transformer decoder输出的object queries生成最终的预测mask。
该结构能够很好的处理各种分割任务,原因就是输出对每个mask预测一个类别,这样不同的任务只是定义的不同类别而已。

具体的Mask2Former的示意图如下图所示,左边为整体的框架,右边为Transformer decoder with masked attention结构:

1.1 Transformer decoder with masked attention

有文章研究全局的特征信息对图像分割任务是非常重要的,但是也有文章证明对于transformer-based的结构来说,全局的特征信息会导致cross-attention收敛变慢,因为cross-attention需要很多轮的训练才能关注到需要关注的对应的物体区域上。

文章假设局部特征已经可以很好的去更新query feature了,而全局特征可以通过self-attention结构来学习。基于这假设,文章提出了masked attetion结构。

标准的cross-attetion结构用公式表示如下所示:
X l = s o f t m a x ( Q l K l T ) V l + X l − 1 X_l = softmax(Q_lK^T_l)V_l + X_{l-1} Xl=softmax(QlKlT)Vl+Xl1
其中,l表示当前层的索引, X l ∈ R N × C X_l\in R^{N\times C} XlRN×C表示l层的N个C维的query features,而 Q l = f Q ( X l − 1 ) ∈ R N × C Q_l=f_{Q}(X_{l-1})\in R^{N\times C} Ql=fQ(Xl1)RN×C. X 0 X_0 X0表示Transformer decoder的输入。 K l , V l ∈ R H l W l × C K_l,V_l\in R^{H_l W_l \times C} Kl,VlRHlWl×C为图像特征经过 f K ( ⋅ ) f_K({\cdot}) fK() f V ( ⋅ ) f_V({\cdot}) fV()变化后的结果,其中 H l H_l Hl W l W_l Wl是图像特征的分辨率。上述的 f Q f_Q fQ f K f_K fK f V f_V fV都是线性变换层。

本文提出的masked attetion模块,用公式表示如下:
X l = s o f t m a x ( M l − 1 + Q l K l T ) V l + X l − 1 X_l = softmax(M_{l-1}+Q_lK^T_l)V_l + X_{l-1} Xl=softmax(Ml1+QlKlT)Vl+Xl1
其中attetion mask M_{l-1}中位置(x,y)的值用如下公式计算得到:
M l − 1 ( x , y ) = { 0 i f M l − 1 ( x , y ) = 1 − ∞ o t h e r w i s e M_{l-1}(x, y)=\left\{ \begin{aligned} 0 \quad if M_{l-1}(x,y) = 1\\ -\infty \quad otherwise \end{aligned} \right. Ml1(x,y)={0ifMl1(x,y)=1otherwise
这里 M l − 1 ∈ 0 , 1 N × H l W l M_{l-1}\in {0, 1}^{N\times H_l W_l} Ml10,1N×HlWl是根据阈值为0.5对Transformer decoder l-1层的输出进行resize后的二值化的结果。 resize后的分辨率大小和 K l K_l Kl一样。 M 0 M_0 M0是通过 X 0 X_0 X0二值化得到的。

1.2 High-resolution features

高分辨率的特征能够改善模型的效果,但是也每次都采用高分辨率的特征对于计算量要求也非常大。为了提升效率,文章输入给Transformer decoder层的特征采用不同分辨率的图片特征。
更详细说明,pixel decoder输出的图像特征大小分别为原图的1/32, 1/16, 1/8。对于每个分辨率的图片,在给到Transformer decoder之前,会加入sinusoidal positional embedding e p o s ∈ R H l W l × C e_{pos}\in R^{H_l W_l \times C} eposRHlWl×C和一个可学习的scale-level embedding e l v l ∈ R 1 × C e_{lvl}\in R^{1\times C} elvlR1×C。Transformer decoder对这种三层Transformer decoder结构重复L次。

1.3 Optimization improvements

这里针对普通的Transformer decoder layer进行改进。普通的Transformer decoder layer处理query features的顺序为self-attention module, cross-attention module,feed-forward network。query feature( X 0 X_0 X0)是初始化为0的特征。dropout用在residual connections和attention maps结构中。

文章对上述三点进行改进,文章认为self-attention只有图片特征的输入,没啥信息可以学习,为了提高计算效率,将self-attention、cross-attention调换了顺序。query feature( X 0 X_0 X0)变成可学习的特征。去除dropout。

二、提升训练效率

因为对高分辨率的mask进行预测,对显存的消耗很大,例如上一版的MaskFormer一个图片训练需要32G的显存。
受到PoinRend和Implicit PointRend文章的启发,训练分割任务的网络时,不需要计算整个mask的loss,只需要计算K个随机采样点的loss即可。
在训练时,有matching-loss(Transformer结构预测类别时特有的匹配loss)和final loss(匹配好后,计算预测结果和gt的loss)。
在计算matching-loss时,采用均匀采样采相同的K个点计算loss。
在计算final loss时,采用importance sampling,给每个不同的预测结果采不同的K个点进行计算loss。
这样的loss计算方式可以减少三倍的显存占用量,从而提高网络训练效率。

三、网络具体实现

  1. Pixel decoder. 采用multi-scale deformable attention(MSDeformAttn)做为pixel decoder结构,采用6层MSDeformAttn处理1/8,1/16,1/32大小的图片feature,并用一个上采样生成1/4的图片feature。
  2. Transformer decoder. L=3(共9层),100个queries(N=100), 在Transformer decoder layer的每个中间层度有一个辅助loss(9层的输出都有一个辅助loss来指导学习1.1中的M)
  3. Loss weights. 对于mask loss,文中采用binary cross-entropy loss和 dice loss一起,即 L m a s k = λ c e L c e + λ d i c e L d i c e L_{mask}=\lambda_{ce}L_{ce}+\lambda_{dice}L_{dice} Lmask=λceLce+λdiceLdice,其中 λ c e = 5.0 , λ d i c e = 5.0 \lambda_{ce}=5.0, \lambda_{dice}=5.0 λce=5.0,λdice=5.0. final loss是mask loss和classfication loss一起计算,即 L m a s k + λ c l s L c l s L_{mask}+\lambda_{cls}L_{cls} Lmask+λclsLcls,其中当有匹配的gt时 λ c l s = 2.0 \lambda_{cls}=2.0 λcls=2.0,当匹配的为no object时, λ c l s = 0.1 \lambda_{cls}=0.1 λcls=0.1
  4. post-processing. 对于全景和语义分割来说,后处理方式同MaskFormer,输出对应的mask以及其对应的类别。对于实例分割,为了输出对应实例的分割,采用类别的分数和mask的平均分数相乘得到每个实例的分数。

到这里该算法的基本内容都介绍完了,具体的训练参数还有训练数据以及数据结果可以查看文章找到更详细的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/674496.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初始Linux(基础命令)

前言: 我们不能总沉浸在编程语言中,虽然代码能力提升了,但是也只是开胃小菜。我们要朝着更高的方向发展。 最近小编一直在刷力扣,以至于博客更新的比较少。今天就带各位开始学习全新的知识——Linux.至于为啥要学? Lin…

【复杂网络】如何用简易通俗的方式快速理解什么是“相对重要节点挖掘”?

什么是相对重要节点? 一、相对重要节点的定义二、如何区分相对重要节点与重要节点?1. 相对重要性与节点相似性2. 识别相对重要节点的两个阶段第一阶段:个体重要性值的计算第二阶段:累积重要性值的计算 三、经典的相对重要节点挖掘…

HarmonyOS开发案例:【电子相册】

介绍 如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。 实现页面跳转时共享元素的转场动画效果。 实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 [Swiper]:滑块视图容器&#x…

Linux进程地址空间第三讲

至今为止, 我们所学到的大多数的知识, 包括语言, 数据结构, 动静态库等等的 都是在下面这3G, 也就是用户空间里的(进程等待, 信号之类的与内核有关的是在上面那1G里的) 所以对于我们来说, 我们…

ETLCloud工具怎么实现多流SQL实时运算?

多流SQL实时运算的特点和应用场景 多流SQL实时运算是一种先进的数据处理技术,它在大数据处理领域中扮演着至关重要的角色,尤其是在需要对多个数据流进行实时分析和处理的应用场景中。该技术结合了SQL(结构化查询语言)的易用性和流…

消费增值:让每一分钱都增值的新时代消费模式

是否曾思考过,在每次购物或服务消费时,你支付的款项究竟流向了何方?如今,我想向你揭示一种颠覆性的消费理念——消费增值。它不仅仅满足你的日常消费需求,更能让你的资金在消费的同时实现增值,为你打开全新…

企业邮箱是什么?怎么注册一个企业邮箱?

企业邮箱是什么?有什么特征?企业邮箱的特征就是以企业域名为后缀。企业通过企业邮箱能够提升自身的品牌形象,还能够提高员工的工作效率。作为企业的管理者来说,应该如何注册一个企业邮箱呢?小编今天就为您介绍下企业邮…

用户管理中心——数据库设计用户注册逻辑设计

用户管理中心——数据库设计&用户注册逻辑设计 规整项目目录1. 数据库自动生成器的使用实现基本的数据库操作(操作user表) 2. 注册逻辑的设计(1) 写注册逻辑(2) 实现(3) 测试代码 3. 遇到的问题 规整项目目录 utils–存放工具类,比如加密…

Parts2Whole革新:多参照图定制人像,创新自定义肖像生成框架!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! Parts2Whole革新:多参照图定制人像,创新自定义肖像生成框架! 引言:探索多条件人像生成的新篇章 在数字内容创作…

【计算机科学速成课】笔记三

文章目录 17.集成电路真空管时代晶体管时代集成电路时代印刷电路板时代光刻时代 17.集成电路 Over the past six episodes, we delved into software, 过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程 from early programming efforts to modern software engineerin…

PMBOK第七版,通往项目管理的新地图|分析2024软考光环PMP第六版培训课程

目录 文明福利 历次升级分析 2PMBOK第七版解读 1、和第六版保持一致:由知识体系指南和项目管理标准2部分构成。 2、区别于第六版的结构性颠覆:12原则、8大绩效域取代5大过程组、10大知识领域。 3PMBOK第七版VS第六版 4PMBOK第七版 就是带领我们寻找…

独有病眼花,春风吹不落。 (二维坐标压缩成一个点,并查集)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 3 8 1 1 D 1 1 R 1 2 D 2 1 D 2 2 R 3 1 R 3 2 R 2 3 D 输出 8 思路: 根据题意,要求连接线段后,操作多少次,连接的线段闭合&…