【代码复现】RingMo:应用于遥感领域的图像掩码建模技术

文章目录

  • RingMo论文阅读
    • 相关资料
    • Abstract
    • 摘要
    • 引言
      • 遥感图像与一般场景图像区别
      • 自监督方法
      • 遥感图像建模困难
      • 文章贡献
    • RingMo框架
      • 数据集
      • 基础模型训练方法
    • 实验
      • 遥感基础模型
  • RingMo代码复现
    • 实验环境
    • Clone 仓库
    • 数据
      • 预训练数据
      • 微调数据集
    • 预训练
      • 单卡预训练
    • 分类微调
      • 单卡微调
    • 分类评估
      • 单卡分类评估
    • 下游任务迁移(待开放)

RingMo论文阅读

相关资料

RingMo: A Remote Sensing Foundation Model with Masked Image Modeling论文

Abstract

Deep learning approaches have contributed to the rapid development of Remote Sensing (RS) image interpretation.The most widely used training paradigm is to utilize ImageNet pre-trained models to process RS data for specified tasks.However, there are issues such as domain gap between natural and RS scenes, and the poor generalization capacity of RS models. It makes sense to develop a foundation model with general RS feature representation. Since a large amount of unlabeled data is available, the self-supervised method has more development significance than the fully supervised method in remote sensing. However, most of the current self-supervised methods use contrastive learning, whose performance is sensitive to data augmentation, additional information, and selection of positive and negative pairs. In this paper, we leverage the benefits of generative self-supervised learning for RS images, and propose a Remote sensing foundation Model framework called RingMo, which consists of two parts. First, a large-scale dataset is constructed by collecting two million RS images from satellite and aerial platforms, covering multiple scenes and objects around the world. Second, we propose an RS foundation model training method designed for dense and small objects in complicated RS scenes. We show that the foundation model trained on our dataset with RingMo method achieves state-of-the-art on eight datasets across four downstream tasks, demonstrating the effectiveness of the proposed framework. Through in-depth exploration, we believe it is time for RS researchers to embrace generative self-supervised learning and leverage its general representation capabilities to speed up the development of RS applications.

摘要

深度学习方法促进了遥感图像解译的快速发展。最广泛使用的训练范例是利用ImageNet预训练模型来处理RS数据以完成指定的任务。然而,自然场景与遥感场景之间存在领域差距遥感模型泛化能力差等问题。开发具有通用RS特征表示的基础模型是有意义的。由于存在大量的未标记数据,自监督方法比全监督方法在遥感领域具有更大的发展意义。然而,目前大多数自监督方法采用对比学习,其性能对数据增强、附加信息和正负对的选择很敏感。在本文中,我们利用RS图像生成式自监督学习的优势,提出了一个名为RingMo的遥感大模型框架,该框架由两部分组成。首先,从卫星和航空平台收集200万张覆盖全球多个场景和目标的遥感图像,构建大规模数据集其次,提出了一种针对复杂遥感场景中密集小目标的遥感基础模型训练方法我们表明,使用RingMo方法在我们的数据集上训练的基础模型在跨四个下游任务的八个数据集上达到了最先进的水平,证明了所提出框架的有效性。通过深入探索,我们认为是时候让RS研究人员接受生成式自监督学习,并利用其通用表示能力来加速RS应用的开发。

引言

遥感图像与一般场景图像区别

【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第1张图片
加载ImageNet预训练的权值的一般RS图像解译范式存在的问题:

  1. 由于自然场景与RS场景的差异,ImageNet预训练的权值存在域偏差,这在一定程度上影响了RS模型的性能。
  2. 模型泛化能力较弱,有限的RS训练数据只能提供少量的场景和对象,难以适应其他任务。
  3. 为了扩展到更多的目标和任务,研究人员需要不断地注释数据,这降低了实际应用的效率。

自监督方法

【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第2张图片

