深度学习论文:Local Feature Matching Using Deep Learning: A Survey

深度学习论文: Local Feature Matching Using Deep Learning: A Survey
Local Feature Matching Using Deep Learning: A Survey
PDF: https://arxiv.org/pdf/2401.17592

1 概述

近年来,深度学习模型的引入引发了对局部特征匹配技术的广泛探索。本文旨在全面概述局部特征匹配方法。这些方法根据是否使用检测器分为两大类。基于检测器的方法包括“先检测后描述”、联合检测与描述、“先描述后检测”以及基于图的技术。相比之下,无检测器的方法则包括基于CNN、基于Transformer和基于Patch的方法。

下图展示了局部特征匹配方法的代表性时间线
在这里插入图片描述
本文对局部特征匹配方法的划分
在这里插入图片描述

2 Detector-based Models

各种基于检测器的、用于可训练局部特征匹配的显著方法的比较。
在这里插入图片描述

2-1 Detect-then-Describe

在特征匹配中,稀疏到稀疏的匹配方法很常见。它遵循“先检测后描述”的步骤,先检测关键点位置,再提取特征描述符。这些描述符通过度量学习方法训练,使相似点在特征空间中接近,不相似点远离。为提高效率,检测器常关注图像小区域,强调低层次结构。而描述符则捕捉更大区域内更高级别的信息,为匹配提供详尽特征。

2-1-1 Fully-Supervised

局部特征匹配领域经历了显著变革,主要得益于标注数据集和深度学习技术的结合。这一变革使得从手工特征方法转向更多依赖数据的方法,改变了特征匹配的格局。卷积神经网络(CNNs)在描述符学习过程中起到了革命性作用,允许从原始局部补丁直接进行端到端学习,构建局部特征的层次结构。

  • L2Net[80]:引入了渐进式采样策略,强调描述符之间的相对距离,对中间特征图施加额外监督,推动了鲁棒描述符的发展。
  • OriNet[81]:使用CNNs为图像中的特征点分配规范方向,采用孪生网络训练方法,提出GHH激活函数,提升了特征描述符的性能。
  • HardNet[83]:简化学习过程,专注于度量学习,无需辅助损失项。
  • DOAP[84]:采用学习排序公式,优化局部特征描述符以进行最近邻匹配。
  • KSP[85]:引入子空间池化方法,利用CNNs学习不变和有区别性的描述符。
  • DeepBit[86]:提供无监督框架学习紧凑二进制描述符。
  • Bingan[87]:使用GANs学习紧凑二进制图像描述符。
  • GLAD[88]:针对个人重新识别任务,结合局部和全局人体线索。
  • Geodesc[89]:整合SfM算法的几何约束,使用几何相似性损失函数,提高3D重建任务中的描述符效果。
  • GIFT[90] 和 COLD[91]:分别利用组卷积和多级特征蒸馏网络架构,提取鲁棒的局部描述符。
  • SOSNet[92]:在HardNet基础上引入二阶相似性正则化项,提升描述符学习的性能。
  • Ebel等人[93]:基于对数极坐标采样方案,实现尺度不变性。
  • HyNet[94]:引入混合相似性度量和正则化项,优化损失函数。
  • CNDesc[95]:探索L2归一化,使用交叉归一化技术。
  • Key.Net[96]:结合手工和学习的特征,使用尺度空间表示提取关键点。
  • ALIKE[97]:提供可微关键点检测模块,优化关键点位置。
  • ZippyPoint[98]:基于KP2D,引入加速提取和匹配技术。
  • ContextDesc[100] 和 MTLDesc[101]:引入上下文感知,改进局部特征描述符。
  • AWDesc[102]:从大型复杂模型转移知识到小型简单模型,平衡准确性和速度。
  • RIFT[104] 和 SRIFT[106]:基于频域的特征描述符,改善跨模态图像匹配。
  • SemLA[107]:在图像融合任务中使用语义引导的特征匹配。

这些方法展示了局部特征匹配领域从传统手工特征到数据驱动方法的转变,以及深度学习技术如何推动这一领域的创新和发展。

2-1-2 Weakly Supervised and Others

