计算机视觉——图像特征提取D2D先描述后检测特征提取算法原理

概述

局部特征提取是计算机视觉中的一个重要任务,它旨在从图像中提取出能够代表图像局部结构和外观信息的特征。这些特征通常用于图像匹配、物体识别、三维重建、跟踪和许多其他应用。传统方法,如尺度不变特征变换(SIFT),首先检测图像中的关键点,然后围绕这些关键点计算描述符,以生成对旋转、尺度和亮度变化具有不变性的局部特征。

然而,随着深度学习的发展,近年来出现了一些新的方法,它们将关键点检测和特征描述符计算结合在一起,以提高效率和性能。以下是一些代表性的方法:

  1. SuperPoint:SuperPoint是一种快速且准确的特征点检测和描述符生成网络。它使用了一个轻量级的卷积神经网络,能够在保持高准确度的同时实现实时性能。SuperPoint通过学习图像的局部模式来预测关键点的位置,并生成对应的特征描述符。

  2. D2-Net:D2-Net(Descent-based Dense Feature Network)是一种密集特征点检测网络,它使用基于梯度下降的方法来精确定位关键点。D2-Net不仅能够检测到大量的特征点,而且能够为每个特征点生成具有独特信息的描述符。

  3. R2D2:R2D2(Region-based Retrieval with Dense Correspondences)是一种基于区域的检索方法,它使用密集对应来生成局部特征描述符。R2D2通过学习图像区域之间的关系来提取特征,这使得它在处理重复纹理和相似结构时具有优势。

这些方法的共同点是它们都利用了深度学习的能力来直接从数据中学习特征点的检测和描述,而不是依赖于手工设计的特征提取算法。这种方法通常能够提供更好的性能,尤其是在处理复杂场景和具有挑战性的视觉任务时。

在实际应用中,这些方法可以根据具体需求进行选择。例如,如果需要实时性能,SuperPoint可能是一个好选择;如果对特征点的精确定位有较高要求,D2-Net可能更适合;而在需要处理具有大量重复纹理的场景时,R2D2可能会有更好的表现。
图片
论文地址:https://arxiv.org/pdf/2005.13605.pdf

D2D

图片
作者提出的核心思想“先描述后检测”是基于这样的观察:特征描述部分本身就包含了大量信息,能够反映图像中某个位置的显著程度。这种方法与传统的先检测关键点再描述的方法相反,它通过先生成大量的密集特征描述,然后从这些描述中筛选出关键点,从而简化了局部特征提取的流程。

在实现这一思想时,衡量特征向量描述的显著性是一个关键问题。以下是一些可能的方法来评估特征描述的显著性:

  1. 基于梯度信息:图像中的边缘和角点通常是显著的特征。因此,可以通过计算图像梯度的大小和方向来评估特征描述的显著性。在深度学习方法中,可以通过卷积层自动学习到这些梯度信息。

  2. 基于网络响应:深度神经网络在处理图像时,不同的层会响应图像的不同特征。可以通过分析网络中某一层的激活情况来确定特征的显著性。例如,如果一个特征描述在某个层引起了强烈的响应,那么这个特征可能是显著的。

  3. 基于特征一致性:在多个图像或多个视角下保持一致的特征更有可能是显著的。可以通过比较不同图像中相同位置的特征描述来评估其显著性。

  4. 基于特征的区分能力:如果一个特征描述能够很好地区分不同类别或不同对象,那么它可能是显著的。可以通过评估特征描述在分类或识别任务中的表现来衡量其显著性。

  5. 基于聚类分析:对大量的特征描述进行聚类分析,可以发现哪些特征描述更具有代表性和区分度。显著的特征描述通常会形成独立的聚类,而不是混杂在其他特征描述中。

  6. 基于注意力机制:注意力机制可以模拟人类视觉注意力的焦点转移,通过识别网络中最关注的区域来确定特征的显著性。

  7. 基于全局和局部信息的结合:结合全局图像信息和局部特征描述,可以更全面地评估特征的显著性。例如,一个在全局层面上具有独特性但在局部层面上很常见的特征可能不是显著的。

作者从两个角度来思考这个问题:

1)特征描述要具有绝对显著性,指某位置的特征各维度特征变化大;

作者以特征各维度与均值的平方差来衡量绝对显著性。

图片

