分割模型Maskformer系列

maskformer:Per-Pixel Classification is Not All You Need for Semantic Segmentation

论文地址:https://arxiv.org/pdf/2107.06278 

1.概述

        传统的语义分割方法通常采用逐像素分类(per-pixel classification),而实例分割则使用不同的掩模分类(mask classification)方法。能否用掩膜分类的方法处理语义分割呢?当然是可以的。(掩膜分类:与逐像素分类不同,掩膜分类不是对每个像素单独分类,而是预测整个区域的掩膜(即区域的边界和形状),并将整个掩膜分类到一个类别。这种方法识别整个对象或区域,而不仅仅是单个像素。)

        MaskFormer方法通过预测与单一类预测关联的一组二进制掩模来解耦图像分割和分类的过程,提供了一种比逐像素分类更灵活的方法。掩模分类足够通用,可以同时解决语义和实例级别的分割任务。

 2.详细流程

        MaskFormer 是一种用于图像分割的模型,它整合了多个组件来处理语义和实例级分割任务。这个模型包括三个主要模块:像素级模块(Pixel-level module)、Transformer模块(Transformer module)和分割模块(Segmentation module)。具体流程为:

(1)像素级模块(Pixel-level Module)

  • 输入和特征提取:输入是一张大小为 H×W 的图像。通过一个骨架网络(backbone),例如ResNet或VGG,提取低分辨率的特征图 F。这个特征图的尺寸为C_{F}\times\frac{H}{S}\times\frac{W}{S},其中C_{F}是通道数,S 是步长(通常设为32)。
  • 特征上采样:像素解码器(pixel decoder)逐渐上采样这些特征,生成每像素嵌入 pixel×pixel​。这个过程旨在从低分辨率特征图中恢复更详细的空间信息,为后续的掩模预测提供支持。

(2)变换器模块(Transformer Module)

  • 生成掩模嵌入:变换器解码器(transformer decoder)接收上采样的像素嵌入,并使用 N 个位置嵌入(查询)生成 N 个掩模嵌入𝑄。这些嵌入捕捉图像中每个潜在分割区域的全局信息。
  • 并行处理:解码器并行输出所有预测,每个嵌入对应一个特定的掩模预测。

(3)分割模块(Segmentation Module)

  • 分类和掩模预测:应用线性分类器和 softmax 激活函数在掩模嵌入上,生成每个掩模的类别概率预测 p_{i}。此外,通过多层感知机(MLP)处理掩模嵌入𝑄,生成掩模m_{i}的二进制预测。
  • 二值掩模生成:使用点积操作将每个掩模嵌入与对应的像素嵌入结合,然后通过 sigmoid 激活函数生成最终的二进制掩模 m_{i}​。

(4)掩模分类推理(Mask-Classification Inference)

  • 通用推理:将图像分割为若干个掩模区域,通过匹配每个像素的最大类别概率和掩模概率来分配像素。
  • 语义推理:为语义分割任务专门设计,通过矩阵乘法合并所有二进制掩模和它们的类别预测,生成每个像素的类别标签。

3.实验

 mask2former

Masked-attention Mask Transformer for Universal Image Segmentation
论文地址: https://arxiv.org/pdf/2112.01527

1.概述

        Maskformer存在着计算量大、收敛困难的问题,针对于这个问题,这篇论文提出了Mask2former,这种架构的关键特点是:

  • 掩码注意力(Masked Attention):该机制通过在Transformer解码器中对预测的掩码区域内的特征进行聚焦,从而允许模型在保持高效性的同时提取出具有高度局部相关性的特征。

  • 多尺度高分辨率特征利用:为了改善对小物体的分割效果,作者提出在不同的Transformer解码器层中使用来自像素解码器的不同分辨率的特征图。

  • 优化的注意力顺序和查询特征学习:通过改变自注意力和交叉注意力的顺序,使查询特征可学习,并移除dropout,这些优化措施提高了性能并减少了所需的计算量。

  • 训练效率的提高:通过在计算掩码损失时只采样随机点而非全图,显著减少了训练过程中的内存需求,使得模型更易于训练和部署。

2.具体流程

        Mask2former主要建立在Maskformer的基础之上。

