SuperPoint 论文详解

2023-10-30

SuperPoint

该论文是 magic leap 公司在18年的一篇工作,而且提供了代码,基于 pytorch 的,不过遗憾的是训练代码和相应的渲染的训练数据没提供。

主要思路

本文提出了一个自监督的方式去训练网络来提取特征点以及计算描述符。

基本流程

整体框架

整体框架如下图,下面会abc三个步骤分别介绍:
整体框架

特征点提取预训练

如果要使用有监督的深度学习方案来解决该问题,不同于其他传统的像分类、检测和分割这样视觉任务,对于任意给定的一张图像,有确定的语义上的真值。对于特征点提取这个任务来说,很难人为的去判断哪一个像素点可以作为特征点,所以也很难让用户去标注,所以现在要在没有标注数据前提下去解决。
该文作者提出了一种迂回的方式,具体流程如下:

  1. 利用基本形状元素渲染得到训练集和真值,如下图:
    对于任意的图像很难去确定特征点位置,但是如果图像上只有线段、三角形、矩形和立方体等基本形状元素的话,那么特征点的位置一般都是在端点和定点上,那么真值就很好确定了。但是也很难获取这种只包含基本形状元素的图像,所有作者使用渲染的方式来获取对于任意的图像很难去确定特征点位置,但是如果图像上只有线段、三角形、矩形和立方体等基本形状元素的话,那么特征点的位置一般都是在端点和定点上,那么真值就很好确定了。但是也很难获取这种只包含基本形状元素的图像,所有作者使用渲染的方式来获取训练图像,那么真值自然就获得了。
    特征点训练数据
  2. 利用上面的训练数据和真值训练起来,这样就得到可以提取基本形状元素特征点的模型了,文章中叫做MagicPoint,结构如下(只关注上面,下半部分是提取描述符的):
    其实这里面也有一些问题,点的数目不固定怎么来映射,比较直观的想法是利用类似关节点提取的方法,但可能会有点问题,就是后面的heatmap需要保证和输入图像分辨率一致,不然网络降采样会导致找不到精确的特征点。作者采用了另外的方式,类似语义分割的方式,就是网络整体就做8次降采样,最后会输出65个通道的heatmap,65通道对应原始图像的8x8的一个patch,表示该点是特征点的概率值,多出一个值表示不存在特征点,这样就把特征点提取转换成分类问题。
    上面论文中实现其实有个细节是,如果同一个8x8的patch上存在多个特征点,因为分类只能有一个真值,所以只会选择其中一个特征点当做真值去训练,测试过程利用阈值来截取,同一个8x8的patch可以获得多个特征点,这是需要注意的。但是训练时的选取的策略没仔细看,需要注意一下???
    整体深度学习架构
真实图像自标注

真实图像自标注主要使用单应适应的方法,这也是该文的核心贡献,主要是通过单应变换把上面的MajicPoint的能力传递到一般图像上,主要流程如下图:
前面的MagicPoint只是在基本形状元素的图像上训练出来的,对于一般的图像提取效果可能不太好。主要思路是想利用MS-COCO上的大量的图像来进一步训练得到一般性的模型。但该数据集没有特征点真值的,所以方案就变成通过之前训练好的MagicPoint获取MS-COCO数据集的特征点的真值。这里主要是对MS-COCO数据集的每张图像做n种单应变换(文章中最后用的100种),得到n张变换后的图像,在这些图像上利用MajicPoint模型分别提取特征点,可以得到n个特征点的heatmap,把这n个heatmap累加到一起,得到最终的heatmap,然后使用阈值截取获得每个位置上的特征点,这个就是原始图像的特征点的真值,用来训练。
单应适应
关于单应变化,论文中拆分成多个子变换,如下图:
在这里插入图片描述

特征点提取和描述符计算联合训练

首先MS-COCO真实图像集,目前通过前面的步骤已经获取图像对应的特征点的真值了。但同特征点一样,描述符也存在真值的问题,任意两张图像,真值是没法确定和标注的。这里的描述符直接由深度学习网络的feature map输出,但是这样的feature map不一定满足描述符的特性,简单来说就是需要同样的特征点之间描述符的距离尽可能的近,而不同特征点之间的描述符的距离尽可能远。(这里的近和远只是表示在一定度量方法下的描述符的相似程度)
该文对原始图像做warp,然后两张图像都能特征点对应关系也是知道的,由warp函数决定,对于两张图像中任意的两对点都会求loss,去优化使匹配点距离小,非匹配点距离大,这样最后得到的描述符就是满足需求的。
需要注意的是描述符的feature map是通道为D的,但是分辨率是原始图像的1/8,也就是8x8的图像patch需要公用同一个描述符,描述符的维度是D。

