《论文阅读27》SuperGlue: Learning Feature Matching with Graph Neural Networks
一、论文
- 研究领域: 图像特征点匹配
- 论文:SuperGlue: Learning Feature Matching with Graph Neural Networks
- CVPR 2020
- veido
- 论文code
二、论文简述
[参考] [参考] [参考]
三、论文详述
SuperGlue:使用图神经网络学习特征匹配
本文介绍了SuperGlue,一种神经网络,通过共同寻找对应点和拒绝不匹配点来匹配两组本地特征。分配估计通过解决一个可微的最优运输问题,其成本预测的图形神经网络。我们引入了一个灵活的上下文聚合机制的基础上的注意力,使SuperGlue的原因有关的基础3D场景和功能分配联合。与传统的手工设计的启发式算法相比,我们的技术通过从图像对进行端到端的训练来学习3D世界的几何变换和规则。SuperGlue优于其他学习方法,并在具有挑战性的真实世界室内和室外环境中的姿态估计任务上取得了最先进的结果。所提出的方法在现代GPU上实时执行匹配,并且可以容易地集成到现代SfM或SLAM系统中
- Introduction
图像中的点之间的对应关系对于在几何计算机视觉任务(诸如同时定位和映射(SLAM)和运动恢复结构(SfM))中估计3D结构和相机姿态是必不可少的。这种对应性通常通过匹配局部特征来估计,这是一种被称为数据关联的过程。大的视点和光照变化、遮挡、模糊和缺乏纹理是使2D到2D数据关联特别具有挑战性的因素。
在本文中,我们提出了一种新的思维方式的特征匹配问题。本文提出了一种基于SuperGlue神经网络的局部特征匹配算法,该算法不需要学习任务不可知的局部特征,然后通过简单的匹配启发式算法和技巧来完成匹配过程。在SLAM环境中,通常[8]将问题分解为视觉特征提取前端和束调整或姿势估计后端,我们的网络直接位于中间- SuperGlue是一个可学习的中间端(见图1)。
与SuperGlue的特征匹配。我们的方法从现成的局部特征建立逐点对应:它充当手工或学习的前端和后端之间的中间端。SuperGlue使用图形神经网络和注意力来解决分配优化问题,并优雅地处理部分点的可见性和遮挡,从而产生部分分配。
在本文中,学习特征匹配被视为寻找两组局部特征之间的部分分配。通过求解线性分配问题,我们重新审视了经典的基于图的匹配策略,当将线性分配问题放松为最优运输问题时,可以微分地求解线性分配问题。该优化的成本函数由图神经网络(GNN)预测。受Transformer [61]成功的启发,它使用自我(图像内)和交叉(图像间)注意力来利用关键点的空间关系及其视觉外观。该公式强制执行预测的分配结构,同时使成本能够学习复杂的先验知识,优雅地处理遮挡和不可重复的关键点。我们的方法是从图像对中进行端到端的训练--我们从一个大型的带注释数据集中学习姿势估计的先验知识,使SuperGlue能够推理3D场景和分配。我们的工作可应用于各种需要高质量特征对应的多视图几何问题(见图2)。
图2:SuperGlue对应关系。对于这两个具有挑战性的室内图像对,使用SuperGlue进行匹配可以获得准确的姿势,而其他学习或手工制作的方法则会失败(对应关系被极线误差着色)。
我们展示了SuperGlue与手工制作的匹配器和学习的内点分类器相比的优越性。当与SuperPoint [18](一种深度前端)相结合时,SuperGlue推进了室内和室外姿势估计任务的最新技术,并为端到端深度SLAM铺平了道路。
- Related work
局部特征匹配通常通过以下步骤来执行:
i)检测兴趣点,
i)计算视觉描述符,
iii)将这些与最近邻(NN)搜索进行匹配,
iv)过滤不正确的匹配,
最后v)估计几何变换。
21世纪初开发的经典管道通常基于SIFT [31],过滤器匹配Lowe比率测试[31],相互检查和启发式方法,如邻域共识[59,10,6,49],并使用RANSAC [21,43]等鲁棒求解器找到变换。
最近的深度学习匹配工作通常集中在使用卷积神经网络(CNN)从数据中学习更好的稀疏检测器和局部描述符[18,19,37,45,69]。为了提高它们的区分度,一些作品使用区域特征[32]或对数极坐标补丁[20]明确地查看更广泛的背景。其他方法通过将其分类为内点和离群点来学习过滤匹配[33,44,7,71]。这些操作仍然通过NN搜索估计的匹配集,因此忽略分配结构并丢弃视觉信息。到目前为止,学习执行匹配的作品集中在密集匹配[46]或3D点云[65]上,并且仍然表现出相同的限制。相比之下,我们的可学习的中间端同时执行上下文聚合,匹配和过滤在一个单一的端到端架构。
图匹配问题通常被公式化为二次分配问题,其是NP难的,需要昂贵、复杂并且因此不切实际的求解器[30]。对于局部特征,2000年代的计算机视觉文献[5,27,57]使用了许多启发式的手工成本,使其变得复杂和脆弱。Caetano等人[9]学习更简单的线性分配的优化成本,但只使用浅层模型,而我们的SuperGlue使用深度神经网络学习灵活的成本。与图匹配相关的是最优运输问题[63] -它是一个广义线性分配,具有有效而简单的近似解,即Sinkhorn算法[55,12,39]。
点云等集合的深度学习旨在通过聚合元素之间的信息来设计置换等不变函数。一些作品通过全局池化[70,40,15]或实例归一化[60,33,32]平等地对待所有元素,而其他作品则专注于坐标或特征空间中的局部邻域[41,66]。Attention [61,64,62,26]可以通过关注特定的元素和属性来执行全局和数据相关的局部聚合,因此更加灵活。通过观察到自我注意力可以被视为完整图上的消息传递图神经网络[23,4]的实例,我们将注意力应用于具有多种类型边缘的图,类似于[28,72],并使SuperGlue能够学习关于两组局部特征的复杂推理。
- The SuperGlue Architecture
动机:在图像匹配问题中,可以利用世界的一些规律:3D世界在很大程度上是平滑的,有时是平面的,如果场景是静态的,则给定图像对的所有对应关系都从单个对极变换导出,并且一些姿势比其他姿势更可能。此外,2D关键点通常是突出的3D点的投影,如角点或斑点,因此图像之间的对应关系必须遵守某些物理约束:
i)关键点可以在另一图像中具有至多单个对应关系
ii)由于检测器的遮挡和故障,一些关键点将不匹配。用于特征匹配的有效模型应旨在找到相同3D点的重投影之间的所有对应关系,并识别没有匹配的关键点。
我们将SuperGlue(见图3)表述为解决一个优化问题,其成本由深度神经网络预测。这减轻了对领域专业知识和启发式的需求-我们直接从数据中学习相关的先验知识。
在线性规划问题中,可能会有以下形式的约束条件:
1. Ax ≤ b(不等式约束)
2. Ax = b(相等约束)其中
- A 是代表约束条件的系数矩阵。
- x 是决策变量向量。
- b 是右侧的常量向量。
假设有一个相等约束 引入松弛变量 s 将其转换为不等式约束: Ax + s = b,其中 s 为非负。松弛变量 s 的作用是衡量在满足相等约束条件时有多少 "松弛 "或剩余。
如果 s 为零,表示完全满足相等约束条件。
如果 s 为正数,则表示平等约束条件没有得到充分利用,还存在一定的松弛。
如果 s 为负数,则表示违反了相等约束条件。
加入松弛变量后,线性规划求解器就能处理不等式,并找到尽可能满足相等约束条件的解决方案,即使这些约束条件因其他约束条件而无法完全满足。
总之,引入松弛变量是为了将相等约束条件转化为不等式约束条件,同时确保非负性,这样就可以使用不等式约束问题的标准技术来求解线性规划问题。
相关文章:

