遥感图像之多模态检索AMFMN(支持关键词、句子对图像的检索)论文阅读、环境搭建、模型测试、模型训练

一、论文阅读

1、摘要背景

遥感跨模态文本图像检索以其灵活的输入和高效的查询等优点受到了广泛的关注。然而,传统的方法忽略了遥感图像多尺度和目标冗余的特点,导致检索精度下降。为了解决遥感多模态检索任务中的多尺度稀缺性和目标冗余问题,提出了一种新的非对称多模态特征匹配网络(AMFMN)该模型可适应多尺度特征输入,支持多源检索方法,并能动态过滤冗余特征
AMFMN采用多尺度视觉自注意(MVSA)模块提取RS图像的显著特征,并利用视觉特征指导文本表示。此外,为了缓解RS图像中由于类内相似性强而导致的正样本模糊,我们提出了一种基于样本对先验相似性的动态可变裕度三元组损失函数最后,与传统的文本粗糙、类内相似度较高的遥感图像文本数据集不同,我们构建了一个粒度更细、更具挑战性的遥感图像文本匹配数据集(RSITMD)该数据集支持通过关键词和句子单独或联合进行遥感图像检索。

2、难点

一般来说,RS图像检索方法可分为单模态检索和多模态检索两种。在RS单模态检索中,查询数据和RS数据属于同一模态。与RS单模态检索相比,RS多模态检索需要将不同的模态数据映射到统一的可测量空间中,因此更具挑战性。近年来,遥感多模态检索已成为研究热点之一。

跨模态遥感文本图像检索在遥感多模态检索中占有重要地位。在过去的几十年里,通常使用手动字幕为每张RS图像提供标签,然后将查询文本与标记的字幕进行匹配。随着遥感图像的快速增长,人工字幕越来越耗时,自动字幕越来越受到研究者的关注。例如,Shi和Zou[12]利用全卷积网络构建了一个RS图像标题框架。生成字幕的检索方法虽然解决了人力资源标注的问题,但仍然存在一定的检索缺陷。一方面,两阶段检索模式难以避免中间阶段大量信息的丢失另一方面,机器生成的粗字幕可能不能很好地表示RS图像
由于生成的句子相对粗糙,在标题生成阶段和文本相似度匹配阶段不可避免的信息丢失降低了检索精度。因此,传统的RS文本图像检索方法可能不是跨模态RS图像检索任务的最佳选择。

近年来,一些基于深度学习的检索方法被提出,它们直接计算图像和文本之间的相似度。然而,当这些方法完全应用于跨模态RS文本图像检索时,仍然存在三个挑战。

首先,具有众多目标的RS图像往往包含大量与描述主体无关的背景内容。然而,与RS图像相比,自然场景图像往往有突出的物体。自然场景的文本图像检索方法忽略了冗余特征的过滤,阻碍了模型对遥感图像内容的理解。因此,如何在遥感图像中获取显著特征已成为一个迫切需要解决的问题。同时,自然场景下的方法没有充分考虑RS的多尺度信息,导致对多尺度特征的利用不足,检索精度不理想。由于RS图像的多尺度和目标冗余性,我们尝试使用具有多尺度和动态滤波功能的网络来提取显著特征为了获得更好的文本特征,我们首先使用过滤后的图像特征来动态引导文本表示,然后将该方法应用于不同的检索任务中,以获得更灵活的输入。

第二,与自然场景不同,RS场景具有很强的类内相似性。一个文本可能对应多个与基础真值非常相似的负样本图像。我们称这种负样本为软正样本。由于软正样本的存在,模型在训练过程中会对优化目标产生模糊。我们把这个问题定义为正样本歧义。为了解决上述问题,我们将传统方法中的硬边界转化为基于样本对之间先验相似性的软边界,可以自适应地改变传统三元损失函数中的固定边界,进一步提高检索性能
第三,传统RS场景数据集中的文本通常与自然场景进行粗压缩,这使得传统数据集类内相似度高,不适合文本图像检索任务。为了解决这个问题,我们构建了一个细粒度和更具挑战性的数据集来最小化类内相似性。同时,我们在数据集中加入了关键词属性,增强了对多个检索任务的泛化能力。

