论文解析三: D2-Net 用于联合描述和检测局部特征的可训练CNN

news2024/10/9 9:14:45

目录

    • 1.D2-Net摘要
    • 2.D2-Net关键点介绍
    • 3. Joint Detection and Description (联合检测和描述)
      • 3.1 Feature Extraction
      • 3.2 Feature Detection
        • 3.2.1 Hard feature detection (硬特征检测)
        • 3.2.1 Soft Feature Detection(软特征检测)
      • 3.3 Multiscale Detection (多尺度检测)
    • 4.损失函数

1.D2-Net摘要

解决在困难的成像条件下寻找可靠的像素级对应的问题

提出一种由单一卷积神经网络发挥双重作用的方法:它同时是一个密集的特征描述符和一个特征检测器。通过将检测推迟到后期阶段,所获得的关键点比基于低层结构早期检测的传统关键点更稳定。

我们证明了该模型可以使用从现成的大规模SfM重建中提取的像素对应来训练,而不需要任何进一步的注释。该方法在困难的亚琛昼夜定位数据集和InLoc室内定位基准上都获得了最先进的性能,以及在其他图像匹配和三维重建基准上具有竞争力的性能。

特点:特征点定位精度较差、速度慢,但对光照变化、模糊变化等鲁棒性较高

2.D2-Net关键点介绍

​ 在图像之间建立像素级对应关系是计算机视觉中的基本问题之一,现在主要的方法包括稀疏匹配和密集匹配

​ 稀疏匹配一般采用检测然后描述的方法(如下图a),这种方法效率高、速度快,但由于图片中低纹理区域或是重复场景的出现,这种方法可能无法提取到特征点或提取到错误的特征点,其本质原因在于detector只使用了浅层图像信息

​ 密集匹配直接使用深层特征来获得密集特征描述,不使用detector,从而有更高的鲁棒性,但计算效率大大降低

​ 文章提出了一种足够鲁棒的**sparse local feature(稀疏局部特征)**方法(如下图b),将detector放在深层特征后与decriptor高度耦合而一起实现,从而既有sparse(稀疏)方法的高效性,又有dense(密集)方法的鲁棒性
在这里插入图片描述

3. Joint Detection and Description (联合检测和描述)

​ 我们目标是获得一组稀疏的,鲁棒的特征,这些特征在具体挑战性的条件下是稳健的,并且能够有效匹配和存储。为此,提出一种

一种稀疏局部特征检测和描述Joint Detection and Description:我推迟检测阶段,而不是基于低级信息尽早进行特征检测。

​ 首先通过深度卷积神经网络(CNN)计算一组特征图,然后使用这些特征图来计算描述符**(作为穿过特定像素位置处的所有图的切片)并检测关键点(作为特征图的局部最大值)。**结果,特征检测器与特征描述符紧密耦合。

​ 因此,检测对应于具有局部不同描述符的像素,这些描述符应该非常适合匹配。同时,使用CNN深层的特征图使我们能够将特征检测和描述建立在更高层次的信息之上。实验表明,与密集方法相比,我们的方法所需的内存要少得多。

​ 同时,它在具有挑战性的条件下表现相当好甚至更好,如昼夜照明变化和弱纹理场景。与传统的使用两阶段的检测方法不同,文章的方法使用密集的特征提取与描述,但最终获得稀疏的特征点和对应的描述符。这里称它为D2-Net,如下图所示:

这个图中CNN网络F用于提取双重作用的特征图,就是一个密集的特征描述符和一个特征检测器
在这里插入图片描述
D2-Net的第一步是使用CNN网络 F 提取高层次特征,得到
在这里插入图片描述

3.1 Feature Extraction

​ 在(i,j)处,的channel(通道)方向上的向量作为该点的描述符:
在这里插入图片描述
​ 此外,在应用描述符进行匹配之前,应对其进行L2范式归一化
在这里插入图片描述

3.2 Feature Detection

​ 对三维张量F 的另一种解释是作为二维响应D的集合
在这里插入图片描述
​ 其中,k = 1 , … … n 。在这种解释中,特征提取函数F可以看作是n个不同的特征检测器函数Dk,每个函数产生一个二维响应映射Dk这些检测响应图类似于在尺度不变特征变换(SIFT)中获得的高斯差分(DoG)响应图或在Harris的角检测器中获得的角度得分图。在我们的工作中,这些原始分数经过后处理,只选择一个位置子集作为输出关键点。

高斯差分(DoG)是一种用于检测图像中的边缘和关键点。这种方法首先对图像进行高斯模糊处理,然后在不同尺度下计算高斯模糊后的图像之间的差异,以便找到图像中的局部极值点

Harris 角点检测器通过计算图像中每个像素邻域窗口内的灰度值梯度来判断是否为角点,主要基于以下两个假设:

​ 1.在平滑区域中,灰度值不会发生明显的变化。

​ 2.在角点附近,沿着所有方向都会有较大的灰度变化。

