(CVPR,2024)CAT-Seg:基于成本聚合的开放词汇语义分割

文章目录

  • 摘要
  • 引言
  • 方法
    • 计算成本与嵌入
    • 空间成本聚合
    • 类别成本聚合
    • CAT-Seg框架
  • 实验

摘要

开放词汇的语义分割面临着根据各种文本描述对图像中的每个像素进行标记的挑战。在这项工作中,我们引入了一种新颖的基于成本的方法,以适应视觉语言基础模型,特别是CLIP,用于复杂的语义分割任务。通过聚合余弦相似度分数,即图像和文本嵌入之间的成本体积,我们的方法通过微调其编码器,强大地适应了CLIP以对已见和未见类进行分割,解决了现有方法在处理未见类时面临的挑战。在此基础上,我们探讨了有效聚合成本体积的方法,考虑到它在图像和文本嵌入之间建立的多模态特性。此外,我们还研究了有效微调CLIP的各种方法。

引言

开放词汇的语义分割旨在根据文本描述,将图像中的每个像素分配到一个无限范围内的类标签。为了处理将图像与各种文本描述相关联的挑战,预训练的视觉语言基础模型,例如CLIP和ALIGN,因其在广泛的图像文本数据集上训练而具有强大的开放词汇识别能力而受到关注。然而,这些基础模型在训练过程中主要接受图像级别的监督,这在将它们应用于像素级分割任务时引入了显著的差异。
在本研究中,我们探讨了将图像的整体理解能力转移到像素级分割任务的方法。虽然一个直接的方法是微调CLIP的编码器,但现有的方法在此尝试中遇到了困难,因为它们在对已见类进行过度拟合时遇到了显著的问题。这导致了联合嵌入空间对未见类的不对齐,因为CLIP特征经过解码器模块进行聚合以生成分割掩码,从而失去了它们的对齐。因此,大多数方法选择冻结CLIP的编码器,仍然未充分探索这一挑战。

在这方面,我们扩展了对适应CLIP进行开放词汇语义分割的探索,并引入了一种新颖的基于成本的框架。我们建议聚合CLIP图像和文本嵌入之间的余弦相似度,即匹配成本,与视觉对应文本相对应。令人惊讶的是,我们发现,在这个框架上微调CLIP有效地适应了分割的下游任务,无论是已见还是未见的类别。鉴于此,我们深入探讨了更好地聚合图像和文本之间的成本体积以进行分割的方法。
在这里插入图片描述

直觉上,成本体积可以被视为粗略的语义掩码,与各自的类相关联,如图2所示。随后,这些粗略掩码可以进一步细化以获得准确的预测结果,成为成本聚合过程。基于此,我们旨在有效地聚合成本体积,并将该过程配置为空间和类聚合
我们的框架,名为CAT-Seg,将我们的基于成本的成本聚合框架与我们对微调CLIP编码器的最佳方法相结合。我们在每个标准的开放词汇基准上取得了最先进的结果,与最近的最新技术相比,A-847的mIoU提高了+3.6,PC459的mIoU提高了+8.1。CAT-Seg不仅有效,而且在训练和推理方面都比区域文本方法更高效,推理速度提高了3.7倍以上。

我们总结我们的贡献如下:

  • 我们提出了一个基于成本的框架,用于开放词汇的语义分割,通过微调其编码器,有效地将CLIP适应于分割的下游任务。

  • 为了聚合图像-文本成本体积,我们将我们的框架与空间和类聚合相结合,以推理多模态成本体积,并探索各种方法来增强我们的成本聚合框架。

  • 我们的框架CAT-Seg在标准的开放词汇基准以及极端情况下均实现了最先进的性能,展示了其多功能性和实用性。

方法

在给定图像I和候选类别集合 C = { T ( n ) } C = \{T(n)\} C={T(n)},其中 n = 1 , . . . , N C n = 1, . . . , N_C n=1,...,NC,其中 T ( n ) T(n) T(n)表示第n个类别的文本描述,NC是类别的数量时,开放词汇的语义分割为图像I中的每个像素分配一个类别标签。与传统的语义分割任务不同,开放词汇的分割任务在给定自由形式文本描述的情况下,额外面临着C的变化
在本节中,我们描述了我们用于开放词汇语义分割的基于成本的方法。具体来说,我们通过细化CLIP的图像和文本嵌入的余弦相似度分数,如图2所示。细化余弦相似度分数的过程,或称为成本聚合,最初是为了解决图像对应问题而开发的,专门设计用于处理图像到图像的成本体积。
在这里插入图片描述

