论文阅读——GeoChat(cvpr2024)

news2024/11/23 21:52:52

GeoChat : Grounded Large Vision-Language Model for Remote Sensing

一、引言

 GeoChat,将多模态指令调整扩展到遥感领域以训练多任务会话助理。

遥感领域缺乏多模式指令调整对话数据集。受到最近指令调优工作的启发,GeoChat 使用 Vicuna-v1.5和自动化管道来生成包含近 318k 指令的各种遥感多模式指令跟踪数据。

我们从为不同任务开发的各种现有遥感数据集创建图像文本对。其中包括用于 VQA 的 LRBEN、用于场景分类的 NWPU-RESISC-45 和用于对象检测的 SAMRS。

 GeoChat 的一项关键功能是在单个pipline中统一 RS 图像的多个图像和区域级推理任务:

GeoChat可以在一个统一的框架中完成遥感(RS)图像理解的多个任务。给定合适的任务标记和用户查询,该模型可以生成基于视觉的响应(带有相应对象位置的文本-如上图所示)、图像和区域的视觉问答(分别为左上角和右下角)以及场景分类(右上角)和正常自然语言对话(下图)。这使其成为第一个具有接地能力的RS VLM。

贡献:

1、RS 多模态指令遵循数据集。我们提出了一种新颖的数据生成pipline,利用现有的对象检测数据集创建图像的简短描述,然后使用 Vicuna-v1.5和仅使用生成的文本创建对话。此外,我们使用相应的数据集添加视觉问答和场景分类能力。总共有 318k 个指令对的RS数据集。

2、GeoChat。利用我们的数据集,我们微调 LLaVA1.5 以创建遥感领域视觉语言模型 - GeoChat。我们的 LoRA 微调非常高效,并且避免忘记嵌入在完全调整的 LLaVA 模型中的必要上下文,该模型的 MLP 投影经过训练,可将图像对齐到 LLM 的词嵌入空间 。这使得 GeoChat 能够保留 LLaVA 的对话和指令跟踪能力,并将其领域知识扩展到遥感任务。

3、我们还解决了缺乏评估基准来评估现有 VLM 在遥感对话方面的能力的问题。为此,我们为 RS 中的对话建立了评估协议,并设置了一套任务,以便与未来在这个方向上的努力进行比较。我们展示了针对不同遥感任务的各种监督评估和零样本评估,包括图像字幕、视觉问答和场景分类,以证明 GeoChat 会话 VLM 的通用性。

二、GeoChat

GeoChat可能完成的任务

a)图像级对话任务。在此任务中,GeoChat处理图像x,和用户文本查询q,其输入或输出中没有任何特定的空间坐标。目标是在图像范围内的整体水平上执行基于对话的任务,如视觉问答(VQA)、场景分类和图像描述。

B)区域级对话任务。此任务在GeoChat的输入中提供x和q之外的空间框位置b。区域位置b将模型的注意力引导到图像内的特定区域,使得模型可以执行诸如区域级字幕、区域特定VQA或多轮对话之类的任务。

c)固定的谈话任务。通过使用称为task-specification的特殊token t,可以引导GeoChat以不同的粒度提供对象位置,同时保持会话能力。它可以帮助执行任务,包括接地图像描述/对话,object grounding and referring expression detection.

GeoChat Architecture

GeoChat遵循LLaVA-v1.5 的架构,由三个核心组件组成,

i)全局图像编码器

ii)MLP适配器(两个线性层)

iii)LLM。

与LLaVA不同,GeoChat 添加了特定的任务提示,指示模型所需的任务类型,即,grounding, image-level or region-level conversations.。此外,我们允许输入和输出中的空间位置,we allow spatial positions within both inputs and outputs, enabling visual prompts as inputs and grounded objects in GeoChat outputs.。值得注意的是,原始LLaVA模型不能执行object grounding或接受区域输入。此外,原始的LLaVA不能推理遥感图像。

任务Token:GeoChat 能够在不同类型的遥感视觉解译任务之间轻松切换,为了消除任务之间的不确定性,为每个任务分配一个唯一的任务标识, ,分别代表grounded conversations, region captioning and referring expression comprehension。对于视觉问答和场景分类的情况,我们直接要求模型以单个单词或短语输出答案。

空间位置表示: ,角度θ表示边框旋转角度。x和y坐标在区间[0100]内归一化。