Harris 角点检测器通过计算像素点周围窗口内灰度值的梯度和结构矩阵,并根据这些矩阵的特征值来判断该像素点是否为角点。如果特征值较大且相似,则可以判定该像素点为角点。Harris 角点检测器的输出结果主要是一个角点响应图,用于标识图像中潜在的角点位置

下面将描述Feature Detection这个过程。

3.2.1 Hard feature detection (硬特征检测)

​ 在传统的特征检测器如DoG中,检测图将通过执行空间非局部最大抑制来稀疏化。然而,在我们的方法中,与传统的特征探测器相反,存在多个检测映射Dk (k = 1 , … … , n ),并且可以对其中的任何一个检测映射进行检测。因此,对于要检测到的一个点( i 、 j ) (i、j)我们要求:
在这里插入图片描述
​ 直观地说,对于像素(i,j),先选择在通道方向(也就是垂直方向或不同纬度方向)上选择响应最大的探测器(特征图)Dk,然后再验证在该特定检测器(特征图)上该位置是否为局部最大值。这样检测到稠密、鲁棒性较强的特征点

3.2.1 Soft Feature Detection(软特征检测)

​ 上述的hard方案在反向传播时会遇到困难(如判断是否是局部最大值)

​ 1.非光滑性:Hard 特征检测通常意味着对图像进行非线性操作,这可能导致梯度不连续或者不可导的情况,使得反向传播过程中梯度难以计算。

​ 2.非局部性:Hard 特征检测可能会引入非局部性的信息,使得反向传播过程中难以判断是否是局部最大值或者如何传播梯度。

​ 而Soft Feature Detection 是一种相对于 Hard Feature Detection 更加平滑和连续的特征检测方法。在 Soft Feature Detection 中,特征点的检测不再是严格的局部极值判断,而是通过一种更加平滑、连续的方式来确定图像中的特征点。

首先定义soft local-max score
在这里插入图片描述
N(i,j) 是(i,j) 的8邻域并包括它本身

其次定义了ratio-to-max
在这里插入图片描述
得到得分图:
在这里插入图片描述
也即只有 (i,j) 位置的各个响应图 Dk 中存在响应尽可能比其他检测器大并且尽可能是局部最大值的点,的得分将越高

最终得到响应图:
在这里插入图片描述

3.3 Multiscale Detection (多尺度检测)

​ 虽然CNN描述符由于数据增强的预训练而具有一定的尺度不变性,但它们对尺度变化本身并不是不变性,在观点有显著差异的情况下,匹配往往失败。为了获得对尺度变化更稳健的特征,我们建议使用图像金字塔,就像通常在手工制作的局部特征探测器或甚至对某些对象探测器中所做的那样。这只在测试期间执行。

​ 给定输入图像 I,构造一个包含三种不同分辨率ρ = 0.5 、 1 、2(对应于半分辨率、输入分辨率和双分辨率)的图像金字塔I ρ ,并用于提取每个分辨率下的特征图F ρ 。然后,将较大的图像结构从低分辨率特征图传播到高分辨率特征图,传播方式如下:
在这里插入图片描述
这里使用双线性插值进行分辨率的恢复

此外,为了防止重复检测特征:从最粗的尺度开始,标记检测到的位置(包括邻域),并在较细尺度忽略这些区域

4.损失函数

​ 为了训练所提出的模型,它使用一个单一的CNN F 来进行检测和描述,我们需要一个适当的损失L来共同优化检测和描述目标。在检测的情况下,我们希望关键点在视点或照明的变化下是可重复的。在描述的情况下,我们希望描述符是独特的,以便它们不会不匹配。为此,我们提出了一个扩展的三重边际排名损失,它已成功地用于描述符学习,以解释检测阶段。我们将首先回顾三重边际排名损失,然后提出我们的联合检测和描述的扩展版本。
在这里插入图片描述

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

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

相关文章

如何在VScode中加入系统安装好的python环境

在vscode的ipynb文件中,加入的环境总是找不到自己电脑当中已有的环境。这可能是由于自己电脑中的python没有安装ipynb对应的包,因而监测不出来。

【自动驾驶】控制算法(十二)横纵向综合控制 | 从理论到实战全面解析

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

MP2155升降压芯片全解析——概况、性能、应用电路、输出电压调节计算

MP2155概述 功能: MP2155是一款高效率、低静态电流的升降压转换器,可在高于、低于或等于输出电压的输入电压下工作。该器件为采用单节锂离子或多节碱性电池供电的产品提供电源解决方案。 数据: MP2155 可在 2V 至 5.5V 的输入电压下工作&am…

<<迷雾>> 第10章 用机器做一连串的加法(2)--寄存器 示例电路

使用多个触发器可以构成一个寄存器 info::操作说明 单击按钮开关产生上升沿信号, 将 D 的输入存在 Q 端 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch10-02-register-by-multipl…

《Programming from the Ground Up》阅读笔记:p147-p180