弱监督学习为模型提供了学习鲁棒特征的机会,而无需依赖密集标注的标签,这为训练深度学习模型中最大的挑战之一提供了解决方案。已经出现了几种利用从相机姿态轻松获取的几何信息的弱监督局部特征学习方法。

  • AffNet [108] 是弱监督局部特征学习的关键进步,专注于学习局部特征的仿射形状。这种方法挑战了对几何重复性的常规强调,表明这不足以进行可靠的特征匹配,并强调了基于描述符的学习的重要性。AffNet引入了一个硬负常数损失函数,以提高仿射区域的匹配性和几何精度。这已被证明在增强仿射共变检测器的性能方面非常有效,特别是在宽基线匹配和图像检索方面。该方法强调了在开发更有效的局部特征检测器时,需要同时考虑描述符的匹配性和重复性。
  • GLAMpoints [109] 提出了一种半监督关键点检测方法,创造性地从强化学习的损失公式中汲取洞见。在这里,奖励被用来根据最终对齐的质量计算检测关键点的重要性。这种方法已被注意到对最终图像的匹配和配准质量有显著影响。
  • CAPS [110] 引入了一个弱监督学习框架,该框架利用成对图像之间的相对相机姿态来学习特征描述符。通过使用极线几何约束作为监督信号,他们设计了可微匹配层和粗到细架构,从而生成了密集描述符。
  • DISK [111] 最大化了强化学习将弱监督学习整合到端到端基于检测器的流水线中的潜力,使用策略梯度。这种将弱监督与强化学习整合的方法可以提供更鲁棒的学习信号并实现有效的优化。
  • [112] 提出了一种群组对齐方法,利用群组等变CNN的强大功能。这些CNN在提取具有辨别性的旋转不变局部描述符方面非常高效。作者使用自监督损失以获得更好的方向估计和高效的局部描述符提取。

2-2 Joint Detection and Description

联合检测与描述方法旨在解决稀疏局部特征匹配在极端环境变化下性能下降的问题,这通常受限于关键点检测器和局部描述符的局限性。传统关键点检测依赖低级信息,易受光照、天气影响。即便单独优化检测器或描述符,集成到匹配流程中也可能导致信息不一致。为此,联合方法整合了检测与描述任务,通过CNN实现深层特征映射,从而融合两任务信息,提升性能。这种方法允许检测与描述过程受图像高级特征影响,增强匹配的准确性和鲁棒性。

基于图像的描述符方法取得了显著进展,这些方法将整个图像作为输入,并利用全卷积神经网络生成密集描述符。这些方法通常将检测和描述过程结合起来,从而在两个任务中都提高了性能。

  • SuperPoint[61]:采用自监督方法同时确定关键点位置和它们的描述符。模型首先在合成形状和图像上进行训练,然后使用真实图像进行自注释过程,以提高模型对现实世界图像的相关性。
  • LF-Net[117]:受Q-learning启发,使用现有的SfM模型预测匹配图像对之间的几何关系,如相对深度和相机姿态。
  • RF-Net[118]:引入基于感受野的关键点检测器,并设计了一个通用的损失函数项,称为“邻居掩码”,以促进补丁选择的训练。
  • Reinforced SP[119]:采用强化学习原理处理关键点选择和描述匹配中的离散性。
  • R2D2[63]:结合网格峰值检测和描述符的可靠性预测,使用L2-Net架构的密集版本。
  • D2Net[62]:采用联合检测和描述方法进行稀疏特征提取,与SuperPoint不同,它在检测和描述过程中共享所有参数。
  • RoRD[120]:提出了一个双头D2Net模型,结合普通和旋转鲁棒特征对应,以解决极端视点变化。
  • HDD-Net[121]:设计了一个可交互学习的特征检测器和描述符融合网络,独立处理检测器和描述符组件,并关注学习过程中的相互作用。
  • MLIFeat[122]:设计了两个轻量级模块,用于关键点检测和描述符生成,利用多级信息融合联合检测关键点和提取描述符。
  • LLF[123]:提出使用低级特征监督关键点检测,并将其与描述符共同学习以最大化描述符匹配。
  • FeatureBooster[124]:在传统特征匹配流程中引入描述符增强阶段,建立了一个通用轻量级描述符增强框架。
  • ASLFeat[126]:使用多级特征图上的通道和空间峰值改进D2Net,引入精确检测器和不变描述符。
  • 密集预测框架:采用可变形卷积网络(DCN)减轻由低分辨率特征图提取关键点引起的限制。
  • SeLF[127]:基于ASLFeat架构,利用预训练的语义分割网络中的语义信息,学习语义感知特征映射。
  • SFD2[128]:提出从全局区域提取可靠特征,同时通过隐式嵌入高级语义来抑制不可靠区域。

这些技术展示了在不同成像条件下,通过统一模型整合检测和描述任务,如何实现更高效的学习和局部特征提取的卓越性能。

