【论文笔记】SOTR: Segmenting Objects with Transformers

【题目】:SOTR: Segmenting Objects with Transformers

【引用格式】:Guo R, Niu D, Qu L, et al. Sotr: Segmenting objects with transformers[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2021: 7157-7166.

【网址】:https://openaccess.thecvf.com/content/ICCV2021/papers/Guo_SOTR_Segmenting_Objects_With_Transformers_ICCV_2021_paper.pdf

【开源代码】:https://github.com/easton-cau/SOTR

目录

一、瓶颈问题

二、本文贡献

三、解决方案

1、模型架构

2、Transformer

2.1 双注意力机制(Twin attention)

2.2 Transformer层

2.3 功能头(Functional heads)

3、Mask

3.1 多级上采样模块

3.2 实例掩码预测

四、实验结果

1、实验设置

2、消融实验

3、定量和定性结果


一、瓶颈问题

  • 传统 CNN 在实例分割中的局限:基于 CNN 的实例分割方法(遵循检测 - 然后 - 分割范式)存在不足。CNN 因有限的感受野,在高级视觉语义信息中特征连贯性相对缺乏,难以关联实例,对大物体分割效果欠佳;并且分割质量和推理速度过度依赖目标检测器,在复杂场景下性能较差。
  • 自底向上方法的缺陷:为克服传统 CNN 方法的缺点,一些自底向上的实例分割策略被提出,这类方法虽能保留位置和局部连贯信息,但存在聚类不稳定(如掩码碎片化、粘连)以及在不同场景数据集上泛化能力差的问题。
  • Transformer 在视觉应用中的不足:受 Transformer 在自然语言处理中的成功启发,其在视觉任务应用中展现出一定优势,然而典型 Transformer 在提取低级特征方面表现不佳,对小物体预测易出错;同时由于特征图规模大,在训练阶段需要大量内存和时间。

二、本文贡献

  • 提出创新的混合框架:引入了名为 SOTR 的 CNN - Transformer 混合实例分割框架。该框架利用 CNN 骨干网络和 Transformer 编码器,有效对局部连接性和长距离依赖关系建模,表现力强;且直接分割对象实例,不依赖边界框检测,简化了整体流程。
  • 设计新的注意力机制:设计了双注意力机制(twin attention),这是一种位置敏感的自注意力机制,专为模型中的 Transformer 定制。相比原始 Transformer,在计算和内存上有显著节省,尤其适用于实例分割这类对大输入进行密集预测的任务。
  • 降低对大规模预训练的依赖:SOTR 无需在大型数据集上进行预训练就能很好地泛化归纳偏差,更易于应用在数据量不足的场景,克服了纯 Transformer 模型对大规模预训练的依赖问题。
  • 取得优异的实验结果:在 MS COCO 基准测试中,使用 ResNet - 101 - FPN 骨干网络的 SOTR 模型 AP 达到 40.2% ,精度超越多数现有方法。在中等和大尺寸物体上,AP 分别达到 59.0% 和 73.0% ,展现出在不同尺寸物体分割上的优势。

三、解决方案

1、模型架构

        SOTR 是一种 CNN-Transformer 混合实例分割模型,它能够同时学习二维表示,并轻松捕捉长距离信息。它遵循直接分割范式,首先将输入特征图划分为图块,然后在动态分割每个实例的同时预测每个图块的类别Transformer模块】。具体来说,模型主要由三个部分组成:1)一个骨干网络(from detectron2.modeling.backbone import build_backbone),用于从输入图像中提取图像特征,尤其是低级和局部特征;2)一个 Transformer,用于对全局和语义依赖关系进行建模,它附加了功能头,分别用于预测每个图块的类别卷积核;3)一个多级上采样模块,通过在生成的特征图和相应的卷积核之间执行动态卷积操作来生成分割掩码。

2、Transformer

2.1 双注意力机制(Twin attention)

自注意力机制的问题:能够捕捉全图上下文和长距离交互关系,但时间和内存复杂度为二次方,处理图像等高维序列是计算成本高,阻碍模型扩展性。