视觉骨干网络:CLIP-ViT(L-14),这个模型原始输入336×336,不适合遥感图像,不足以理解遥感图像中呈现的细节(例如,小物体和物体细节),所以对这个模型的位置编码插值,使输入图片大小为504×504。

MLP Cross-modal Adaptor:使用MLP(输入1024,输出4096)把CLIP-ViT输出的向量映射到语言模型空间。激活函数GeLU。

Large Language Model:Vicunav1.5(7B)作为GeoChat的基础模型。显式地与语言模型交互,构建边界框的文本表示,以表达其空间坐标,用于需要产生空间位置的视觉基础任务。类似地,LLM的安全、一致和有效行为是通过与给定输入一起附加的系统提示来确保的。基于低秩自适应(LoRA)的策略用于对LLM进行微调。

训练细节:

我们使用预训练的CLIP-ViT(L-14)编码器、预训练的MLP适配器和Vicuna-v1.5来初始化我们的模型,该编码器在大量文本和视觉数据上进行训练,该适配器在带有BLIP字幕的LAION-CC-SBU数据集的558K子集上进行预训练。为了使我们的模型适应遥感图像,我们随后对LLM进行了LoRA微调,同时在训练过程中保持MLP适配器和CLIP编码器冻结。

三、RS Multimodal Instruction Dataset

我们专门提供系统指令作为提示,要求Vicuna以一种好像可以看见图像的方式生成多轮问答对(尽管它只能访问文本)。这是通过提供在提示中手动编写的少量上下文示例来实现的,以向Vicuna展示如何基于所提供的标题和信息构建高质量的指令-响应对。我们随机抽取65k张图像来创建多轮对话,10k张图像来生成复杂的问题答案,30k张图像用于生成给定简短描述的详细描述。

组成数据集:集合了三个不同类型的数据集:object detection, scene classification, and visual question answering (VQA)。三个对象检测(DOTA、DIOR和FAIR1M,它们共同形成了SAMRS数据集)、一个场景分类(NWPURESISC-45)、一种VQA(LRBEN)和一种洪水检测VQA数据集。

尽管对象检测数据库中包括各种各样的对象类,但缺少一些基本类别,如建筑物、道路和树木,所以先在LoveDA数据集上预先训练的ViTAE RVSA模型,该模型包括所需的重要类。该模型用于在SAMRS数据集上推断这些类,从而产生伪标签。

属性提取:对于referring expression标注,RS图像中的各种属性是很重要的。选择了五种不同类型的属性,如表3所示。对象类别信息可以直接从SAMRS数据集中获得。对于颜色提取,我们使用K-Means聚类算法。具体来说,我们使用GT框从图像中提取对象的像素,并将其聚类为K组。然后选择最大簇的中心作为对象的颜色。为了指定对象的相对大小,我们将对象分为三种大小:小、正常和大。这种分类是通过测量整个数据集中类的所有实例的面积并将第80个百分位数指定为大标签来确定的。同样,第20个百分位被指定为小尺寸,其余的属于正常类别。为了确定对象在图像中的相对位置,我们将整个图像划分为3×3网格,定义区域,如右上、上、左上、左、中、右、右下、左下和下。根据对象的中心像素坐标,我们相应地指定其相对位置。

为了定义给定图像中对象之间的关系,我们根据边界框之间的距离对不同的对象进行分组,对于每个子图,我们根据对象的类标签分配对象之间的不同关系。表4给出了对象关系的各种示例。为了建立像“被包围”这样的关系,我们交叉参考像素级坐标,以验证一个对象是否完全包含在另一个对象中。

表达式生成:为了模拟自然语言表达式,我们使用预定义文本模板。短语模板包含表3中的属性{a1,…,a5}。同一类的一组对象的表达式公式化为:

类似地,句子模板结合了关系属性a5,以通过这种结构在两个对象之间建立连接:

Visual Grounding:使用我们的简短描述作为参考表达来创建三种不同类型的问答对,即基础图像描述、参考表达和区域级字幕,如表1所示。

四、实验

1、实验细节

我们使用预训练的CLIP-ViT和LLM(Vicuna-v1.5)初始化我们的模型的权重,并应用LoRA微调。利用LoRA,我们通过低秩自适应来细化参数Wq和Wv,在我们的实现中,指定秩r设置为64。该模型在整个过程中始终以504×504的图像分辨率进行训练。每个训练步骤都包含专门为训练过程中的各种视觉语言任务设计的多模态指令模板。我们使用AdamW优化器和余弦学习速率调度器来训练我们的模型。我们将全局批量大小保持为144。我们分两个阶段训练我们的模型,首先,我们使用所有数据集训练1个时期,相应地训练2400步,然后是第2阶段,我们只在grounding dataset上训练1600步。