3、创新点

1)为了解决遥感多模态检索任务中的多尺度稀缺性和目标冗余问题,设计了一种非对称多模态特征匹配网络(AMFMN)。该方法适应多尺度特征输入,支持多源检索方法,并能动态过滤冗余特征。AMFMN利用多尺度视觉自注意(MVSA)模块提取RS图像的显著特征,并利用视觉特征指导文本表示,在多个RS图像-文本数据集上取得了比较好的结果。

2)针对RS图像中由于类内相似性较强而导致的正样本模糊,基于样本对的先验相似性,设计了具有动态变量裕度的三元组损失函数。实验结果验证了我们工作的可行性。

3)与文本粗糙、类内相似度较高的传统遥感图像文本数据集相比,构建了一个粒度更细、更具挑战性的遥感图像文本匹配数据集(RSITMD)。RSITMD有更多的场景变化和更高细粒度的字幕。此外,新的关键词属性可以进一步应用于RS文本检索任务中

4、前人的一些研究

近年来,人们提出了一些直接计算自然场景跨模态相似度的方法。Faghri在对图像和文本进行编码后,使用三元组损失函数最小化相似图像和文本之间的距离。Lee等尝试将图像中的区域与标题中的单词对齐来计算相似度。Wang等[36]提出了一种基于秩分解的融合模型来计算图像和文本之间的相似度。即使直接计算图像和文本之间相似度的方法在自然领域已经成熟,但在RS场景中这种方法还是很少见的。Abdullah等[37]提出了一种用于RS文本图像嵌入相似度计算的深度双向三重网络。据我们所知,这是RS领域唯一的跨模态文本图像检索方法。

1、code

2、Exploring a Fine-Grained Multiscale Method for Cross-Modal Remote Sensing Image Retrieval、

在这里插入图片描述

三、文件结构

File Structure:
-- checkpoint    # savepath of ckpt and logs
-- data          # soorted anns of four datesets
    -- rsicd_precomp
        -- train_caps.txt     # train anns
        -- train_filename.txt # corresponding imgs
        -- test_caps.txt      # test anns
        -- test_filename.txt  # corresponding imgs
        -- images             # rsicd images here
    -- rsitmd_precomp
        ...
-- exec         # .sh file
-- layers        # models define
-- logs          # tensorboard save file
-- option        # different config for different datasets and models
-- Rct           # calc Lct, which is not published this time
-- util          # some script for data processing
-- vocab         # vocabs for different datasets
-- seq2vec       # some files about seq2vec
    -- bi_skip.npz
    -- bi_skip.npz.pkl
    -- btable.npy
    -- dictionary.txt
    -- uni_skip.npz
    -- uni_skip.npz.pkl
    -- utable.npy

-- data.py       # load data
-- engine.py     # details about train and val
-- test.py       # test k-fold answers
-- test_single.py    # test one model
-- train.py      # main file
-- utils.py      # some tools
-- vocab.py      # generate vocab

