天天看点

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

作者:3D视觉工坊

来源:3D视觉工坊

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

获取同一场景的多个图像中匹配的像素是计算机视觉中的一个基础任务,它是大多数运动结构管线的一个组成部分。经典上,找到两个图像之间的匹配关系被分为三个子任务:关键点检测、描述和匹配。关键点是一种局部图像特征,足够明显以在强烈的视角和照明变化下被识别。然而,精确地定义这意味着什么(例如,应允许多强的变化?),作者认为社区仍然不太理解关键点应该是什么。因此,了解关键点检测器的训练过程并彻底调查哪些组件重要是很有意义的。

在这篇文章中,作者进行了上述分析,对 DeDoDe 检测器的训练管线进行了几个简单修改,显著提高了其性能。

下面一起来阅读一下这项工作~

标题:DeDoDe v2: Analyzing and Improving the DeDoDe Keypoint Detector

作者:Johan Edstedt, Georg Bökman, Zhenjun Zhao

机构:林雪平大学、查尔莫斯技术大学、香港中文大学、德克萨斯A&M大学

来源:Sixth Workshop on Image Matching - CVPRW 2024

原文链接:https://arxiv.org/abs/2404.08928

代码链接:https://github.com/Parskatt/DeDoDe

在本文中,我们分析并改进了最近提出的DeDoDe关键点检测器。我们的分析集中在一些关键问题上。首先,我们发现DeDoDe关键点倾向于聚集在一起,我们通过在训练期间对检测器的目标分布执行非极大值抑制来解决这个问题。其次,我们解决了与数据增强相关的问题。特别是,DeDoDe检测器对大幅度旋转敏感。我们通过包括90度旋转以及水平翻转来解决这个问题。最后,DeDoDe检测器的解耦特性使得评估下游用途变得棘手。我们通过将关键点与预训练的密集匹配器(RoMa)进行匹配,并评估双视角姿态估计来解决这个问题。我们发现原始的长时间训练对性能有害,因此提出了一个更短的训练计划。我们将所有这些改进集成到我们提出的检测器DeDoDe v2中,并在MegaDepth-1500和IMC2022基准测试中与原始的DeDoDe描述符进行评估。我们提出的检测器显著提高了姿态估计结果,尤其是在IMC2022挑战中,从75.9提高到78.3 mAA。

先看一下之前工作的问题:DeDoDe检测目标没有明确地在检测中强制稀疏性。这就产生了网络在图像中特别显著的区域产生所谓的检测簇的副作用。这在下游任务中是有问题的,因为这意味着必须对许多关键点进行采样,以确保可重复性。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

对大旋转的敏感性。 原始的DeDoDe检测器对较大的旋转比较敏感,DeDoDev2在输入图像旋转(右)的情况下产生更一致的关键点。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

DeDoDe (左) vs DeDodev2 (右)。这篇文章提出了DeDoDe v2,一种改进的关键点检测器,该检测器遵循不描述方法,即检测器是描述子不可知的。DeDoDe在不同的区域中过度检测关键点,这反过来又会导致它在其他区域被低估,从而导致性能下降。作者对DeDoDe检测器进行了改进,为整个场景生成了多样但可重复的关键点。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

(1)引入了一系列训练增强,包括非最大值抑制和改进的数据增强。

(2)将DeDoDe检测器的训练时间缩短到单个 A100 GPU 上的 20 分钟,同时提高了性能。

(3)详细说明了大量经过测试但未成功的修改。

作者分析了DeDoDe检测器的问题,并提出了一系列改进方法来解决这些问题。

5.1 防止聚类

原始的DeDoDe检测器倾向于检测聚类,降低了关键点的多样性和覆盖范围。然而,在测试时简单地强制执行NMS并不起作用。

训练期间的NMS。 受到例如R2D2中的peakiness loss和ALIKED等检测器中内置的soft-NMS的启发,提出了一个训练期间的NMS目标。为此,在对后验检测分布执行h×h NMS后进行top-k。也就是说,在将检测先验与检测器的logit预测结合之后,另外强制要求分数成为局部最大值以设置为目标。

5.2 训练时间

原始的DeDoDe检测器在MegaDepth数据集上使用了800,000个图像对进行训练,尽管在训练过程中关键点的可重复性在增加,甚至在测试集上也是如此,但这并不能转化为两视图相对姿态估计的下游目标。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

然而,如何衡量这个下游目标并不是完全明显,因为检测器与描述符是分离的。因此,作者使用RoMa来匹配关键点以估计下游的可用性。当以这种方式评估原始的DeDoDe检测器时,它很快就会过度拟合重复性指标,并且在训练过程中姿态估计的性能会下降。为了确保检测器没有过度拟合场景,作者进行了一个实验,其中将测试场景包含在训练数据中。也许令人惊讶的是,作者并没有看到性能上的主要差异,而且随着时间的推移,性能也呈现出类似的下降趋势。这表明检测目标和姿态估计之间存在更基本的问题,这需要留待未来研究。