自监督方法可以利用大量的未标记数据,是RS大模型建模的主流方法。自监督常用方法:

  1. 对比学习
    对比学习的核心思想是接近相似样本的特征距离。由于没有标签,研究者对同一张图像进行数据增强,形成正对,而其他图像作为该图像的负对。此外,一些研究者通过仔细搜索或匹配,引入了RS特有的附加信息(地理信息、时间序列数据、音频数据等),并鼓励模型在数据增强的同时,学习附加信息的相似性。对比学习方法取得了很好的效果,但是它们默认将不同的图像作为负对,并且RS数据集中的不同图像经常包含同一类的实例。
  2. 掩码图像建模(MIM)
    它的目的是重建被遮挡的像素点,并学习数据分布中的一般特征表示。一方面,它避免引入额外的信息,从而更容易利用大量数据。随着建模数据的增多,基础模型对不同场景的适应能力增强。另一方面,它的目标是从原始图像重建像素级信号。在不需要任何数据增广和负对的情况下,该模型也可以获得更好的特征表示。因此,生成式自监督方法更适合于RS基础模型的建立。

遥感图像建模困难

  1. 分辨率和方向范围大。受遥感传感器的影响,图像具有多种空间分辨率。
  2. RS图像中存在许多小目标,通常分布较密,在一定程度上影响了物级解译精度。
  3. RS图像中包含了大量的背景信息,导致图像的信噪比较低。物体的边界和背景模糊,干扰了物体的分类。

文章贡献

  1. 提出了遥感领域首个生成式自监督基础模型框架(RingMo)。该框架利用大量的遥感数据来获得一般的特征表示,提高了各种遥感判读任务的准确性。
  2. 为了增强基础模型对RS数据的处理能力,我们根据RS图像的特性设计了一种自监督方法,改善了以往掩码策略在复杂RS场景中可能忽略密集小目标的情况。
  3. 在没有人为监督的情况下,我们收集了200万张图像的RS数据集,这些图像来自卫星和航空平台,涵盖了六大洲不同的物体和场景。这样的数据集包含了大量不同的RS图像,提高了基础模型对不同场景的适应性。
  4. 在收集到的数据集上使用RingMo训练方法得到基础模型后,在四个典型的RS任务上对其进行微调。实验表明,我们的方法在8个下游数据集上实现了SOTA,并验证了RS基础模型在各种应用中的有效性和泛化性。

RingMo框架

数据集

  1. 统计信息
    数据集中的部分图像选自遥感领域的公开数据集,其他图像来自中国高分二号卫星。然后将不同平台捕获的图像裁剪为448 × 448像素,得到多种分辨率和场景的图像2,096,640幅。数据集的复杂特征可以使基础模型学习到更鲁棒的特征表示,更适合和特定于遥感领域的下游任务。我们的数据集图像数量最多,数据集的分辨率变化范围非常大,从0.3m到30m不等。【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第3张图片

  2. 捕获来源
    所利用的图像来自不同的传感器,具有不同的成像参数。与现有的其他遥感基础模型训练任务数据集相比,该数据集的图像同时来自航空和卫星平台:JL-1、GF-2、Ganfen satellites、GeoEye、WorldView、QuickBird、IKONOS、SPOT等。航空影像与卫星影像之间存在差异,使基础模型表现更好。卫星图像的拍摄角度往往是垂直的,而航空图像的拍摄角度则包含了倾斜的情况。航空图像的图像质量通常高于卫星图像,但卫星图像的覆盖范围比航空图像大。

  3. 场景分布
    利用的图像覆盖了亚洲、欧洲、北美、南美、非洲、大洋洲六大洲的不同场景。在不同的季节和时间拍摄的图像也包括在内。图像之间的光照情况也不同,如光照强度、拍摄时间造成的差异、阴影造成的阴影等。

基础模型训练方法

【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第4张图片

  1. PIMask策略
    大多数MIM方法常用的掩蔽策略是随机掩码,如图4所示。随机选取一定比例的图像斑块,然后进行完全掩码。这种方法在自然图像中很有用。然而,在遥感图像的应用中存在一些问题。特殊的成像机制使得背景更复杂,目标尺寸更小。随机掩码策略很容易忽略许多整体的小物体
    【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第5张图片
    因此,我们设计了一种新的掩码策略PIMask来解决这个问题。我们不是完全屏蔽图像小块,而是在被屏蔽的小块中随机保留一些像素。利用这种掩码策略,可以有效地保留小目标的部分像素信息。如图4中蓝色斑块所示,我们增加被遮挡斑块的数量以保持总掩码比不变。
  2. 模型架构
    编码器:Vision Transformer/Swin Transformer
    解码器:仅用于图像重建的预训练。在本文中,我们用线性层进行实验。
  3. 重建目标
    由于像素值在光学空间中是连续的,我们的方法通过回归预测被遮挡区域的原始像素来重建输入。
    【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第6张图片