《论文阅读27》SuperGlue: Learning Feature Matching with Graph Neural Networks
一、论文 研究领域: 图像特征点匹配论文:SuperGlue: Learning Feature Matching with Graph Neural NetworksCVPR 2020veido论文code 二、论文简述 [参考] [参考] [参考] 三、论文详述 SuperGlue:使用图神经网络学习特征匹配 本文介绍了…...

远程计算机或设备不接受连接解决方法
远程计算机或设备不接受连接解决方法 点击左下角开始,点击运行,输入inetcpl.cpl,点击确定,打开Internet选项。 将三个框的勾勾去掉,即为不选中状态,点击确定。 当你的电脑浏览器不能正常上网时ÿ…...

基于Python实现的快递管理系统源码+数据库,采用PyQt6实现GUI界面
快递管理系统 完整代码下载地址:快递管理系统 介绍 通过对传统的快递收发流程进行分析,完成网上快递管理系统的分析设计与开发,使客户能方便在网站上查询自己的快件信息以及网上寄件,同时管理员又能对每天的收到快件进行登记和…...

如何使用docker快速部署MinDoc文档系统
MinDoc是非常优秀的知识分享系统,但是很多刚接触的人会一脸懵逼,而且官方文档写的也并不清晰,所以和大家分享一下快速部署MinDoc的方法。 首先docker环境先自行安装好,这里不再赘述。 拉取docker镜像: docker pull …...

