其实SAM是个好老师 | SAMFeat教你如何结合自己的模型和SAM设计一个更好的模型

AI人工智能初学者

共 23953字,需浏览 48分钟

 · 2023-10-30

点击下方卡片,关注「集智书童」公众号

本文中,局部特征检测和描述在许多计算机视觉任务中发挥着重要作用,这些任务旨在检测和描述“任何场景”和“任何下游任务”的关键点。数据驱动的局部特征学习方法需要依赖像素级的对应关系进行训练,这在大规模情况下很难获得,因此限制了性能的进一步提升。


在本文中提出了SAMFeat,引入SAM 作为教师模型,SAM经过在1100万张图像上的训练,用于指导局部特征学习,从而在有限的数据集上激发更高性能。


为了实现这一目标,首先,作者构建了一个辅助任务,称为像素语义关系蒸馏(PSRD),它将由SAM编码器学习的类别无关语义信息与局部特征学习网络蒸馏在一起,以通过语义差异性来提高局部特征描述。其次,作者开发了一种名为基于语义分组的弱监督对比学习(WSC)的技术,它利用从SAM导出的语义分组作为弱监督信号,以优化局部描述符的度量空间。第三,作者设计了一种边缘关注引导(EAG),通过SAM引导网络更多地关注边缘区域,从而进一步提高局部特征检测和描述的准确性。


SAMFeat在各种任务上的表现,如在HPatches上的图像匹配和在Aachen Day-Night上的长期视觉定位,展示了其在以前的局部特征上的优越性。


代码:https://github.com/vignywang/SAMFeat

1. 简介

局部特征检测和描述是计算机视觉的基本任务,广泛应用于图像匹配、运动结构(SfM)、同时定位和地图构建(SLAM)、视觉定位和图像检索等任务中。传统的方法,如SIFT和ORB基于手工制定的启发式规则,无法处理剧烈的光照和视角变化。

在深度学习的浪潮下,最近出现了数据驱动的局部特征学习方法,取得了出色的性能。这些方法要求基于完全准确和密集的GT对应关系训练局部描述符,但这种数据难以收集。此外,由于需要描述“任何情景”的局部特征,因此不可能用有限的数据集涵盖所有情景。

最近,基本模型已经在人工智能领域产生了革命性的影响。这些在十亿级数据集上训练的模型在各种下游任务中具有强大的零样本泛化能力。在本研究中,作者提倡将SAM整合到局部特征学习领域,SAM能够在“任何场景”中分割“任何物体”,从而增强了局部特征学习的鲁棒性,并丰富了可用于局部特征学习的监督信号,包括高级别的类别无关语义信息和详细的Low-Level边缘结构信息。

近年来,一些研究尝试将图像的像素级语义(即语义分割)引入基于局部特征学习的视觉定位。一些方法利用语义信息来过滤关键点和优化匹配,而其他研究则利用语义信息来指导关键点检测的学习,并通过特征级蒸馏来改善特定视觉定位环境中局部描述符的性能。

然而,基于视觉定位流程设计的这些方法很难推广到常见的特征匹配任务,如图1(a)所示。一方面,语义分割只能为少数几个类别(例如汽车、街道、人)分配语义,这很难推广到通用情境。另一方面,语义分割的语义信息是粗粒度的,例如,对于汽车,车轮和窗户的像素被赋予相同的标签。这对于挖掘局部特征的唯一辨别性属性是有害的。

最近的SAM是一个在1100万张图像上训练的视觉基本模型,可以基于提示输入分割任何目标。与语义分割模型相比,SAM具有3个可以用于推动局部特征学习的独特特性:

  1. SAM在大量数据上进行了训练,因此可以分割任何目标,并且可以适应任何场景,而不仅仅限于街景。

  2. SAM可以获得细粒度的组件级语义分割结果,从而允许更准确地建模像素之间的语义关系。此外,SAM可以生成细粒度的类别无关语义Mask,可以用作像素的语义分组,以指导局部特征学习。

  3. SAM可以检测更详细的边缘,而边缘区域往往更容易出现关键点,包含更多的区别信息。

