GeoChat : Grounded Large Vision-Language Model for Remote Sensing论文精读

GeoChat : Grounded Large Vision-Language Model for Remote Sensing

是一个针对遥感场景的llm,提供支持多任务对话(对高分辨率遥感图像)。也造了个数据集。


一些思考:

文中提到的局限性:小物体和多框预测较难。小物体在图像中占比小,可能特征不足难以正确定位。模型可能倾向于预测单一框,而且多个框可能会目标重叠。

也许可以用布匹数据集,变成布匹瑕疵的问答。。。。

gpt说可以轻量化(lora 蒸馏)提升推理效率


以下是边读边记的草稿。。。。。

普通VLM是针对自然图像,遥感图像表现较差,可能出现不准确的信息或幻觉。尽管遥感视觉问答(VQA)领域取得了重大进展,但早期方案是 模型从训练数据中找到答案 相当于分类问题,就不是开放式答案生成。Geo-Chat试图将多模态指令微调扩展到遥感领域,训练一个多任务会话助手。

关于数据集的生成:遥感领域没有像自然图像领域那种现成的、成规模的多模态对话数据集,所以无法直接“instruction-tune”出一个强大的遥感多模态模型。这个是使用 Vicuna-v1.5(一个在 LLaMA 基础上构建的开源对话语言模型)来生成问答数据通过自动化流水线,把遥感图像 + 标签信息变成“图 + 问题 + 答案”形式,构造出 31.8 万条遥感图文指令数据

模型在输入中使用了空间位置表示(spatial location representations),也就是模型的输入不仅包括图像,还会提供区域的坐标信息。输出中也可以生成目标的位置坐标,以实现视觉指向(visual grounding)。

创新点:

1. 新颖的数据生成流程。利用已有的目标检测数据集来为图像生成简短描述,然后使用Vicuna-v1.5基于这些描述生成完整的对话。还结合了视觉问答(VQA)和场景分类(scene classification)任务,分别使用它们对应的数据集来扩充任务类型。最后是构建了一个大规模数据集。

2. Geo-Chat是一个lora微调LLaVA-1.5后得到的遥感领域VLM。这种方式可以避免遗忘LLaVA全模型训练中所嵌入的重要上下文知识。在llava模型中,mlp投影层已被训练用于将图像对齐到vicuna-v1.5的词嵌入空间中。

3. 建立评估机制。目前遥感领域没有成熟的vlm对话评估方法,geo-chat设计了一套标准。

相关工作:

1. 大型视觉语言模型:基本架构是,一个预训练的视觉backbone来编码视觉数据、一个大语言模型来解释用户响应和生成回应、还有一个视觉-语言跨模态连接器(例如线性投影层或者一个MLP)用于将视觉和语言信息融合。「我的问题:为什么一个“线性投影层”或一个“MLP 多层感知器”就能实现视觉语言的融合?回答:不是融合了所有语义内容本身,是起了对齐接口的作用。要解决的问题其实是,怎么把视觉模型输出的图像向量,变成语言模型能接受的词向量格式。相比线性投影,mlp用relu等可以引入非线性表达能力。这些模块本质上没有融合视觉和语言的语义内容,只是统一接口。真正的融合是由语言模型后续的transformer层完成的,它将图像和文字联合建模joint modeling,即把图像当词处理,和文本token一起送入transformer,通过self-attention在高维空间建立图文直接的语义连接。」

遥感领域的VLM应用相对较少。目前还停留在单任务、非对话阶段,geo-chat实现了多任务统一处理+多轮对话+区域推理+目标指向。 

geo-chat支持的三类任务:

a) 图像级对话任务(Image-Level Conversation Tasks)
  • 输入:图像 x + 用户文本问题 q
  • 没有提供图像中具体的区域或位置(即不涉及坐标)
  • 目标:基于整张图进行对话任务,比如:
    • 图像级问答(Image-level VQA)
    • 场景分类(Scene classification)
    • 图像描述(Image captioning)
b) 区域级对话任务(Region-Level Conversation Tasks)
  • 输入:图像 x + 用户问题 q + 区域框 b(如一个 bounding box)
  • 区域 b 引导模型将注意力集中在图像中的某个区域
  • 任务包括:
    • 区域描述(Region-level captioning)
    • 区域问答(Region-specific VQA)
    • 区域多轮对话(Multi-turn conversation about a region)
