Change-Agent:可交互的遥感变化解译智能体

关注公众号,发现CV技术之美

本文为粉丝投稿。

本文将为大家介绍Change-Agent: Towards Interactive Comprehensive Change Interpretation and Analysis from Change Detection and Change Captioning(遥感变化智能体:从变化检测和变化描述迈向可交互的全面变化解译与分析),数据集和代码即将开源。

af02e7faa1ffa46bcec887d39bbfdec4.jpeg
  • Title:Change-Agent: Towards Interactive Comprehensive Change Interpretation

  • paper: https://arxiv.org/abs/2403.19646

  • Data&Code: https://github.com/Chen-Yang-Liu/Change-Agent

01导读

监测地球表面变化对于理解自然过程和人类影响至关重要,需要精确和全面的解释方法。遥感卫星图像提供了监测这些变化的独特视角,使得遥感图像变化解释(RSICI)成为一个重要的研究焦点。当前的RSICI技术包括变化检测和变化描述生成,每种技术都有其在提供全面解释方面的局限性。

为解决这个问题,本文提出了一个可交互式的Change-Agent,将多层次变化解释(MCI)模型作为眼睛,大型语言模型(LLM)作为大脑进行整合。Change-Agent可以根据用户的指令进行全面的变化解释和深入的分析,如变化检测和变化描述生成、变化对象计数、变化原因分析等。

本文提出的MCI模型包含像素级变化检测和语义级变化描述生成两个分支,其中多个BI-temporal Iterative Interaction(BI3)层利用局部感知增强(LPE)和全局差异融合注意(GDFA)模块增强了模型的判别特征表示能力。为训练MCI模型,本文构建了LEVIR-MCI数据集,其中包含了双时相图像以及对应的多样化变化掩膜和语句描述。

实验表明了所提出的MCI模型的有效性,并突出了Change-Agent在促进地表变化的全面和智能解释方面的潜力。

02引言

地球表面的变化作为地球系统的动态指标,深刻影响着地球的演化和人类的生存。遥感(RS)卫星图像提供了独特的“上帝视角”,成为监测地球动态变化的有效工具,遥感图像变化解释(RSICI)旨在识别和分析在同一地理区域不同时间捕捉到的图像中的变化。

当前的RSICI技术主要包括变化检测和变化描述。变化检测准确定位了像素级(Pixel level)的变化的空间位置。而变化描述旨在使用自然语言表达变化的属性和含义,强调对变化的语义级理解(Semantic level)。尽管这两个领域都取得了显著的进展,但它们各自的局限性阻碍了通过单一技术获得全面的变化解释信息。

具体来说,虽然变化检测可以准确地定位变化区域,但它缺乏对变化潜在含义的深入理解,例如地面物体的特征或它们之间的空间关系。相反,变化描述可以提供丰富的语义级别解释信息,但在提供精确的像素级别变化定位方面可能存在不足。因此,迫切需要探索一种多层次变化解释(MCI, Multi-level Change Interpretation)方法来实现精确的变化定位,又可深入挖掘变化的本质和含义。

此外,实际应用通常需要对像素级和语义级变化解释结果进行全面分析和进一步处理,以满足特定需求。例如,用户可能需要对变化对象数量进行统计分析,这需要研究人员投入大量时间和精力,并要求用户具备技术能力。

为解决这些挑战,本文提出了交互式Change-Agent,以MCI模型作为“眼睛”,大型语言模型(LLM)作为“大脑”的。下图展示了Change-Agent相比之前技术所取得的进步。与以往的单一技术不同,Change-Agent具有交互能力,用户能够就地表变化提出需求。利用MCI模型和LLM,Change-Agent能够根据用户需求智能分析和处理获得全面的变化解释信息。此外,本文提出了一个多级变化解译数据集LEVIR-MCI 为MCI模型训练提供数据基础。

b30c12ccf4de53e7d2569c7921bdbe12.jpeg

本文的主要贡献总结如下:

  1. 建立了一个多层次变化解释数据集。该数据集包含双时序图像以及多样化的变化检测掩码和描述性语句。它为探索多任务学习提供了关键的数据基础,用于变化检测和变化字幕。

  2. 提出了一个双分支的MCI模型,可以提供像素级和语义级的变化解释。此外,我们提出了具有LPE和GDFA的BI3层,以增强模型的变化解释能力。实验证实了我们方法的有效性。

  3. 构建了一个基于MCI模型和LLM的Change-Agent,实现了对地表变化的交互式和全面的解释和分析。它具有智能对话和定制服务能力,为智能遥感应用开辟了新的机遇。

03数据集

Dataset Overview

