SuperVLAD: 紧凑且鲁棒的图像描述符用于视觉场所识别 论文翻译
视觉场所识别(VPR)是增强现实和机器人定位等多个应用中的核心任务。在过去十年中,VPR领域的主流方法使用基于全局聚合的特征表示,例如NetVLAD。这些特征适用于大规模VPR,并对视点变化具有鲁棒性。然而,基于VLAD的聚合方法通常学习大量(例如64个)簇及其对应的簇中心,这直接导致生成的全局特征维度很高。更重要的是,当训练和推理数据之间存在域间隙时,训练集上确定的簇中心通常不适合推理,导致性能
SuperVLAD: 紧凑且鲁棒的图像描述符用于视觉场所识别
摘要
视觉场所识别(VPR)是增强现实和机器人定位等多个应用中的核心任务。在过去十年中,VPR领域的主流方法使用基于全局聚合的特征表示,例如NetVLAD。这些特征适用于大规模VPR,并对视点变化具有鲁棒性。然而,基于VLAD的聚合方法通常学习大量(例如64个)簇及其对应的簇中心,这直接导致生成的全局特征维度很高。更重要的是,当训练和推理数据之间存在域间隙时,训练集上确定的簇中心通常不适合推理,导致性能下降。为此,我们首先尝试改进NetVLAD,通过移除簇中心并仅设置少量(例如仅4个)簇。我们提出的方法不仅简化了NetVLAD,还增强了跨不同域的泛化能力。我们将此方法命名为SuperVLAD。此外,通过引入在最终输出中不保留的“幽灵簇”,我们进一步提出了一种极低维的1-Cluster VLAD描述符,其维度与GeM池化输出相同,但性能显著更好。实验结果表明,当与基于Transformer的骨干网络配对时,我们的SuperVLAD在显著减少参数的情况下,显示出比NetVLAD更好的域泛化性能。所提出的方法在几个基准数据集上超越了最先进的方法,同时具有更低的特征维度。代码可在https://github.com/lu-feng/SuperVLAD获取。
1 引言
视觉场所识别(VPR)旨在通过从地理标记数据库中检索最相似的图像,快速估计场所图像(即查询)的粗略地理位置[10, 41]。它在计算机视觉和机器人社区中备受关注,因其在增强现实[42]和机器人定位[59]等领域的广泛应用。然而,VPR仍面临挑战:一方面,同一场所的图像可能因条件变化(如照明和天气)和视点变化而剧烈不同;另一方面,多个不同场所可能高度相似,导致感知混淆[36]。同时处理这些问题特别具有挑战性,尤其是使用紧凑全局描述符表示场所图像的VPR方法。
VPR通常使用图像检索方法[4, 48]实现。首先使用全局特征描述场所图像,然后在数据库上执行最近邻搜索以获取匹配图像。全局描述符通常通过聚合方法(如词袋[3]和局部聚合描述符向量(VLAD)[28, 35, 31, 53])处理局部(或补丁)特征获得。尽管一些分层(即两阶段)VPR方法通过查询和候选图像的局部特征交叉匹配进行重排序来提高鲁棒性,但它们会引入额外的计算延迟和内存开销。退一步说,这些分层方法的第一阶段仍需使用全局特征检索候选。因此,使用紧凑且鲁棒的全局描述符表示场所图像始终是VPR中最基本和重要的问题。
在基于神经网络的VPR方法中,NetVLAD[4]和GeM池化[48]是最常用的聚合/池化方法。前者使用可训练的广义VLAD层聚合神经网络提取的特征图。其与传统VLAD[28]的主要区别在于可微分的软分配和更好的性能。然而,它仍通过对分配到每个簇的描述符的残差求和来构建输出向量,该残差通过从局部描述符中减去学习到的簇中心计算。当训练数据分布不同时,学习到的簇中心也会变化。即使使用泛化良好的骨干网络提取两个图像的局部特征,簇中心的差异可能导致输出全局特征相似性的完全不同结果(见图1)。换言之,当训练和推理数据之间存在域间隙时,训练集上学习的簇中心通常不适合推理,导致性能下降[5]。此外,NetVLAD生成的全局描述符维度很大。即使使用PCA(或其他可学习线性投影)等降维方法,其维度通常仍显著高于池化方法的输出。因此,一些需要极低维特征的VPR方法使用GeM池化生成全局描述符,但以牺牲某些性能为代价。
为解决上述问题,我们提出了一种用于VPR的紧凑且鲁棒的全局描述符,名为SuperVLAD。我们的方法使用基于Transformer的骨干网络生成初始补丁特征。与NetVLAD类似,SuperVLAD以软分配方式计算将补丁特征分配到簇的权重。关键区别在于SuperVLAD不计算簇中心。相反,我们直接对分配到每个簇的局部特征进行加权求和,以实现聚合局部特征的目的。这意味着SuperVLAD只需学习局部特征到簇的分配,而无需学习簇中心,从而直接改善其域泛化。同时,我们设置少量簇(比传统NetVLAD低一个数量级),从而生成更紧凑的全局描述符。此外,通过在软分配期间引入多余的幽灵簇,并在最终输出向量中仅保留一个真实(有用)簇,我们获得了一种极低维的1-簇VLAD描述符,具有极低维度且性能有前景。
我们的工作带来了以下贡献:
(1) 我们提出了一种SuperVLAD聚合方法,无需簇中心即可生成鲁棒的全局描述符。它可以缓解NetVLAD中因训练和测试数据偏差导致的性能下降,同时参数更少(即更轻量)。此外,它可以使用少量簇生成紧凑描述符。
(2) 我们还设计了一种1-簇VLAD方法,通过在软分配中使用多余幽灵簇。它生成与池化方法类似极低维特征。与相同维度的GeM特征或类标记相比,它显示出显著性能优势。
(3) 我们使用各种基于Transformer的骨干网络进行了广泛实验,证明了我们方法的有效性。此外,我们的SuperVLAD与DINOv2骨干网络在几个基准数据集上超越了最先进方法,同时具有更低维描述符。
3 方法论
图2展示了SuperVLAD的概述。我们首先使用骨干网络提取局部特征(3.1节),然后使用SuperVLAD聚合它们(3.2节)。1-簇VLAD是获取更紧凑描述符的替代方案(3.3节),跨图像编码器是可选的以提升性能(3.4节)。
3.1 局部特征提取
视觉Transformer(ViT)[17]及其变体在捕捉长距离特征依赖方面具有优势,并在各种计算机视觉任务中表现出色[66, 63, 64],包括VPR[55, 41]。在本工作中,我们使用ViT(或其变体)作为特征提取骨干。ViT最初将图像分成 N N N个补丁,并将它们线性投影成 D D D维补丁嵌入 x p ∈ R N × D x_p ∈ R^{N×D} xp∈RN×D,然后在 x p x_p xp前添加一个可学习类标记作为 x 0 ∈ R ( N + 1 ) × D x_0 ∈ R^{(N+1)×D} x0∈R(N+1)×D。添加位置嵌入后, x 0 x_0 x0输入一系列Transformer编码器层生成特征表示。ViT的最终输出包括一个类标记和 N N N个补丁标记。我们直接丢弃前者,使用后者作为输入到后续SuperVLAD聚合层的局部特征,从而获得场所图像的最终全局描述符。
3.2 SuperVLAD层
SuperVLAD通过首先将图像的所有局部特征与 K K K个簇关联,然后将这些特征聚合到每个簇中来生成图像的全局描述符。SuperVLAD层的基本过程类似于NetVLAD[4],因此我们从NetVLAD(和VLAD[28])开始介绍我们的工作。对于NetVLAD,给定图像的N个局部描述符 x i ( x i ∈ R D ) {x_i}(x_i ∈ R^D) xi(xi∈RD)和 K K K个簇中心 c k ( c k ∈ R D ) {c_k}(c_k ∈ R^D) ck(ck∈RD)作为参数,它计算矩阵 V ∈ R K × D V ∈ R^{K×D} V∈RK×D作为图像表示。矩阵 V V V的第 k k k行累积分配到簇 c k c_k ck的局部描述符的(加权)残差 ( x i − c k ) (x_i - c_k) (xi−ck)。更正式地说,矩阵 V V V的 ( k , j ) (k,j) (k,j)元素计算如下:
V k , j = ∑ i = 1 N a k ( x i ) ( x i , j − c k , j ) , ( 1 ) V_{k,j} = ∑{i=1}^N a_k(x_i) (x{i,j} - c_{k,j}), (1) Vk,j=∑i=1Nak(xi)(xi,j−ck,j),(1)
其中 x i , j x_{i,j} xi,j和 c k , j c_{k,j} ck,j分别是第 i i i个局部描述符和第 k k k个簇中心的第 j j j个元素。 a k ( x i ) a_k(x_i) ak(xi)是局部描述符 x i x_i xi分配到簇 c k c_k ck的权重。在VLAD中,分配是硬的,即 a k ( x i ) a_k(x_i) ak(xi)为0或1。相比之下,NetVLAD用软分配替换它,并计算 a k ( x i ) a_k(x_i) ak(xi)如下:
a k ( x i ) = e − α ∣ ∣ x i − c k ∣ ∣ 2 / ∑ k ′ e − α ∣ ∣ x i − c k ′ ∣ ∣ 2 , ( 2 ) a_k(x_i) = e^{-α ||x_i - c_k||^2} / ∑{k'} e^{-α ||x_i - c_{k'}||^2}, (2) ak(xi)=e−α∣∣xi−ck∣∣2/∑k′e−α∣∣xi−ck′∣∣2,(2)
扩展方程2中的平方,我们可以轻松观察到分子和分母之间的 e − α ∣ ∣ x i ∣ ∣ 2 e^{-α ||x_i||^2} e−α∣∣xi∣∣2项抵消,从而得到以下形式:
a k ( x i ) = e w k T x i + b k / ∑ k ′ e w k ′ T x i + b k ′ , ( 3 ) a_k(x_i) = e^{w_k^T x_i + b_k} / ∑{k'} e^{w{k'}^T x_i + b_{k'}}, (3) ak(xi)=ewkTxi+bk/∑k′ewk′Txi+bk′,(3)
其中向量 w k = 2 α c k w_k = 2α c_k wk=2αck,标量 b k = − α ∣ ∣ c k ∣ ∣ 2 b_k = -α ||c_k||^2 bk=−α∣∣ck∣∣2。在NetVLAD的实现中, w k 、 b k {w_k}、{b_k} wk、bk和 c k {c_k} ck被设置为三个独立的训练参数集(而VLAD仅使用 c k {c_k} ck)。即 w k {w_k} wk和 b k {b_k} bk实际上与{c_k}$解耦。如图3所示,NetVLAD比VLAD更灵活,在一定程度上缓解了域偏移导致的性能下降[4]。然而,NetVLAD保留了簇中心,这些中心在推理时对于各种数据分布通常不合适,因为它们是在一个训练集上学习的[5]。
由于NetVLAD中局部特征的分配已与簇中心解耦(在VLAD中,它基于到簇中心的距离),我们可以直接移除簇中心,并聚合分配到每个簇的局部特征的一阶统计(而非残差)。因此,SuperVLAD中的矩阵 V V V可以表述为:
V k , j = ∑ i = 1 N a k ( x i ) x i , j = ∑ i = 1 N [ e w k T x i + b k / ∑ k ′ e w k ′ T x i + b k ′ ] x i , j . ( 4 ) V_{k,j} = ∑{i=1}^N a_k(x_i) x{i,j} = ∑{i=1}^N [e^{w_k^T x_i + b_k} / ∑{k'} e^{w_{k'}^T x_i + b_{k'}}] x_{i,j}. (4) Vk,j=∑i=1Nak(xi)xi,j=∑i=1N[ewkTxi+bk/∑k′ewk′Txi+bk′]xi,j.(4)
对于每个簇,SuperVLAD有参数 w k w_k wk和 b k 1 b_k^1 bk1,与NetVLAD的参数 w k 、 b k w_k、b_k wk、bk和 c k c_k ck相比,以及VLAD的参数 c k c_k ck相比,这使得SuperVLAD不受簇中心 c k c_k ck影响,并比NetVLAD提供更大灵活性。此外,SuperVLAD的参数数量比NetVLAD少约一半。值得注意的是,方程4不同于对局部特征应用注意力机制。我们的方法涉及将特征分配到簇(而非对特征应用注意力)。更具体地说,给定一个特征,将其分配到所有簇的权重之和是常数1。然而,对于给定的簇,所有特征分配到它的权重之和不是固定的(对于注意力,它是常数1)。
最近的工作SALAD[27]也使用软分配权重对局部特征求和以获得全局描述符。然而,其软分配依赖于簇(即簇和局部特征之间的最优传输),即无法摆脱簇,并需要迭代计算来求解。其参数不比NetVLAD少。这些与我们轻量且低计算的SuperVLAD不同。此外,在SuperVLAD中,我们仅设置少量簇,即4个,这使得输出紧凑,而无需额外的降维技术。如图2所示,SuperVLAD的主要模块是1×1卷积(conv)和softmax用于软分配,以及用于聚合的VLAD核心。与NetVLAD不同,SuperVLAD的VLAD核心没有参数,所有可训练参数仅存在于conv层。矩阵V最终进行内归一化、展平为向量,并完全L2归一化作为输出全局描述符。
此外,我们吸收了GhostVLAD[65]的思想,它通过引入“幽灵”簇扩展NetVLAD。具体来说,它添加额外的G个幽灵簇,这些簇以与原始K个簇相同的方式用于软分配,但幽灵簇在聚合过程中被忽略,不直接贡献于最终输出。幽灵簇可用于对应VPR中无用的对象,如天空、地面、动态对象等。在SuperVLAD中,幽灵簇的数量仅设置为1(即G=1)。
3.3 1-簇VLAD
由于NetVLAD输出的描述符维度高,一些SOTA VPR方法使用可学习线性投影或GeM池化进行低维表示,例如CosPlace[7]、EigenPlaces[10]和MixVPR[2]。GeM池化特别受欢迎,因为它轻松生成与池化局部/补丁特征相同维度的全局表示,尽管可能缺乏性能。在此,我们设计了一种1-簇VLAD算法,可生成极低维描述符,其输出维度与GeM相同但性能更好。具体来说,我们仅需在SuperVLAD中将有用簇的数量设置为1,并将幽灵簇的数量设置为大于1(我们设置为2),即 K = 1 K=1 K=1和 G = 2 G=2 G=2,即可获得1-簇VLAD。这意味着所有与VPR相关的对象描述符分配到同一簇,其加权和(权重为 a 1 ( x i ) a_1(x_i) a1(xi))用作最终全局描述符。
3.4 簇级跨图像交互
本小节介绍SuperVLAD的可选过程(不适用于1-簇VLAD)。为进一步提升性能,我们从CricaVPR[39]中提出的跨图像编码器中获得灵感,该编码器可使用批次中的跨图像变化作为线索指导表示学习,并通过批次中的跨图像交互生成更鲁棒的图像特征。然而,直接使用Transformer编码器处理整个SuperVLAD向量会产生显著的内存和运行时间开销,与向量大小的平方成比例。为克服此问题,我们首先按簇拆分SuperVLAD描述符,然后将其输入跨图像编码器(即两个堆叠的Transformer编码器)进行簇级跨图像交互。即,此编码器将建模批次中所有图像中属于同一簇的聚合特征之间的相关性。然后,我们将图像的不同簇的聚合特征连接起来,并再次L2归一化以获得图像的最终描述符。
(注:论文其余部分包括相关工作、实验、结论和附录。由于长度限制,此处仅翻译核心部分。完整论文可参考原文件。)
创新点总结
这篇论文提出了一种新型的全局图像描述符聚合方法SuperVLAD,用于视觉场所识别(VPR)任务,针对NetVLAD等传统方法的局限性进行了改进。以下是其主要创新点:
- 移除簇中心以提升域泛化:传统NetVLAD依赖学习到的簇中心计算残差 ( x i − c k ) (x_i - c_k) (xi−ck),这在训练/测试域间隙时会导致性能下降。SuperVLAD直接对软分配后的局部特征进行加权求和(无残差计算),仅学习分配权重( w k w_k wk和 b k b_k bk),避免了簇中心对不同数据分布的敏感性,从而显著改善域泛化能力。同时,参数量减半(约NetVLAD的一半),更轻量级。
- 少簇设计实现紧凑描述符:不同于NetVLAD通常使用64个簇(导致高维输出,如32768维),SuperVLAD仅需4个簇即可生成紧凑描述符(例如3072维),无需额外PCA降维。这简化了模型并降低了存储/计算开销,同时保持高性能。
- 引入幽灵簇的1-Cluster VLAD:通过添加不参与最终输出的“幽灵簇”(G=1或2),SuperVLAD扩展为1-簇VLAD,仅保留一个有用簇。该方法生成极低维描述符(例如768维,与GeM池化相同),但性能优于GeM和类标记(class token),适用于资源受限场景。
- 可选簇级跨图像交互:借鉴CricaVPR,按簇拆分描述符后使用Transformer编码器建模批次内图像间的相关性,提升对视点/条件变化的鲁棒性。该模块可选,避免了全向量处理的计算瓶颈。
- 与Transformer骨干的集成:专为ViT/DINOv2等Transformer设计,利用其强大补丁特征(patch tokens),在少簇设置下实现高效聚合。实验证明其在域泛化、紧凑性和性能上的优势。
这些创新使SuperVLAD在不牺牲鲁棒性的前提下,实现更低维、更高效的VPR描述符,特别适合大规模应用如机器人定位和AR。
同类型模型对比结果重点分析
论文在多个VPR基准数据集(Pitts30k、MSLS-val、Nordland、SPED)上与SOTA方法进行了全面比较,使用DINOv2-base作为骨干(除非指定)。SuperVLAD(3072维)在全局检索(one-stage)方法中脱颖而出,尤其在域泛化、紧凑性和效率上优于NetVLAD及其变体。以下是关键对比结果(Recall@N,R@N;最佳加粗,次佳下划线):
- 与NetVLAD及其变体的对比(域泛化焦点)
域间隙场景:NetVLAD在训练于Pitts30k(城市场景)测试于MSLS-val(城市+郊区+自然)时,R@1仅为55.4%(CCT骨干)。SuperVLAD提升至62.2%(+6.8%),证明移除簇中心缓解了域偏移(表4)。类似地,使用DINOv2时,SuperVLAD的R@1为75.1% vs. NetVLAD的72.7%(+2.4%)。
参数与效率:SuperVLAD聚合器参数仅0.0038M(NetVLAD的1/1000以下),总参数86.6M(表3)。推理时间13.5ms/图像(SALAD为17.8ms),在Pitts30k上R@1为95.0%(图5)。
簇数量影响:少簇(4个)下SuperVLAD优于NetVLAD(表8:Pitts30k R@1 80.1% vs. 78.3%,+1.8%);多簇(64个)下NetVLAD略胜,但SuperVLAD内存更低,且性能降级更小(适合紧凑需求)。
CNN vs. Transformer骨干:使用VGG16(CNN)时,4簇SuperVLAD优于NetVLAD(MSLS R@1 76.4% vs. 73.5%,+2.9%),但64簇下落后(表9)。Transformer(如DINOv2)下SuperVLAD全面领先,强调其对强大特征的依赖。 - 与SOTA全局检索方法的对比(性能与紧凑性)
表2总结了与7个one-stage方法和2个two-stage方法的比较(训练于GSV-Cities,除非指定):
方法 骨干 维度 Pitts30k R@1/R@5/R@10 MSLS-val R@1/R@5/R@10 Nordland R@1/R@5/R@10 SPED R@1/R@5/R@10
NetVLAD [4] VGG16 32768 81.9/91.2/93.7 53.1/66.5/71.1 6.4/10.1/12.5 70.2/84.5/89.5
SFRS [21] VGG16 4096 89.4/94.7/95.9 69.2/80.3/83.1 16.1/23.9/28.4 80.2/92.6/95.4
CosPlace [7] VGG16 512 88.4/94.5/95.7 82.8/89.7/92.0 58.5/73.7/79.4 75.5/87.0/89.6
MixVPR [2] ResNet50 4096 91.5/95.5/96.3 88.0/92.7/94.6 76.2/86.9/90.3 84.7/92.3/94.4
EigenPlaces [10] ResNet50 2048 92.5/96.8/97.6 89.1/93.8/95.0 71.2/83.8/88.1 70.2/83.5/87.5
SALAD [27] DINOv2-B 8448 92.5/96.4/97.5 92.2/96.4/97.0 89.7/95.5/97.0 92.1/96.2/96.5
CricaVPR [39] DINOv2-B 4096 94.9/97.3/98.2 90.0/95.4/96.4 90.7/96.3/97.6 91.4/95.2/96.2
SuperVLAD DINOv2-B 3072 95.0/97.4/98.2 92.2/96.6/97.4 91.0/96.4/97.7 93.2/97.0/98.0
TransVPR [55] (two-stage) - - 89.0/94.9/96.2 86.8/91.2/92.4 63.5/68.5/70.2 85.7/90.9/91.8
SelaVPR [41] (two-stage) DINOv2-L - 92.8/96.8/97.7 90.8/96.4/97.2 87.3/93.8/95.6 89.5/94.6/95.9
性能领先:SuperVLAD在所有数据集上R@1最高(Pitts30k 95.0%、MSLS 92.2%、Nordland 91.0%、SPED 93.2%),超越DINOv2-based SOTA如CricaVPR(SPED +1.8%)和SALAD(MSLS +0.4%,但维度更低)。在SPED(低质量/高景深图像)上优势最大,证明对条件变化的鲁棒性。
紧凑性优势:维度3072低于SALAD (8448)、CricaVPR (4096)和NetVLAD (32768),高于CosPlace (512)但性能远超(MSLS R@1 92.2% vs. 82.8%)。1-Cluster VLAD (768维) vs. GeM (768维):Pitts30k R@1 91.6% vs. 89.5%(+2.1%),MSLS 90.4% vs. 85.4%(+5.0%)(表6)。
定性与效率:图4显示SuperVLAD在视点/季节/遮挡变化下正确检索,而NetVLAD/SFRS等失败。推理更快(13.5ms vs. SALAD 17.8ms),参数更少(表3)。
额外数据集(表10):在大型数据库Pitts250k (R@1 97.2% vs. SelaVPR 95.7%)和Tokyo247 (95.2% vs. 94.0%)上领先;在室内Baidu Mall (69.4% vs. 68.3%)也优于SALAD,但强调室内需其他方法。
总体而言,SuperVLAD在DINOv2下实现SOTA性能,同时提供更紧凑、低参数的解决方案,特别在域泛化挑战中优于NetVLAD/SALAD等VLAD变体。局限:依赖Transformer骨干,CNN下不如NetVLAD;跨图像编码器需批次>1。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)