在作者的SAMFeat中,作者提出了三种特殊策略,以利用SAM的这三种特性来提高局部特征学习的性能。

  • 首先,作者构建了一个像素语义关系蒸馏(PSRD)的辅助任务,用于将SAM编码器学习的类别无关像素语义关系蒸馏到局部特征学习网络中,从而使用语义差异性来改善局部特征描述。

  • 其次,作者开发了一种基于语义分组的弱监督对比学习技术(WSC),使用SAM派生的语义分组作为弱监督信号来优化局部描述符的度量空间。

  • 第三,作者设计了一种边缘关注引导(EAG),通过SAM引导网络更多地关注边缘区域,从而进一步提高局部特征的定位准确性和描述能力。

由于SAM模型仅在训练期间用作教师模型,因此作者的SAMFeat可以在推断期间高效地提取局部特征,而不会增加SAM编码器的计算消耗。

2 相关工作

局部特征及更多

早期的手工制作局部特征已经研究了几十年。在深度学习的浪潮中,许多数据驱动的可学习局部特征已经被提出,以改进基于不同关注点的检测器、描述符以及端到端的检测和描述。

除了局部特征外,一些可学习的高级匹配器最近已被开发,以取代传统的最近邻匹配器(NN)以获得更准确的匹配结果。稀疏匹配器,如SuperGlue和LightGlue,采用现成的局部特征作为输入,使用GNN或Transformer预测匹配,但它们的时间复杂度随关键点数量呈二次增长。

密集匹配器基于相关体积,端到端计算像素之间的对应关系,但它们消耗更多内存和空间,而不如稀疏匹配器高效。作者的工作旨在增强端到端通用局部特征学习方法的效率和性能。作者的目标是在各种下游任务中仅使用最近邻匹配实现与高级匹配器可比的性能。这在需要高运行效率的资源受限场景中尤为关键。

SAM模型

SAM模型在打破分段界限方面取得了显著进展,极大地推动了计算机视觉基础模型的发展。SAM在NLP领域引入提示学习技术,以灵活实现模型构建,并通过交互式注释构建图像引擎,在实例分析、边缘检测、目标提议和文本到Mask等技术方面表现更好。

SAM专门设计用于解决在复杂视觉场景中分割各种目标的挑战。与传统方法专注于分割特定目标类别不同,SAM的主要目标是分割任何目标,为多样化和具有挑战性的场景提供了通用解决方案。许多工作现在以SAM为基础,用于医学成像、视频、数据注释等下游视觉任务。

与它们不同,作者主张将SAM应用于局部特征学习。据作者所知,作者的工作是首次将SAM应用于独立于分割的视觉任务。由于局部特征学习对高运行效率的要求很高,因此无法直接将SAM纳入流程,因此作者将SAM视为教师模型,以启动局部特征的学习,因此只在训练阶段使用SAM。

局部特征学习中的语义

在作者的工作之前,语义只被引入到视觉定位任务中,以减轻处理严重图像变化时Low-Level局部特征的限制。一些早期工作将语义分割纳入视觉定位流程中,用于过滤匹配点,改善2D-3D匹配和估计相机位置。

一些最近的工作已尝试将语义引入局部特征学习,以提高视觉定位的性能。基于高级语义不受光度和几何变化的影响的假设,它们通过从语义分割网络中蒸馏特征或输出来增强语义类别上的局部描述符的稳健性。

然而,语义分割任务只能分割特定类别(例如,与视觉定位相关的街景),阻止这些方法泛化到开放世界场景,并使它们仅在视觉定位任务上有效。相比之下,作者引入SAM来分割任何场景作为蒸馏目标,并提出了适用于局部特征学习的类别无关像素语义关系蒸馏(PSRD)方案,以使局部特征学习在视觉定位之外的场景中享有语义信息。

