当前位置: 首页 > news >正文

计算机视觉——图像特征提取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打开了一种新思路,特征描述本身就含有关键点的重要性信息,可以作为关键点筛选的依据。

相关文章:

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

概述 局部特征提取是计算机视觉中的一个重要任务,它旨在从图像中提取出能够代表图像局部结构和外观信息的特征。这些特征通常用于图像匹配、物体识别、三维重建、跟踪和许多其他应用。传统方法,如尺度不变特征变换(SIFT)&#xf…...

The “from“ argument must be of type string. Received undefined——vue报错记录

今天在用机器人打包测试环境时,一直报错: The "from" argument must be of type string. Received undefined 啥意思呐? 百度也没有找到对应的问题所在。 下面写一下我的解决方法: vue.config.js 在vue.config.js中…...

汽车4S行业的信息化特点与BI建设挑战

汽车行业也是一个非常大的行业,上下游非常广,像主机厂,上游的零配件,下游的汽车流通,汽车流通之后的汽车后市场,整个链条比较长。今天主要讲的是汽车流通,汽车4S集团。一个汽车4S集团下面授权代…...

JSX 和 HTML 之间的区别

JSX和 HTML 都是用于创建和构建网页的标记语言,但它们有一些关键的区别。 1. JSX 是 JavaScript 的语法扩展,而 HTML 是一种标记语言。 2. JSX 允许您在语法中包含表达式和函数,而 HTML 只允许静态文本。 3. JSX 通常用于 React 应用程序&…...

AI日报:GPT-4-Turbo正式版自带读图能力;Gemini1.5Pro开放API;SD3将于4月中旬发布;抖音宫崎骏AI特效爆火

欢迎来到【AI日报】栏目!这里是你每天探索人工智能世界的指南,每天我们为你呈现AI领域的热点内容,聚焦开发者,助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解:AIbase - 智能匹配最适合您的AI产品和网站 &#x1f4f…...

IDEA 宝贝插件

1. Codota— 代码智能提示 Codota还包含一个网站:https://www.codota.com/code 2.Alibaba Java Code Guidelines— 阿里巴巴 Java 代码规范 3. SequenceDiagram —— 调用链路自动生成时序图 4. google-java-format —— 代码自动格式化...

[C语言][数据结构][链表] 单链表的从零实现!

目录 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1…...

oracle rac打补丁后sqlplus / as sysdba ora-12537

sqlplus / as sysdba 报错: ORA-12537: TNS:connection closed 检查用户属组: [rootrac1 ~]# id oracle uid1102(oracle) gid1101(oinstall) groups1101(oinstall),1102(dba) [rootrac1 ~]# id grid uid1101(grid) gid1101(oinstall) groups1101(oin…...

TCP-IP详解卷一:协议——阅读总结

该内容适合程序员查看 第1章 概述 1.1 引言 WAN全称是 Wide Area Network,中文名为广域网。 LAN全称是 Local Area Network,中文名为局域网。 1.2分层 ICP/IP协议族通常被认为是一个四层协议系统 分层协议应用层Telnet、FTP和e-mail运输层TCP和UDP网…...

【带源码】如何开发一个视频打赏,付费观看视频的系统?

【带源码】如何开发一个视频打赏,付费观看视频的系统?开发指南来了 最近非常火爆的视频打赏系统,有用户端,管理端,代理端 风口来了,系统部署简单,需要详细部署教程的可以留下评论哦&#xff01…...

Linux--进程的概念(一)

目录 一、冯诺依曼体系结构二、操作系统2.1 什么是操作系统2.2 操作系统的意义 三、进程3.1 进程的基本概念3.2 描述进程——PCB3.3 进程和程序的区别3.4 task_struct-PCB的一种3.5 task_struct的内容分类 四、如何查看进程4.1 通过系统文件查看进程4.2 通过ps指令查看进程 五、…...

大话设计模式——15.观察者模式(Observer Pattern)

简介 也称发布订阅模式(Publish/Subscribe),定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 UML图: 应用场景: 消息通知组件&#x…...

MySQL 主从复制部署(8.0)

什么是主从数据库 主从数据库是一种数据库架构模式,通常用于提高数据库的性能、可用性和可伸缩性。 它包括两种类型的数据库服务器: 1)主数据库(Master):主数据库是读写数据的主要数据库服务器。所有写操…...

大话设计模式——16.命令模式(Command Pattern)

简介 请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的对象进行执行。命令模式是一种特殊的策略模式,体现多个策略执行的问题,而不是选择的问题 UML图 应用场景 界面选择、键盘、按钮、事件操作都类似命令模式 …...

react17+18 中 setState是同步还是异步更新

在类组件中使用setState,在函数式组件中使用hooks的useState。 setstate目录 1. 类组件1.1 react 17版本1.2 react 18版本 2、函数式组件 1. 类组件 1.1 react 17版本 参考内容:第十一篇:setState 到底是同步的,还是异步的&…...

Unity框架,ET框架8.1版本的打包流程记录

目录 打包代码前置1.必须要安装Visusal Studio 2022的组件,如下图,必须都要进行安装,不然会在代码重构的时候报错,丢失SDK。Rider的版本必须2023及以上 步骤一、使用Rider编辑器打开项目后进行重构项目步骤二、使用HybirdCLR生成A…...

windows访问wsl中的docker

1、启动windows路由转发功能&#xff1a; 找到任务管理器 --》服务–》打开服务–》 ROUTing and Remote Access 2、关闭wsl中linux的防火墙 3、查看docker系统和linux系统的ip和网关 以下面为例 # docker系统 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu…...

golang主要优缺点

优点 1&#xff09;采用协程机制&#xff0c;可以很方便的支持高并发&#xff0c;性能还不错。 2&#xff09;非常易于使用&#xff0c;产出效率很高。 缺点 也是协程机制。程序中一切皆协程&#xff0c;并且自己做了协程调度机制&#xff0c;而不是传统的 线程机制。导致需…...

浅谈Redis和一些指令

浅浅谈一谈Redis的客户端 Redis客户端 Redis也是一个客户端/服务端结构的程序。 MySQL也是一个客户端/服务端结构的程序。 Redis的客户端也有多种形态 1.自带命令行客户端 redis-cli 2.图形化界面的客户端&#xff08;桌面程序&#xff0c;web程序&#xff09; 像这样的图形…...

AI大模型探索之路-应用篇1:Langchain框架概述—快速构建大模型应用

目录 一、什么是LangChain&#xff1f; 二、LangChain解决了哪些问题&#xff1f; 三、LangChain总体架构 四、代码实践样例 总结 一、什么是LangChain&#xff1f; 为大模型应用提供简便之道。 LangChain&#xff0c;专为构建庞大的语言模型应用程序设计的框架&#xff0…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...