Note:
1. In order to facilitate reproduction, we have provided processed annotations.
2. We prepare some used file::
  (1)[seq2vec (Password:NIST)][https://pan.baidu.com/s/1FOPldSGO6ctETiXMlPGC8g]
  (2)[RSICD images (Password:NIST)](https://pan.baidu.com/s/1lH5m047P9m2IvoZMPsoDsQ)
3. We found that the split method of the UCM and Sydney datasets has a greater impact on performance due to their small size, so we no longer provide performance support for the above two datasets.

二、环境搭建与测试

在这里插入图片描述

Installation

We recommended the following dependencies:
Python 3
PyTorch > 0.3
Numpy
h5py
nltk
yaml
 
pip install tensorboard_logger -i https://pypi.tuna.tsinghua.edu.cn/simple
# CUDA 10.2
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2 -c pytorch

# CUDA 10.2
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2 -c pytorch

pip install torch==1.11.0+cu102 torchvision==0.12.0+cu102 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu102 -f https://download.pytorch.org/whl/torch_stable.html -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

Step1:Put the images of different datasets in ./data/{dataset}_precomp/images/

--data
        --rsitmd_precomp
        -- train_caps.txt     # train anns
        -- train_filename.txt # corresponding imgs
        -- test_caps.txt      # test anns
        -- test_filename.txt  # corresponding imgs
        -- images             # images here
            --img1.jpg
            --img2.jpg
            ...

在这里插入图片描述

Step2:Modify the corresponding yaml in ./option。

Regard RSITMD_AMFMN.yaml as opt, which you need to change is:
opt[‘dataset’][‘data_path’] # change to precomp path
opt[‘dataset’][‘image_path’] # change to image path
opt[‘model’][‘seq2vec’][‘dir_st’] # some files about seq2vec

修改完毕的配置文件
在这里插入图片描述

Step3:Bash the ./sh in ./exec.

Note the GPU define in specific .sh file.
  cd exec
    bash run_amfmn_rsitmd.sh

Note: We use k-fold verity to do a fair compare. Other details please see the code itself.

train
CUDA_VISIBLE_DEVICES=0 python train.py --path_opt option/RSITMD_AMFMN.yaml
test
CUDA_VISIBLE_DEVICES=0 python test.py --path_opt option/RSITMD_AMFMN.yaml

在这里插入图片描述

问题

pip install protobuf==3.19.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
问题2、

在这里插入图片描述
pyyaml版本过高,安装低版本pyyaml

pip install pyyaml==5.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
问题3、

在这里插入图片描述
解决:

pip install skipthoughts  -i https://pypi.tuna.tsinghua.edu.cn/simple
问题4、 return inverse_modes_mapping[i] KeyError: 90

在这里插入图片描述
解决:

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236258.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习硬件十年:性能变迁与趋势

本文分析了机器学习硬件性能的最新趋势,重点关注不同GPU和加速器的计算性能、内存、互连带宽、性价比和能效等指标。这篇分析旨在提供关于ML硬件能力及其瓶颈的全面视图。本文作者来自调研机构Epoch,致力于研究AI发展轨迹与治理的关键问题和趋势。 &…

RocketMQ源码

RocketMQ的核心三流程 启动流程 RocketMQ服务端由两部分组成NameServer和Broker,NameServer是服务的注册中心,Broker会把自己的地址注册到NameServer,生产者和消费者启动的时候会先从NameServer获取Broker的地址,再去从Broker发…

山东烟台一汽配城发生火灾 探索富维AI神器如何及时报警

近日,山东烟台一汽配城发生火灾,引起了广泛关注。火灾虽然被及时控制,但这一事件再次提醒我们,火灾预防的重要性不容忽视。在这一背景下,北京富维图像公司的FIS智能图像识别系统为我们提供了新的防范措施。 这一系统利…

使用人工智能优化常见业务流程

在现代商业环境中,人工智能(AI)正在改变企业的运营方式。将人工智能集成到业务流程中可以提高效率和准确性,从而节省大量时间和成本。 这使员工能够专注于更具战略性的任务。人工智能在商业中的应用范围从自动化日常任务到提供高级分析,以做…

Vue H5项目,怎么引入uni.webview sdk,调用uni postMessage实现手机蓝牙连接打印功能(uniapp)

前言 目前公司Vue H5项目,用webview打包成APP,现产品提出这样打包出来的app运行较慢,需要用uniapp方式(即使用HBuilder编辑器来打包H5)来打包,那需要的基座就不是安卓的基座而是uniapp的基座,而…

Appium 自动化测试从入门到精通,零基础也能听懂

1.Appium介绍 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefoxos&#xff09…

记一次mybatis-plus的argument type mismatch报错

起初以为是boolean和数据库的tinyint不匹配导致&#xff0c;找了一天之后想起来把整个lambda注释掉发现list直接无法运行&#xff0c;说明问题不在boolean List<BmsBillboard> list bmsBillboardService.list(new LambdaQueryWrapper<BmsBillboard>().eq(BmsBillb…

盘点六款颇具潜力的伪原创AI工具

写作作为信息传递的主要媒介&#xff0c;在庞大的信息海洋中&#xff0c;为了在激烈的竞争中脱颖而出&#xff0c;伪原创AI工具成为越来越多写手的神秘利器。在本文中&#xff0c;我们将深入盘点六款颇具潜力的伪原创AI工具&#xff0c;为你揭开它们神秘的面纱。 1. 文心一言 …

【android开发-17】android中SQLite数据库CRUD详细介绍

1&#xff0c;SQLite数据库读写的操作步骤 在Android中&#xff0c;对SQLite数据库的操作主要包括以下步骤&#xff1a; 1&#xff0c;创建数据库&#xff1a;首先&#xff0c;您需要创建一个SQLite数据库。这可以通过在Android项目中创建一个新的类来实现&#xff0c;该类继…

操作系统内部机制学习

切换线程时需要保存什么 函数需要保存吗&#xff1f;函数在Flash上&#xff0c;不会被破坏&#xff0c;无需保存。函数执行到了哪里&#xff1f;需要保存吗&#xff1f;需要保存。全局变量需要保存吗&#xff1f;全局变量在内存上&#xff0c;无需保存。局部变量需要保存吗&am…

OpenWRT搭建本地web站点并结合内网穿透实现公网远程访问

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器&#xff0c;目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器&#xff0c;并且和…

ubuntu22.04安装 nvidia-cudnn

nvidia-cudnn 是 NVIDIA CUDA 深度神经网络库&#xff08;CUDA Deep Neural Network library&#xff09;的缩写。这是一个由 NVIDIA 提供的库&#xff0c;用于加速深度学习应用程序。它包含了针对深度神经网络中常用操作&#xff08;如卷积、池化、归一化、激活层等&#xff0…

如何使用cpolar+Inis在Ubuntu系统快速搭建本地博客网站公网可访问

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

go 编译apk

首先进行安装go 安装 wget https://studygolang.com/dl/golang/go1.21.5.linux-amd64.tar.gz tar zxvf go1.21.5.linux-amd64.tar.gz mv go /usr/local/ vim /etc/profile # 进行配置环境变量&#xff1a; export GOROOT/usr/local/go export PATH$PATH:$GOROOT/bin # 保存退…

推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】

HNSW算法概述 HNSW&#xff08;Hierarchical Navigable Small Word&#xff09;算法算是目前推荐领域里面常用的ANN&#xff08;Approximate Nearest Neighbor&#xff09;算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k个元素。 要找到一个query的…

风控之Android设备指纹技术

标识性参数——Android ID、IMEI、OAID非标识性参数 非标识性参数——手机运营商 1 设备指纹 简单来讲&#xff0c;设备指纹是指用于标识出该设备的设备特征。可以是单一设备特征&#xff0c;也可以是多种设备特征的组合&#xff0c;以方便风控系统对设备的唯一性进行识别。…

BSN实名DID服务发布会将于12月12日在北京召开

当前&#xff0c;数字身份已经成为实现经济健康发展与社会和谐安全稳定的重要基础&#xff0c;同时也是激发数据要素价值&#xff0c;支持数字经济快速发展的重要手段&#xff0c;在数字中国建设中发挥着至关重要的作用。 2016年&#xff0c;经国家发展改革委批准&#xff0c;…

2023.12.9 关于 Spring Boot 事务传播机制详解

目录 事务传播机制 七大事务传播机制 支持当前调用链上的事务 Propagation.REQUIRED Propagation.SUPPORTS Propagation.MANDATORY 不支持当前调用链上的事务 Propagation.REQUIRES_NEW Propagation.NOT_SUPPORTED Propagation.NEVER 嵌套事务 Propagation.NESTED…

币圈新贵Blast,一条可以帮助用户赚钱的Layer2!

Blast在短短两天内实现了超过2亿美元的TVL飙升&#xff0c;这一迅猛增长让整个低迷已久的Layer2市场感到震惊。尽管Blast主网要到二月份才正式上线&#xff0c;但这并未能阻挡用户们热情地锁仓。截至目前&#xff0c;Blast已经吸引了超过75,000名用户&#xff0c;总锁定价值已经…

直流电和交流电

直流电&#xff08;Direct Current&#xff0c;简称DC&#xff09;和交流电&#xff08;Alternating Current&#xff0c;简称AC&#xff09;是电流的两种基本形式。 1. 直流电 直流电是指电流方向始终保持不变的电流。在直流电中&#xff0c;电子只能沿着一个方向移动。直流电…