此外,作者还提出了基于语义分组的弱监督对比学习(WSC)和边缘关注引导(EAG)等技术,以进一步激发基于SAM的局部特征性能。基于上述改进,作者的SAMFeat使局部特征学习能够更充分地利用语义信息,并在更广泛的场景中受益。

3 方法论

3.1 初步

SAM模型(SAM)

SAM是一个新发布的视觉基础模型,用于分割任何目标,并具有强大的One-Shot泛化能力,因为它是使用1100万张图像和110亿个Mask进行训练的。由于其规模,本研究采用模型蒸馏。作者冻结SAM的权重,并使用其输出作为伪GT,以引导更准确和稳健的局部特征学习。

Baseline

作者的SAMFeat以经典的SuperPoint及其最新的变种MTLDesc作为Baseline,网络结构的详细信息如图2所示。具体来说,作者使用一个轻量级的八层VGG风格的Backbone网络来提取特征图。

对于尺寸为 的图像 ,作者将多尺度特征图输出( )传递到关键点检测Head(det head)、边缘检测Head(edge head)、注意力Head(att head)和描述符Head(des head)。

此外,作者添加了一个蒸馏Head,以提取SAM的语义表示,以增强 特征图。每个Head包括一个轻量级的3×3卷积层。作者采用了SuperPoint的假标记关键点的范例来训练关键点检测,并使用度量学习来优化,特别是作者采用了最近的MTLDesc提出的基于注意力的描述符优化范例(即图2中的 )进行局部描述符学习。

3.2 SAM的贡献

如图2所示,作者将图像 输入到冻结参数的SAM中,然后简单处理以产生以下3个输出,以引导局部特征学习。

像素级表示关系:

SAM从1100万张图像中训练的图像编码器用于提取分配语义标签的图像表示。编码器输出的表示暗示了语义对应关系,即具有相同语义目标的像素彼此更接近。

为了消除特定语义类别对泛化性的影响,作者采用表示之间的关系作为蒸馏目标。SAM的编码器输出 ,其中 是特征图的通道数。像素级表示关系可以定义为,其中

语义分组:

作者使用SAM的自动生成Mask功能来获取细粒度的语义分组。具体来说,它通过在图像上的网格中采样单点输入提示,并且SAM可以从每个点预测多个Mask。然后,使用非极大值抑制来过滤Mask并去重。输出的语义分组可以定义为 ,其中N是语义分组的数量。需要注意的是,语义分组与语义分割不同,因为每个分组不对应于特定的语义类别(例如建筑物、汽车和人)。

边缘图:

二进制边缘图 直接从SAM的分割结果导出,突出显示了细粒度的目标边界。

3.2.1 SAMFeat

由于这一基础模型SAM的贡献,作者能够将SAM视为一个知识渊博的教师,具有中间产品和输出来引导局部特征的学习。

  • 首先,作者采用像素语义关系蒸馏(PSRD)将SAM编码器中的类别无关语义关系蒸馏到SAMFeat中,从而通过引入语义差异性来增强局部特征的表达能力。

  • 其次,作者利用SAM输出的高级语义分组构建基于语义分组的弱监督对比学习(WCS),为局部描述符学习提供廉价而有价值的监督。

  • 第三,作者设计了边缘关注引导(EAG)来利用SAM发现的Low-Level边缘结构,引导网络更加关注这些边缘区域,在局部特征检测和描述过程中更有可能被检测为关键点,并丰富了区别信息。

像素语义关系蒸馏

SAM的目标是根据提示获取相应的语义Mask,因此SAM的编码器输出表示富含语义差异性信息。与语义分割不同,SAM不将像素投影到特定的语义类别,因此作者通过利用像素之间的相对关系(即,同一目标的像素表示彼此更接近)来蒸馏编码器中包含的语义。

