首页 > 其他分享 >GeoKR系列--Geographical Knowledge-Driven Representation Learning for Remote Sensing Images阅读(1)

GeoKR系列--Geographical Knowledge-Driven Representation Learning for Remote Sensing Images阅读(1)

时间:2024-10-09 20:23:34浏览次数:3  
标签:表示 Knowledge 训练 -- 图像 网络 遥感 Learning 地理知识

一、abstract

1.绝大多数遥感图像仍未标注,想要充分利用这些未标注的图像,本文提出了一种基于地理知识驱动的表示学习方法,使得提升遥感图像的网络性能+减少对标注数据的需求。

2.本文将全球地表覆盖产品和与每张遥感图像相关的地理位置视为地理知识,为了消除遥感图像与地理知识之间因成像时间和分辨率差异而产生的监督噪声,我们提出了一种高效的预训练框架,并构建了一个大规模的预训练数据集Levir-KR【来自高分系列卫星的1,431,950幅分辨率各异的遥感图像】

3.实验表明:性能上优于ImageNet预训练和自监督表示学习方法+显著减少了下游任务(如场景分类、语义分割、目标检测、云/雪检测)的数据标注负担。

二、introduction--contributions

与abstract类似。

  • 我们提出了一种基于地理知识驱动的表示(GeoKR)学习方法和网络预训练方法,专用于遥感图像。这种方法可以被视为一种新颖且有效的网络预训练方法,能够提高下游任务的性能。

  • 我们提出了一种从地理知识中提取监督信息的方法,并构建了一个高效的表示学习框架,以消除由于遥感图像与地理知识之间差异导致的噪声标签的影响。

  • 我们构建了一个预训练数据集Levir-KR。该数据集包含来自高分系列卫星的1,431,950幅不同分辨率的遥感图像,可以有效支持网络预训练。

  • 实验结果表明,所提出的方法在提高下游任务性能和减少对标注数据需求方面,优于随机初始化、ImageNet预训练及其他自监督表示学习方法。

三、两张原理图

预训练:指在大规模数据集上对模型进行的初步训练,这些数据集不需要与特定的任务直接相关。在预训练阶段,模型学习通用的特征表示,为后续特定任务的微调提供基础。

下游任务:指在预训练之后,针对具体应用场景或特定目标进行的模型训练和优化。这些任务通常依赖于预训练阶段所学到的特征表示,通过对少量的标注数据进行微调来提高模型在特定任务上的性能。

第一张图片

预文本任务(Pretext Task):模型在表示学习阶段通过执行一些任务(如自监督学习任务)来增强其对遥感图像特征的理解。这些任务不需要标注数据,但帮助模型建立高效的特征表示。

上半部分展示了如何利用地理知识对未标注图像进行表示学习和预训练,主要目的是为模型提供通用的特征表示;下半部分展示了如何通过微调模型,在特定的标注数据上提升其性能,以应对具体的遥感图像处理任务。

第二张图片

(a) 部分:使用地理知识进行监督的表征学习和网络预训练流程

  1. 无标签的遥感图像:首先,这部分展示了大量的无标签遥感图像输入,作为模型的训练数据来源。
  2. 地理知识的引入:将这些遥感图像与地理知识相结合。地理知识包括与这些遥感图像对应的全球地表覆盖图(如图中的Land cover map M)。这个全球地表覆盖图提供了不同土地覆盖类型的地图信息。
  3. 功能F映射:图像通过一个函数F,将地理知识转化为某种表征形式(A),这是一种土地覆盖的比例知识表示,这些比例用来作为监督信号。
  4. 学生网络和教师网络:模型包含了一个学生网络和教师网络结构。学生网络通过图像进行训练,并计算损失函数(KL损失),然后将学生网络的权重通过公式​来更新教师网络的权重。教师网络帮助稳定训练过程,减少监督信号中的噪声影响。
  5. 知识表示与KL损失:图像的表示与地理知识表示A进行对齐,通过KL损失函数来进行优化,使得网络的输出尽可能与地理知识保持一致。

(b) 部分:下游任务的微调流程

四、method

Geographical Knowledge Supervision

GlobeLand30 是一种全球土地覆盖产品(GLC),它将地球划分为不同的区域,并包括十种不同的土地覆盖类型。每个区域都保存为一个独立的 TIF 文件。现在我们来看一下算法一:使用地理知识来获取遥感图像的监督信息,用于遥感表征学习。

步骤一:确定图像所属区域

用一个六元素的向量 GT来表示图像的地理位置信息:

  • GT(0) 和 GT(3) 分别表示图像左上角的坐标。
  • GT(1) 和 GT(5) 分别表示图像的水平和垂直分辨率(图像在水平方向和垂直方向上每单位长度所包含的像素数量)。
  • GT(2) 和 GT(4) 表示图像的旋转分辨率,通常这两个值为 0,表示没有旋转。

通过检查 GlobeLand30 中的每个区域,找到完全包含遥感图像 GT_I所在位置的区域。

步骤二:计算图像在区域中的相对坐标

计算公式如下:

步骤三:计算土地覆盖比例并生成知识表示向量

(1) 

 (2)设计转换函数F

问题描述:

由于 GlobeLand30 数据的分辨率与预训练图像的分辨率不同,生成的标签图 M 并不能与输入图像一一对应(即不能做到像素对像素的精确匹配)。为了避免空间上的错误,我们不能直接将标签图 M 作为监督信息,而是设计了一种转换函数 F 来将 M 映射到知识表示 A。

解决方案:

