当前位置: 首页 > news >正文

【论文阅读】多模态——LSeg

文献基本信息

  • 标题:Language-Driven Semantic Segmentation
  • 作者:Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、René Ranftl
  • 单位:Cornell University、University of Copenhagen、Apple、Intel Labs
  • 会议/期刊:ICLR
  • 发表时间:2022年4月3日
  • 代码:https://github.com/isl-org/lang-seg

背景与意义

  • 语义分割可以看做是像素级的分类,因此分类的新技术、新思路,一般可以直接用过来。
  •  本文实现了zero-shot的语义分割,实现方式与CLIP实现zero-shot的方式类似,都是通过类别prompt作为文本输入,然后计算相似度。

  • 给定一张图片,然后通过文本prompt给定任意的类别,从而实现对应的语义分割。
  • 从上图中可以看到,给定了对应的类别prompt:
  1. 对于图中明确出现了的语义类别(如dog、tree),模型能够很清楚地分割出来。
  2. 对于图中没有的类别(如vehicle),模型也不会误召回(容错率高)。
  3. 对于图中有、但是类别prompt没给的类别(如grass),也能正确分类为other。
  4. 同样可以检测类别的子类或父类(如dog、pet),模型也能够通过语义识别出来。
  • 由于CLIP类的模型实质上都是通过计算图文相似度来实现分类或分割的,因此对于“other”类的类别,prompt文本实际可以是任何无意义的文本,如“me”、“a”或“an” 等,只要与目标类别不要太接近即可。

研究方法与创新点

  • 如上图所示,模型整体看来与CLIP模型非常相似,图像先输入图像编码器(DPT ViT+decoder)得到特征向量,再进行一些upscaling,输出图像与原图像大小保持一致,输出再与ground-truth做交叉熵,其中将单个的图像文本特征换成语义分割中逐像素的密集特征
  • 文本编码器提取$N \times C$的文本特征($N$个类别,$C$为特征维度),图像编码器提取$\tilde H \times \tilde W \times C$的密集图像特征(跟原来相比有所降维,比如1/4、1/16),文本-图像二者相乘得到$\tilde H \times \tilde W \times N$的特征,再经过空间规整模块上采样回原图尺寸,完成语义分割,其中$N$$C$$\tilde H$$\tilde W$分别是类别prompt个数(可变)、通道数和特征图的高、宽。除了上面的文本编码器提取的文本特征要与密集图像特征相乘来计算像素级的图文相似度之外,整个网络与传统的有监督网络完全一致
  • 在训练过程中,模型是以有监督的方式进行训练的,也就是说训练过程中是存在标注的分割图的,模型在7个分割数据集上进行训练。
  • 在推理时,可以指定任意个数、任意内容的类别prompt来进行zero-shot的语义分割。
  • 创新:通过在传统的有监督分割模型上加入文本特征,通过特征相乘把文本特征和图像特征结合起来,学到一些languge-aware的特征,在最后就能用文本prompt得到任意的分割效果
  • LSeg整个文本编码器就是CLIP的文本编码器的模型和权重,并且训练、推理全程中都是冻结的;LSeg的图像编码器可以是任何网络(CNN/ViT),需要进行训练。
  • 空间规整模块是本文提出的一个模块,为了在计算完像素级图文相似度后有一些可学习的参数来理解计算结果,由一些卷积逐深度卷积组成。

研究结论

  • 在PASCAL-5、COCO20、FSS-1000上作评价,如PASCAL-5有20类,现在把20类分成4份,每份5类,将其中5类作为已知,其他15类未知,做zero-shot实验。

  • 由上图可知,LSeg在zero-shot的语义分割上确实大幅领先之前方法,但是与few-shot哪怕是one-shot相比,还是有很大的提升空间

  • 由上图可知,LSeg在zero-shot的语义分割上确实大幅领先之前方法,但是与few-shot哪怕是one-shot相比,还是有很大的提升空间

存在的问题

  1. 空间规整层是简单的conv卷积或者DWconv,这一层进一步学习文本图像融合后的特征,理解文本与图像如何交互。消融实验证明,两层空间规整层效果最好,但是四层空间规整层突然就崩了,本文中并没有对此解释原因,因此无法得知空间规整是否是一个稳定有效的技巧。

启发与思考

  1. 图像分类任务图像分割任务很像,无非就是把图像级别的分类转变成像素级别的分类,前者的技术往往都能直接应用到后者。
  2. 提供了一种利用CLIP的新思路,可以单独使用其中的文本或图像编码器,并且也可以用有监督的方式进行训练。

相关文章:

【论文阅读】多模态——LSeg

文献基本信息 标题:Language-Driven Semantic Segmentation作者:Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、Ren Ranftl单位:Cornell University、University of Copenhagen、Apple、Intel Labs会议/期刊:…...

vue3如何配置环境和打包

很多新手友友们或刚从vue2切换到vue3的同学,对vue3不同环境配置和打包有很多困惑的地方,Jenna这就把vue3打包配置流程详细的写下来,你们只需要copy就好啦 1.创建环境文件 当我们把项目拿到手,只需要创建三个环境文件&#xff1a…...

高并发下订单库存防止超卖策略

文章目录 什么是超卖问题?推荐策略:Redis原子操作(Redis incr)乐观锁lua脚本利用Redis increment 的原子操作,保证库存数安全update使用乐观锁LUA脚本保持库存原子性 什么是超卖问题? 在并发的场景下,比如商城售卖商品…...

vue安装stylelint

执行 npm install -D stylelint postcss-html stylelint-config-recommended-vue stylelint-config-standard stylelint-order stylelint-prettier postcss-less stylelint-config-property-sort-order-smacss 安装依赖,这里是less,sass换成postcss-scss…...