实验

遥感基础模型

重建效果展示

RingMo代码复现

实验环境

  • mindspore1.8.0
  • cann5.1.2
  • py3.7
  • euler2.8.3
  • Ascend: 4*Ascend 910|CPU: 96核 384GB

Clone 仓库

官方GitHub代码

git clone https://gitee.com/mindspore/ringmo-framework.git

数据

预训练数据

  • 数据介绍
    由武汉大学于2017年发布AID数据集(提取自Google Earth)
    该数据集包含30种土地利用类型的遥感影像,图像尺寸为 600*600*3
    包含30个类别文件夹,每个文件夹下对应各自200~400幅遥感影像
  • 数据处理
    生成数据json文件
python ringmo_framework/datasets/tools/get_image_ids.py --image /home/ma-user/work/AID --file /home/ma-user/work/AID/train_ids.json

预训练数据集中共有10000张图片
【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第7张图片

微调数据集

  • 数据介绍
    武汉大学于2012年发布的WHU-RS19数据集(提取自Google Earth)
    该数据集包含19种土地利用类型的遥感影像,图像尺寸为600*600*3
    包含19个类别文件夹,每个文件夹下对应各自100幅遥感影像
  • 数据处理
    将数据集整理成如下格式:
    【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第8张图片

预训练

单卡预训练

修改预训练配置文件
【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第9张图片

cd ringmo-framework/
python pretrain.py --config config/ringmo/pretrain_ringmo_swin_base_p4_w6_aircas_192_200ep.yaml --use_parallel False

从输出日志可以看到相关参数信息

2023-05-10 11:37:24,102 - aicc - INFO - 网络参数量:86 M.
2023-05-10 11:37:25,305 - aicc - INFO - 模型参数量:258.0 M.

分类微调

单卡微调

修改微调配置文件
【代码复现】RingMo:应用于遥感领域的图像掩码建模技术_第10张图片
从输出日志查看微调精度

python finetune.py --config config/ringmo/finetune_ringmo_swin_base_p4_w7_nwpu_224_200ep.yaml --use_parallel False
[INFO] 2023-05-26 23:09:26,012 [/home/ma-user/work/ringmo-framework-master/ringmo_framework/monitors/monitor.py:111] epoch_end: epoch[0], epoch time: 445.94s, per step time: 17.8375s, loss=2.983506, fps=1.79, accuracy=0.021891, eval_cost=100.11
[INFO] 2023-05-27 00:45:30,035 [/home/ma-user/work/ringmo-framework-master/ringmo_framework/monitors/monitor.py:111] epoch_end: epoch[199], epoch time: 16.47s, per step time: 0.6587s, loss=2.444968, fps=48.58, accuracy=0.109453, eval_cost=12.70

共微调训练200轮,准确率从0.021891提升到0.109453,最终精度并不高
原预训练使用的数据为imagenet-1K,训练数据达到100万级别,我们进行预训练的数据只有1万,预训练数据太少。并且使用的微调数据为NWPU-RESISC45,共有31500张遥感图像,也远远大于我们微调的1000张图像,这可能是精度不高的原因。

分类评估

单卡分类评估

python eval.py --config config/ringmo/finetune_ringmo_swin_base_p4_w7_nwpu_224_200ep.yaml --eval_path output/rank_0/checkpoint/finetune-ringmo-swin-base-p4-w7-224_rank_0-16500_25.ckpt --use_parallel False

输出Top1精度

[INFO] 2023-05-31 10:33:14,717 [eval.py:70] main: Top1 accuracy=0.109453

下游任务迁移(待开放)

官方代码中并没给出相关下游任务的代码使用

你可能感兴趣的:(代码复现,论文阅读,人工智能,计算机视觉,深度学习)