试验

后面补充

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SuperPoint 论文详解 的相关文章

  • 区域生长算法及其实现

    区域生长算法及其实现 背景 前面我们已经介绍了 最大熵分割法 OTSU算法 他们都有各自的优缺点 通常都不是单独使用这些算法 需要和其它算法来结合使用 前面两类算法都是单独对图像的灰度信息进行处理 不包含图像的空间信息 而区域生长算法则包含
  • GPT-4来了,但大模型的诸多未解之谜仍然未解

    导语 在3月14日 OpenAI 的 GPT 4 正式发布 它拥有多模态能力 可以接受图像输入并理解图像内容 可接受的文字输入长度增加到 3 2 万个 token 在多种专业和学术基准测试中取得好成绩 然而 功能强大的 GPT 4 与早期的
  • Python的PIL库

    Python图像库PIL Python Image Library 是python的第三方图像处理库 图像类Image class Image类是PIL中的核心类 比如从文件中加载一张图像 处理其他形式的图像 或者是从头创造一张图像等 Im
  • 图像特征提取技术

    目 录 前 言 基于颜色的特征提取 1 颜色空间 2 直方图以及特征提取 基于纹理的特征提取 1 灰度共生矩阵 2 tamura纹理 基于深度神经网络的图像处理 前 言 图像特征提取属于图像分析的范畴 是数字图像处理的高级阶段 本文将从理论
  • 【论文阅读】【三维场景特殊点云分割】OpenMask3D:Open-Vocabulary 3D Instance Segmentation

    前言 NeurIPS2023 OpenMask3D Open Vocabulary 3D Instance Segmentation 论文地址 https openmask3d github io static pdf openmask3d
  • OpenCV 笔记(9):常用的边缘检测算子—— Roberts、Prewitt、Sobel

    在本文开始之前 我们先了解一下算子的概念 算子 英语是 Operator 它是一个函数空间到函数空间上的映射 O X X 广义上的算子可以推广到任何空间 函数 是从数到数的映射 泛函 是从函数到数的映射 算子 是从函数到函数的映射 算子不等
  • 改了论文查重率依然很高怎么办【保姆教程】

    大家好 今天来聊聊改了论文查重率依然很高怎么办 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 改了论文查重率依然很高怎么办 在学术领域 论文查重是保证学术诚信和论文质量的重要环节 伪原创 然而 有些同学在修
  • 张正友相机标定法原理与实现

    张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法 传统标定法的标定板是需要三维的 需要非常精确 这很难制作 而张正友教授提出的方法介于传统标定法和自标定法之间 但克服了传统标定法需要的高精度标定物的缺点 而仅需使用一个
  • 推荐几个计算机视觉与自动驾驶相关的平台!

    今年来 各家自动驾驶与AI公司开始规模化量产 可落地的技术成为大家争先占领的重点 然而这个行业对从业者能力要求较高 内部非常卷 一个岗位难求 如何从内卷中脱颖而出 除了极强的自律外 系统的学习方法也很重要 这里给大家推荐了几个国内非常具有影
  • 软件测试/人工智能丨计算机视觉场景下如何开展相关测试活动

    计算机视觉测试涉及验证计算机视觉系统的性能 准确性和鲁棒性 以确保其在实际应用中的有效性 以下是在计算机视觉场景下开展相关测试活动的一些建议 图像数据集测试 数据集多样性 使用多样化的图像数据集进行测试 确保计算机视觉系统能够处理不同场景
  • 讲解光流估计 liteflownet3

    目录 讲解光流估计 LiteFlowNet3 什么是 LiteFlowNet3 模型架构 训练与优化 应用与展望 结论 讲解光流估计 LiteFlowNet3 光流估计是计算机视觉领域的重要任务 其可以估计图像序列中每个像素的运动矢量 光流
  • 【思扬赠书 | 第1期】教你如何一站式解决OpenCV工程化开发痛点

    写在前面参与规则 参与方式 关注博主 点赞 收藏 评论 任意评论 每人最多评论三次 本次送书1 3本 取决于阅读量 阅读量越多 送的越多 思扬赠书 第1期活动开始了 机器视觉 缺陷检测 工业上常见缺陷检测方法 方法一 基于简单二值图像分析
  • 什么是“人机协同”机器学习?

    人机协同 HITL 是人工智能的一个分支 它同时利用人类智能和机器智能来创建机器学习模型 在传统的 人机协同 方法中 人们会参与一个良性循环 在其中训练 调整和测试特定算法 通常 它的工作方式如下 首先 对数据进行人工标注 这就为模型提供了
  • 互操作性(Interoperability)如何影响着机器学习的发展?

    互操作性 Interoperability 也称为互用性 即两个系统之间有效沟通的能力 是机器学习未来发展中的关键因素 对于银行业 医疗和其他生活服务行业 我们期望那些用于信息交换的平台可以在我们需要时无缝沟通 我们每个人都有成千上万个数据
  • 详解数据科学自动化与机器学习自动化

    过去十年里 人工智能 AI 构建自动化发展迅速并取得了多项成就 在关于AI未来的讨论中 您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语 事实上 这些术语有着不同的定义 如今的自动化机器学习 即 AutoML 特指模型构
  • 友思特分享 | CamSim相机模拟器:极大加速图像处理开发与验证过程

    来源 友思特 机器视觉与光电 友思特分享 CamSim相机模拟器 极大加速图像处理开发与验证过程 原文链接 https mp weixin qq com s IED7Y6R8WE4HmnTiRY8lvg 欢迎关注虹科 为您提供最新资讯 随着
  • 图像分割-Grabcut法

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的C 版本请访问 图像分割 Grabcut法 C CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 回望计算机视觉会议ICCV的31年

    作者 原野寻踪 编辑 汽车人 原文链接 https zhuanlan zhihu com p 670393313 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 本文只做
  • 3D点云检测神技 | UFO来了!让PointPillars、PV-RCNN统统涨点!

    作者 AI驾驶员 编辑 智驾实验室 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 3D目标检测 技术交流群 本文只做学术分享 如有侵权 联系删文 在这篇论文中提出了一个关于在3D点云中检测未

