1. 解决的问题

        目前的大型视觉语言模型(VLMs)虽然能用于对给定的自然图像内容进行对话,但是这种通用领域的模型在遥感影像的场景中往往表现不佳,造成在遥感影像中特定查询时出现不准确或伪造的信息。为了解决这些问题,本文提出了第一个多功能遥感模型Geo Chat,将多模态指令调整扩展到遥感领域以训练多任务会话助手。它能够提供高分辨率遥感图像的多任务会话功能:

  • 回答图像级别的查询;
  • 接受区域输入来进行特定区域的对话;
  • 通过参考物体的空间坐标在其响应中直观地显示物体。

2. 本文的贡献

        本文的贡献主要包括以下三个方面:

  • 通过扩展现有的不同遥感数据集的图像文本对,生成了一个新的遥感多模态指令跟踪数据集
  • 提出了第一个多功能遥感模型Geo Chat(利用本文创建的数据集对 LLaVA1.5 进行 LoRA 微调);
  • 解决了缺乏评估现有 VLM 遥感对话能力的评估基准问题,为遥感中的会话基础设置了评估协议,以便与该方向的未来工作进行比较。

3. Geo-Chat

        Geo-Chat 能够完成的任务如下:

  • 图像级对话任务:通过用户输入的图像和文本,在整张图像上执行视觉问答、场景分类和图像描述;
  • 区域级对话任务:根据用户提供的图像、文本和空间框位置执行区域级描述、对话的任务;
  • 接地的对话任务:通过任务令牌来引导 Geo Chat 提供不同粒度的对象位置。

3.1 Geo Chat 的架构

        Geo Chat 遵循 LLaVA-v1.5 的架构,由 3 个核心组件组成:全局图像编码器多层感知机(两个线性层)和 LLM(大语言模型)。并且在 LLaVA 的基础上添加了特定的任务提示,架构中的每个组件描述如下:

3.1.1 任务令牌

        本文通过不同的任务令牌让 Geo Chat 将遥感影像的多个图像和区域级推理任务统一在一个框架内。这些任务令牌为每个任务分配一个唯一的任务标识,有助于模型的响应更加符合用户的需求。本文提出了三个不同的任务标识,即 t \in \begin{Bmatrix} & grounding, identify, refer & \end{Bmatrix},分别用于接地对话任务区域描述引用表达理解。对于视觉问答和场景分类的情况则直接让模型输出单个单词或短语。

3.1.2 空间位置表示

        模型精确地识别目标对象的空间位置,并被一个矩形包围。本文用文本格式来表示矩形的位置,从而表示出目标对象的空间位置:b=\begin{Bmatrix} & b_{xleft}, b_{ytop}, b_{xright}, b_{ybottom | \theta} & \end{Bmatrix}。其中 b_xleft 和 b_ytop 表示矩形的左上角点,b_xright 和 b_ybottom 表示矩形的右下角点。角度 θ 表示矩形从下边缘旋转的角度。

3.1.3 视觉中枢

        Geo Chat 采用 CLIP-ViT(L-14) 的预训练视觉主干,其输入图像的分辨率为 336x336,并在基于变换器的 CLIP 模型中对位置编码进行插值,以此来将输入图像的尺寸放大到 504x504。使得模型能够处理更大尺寸的图像,并支持高分辨率遥感影像中更好的视觉基础。

3.1.4 MLP跨模态适配器

        从冻结的 CLIPViT 中使用具有一个隐藏层的 MLP 适配器,将维度为 1024 的输出标记投影到语言模型空间上。适配器的输入维度为 1024,并输出大小为 4096 的向量,这对应于 LLM 的输入大小。使用 GeLU 作为激活函数。

3.1.5 大型语言模型

        Geo Chat 以开源的 Vicuna-v1.5 大型语言模型作为基础。为了完成不同的视觉语言任务,模型直接依赖于 Vicuna-v1.5 的语言标记,并采用基于低秩自适应(LoRA)的策略对 LLM 进行微调。在训练过程中,在 LoRA 中对两个较小的矩阵进行微调,使其近似于原始较大的矩阵。之后将微调后的适配器输入预训练模型并用于推理。 

3.2 训练细节

        为了提高 Geo Chat 在一般视觉任务上的有效性并优化训练效率,本文使用预训练的 CLIP-ViT(L-14) 编码器在大量文本和视觉数据上进行训练,使用预训练的 MLP 适配器,在带有 BLIP 描述的 LAION-CC-SBU数据集的 558K 子集上进行预训练,并使用 Vicuna-v1.5 初始化模型。

        为了使模型适应遥感图像,本文随后对 LLM 进行了LoRA 微调,同时在训练期间保持 MLP 适配器和 CLIP 编码器冻结。     