双注意力机制策略:通过稀疏表示简化注意力矩阵,将感受野限制在固定步长的块模式内。先在每列内计算注意力(聚合水平尺度上元素间上下文信息),再在每行内计算(利用垂直尺度特征交互),两个尺度注意力顺序连接【通道维度连接】形成最终注意力,具有全局感受野,并涵盖了两个维度上的信息。

具体计算过程:对于 FPN 第i层特征图F_{i} \in R^{H \times W\times C},先分割成 N×N 图块P_{i} \in R^{N \times N \times C}

并堆叠成块,添加位置嵌入(列位置嵌入空间1×N×C,行位置嵌入空间N×1×C )。注意力层采用多头注意力机制,子层输出 N×N×C ,可将计算复杂度从O((H\times W)^{2})降至O(H \times W^{2} + H^{2} \times W)

2.2 Transformer层

原始Transformer层(图3 a):类似 NLP 中编码器,由层归一化后的多头自注意力机制和多层感知器两部分组成,用残差连接相连,经K个串行连接输出多维序列特征用于后续预测。

纯双 Transformer 层(图3 b):遵循原始设计,仅将多头注意力替换为双注意力机制,以平衡计算成本和特征提取效果。

混合双 Transformer 层(图3 c):在每个双注意力模块添加两个由 Leaky ReLU 层连接的3×3卷积层,补充注意力机制,更好捕捉局部信息,增强特征表示。

2.3 功能头(Functional heads)

类别头(class head):含单个线性层,输出N×N×M分类结果(M为类别数)。每个图块为中心落入的单个目标分配一个类别,采用多级预测并在不同特征层级共享头,提升不同尺度目标性能和效率。训练时用 Focal Loss 计算分类损失。

核心头(kernel head):由线性层组成,与类别头并行,输出N×N×D张量(表示N×N卷积核及D个参数)用于掩码生成。训练时卷积核监督来自最终掩码损失。

3、Mask

3.1 多级上采样模块

从 Transformer 模块获取带位置信息的低分辨率特征图P_{5},与 FPN 中P_{2} - P_{4} 融合。对各尺度特征图先进行3×3卷积、Group Norm 和 ReLU 操作,P_{3} - P_{5}分别双线性上采样到\left ( \frac{H}{4}\times \frac{W}{4} \right )分辨率,将处理后P_{2} - P_{5}相加,经逐点卷积和上采样生成统一H × W特征图,构建掩码特征表示。

3.2 实例掩码预测

SOTR 对统一特征图执行动态卷积操作生成每个图块掩码。核心头预测卷积核K\in R_{N\times N \times D},每个核负责对应图块实例掩码生成,操作表示为Z^{H\times W \times N^{2}} = F^{H \times W \times C} \ast K^{N \times N \times D}

  • D = \lambda ^{2}C,其中 λ 为卷积核的尺寸
  • 最终实例分割掩码由 Matrix NMS 生成,每个掩码由 Dice Loss 独立监督

四、实验结果

1、实验设置

在具有挑战性的 MS COCO 数据集上实验,该数据集含 12.3 万张图像、80 类实例标签。模型在 train2017 子集训练,test-dev 子集评估,报告标准 COCO 指标(AP、AP50、AP75、APs、APm、APl)。训练使用 SGD,初始学习率 0.01,1000 次迭代热身,权重衰减10^{-4},动量 0.9。消融实验训练 30 万次迭代,在 21 万次和 25 万次时学习率降为十分之一。模型在 4 块 32G 内存的 V100 GPU 上训练,批量大小 8,用 Python 编程,基于 PyTorch 和 Detectron2 框架。

2、消融实验

主干网络架构:

比较不同主干网络特征提取性能,发现 Res-50FPN 的 SOTR 在 COCO 上 AP 达 37.5%,大物体上 AP 为 70.8%,且 SOTR 从更深或先进的 CNN 主干网络中自动受益,更好的主干网络可提升性能。

用于特征编码的 Transformer

用三种不同 Transformer 衡量模型性能,纯双注意力 Transformer 和混合双注意力 Transformer 在指标上大幅超过原始 Transformer,表明双注意力 Transformer 架构能捕捉长距离依赖,更适合与 CNN 主干结合,且混合双注意力 Transformer 效果更好,因为 3×3 卷积能提取局部信息、增强特征表达。

