深度学习 +SLAM:SuperGlue

news2024/11/16 2:46:07

简介

传统SLAM的流程通常包括如下内容, 特征点提取+描述,特征点匹配 + 异常点去除, 位姿估计。

 在以往前人的工作中,SuperPoint和 D2-Net试图解决特征点检测和描述的问题。而检测之后的匹配通常通过最近邻匹配和异常点剔除的方式完成。最后再完成位姿估计。

而SuperGlue试图将特征点的描述,特征的匹配(异常点的剔除)采用端到端的深度网络实现。这意味着距离实现全栈的DLslam又进了一步。

动机

很多场景,由于纹理特征不足,或者局部特征不具备代表性,特征匹配不能取得很好的效果。如下图棋盘格,采用最近邻和distance ratio后,效果依旧非常糟糕。这个例子想说明的是,即使具备了特征点和描述子,由于视角的变化和纹理特征的缺失。很多时候,我们依旧无法获取好的data association。

算法介绍

问题定义

我们要解决的问题“学习特征匹配”。也可以被解读为,寻找两个特征点集合的最优匹配关系。

该算法输入为:

  • 两张图片
  • 图片上的特征点和描述子(两张图片分别包含m,n个特征点和描述子)

输出为:

M*N的输出,表示两张图片上特征点匹配的概率。

网络框架

  • 采用注意力机制的图神经网络

 首先一个编码器用于处理特征点描述子和特征点位置。这里使用了流行的注意力机制。

  • 求解“局部求解问题” (partial assignment problem)

利用Sinkhorn Algorithm求解。

细节

 首先,采用MLP来结合特征点的描述子和位置信息。

 

然后,利用基于其他特征点的信息来进行更新。其中,在同一张图像上的称为“self edge”,在其他图像上的称为“cross edge”。

接着,采用Message Passing Neural Network来进行网络的更新。

Attentional Aggregation(不太懂)

 

 self-attention用于区分同一图片的不同特征点;cross attention用于区分不同图片的相同(位置)特征点。

特征匹配

最后一步为特征匹配,利用Sinkhorn算法,我们基于位姿信息的真值进行训练。

The cost function of this optimization is pre-dicted by a Graph Neural Network (GNN). Inspired by thesuccess of the Transformer.

总结:

SuperGlue的创新点可以总结为如下(from知乎)

  1. 构建了一个可学习的特征匹配器,比传统的匹配器效果更好(如常见的bf.knnMatch()匹配器);
  2. 利用SuperPoint计算得到关键点与描述符,再通过该匹配器得到最佳匹配的关键点;
  3. 涉及的主要技术有关键点编码、多头注意力机制(Multi-Head attention)、利用最优传输优化分配;
  4. 关键点点编码,将关键点点位置嵌入到具有多层感知器(MLP)的高维向量,再与对应的描述符进行融合;
  5. 多头注意力机制,其中self-attention用于提升局部描述符感受野,cross-attention用于提升两图特征信息交流(灵感来自于人类观察两物体不同点来回对比的过程);
  6. 最优传输优化分配,即将两组特征描述符进行矩阵运算得到得分矩阵S,对得分矩阵采用Sinkhorn算法,求得最优的分配矩阵P,然后根据分配矩阵得到最佳匹配的关键点;

参考资料

SuperGlue - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Arduino 中断 – 硬件、引脚变化和定时器

使用 Arduino 中断 – 硬件、引脚变化和定时器 查看原文 今天我们将学习中断,这是Arduino和其他微控制器的一个非常重要的基本功能。虽然我们将专注于Arduino Uno,但这里介绍的概念与其他板同样有效。 介绍 当我们设计一个项目时,我们通常…

Release notes for VPP 22.10

本次发布新增了212个提交,包括118个修复。关于本次发布的更多信息,请访问:https://gerrit.fd.io/r/gitweb?pvpp.git;ablob;fdocs/aboutvpp/releasenotes/v22.10.rst;h5dfbff5d48e957e83d7e3c2f978820c95c41a2e4;hb07e0c05e698cf5ffd1e2d2de0…

「图文教程」iOS 16测试版如何升级iOS 16正式版?

苹果iOS 16正式版已经更新到iOS 16.1.2了,如果你的iPhone之前为了尝鲜已经下载安装iOS 16测试版,该如何升级iOS 16正式版呢?一起来了解下吧! 方法一、移除iOS 16 Beta描述文件 1、进入【设置】-【通用】-【VPN与设备管理】&…

python+django汽车站售票票务管理系统

1.用户需要进行注册才可以登录本系统。 2.用户登录系统后可以在通知公告中获取最新的通知或者搜索需要的通知;可以在车票信息中查询到所需的车票信息并且可以通过站点、票价等选项进行筛选,选定车票后可以直接购票。用户还可以在订单管理中进行退票操作&…

引爆全球的ChatGPT,Java、面试、刷题、双色球它都会?

