mask transformer相关论文阅读

news2024/11/15 8:26:42

前面讲了mask-transformer对医学图像分割任务是非常适用的。本文就是总结一些近期看过的mask-transformer方面的论文。
因为不知道mask transformer是什么就看了一些论文。后来得出结论,应该就是生成mask的transformer就是mask transformer。
相关论文:
1.DETR(eccv2020):https://link.springer.com/chapter/10.1007/978-3-030-58452-8_13
2.MaX-Deeplab(CVPR 2021):https://openaccess.thecvf.com/content/CVPR2021/html/Wang_MaX-DeepLab_End-to-End_Panoptic_Segmentation_With_Mask_Transformers_CVPR_2021_paper.html
3.MaskForm(NeurIPS 2021):https://papers.nips.cc/paper/2021/file/950a4152c2b4aa3ad78bdd6b366cc179-Paper.pdf
4.Mask2Form(CVPR2022):https://ieeexplore.ieee.org/document/9878483
5.kMaX-DeepLab(ECCV2022):https://link.springer.com/chapter/10.1007/978-3-031-19818-2_17

DETR

很多这些论文都是受到DETR的启发得到的。DETR为数不多的目标检测里端到端的模型,它把目标检测看作集合预测问题,不需要人为一些先验和调参,没有了NMS,让模型训练和部署变得容易。
在这里插入图片描述
简单描述一下它训练过程就是图片经过CNN得到的特征和位置编码(给定的)相加放入到Transformer进行编码。学习全局的特征,encoder中有6个transformer block进行编码,编码得到的特征进入到decoder中。object queries是可学习的变量。object queries与得到的特征进行cross attention(特征作为key,value,object queries作为queries),object queries也会进行self attention(以保证object queries之间相互通信,知道其他object得到的框是什么,避免冗余框)得到新的object queries。新的object queries进入FFN预测类别和box相关的参数。使用匈牙利算法选择合适的框输出。测试的时候设定置信度阈值。
DETR中使用了深监督(深监督)
DETR:对小目标检测不友好,后面分割也是改进让他有多尺度特征,能够有更好的性能。

MaX-DeepLab

问题:目前严重依赖于代理子任务和手工设计组件的全景分割流水线,例如框检测,非极大值抑制,事物-内容合并等。虽然这些子任务都是由领域专家来完成的,但是它们并不能全面地解决目标任务。
目的:全景分割可以使用端到端模型,不需要实例分割和语义分割相结合。
我不了解全景分割,全景分割好像之前也是很难是端到端的,MaX-DeepLab是一个端到端的模型,它简化了当前严重依赖代理子任务和手工设计组件的流水线,如盒子检测、非最大值抑制、东西合并等。下面这幅图就显示了之前全景分割方法和本文提出的方法,之前的方法依赖于代理子任务树。通过融合语义和实例分割结果,得到泛全景分割掩模。实例分割进一步分解为盒检测和基于盒的分割,而盒检测则通过锚回归和锚分类来实现。
在这里插入图片描述
我们的方法正确的分割出了狗和椅子。而基于锚点的方法因为狗和椅子的中心太相近所以导致分不出椅子和狗。基于边界框的方法由于椅子边缘有太低的置信度所以分割不出椅子。
在这里插入图片描述
全景分割的任务就是通过一幅图片获得很多类别标记的标签,我们的模型就是把图片分割成一组固定数量集合的类别标记的标签,预测的标签mask是软互斥的。mask的类别包含thing classes, stuff classes, 空集类别(没有物体)三种。把thing和stuff类别分割统一起来,去掉了合并操作。