Transformer 深度:

对原始 Transformer 和混合双注意力 Transformer 进行深度消融实验,发现增加深度可提升 AP 但牺牲推理时间和内存,双注意力 Transformer 相比原始 Transformer 带来 3.1% 的 AP 提升,内存占用减少约 50%,但深度增加会导致注意力坍塌,阻碍性能提升,后续实验中基准模型使用深度为 12 的混合双注意力 Transformer。

多级上采样模块:

探究 Transformer 生成的特征图对多级上采样模块的影响,仅用 Transformer 生成的特征图替换 FPN 的P_{5}层时模型 AP 最高,同时替换P_{4}P_{5}层 AP 略降,表明更多层使用生成特征图未显著提升整体 AP,Transformer 的P_{5}已使预测具有良好位置敏感性,Transformer 的P_{4}因携带更多全局和大物体特征使AP_{M}AP_{L}略有提升,SOTR 用 Transformer 替代 SOLOv2 中P_{5}层的 Coordconv 获取位置信息。

动态卷积:

掩码生成有静态卷积直接输出实例掩码和动态卷积持续分割对象两种方式,比较发现无双注意力 Transformer 的 SOTR 模型 AP 为 39.7%,双注意力 Transformer 带来 0.5% 的提升,动态卷积策略使 AP 提升近 1.5%,因为动态卷积的非线性显著增强了特征表示能力。

实时模型及比较:

SOTR 可修改为实时模型 SOTR-RT(牺牲一定准确性),其 Transformer 层数减为两层,输入短边为 736【图像输入的短边分辨率】

3、定量和定性结果

定量结果:

在 MS COCO 测试开发集上,配备 ResNet-101-FPN 的 SOTR 模型掩码 AP 达 40.2%,优于其他现代实例分割方法,与 Mask R-CNN 相比预测精度更高,在中等和大目标检测上有显著提升,与无边界框算法 SOLO 和 PolarMask 相比也有明显改进,且是首个在中等大小目标上 AP 接近 60%、中等和大目标上 AP 超 70% 的方法。

定性结果:

将 SOTR 与 Mask R-CNN、BlendMask 和 SOLOv2 比较,SOTR 在形状精细易被忽略的物体和相互重叠物体的分割上优于 Mask R-CNN 和 BlendMask,能预测出边界更清晰的掩码;相比 SOLOv2,SOTR 避免了将目标分割成独立部分和误将背景判定为实例的问题,因引入 Transformer 能更好获取全局信息。

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

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

相关文章

MinIO实现https访问

Windows下实现MinIO的https访问. 首先需要自己解决证书问题, 这里可以是个人证书 也可以是花钱买的证书. 现在使用个人开发者证书举例子。 将证书数据解压到你知道的目录之下 然后直接使用命令启动MinIO start minio.exe server --certs-dir D:\xxxxx\tools\certs …

基于 jQuery 实现灵活可配置的输入框验证功能

在 Web 表单开发中,输入框验证是保障数据准确性和安全性的关键环节。无论是用户注册、信息提交还是数据录入场景,都需要对用户输入内容进行合法性检查。本文将介绍如何使用 HTML、CSS 和 jQuery 构建一个可灵活配置的输入框验证系统,轻松应对…

Kotlin 04Flow stateIn 和 shareIn的区别

一 Kotlin Flow 中的 stateIn 和 shareIn 一、简单比喻理解 想象一个水龙头(数据源)和几个水杯(数据接收者): 普通 Flow(冷流):每个水杯来接水时,都要重新打开水龙头从…

WebRTC 服务器之SRS服务器概述和环境搭建

1.概述 SRS(Simple Realtime Server)是一款高性能、跨平台的流媒体服务器,支持多种协议,包括 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181。本文介绍了 SRS,包括其用途、关键功能、架构和支持协议。SRS 旨…

Dify - Embedding Rerank

注意:v100显卡会出现不适配,不推荐使用 1. 安装 Docker ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker-CSDN博客 2. 安装vllm pip install -U xformers torch torchvision torchaudio triton --index-url https://download.pytorch.org/w…

LeetCode:链表的中间结点

1、题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点&#xff…

