SkyEyeGPT: Unifying Remote Sensing Vision-Language Tasks via Instruction Tuning with Large Language

SkyEyeGPT:基于大语言模型指令调优的遥感视觉语言任务统一

Yang Zhan, Zhitong Xiong, Yuan Yuan
2024

摘要:大型语言模型(llm)最近已经扩展到视觉语言领域,获得了令人印象深刻的通用多模态能力。然而,针对遥感(RS)数据的多模态大语言模型(mllm)的探索还处于起步阶段,其性能并不令人满意。在这项工作中,我们介绍了SkyEyeGPT,一个专门为RS视觉语言理解设计的统一的多模态大语言模型。为此,我们精心策划了一个RS多模态指令调优数据集,包括单任务和多任务对话指令。经过人工验证,我们获得了968k个样本的高质量RS指令跟随数据集。我们的研究表明,通过一个简单而有效的设计,SkyEyeGPT在不需要额外编码模块的情况下,在相当不同的任务上工作得非常好。具体来说,在通过对齐层将RS视觉特征投射到语言域之后,它们与特定于任务的指令一起被馈送到基于llm的RS解码器中,以预测RS开放式任务的答案。此外,我们设计了一种两阶段调谐方法来增强不同粒度的指令跟随和多回合对话能力。在8个RS视觉语言任务数据集上的实验表明,SkyEyeGPT在图像级和区域级任务(如字幕和视觉背景)上具有优势。特别是,与GPT-4V相比,SkyEyeGPT在一些定性测试中表现出令人鼓舞的结果。在线演示,代码和数据集将被发布。

论文面对的问题:尽管Multi-modal Large Language Models (MLLMs)取得了很大的进展,但由于自然和遥感领域之间的固有差异,广义MLLMs的胜利并没有无缝地扩展到遥感(RS)视觉语言任务。

多模态遥感领域的指令调谐仍未得到充分的探索。挑战在于缺乏大规模的RS多模态指令跟随数据。

针对性提出方法:为了将LLMs的优势与遥感任务无缝结合,我们引入了SkyEyeGPT,一种能够处理开放式RS视觉语言任务的统一模型。每个任务的输入和输出都用自然语言表示,包括边界框坐标。SkyEyeGPT的体系结构包括一个可视编码器、一个对齐层和一个用于RS开放式任务的基于llm的解码器。我们不设计任何额外的编码器或外部插件模块,使SkyEyeGPT成为统一高效的模型,并且易于训练和部署。

        RS多模态大语言模型面临的一个挑战是缺乏指令数据。我们创建高质量的指令遵循数据,包括单任务和多任务会话指令。


RS视觉语言教学中使用的训练样本的详细信息。星号表示此数据仅在第二阶段使用。

         开发了SkyEyeGPT,它统一了RS视觉语言任务,在实现RS视觉和LLM的统一建模方面开辟了新的领域。

 由SkyEyeGPT促进的遥感多模式会话交互。演示展示了SkyEyeGPT参与多任务对话,完成图像详细描述、视觉接地、短语接地、VQA、图像字幕、参考表情生成、场景分类、无人机视频字幕等RS多模态任务。

 SkyEyeGPT的总体框架
视觉编码器:使用预先训练好的视觉转换器EVACLIP [Fang et al ., 2023]作为视觉编码器。我们训练时,参数是固定的。给定输入的RS图像I∈R H×W×3, H和W分别表示高度和宽度。最初,遥感图像的分辨率标准化为448×448。随后,我们使用EVA模型将图像分割成小块,并从这些小块中提取图像嵌入Zv∈R N×D,其中N为小块个数,D为隐藏维数。无人机视频特征由多帧图像的特征拼接而成。
调整层:我们考虑一个线性层来弥合模态差距,将来自视觉编码器的RS视觉特征与来自高级LLM的语言特征对齐。输入分辨率对于准确理解详细的RS图像-文本表示至关重要。但是,448 × 448的高分辨率会产生过多的patch N,这会降低LLM处理上下文输入的效率,并且对资源的要求很高。因此,我们选择不直接将RS图像嵌入投影到线性层中。采用了一种简单而有效的方法,将四个相邻的视觉标记直接连接起来,将patch的数量减少了4倍。线性层将视觉标记Z′v∈R N 4× (4×D)转换为语言空间中的嵌入Fv∈R N 4 ×d,其中d为LLM的隐维大小。
基于llm的RS开放式任务解码器:我们选择开源的LLaMA2-chat 作为我们的语言模型,这是一个仅解码器的LLM。我们的解码器将一系列视觉符号Fv和语言指令作为输入,生成特定于任务的答案。

 输入和输出模板。我们按照表2中的对话输入模板构建各种任务输入。我们引入特定于任务的标识符,如“[caption]、[vqa]、[reference]”。该设计实现了RS视觉语言任务的统一,同时允许模型灵活地产生特定于任务的输出。答案或响应,即模型输出,紧跟在[/INST]之后。区域级任务的输入或输出需要对象的边界框。我们用自然语言形式{}表示坐标。具体来说,(x1, y1)和(x2, y2)分别表示方框左上角和右下角的坐标。坐标值被归一化,乘以100,并四舍五入为整数。

        SkyEyeGPT在图像级和区域级RS视觉语言任务上实现了具有竞争力的性能。特别是,与GPT-4V相比,它在一些测试中显示出令人鼓舞的结果。 

        向公共社区发布了以下资产,用于实际场景中的应用程序:在线RS多模态聊天机器人、模型权重、指令遵循数据集和代码库。 

 达到效果:


