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

目录

    • 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来共同优化检测和描述目标。在检测的情况下,我们希望关键点在视点或照明的变化下是可重复的。在描述的情况下,我们希望描述符是独特的,以便它们不会不匹配。为此,我们提出了一个扩展的三重边际排名损失,它已成功地用于描述符学习,以解释检测阶段。我们将首先回顾三重边际排名损失,然后提出我们的联合检测和描述的扩展版本。
在这里插入图片描述

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

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

相关文章

Pandas处理时间序列之光谱分析与聚类

import matplotlib.pylab as plt %matplotlib inline import numpy as np from numpy import fft import pandas as pd 一、光谱分析 • 将时间序列分解为许多正弦或余弦函数的总和 • 这些函数的系数应该具有不相关的值 • 对正弦函数进行回归 光谱分析应用场景 基于光谱的…

comprehensive_tools之添加菜单

文章目录 安装 sass sass-loader新建Layout、styles修改配置文件App.vue修改 main.cssmain.ts删除components目录下的所有文件在router文件夹中新建routers.ts修改router/index.ts修改vite.config.tsAboutView.vue、ContactView.vue、HomeView.vueAboutView.vueContactView.vue…

2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序

2014年国赛高教杯数学建模 A题 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射,12月6日抵达月球轨道。嫦娥三号在着陆准备轨道上的运行质量为2.4t,其安装在下部的主减速发动机能够产生1500N到7500N的可调节推力,…

二、PyCharm基本设置

PyCharm基本设置 前言一、设置中文汉化二、设置代码字体颜色三、设置鼠标滚轮调整字体大小四、修改 PyCharm 运行内存4.1 方式一4.1 方式二 五、显示 PyCharm 运行时内存六、设置代码模版配置的参数有: 七、PyCharm设置背景图总结 前言 为了让我们的 PyCharm 更好用…

rk3568,rk3588 , opencv 的了解。

网上的截图: 自动安装; 手动安装; 我只是 截图了一下,并没有实地的进行测试。

JAVA软开-面试经典题(7)-字符串常量池

字符串常量池 1.定义:字符串常量池(String Constant Pool),用于存放字符串常量的运行时内存结构,其底层的实现为Hashtable。 【注意】 在JDK1.6之前,字符串常量池中只会存放具体的String实例,在…

学生护眼大路灯哪种好啊?五款真正护眼的护眼大路灯分享

在贴吧、论坛、知乎等社区网站上,大家可能经常看到家长吐槽、讨论学生护眼大路灯哪种好啊这类话题。说是由于孩子们用了不适合的护眼大路灯后,出现了光线刺眼、疲劳感加重等诸多伤眼问题。作为测评师,我对这个问题非常关注,也特意…

prompt learning

prompt learning 对于CLIP(如上图所示)而言,对其prompt构造的更改就是在zero shot应用到下游任务的时候对其输入的label text进行一定的更改,比如将“A photo of a{obj}”改为“[V1][V2]…[Vn][Class]”这样可学习的V1-Vn的token…

UE5 C++: 插件编写06 | 移动文件时自动Fix up redirectors

目录 前言: 本文内容: WHY WHAT HOW 详细步骤 代码解析 1. Build.cs file中 2. QuickAssetAction.cpp中 IMPORTANT NOTES 中文解释: 使用 AssetToolsModule 来修复重定向器 使用 AssetRegistryModule 来过滤所有重定向器 使用 FMo…

功能强大且简单易用的实时算法视频监控,智慧快消开源了。

智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。 基于多年的深度…

Ngin入门套餐

快速了解Nginx 一、代理1.1 正向代理1.2 反向代理1.3 正向代理和反向代理的区别 二、Nginx负载均衡策略2.1 轮询(Round Robin)2.2 加权轮询(Weighted Round Robin)2.3 IP 哈希(IP Hash)2.4 最少连接&#x…

Unite Shanghai 2024 团结引擎专场 | 团结引擎 OpenHarmony 工程剖析

在 2024 年 7 月 24 日的 Unite Shanghai 2024 团结引擎专场演讲中,Unity中国 OpenHarmony 技术负责人刘伟贤对团结引擎导出的 OpenHarmony 工程进行了细节剖析,详细讲解 XComponent 如何与引擎结合,UI 线程和引擎线程的关联以及 ts/ets 的代…

PostgreSQL学习笔记六:模式SCHEMA

模式(Schema) PostgreSQL中的模式(Schema)是一个命名的数据库对象集合,包括表、视图、索引、数据类型、函数、存储过程和操作符等。模式的主要作用是组织和命名空间数据库对象,使得同一个数据库中可以包含…

Linux命令——ls

命令格式:命令本身选项命令的指向目标 1.ls命令作用为列出目录下的内容 #lls后的选项有[-a,-l,-h]##注意ls与选项间应用空格隔开. 如下图为(ls命令体-l选项/根文件)的命令行 # ls -a 为:列出所有文件(包括隐藏文件&…

mysql 慢查询日志slowlog

慢查询参数 slow log 输出示例 # Time: 2024-08-08T22:39:12.80425308:00 #查询结束时间戳 # UserHost: root[root] localhost [] Id: 83 # Query_time: 2.331306 Lock_time: 0.000003 Rows_sent: 9762500 Rows_examined: 6250 SET timestamp1723127950; select *…

接口性能测试,这个还真有用啊。

一、概述 性能测试按照不同视角,可以分为以下几类: a. 用户视角的性能 用户角度感受到的网站响应速度的快和慢。从用户在浏览器输入网址/打开应用,到整个页面呈现给用户的耗时。包含了用户端发送请求,服务端收到并执行请求&…

【2024版】Pycharm安装教程+汉化教程(零基础小白都能学会)

PyCharm安装教程 点击右边链接→PyCharm安装包 以专业版为例,继续进行安装(安装内容没啥太大区别,所以两版本都适用) 2.打开解压后的文件夹,右击pycharm 2024.1.4 3.点击下一步。 4.更改安装位置,点击下一步…

海外云手机:出海电商养号智能化方案

随着出海电商的迅猛发展,使用海外云手机进行养号已经成为越来越多商家的新选择。尤其在社交电商推广和短视频引流方面,海外云手机不仅提高了流量的精准度,还助力商家实现业务的快速增长。本文将探讨海外云手机养号相较于传统模式的优势&#…

机载交互详解!

一、机载交互网络 机载交互网络是指飞机内部用于传输飞行员指令、飞行数据以及系统状态信息的通信网络。它通常由多个节点(如传感器、控制器、显示器等)和连接这些节点的通信链路组成。 节点: 传感器节点:负责采集飞机的各种飞…

基于YOLOv11的车辆行人实时检测系统(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)

上百种【基于YOLOv8/v10/v11的目标检测系统】目录(pythonpyside6界面系统源码可训练的数据集也完成的训练模型)-CSDN博客 ............................................................................................ 摘要: 本文提出了…