mask transformer相关论文阅读

前面讲了mask-transformer对医学图像分割任务是非常适用的。本文就是总结一些近期看过的mask-transformer方面的论文。
因为不知道mask transformer是什么就看了一些论文。后来得出结论,应该就是生成mask的transformer就是mask transformer。

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的模型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 | 掌握Matplotlib的可视化图表操作

Matplotlib是python的一个数据可视化库,用于创建静态、动态和交互式图表。它可以制作多种类型的图表,如折线图、散点图、柱状图、饼图、直方图、3D 图形等。以渐进、交互式方式实现数据可视化。当然博主也不能面面俱到的讲解到所有内容,详情请…

新特性Record最全用法总结---动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍: 1.2、Record的声明: 1.3、Record的创建: 1.4、Record使用举例: 1.5、Record-实例方法、静态方法 1.6、Record-三类构造方法 1.6.1、紧凑型构造、定制构造方法&#…

MySQL的启动与连接

一、启动MySQL服务 方式一:进入计算机管理界面,点击【服务】,找到【MYSQL80】,右键开启即可 方式二:以管理员身份打开powershell, 输入命令net start MYSQL80. 二、连接MySQL服务 进入MySQL的安装目录中的bin目录&a…

【jetson笔记】torchaudio报错

原因是因为pip安装的包与jetson不兼容导致 自己安装或者cmake编译也会报错 需要拉取官方配置好的docker镜像 拉取docker镜像 具体容器可以看官网,按照自己需求拉取即可 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml 如果其他包不需要只需要torc…

Supplier 惰性调用和 Future#get 同步等待调用结合

📖一、背景介绍 关于任务异步执行,两个点不可避免:异步结果和异步回调。 而在我的工程中有这样一段代码:使用 CompletableFuture 进行封装,可以异步执行,异步回调,通过 get() 等待异步任务的结…

ArcEngine添加点要素、线要素、面要素及学习总结

基于C#的ArcEngine二次开发教程(13):点、线、面要素的绘制_arcengine onmousedown-CSDN博客 https://www.cnblogs.com/cannel/p/11074343.html ArcEngine绘制点、线、多边形、矩形、圆形、椭圆的代码_arcengine 开发 生成矩形-CSDN博客 https…

《数学之友》期刊投稿方式投稿邮箱

《数学之友》是国家新闻出版总署批准的正规期刊,设置的栏目主要有:数学教育、教材研究、教学研究、数学建模、思想方法、数学学习、解题探索、CAI专题、复习考试、错例剖析等。从解题技巧方法、数学问题的溯源探微释疑到新课程背景下的教改教法教案&…

Qt事件处理,提升组件类

1.相关说明 1.提升组件QLabel的类&#xff0c;以实现双击功能 2.监控键盘事件&#xff0c;实现上下左右移动 3.鼠标点击获取坐标 2.相关界面 3.相关代码和操作 自定义类TMyLabel&#xff0c;父类为QLabel tmylabel.h #ifndef TMYLABEL_H #define TMYLABEL_H #include <QL…

thinkphp+vue+mysql旅游推荐攻略分享网站p0667

基于php语言设计并实现了旅游分享网站。该系统基于B/S即所谓浏览器/服务器模式&#xff0c;应用thinkphp框架&#xff0c;选择MySQL作为后台数据库。系统主要包括用户、景点信息、攻略分类、旅游攻略、门票购买、留言反馈、论坛管理、系统管理等功能模块。运行环境:phpstudy/wa…

CSC7225

CSC7225 为高性能电流模式 PWM 开关电源控制器&#xff0c;满足绿色环保标准&#xff1b;广泛适用于经济型开关电源&#xff0c;如 DVD、机顶盒、传真机、打印机、LCD 显示器等。CSC7225 采用 DIP-8 封装。 CSC7225主要特点  CSC7225内置 700V 高压功率开关管&#xff0c;外…

解读人工智能:AI时代的奇迹与担忧

随着科技的迅猛发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;逐渐进入人们的视野。那么&#xff0c;什么是人工智能呢&#xff1f;简单来说&#xff0c;它是一种模拟人类智能的技术&#xff0c;通过计算机系统实现人类所具备的思…

GBASE南大通用数据库GBase 8s常见问题解析 -- 查找锁会话并解锁

本文摘自GBASE南大通用社区&#xff0c;by&#xff1a;wty&#xff0c;原文请点击&#xff1a;GBase 8s常见问题 -- 查找锁会话并解锁|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 问题现象 执行SQL时报错 244: Could not do…

6.PR-AUC机器学习模型性能的常用的评估指标

PR-AUC PR-AUC&#xff0c;即精确率-召回率曲线下的面积&#xff0c;是一种用于评估分类模型性能的指标。与ROC-AUC&#xff08;接收者操作特征曲线下的面积&#xff09;不同&#xff0c;PR-AUC关注的是精确率和召回率之间的关系&#xff0c;特别适用于不平衡数据集。 精确率…

【大数据】YARN调度器及调度策略

YARN调度器 YARN负责作业资源调度&#xff0c;在集群中找到满足业务的资源&#xff0c;帮助作业启动任务&#xff0c;管理作业的生命周期。 ​ YARN技术架构 ​ 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;先进先出调度器&#xff08;First In First Out&…

雪花算法生成ID【细糠】

目录 &#x1f9c2;1.ID生成规则 &#x1f953;2.UUID &#x1f32d;3.数据库自增主键 &#x1f37f;4.雪花算法 1.ID生成规则 1. 全局唯一2.趋势递增3.单调递增4.信息安全5.含时间戳 2.UUID UUID(Universally Unique Identifier)的标准型式包含32个16进制数字,以连字…

Windows和Linux访问不了GitHub的解决方法

一、Windows访问不了GitHub 问题描述 使用Windows访问GitHub时&#xff0c;出现如下情况&#xff0c;显示无法访问。 解决方案&#xff1a; 打开域名查询网站&#xff1a;https://tool.chinaz.com/dns 输入GitHub的域名&#xff0c;点击立即检测。 出现如下页面&#xff0c…

【51单片机】点亮第一个LED灯

目录 点亮第一个LED灯单片机 GPIO 介绍GPIO 概念GPIO 结构 LED简介软件设计点亮D1指示灯LED流水灯 橙色 点亮第一个LED灯 单片机 GPIO 介绍 GPIO 概念 GPIO&#xff08;general purpose intput output&#xff09; 是通用输入输出端口的简称&#xff0c; 可以通过软件来控制…

泥石流监测识别摄像机

泥石流监测识别摄像机是一种基于图像识别技术的监测设备&#xff0c;主要用于实时监测和识别泥石流的发生和演变过程&#xff0c;以预警和减灾为目的。这种摄像机通常采用高清晰度摄像头和图像处理系统&#xff0c;能够实时拍摄泥石流事件&#xff0c;并对图像进行处理和分析&a…

Spring Boot 整合 Camunda 实现工作流

工作流是我们开发企业应用几乎必备的一项功能&#xff0c;工作流引擎发展至今已经有非常多的产品。最近正好在接触Camunda&#xff0c;所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入&#xff0c;希望本文对您有所帮助。如果您是一名Java开发或Spring框架…

【C++ 自写String】

CString.hpp #include <iostream> #include <string.h>#pragma warning(disable:4996) using namespace std;class CString { private:int len;char* data;public:CString():data(nullptr),len(0) {cout << "0空构造\n";}CString(const char* _da…