4. 遥感多模态指令数据集

        本文使用 LLM Vicuna 通过呈现和管理关于遥感影像的多轮对话的各种指令跟随数据来调整模型以遵循一系列指令。 本文提供系统指令作为提示,要求 Vicuna 以可视化图像的方式来生成多轮问题和答案对。

        指令集的创建过程如下:

  1. 合并数据集:本文合并了三种不同类型的数据集,包括为目标检测场景分类视觉问答设计的数据集。
  2. 添加缺失类:对象检测数据库中缺少一些基本类别,如建筑物、道路和树木等。为了解决这个问题,本文使用 ViTAE-RVSA 模型,该模型在 LoveDA 数据集上进行预训练,其中包含所需的重要类。该模型用于在 SAMRS 数据集上推断这些类,产生伪标签
  3. 属性提取:为了引用表达式注释,在 RS 图像中派生各种属性是很重要的。为此,本文选择了五种不同类型的属性。目标类别信息可以直接从 SAMRS 数据集中获得。对于颜色提取,我们使用 K-Means 聚类算法。
           具体来说,本文使用 ground-truth box 从图像中提取对象的像素,并将其聚类为 K 组。然后选择最大集群的中心作为对象的颜色。为了指定对象的相对大小,我们将对象分为三种大小:小、正常和大。这种分类是通过测量一个类在整个数据集中所有位置的面积,并将第80个百分位数分配为大标签来确定的。同样,第20个百分位数被指定为小尺寸,其余的属于正常类别。


           为了确定对象在图像中的相对位置,我们将整个图像划分为3×3网格,定义区域,如右上、上、左上、左、中、右、右下、左下和下。根据对象的中心像素坐标,我们相应地指定其相对位置。为了定义给定图像中对象之间的关系,我们根据边界框之间的距离对不同的对象进行分组,对于每个子图,我们根据对象的类标签分配对象之间的不同关系。

  4. 表达式生成:为了模拟自然语言表达式,本文采用了基于 Rsvg 的预定义文本模板。短语模板包含属性 {a1, ... ,a5},同一类的一组对象的表达式为:The /A <a3> <a2>a1<in/on \,\, the \,\, a4>,可能不存在的属性包含在 <> 中。

  5. 视觉基础:本文使用本文的简短描述作为引用表达式来创建三种不同类型的问答对,即: 接地图像描述、参考表达、区域级描述。

5. 实验部分

5.1 实验细节

        本文使用预训练的 CLIP-ViT 和 Vicuna-v1.5 初始化模型权重,并使用 LoRA 微调。利用 LoRA,本文通过低秩自适应来细化参数 W_q 和 W_v,指定秩 r 设置为64。

5.2 场景分类

        对于场景分类,本文使用 AID 和 UCMerced 来评估模型。本文使用所有类提示模型,并仅使用一个单词/短语提示来对图像进行分类。例如,输入一个提示:“将图像分类在给定的类中:密集住宅区,......,学校。用一个单词或短语来回答”。本文计算了 AID 和 UCMerced 的零样本精度(zero-shot accuracy),结果如下所示:

5.3 视觉问答

        用 RSVQA-HRBEN 数据集和 RSVQA-LR 数据集进行评估,前者有 3 种问题类型:存在、比较和计数,而后者有四类不同的问题:存在、比较、农村/城市和计数。实验结果如下:

5.4 Visual Grounding(VG)

       对于遥感中的 VG 任务,本文提出了一个新的基准,包含不同的参考任务和基础训练的任务。本文用 SAMRS 数据集中的验证集,并使用与第 4 节中相同的数据集创建管道来构建测试基准。本文使用 acc@0.5 作为评估度量,即如果预测框与地面实际框的重叠面积超过 0.5IoU,则认为是计算正确的结果。

        实验结果如下,其中 [refer] 是指使用表 3 中的 a2、a3 或 a4中的一个属性引用的对象,[grounding] 是指使用表 3 中 a1-a5 的属性组合引用的对象:

# 拓展知识 

  • LLaVA:是一个多模态视觉-文本大语言模型,可以完成图像描述、视觉问答、根据图像写代码等任务。该模型是基于 CLIP 的视觉编码器和 LLaMa 语言解码器构建的,并且在指令视觉-语言数据上进行了微调;
  • VQA:视觉问答领域;
  • Geo Chat 使用 Vicuna-v1.5(和 ChatGPT 类似的一个语言模型) 和一个自动化管道生成包括近318k指令的各种遥感多模态指令跟随数据。从各种现有的遥感数据集中为不同的任务开发了图像-文本对。
  • 从各种现有的遥感数据集中为不同的任务开发图像-文本对,包括用于 VQA 的 LRBEN,用于场景分类的 NWPU-RESISC-45 和用于目标检测的 SAMRS。
  • IIva-v1.5 架构
  • LLM
  • CLIP-ViT(L-14)
GitHub 加速计划 / vi / vision
15.85 K
6.89 K
下载
pytorch/vision: 一个基于 PyTorch 的计算机视觉库,提供了各种计算机视觉算法和工具,适合用于实现计算机视觉应用程序。
最近提交(Master分支:2 个月前 )
868a3b42 13 天前
e9a32135 22 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