c) 视觉指向对话任务(Grounded Conversation Tasks)
  • 使用任务标记(task-specification token)t来告诉模型:“现在我要你给出目标位置”
  • 模型输出中包含视觉定位信息(如坐标框)
  • 支持以下任务:
    • 带视觉指向的图像描述/对话(grounded captioning/conversation)
    • 目标定位(object grounding)
    • 指代表达检测(referring expression detection)
      → 例如用户说:“图中那辆红色的卡车在哪?”模型能标出其位置

「问题:什么是任务标记t? 回答:这类 token 被称为 “任务提示标记”(task-specification token / prompt token),它的本质是:一种特殊的字符串,告诉模型该执行哪种任务,而不是靠代码硬编码任务类型。

 

 

」 

模型结构:

总架构:geo-chat遵循了llava-v1.5的设计,主要包括三个核心组件:全局图像编码器、mlp适配器(两个线性层)、大语言模型。「问题:什么是全局图像编码器?回答:就是把输入图像(通常是高维像素矩阵)编码成一组高层语义特征向量,供语言模型使用,之所以叫全局图像编码器,是因为它不是只看图像的一部分(像检测模型那样划窗),而是对整张图像进行统一编码。虽然是图像切成patch,但是所有patch一起送入transformer,每个patch的表示都会注意其他patch的信息(通过self-attention)」与llava不同的是,geo-chat中有特定任务提示(task prompt)

task token:三种不同的任务标识符,t ∈ {grounding, identify, refer}, each for grounded conversations, region captioning and referring expression comprehension.指向对话、区域描述、指代表达理解。至于 视觉问答(VQA) 和 场景分类(scene classification),我们直接要求模型输出一个单词或短语作为答案

空间位置表示:采用文本格式表示目标框的位置,以表达目标的地理位置:
b = {bx_left, by_top, bx_right, by_bottom | θ} 数值范围:x 和 y 坐标的数值都在区间 [0, 100] 内进行归一化表示。区域位置以这种格式表示后,可以在模型的输入和输出中使用,帮助模型准确地与图像中的区域进行交互。

visual backbone:采用clip-vit的预训练backbone。原始clip-vit的输入分辨率为336*336,这样每张图片被分割成576个patch。这个分辨率细节有点不够,因此我们对 CLIP 模型中基于 Transformer 的 位置编码(positional encoding)进行了插值处理,以适应 504×504的输入图像大小。这种处理方式,让patch数变成1296,但增强后可以处理更大的图像、支持更好的高分辨率遥感图像中的视觉指向。

mlp跨模态适配器:对于 504×504 分辨率的图像(如 GeoChat 中所使用的图像),CLIP-ViT 会将图像编码成 1296 个 patch,每个 patch 都是 1024 维的向量,总输出为 R1296×1024。经过mlp适配器之后,变成R1296*4096,和语言模型对接。激活函数是GeLU。

大语言模型:使用开源的vicuna-1.5(7b)作为基础,是框架中各种语言-视觉输入的统一接口。采用lora微调,确保了更快速的训练,避免遗忘llm中原有的知识。

训练细节:

采用预训练的clip-vit编码器,预训练的mlp适配器(该适配器是在 LAION-CC-SBU 数据集的 558K 子集上(使用 BLIP描述)进行训练的),和vicuna- v1.5初始化我们的模型。编码器和mlp适配器都是冻结的,训练时对vicuna-v1.5进行lora。「Q:什么是blip描述?A:bootstrapping language-image pretraining 是一种图像描述生成模型,能够自动生成与图像内容相关的文本描述」

遥感多模态指令数据集

通过使用llm vicuna,喂很多指令跟随的数据(instruction-following data)我们让模型能接受很多指令。使用vicuna模型生成指令-响应对,少样本学习:在提示中提供一些手动编写的示例来帮助vicuna学会如何构建高质量的指令-响应对。

数据集的组成:整合了三种不同类型的数据集,涵盖了目标检测、场景分类和视觉问答。目标检测数据集提供了区域推理能力,因为其提供了边界框和分割掩码。

缺失类别的补充:虽然目标检测数据库中包含了大量物体类别,但仍然缺少一些重要的类别,如建筑物、道路和树木。vitae-rvsa模型通过loveDA数据集,预先学习了遥感中的一些重要类别,然后这个模型应用到samrs数据集上,预测samrs中没有的类别(比如建筑物 道路 树木等),伪标签用来填补数据集中的空白。

属性提取:提取物体的类别、颜色、相对大小等。还有图像中物体间的关系,比如surround by之类的

表达生成:基于一个预定义文本模版,包括表格中的5个属性