(1)Transformer解码器与掩码注意力

        Mask2Former引入了掩码注意力机制。这种注意力机制的核心是在预测掩码的前景区域内约束交叉注意力,从而提取局部化的特征。这一策略旨在提高模型处理小对象的能力,并通过以下几种方法优化模型性能:

掩码注意力
  • 基本概念:掩码注意力是一种交叉注意力的变体,它只在预测掩码的前景区域内聚焦,而不是整个特征图。
  • 实现方式:通过修改标准交叉注意力的注意力矩阵,使其在预测掩码的有效区域内应用softmax操作,通过将背景区域值置为负无穷从而排除背景区域,实现局部聚焦。

高分辨率特征
  • 策略描述:为了在不显著增加计算负担的情况下处理小对象,Mask2Former引入了一种多尺度策略,利用像素解码器输出的多尺度特征图。这些特征图按从低到高的分辨率供给给Transformer解码器的不同层,从而使每一层都能接收到适合其处理需求的特征级别。
  • 细节实现:例如,特征图的分辨率可以是1/32、1/16、1/8原图大小,通过这种方法,可以在不同层上应用不同分辨率的特征图,以此优化性能并减少计算资源的消耗。

优化改进
  • 解码器改进:在标准的Transformer解码器层中,包含自注意力模块、交叉注意力和前向馈网络(FFN)。为了提高效率和性能,Mask2Former在这一结构上做出了调整,包括改变自注意力和交叉注意力的顺序,使查询特征可学习,并去除dropout。
  • 训练效率提升:通过在匹配和最终损失计算中使用采样点而非完整掩码,显著降低了训练过程中的内存需求,从18GB减少到6GB,这使得模型在有限的计算资源下更加易于训练和使用。

3.实验

在多个数据集上实现了新的sota

  

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

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