无论原因是什么,当选择大幅减少检测器的训练时间,将其设置为10,000个图像对,这显著提高了性能。此外,训练时间的减少还有一个额外的好处,就是需要的计算量明显减少,DeDoDe v2的训练在单个A100 GPU上花费约20分钟。

5.3 小改进

作者讨论了一些对检测器的训练进行的小改变和改进。

Top-k计算。 DeDoDe在一个minibatch上计算top-k而不是每对。虽然这放宽了每对必须包含一定数量匹配关键点的假设,但是当困难的对可能会收到非常少的关键点时,这是有问题的。作者将这个计算改为在对之间独立进行。

数据增强。 使用{0, 90, 180, 270}中的随机旋转来训练检测器,另外包含随机水平翻转,这使得检测器对大旋转更加鲁棒。

5.4. 没有效果的改变

在这里,作者描述了一组不同的假设,这些假设对检测器的性能产生了负面或可忽略的影响。

推断中的多样性。 DeDoDe在推断过程中具有由参数α控制的局部密度估计。在DeDoDe中,α = 1/2。作者尝试将其设置为其他值∈[0.5, 1],发现在姿态估计结果中没有显著的改进。

检测先验的平滑性。 在DeDoDe中,检测先验的平滑性假设为标准差σ = 0.5的正态分布。作者尝试将其设置为其他值(更低和更高),发现较低和较高的值都表现稍差。

减弱先验强度。 在DeDoDe中,先验强度设置为50,这实际上意味着先验检测将始终位于top-k目标中。作者发现随着训练的进行,降低强度会显著提高关键点的可重复性。然而,它同时会显著降低下游姿态的AUC。作者认为这是由于网络忽略了一些不太重复但对精确姿态估计很重要的关键点。

更改top-k中的k。 尝试设置不同的k ∈[512, 2048],发现虽然性能上有轻微差异,但DeDoDe中k = 1024的设置似乎是最佳的。

更改正则化器。 DeDoDe使用的是覆盖率正则化器,作者调查了改变σ以及去除正则化器,以及将其替换为均匀正则化器,发现这些改变要么对性能几乎没有影响,要么产生负面影响。

学习率。 DeDoDe中的默认学习率为解码器为10−4,更改这些对性能的影响微乎其微。

训练分辨率。 由于DeDoDe在512×512分辨率上进行训练,并在784×784分辨率上进行测试,作者认为在训练过程中使用随机裁剪策略(其中裁剪来自784×784图像)会减轻可能存在的训练-测试分辨率差异。然而,结果表明对性能影响不大。

推断期间的NMS。 即使在训练时使用了NMS,当后期应用NMS时,检测器仍会产生较差的检测结果。然而,性能下降的幅度明显低于基线模型。

定性比较DISK (左)、DeDoDe (中)、DeDoDev2 (右)。 DISK产生多样的,但非区分性的关键点。相比之下,DeDoDe产生判别性的kepoint,但倾向于聚类。DeDoDev2综合了这两种方法的优点,产生了多样化和区分性的关键点。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

MegaDepth-1500 相对姿态: 与 DeDoDe 一样,作者调整了方法以获取首选数量的关键点,并让 SiLK和 DeDoDe检测多达 30,000 个关键点。DeDoDeV2在所有进行的基准测试中都显示出明显的增益。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

还使用 RoMa 匹配器使用 8,000 个关键点与原始的 DeDoDe 检测器进行评估,同样观察到性能明显提升。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

图像匹配挑战赛 2022: 与 DeDoDe 基线相比,DeDoDeV2的改进为 +2.5 mAA。

远超SiLK & SuperPoint!最强特征点DeDoDe v2震撼来袭!

这篇文章提出了DeDoDe v2,一个改进的关键点检测器。作者分析了原始检测器的问题,并提出了几种改进方法来解决这些问题。DeDoDe v2在具有挑战性的IMC2022和MegaDepth-1500相对姿态估计基准上创造了新的技术水平。

局限性。作者经验性地分析并改进了DeDoDe检测器。然而,仍然缺乏对一些潜在问题的理论理解。特别是,制定一个不与相对姿态矛盾的目标是未来的研究兴趣。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊交流群

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉、大模型、工业3D视觉、SLAM、自动驾驶、三维重建、无人机等方向,细分群包括:

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型:NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群

添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

3D视觉工坊知识星球

3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等。