所提出的LEVIR-MCI数据集是先前的变化描述数据集LEVIR-CC的扩展。本文进一步为每对双时序图像提供了额外的变化检测mask,突出显示了变化的道路和建筑物。LEVIR-MCI数据集为每对图像提供了来自不同解释角度的多样化注释,进一步增强了用于全面变化解释的实用性。图2展示了一些数据集中的例子。

Change Object Mask

e7ca1d5e42c4b41e3801f6e8b99c895a.jpeg

数据集包含了超过40,000个变化道路和建筑物的标注实例。虽然变化道路的数量比建筑物少,但通常呈现出更长的跨度和更大的覆盖区域。
通过对道路和建筑区域以及相应的矩形边界框进行分析,本文对物体的尺度和形变进行了深入的研究,如图3所示。点的分散程度提供了关于对象尺度和形变多样性的见解。

值得注意的是,道路点呈现出相对较广的光谱和分散多样性,这归因于它们狭窄且弯曲的特性。相比之下,建筑物点显示出更集中的分布,反映了它们主要是矩形形状的特点。

04方法

图4中展示了Change-Agent的概览。其利用MCI模型作为眼睛,LLM作为大脑。MCI模型使Change-Agent能够全面感知视觉变化,作为Change-Agent的变化感知基础。LLM可以利用其丰富的内在知识来实现代理调度,并提供深入的分析和决策支持。

d183b404a0e5779e67ae9854b2a86502.jpeg

Multi-level Change Interpretation Model

MCI模型是Change-Agent的核心组件,负责从双时相遥感图像中解译变化信息。所提出的LEVIR-MCI数据集为训练MCI模型奠定了基础。MCI模型采用了一个共享底部的双分支架构,专注于两个关键任务:变化检测和变化描述。

具体而言,孪生主干网络从双时相图像中提取多尺度的视觉特征用于两个分支的学习。较低层次的特征提供了详细信息,而较高层次的特征则丰富了语义信息。变化检测分支利用多尺度特征来优化变化掩码的预测,而变化字幕分支则利用最高级别的视觉特征生成描述性语句。

通过多任务学习,本文训练了一个强大的MCI模型,能够同时生成变化检测掩码和变化描述。

Bi-temporal Iterative Interaction Layer

在变化检测和变化描述分支中,本文提出了一种新颖的BI-temporal Iterative Interaction(BI3)层,以有效增强和融合双时序特征。BI3层的结构如图5所示。BI3层利用局部感知增强(LPE)模块和全局差异融合注意(GDFA)模块提取感兴趣的判别特征。

48091a1569dab0b2107a12d9baecc736.jpeg e273adcd5bf8a7b4d6527919d380a7fe.jpeg 274c505895c0369110a563663cbf3774.jpeg

关于变化检测和变化描述分支详细结构可参看原论文

LLM: Brain of Change-Agent

本文利用LLM负责协调我们的Change-Agent的调度。如下图所示,LLM根据用户指令精心规划任务执行。尽管在文本相关任务上表现出色,但LLM缺乏固有的视觉感知能力。

为了弥合这一差距,并实现类似于人类能力的变化解释和分析,本文为Change-Agent提供了一套Python工具,包括视觉特征提取主干、变化检测分支、变化描述分支以及相关的Python库。

利用这些工具,LLM自主地构建Python程序,随后调用Python解释器执行以完成超出其固有能力范围的任务,例如对象计数、图像处理、变化原因估计、未来变化预测等功能。

faacbacfff4f05259cb60bd9d510d0ab.jpeg

05实验

Multi-level Change Interpretation Performance

目前缺乏同时解决变化检测和变化字幕的方法。为评估MCI模型在处理这两个任务时的效果,本文在提出的数据集上与各自领域的已建立方法进行了性能对比。实验证实了本文提出的MCI模型在变化检测和变化描述任务上的联合解译能力的优越性。

337c24751e77abfc2f809e5efe169c92.jpeg 80c9cb008f88aa486e18d6c884d167bf.jpeg

Result

de5a72f5cdc4b159295049b9964c44aa.jpeg e82811708fc875bd8e31d807dc76d57d.jpeg b1a74c1195eab6e395e07681c177af99.jpeg

06结论

本文通过开发一种新颖的Change-Agent,解决了对地球表面变化进行全面和智能解释的迫切需求。该智能体由MCI模型和LLM驱动,具有强大的视觉变化感知能力和熟练的任务调度能力。MCI模型由变化检测和变化描述两个分支组成,可提供像素级别的变化掩码和语义级别的变化描述。

在双分支框架内,本文设计了一个具有LPE和GDFA的BI3层,以增强模型的判别特征表征能力。此外,本文构建了一个包含多样化的变化检测掩码和描述的数据集以支持模型训练。实验证实了所提出的MCI模型的有效性,并强调了Change-Agent在促进地表变化的全面和智能解释方面的潜力。

欢迎加入「遥感交流群👇备注:遥感

035d334746f0e7dda53edde31806047f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值