2-3 Describe-then-Detect

局部特征提取的一种常见方法是“先描述再检测”(Describe-then-Detect)流程,首先使用特征描述符描述局部图像区域,然后基于这些描述符检测关键点。

  • D2D[129] 提出了一个名为“描述到检测”(Describe-to-Detect,D2D)的关键点检测新框架,强调了特征描述阶段固有的丰富信息。该框架涉及生成大量密集特征描述符的集合,然后从这个数据集中选择关键点。D2D引入了局部深度特征图的相对和绝对显著性测量来定义关键点。
  • PoSFeat[130] 针对弱监督局部特征学习,提出了一种特别设计的解耦训练方法,用于“先描述再检测”流程。这种方法将描述网络与检测网络分开,利用相机姿态信息进行描述符学习,从而提高性能。通过一种新颖的搜索策略,描述符学习过程更加熟练地利用相机姿态信息。
  • ReDFeat[131] 使用一种相互加权策略,结合多模态特征学习的检测和描述方面。
  • SCFeat[132] 提出了一种用于弱监督局部特征学习的共享耦合桥接策略。通过共享耦合桥和交叉归一化层,框架确保了描述网络和检测网络的独立、最优训练。这种分离增强了描述符的鲁棒性和整体性能。

这些方法展示了在局部特征提取中,如何通过不同的策略和框架来提高关键点检测和描述符学习的效率和准确性。

2-4 Graph Based

在传统的特征匹配流程中,通过特征描述符的最近邻(NN)搜索建立对应关系,并根据匹配分数或相互NN验证来消除异常值。最近,基于注意力的图神经网络(GNNs)已成为获取局部特征匹配的有效手段。这些方法创建以关键点为节点的GNN,并利用自注意力层和来自Transformer的交叉注意力层在节点间交换全局视觉和几何信息。这种交换克服了仅使用局部化特征描述符所带来的挑战。最终结果是根据软分配矩阵生成匹配。
在这里插入图片描述

  • SuperGlue[69] 采用注意力图神经网络和最优传输方法来解决部分分配问题。它处理两组兴趣点及其描述符作为输入,并利用自注意力和交叉注意力在两组描述符之间交换消息。这种方法的复杂性随着关键点数量的增加而呈二次方增长,这促使后续工作进行进一步探索。
  • SGMNet[70] 在SuperGlue的基础上增加了一个种子模块,该模块仅处理一小部分匹配点作为种子。放弃了全连接图,转而使用稀疏连接图。然后设计了一个带有注意力机制的种子图神经网络来聚合信息。关键点通常只与少数几个点表现出强相关性,因此大多数关键点的邻接矩阵连接稀疏。
  • ClusterGNN[71] 利用图节点聚类算法将图中的节点划分为多个簇。这种策略应用了带有聚类的注意力GNN层来学习两组关键点及其相关描述符之间的特征匹配,从而训练子图以减少冗余信息传播。
  • MaKeGNN[134] 在稀疏注意力GNN架构中引入了双边上下文感知采样和关键点辅助上下文聚合。
  • GlueStick[135] 受SuperGlue启发,将点和线描述符纳入一个联合框架进行联合匹配,并利用点对点关系将匹配图像中的线连接起来。
  • LightGlue[136] 为了使SuperGlue适应计算复杂性,提出了根据每对图像之间的匹配难度动态改变网络深度和宽度的方法。它设计了一个轻量级置信度分类器来预测和完善状态分配。
  • DenseGAP[137] 设计了一个利用锚点作为图像间和图像内上下文的稀疏但可靠的先验的图结构。它通过有向边将这些信息传播到所有图像点。
  • HTMatch[138] 和 Paraformer[139] 研究了注意力在交互混合中的应用,并探索了在效率和效果之间取得平衡的架构。
  • ResMatch[140] 提出了特征匹配中残差注意力学习的思想,将自注意力和交叉注意力重新表述为相对位置参考和描述符相似性的学习残差函数。它旨在通过经验手段弥合可解释匹配和过滤流程与基于注意力的特征匹配网络之间的鸿沟,后者天生具有不确定性。

这些方法展示了如何通过注意力机制和图神经网络来提高局部特征匹配的效率和准确性,尤其是在处理具有挑战性的视觉匹配任务时。

3 Detector-free Models

尽管特征检测能够缩小匹配的搜索范围,但在处理极端情况(如大量视点变化或涉及无纹理区域的图像对)时,基于检测的方法仍面临挑战,即便有出色的描述符和匹配技术。与之相对,无检测器方法避免了特征检测器的使用,直接在图像的密集网格上提取视觉描述符,实现密集匹配。因此,与基于检测的方法相比,这些技术更能捕捉图像对中可重复的关键点。