类似于DETR,有没有觉得这个memory bank和object query很相似。就是它们都能够端到端,不需要NMS和合并操作原因是它们都实现给定了一个数,就出100个框,就分割100个类或者物体,这个数量大于图片中含有最大物体数,所以有一些是没有类别的,所以对损失函数入手,从训练策略入手。DETR是使用了匈牙利算法匹配预测框,这个也是使用匈牙利算法匹配的分割图分类。它提出来了PQ来衡量这个匈牙利算法中每个选择的损失,PQ就是分类得到的概率乘以分割得到的Dice值。它的损失就是动态加权的CE Loss和Dice Loss,这个是匹配的损失。
在这里插入图片描述
不匹配的损失就是空集,预测空集这个类别的CE损失。
在这里插入图片描述
总损失就是匹配的损失加上不匹配的损失。两者加权和。
在这里插入图片描述
Transformer块实现了2D像素路径CNN和1D存储器路径之间的所有四种可能类型的通信:(1)传统的存储器到像素(M2P)注意力,(2)存储器到存储器(M2M)自我注意力,(3)允许像素从存储器中读取的像素到存储器(P2M)反馈注意力,以及(4)像素到像素(P2P)自我注意,实现为轴向注意力。
还有一个很大的堆叠了很多块的decoder,为了聚合多尺度特征。
最后输出是memory经过FC后得到的类别和解码器得到的经过上采样的mask预测和memory的进行点乘获得的mask。简单来说是这样。其中为了学习不同类别之间和类别背景之间的区别,引入了对比学习的损失。感兴趣的可以看原文。
在这里插入图片描述

MaskFormer

目的:掩码分类足够通用,可以使用完全相同的模型、损失和训练程序以统一的方式解决语义和实例级的分割任务。
这篇就简单列一下。就是把语义分割和实例分割统一用掩码分类来解决。
在这里插入图片描述
逐像素分类的语义分割对每个位置应用相同的分类损失。掩码分类预测一组二分割掩码,并为每个掩码分配一个类。
Architecture: pixel-level module, transformer module, segmentation module
为了训练掩码分类模型,预测集和真实标签集之间的匹配是需要的。由于预测集和真实标签集的大小通常不同,我们假设N≥Ngt,并用“无对象”标记填充真实标签集,以允许一对一匹配。对于语义分割,如果预测的数量N与类别标签的数量K匹配,则固定匹配是可能的。在这种情况下,第i个预测与具有类别标签i和。如果具有类标签i的区域不存在于真实标签中。在实验中,发现基于二部分匹配的分配比固定匹配显示出更好的结果。与使用边界框来计算匹配问题的预测和真实标签之间的分配成本的DETR不同,我们直接使用类和掩码预测,Lmask-cls即-第j个类的类别概率+第j个类别掩码的dice损失。除了Lmask-cls之外,大多数现有的掩码分类模型还使用辅助损失(例如,边界框损失或实例判别损失,前面MaX deeplab就是用的个体判别损失就是对比学习损失一种)。
在这里插入图片描述
分为三个部分:
Pixel-level module:编码器解码器架构,获得特征图和初始的分割预测。
Transformer module:类似于DETR object query那个decoder,query不断与特征进行交互获得全局信息,一部分用来分类,一部分作为mask embedding对初始的分割预测进行加权。
Segmentation module:queries经过分类头得到分类结果,queries与初始预测的mask进行点积得到最后的分割预测。
trick:概率掩码对的索引i有助于区分同一类的不同实例。最后,为了降低全景分割中的假阳性率,我们遵循之前的推理策略[4,24]。具体来说,我们在推理之前过滤掉低置信度预测,并去除其二进制掩码(mi>0:5)的大部分被其他预测遮挡的预测片段。

Mask2Former

目的:为了统一分割任务,就不要有什么语义分割、实例分割、全景分割了,给你统一起来,只用一个框架。
Architecture: a backbone feature extractor, a pixel decoder. a Transformer decoder
改进

  1. 在Transformer解码器中使用掩蔽注意力(就是前一层预测得到的mask用作当前层掩码),它将注意力限制在以预测片段为中心的局部特征上,这些片段可以是对象,也可以是区域,这取决于分组的特定语义。与关注图像中所有位置的标准Transformer解码器中使用的交叉注意力相比,我们的掩蔽注意力导致更快的收敛和改进的性能。
  2. 使用多尺度高分辨率特征来帮助模型分割小对象/区域。
  3. 我们提出了优化改进,如切换自注意和交叉注意的顺序,使查询特征可学习,并消除遗漏;所有这些都在无需额外计算的情况下提高了性能
  4. 我们通过计算几个随机采样点上的掩码损失,在不影响性能的情况下节省了3倍的训练内存。
    这些改进不仅提高了模型性能,而且大大简化了训练,使计算量有限的用户更容易访问通用体系结构。
    在这里插入图片描述
    其中还用了深监督的方法,DETR中也用了深监督。
    缺点:这表明,即使Mask2Former可以推广到不同的任务,它仍然需要针对这些特定任务进行训练。未来,我们希望开发一种模型,该模型可以针对多个任务甚至多个数据集只训练一次。