知识表示 A 是一个完全忽略空间信息的向量,以避免由不同分辨率引发的误差。这意味着,不再考虑图像中每个像素的具体位置,而是将注意力集中在不同土地覆盖类型的比例上。这样的处理方式避免了由于分辨率差异造成的错误。

要求:

  • 对于具有相似土地覆盖类型的图像,它们的知识表示 A 之间的相似度应该较小(即反映出它们的差异)。
  • 对于具有不同土地覆盖类型的图像,它们的知识表示 A 之间的相似度应该较大。

 计算公式:

Efficient Pretraining Framework

问题背景:

由于遥感图像的成像时间和分辨率与地理知识数据(如GlobeLand30)不同,在训练过程中引入了监督噪声,这些噪声可能影响模型的性能。

解决方案:基于Mean-Teacher网络的预训练框架

为了减少监督噪声的影响,作者提出了一个基于 Mean-Teacher Networks 的预训练框架。这种框架包括两个结构相同的网络:学生网络(Student Networks)和教师网络(Teacher Networks)。

网络结构:

  1. 编码器(Encoder f(. . . ))和投影头(Projection head g(. . . ))
    • 每个网络由两个部分组成:编码器 f 和投影头 g。
    • 编码器 f:负责从遥感图像中提取特征表示。作者采用了广泛使用的 ResNet50VGG16 作为编码器来提取特征表示。具体来说,学生网络的编码器提取的表示为h_s=f_s(I),而教师网络的编码器提取的表示为 h_t =f_t(I)
  2. 投影头 g
    • 投影头的作用是将编码器提取的特征表示投影到与知识表示 A 相同的空间。这里,作者使用了一个单层的全连接层(fully connected layer)作为投影头,将学生网络和教师网络的特征表示进一步映射。
    • 具体来说,学生网络的投影表示为 S=g_s(h_s),教师网络的投影表示为 T=g_t(h_t)

学生网络的职责:

  • 预测和计算损失函数:学生网络的主要任务是根据输入的遥感图像进行预测,并利用监督信息(如地理知识)计算损失函数。损失函数反映了网络预测结果与监督信息(如土地覆盖比例)的偏差。
  • 参数更新:学生网络通过梯度下降(Gradient Descent)方法来更新其参数,即通过最小化损失函数来优化网络。梯度下降法利用损失函数的导数来调整模型的权重,使预测结果逐渐与真实值更加接近。

教师网络的职责:

  • 约束学生网络:教师网络并不直接参与损失函数的计算,而是为学生网络提供一定的约束,帮助学生网络学习得更加稳定。教师网络的参数更新较慢且更加平滑,能够避免模型过拟合或陷入局部最优。
  • 参数更新机制:教师网络的权重是通过学生网络的权重来更新的,但更新的方式不是直接梯度下降,而是通过 指数滑动平均(EMA, Exponential Moving Average) 方法。

KL损失函数:

Implementation Details

第6点是个小trick

标签:表示,Knowledge,训练,--,图像,网络,遥感,Learning,地理知识
From: https://blog.csdn.net/weixin_68930974/article/details/142684897

相关文章

  • Linux 网络管理-ifconfig命令
    Linux网络管理-ifconfig命令查看网络接口:ifconfig或ifconfig<接口名称>或ifconfig-a网络接口开启与关闭:ifconfigeth0up或ifconfigeth0down设置IPv4地址、子网掩码、广播地址:ifconfigeth0192.168.1.56netmask255.255.255.0broadcast192.168.1.255设置IP......
  • c++基本介绍——std::holds_alternative()的基本介绍
    今天的工作中开发一个新功能,涉及到判断std::variant类型是否等于某个特定的值。就此机会学习一下,std::variant类型和调用std::holds_alternative进行持有值的检查。std::holds_alternative是C++17中引入的标准库函数,用于检查std::variant是否持有特定类型的值。它返回......
  • 实验2 C语言分支与与循环基础应用编程——1
    一、实验目的1.能正确使用if语句实现分支结构2.能正确使用while语句、do...while语句实现循环结构3.能在具体问题场景中正确区分、使用continue和break4.能灵活、组合使用c语句编程解决简单应用问题 二、实验准备1.分支语句if和循环语句while、do...while的用法......
  • python+flask计算机毕业设计银行资金账户管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和金融业务的日益复杂化,银行资金账户管理系统成为现代银行业不可或缺的一部分。传......
  • python+flask计算机毕业设计影评网站系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的快速发展和普及,影视娱乐产业迎来了前所未有的发展机遇。观众对于电影的选择和评价日益多元化,传统的电影宣传和评价方式已难以......
  • python+flask计算机毕业设计智慧外贸平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球化和信息技术的飞速发展,外贸行业正经历着前所未有的变革。传统的外贸模式在效率、信息透明度以及服务体验上已难以满足当前市场的......
  • 实验1 现代C++编程初体验
    task1:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>9#includ......
  • python+flask计算机毕业设计自驾游信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会经济的快速发展和人民生活水平的不断提高,自驾游已成为现代人休闲度假的重要选择。自驾游以其自由度高、灵活性强的特点,吸引了越来......
  • DS
    第10题参考洛谷P1025数的划分#include<iostream>#include<vector>usingnamespacestd;constintN=300010;inta[N];intans=100000;vector<int>v;//x是此次分的,k是剩几次,n是剩下的voiddfs(intx,intk,intn){ if(k==1) { v.push_back(n);//把剩下的加......
  • python+flask计算机毕业设计影视资源管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和人们文化娱乐需求的日益增长,影视资源已成为现代人生活中不可或缺的一部分。无论是电影、电视剧还是纪录片,都以其......