用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏

大家好!今天我将分享如何使用 HTML 和 JavaScript 编写一个简单的飞机游戏。这个游戏的核心功能包括:控制飞机移动、发射子弹、敌机生成、碰撞检测和得分统计。代码简洁易懂,适合初学者学习和实践。 游戏功能概述 玩家控制:使用键…...

three.js 在 webGL 添加纹理

在我们生成了3D设计之后,我们可以添加纹理使其更加吸引人。在 webGL 和 p5.js中,可以使用 gl.texImage2D() 和 texture() API来为形状应用纹理。 使用 webGL 在 webGL 中,gl.texImage2D() 函数用于从图像文件生成2D纹理。该函数接受许多参…...

【5】单调队列学习笔记

前言 鸽了很久, 2023 / 1 / 5 2023/1/5 2023/1/5 开始, 2023 / 1 / 21 2023/1/21 2023/1/21 才完工。 中途去集训了,没时间来补漏洞。 单调队列 单调队列是一种非常实用的数据结构,可以用于查询一个定长区间在以一定速度向后滑…...

deepseek为什么要开源

一、生态位的抢占与锁定:以 JDK 版本为例​ 在软件开发的世界里,生态位的抢占和先入为主的效应十分显著。就拿 Java 开发中的 JDK 版本来说,目前大多数开发者仍在广泛使用 JDK8。尽管 JDK17 和 JDK21 已经推出,且具备更多先进特性…...

MySQL基本建表操作

目录 1,创建数据库db_ck 1.1创建表 1.2 查看创建好的表 2,创建表t_hero 2.1 先进入数据库Db_Ck 2.1.1 这里可以看是否进入数据库: 2.2 创建表t_Hero 2.2.1 我们可以先在文本文档里面写好然后粘贴进去,因为直接写的话,错了要重新开始 …...

防火墙旁挂组网双机热备负载均衡

一,二层交换网络: 使用MSTPVRRP组网形式 VLAN 2--->SW3为主,SW4 作为备份 VLAN 3--->SW4为主,SW3 作为备份 MSTP 设计 --->SW3 、 4 、 5 运行 实例 1 : VLAN 2 实例 2 : VLAN 3 SW3 是实例 1 的主根,实…...

大白话react第十八章React 与 WebGL 项目的高级拓展与优化

大白话react第十八章React 与 WebGL 项目的高级拓展与优化 1. 实现 3D 模型的导入与动画 在之前的基础上,我们可以导入更复杂的 3D 模型,并且让这些模型动起来,就像在游戏里看到的角色和场景一样。这里我们使用 GLTF 格式的模型&#xff0c…...

JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件

JavaScript 事件系统是构建交互式 Web 应用的核心。本文从原生 DOM 事件到 React 的合成事件,内容涵盖: JavaScript 事件基础:事件类型、事件注册、事件对象事件传播机制:捕获、目标和冒泡阶段高级事件技术:事件委托、…...

C++:string容器(下篇)

1.string浅拷贝的问题 // 为了和标准库区分,此处使用String class String { public :/*String():_str(new char[1]){*_str \0;}*///String(const char* str "\0") // 错误示范//String(const char* str nullptr) // 错误示范String(const char* str …...

2.数据结构-栈和队列

数据结构-栈和队列 2.1栈2.1.1栈的表示和实现2.1.2栈的应用举例数制转换括号匹配检验迷宫给求解表达式求值 2.1.3链栈的表示和实现2.1.4栈与递归的实现遍历输出链表中各个结点的递归算法*Hanoi塔问题的递归算法 2.2队列2.2.1循环队列——队列的顺序表示和实现2.2.2链队——队列…...

aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)

aws(学习笔记第三十一课) aws cdk深入学习 学习内容: 深入练习aws cdk下部署batch-arm64-instance-type 1. 深入练习aws cdk下部署batch-arm64-instance-type 代码链接 代码链接 代码链接 -> batch-arm64-instance-type之前代码学习 之前学习代码链接 -> aw…...

MySQL 中,SELECT ... FOR UPDATE

在 MySQL 中,SELECT ... FOR UPDATE 语句会对查询结果集中的行加排他锁(X 锁)。关于其他事务是否能读取当前行,以下是详细说明: 1. 排他锁(X 锁)的特性 排他锁是一种独占锁,加锁后&…...

云服务运维智能时代:阿里云操作系统控制台

阿里云操作系统控制台 引言需求介绍操作系统使用实例获得的帮助与提升建议 引言 阿里云操作系统控制台是一款创新型云服务器运维工具,专为简化用户的运维工作而设计。它采用智能化和可视化的方式,让运维变得更加高效、直观。借助AI技术,控制…...

【Agent的革命之路——LangGraph】如何使用config

有时我们希望在调用代理时能够对其进行配置。这包括配置使用哪个语言模型(LLM)等例子。下面我们将通过一个示例来详细介绍如何进行这样的配置。 在介绍 configurable 之前我们先介绍一下 Langchain 的 RunnableConfig。RunnableConfig是一个配置对象&…...

ArcGIS操作:15 计算点的经纬度,并添加到属性表

注意:需要转化为地理坐标系 1、打开属性表,添加字段 2、计算字段(以计算纬度为例 !Shape!.centroid.Y ) 3、效果...

Docker基础入门

第 1 章:核心概念与安装配置 本章首先介绍Docker 的三大核心概念: 镜像 (Image)容器(Container)仓库(Repository) 只有理解了这三个核心概念,才能顺利地理解Docker容器的整个生命周期。 随后&#xff0…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...