LabVIEW温控系统热敏电阻滞后问题

在 LabVIEW 构建的温控系统中,热敏电阻因热时间常数大(2 秒左右)产生的滞后效应,致使控温出现超调与波动。在不更换传感器的前提下,可从算法优化、硬件调整和系统设计等维度着手解决。 ​ 一、算法优化​ 1. 改进 PI…

技术犯规计入个人犯规吗·棒球1号位

在棒球运动中,虽然没有“技术犯规”这一特定术语,但存在多种违规行为或违反规则的情况,通常会导致判罚或处罚。以下是常见的违规行为及相关规则: 1. 投手违规(Balk) 定义:投手在垒上有跑垒员时…

Python核心技巧 类与实例:面向对象编程的基石

、核心概念图解 🎯 类 vs 实例 类:对象的蓝图(如"汽车设计图") 实例:类的具体实现(如"你的特斯拉Model 3") class MyClass: # 类声明 count 0 # 类…

协程补充---viewModelScope 相关知识点

viewModelScope.launch 默认在 Dispatchers.Default 线程池执行Dispatchers.Default 是一个后台线程池,专门用于 CPU 密集型任务如果需要在主线程执行,必须显式指定 Dispatchers.Main remember 是 Compose 的状态管理函数(queueMenus) 是依赖项&#xff…

linux stm32mp157 GIC-V2 中断处理过程分析

/* ** 中断触发时,调用的 handle_arch_irq 入口地址。 ** 因为此时,挂接的就是 gic_handle_irq 函数!gic_handle_irq 是个全局函数指针, ** static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) ** 它是Lin…

动态指令参数:根据组件状态调整指令行为

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

直方图比较

目录 1、直方图比较的概念 2、直方图比较的主要原因 3、典型应用场景 4、基础直方图比较 5、多通道直方图比较 6、实时直方图检测 1、直方图比较的概念 直方图比较是通过数学方法计算两个直方图之间的相似度或差异度的技术。在计算机视觉中,直方图是对图像特征…

Windows11 VS code 安装 Cline 调用 Github MCP 配置过程坑点汇总

背景 为了调研 MCP 在 windows 上如何使用本地的命令执行一些操作而实现自动化的过程,在 B 站视频的指导下,进行相应填坑过程,最终运行起来,并实现 github 自动化编程并提交代码的过程。 B 站 Cline 视频演示 Cline Cline 是一…

kdump详解

kdump 是 Linux 系统中的一种内核崩溃转储机制,用于在系统崩溃时将内存中的数据保存到磁盘上,以便后续分析系统崩溃的原因。以下是对 kdump 的详细介绍: 1、工作原理 kdump 利用了 Linux 系统中的双启动机制。当系统启动时,它会…

RGB三原色

本文来源 : 腾讯元宝 ​​RGB三原色(红绿蓝)详解​​ RGB(Red, Green, Blue)是光学的三原色,通过不同比例的混合可以产生人眼可见的绝大多数颜色。它是现代显示技术(如屏幕、投影仪&#xff09…

CSS兼容性:挑战与策略

CSS兼容性:挑战与策略 引言 在前端开发的广阔领域中,跨浏览器兼容性无疑是最棘手且难以预测的挑战之一。当我们精心设计的网页在Chrome中完美呈现,却在Safari中布局崩溃,或在Firefox中交互失效时,这种挫折感是每位前…

[ 设计模式 ] | 单例模式

单例模式是什么?哪两种模式? 单例模式就是一个类型的对象,只有一个,比如说搜索引擎中的索引部分,360安全卫士的桌面悬浮球。 饿汉模式和懒汉模式:饿汉模式是线程安全的,懒汉模式不是线程安全的…

Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切

​一、软件介绍 文末提供程序和源码下载 Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切。 二、软件特点 Notebook 是作家的规划工具,用于创建从宇宙到角色、情节到单个项目的任何内容。通过浏览器、…

centos7.0无法安装php8.2/8.3

在centos安装php8.2报错 configure: error: *** A compiler with support for C17 language features is required. 配置过程检测到你的系统编译器不支持 C17 语言特性,而 PHP 8.2 的编译需要编译器支持 C17 sudo yum update -y sudo yum install centos-releas…