kMaX-DeepLab: k-Means Mask Transformer

解决的问题:用于视觉的transformer忽视了语言与图像的重要区别。这阻碍了像素特征和对象查询之间的交叉注意力学习。
目的:让transformer更加适合视觉任务。
重新思考了像素和对象查询之间的关系,并提出将交叉注意力学习重新表述为一个聚类过程。
Architecture:pixel encoder, enhanced pixel decoder, and kMaX decoder
与原始Mask Transformer的交叉注意力在大空间维度(图像高度乘以宽度)上执行softmax不同,我们的kMaX - DeepLab在聚类中心维度上执行argmax,类似于k - means像素-聚类分配步骤(伴随着一项艰巨的任务)。然后,我们通过基于像素-簇分配(通过它们的特征亲和度计算)的像素特征聚合来更新聚类中心,类似于k - means中心更新步骤。
在这里插入图片描述
整个模型分为两条路径:像素路径和聚类路径,分别负责提取像素特征和聚类中心。
在这里插入图片描述
在这里插入图片描述
以ResNet - 50和MaX - S为骨架的kMaX - DeepLab示例。FFN的隐藏维数为256。通过简单地更新像素编码器(用深蓝色标记),kMaX - Deep Lab的设计对不同的主干通用。增强型像素解码器和kMaX解码器分别用浅蓝色和黄色进行着色。
通过提出的单头k - means聚类代替多头交叉注意力来简化掩码变压器模型。通过建立传统k - means聚类算法和交叉注意力之间的联系,为分割任务定制了基于Transformer的模型。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构OJ题——二叉树前序、中序遍历非递归实现(Java版)