另一方面,我们的目标是聚合图像到文本的成本体积,因此需要考虑成本体积的多模态性以及每种模态的特性。在这方面,如图3所示,我们将聚合阶段分解为两个独立的模块,即空间聚合类别聚合,合理地解决了开放词汇语义分割任务所面临的独特挑战。这包括处理推理过程中类别数量的变化,以及保证类别之间的排列不变性。具体来说,我们先进行空间聚合,然后进行类别聚合,并交替进行两种聚合。

计算成本与嵌入

在这里插入图片描述

给定图像 I I I和一组类别 C C C,我们提取了密集的图像嵌入 D V = Φ V ( I ) ∈ R ( H × W ) × d D^V = Φ^V (I) ∈ R^{ (H×W)×d} DV=ΦV(I)R(H×W)×d和文本嵌入 D L = Φ L ( T ) ∈ R N C × d D^L = Φ^L(T) ∈ R^{N_C×d} DL=ΦL(T)RNC×d,其中 Φ V ( ⋅ ) Φ^V (·) ΦV() Φ L ( ⋅ ) Φ^L(·) ΦL()分别表示CLIP的图像和文本编码器。为了提取密集的CLIP图像嵌入,我们修改了图像编码器的最后一个注意力层以消除池化效应。我们使用图像和文本嵌入 D V ( i ) D^V(i) DV(i) D L ( n ) D^L(n) DL(n),其中i表示图像嵌入的2D空间位置,n表示一个类别的索引,通过余弦相似度计算得到成本体积 C ∈ R ( H × W ) × N C C ∈ R^{(H×W)×N_C} CR(H×W)×NC。形式上,这定义为:
在这里插入图片描述

为了增强在高维特征空间中处理成本的能力,我们将成本体积馈送到一个单卷积层,该层独立处理每个成本切片 C ( : , n ) ∈ R ( H × W ) × 1 C(:, n) ∈ R ^{(H×W)×1} C(:,n)R(H×W)×1,以获得初始成本体积嵌入 F ∈ R ( H × W ) × N C × d F F ∈ R ^{(H×W)×N_C×d_F} FR(H×W)×NC×dF,其中 d F d_F dF是成本嵌入维度,如图3所示。

空间成本聚合

在这里插入图片描述

对于空间聚合,我们旨在考虑图像-文本成本体积内部的图像特性,例如图像内的空间平滑性。具体而言,我们分别为每个类别应用空间聚合。我们采用Swin Transformer 以实现计算效率,我们定义这个过程如下:
在这里插入图片描述

其中 F ( : , n ) ∈ R ( H × W ) × d F F(:, n) ∈ R^{ (H×W)×d_F} F(:,n)R(H×W)×dF T s a ( ⋅ ) T ^{sa}(·) Tsa()表示一对连续的Swin Transformer块,用于空间聚合,其中第一个块特征在局部窗口内的自注意力,接着第二个块在移动窗口内进行自注意力。请注意,我们将 d F d_F dF视为每个标记的通道维度,并且注意力是在各个类别内单独计算的。直观地,我们可以将空间聚合的过程大致对应于图2底部一行,其中“sofa”的成本体积经过聚合后得到了很好的细化,背景区域的噪声被抑制了。

类别成本聚合

在这里插入图片描述

在空间聚合之后,我们应用类别聚合来考虑文本模态,明确捕捉不同类别之间的关系。我们还考虑到了处理不同类别数量C的开放词汇语义分割的独特挑战,同时保持对它们的顺序不变。为了解决这些挑战,我们采用了一个没有位置嵌入的Transformer 层用于聚合,因为这可以同时满足上述两个标准。这个过程定义如下:
在这里插入图片描述

其中 F ′ ( i , : ) ∈ R N C × d F F ′ (i,:) ∈ R ^{N_C×d_F} F(i,:)RNC×dF T c a ( ⋅ ) T ^{ca}(·) Tca()表示用于类别聚合的Transformer块。与空间聚合相比,我们采用线性Transformer,因为在这个聚合中我们不需要考虑输入标记的空间结构,并且从输入标记数量的线性计算复杂度中受益。类别聚合过程可以与图2顶部一行联系起来,其中聚合的成本体积显示了对只有椅子的预测,而不包括沙发,因为这两个类别一起给出以进行推理。

CAT-Seg框架

在这里插入图片描述