2、数据集介绍:

场景分类:

AID:AID是根据Google Earth图像编译的大规模航空图像集合,有30个类别,例如河流、密集住宅区等。这些图像由遥感图像解释领域的专家标记。总的来说,AID数据集包含 30 个类别的 10,000 张图像。这些图像是在不同的国家和不同的天气条件下拍摄的。

(AID 数据集的 20%用于评估)

UCMerced:UCMerced 是一个土地利用场景分类数据集,包含 2,100 张图像和 21 个类别。每张图像的大小为 256×256。

(使用整个 UCMerced数据集作为零样本测试集。)

我们提示模型使用所有类别,并提示仅使用一个单词/短语对图像进行分类。

视觉问答:

RSVQA-HRBEN: RSVQA-HRBEN包含 10,569 张高分辨率照片和 1,066,316 个问答对,其中 61.5%、11.2%、20.5% 和 6.8% 分别分为训练集、验证集、测试集 1 和测试集 2。该数据集具有三种问题类型:存在、比较和计数。

(使用 RSVQA-HRBEN 测试集 2,有47k 问题答案对评估)

RSVQA-LR :RSVQA-LR 由 772 个低分辨率图像和 77,232 个问答对组成,其中 77.8%、11.1% 和 11.1% 分别用于训练、验证和测试。有四种不同类别的问题:存在、比较、农村/城市和计数。

评估过程中省略了面积和计数问题,将答案是数字的量化为多个类别。例如,在 RSVQA-LRBEN数据集中,计数问题被量化为五类:0、1 到 10 之间、11 到 100 之间、101 到 1000 之间以及大于 1000。为了评估,我们使用测试一组包含 7k 问题-答案对的 RSVQA-LRBEN。

为了将答案限制为简单的是/否以及农村/城市问题类型,我们在每个问题末尾添加合适的提示。

Visual Grounding:

对这个任务,使用SAMRS的验证集,用上面介绍数据集构建流程来重新构建了一个test benchmark,有7653 [refer], 758 [grounding], and 555 grounding description questions. 我们使用accuracy@0.5作为评估度量。如果预测框与GT框的重叠超过0.5IoU,则计算精度。

3、结果:


 

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

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

相关文章

Mr-Robot1靶场练习靶场推荐小白入门练习靶场渗透靶场bp爆破wordpress

下载链接: Mr-Robot: 1 ~ VulnHub 安装: 打开vxbox,菜单栏----管理----导入虚拟电脑 选择下载完的ova文件,并修改想要保存的位置(也可以保持默认位置) 导入完成后可以根据自己的情况去配置网络链接方式 完成…

【数据结构和算法初阶(C语言)】二叉树铺垫--栈帧的创建与销毁--细节全解

前言: 学习这么久以来,可能有很多疑问:局部变量怎么创建的?为什么局部变量的值是随机的?函数是怎么传参的?传参的顺序是怎么样的?形参和实参是什么样的关系?函数调用是怎么做的&…

Redis-2 Redis基础数据类型与基本使用

高级Redis应用进阶 一站式Redis解决方案-Redis-2 Redis基础数据类型与基本使用 源代码在GitHub - 629y/food-social-contact-parent: redis项目-美食社交APP 1. Redis基本数据类型 1.字符串(strings) set username zhangsan get username mset age 18 …

阿里云-零基础入门推荐系统 【特征工程】

文章目录 赛题介绍评价方式理解赛题理解制作特征和标签, 转成监督学习问题导包df节省内存函数训练和验证集的划分获取历史点击和最后一次点击读取训练、验证及测试集读取召回列表读取各种Embedding读取文章信息读取数据对训练数据做负采样将召回数据转换成字典制作与…

spring boot集成redis实现共享存储session

spring boot集成redis实现共享存储session redis实现共享存储session 首先下载redis,我下载的版本是5.0.14,目前官网貌似找不到5.x版本&#xff0c;可以自行去网上寻找。我这里的springboot版本是2.6.4引入redis依赖 <!-- https://mvnrepository.com/artifact/org.spring…

麒麟系统Redis7.2哨兵集群部署

