找到
1
篇与
视觉定位
相关的结果
-
ICCV 2025 论文分享《RIPE: Reinforcement Learning on Unlabeled Image Pairs for Robust Keypoint Extraction》 本文介绍了一种创新的弱监督关键点提取框架 RIPE,它利用强化学习技术,仅需图像对的二元场景匹配标签(是否为同一场景)即可完成训练,无需依赖精确的位姿、深度信息或复杂的人工数据增强。RIPE 将关键点选择建模为强化学习问题,通过概率性采样关键点、多尺度描述符生成以及基于几何验证的奖励机制,有效提升了模型在剧烈光照、天气变化等真实场景下的鲁棒性。实验表明,RIPE 在 MegaDepth、HPatches、Aachen Day-Night 和 Boreas 等多个基准测试中取得了与现有全监督方法相当甚至更优的性能,显著推动了弱监督关键点提取技术的发展。 开源地址: RIPE - Github 论文阅读:RIPE: Reinforcement Learning on Unlabeled Image Pairs for Robust Keypoint Extraction 一、 解决的问题 传统的关键点检测方法(如 SIFT 、ORB )依赖手工设计的特征,在面对剧烈的光照变化、天气变化或长时间跨度的图像匹配任务时,性能会显著下降 。为了克服这些限制,研究人员转向了基于深度学习的方法。 然而,当前主流(SOTA)的深度学习方法大多存在以下依赖问题: 依赖强大的监督信息: 许多方法如 DeDoDe、DISK 和 ALIKED 依赖于具有精确位姿和深度信息的数据集(如 MegaDepth )。这些数据集的构建过程复杂,通常需要通过运动恢复结构(SfM)技术生成,而SfM本身又依赖于SIFT等传统关键点 。这限制了训练数据的规模和多样性。 依赖人工数据增强: 另一类方法如 SuperPoint 和 SiLK 通过对图像进行人工变换(如单应性变换)来生成训练数据 。这种方式难以完全模拟真实世界中复杂的光照、天气和季节变化,导致模型在真实场景中的泛化能力不足 。 RIPE 旨在解决的核心问题是: 如何在弱监督条件下,仅利用“是否为同一场景”的二元标签,训练出一个在各种真实世界条件下都表现鲁棒的关键点检测与描述模型,从而摆脱对精确位姿、深度信息或复杂人工数据增强的依赖 。 二、 使用的方法 整体图片 关键点提取图片 为了解决关键点选择过程不可微的问题,并适应弱监督的训练方式,RIPE 创新地将关键点提取任务构建为一个强化学习(RL)问题 。其核心思想是,将网络看作一个“智能体”,它“学习”在一幅图像(状态)中选择最佳的关键点位置(动作),并通过匹配结果(奖励)来优化其选择策略。该方法主要包含以下几个关键部分: (1)基于强化学习的概率性关键点选择: 模型(一个Encoder-Decoder网络)为输入图像生成一个热力图(heatmap)。 热力图被划分为网格单元(grid cells),在每个单元格内,模型会基于logit值概率性地采样一个关键点位置 。 同时,模型会学习一个“接受概率”,用于判断该单元格是否适合提取关键点,从而可以主动放弃天空、过曝等区域 。 这个过程在代码 ripe/models/ripe.py 中的 KeypointSampler 类中实现。 (2)基于多尺度特征的描述符生成 为了让描述符更具辨别力,RIPE不只使用编码器最后一层的特征,而是采用超列(Hyper-column)技术 。 从编码器的多个中间层提取特征,并将这些不同尺度的特征在关键点位置进行插值和拼接,形成一个包含丰富上下文信息的描述符。 这部分在代码 ripe/models/upsampler/hypercolumn_features.py 中实现。 (3)基于几何约束的奖励机制 这是整个强化学习框架的核心。奖励(Reward)直接来源于图像对的匹配结果。 对于一对图像,模型提取的关键点和描述符会先进行相互最近邻匹配(Mutual Nearest Neighbor, MNN) 。 然后,通过 RANSAC 算法结合基本矩阵(Fundamental Matrix)估计来滤除不符合对极几何约束的匹配点 。 最终的奖励信号就是通过几何验证的内点(inliers)数量 。 对于正样本对(同一场景),奖励为正,鼓励网络找到更多可匹配且符合几何一致性的关键点 。对于负样本对(不同场景),奖励为负(惩罚),抑制网络在不同场景间找到错误的匹配 。 这个奖励计算过程虽然不可微,但在强化学习中仅用作一个标量信号,通过 REINFORCE 算法 更新网络权重。 (4)辅助性的描述符损失函数 为了进一步增强描述符的判别能力,RIPE还引入了一个辅助的对比损失函数(Descriptor Loss)。 对于正样本对,它会拉近匹配内点描述符之间的距离,同时推远它们与其他描述符的距离 。 对于负样本对,它会推远所有错误匹配的描述符之间的距离 。 该损失函数的实现在 ripe/losses/contrastive_loss.py 中。 三、具体实现的流程 mgd5yoqf.png图片 (1)网络结构 编码器(Encoder): 使用在 ImageNet 上预训练的 VGG-19 网络 。代码位于ripe/models/backbones/vgg.py。 解码器(Decoder): 借鉴了 DeDoDe 的设计,使用了深度可分离卷积的精炼模块(ConvRefiner)来从编码器特征生成热力图 。代码位于ripe/models/backbones/vgg_utils.py。 整体模型: 将上述模块组合在 ripe/models/ripe.py 的 RIPE 类中。 (2)数据处理与训练流程 (ripe/train.py) 1)数据加载: 训练数据是成对的图像,每对带有一个二元标签(1表示同一场景,-1表示不同场景)。代码中通过DatasetCombinator (ripe/data/datasets/dataset_combinator.py) 可以灵活地组合来自不同数据集(如 MegaDepth、Tokyo 24/7)的数据。 2)前向传播:一对图像 (I, I') 分别输入到 RIPE 网络中,得到各自的热力图、粗描述符等输出 。通过KeypointSampler 概率性地采样关键点位置 kpts1, kpts2 及其对数概率 logprobs1, logprobs2 。使用 HyperColumnFeatures 在采样出的关键点位置提取多尺度描述符 desc1, desc2 。 3)匹配与奖励计算:使用 Kornia 库的DescriptorMatcher 进行MNN匹配,得到初始匹配对 。使用 PoseLib 库进行鲁棒的基本矩阵估计(RANSAC),筛选出内点(inliers)。这部分由 ripe/matcher/concurrent_matcher.py 调度。根据内点数量和样本对的标签(正/负),计算出奖励矩阵 dense_rewards。该逻辑在 ripe/utils/utils.py 的 get_rewards 函数中。 4)损失计算与反向传播: 策略损失(Policy Loss): 将奖励 dense_rewards 与关键点的联合对数概率 dense_logprobs 相乘,这是 REINFORCE 算法的核心。目标是最大化奖励期望 。 描述符损失(Descriptor Loss): 计算辅助的对比损失 loss_desc_stack。 正则化项: 包含一个小的惩罚项 loss_kp_stack,防止网络生成概率过低的关键点 。 最终损失: L = L_policy + L_kp + ψ * L_desc ,其中 ψ 是平衡权重的超参数 。 通过 Fabric(PyTorch Lightning 的一个库)进行反向传播和梯度更新。 四、 最终的效果 RIPE 在多个基准测试中取得了具有竞争力的结果,证明了其弱监督学习框架的有效性。 标准基准测试: MegaDepth-1500(相对位姿估计): 在这个广泛使用的基准上,RIPE 的性能(以AUC@角度误差度量)与当前顶尖的稀疏特征方法 ALIKED 非常接近,并且优于同样基于VGG的DeDoDe 。值得注意的是,RIPE 是唯一一个在不使用位姿/深度或人工单应性变换监督的情况下达到该性能水平的方法 。 HPatches(单应性估计): 在此数据集上,RIPE 的表现同样与 SOTA 方法 SiLK 和 DeDoDe 相当 。 真实世界挑战场景: Aachen Day-Night(昼夜户外定位): 这是 RIPE 方法优势最突出的地方。当仅使用 MegaDepth 数据集训练时,RIPE 的夜间定位性能已明显优于 DeDoDe 。当在训练数据中混入 20% 的 Tokyo 24/7 数据集(一个包含昼夜变化的图像对,但没有位姿信息)后,RIPE 的夜间定位精度获得了大幅提升 。这充分证明了 RIPE 能够有效利用多样化的弱监督数据来增强模型的鲁棒性 。 Boreas(恶劣天气户外定位): 在包含雨、雪、黑夜等恶劣天气条件的 Boreas 数据集上,RIPE 同样展现了其竞争力。通过在训练中加入 ACDC 数据集(一个包含恶劣天气图像的数据集),RIPE 的性能也得到了提升 。 总结来说,RIPE 最大的亮点在于它简化了数据依赖,仅需简单的二元标签就能进行有效训练。这使得模型可以利用更多样、更贴近真实世界的训练数据,从而在光照和天气变化剧烈的挑战性场景中展现出更强的泛化能力和鲁棒性 。尽管其监督信号远弱于其他方法,但最终性能却能与SOTA方法相媲美,标志着关键点提取领域的一个重要进步 。 真实世界实验图片