9月25日,每日信息差
今天是2023年9月27日,以下是为您准备的18条信息差 第一、苹果向法国监管机构提交iPhone 12软件更新,解决辐射超标问题 第二、“双节”期间,北京全市预计接待游客1283万人次,中秋国庆“双节”长假将至,北京市民和游客…...

【网络协议】Https
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的,这就可能导致在传输过程中出现⼀些被篡改的情况。所以在HTTP协议的基础上,引入加密层,形成了HTTPS协议。 HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要…...

Lostash同步Mysql数据到Elasticsearch(三)Elasticsearch模板与索引设置
logstash数据同步ES相关 同步数据时,Elasticsearch配合脚本的相关处理设置 1.模板创建更新 在kibana中执行,或者直接给ES发送请求,你懂得,不懂得百度下ES创建template PUT /_template/test-xxx {"template": "…...

python——ptp()函数
函数功能:求最大值和最小值的差值 def ptp(a, axisNone, outNone):"""沿轴的值范围(最大值-最小值)。该函数的名称来自“peak-to-peak”的首字母缩写。参数----------a:array_like输入值。axis:int,可选找到山峰的…...

SpringBoot之异常处理
文章目录 前言一、默认规则二、定制异常处理处理自定义错误页面ControllerAdviceExceptionHandler处理全局异常ResponseStatus自定义异常自定义实现 HandlerExceptionResolver 处理异常 三、异常处理自动配置原理四、异常处理流程总结 前言 包含SpringBoot默认处理规则、如何定…...

Flask-[实现websocket]-(2): flask-socketio文档学习
一、简单项目的构建 flask_websocket |---static |---js |---jquery-3.7.0.min.js |---socket.io_4.3.1.js |---templates |---home |---group_chat.html |---index.html |---app.py 1.1、python环境 python3.9.0 1.2、依赖包 Flask2.1.0 eventlet0.33.3 #使用这个性能会…...

网页中使用的图片格式
网页中使用的图片格式有以下几种,各有优缺点: JPEG:适用于照片或彩色图像,支持16.7万种颜色,有损压缩,可以调节压缩比和质量,文件较小,加载较快PNG:适用于图标或透明图像…...

【android】如何设置LD_LIBRARY_PATH?
目录 一 配置方法 1 进入Android shell 2 使用export命令 3 使用echo命令查看变量是否设置成功 二 扩展 1 LD_LIBRARY_PATH设置多个路径 2 push文件 一 配置方法 android中配置LD_LIBRARY_PATH的方法具体为: 1 进入Android shell adb shell 2 使用export…...

【hadoop3.x】一 搭建集群调优
一、基础环境安装 https://blog.csdn.net/fen_dou_shao_nian/article/details/120945221 二、hadoop运行环境搭建 2.1 模板虚拟机环境准备 0)安装模板虚拟机,IP 地址 192.168.10.100、主机名称 hadoop100、内存 4G、硬盘 50G 1)hadoop100…...

linux使用操作[2]
文章目录 版权声明网络传输ping命令wget命令curl命令端口linux端口端口命令和工具 进程管理查看进程关闭进程 主机状态top命令内容详解磁盘信息监控 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相…...

华南理工大学电子与信息学院23年预推免复试面试经验贴
运气较好,复试分数90.24,电科学硕分数线84、信通83、专硕电子与信息74. 面试流程: 1:5min ppt的介绍。其中前2min用英语简要介绍基本信息,后3min可用英语也可用中文 介绍具体项目信息如大创、科研、竞赛等(…...

Linux网络编程- ether_header iphdr tcphdr
struct ether_header struct ether_header 是一个数据结构,用于表示以太网(Ethernet)帧的头部。这个结构体在 <netinet/if_ether.h> 头文件中定义。当你处理或分析以太网帧时,可以使用这个结构体来访问和解读 Ethernet 头部…...

wpf中的StaticResource和DynamicResource
不同点一:StaticResource是程序载入时对资源的一次性使用,之后就不在访问了 DynamicResouce则是程序运行过程中回去访问资源 样例:在xaml中定义好的资源 <Window.Resources><SolidColorBrush x:Key"borderRed" Color"…...

数据结构与算法基础-(3)
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...

maven中relativepath标签的含义
一 relative标签的含义 1.1 作用 这个<parent>下面的<relativePath>属性:parent的pom文件的路径。 relativePath 的作用是为了找到父级工程的pom.xml;因为子工程需要继承父工程的pom.xml文件中的内容。然后relativePath 标签内的值使用相对路径定位…...

Greenplum 对比 Hadoop
Greenplum属于MPP架构,和Hadoop一样都是为了解决大规模数据的并行计算而出现的技术,两者的相似点在于: 分布式存储,数据分布在多个节点服务器上分布式并行计算框架支持横向扩展来提高整体的计算能力和存储容量都支持X86开放集群架…...

OJ练习第182题——字典树(前缀树)
字典树(前缀树) 208. 实现 Trie (前缀树)题目描述示例知识补充官解代码 211. 添加与搜索单词 - 数据结构设计题目描述示例思路Java代码 208. 实现 Trie (前缀树) 力扣链接:208. 实现 Trie (前缀树) 题目描述 示例 知识补充 插入字符串 我…...

前端知识总结
在前端开发中,y x是一种常见的自增运算符的使用方式。它表示将变量x的值自增1,并将自增后的值赋给变量y。 具体来说,x是一种后缀自增运算符,表示将变量x的值自增1。而y x则是将自增前的值赋给变量y。这意味着在执行y x之后&am…...

中国JP-10燃料行业市场研究与预测报告(2023版)
内容简介: 高密度燃料是指以石油基、煤基和生物质基烃类为原料,通过聚合、加氢、异构等工艺合成的密度大于0.85 gcm-3的饱和多环碳氢化合物,广泛应用于航空航天领域。由于高密度燃料密度大和体积热值高等特点,飞行器在油箱体积一…...

护眼灯显色指数应达多少?眼科医生推荐灯光显色指数多少合适
台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…...
AI 大模型
随着人工智能技术的迅猛发展,AI 大模型逐渐成为推动人工智能领域提升的关键因素,大模型已成为了引领技术浪潮研究和应用方向。大模型即大规模预训练模型,通常是指那些在大规模数据上进行了预训练的具有庞大规模和复杂结构的人工智能模型&…...

一个案例熟悉使用pytorch
文章目录 1. 完整模型的训练套路1.2 导入必要的包1.3 准备数据集1.3.1 使用公开数据集:1.3.2 获取训练集、测试集长度:1.3.3 利用 DataLoader来加载数据集 1.4 搭建神经网络1.4.1 测试搭建的模型1.4.2 创建用于训练的模型 1.5 定义损失函数和优化器1.6 使…...

MySQL - limit 分页查询 (查询操作 五)
功能介绍:分页查询(limit)是一种常用的数据库查询技术,它允许我们从数据库表中按照指定的数量和顺序获取数据,它在处理大量数据时特别有用,可以提高查询效率并减少网络传输的数据 语法:SELECT …...

代码随想录笔记--动态规划篇
1--动态规划理论基础 动态规划经典问题:① 背包问题;② 打家劫舍;③ 股票问题; ④ 子序列问题; 动态规划五部曲: ① 确定 dp 数组及其下标的含义; ② 确定递推公式; ③ 确定 dp 数组…...

vue之vuex
Vuex 是 Vue.js 的一个状态管理模式和库,为应用中的所有组件提供了一个集中式的存储管理,并提供了一种强大的方式来管理应用的状态。Vuex 包含以下核心概念: State:定义了应用的状态,类似于组件中的 data。 Getters&a…...

ISO 26262 系列学习笔记 ———— ASIL定义(Automotive Safety Integration Level)
文章目录 介绍严重度(Severity)暴露概率(Probability of Exposure)可控性(Controllability) 介绍 如果没有另行说明,则应满足ASIL A、B、C和D各分条款的要求或建议。这些要求和建议参考了安全目…...