二叉树前序、中序遍历非递归实现 前序非递归遍历实现中序非递归遍历实现 前序非递归遍历实现 题目: 二叉树前序遍历非递归实现 总体思路:用非递归的方式模拟递归遍历。 以下图为例: 图示详解: 代码实现: /*** Defi…

【4.LCD显示】蓝桥杯嵌入式一周拿奖速成系列

系列文章目录 蓝桥杯嵌入式系列文章目录(更多此系列文章可见) 文章目录 系列文章目录LCD显示一、官方例程讲解二、main.c --> LcdProcess总结 LCD显示 因为官方给了我们LCD的例程,所以很easy,我们照着套就行 LcdProcess() 一、官方例程讲解 二、main.c --> LcdProcess…

143基于matlab的2D平面桁架有限元分析

基于matlab的2D平面桁架有限元分析,可以改变材料参数,输出平面结构外形,各桁架应力,位移及作用力。可查看节点力,程序已调通,可直接运行。 143 matlab 平面桁架 有限元分析 桁架应力 (xiaohongshu.com)

ubuntu下docker卸载和重新安装

卸载:步骤一:停止Docker服务 首先,我们需要停止正在运行的Docker服务。打开终端,执行以下命令: sudo systemctl stop docker 步骤二:删除Docker安装包 接下来,我们需要删除已经安装的Docker软件…

《WebKit 技术内幕》学习之六(3): CSS解释器和样式布局

3 WebKit布局 3.1 基础 当WebKit创建RenderObject对象之后,每个对象是不知道自己的位置、大小等信息的,WebKit根据框模型来计算它们的位置、大小等信息的过程称为布局计算(或者称为排版)。 图描述了这一过程中涉及的主要WebKit…

全球机器人产业:技术创新驱动下的市场与竞争新态势

原创 | 文 BFT机器人 近年来,随着颠覆性技术创新的不断涌现、市场新需求的迅速崛起以及外部冲击的深远影响,机器人产业正经历着前所未有的变革。在技术领域,机器人技术不断突破,智能化、自主化、协同化水平日益提升;在…

防火墙综合拓扑接口配置

目录 1、先给Server1、Server2,PC1、Client1、Client2、PC2配置IP、掩码、 网关。 2、LSW1 3、Cloud1 4、FW2 5、 Web界面配置防火墙 6、测试 1、先给Server1、Server2,PC1、Client1、Client2、PC2配置IP、掩码、 网关。 2、LSW1 [Huawei]int g …

明天见!跨越“白酒+文旅+文创”赛道,密鉴品牌将大幅焕新

执笔 | 洪大大 编辑 | 扬 灵 过去的2023年,外部环境的变化叠加产业周期的调整,使得行业呈现出更强的挤压态势,在此背景下,白酒品牌期望对各方资源进行高效整合与充分联动,以此来应对行业周期调整并适应产业升级步伐…

松散子序列(第十四届蓝桥杯省赛PythonB组)

给定一个仅含小写字母的字符串 s,假设 s 的一个子序列 t 的第 i 个字符对应了原字符串中的第 pi 个字符。 我们定义 s 的一个松散子序列为:对于 i>1 总是有 pi−pi−1≥2。 设一个子序列的价值为其包含的每个字符的价值之和(a∼z 分别为…

【江科大】STM32:I2C通信外设(硬件)

在将2C通信外设之前,我们先捋一捋,串口的相关特点来和I2C进行一个对北比。 首先: 1,大部分单片机,设计的PCB板均带有串口通信的引脚(也就是通信基本都借助硬件收发器来实现) 2.对于串口的异步时序&#xff…

Hudi学习笔记(一)

大数据发展背景 Hudi用于管理分布式文件系统上大型分析数据集存储,支持Spark和Flink整合。它能够是DFS数据集在分钟级时延内支持变更,也支持下游系统对这个数据集的增量处理。 学习目标 什么是数据湖为什么使用数据湖Hudi基本功能如何编译Hudi源码Hud…

4 课程分类查询

4 课程分类查询 4.1 需求分析 下边根据内容管理模块的业务流程,下一步要实现新增课程,在新增课程界面,有三处信息需要选择,如下图: 课程等级、课程类型来源于数据字典表,此部分的信息前端已从系统管理服…

SpringMVC第四天(SSM整合)

SSM整合流程 1.创建工程 2.SSM整合 ①Spring SpringConfig package com.cacb.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import;…

opencv#34 边缘检测(二)

Laplacian(拉普拉斯)算子 前面介绍的Sobel算子和Scharr算子存在的问题: 1.要分别计算两个方向(x,y)的边缘,之后将两方向的边缘进行叠加。 2.边缘与方向相关性较大。当我们通过Sobel算子提取x方向检测时,它所能够检测到的边缘都是一个沿着y…

如何在转接的NVME 固态盘上安装WIN 系统并引导启动

问题: 家里的台式机一直挂着一块128G的SSD固态盘,由于家里自己建了NAS存储,所以基本数据都在NAS里,台式机就没有挂机械盘了,但是最近台式机空间被系统侵蚀,显然就不够用了,除了清理系统&#xf…

八数码(BFS + 队列 + 哈希表)

这题虽然比较难,但仍然遵循BFS的思路图片引自我的上一篇文章: 走迷宫(BFS 队列)-CSDN博客 难点 (1)如何将一个二维数组表示的状态记录下来,并且需要便于知道某个状态是否访问过 &#xff0…

Biotin-PEG4-TSA,生物素-PEG4-酪胺,用于标记蛋白质、核酸等生物分子

您好,欢迎来到新研之家 文章关键词:Biotin-PEG4-Tyramide,Biotin-PEG4-TSA,生物素-PEG4-酪胺,Biotin PEG4 Tyramide,Biotin PEG4 TSA 一、基本信息 产品简介:Biotin PEG4 Tyramide is compos…

CSS 楼梯弹弹球

<template><view class="loader"></view> </template><script></script><style>body {background-color: #212121;/* 设置背景颜色为 #212121 */}.loader {position: relative;/* 设置定位为相对定位 */width: 120px;/* 设…

杰卡德距离(Jaccard Distance)

杰卡德距离&#xff08;Jaccard Distance&#xff09;&#xff0c;是用于衡量两个集合差异性的一种指标&#xff0c;它是杰卡德相似系数的补集&#xff0c;可以用来区分集合&#xff08;如知识图谱&#xff09;。 杰卡德相似系数 杰卡德相似系数&#xff08;Jaccard similari…

《Linux高性能服务器编程》笔记07

Linux高性能服务器编程 本文是读书笔记&#xff0c;如有侵权&#xff0c;请联系删除。 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第14章 多线程编程14.1 Linux线程概述14…