通用模型和专用模型在UCM-captions数据集上对RS图像字幕任务的比较。


基于CapERA数据集的通用模型和专用模型在航拍视频字幕任务中的比较。


基于RSVG和DIOR-RSVG数据集的通用模型和专用模型在RS可视化接地任务中的比较


RSVQA-LR测试集和RSVQA-HR测试集的结果通才和专才基线的VQA结果比较。


在复杂场景的RS图像上的详细描述结果表明,与GPT-4V相比,SkyEyeGPT具有相当且令人鼓舞的遥感视觉理解能力。

引文格式:设计了一种两阶段调优方法来开发模型的多任务和多轮会话能力。设置特定于任务的标识符是为了方便对开放式任务的统一处理。在一系列不同粒度的任务上验证了SkyEyeGPT的有效性和优越性。SkyEyeGPT在许多任务上实现了新的SoTA精度,并提供了卓越的遥感多模式聊天体验。这项工作代表了遥感多模态领域的重大进步,通过LLM在统一框架中为开放式任务提供了一个通用的高性能解决方案。

注意:本文图比较大,看不清参照原文,地址(https://arxiv.org/abs/2401.09712

对于那些想进行嵌入式系统软件开发和学习,或者想研究嵌入式Linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员来说,可能存在如下几方面的问题:(1)经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够全面,无法深入研究和开发嵌入式软件。(2)高层次的软件设计和开发一般不用太考虑底层硬件的实现细节,如果直接处于一个具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。(3)如果硬件开发环境不太稳定(这种情况经常见到),且对具体的硬件不是很了解,则可能在排除问题上花费大量的不必要的时间。(4)如果你想自己尝试设计一个操作系统,则先在一个提供源码级调试的软件仿真器上进行开发,可能会大大提高你的开发进度。<br><br>对于想了解、学习一般操作系统的实现原理,Linux/μCLinux操作系统或TCP/IP等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码,这是一种静态的学习方法,效率较低,比较枯燥,缺少亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代码,只有通过亲手实践才能够掌握软件设计的核心内容。上面所指出的问题和需求促使SkyEye项目的诞生。 <br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>纯软件的模拟器有许多种,如模拟一个芯片时序逻辑的模拟器、只模拟CPU指令的模拟器、模拟整个硬件开发板的模拟器、模拟一个PDA的模拟器等。存在一些纯软件的仿真器或模拟器,如Stanford大学的SimOS模拟器,它仿真的是MIPS系列CPU和相关外设,可以在其上运行SGI公司的Irix操作系统和软件,目前基本上停止了进一步的开发;PSIM是一个仿真PowerPC指令集的模拟器,目前只支持简单的命令行应用程序;xcopilot是一个PDA模拟器,它是由Greg Hewgill出于个人喜好编写的,它仿真的是M68K CPU,通过它可以给基于PalmOS的软件开发者提供一个模拟开发环境。Bochs是一个仿真x86 CPU的开源项目,目前还支持AMD64 CPU,在它上面可以运行Linux操作系统。其它一些商业的仿真软件如vmware和virtualPC可以仿真一个真实的x86计算机,而Virtutech Simics仿真器可以仿真多种CPU和硬件,功能强大,可用于硬件和系统软件的评测。<br><br>SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件仿真进行了一定的简化。这样带来的好处是SkyEye的执行效率更高。SkyEye的推出具有下面三方面的意义:<br><br>通过SkyEye仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(μCOS-II除外)。因此,如果要学习Linux操作系统或者进行嵌入式系统开发,但苦于没有硬件支持,SkyEye仿真环境软件是一个很好的选择! <br>如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yokon_D

您的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值