深度学习论文: SuperPoint: Self-Supervised Interest Point Detection and Description

news2024/12/30 3:52:12

深度学习论文: SuperPoint: Self-Supervised Interest Point Detection and Description
SuperPoint: Self-Supervised Interest Point Detection and Description
PDF: https://arxiv.org/pdf/1712.07629
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

本文提出了一个自监督框架,用于训练适用于计算机视觉中多视图几何问题的兴趣点检测器和描述符。全卷积模型在完整图像上操作,联合计算兴趣点位置和描述符。通过引入单应性适应方法,提升兴趣点检测的重复性和跨域适应性。在MS-COCO数据集上训练后,提出的模型在HPatches上实现了最先进的单应性估计结果。
在这里插入图片描述
为了生成伪真实兴趣点,首先在“合成形状”数据集上训练了一个全卷积神经网络,得到了MagicPoint检测器。尽管它在真实图像上表现良好,但仍存在不足。为了改进在真实图像上的性能,采用单应性适应技术,通过多次扭曲输入图像来帮助检测器从多个视角和尺度观察场景。结合单应性适应和MagicPoint检测器,得到了性能更优越的SuperPoint检测器。最后,为了进行更高级别的任务,将SuperPoint与描述符子网络结合使用。
在这里插入图片描述

2 SuperPoint Architecture

SuperPoint,一个全卷积神经网络架构,能够在一次前向传播中处理全尺寸图像,并同时实现兴趣点检测与固定长度描述符的生成。该模型的核心是一个共享的编码器,用于降低输入图像的维度。之后,架构分为两个解码器头:兴趣点检测头和描述符头。
在这里插入图片描述
Shared Encoder: SuperPoint采用VGG风格的编码器,通过卷积层、最大池化层和非线性激活函数来降低图像维度。编码器的输出是一个中间张量,具有较小的空间维度( H c = H / 8 H_{c} = H / 8 Hc=H/8 and W c = W / 8 W_{c} = W / 8 Wc=W/8)和较大的通道深度(64 + 1)。
Interest Point Decoder: 兴趣点解码器输出一个张量,其中每个像素表示输入图像中对应位置的“点性”概率。为每个8×8像素网格区域加上一个“无兴趣点”选项,通过softmax操作,移除“无兴趣点”并最终得到一个全分辨率的兴趣点概率图。
Descriptor Decoder: 描述符头生成一个密集的描述符图,首先输出一个半密集的描述符网格,然后通过双三次插值和L2归一化,得到固定长度且单位长度的描述符。这种设计减少了训练内存需求并保持了运行时的可行性。

3 Synthetic Pre-Training

由于没有大规模带有兴趣点标签的图像数据库,因此创建了一个包含简化二维几何形状(如四边形、三角形、线条和椭圆)的合成数据集“合成形状”来启动深度兴趣点检测器。通过将这些形状建模为特定的交点和小元素中心,解决了标签歧义问题。随后,应用单应性变换增加训练样本,实时生成数据,避免网络重复看到相同样本。尽管这些合成兴趣点仅代表真实世界中的一部分,但在实践中用于训练兴趣点检测器时表现良好。
在这里插入图片描述
MagicPoint在合成形状上表现佳,但泛化到真实图像时效果一般,尤其在具有角状结构的场景中表现尚可。然而,与经典检测器相比,它在自然图像中的视角变化下表现较差。因此提出了在真实图像上进行自监督训练的“单应性适应”方法。

4 Homographic Adaptation

Homographic Adaptation的基本思想是在足够大的随机H样本上进行经验性求和(或平均)。即,系统首先为每个目标域图像生成一组伪真实兴趣点位置,通过对输入图像的扭曲副本应用随机单应性变换并综合结果。
在这里插入图片描述
并非所有3x3矩阵都适合单应性适应。本文将其分解为更简单的变换类,并在预定范围内采样。通过组合初始裁剪与平移、缩放、旋转和透视畸变变换,同时避免了边界伪影。
在这里插入图片描述
单应性适应技术可以迭代进行,以持续进行自我监督并改进兴趣点检测器。
在这里插入图片描述

5 Experiments

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

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

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

相关文章

RuntimeError: Tensor must have a last dimension with stride 1

我在使用torch.view_as_complex将weight转化为复数时,遇到了这样一个错误:由于我在对weight使用view_as_complex之前使用了F.interpolate函数进行了分辨率调整,因此只需对张量weight添加.contiguous()即可。

【商业】SD NAND(贴片式TF卡)性能体验及应用

SD NAND【商业】   外观   NAND与TF卡的区别   雷龙CS SD NAND(贴片式TF卡)性能体验及应用   最后 SD NAND 外观正反示意图 NAND与TF卡的区别 什么是SD NAND?它俗称贴片式T卡,贴片式TF卡,贴片式SD卡,贴片式内存卡&am…

2023年谷歌拒了228万应用,禁了33.3万账号,开发者们应如何应对2024的挑战?

谷歌在上周一公布了去年如何应对恶意应用和恶意行为。 报告指出,去年谷歌在Google Play平台上,通过不断升级安全系统、更新政策规定、运用先进的机器学习技术,以及严格把关应用审核流程,成功阻止了高达228万个不合规的应用程序上架…

家用洗地机应该怎么选?哪个牌子好?市场上主流洗地机品牌推荐

洗地机的出现,让越来越多的家庭享受清洁的过程,给人们腾出来更多的时间陪伴家人和休息。但是在选购一台洗地机前,大家多多少少肯定有些疑问,洗地机到底实不实用?好不好用?能扫干净吗?还有哪些好…

