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

news2024/12/24 20:50:39

概述

局部特征提取是计算机视觉中的一个重要任务,它旨在从图像中提取出能够代表图像局部结构和外观信息的特征。这些特征通常用于图像匹配、物体识别、三维重建、跟踪和许多其他应用。传统方法,如尺度不变特征变换(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打开了一种新思路,特征描述本身就含有关键点的重要性信息,可以作为关键点筛选的依据。

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

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

相关文章

6.4Python之字典的可变数据类型

字典是不可变数据类型,但其值都是可变数据类型。添加修改删除,都是通过改变寻址的方式做数据的变化。 例如: d1 {"a": 1, "b": 2, "c": 5} print(d1) print(id(d1)) print(d1["c"], "的ID&a…

天猫精灵要会员,不能听歌,还能用来干什么呢?榨干它的剩余价值

目录 起因:以听歌为主要功能的设备,却不能听歌了 1.蓝牙音箱 2.控制智能家电 3.万能遥控器,需要一个外接设备 4.倒计时/提醒,闹钟提醒,整点提醒(这功能有人不喜欢,闲吵,还不能关…

大话设计模式——9.单例模式(Singleton Pattern)

简介 确保一个类只有一个实例,并提供全局访问点来获取该实例,是最简单的设计模式。 UML图: 单例模式共有两种创建方式: 饿汉式(线程安全) 提前创建实例,好处在于该实例全局唯一,不…

JVM修炼之路【11】- GC调优 、性能调优

上一篇中 我们详细讲了内存溢出 内存泄漏 还有相关的案例。 这篇博客中我们主要了解一下GC调优。 有些新手可能会有一点 疑问—— 这两者不是一回事吗?? 其实说一回事 也没错 因为GC调优本质上还是针对 堆上的内存 只不过前面我们关注的侧重点在于 不合…

Centos 7.9.2009 下 Gitlab 完全卸载

一、linux版本:lsb_release -a 二、GtiLab 版本 # 查看gitlab的版本号 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 三、开始卸载 3.1,停止Gitlab 相关服务 # 停止所有GitLab相关服务: sudo gitlab-ctl stop# 移除GitLab包…

Cascader 级联选择器 - 选择器最后一级数据为空

原因:将扁平数据转化为树形数据时,给每个项都添加了 children export const transList2Tree (list, rootPid) > {const result []list.forEach(item > {if (item.pid rootPid) {const children transList2Tree(list, item.id)item.children …

「51媒体-邀约媒体」活动发布会新闻通稿如何写?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 撰写活动发布会的新闻通稿需要遵循一定的结构和内容要点,以确保信息的准确性、完整性和吸引力。以下是撰写活动发布会新闻通稿的基本步骤和建议: 标题&#xff1…

【预约报名】SNP 2024转型世界大会——共创共赢

业务方式正在以惊人的速度演变,然而,您的业务数据始终是最宝贵的财富之一。在这个基础上构建人工智能和机器学习工具,将成为企业保持竞争力的关键。 要实现这一飞跃,您需要现代化的IT环境和可靠的软件解决方案,以确保…

力扣 |142. 环形链表 II

用快慢指针的方法 根据推出的表达式:slow和fast相遇的时候,让slow和位于头节点的p同时 向前走,刚好在入环的节点处相遇!注意:b和c交界的点不一定是从例如-4这个节点处, 可能是0节点处。因为相遇的点只能是…

工厂方法模式:解锁灵活的对象创建策略

在软件设计中,工厂方法模式是一种非常实用的创建型设计模式,它不仅提升了系统的灵活性,还简化了对象的创建过程。本文将详细探讨工厂方法模式的核心概念、实现方式、应用场景以及与其他设计模式的对比,旨在提供一份全面且实用的指…

吴恩达深度学习 (week3,4)

文章目录 一、神经网络概述二、神经网络的表示三、神经网络的输出四、多个例子的向量化五、向量化实现的解释六、深度学习激活函数七、激活函数导数八、神经网络的梯度下降法九、深度学习随机初始化十、上述学习总结1、第一题2、第二题3、第三题4、第四题5、第五题6、第六题7、…

[lesson22]对象的销毁

对象的销毁 对象的销毁 生活中的对象都是被初始化后才上市的 生活中的对象被销毁前会做一些清理工作 一般而言,需要销毁的对象都应该做清理 解决方案 为每个类都提供一个public的free函数对象不在需要时立即调用free函数进行清理 存在的问题 free只是一个普通…

创建一个qt登录界面,密码账号正确转到窗口2,否则弹出对话框提示账号密码错误,窗口2有四个按键,三个按键可以朗读按键文本,第四个退出。

作业要求: 主函数: int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();Form1 f;//连接窗口1的信号函数和窗口2打开的lambda函数Widget::connect(&w,&Widget::login,[&](){f.show();});return a.exec(); }窗…

【心路历程】初次参加蓝桥杯实况

送给大家一句话: 寂静的光辉平铺的一刻,地上的每一个坎坷都被映照得灿烂。 – 史铁生 《我与地坛》 初次参加蓝桥杯有感 一点小小的震撼难评的做题过程A题 艺术与篮球问题描述解题 B 题 五子棋问题描述解题 C题 训练士兵问题描述解题 D题 团建解题 E题 …

电脑显卡怎么看,win10电脑显卡怎么看参数

win10电脑显卡怎么看参数呢?有些小伙伴在买电脑的时候,由于看不懂一些硬件配置,因此只能听别人的推荐来做选择,这样很被动,可能会买到不适合自己的电脑。例如说,你有游戏的需求,那么显卡配置要好&#xff…

Unity给地图物体添加对撞机

在项目/Assets下创建Prefabs文件夹 选择素材拖入层级下,注意此时地图素材有可能看不到,此时选择Tilemap在检查器中修改图层顺序调至最低。 添加对撞机 选择素材,在检查器中点击添加组件Box Collider 2D,将素材拖入Prefabs文件下…

【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)

🔥个人主页:Forcible Bug Maker 🔥专栏:C 目录 前言 类的6个默认成员函数 构造函数 概念 构造函数的特性及用法 析构函数 概念 析构函数的特性及用法 结语 前言 本篇主要内容:类的6个默认成员函数中的构造函…

超越传统Lambda函数:深入解析Out-of-line Lambdas的奇妙之处

超越传统函数:深入解析线外 Lambda函数 的奇妙之处 一、背景二、lambda 的捕获三、可能出现的警告四、lambda的广义捕获五、为每种情况进行重载六、总结 一、背景 Out-of-line Lambdas翻译过来就是“线外Lambda函数”或“离线Lambda函数”。Lambda 是使代码更具表现…

vue canvas绘制信令图,动态显示标题、宽度、高度

需求: 1、 根据后端返回的数据,动态绘制出信令图 2、根据 dataStatus 返回值: 0 和 1, 判断 文字内容的颜色,0:#000,1:red 3.、根据 lineType 返回值: 0 和 1, 判断 箭…

人员抽烟AI检测算法原理介绍及实际场景应用

抽烟检测AI算法是一种基于计算机视觉和深度学习技术的先进工具,旨在准确识别并监测个体是否抽烟。该算法通过训练大量图像数据,使模型能够识别出抽烟行为的关键特征,如烟雾、手部动作和口部形态等。 在原理上,抽烟检测AI算法主要…