在通过空间和类别聚合得到聚合的成本体积后,我们进一步增强了我们的方法,通过引入上采样聚合过程来推导语义分割预测。此外,借鉴最先进的成本聚合技术的见解,我们通过利用从CLIP的嵌入中得出的指导来完善我们的成本聚合策略。最后,我们研究了各种微调CLIP编码器的方法,以有效而高效地使CLIP适应开放词汇的语义分割。

  1. 上采样解码器

    在这里插入图片描述

    与FPN类似,我们对聚合的成本体积进行双线性上采样,并将其与从CLIP提取的相应级别的特征图进行串联,然后经过一个具有固定大小的3×3卷积核的卷积层。我们重复此过程 N U N_U NU次,生成一个高分辨率输出,然后将其馈送到预测头进行最终推理。为了提取高分辨率的特征图,我们避免使用额外的特征主干,因为这会引入沉重的计算负担。相反,我们从CLIP图像编码器的中间层提取这些图。具体地,我们从CLIP ViT的中间层的输出中提取特征图,然后使用一个可学习的转置卷积层将它们上采样。这种方法允许我们有效地利用CLIP学到的表示来获取详细的预测。

  2. 嵌入指导
    在这里插入图片描述

    为了增强成本聚合过程,我们额外利用嵌入 D L D^L DL D V D^V DV来提供输入的空间结构或上下文信息。直观地说,我们的目标是利用嵌入来引导过程,基于这样的假设:视觉上或语义上相似的输入标记,例如颜色或类别,具有相似的匹配成本,受到了立体匹配文献中成本体积过滤的启发。因此,我们重新定义Eq. 2和Eq. 3如下:
    在这里插入图片描述

    这里[·]表示连接, P V P^V PV P L P^L PL表示线性投影层, D V ∈ R ( H × W ) × d D^V ∈ R^{(H×W)×d} DVR(H×W)×d,而 D L ∈ R N C × d D^L ∈ R^{N_C×d} DLRNC×d,其中 d d d表示特征维度。值得注意的是,我们只提供嵌入给查询和键,因为我们发现这对于嵌入指导已经足够了。

  3. CLIP的高效微调
    虽然我们的目标是通过微调其图像和文本编码器充分使CLIP适应下游任务,但微调这样的基础模型可能会涉及数亿个参数,计算成本高且占用内存大。另一方面,冻结其中一些层不仅更有效,而且还可以帮助CLIP保持其原始嵌入空间,使其更具抗过拟合能力。为此,我们广泛研究了应该在CLIP 中冻结哪些层,同时考察了微调预训练模型的各种方法。

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

CSS显示模式

目录 CSS显示模式简介 CSS显示模式的分类 块元素 行元素 行内块元素 元素显示模式的转换 使块内文字垂直居中的方法 设计简单小米侧边栏(实践) CSS显示模式简介 元素显示模式就是元素(标签)以什么方式进行显示&#xff0…

让15万的车也配激光雷达,速腾发布中长距「千元机」MX

‍作者 |老缅 编辑 |德新 4月15日,国内头部激光雷达公司速腾聚创发布了新一代中长距激光雷达MX。 相比较其产品配置,最令人惊喜的是它的价格。 「MX将以低于200美元的价格作为基础,实现第一个项目的量产。」速腾聚创CEO邱纯潮在发布会现场…

ABAP 批次换算率和批次辅单位数量计算

文章目录 ABAP 批次换算率和批次辅单位数量计算第一种方式批次换算率获取辅单位完整程序运行结果 第二种方式核心程序 CONVERSION_EXIT_ATINN_INPUT:特征值转换示例 ABAP 批次换算率和批次辅单位数量计算 如果一个物料有批次双单位,并且在报表里面展示批…

初识LangChain的快速入门指南

LangChain 概述 LangChain是一个基于大语言模型用于构建端到端语言模型应用的框架,它提供了一系列工具、套件和接口,让开发者使用语言模型来实现各种复杂的任务,如文本到图像的生成、文档问答、聊天机器人等。 LangChain简化了LLM应用程序生…

Mysql The last packet sent successfully to the server was 0 milliseconds ago.

项目启动后,报错,但是我的navicat 数据库连接工具是连接上的,没有问题的,但是程序就是连接不上。端口放开了,防火墙也放开了 先说问题:是网络问题, 如何解决:因为我的机子上又跑了…

Pytest精通指南(18)多种手段过滤或升级警告

文章目录 前言使用命令行实现过滤未处理警告,执行结果升级警告忽略警告忽略警告摘要 使用装饰器实现过滤装饰方法装饰类装饰模块 使用配置文件实现过滤 前言 在 pytest 中执行测试时,可能会出现警告,这些警告通常是由于代码中存在某些可能导致…