redis哨兵集群部署 1、原理 Redis 哨兵模式是指在 Redis 集群中,有一组专门的进程(即哨兵进程)负责监控主节点和从节点的状态,并在发现故障时自动进行故障转移,以保证 Redis 集群的高可用性。 Redis 提供了哨兵的命令,哨兵命令是一个独立的进程,哨兵进程会周期性地向主…

YOLOv9改进策略:注意力机制 | SimAM(无参Attention),效果秒杀CBAM、SE

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;SimAM是一种轻量级的自注意力机制&#xff0c;其网络结构与Transformer类似&#xff0c;但是在计算注意力权重时使用的是线性层而不是点积 yolov9-c-CoordAtt summary: 972 layers, 51024476 parameters, 510…

“一键秒变!PNG到JPG,图片批量转换新体验“

在这个数字时代&#xff0c;图片已成为我们生活与工作中不可或缺的一部分。无论是社交媒体上的个人分享&#xff0c;还是商务场合中的项目展示&#xff0c;一张好的图片往往能起到事半功倍的效果。然而&#xff0c;面对堆积如山的PNG图片&#xff0c;你是否曾感到力不从心&…

Linux-centos如何搭建yum源仓库

1.本地搭建&#xff08;无需连接外网&#xff09; 1.1检查网络配置&#xff0c;及网络连接 打开虚拟机&#xff0c;点击【编辑——虚拟网络编辑器】 点击【仅主机模式】查看子网段是否和局内IP匹配 进入局内&#xff0c;查看网络IP是否在你上述设置的网段内&#xff0c;如果不…

【PyTorch】成功解决ModuleNotFoundError: No module named ‘torch’

【PyTorch】成功解决ModuleNotFoundError: No module named ‘torch’ &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希…

SQLiteC/C++接口详细介绍之sqlite3类(十四)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十三&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十五&#xff09; 43.sqlite3_preupdate_hook sqlite3_preup…

【工具】一键生成动态歌词字幕

那眼神如此熟悉 让人着迷无力抗拒 一次又一次相遇 在眼前却遥不可及 命运总爱淘气 将一切都藏匿 曾有你的回忆 无痕迹 若不是心心相吸 又怎么会一步一步靠近 &#x1f3b5; 董真《思如雪》 下载LRC歌词 https://www.musicenc.com/article/50287.htmlhttp…

Android 系统的启动过程

Android 系统的启动流程&#xff1a; RomBoot&#xff08;只读存储器引导程序&#xff09;&#xff1a;这是设备上电时运行的初始软件。RomBoot执行基本的硬件初始化&#xff0c;确保硬件处于可以运行后续启动阶段的状态。这一阶段非常重要&#xff0c;因为它为整个启动过程奠定…

VMwareWorkstation16与Ubuntu 22.04.6 LTS下载与安装

一、准备工作 VMware Workstation Pro 16官网下载&#xff1a; https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0。下载需要账号登录。 二、安装 双击exe文件稍等一会会弹出安装程序&#xff0c;如图 这…

【Miniconda】基于conda避免运行多个PyTorch项目时发生版本冲突

【Miniconda】基于conda避免运行多个PyTorch项目时发生版本冲突 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到…

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的考生来说&#xff0c;吃透AMC8历年真题是备考更加科学、有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

爬虫学习 Scrapy中间件代理UA随机selenium使用

目录 中间件UA、代理处理---process_requestUA随机 代理处理seleniumscrapy 中间件 控制台操作 (百度只起个名 scrapy startproject mid scrapy genspider baidu baidu.com setting.py内 ROBOTSTXT_OBEY FalseLOG_LEVEL "WARNING"运行 scrapy crawl baidu middle…

数据可视化-ECharts Html项目实战(1)

在之前的文章中&#xff0c;我们学习了如何安装Visual Studio Code并下载插件&#xff0c;想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 安装 Visual Studio…

【IC设计】Verilog线性序列机点灯案例(三)(小梅哥课程)

声明&#xff1a;案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔记&#xff0c;如有学习需要请支持官方正版。 文章目录 该系列目录设计目标设计思路RTL及Testbench代码RTL代码Testbench代码 仿真结果上板视频 该系列目录 Verilog线性序列机点灯案例(一)&#xff…

LangChain: 调研报告

概述 LangChain是一个用于开发由语言模型驱动的应用程序的框架。它允许创建能够连接到上下文源&#xff08;如提示指令、少量示例、内容基础等&#xff09;的应用程序&#xff0c;并且能够进行推理&#xff08;基于提供的上下文如何回答问题、采取何种行动等&#xff09;。提供…