《Programming from the Ground Up》学习第9天,p147-p180总结,总计34页。 一、技术总结 1.Physical memeory p152, Physical memory refers to the actual RAM chips inside your computer and what they contain. 物理地址指的RAM,即我们…

Kubernetes网络通讯模式深度解析

Kubernetes的网络模型建立在所有Pod能够直接相互通讯的假设之上,这构建了一个扁平且互联的网络空间。在如GCE(Google Cloud Engine)等云环境中,这一网络模型已预先配置,但在自建的Kubernetes集群中,我们需要…

深圳市步步精科技有限公司成功获得插头结构及电连接器发明专利

2024年8月20日,深圳市步步精科技有限公司(以下简称“步步精”)喜讯传来,公司申请的“插头结构和电连接器”专利(授权公告号CN 118399121 B)正式获得授权。这项创新的插头结构在数据线连接领域具有重要的应用…

[含文档+PPT+源码等]精品基于Nodejs实现的家教服务小程序的设计与实现

基于Node.js实现的家教服务小程序的设计与实现背景,主要源于以下几个方面: 一、家教市场的现状与需求 随着教育竞争的日益激烈,家庭对子女教育质量的重视程度不断提升,家教服务已成为许多家庭不可或缺的一部分。然而&#xff0c…

第三方软件测评机构简析:软件安全测试报告的内容和作用

随着数字化时代的到来,软件的安全性显得尤为重要。尤其在信息安全事件频发的今天,软件安全测试报告成为企业和开发者关注的焦点。软件安全测试报告是评估软件系统安全性的一种综合性文档,通常在软件开发生命周期中进行安全性测试后生成。 软…

计算机毕业设计 | SpringBoot 房屋租赁网 租房买房卖房平台(附源码)

1,绪论 1.1 背景调研 在房地产行业持续火热的当今环境下,房地产行业和互联网行业协同发展,互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能,多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

银河麒麟桌面操作系统中使用ufw开启防火墙

银河麒麟桌面操作系统中使用ufw开启防火墙 💐The Begin💐点点关注,收藏不迷路💐 在银河麒麟桌面操作系统里,开启防火墙只需一个简单的步骤。 打开终端,然后执行命令: sudo ufw enable这样就能…

Auth2.0单点登录(企业开发流程)

实习中接到需求单点登录,记录一下单点登录在企业中的实际应用。其实单点登录在不同的业务中处理细节还是不相同的,我这里仅举例我们这个需求中如何处理的一种情形。 一.概念 简单来说就是一次登录,各处访问。 二.流程 场景一:…

Spring源码二IOC容器源码

文章目录 Spring IOC初始化源码剖析1.prepareRefresh2.obtainFreshBeanFactory3.prepareBeanFactory4.postProcessBeanFactory5.invokeBeanFactoryPostProcessors6.registerBeanPostProcessors7.initMessageSource8.initApplicationEventMulticaster9.onRefresh10.registerList…

Day05-数据库服务索引应用

Day-05-数据库索引知识说明 1、数据库索引概述介绍2、数据库索引分类介绍3、数据库索引应用配置4、数据库执行计划概述5、数据库执行计划获取7、数据库索引覆盖长度8、数据库联合索引应用 01.数据库索引概述介绍 02.数据库索引分类介绍 03.数据库索引应用配置 04.数据库执行计划…

C高级(Day25)

一、学习内容 Shell脚本 shell中的变量 shell中变量的定义 shell中的变量是没有数据类型的,,默认是字符串 shell中的变量默认是全局变量 格式 变量名 错误,计算机认为变量名是一个指令 变量名 正确,定义变量 ,值为空…

基于Springboot+Vue的公寓出租系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

成都睿明智科技有限公司靠谱吗怎么样?

在这个短视频与直播带货风起云涌的时代,抖音电商凭借其庞大的用户基数和高效的流量转化能力,成为了众多商家争相入驻的新蓝海。而在这场电商盛宴中,专业的服务商如成都睿明智科技有限公司,更是成为了连接品牌与消费者的桥梁。那么…

Win10 安装 Redis 数据库

一、Redis 数据库介绍 Redis 是一个开源的高性能键值对(key-value)的非关系型数据库。它通常用作数据结构服务器,支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表&a…

同城O2O系统源码与跑腿配送平台的架构设计与开发方案详解

今天,笔者将与您一同深入探讨同城O2O系统的源码及跑腿配送平台的架构设计与开发方案,助力开发者和企业在这一领域的实践与探索。 一、O2O系统概述 在同城O2O模式中,用户可以通过手机应用或网页平台下单,而配送员则根据订单信息迅…

redis高级(面试题一)

目录 一、Redis持久化机制有哪些?有什么区别? 1、RDB(redis database) 2、AOF 3、区别 二、redis的主从集群有什么用? 1、什么是redis的主从集群 2、为什么要使用redis主从集群(也就是有什么用) 三、redis的哨兵…