代码随想录算法训练营Day58|LC739 每日温度LC496 下一个更大元素I

一句话总结:单调栈专题! 原题链接:739 每日温度 很简单的单调栈入门题。 在使用单调栈解决此题之前,先要想到:单调栈要什么时候用呢?怎么才能想到用单调栈呢? 什么时候用单调栈呢?…

海信发布《黑神话:悟空》定制电视E8N新品,重塑大屏游戏体验

4月17日,在“AI美好生活”2024海信电视E8系列新品发布会上,海信电视官宣成为《黑神话:悟空》全球官方合作伙伴。同时,海信电视还为广大游戏玩家带来了《黑神话:悟空》的显示CP,推出了官方定制电视——旗舰新…

基于SpringBoot的“论坛管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“论坛管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 论坛管理系统结构图 前台首页功能界面图 用户登录…

「GO基础」在Windows上安装Go编译器并配置Golang开发环境

文章目录 1、安装Go语言编译程序1.1、下载GoLang编译器1.2、安装GoLang编译器 2、配置Golang IDE运行环境2.1、配置GO编译器2.1.1、GOROOT 概述2.1.2、GOROOT 作用2.1.2、配置 GOROOT 2.2、配置GO依赖管理2.2.1、Module管理依赖2.2.2、GOPATH 管理依赖 2.3、运行GO程序2.3.1、创…

C# 整数转罗马数字

罗马数字包含以下七种字符:I,V,X,L,C,D和M。 例如,罗马数字2写做 II ,即为两个并列的 1。12 写做XII,即为XII。27写做 XXVII,即为XXV II 。 通常情况下,罗马数字中小的数字在大的数字…

一个不同长度元素排序找行和列的需求

1、需求:三种长度的元素,分别是4、8、12,每一行的长度是12,超过12就排到下一行,我们将这三种类型的多个元素打乱,然后找到这些元素对应的行和列。 如下图: 2、解决思路: 创建一个长…

Ubuntu 20.04.6下载

下载地址:https://cn.ubuntu.com/download 下载版本:ubuntu-20.04.6-desktop-amd64.iso

OpenHarmony实战开发-如何实现进入页面,点击动画卡片,动画播放并且文本发生变化。

介绍 Lottie是一个适用于OpenHarmony的动画库,它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画,并在移动设备上进行本地渲染, 可以在各种屏幕尺寸和分辨率上呈现,并且支持动画的交互性,通过…

C++stack,queue,priority_queue容器(个人笔记)

C栈队列优先级队列 1.熟悉stack接口以及使用1.1stack的接口1.2stack的模拟实现1.3stack的一些笔试题 2.熟悉queue接口以及使用2.1queue的接口2.2queue的模拟实现2.3queue的笔试题 3.熟悉priority_queue的接口以及使用(底层堆)3.1priority_queue的接口3.2…

spdlog C++日志管理 安装和下载

下载地址 https://github.com/gabime/spdlog?tabreadme-ov-file 使用git拉取代码 按照操作进行编译 点击spdlog.sln,用vs2019打开,进行编译debug x64 每项都编译一下,会生成安装包 安装包下载路径 https://download.csdn.net/download…

【AI学习中常见专业英文缩写词的解释】

前言: 为了看着不无聊,文中插入了一些AI生成的狗图片 AI(Artificail Intelligence)人工智能: 让机器模拟和展示人类智能的技术。 GAI(Generative Artificail Intelligence)生成式人工智能: 利用复杂的算法、模型和规则,从大规…

mysql数据库表的数据显示到前端tableView

首先我们在ui视图设计中引入TableView, 定义一个model QSqlQueryModel *modelnew QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model); 将tableView内容设置成model然后就可以出现数据库的数据。示…

2.8 构建gradle环境

构建gradle环境 目录一、安装Java Development Kit (JDK)二、下载Gradle三、解压Gradle四、配置环境变量五、验证安装六、gradle构建java项目七、eclipse配置gradle 目录 一、安装Java Development Kit (JDK) Gradle是基于Java开发的,所以首先需要安装JDK。你可以从…

春秋云境:CVE-2022-32991[漏洞复现]

从CVE官网查询该漏洞相关信息 该漏洞是由于welcome.php中的eid参数包含了SQL注入漏洞 则我们的目标就在于寻找welcome.php地址以及相关的可注入eid参数 开启靶机 先在页面正常注册、登录一个账号。密码随便填 进入了home目录,这里有三个话题可以选择开启 随便选…