3-1 CNN Based

在早期阶段,无检测匹配方法常常依赖于使用相关性或代价体来识别潜在的邻域一致性的CNN。
在这里插入图片描述

  • NCNet[64]:分析图像对应点的四维空间邻域一致性,无需全球几何模型。
  • Sparse-NCNet[65]:使用稀疏相关张量上的4D CNN,减少内存和时间消耗。
  • DualRC-Net[66]:以粗到细的方式建立图像间的密集像素级对应关系。
  • GLU-Net[67]:适用于几何匹配、语义匹配和光流的全局-局部通用网络。
  • GOCor[142]:完全可微的密集匹配模块,预测深度特征图间的全局优化匹配置信度。
  • PDCNet[68]:概率深度网络,估计图像间对应关系及其置信度。

3-2 Transformer Based

CNN的密集特征接收场在处理低纹理区域或区分具有相似特征表示的关键点时可能存在局限性。相比之下,人类在这些区域匹配时倾向于同时考虑局部和全局信息。鉴于Transformer在计算机视觉任务中的成功,研究人员已经探索将Transformer的全局接收场和长期依赖性融入局部特征匹配。出现了各种将Transformer集成到局部特征匹配的特征提取网络的方法。

  • COTR[154]:结合稀疏匹配和密集匹配的优势,使用自注意力联合学习两幅图像。
  • ECO-TR[155]:端到端模型,加速COTR,智能连接多个Transformer块。
  • LoFTR[72]:创建GNN,使用自注意力和互注意力层获取特征描述符,生成低纹理区域的密集匹配。
  • Aspanformer[73]:基于流预测的概率建模,自适应变化局部注意力范围。
  • SE2-LoFTR[156]:改进LoFTR模型,使其对平移和旋转具有等变性。

3-3 Patch Based

基于补丁的匹配方法通过匹配局部图像区域来增强点对应关系。它将图像划分为补丁,提取每个补丁的描述符向量,然后匹配这些向量以建立对应关系。该技术适应大范围位移,并在各种计算机视觉应用中很有价值。
在这里插入图片描述

  • Patch2Pix[169]:弱监督方法,学习与极端几何变换一致的对应关系。
  • AdaMatcher[170]:解决补丁级匹配中的几何不一致问题,自适应分配匹配并估计图像间比例。
  • PATS[171]:自监督学习比例差异,处理多对多关系。
  • SGAM[172]:分层特征匹配框架,先进行区域匹配,再通过几何一致性细化为点匹配。

下图展示了多个流行的深度学习模型在局部图像匹配任务中的性能表现。
在这里插入图片描述

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

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

相关文章

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式: urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

POWERBI==官网教程

地址 COVID-19 tracking sample for US state and local governments - Power BI | Microsoft Learn 已经非常全面了

JSON教程(非常详细)

参考文章来源:JSON教程(非常详细) 目录 JSON JSON 发展史 为什么要使用 JSON? JSON 的不足 存储格式 使用场景 1) 定义接口 2) 序列化 3) 生成 Token 4) 配置文件 JSON语法规则 JSON 与 JavaScript 对象的区别 JSON数…

解决Pycharm全局搜索与输入法简繁切换快捷键冲突问题

Pycharm中全局搜索快捷键Ctrl Shift F 如图所示: 微软输入法简繁切换快捷键设置: 解决办法: 关掉输入法的切换功能即可,或者更改简繁切换快捷键,毕竟简繁切换使用频率极低。

骑缝电子章怎么盖?

盖骑缝电子章通常涉及几个基本步骤,这里提供一个通用的流程,适用于大多数电子文档处理软件,尤其是那些支持电子签名和印章功能的软件,比如Adobe Acrobat Pro DC、e-章宝(易友EU3000智能盖章软件)等。请注意,具体操作可…

2024年五一数学建模C题完整解题思路代码

2024年第二十一届五一数学建模竞赛题目 C题 煤矿深部开采冲击地压危险预测 煤炭是中国的主要能源和重要的工业原料。然而,随着开采深度的增加,地应力增大,井下煤岩动力灾害风险越来越大,严重影响着煤矿的安全高效开采。在各类深…

路由器的构成

一、路由器简介 路由器是互联网中的关键设备: 连接不同的网络路由器是多个输入端口和多个输出端口的专用计算机,其任务是转发分组(转发给下一跳路由器)下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止 …