2)特征描述要具有相对显著性,指某位置的特征与其周围临近点的特征相比差异性更大;

作者以某特征与临近位置特征的距离之加权和来衡量。

图片

以绝对显著性和相对显著性之积作为某位置是否为关键点的依据,选取Top N个作为最终的关键点。

图片

实验结果

作者的这个思路很简单,也很容易与图像的密集描述特征结合,作者在图像匹配、视觉定位、三维重建三个任务中评价了这种方法

图像匹配的实验结果:

图片

HarNet 和SOSNet 是作者使用的描述方法。在HPatches数据集上的结果显示,使用D2D的方法超越了之前几种SOTA方法,正确配对的关键点更多。

下图为在Aachen Day-Night 数据集上的视觉定位结果,D2D在替换SIFT关键点检测之后大大提高了精度,虽然与最好结果还有一定差距,但这可能是训练数据和使用网络较小的差异造成的。

图片

在ETH SfM数据集上三维重建的实验结果:

图片

使用窄网络D2D的精度显著超越了那些在大数据集上训练的局部特征提取方法的结果。

D2D因为简单,所以速度也很快,使用 HardNet 或者SOSNet作为描述的话参数量也很小,如下图:

图片

总之,D2D打开了一种新思路,特征描述本身就含有关键点的重要性信息,可以作为关键点筛选的依据。

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

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

相关文章

Java——面向对象的初步认识

目录 一.什么是面向对象 二.面向对象与面向过程 1. 传统洗衣服过程(面向过程) 2. 现代洗衣服过程(面向对象) 一.什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向…

Navicat连接SQL server出现:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序(0)

问题 解决方法 一 找到Navicat的安装路径,然后找到sqlncli_x64.msi文件并安装,安装成功后重启Navicat重新进行连接,看是否成功。 解决方法 二 如果方法一没有找到找到sqlncli_x64.msi 还是Navicat的安装路径,然后找到msodbcsql_64…

【Proteus仿真】按键控制LED流水灯定时器时钟

0~65535 每隔1us计数加1 总共定时时间65535us 64535离计数器溢出差值1000&#xff0c;所以计时时间为1ms #include <REGX51.H> void inittimer0() {TMOD0x01;//0000 0001TF00;//SCON可位寻址&#xff0c;TF1产生中断TR01;//定时器启动TL064535%256;//定时1msTH064536/256…

功能测试_验证某城市电话号码的正确性

案例&#xff1a;验证某城市电话号码的正确性 功能测试_等价类设计用例&#xff1a; 步骤&#xff1a; 1:明确需求&#xff1a;电话号码是否正确 2:划分等价类&#xff1a;有效等价类、有效取值、无效等价类、无效取值 3&#xff1a;提取数据编写用例&#xff1a;用例编号…

基于matlab动态化绘制一个彩色边框的爱心

一、版本1 % 定义爱心曲线的参数方程 t linspace(0, 2*pi, 100); x 16*sin(t).^3; y 13*cos(t) - 5*cos(2*t) - 2*cos(3*t) - cos(4*t);% 创建图形 figure; axis equal; axis off; title(爱心);% 循环遍历每个点&#xff0c;绘制不同颜色的线段 for i 1:length(t)-1% 清除…

【深度学习】图像风格混合——StyleGAN2原理解析

1、前言 上一篇文章&#xff0c;我们详细讲解了StyleGAN的原理。这篇文章&#xff0c;我们就来讲解一下StyleGAN2&#xff0c;也就是StyleGAN的改进版。 原论文&#xff1a;Analyzing and Improving the Image Quality of StyleGAN 参考代码&#xff1a;①Pytorch版本&#…

openjudge_2.5基本算法之搜索_1700:八皇后问题

题目 1700:八皇后问题 总时间限制: 10000ms 内存限制: 65536kB 描述 在国际象棋棋盘上放置八个皇后&#xff0c;要求每两个皇后之间不能直接吃掉对方。 输入 无输入。 输出 按给定顺序和格式输出所有八皇后问题的解&#xff08;见Sample Output&#xff09;。 样例输入 样例输…

汇舟问卷:海外问卷调查怎么样?

越来越多的企业决定采用线上调查的方式来了解消费者的意愿。这种转变不仅反映了科技发展的必然趋势&#xff0c;也凸显了企业对市场动态和消费者需求的高度重视。 线上调查能够覆盖更广泛的受众群体&#xff0c;通过互联网的普及&#xff0c;企业可以轻松地触及全国各地的消费…