网盘应用:桌面端界面欣赏,这个赛道容不下小玩家。

网盘(Cloud Storage)是一种云存储服务,允许用户在互联网上存储、管理和共享文件。它提供了一个在线的虚拟硬盘,用户可以通过网络将文件上传到云端,并随时随地访问和管理这些文件。 阿里云盘

Rumor Containment by Blocking Nodes in Social Networks

Abstract 谣言在社交网络中快速传播,可能严重损害我们的社会。在本文中,我们提出了一种基于整数线性规划(ILP)的数学规划公式,通过阻止建模为线性阈值模型的复杂社交网络中的节点子集(称为阻止者&#xff…

apache atlas 如何自定义hook

atals 是开源的数据元数据和数据资产管理平台,平台设计支持强大的图数数据库,nosql,和搜索引擎3个组件构建。都是基于开源构建。 目前市场上开源的元数据管理工具有Atlas, Datahub, Openmetadata等,你要说二…

写一个函数返回参数二进制中1的个数--四种方法及原理解释

虽然本方法是java写的,但是其原理适用于大部分语言 方法一:通过取模%运算取出每一位比特位数值,再进行判断(该方法不可判断负数) 原理: 通过取模num % 2 1 取出该数的每一个二进制位数,再判…

HackMyVM-VivifyTech

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 wpscan feroxbuster hydra 提权 系统信息收集 横向渗透 git提权 get root 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7b, …

JAVA语言开发的:一套智慧校园平台主要由哪些系统组成、又有哪些前景呢?让我们一起来看一看

▶技术架构:后端:Java 框架:springboot 前端页面:vue 小程序:小程序原生开发 ▶电子班牌:Java Android 源码有演示,自主研发,官方正版授权,联系客服咨询&#xff0…

使用Java编写的简单彩票中奖概率计算器

前言 在当今社会,彩票已经成为许多人追逐梦想和改变生活的一种方式。然而,中奖的概率却是一个让人犹豫和兴奋的话题。在这篇文章中,我们将探讨如何使用Java编程语言实现一个简单的彩票中奖概率计算器。通过这个计算器,我们可以根…

初识Node.js-REPL(详解交互式解释器)

目录 一、REPL介绍 1.概念 2.主要特点和用途 3.应用 二、 REPL语法 1.简单的表达式运算 2.使用变量 3.多行表达式 下划线(_)变量 三、REPL 命令 四、停止 REPL 五、Gif 实例演示 六、REPL应用实例 七、总结 一、REPL介绍 1.概念 Read(读取&#xff09…

【吃透Java手写】1- Spring(上)-启动-扫描-依赖注入-初始化-后置处理器

【吃透Java手写】Spring(上)启动-扫描-依赖注入-初始化-后置处理器 1 准备工作1.1 创建自己的Spring容器类1.2 创建自己的配置类 ComponentScan1.3 ComponentScan1.3.1 Retention1.3.2 Target 1.4 用户类UserService Component1.5 Component1.6 测试类 2…

吴恩达机器学习笔记:第 9 周-16推荐系统(Recommender Systems) 16.3-16.4

目录 第 9 周 16、 推荐系统(Recommender Systems)16.3 协同过滤16.4 协同过滤算法 第 9 周 16、 推荐系统(Recommender Systems) 16.3 协同过滤 在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这些特征训练出了…

TikTok 正式起诉美国政府;全新 iPad Pro 将搭载苹果 M4 芯片丨 RTE 开发者日报 Vol.199

开发者朋友们大家好: 这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

视频号小店想要长久发展,做店的核心是什么?一篇详解!

大家好,我是电商小V 想要做好视频号小店,那么他的核心是什么呢? 视频号小店的核心还是商品,其实电商运营底层的逻辑都是一样的,都是以商品为核心去运营的,再说的浮夸一点就是,你的商品选择的好&…

ICode国际青少年编程竞赛- Python-2级训练场-基础训练4

ICode国际青少年编程竞赛- Python-2级训练场-基础训练4 1、 for i in range(4):if i > 2:Flyer[i].step(3)else:Flyer[i].step(1) Dev.step(Item[3].x - Dev.x)2、 for i in range(6):if i < 3:Flyer[i].step(2)else:Flyer[i].step(3) Dev.step(Item[2].x - Dev.x)3、 …

linux Nginx安装与启动

一、先到官网下载Nginx 官网地址&#xff1a; http://nginx.org/en/download.html 我下载的是nginx-1.20.2 二、下载好的文件上传到服务器&#xff0c;然后解压 1、上传到指定的服务器地址&#xff0c;我这里是公司服务器&#xff0c;目录都是定义好的&#xff0c;自己玩建…

哪个文件加密软件好?迅软加密软件特性解析

哪个文件加密软件好&#xff1f; 这里推荐一款好用的文件加密软件&#xff0c;迅软DSE加密软件&#xff0c;有17年的加密经验了&#xff0c;已为三十万企业解决信息安全问题。简单易用&#xff0c;兼容性强&#xff0c;各类型文件都可加密。完善的售后保障&#xff0c;各地有服…

C++之STL-priority_queue和仿函数的讲解

目录 一、priority_queue的介绍和使用 1.1 priority_queue的介绍 1.2 priority_queue的基本接口 二、仿函数的介绍 2.1 基本概念 2.2 适用场景 三、模拟实现priority_queue 3.1 向上调整算法 3.2 向下调整算法 3.3 整体框架 一、priority_queue的介绍和使用 1.1 prio…