具体来说, 层导出,然后导入到蒸馏Head以获得 。根据第3.2节中报告的操作,可以定义 的语义关系矩阵为 。如图3所示,作者通过施加L1损失来蒸馏语义关系矩阵,以获得 的语义差异性。 分别是学生(SAMFeat)和教师(SAM)关系矩阵。像素语义关系蒸馏损失 可以定义为:

其中N是矩阵元素的数量,即。由于PSRD是类别不可知的,因此可以将局部特征蒸馏的语义信息推广到通用场景。

基于语义分组的弱监督对比学习

如图4所示,作者使用从SAM导出的语义分组构建了基于语义分组的弱监督对比学习,以优化局部特征的描述空间。

作者的动机非常直观:即,属于同一语义分组的像素在描述空间中应该更接近,而不同分组的像素在描述空间中应该保持距离。

然而,由于属于同一分组的两个像素并不意味着它们的描述符是最接近的一对,强制它们对齐将损害同一分组内像素的区分特性。因此,语义分组只能提供弱监督约束,作者通过在优化中设置边界来维护语义分组内的区分性。给定采样点集 ,可以定义正样本平均距离 如下:

其中 表示计算与两个采样点 对应的局部描述符之间的欧氏距离。 表示索引的语义分组类别。 表示正样本数量,注意由于对于每个图像 不一致,作者采取平均值来表示正样本距离。同样,可以定义负样本平均距离 如下:

其中 表示负样本数量。因此,最终的 损失可以定义为:

其中 是用于保护语义分组内的区分性的边界参数, 表示温度系数。

边缘关注引导

边缘区域比普通区域更值得网络的关注。一方面,边缘区域中的角点和边缘点更有可能被检测为关键点。另一方面,边缘区域包含有关几何结构的丰富信息,因此有助于局部描述符的区分特性。

为了使网络更好地捕捉边缘区域的细节并提高描述符的稳健性,作者提出了边缘关注引导模块,可以引导网络关注边缘区域。如图2所示,作者首先设置一个边缘Head来预测边缘图 ,并使用SAM的边缘图输出进行监督。边缘损失 表示为

然后将预测的边缘图 融入局部特征检测和描述流程中,以引导网络启动。

1) 局部特征检测:

为了帮助SAMFeat中的特征检测,从边缘Head获得的预测边缘图 与中级编码特征表示 进行像素级点积,如图2所示。将这个乘积添加到 以进行残差操作,以获得增强边缘的特征 。这个特征将用于生成一个Heatmap,通过检测Head提供更好的局部特征检测。

2) 局部特征描述:

作者通过预测的边缘图过滤边缘特征,并通过自注意力机制建模边缘区域的特征,以鼓励网络捕获边缘区域的信息。具体而言,来自边缘Head的预测边缘图 和从Backbone网中提取的多尺度特征图 被馈送到边缘关注引导模块中。

如图5所示,作者首先通过对 应用像素级点积来融合它们,以获得面向边缘的特征图 。然后,作者对给定的 应用不同的卷积变换,分别得到Query q、Key k和Value v。然后,作者通过Query和Key之间的点积计算注意力分数。

接下来,作者使用注意力分数上的 函数来获取注意力权重,用于计算具有值特征向量的边缘增强特征图。最后,边缘增强特征图和 相加以获得输出特征图

总损失

总损失L可以定义为:

在第3.2节中定义,而 是用于监督关键点检测的交叉熵损失, 是用于优化局部描述符的MTLDesc中的注意力加权三元损失。

未分配各个损失的权重:每个损失共享相等的权重。这种独立于超参数的特性再次显示了SAMFeat的稳健性。

4 实验

实施

为了生成具有密集像素级对应关系的训练数据,作者依赖于MegaDepth数据集,这是一个丰富的资源,包含来自196个不同场景的具有已知位姿和深度信息的图像对。具体来说,作者使用了MTLDesc的发行的MegaDepth图像和对应的GT值进行训练。