HackTheBox-Machines--MonitorsTwo

文章目录 0x01 信息收集0x02 CVE-2022-46169 漏洞利用0x03 权限提升0x04 提升到root权限 MonitorsTwo 测试过程 0x01 信息收集 a.端口扫描: 发现22、80端口    b.信息收集: 1.2.22 Cacti信息收集 nmap -sC -sV 10.129.186.1321.访问 10.129.186.132&#xff0c;为 1.2.22 Ca…

Vue pdfjs

最终效果图 官网 https://mozilla.github.io/pdf.js 下载 放入项目 vue页面嵌入本地下载好的html sessionStorage.setItem(sdfDldj8KJ45SDF, encodeURIComponent(file_url)) <template><div style"height:100%"><iframe:id"1":key"…

vue快速入门(二十一)计算属性

注释很详细&#xff0c;直接上代码 上一篇 新增内容 计算属性的基本应用 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…

OceanBase V4.2 MySQL模式下,如何通过DBLINK实现跨数据源访问

概述 跨数据源访问可通过 DBLINK&#xff08;以下简称DBLINK&#xff09;实现&#xff0c;从而使得业务代码能够像访问本地数据库一样轻松访问远端数据库。原先&#xff0c;DBLINK主要服务于Oracle模式&#xff0c;但由于OceanBase 的MySQL模式租户同样存在访问远端数据库的需…

C语言 | Leetcode C语言题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; int removeDuplicates(int* nums, int numsSize) {if (numsSize 0) {return 0;}int fast 1, slow 1;while (fast < numsSize) {if (nums[fast] ! nums[fast - 1]) {nums[slow] nums[fast];slow;}fast;}return slow; }

【机器学习】深入剖析贝叶斯算法原理及其广泛应用

一、引言 在机器学习的广阔领域中&#xff0c;贝叶斯算法以其独特的概率推理方式占据了重要的地位。它不仅为分类问题提供了有效的解决方案&#xff0c;还在自然语言处理、信息检索、垃圾邮件过滤等诸多领域发挥着不可替代的作用。 贝叶斯算法的基本思想源于贝叶斯定理&#xf…

leetcode热题100.爬楼梯(从二进制到快速幂)

Problem: 70. 爬楼梯 文章目录 题目思路Code复杂度 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方…

java智慧校园系统源码saas电子班牌固件安卓7.1+Java Android原生系统源码

java智慧校园系统源码saas电子班牌固件安卓7.1&#xff0b;Java Android原生系统源码 智慧校园是促进信息技术与教育教学深度有效融合、提高学与教的效果为目的&#xff0c;以物联网、云计算、大数据分析等新技术为核心技术&#xff0c;提供一种环境全面感知、智慧型、数据化、…

SaaS知识库哪些比较好用?中小企业也能适用

在快节奏的商业世界中&#xff0c;拥有一个高效、易于使用的知识管理工具是提升工作效率的关键。对于中小企业来说&#xff0c;选择合适的SaaS&#xff08;软件即服务&#xff09;知识库平台尤为重要&#xff0c;因为它不仅能帮助员工快速找到信息&#xff0c;而且还能优化客户…

[react] useState的一些小细节

1.无限循环 因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样 一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环 如果这样呢 还是会,因为你执行又会重新渲染 2.异步修改数据 为什么修改多次还是跟不上呢? 函数传参解决 因为是异步修改 ,所以…

TCP协议简单总结

TCP&#xff1a;传输控制协议 特点&#xff1a;面向连接、可靠通信 TCP的最终目的&#xff1a;要保证在不可靠的信道上实现可靠的传输 TCP主要有三个步骤实现可靠传输&#xff1a;三次握手建立连接&#xff0c;传输数据进行确认&#xff0c;四次挥手断开连接 三次握手建立可靠…

每日一题---OJ题: 环形链表

片头 嗨! 小伙伴们,大家好! 今天我们来讲讲这道OJ题----环形链表,准备好了吗? 我们开始咯! 题目似乎有点抽象,我们举几个例子哈 上图中,总共有4个结点,分别为 3, 2, 0, -4, 链表中有一个环,尾结点连接到第二个结点。 上图中,总共有2个结点,分别为 1, 2, 链表中有一个环, 尾结…