视觉定位:尽管在自然图像领域已经有大量的referring expression数据集,遥感领域还是缺乏类似的标注数据集。 referring expression是用自然语言描述图像中物体或区域的语言表达(例如“左上角的红色房屋”)。三种类型的问答对:定位图像描述(grounding image descriptions)参考表达式(referring expression)区域集标注(region level captioning)

实验

实现细节:用预训练的clip-vit来初始化模型权重,同时llm(vicuna-v1.5)也作为基础模型,采用lora微调。lora适配过程中,主要优化Wq和Wv即查询权重矩阵和值权重矩阵。lora设定的rank为64。优化器AdamW,学习率Cosine Learning Rate Scheduler,批量大小144。训练策略是两阶段,第一阶段所有数据集训练一个epoch(2400个steps),第二阶段仅使用grounding数据集继续训练1600个steps,以增强模型在目标定位任务上的表现。

场景分类任务中,用AID(其20%作为测试集)和UCMerced(用于零样本zero-shot测试)两个数据集来评估,

结果:GeoChat 的表现:UCMerced 数据集:GeoChat 取得了 84.43% 的准确率。AID 数据集:GeoChat 取得了 72.03% 的准确率。

视觉问答任务中,用RSVQA-HRBEN 和 RSVQA-LR 两个数据集。问题类型有:presence存在性(询问某个物体是否出现在图中)、comparison比较(比较两个或多个对象的属性)和count计数(询问图像中物体的数量)还有rural/urban(城乡分类)

视觉定位任务中:提出了新benchmark。grounding description任务是要求生成文本描述,同时预测多个目标的边界框,用iou作为指标。region-level captioning区域级描述任务,评测指标:rouge(召回导向的摘要评测)和meteor(基于词形匹配的文本相似性评测)

一些难点:小物体和需要预测多个边界框的任务,模型整体性能较低。

结论

大语言模型在自然图像领域取得了显著进展,但是在遥感场景表现受限。所以提出了Geo-Chat,首个统一的遥感vlm。能够在高分辨率remote sensing图像上,多任务对话。回答图像级别查询,进行区域特定对话,返回精确坐标。还构建了新的遥感多模态指令跟随数据集,采用多任务格式来涵盖各种任务。

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

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

相关文章

基于STM32的PID算法控制电机调速

一、制作目标 以STM32F103C8T6单片机作为主控,使用PID控制算法,控制TB6612FNG电机驱动板模块驱动直流减速电机(带AB相编码器),实现任意设定转速的电机转速动态控制,类似于汽车的定速巡航功能,可…

系统思考—看见未来

感谢上海财经大学终身教育学院的持续邀请!每个月,都会带着不同的思维火花,走进财大与学员们一起探索系统思考的奥秘。 这次为宜宾市的干部们带来了一场深刻的学习体验。通过系统思考,帮助大家从整体视角去发现问题、分析问题、解…

qwindowkit 编译教程

1、Windows编译及示例 1.1 下载源码 https://github.com/stdware/qwindowkit 1.2 cmake编译 1.3 VS构建 1.4 编译成功

HashMap的位操作是什么?HashSet 的 contains 方法复杂度是多少?红黑树简单讲一下?

一、HashMap 的位操作设计 HashMap 使用位运算优化哈希计算与索引定位,核心场景如下: 哈希扰动函数 计算键的哈希值时,将高16位与低16位异或: static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hash…

软件开发过程中常用的调试工具(gdb)

gdb 因为我们公司其中脚本中有rk的gdb调试工具脚本,内部只需要将其打开后进行编译即可: 需要将编译出来的cvr_app 第一种:使用gdb将app给跑起来:gdb cvr_app 然后在出现问题时: 输入bt,可以打印出当前…

S32K144外设实验(七):FTM输出多路互补带死区PWM

文章目录 1. 概述1.1 时钟系统1.2 实验目的2. 代码的配置2.1 时钟配置2.2 FTM模块配置2.3 输出引脚配置2.4 API函数调用1. 概述 互补对的PWM输出是很重要的外设功能,尤其应用再无刷电机的控制。 1.1 时钟系统 笔者再墨迹一遍时钟的设置,因为很重要。 FTM的CPU接口时钟为SY…

Qt6相对Qt5的主要提升(AI总结)

我: Qt 6 相对于5 有哪些新功能? Qt 6 相对于 Qt 5 有诸多新功能和改进,以下是主要的新增特性: 1. 架构和核心库的重构 模块化设计:Qt 6 采用了更加灵活的模块化设计,开发者可以按需引入必要的功能模块&a…