相关文章

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压,可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器: yum 是基于 Red Hat 的 Linux 发行版(如 CentOS、…

CSRF漏洞简介

csrf简介 CSRF 全称为跨站请求伪造( Cross-site request forgery ),是一种网络攻击方式,在 CSRF 的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击&#xf…

Lora基础炼丹学习笔记

1、收集数据集 20-30张人物各个角度、各个姿势的图片 2、图片预处理 裁剪 打标签 裁剪必须也要512 * 512 ,因为sd1.5就是用这个尺寸训练的,可以使用后期处理 打标可以勾选这个,Deepbooru对二次元画风更友好 打标也可以使用wb14-tagger的…

Flink checkpoint 源码分析- Checkpoint snapshot 处理流程

背景 在上一篇博客中我们分析了代码中barrier的是如何流动改的。Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析-CSDN博客 最后跟踪到了代码org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate#handleEvent 现在我们接着跟踪相应代…

FTTR(光猫)ITMS注册NCE纳管

ITMS注册 TR069交互过程: 1.1. TR069交互—主动连接机制 主动连接机制是指CPE主动发出请求连接事件(事件可以为: 0 BOOTSTRAP; 1 BOOT; PERIODIC等等)给ACS。在连接建立之后才能进行业务处理(通过调用RPC方法实现)。 备注:政企…

2024.5.8

聊天框完善 #include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//设置窗口大小this->resize(400,560);//设置窗口图标和标题this->setWindowTit…

Android C++ 开发调试 LLDB 工具的使用

文章目录 调试环境准备基础命令Breakpoint CommandsWatchpoint CommandsExamining VariablesEvaluating ExpressionsExamining Thread StateExecutable and Shared Library Query Commands 参考: Android 中在进行 NDK 开发的时候,我们经常需要进行 C 代…

隐式3D形状表示:Occupancy Networks

OccNet 的关键思想是隐式地表示3D形状,而不是显式地表示。与直接编码形状几何信息不同,OccNet 将形状的表面建模为非线性分类器的决策边界。 隐式表示:Occupancy Networks 将 3D 形状表示为非线性分类器函数的决策边界 f θ : R 3 X → [ 0…

2024年颠覆商业模式《本草生活》项目,巧妙三招营销引流裂变套路

2024年颠覆商业模式《本草生活》项目,巧妙三招营销引流裂变套路 文丨微三云营销总监胡佳东,点击上方“关注”,为你分享市场商业模式电商干货。 - 引言:现如今流量枯竭、降本增效、红利不再已是线上营销的常态,互联网…

静态照片怎么合成gif?详细介绍一个方法

我们在各大平台中都能看到各种样式的gif动图。Gif动图其实就是由一帧一帧的静态图片合成的动态效果的gif,想要制作gif动画可以通过使用在线图片合成(https://www.gif5.net/)工具-GIF5工具网,手机、pc均可操作,只需要上…

nestjs 全栈进阶--自定义装饰器

视频教程 20_nest中自定义装饰器_哔哩哔哩_bilibili nest new custom-decorator -p pnpm pnpm start:dev 在Nestjs 中我们使用了大量装饰器 decorator ,所以Nestjs 也允许我们去自定义装饰器。 1. 自定义方法装饰器 nest g decorator aaa --flat 它生产的代码…

详细分析McCabe环路复杂度(附例题)

目录 前言1. 基本知识2. 例题 前言 该知识点常出在408或者软考中,对此此文重点讲讲理论知识以及例题 对于例题平时看到也会更新 1. 基本知识 McCabe环路复杂度是一种用于衡量软件代码复杂性的指标,主要是通过计算代码中的控制流图中的环路数量来衡量…

机房——蓝桥杯十三届2022国赛大学B组真题

问题分析 这题用深搜广搜都能做,不过我更倾向于用广搜,因为广搜能更容易找到目标点。那么是采用结构体存储边还是采用二维数组存储临接矩阵呢?我们注意到n的取值范围为1e5,用二维数组哪怕是bool类型就需要至少1e10Byte的连续空间,这个空间太大…

5V升8.4V2A升压恒压WT3231

5V升8.4V2A升压恒压WT3231 WT3231 是一种高性能直流-直流(DC-DC)转换器,集成了能够承受10A电流和26mΩ低导通电阻的功率MOSFET。该转换器能提供高达12V的稳定输出电压,并具有固定600KHz开关频率,使得小型外部电感和电…

解决github无法克隆私有仓库,Repository not found问题(2024最新)

一、背景 这个问题出现,是你用了其他主机设备,需要重新clone私有库时,发现一直报找不到仓库,如下报错: remote: Repository not found.二、解决方法 (1)账号密码方式(已不支持&am…

构建自己的docker镜像node.js

学习资源: 构建自己的 Docker 镜像_哔哩哔哩_bilibili 针对其中的一些比较困难的点写篇文章。 以下是对app.js的注释: // 使用 Koa 框架搭建 Node.js 应用的示例代码// 这两行代码引入了 koa 模块,并创建了一个新的 Koa 应用实例&#xf…

C++之QT文本处理QDir、QFileDialog、QStringList、QFile

一、相应的头文件 #include <QFileDialog> #include <QDir> #include <QStringList> 二、简介 1.QFileDialog 实际效果如下&#xff1a;比如需要选择打开的文件夹或者文件名&#xff0c;通过调用资源管理器的方式进行可视化操作。 代码示例为&#xff1a…

gitlab集群高可用架构拆分部署

目录 前言 负载均衡器准备 外部负载均衡器 内部负载均衡器 (可选)Consul服务 Postgresql拆分 1.准备postgresql集群 手动安装postgresql插件 2./etc/gitlab/gitlab.rb配置 3.生效配置文件 Redis拆分 1./etc/gitlab/gitlab.rb配置 2.生效配置文件 Gitaly拆分 1.…

五月加仓比特币

作者&#xff1a;Arthur Hayes Co-Founder of 100x. 编译&#xff1a;Liam 编者注&#xff1a;本文略有删减 (以下内容仅代表作者个人观点&#xff0c;不应作为投资决策的依据&#xff0c;也不应被视为参与投资交易的建议或意见&#xff09;。 从四月中旬到现在&#xff0c;当你…

flask框架的初步认识

flask框架的初步认识 这是一个轻量级的网页框架&#xff0c;在运行后&#xff0c;就相当于服务器&#xff0c;当用户输入URL就会触发对应的事件调用方法&#xff0c;返回给用户一个网页文件&#xff0c;并通过自动识别html标签&#xff0c;来为用户呈现对应的样式和效果&#…