随机推荐

  • CloudQuery到底是一款什么样的数据库管理工具

    前言 随着时代和企业的发展 单一或少数的数据库 繁杂错乱的操作工具已无法满足开发者对数据获取和操作的新要求 那么 有没有一款工具可以将所有数据库归纳到一个平台中 有没有办法让开发者操作数据更加高效便捷 我们曾在市面上找了很久 但仍没有找到一
  • pytorch:把图片数据转化成tensor

    摘要 在图像识别当中 一般步骤是先读取图片 然后把图片数据转化成tensor格式 再输送到网络中去 本文将介绍如何把图片转换成tensor 一 数据转换 把图片转成成torch的tensor数据 一般采用函数 torchvision tra
  • 让人抓狂的 URL 重定向的 Cookie 问题

    想象下面两行伪代码 1 setCookie 2 redirect new web url 首先设置一个Cookie 然后重定向到另外一个网址 这个网址跟当前网站的域名不同 在多数情况下这两行代码执行毫无问题 cookie 正确保存到浏览器
  • SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符

    目录 Bash 常用快捷键 输入输出重定向 lt lt 用法 输出重定向 命令执行顺序 分号 通配符 传统通配符 常用字符 强调 生成序列 Bash 常用快捷键 Ctrl A 把光标移动到命令行开头 Ctrl E 把光标移动到命令行尾 Ct
  • 国产FPGA芯片,机遇与挑战并存

    FPGA是可以先购买再设计的 万能 芯片 FPGA Field Programmable Gate Array 现场可编程门阵列 是在硅片上预先设计实现的具有可编程特性的集成电路 它能够按照设计人员的需求配置为指定的电路结构 让客户不必依赖
  • 数据结构中缀表达式转换为后缀表达式并求值,pta试题,小白心酸史

    数据结构中缀表达式转换为后缀表达式并求值 1 中缀表达式转换为后缀表达式并求值 100分 把题目给出中缀表达式转换为后缀表达式输出 并求后缀表达式的值 为简单起见 我们约定 1 输入的中缀表达式一定是合法的 并且只含数字 四种运算符 和小括
  • 我的opencv3.1+vs2015配置

    opencv下载地址 www opencv org 下载opencv3 1版本 其实是个压缩文件zip 然后解压 解压文件说明 build 里是各平台的jar dll sources 是源文件 头文件 框架等等 设置环境变量 右键我的电脑
  • R语言介绍

    1 R的统计计算和绘图功能十分强大 2 R是一种区分大小写的解释型语言 R的赋值符号是 lt 而不是传统的 号 3 x lt rnorm 5 表示了一个名为x的向量对象 它包含5个来自标准正态分布的随机偏差 4 注释是有 开头 再 之后的任
  • 使用canvas进行图片压缩(前端图片压缩核心处理)

    一 原理 实际上就是利用canvas进行重新绘制 1 先将图片的file文件转成baseURL 2 创建一个image标签去接收文件获取图片的宽高和比例 3 创建canvas画布设置画布的大小 4 将图片绘制到canvas上面 5 对can
  • vue-json-viewer展示JSON内容

    文章目录 01 前言 02 接口内容预处理 03 json viewer使用 01 前言 最近写的一个小案例 需要将接口返回的JSON内容显示在页面上 要求是要和控制台返回的JSON内容一样能点击展开显示或者关闭 当时只知道处理内容格式 后
  • [AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”

    输入法状态提示 中文状态提示 中 英文状态提示 EN 切换中英文状态的时候 或者用鼠标切换到另一个编辑窗口的时候再次提示 循环如此 功能 输入法状态提示 环境 win10 搜狗输入法 输入法状态切换用默认的shift键 作者 sunwind
  • 【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作

    目录 1 NumPy 基础概述 1 1 NumPy的主要特点和功能 1 2 NumPy 安装和导入 2 Numpy 数组 2 1 创建NumPy数组 2 2 数组的形状和维度 2 3 数组的数据类型 2 4 访问和修改数组元素 3 数组操作
  • s7300的db块详细说明_s7-300与s7-200的mpi通信中db块的详细使用

    哪位有s7 300与s7 200的mpi通信中db块与v区对应详细资料 另外我想问一下想用组态软件与s7 300做mpi通信 然后用e277模块与s7 300做dp通信同时组态软件也能访问s 200不知道可不可以 硬 软件组态方面应该怎样连
  • vim的超详细使用方法

    文章目录 vim的四种模式 命令模式详解 移动光标 快速定位光标 复制 粘贴 剪切和删除 撤销和恢复 编辑模式详解 底行模式详解 保存和退出 文件内容的替换 显示行号 paste 查找和搜索 可视化模式 批量注释 批量去注释 vim是史上最
  • VC6.0无法安装,老是未响应

    今天我安装VC6 0 然后发现老是安装的进候 刚进去就程序未响应 特别的郁闷 弄了好多次 开始是怀疑是安装程序的问题 后来我换了一个版本 还是不可以 最后想想可能是因为我的WINDOWS分区的原因 因为我的系统本身是VISTA的 后来装双系
  • 利用傅立叶变换进行图像处理的代码演示

    前面有篇文件介绍过使用DCT 离散余弦 变换进行图像处理的例子 Matlab一探DCT IDCT变换在图像压缩中的应用 tugouxp的专栏 CSDN博客绝大多数图像都有一个共同特征 平坦区域和内容缓慢变化的区域占据一幅图像的大部分 而细节
  • Win11蓝屏代码IRQL NOT LESS OR EQUAL的处理方法

    蓝屏错误IRQL NOT LESS OR EQUAL是用户常见的系统故障了 升级到Win11新系统也遇到了同样的问题 那么Win11蓝屏问题IRQL NOT LESS OR EQUAL要如何解决 下面就来看看小编整理的解决办法 什么是 IR
  • Java 8: 元空间(Metaspace)

    前言 很多开发者都在其系统中见过 java lang OutOfMemoryError PermGen space 这一问题 这往往是由类加载器相关的内存泄漏以及新类加载器的创建导致的 通常出现于代码热部署时 相对于正式产品 该问题在开发机
  • 解决报错:错误1130- Host xxx is not allowed to connect to this MariaDb server

    在云服务器上面搭建了MariaDb MariaDB是MySQL源代码的一个分支 但是远程链接不上 首先 你要确保服务器安全组3306端口已经开放 在确保端口开放的情况下 如果出现错误代码1130 Host xxx is not allowe
  • SuperPoint 论文详解

    SuperPoint 该论文是 magic leap 公司在18年的一篇工作 而且提供了代码 基于 pytorch 的 不过遗憾的是训练代码和相应的渲染的训练数据没提供 主要思路 本文提出了一个自监督的方式去训练网络来提取特征点以及计算描述