一文解读DeepSeek的安全风险、挑战与应对策略

引言 DeepSeek作为中国领先的AI大模型提供商,凭借其开源、低成本和高性能的优势,迅速在全球AI市场占据重要地位。然而,随着其应用范围的扩大,DeepSeek在数据安全、模型漏洞、网络攻击等方面面临严峻挑战。本文基于最新公开资料&am…

文生图语义识别插件使用(controlnet)

1. 插件下载(github) https://github.com/Mikubill/sd-webui-controlnet https://github.com/lllyasviel/ControlNet2. 模型下载(hugging face) https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download https://huggingface.co/bdsqlsz/qinglong_controlnet-l…

论华为 Pura X 折叠屏性能检测

在科技浪潮中,折叠屏手机以其创新形态掀起市场热潮。华为 Pura X 作为华为最新折叠手机,承载前沿科技与精湛工艺,成为行业焦点。它融合先进折叠屏技术与优质材质,致力于打破传统手机使用边界,为用户开启全新体验。但产…

多路转接Poll

在之前我们讲过select是最古老的多路转接方案,古老就意味着他不是很方便使用,他需要用户手动保存fd_set这个位图结构,来表示读写事件的关注与否或者就绪性。 而且由于fd_set的大小是固定的,这就意味着他能管理的套接字文件描述符是…

C语言贪吃蛇实现

When the night gets dark,remember that the Sun is also a star. 当夜幕降临时,请记住太阳也是一颗星星。 ————《去月球海滩篇》 目录 文章目录 一、《贪吃蛇》游戏介绍 二、WIN32部分接口简单介绍 2.1 控制台窗口大小设置 2.2 命令行窗口的名称的变更 2…

基于深度学习的图片识别系统(下)

文章目录 前言1.任务描述2.模型搭建3.代码解释3.1模型加载3.2加载数据3.3模型权重的保存3.4学习率3.5过拟合3.6训练模型3.7调试检查 4.结果分析5. 完整代码结语 前言 书接上回,我们已经完成数据预处理部分的内容,后续仍需要对表格进行裁剪,此…

再学:区块链基础与合约初探 EVM与GAS机制

目录 1.区块链是什么 2.remix ​3.账户​ ​4.以太坊三种交易​ 5.EVM 6.以太坊客户端节点 ​7.Gas费用 8.区块链浏览器 1.区块链是什么 只需要检验根节点 Merkel根是否有更改,就不用检查每个交易是否有更改。方便很多。 2.remix 3.账户 如果交易失败的话&…

Java 中装饰者模式与策略模式在埋点系统中的应用

前言 在软件开发中,装饰者模式和策略模式是两种常用的设计模式,它们在特定的业务场景下能够发挥巨大的作用。本文将通过一个实际的埋点系统案例,探讨如何在 Java 中运用装饰者模式和策略模式,以及如何结合工厂方法模式来优化代码…

HCIP_NOTE03_网络组成

网络组成 LAN MAN WAN 园区网 企业或机构内部的网络,分大中小型 行业园:企业园网 校园网 政务园 商业园 三层交换机 数据大量交换的局域网内部,转发效率高,有简单的路由功能 路由器 进出口网络,适用于复杂的网络环境,选路需求 无线网 信号传输稳定性差---- 电磁波易受干…

简记_单片机硬件最小系统设计

以STM32为例: 一、电源 1.1、数字电源 IO电源:VDD、VSS:1.8~3.6V,常用3.3V,去耦电容1 x 10u N x 100n ; 内核电源:内嵌的稳压器输出:1.2V,给内核、存储器、数字外设…

32.[前端开发-JavaScript基础]Day09-元素操作-window滚动-事件处理-事件委托

JavasScript事件处理 1 认识事件处理 认识事件(Event) 常见的事件列表 认识事件流 2 事件冒泡捕获 事件冒泡和事件捕获 事件捕获和冒泡的过程 3 事件对象event 事件对象 event常见的属性和方法 事件处理中的this 4 EventTarget使用 EventTarget类 5 事件委托模式 事件委托&am…

LeetCode hot 100 每日一题(15)——48.旋转图像

这是一道难度为中等的题目,让我们来看看题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 提示…

图灵300题-21~40-笔记002

图灵300题 图灵面试题视频:https://www.bilibili.com/video/BV17z421B7rB?spm_id_from333.788.videopod.episodes&vd_sourcebe7914db0accdc2315623a7ad0709b85&p20。 本文是学习笔记,如果需要面试没有时间阅读原博文,可以快速浏览笔…