大家好,我是二哥呀。 这两天,ChatGPT 引爆全球,不管是搞技术的,还是没搞技术的,都在玩,玩的不亦乐乎,仿佛找到了内心真正的伴侣(😂)。 一开始我以为这玩意不…

图像数据的特征工程

一提到特征工程,我们立即想到是表格数据。但是我们也可以得到图像数据的特征,提取图像中最重要的方面。这样做可以更容易地找到数据和目标变量之间的映射。 这样可以使用更少的数据和训练更小的模型。更小的模型可以减少预测所需的时间。这在部署到边缘设…

【 第八章 SQL执行效率,慢日志查询,profile,explain,最左前缀法则,范围查询】

第八章 SQL执行效率,慢日志查询,profile,explain,最左前缀法则,范围查询 1.SQL执行效率: MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指…

微服务框架 SpringCloud微服务架构 26 数据聚合 26.1 聚合的分类

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构26 数据聚合26.1 聚合的分类26.1.1 聚合的分类26.1.2 总结26 数据聚合 26…

基础入门 - SpringBoot 自动配置

目录 3、自动配置原理入门 3.1、引导加载自动配置类 1、SpringBootConfiguration 2、ComponentScan 3、EnableAutoConfiguration 1、AutoConfigurationPackage 2、Import(AutoConfigurationImportSelector.class) 3.2、按需开启自动配置项 3.3、修改默认配置 1、自动配…

写作人的福音——obsidian非官方插件之senGener

背景 之前的是转发作者的项目文档,这次应作者要求,写了个试用报告。 刚用这个插件的时候,还磕磕碰碰,总有点小问题,按快捷键不反应,服务器崩溃什么的,并不指望真的用起来,权当个玩具…

【Mysql】当Naviact创建数据库时失败出现1044 -Access denied for user ‘root‘@‘%‘ to database

业务背景:当我用Navicat连接我服务器上的MySQL8,然后点击创建数据库时,创建失败,并报异常 1044 -Access denied for user root% to database解决方案:本问题是因为,账号无权限导致的,因此只需要…

C语言实现一个闪烁的圣诞树(控制台)

下下下周就是圣诞节啦,C语言的圣诞树必须安排起!!! 效果展示: 原理说明: 函数 layer 画出树的层次,根据坐标来输出位置; void layer(int x, int y, int num, int col) 函数 tri…

毕业设计-基于大数据的电影推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

(七) Docker安装常规软件

Docker安装常规软件一、安装tomcat1、docker hub上面查找tomcat镜像2、从docker hub上拉取tomcat镜像到本地3、docker images查看是否有拉取到的tomcat4、使用tomcat镜像创建容器实例5、访问Tomcat首页6、拉取这个版本不需要去修改Webapps目录(免修改版)…

在Python中自然语言处理生成词云WordCloud

了解如何在Python中使用WordCloud对自然语言处理执行探索性数据分析。 最近我们被客户要求撰写关于自然语言处理的研究报告,包括一些图形和统计输出。 什么是WordCloud? 很多时候,您可能会看到一片云,上面堆满了许多大小不同的单…

花了1块钱体验一把最近很火的ChatGPT

前言 最近 OpenAI 发布了 ChatGPT,一经发布就在科技圈火得不行。 ChatGPT是什么呢? 简单得说,ChatGPT,是一种基于对话的 AI 聊天工具。我们来看看ChatGPT自己得回答。 下面是在ChatGPT注册成功后,正常使用后的截图 …

代码随想录训练营day57, 回文子串, 回文子序列

回文子串 计算这个字符串中有多少个回文子串 动态规划 数组定义: 表示区间[i,j]的资产是否为回文子串, 如果是dp[i][j]则为true, 否为false递推: 整理来说就是两种, s[i]和s[j]相等或者不相等 相等有三种情况 下标i与j相同, 同一个字符例如a, b下标差一位, 那就是aa, bb下标…

Unity3D2020+导出Android工程中使用并交互

, 目录 1,版本信息 2,前期准备 Unity方面: Android方面: 3,Android与Unity3D交互 1,版本信息 unity2020 android studio 2021 *不要用android studio 2020系列,存在不能导入Library的b…

从Eureka到Polaris,好未来AI中台注册中心是如何实现0代码迁移的

导语:2021年,好未来的AI 中台业务规模激增,日调用量超6亿,总调用量上千亿。业务的快速发展给中台的现有技术架构带来一定的冲击。好未来AI中台是微服务架构,完成一个业务请求涉及多个服务之间相互调用,可以…

DVWA靶场下的xss漏洞练习及分析

目录 JavaScript操作cookie 反射型xss漏洞 存储型xss漏洞 JavaScript操作cookie 1.alert(document.cookie)&#xff1b; 2.document.cookie"coleak"; 3.document.cookie"modify"; 反射型xss漏洞 low级别 <script>alert(11)</script> med级别…