在作者的实验中,精心配置了参数以建立一致且高效的训练过程。超参数设置如下。学习率为0.001,可以实现渐进的参数更新,而权重衰减为0.0001有助于控制模型复杂性并减轻过拟合。使用批量大小为14以在计算效率和收敛之间取得平衡。M和T设置为0.07和5。训练历时30个Epoch,以确保全面接触数据,总训练时间为3.5小时。

图像匹配

作者在最流行的特征学习匹配基准HPatches上评估作者方法的性能。HPatches数据集由来自各种场景和目标的116个图像块序列组成。每个图像块与GT标注相关联,包括关键点位置、描述符和对应的单应性。作者遵循与D2-Net中相同的评估协议,排除了8个不可靠的场景。

为了确保公平比较,作者通过最近邻匹配对每种方法提取的特征进行对齐。如果估计的投影误差低于预定的匹配阈值,则将匹配视为准确。阈值从1到10像素系统地变化,记录了所有图像对的平均匹配准确度(MMA),表示正确匹配与潜在匹配之比。随后,根据MMA在5px处计算AUC。

图6中可视化了SAMFeat与HPatches图像匹配中其他先进方法之间的比较。在每个阈值下,MMA @3与其他先进方法的比较列在表1中。与2023年顶级会议上最新的特征学习模型相比,SAMFeat在MMA @3方面表现最出色。

视觉定位

为了进一步验证作者的方法在处理复杂任务时的有效性,作者评估了其在视觉定位领域的性能。这个任务涉及使用图像序列估计场景中相机的位置,作为局部特征在长期本地化场景中的性能评估基准,而不需要专用的本地化流程。作者利用Aachen Day-Night v1.1数据集展示了对视觉定位任务的影响。

为确保评估的公平性,所有方法都经过官方评估服务器的客观比较。通过视觉定位基准评估,采用基于COMLAP的预定视觉定位框架。作者统计了在三个不同的误差阈值下成功定位的图像数量,分别为 ,表示允许的最大位置误差,以米和度为单位。作者使用最近邻匹配器进行公正和公平的比较。

参考表2,作者将当前的最新方法分为两类:

  • G包含设计用于一般特征学习任务的方法

  • L包含专门设计、调整和测试用于定位任务的方法

它们通常在特定的本地化场景之外表现不佳,如表1所示。SAMFeat在所有一般方法中取得了最佳性能,同时在专门用于视觉任务的方法中也表现出竞争性的性能。

消融研究

表3展示了作者网络中各组件的有效性,逐渐引入了基于像素的语义关系蒸馏(PSRD)、基于语义分组的弱监督对比学习(WCS)和边缘关注引导(EAG)。每个组件的有效性体现在HPatches图像匹配任务中像素三阈值下的均匀匹配精度。作者的Baseline使用SuperPoint结构进行训练,包括其检测器监督和用于描述符学习的注意力加权三元损失。

随着PSRD的引入,模型的性能明显提高,因为它可以更好地学习图像特征。WCS的引入进一步增强了精度,通过增加描述符与语义的区分能力来优化描述符的内部多样性。它通过优化样本排名来表现出更卓越的性能,从而更好地保留了目标的内部多样性。

最后,EAG的引入增强了网络嵌入目标边缘和边界信息的能力,从而进一步提高了精度。

5 参考

[1]. SEGMENT ANYTHING MODEL IS A GOOD TEACHER FOR LOCAL FEATURE LEARNING.

6 推荐阅读

Nuscenes最新SOTA | DynamicBEV超越PETRv2/BEVDepth成为最强BEV检测模型!


全新Backbone | 华中科大提出ConvFormer,解决CNN与Self-Attention混合设计崩溃的痛点~


对视觉大语言模型一致性分析:当GPT-4V不能与文本意见一致时,它迷失在翻译之中了!

点击上方卡片,关注集智书童公众号

浏览 884
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报