Pandas入门篇(二)-------Dataframe篇4(进阶)(Dataframe的进阶用法)(机器学习前置技术栈)

目录 概述一、复合索引(一)创建具有复合索引的 DataFrame1. 使用 set_index 方法:2.在创建 DataFrame 时直接指定索引: (二)使用复合索引进行数据选择和切片(三)重置索引&#xff08…

使用 Langchain、Langfuse、Nemo-gaurdrails、RAGAs构建 RAG 管道并进行监控和评估

原文地址:build-end-to-end-rag-pipeline-with-monitoring-and-evaluation-using-langchain-azure-ai-search 2024 年 4 月 21 日 介绍 使用现代的LLM框架,如Langchain或llamaindex,可以迅速搭建一个用于 RAG 的管道,通常只需编写大约5-6行代码。然而,若要构建一个适用于生…

【小浩算法 BST与其验证】

BST与其验证 前言我的思路思路一 中序遍历判断数组无重复递增思路二 递归边界最大值最小值的传递 我的代码测试用例1测试用例2 前言 BST是二叉树一个经典应用,我们常常将其用于数据的查找以及构建平衡二叉树等。今天我所做的题目是验证一颗二叉树是否为二叉搜索树&…

MATLAB实现果蝇算法优化BP神经网络预测分类(FOA-BP)

果蝇算法(Fruit Fly Optimization Algorithm, FFOA)是一种启发式优化算法,受果蝇觅食行为的启发。将其应用于优化BP神经网络,主要是为了寻找BP神经网络中的最佳权重和偏置值。以下是一个基本的流程: 初始化&#xff1a…

上班族小张的副业之路:下班后的水牛社赚钱故事

在快节奏的都市生活中,上班族小张每天忙碌于办公室与家庭之间,重复着朝九晚五的生活。然而,他内心总渴望寻找一种既能充实生活,又能增加收入的副业方式。直到有一天,他发现了水牛社——一个为他提供丰富副业资源和机会…

信息时代的智慧导航:高效搜索、信息筛选与信任构建的全面指南!

文章目录 一、高效搜索:快速定位目标信息的秘诀二、信息筛选:去伪存真,找到有价值的信息三、信任构建:深入了解与直接沟通《搜索之道:信息素养与终身学习的新引擎》亮点内容简介目录获取方式 随着科技的飞速发展&#…

jenkins汉化不完全问题解决

jenkins安装完Localization:Chinese(Simplified)中文语言包后,发现是出现汉化不完全或者部分汉化的情况,如下图: 解决方法: 启动命令中指定语言 -Duser.languageen_US.UTF-8 或者 -Duser.languageC.UTF-8原因分析:安…

网上招聘系统的设计与实现参考论文(论文 + 源码)

【免费】网上招聘系统的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89251636 网上招聘系统的设计与实现 摘 要 随着时代的发展,中国的互联网技术愈加成熟,已经有越来越多的社会群体开始学会使用互联网技术,整个…

STM32定时器的OC比较和PWM

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 输出比较(OC) 2. PWM 3. PWM的输出 3.1 高级定时器 3.2 通用定时器 4. PWM的输出结构 5. 代码示例 5.1 PWM.c 5.2 PWM.h 5.3 main.c 这篇文章解释了TIM定时器的内部时钟和外部时钟的使用&a…

头歌:Spark的安装与使用

第1关:Scala语言开发环境的部署 相关知识 Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件…

YOLOv9/YOLOv8算法改进【NO.128】 使用ICCV2023超轻量级且高效的动态上采样器( DySample)改进yolov8中的上采样

前 言 YOLO算法改进系列出到这,很多朋友问改进如何选择是最佳的,下面我就根据个人多年的写作发文章以及指导发文章的经验来看,按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通: 首推…

SpringMVC进阶(过滤器解决中文乱码,处理json以及文件上传下载)

文章目录 1.中文乱码处理1.引出问题1.恢复原来取消掉的属性绑定2.启动服务器,引出问题 2.自定义中文乱码过滤器1.MyCharacterFilter.java2.web.xml配置过滤器(这个解决乱码的过滤器放到最前面)3.结果展示 3.使用Spring过滤器处理(…

创建codereview

创建codereview流程 一、开始创建二、选择分支三、添加细节 一、开始创建 点击codereivew按钮 为新的codereview选择一个工程后点击create review 二、选择分支 选择目标分支和要比对的分支,比如develop 三、添加细节 Add branch后,可以继续Edit …