RealCat

· updated Jan 27, 2025 · 12 min read

笔记:Patch-NetVLAD 论文阅读

今天要介绍的文章是来自 Stephen 等人在 CVPR 2021 发表的 Patch-NetVLAD,论文名是“Patch-NetVLAD: Multi-Scale Fusion of Locally-Global Descriptors for Place Recognition”。本方法结合局部与全局特征的优势并利用 NetVLAD 残差得到 patch-level 的特征,该特征能够有效应对环境以及视角变化对 VPR 带来的影响,获得了“ECCV2020 Facebook Mapillary Visual Place Recognition Challenge”的冠军。

首先祭出代码 Repo:

Patch-NetVLAD

原有技术问题

NetVLAD 制作全局特征时并没有专门考虑更细分的局部特征,场景识别召回率不太高;基于局部特征的场景召回算法仅将局部特征进行聚合并没有考虑更高层次的信息。目前仍然没有一种召回率较好的将局部与全局特征融合的用于 VPR 的特征。

新技术创新点

  1. 提出一种基于多尺度 Patch 的 NetVLAD 算法,相比于原始的 NetVLAD VPR 召回率有了大幅度提升;
  2. 提出一种加速多尺度 Patch 特征描述子计算的 IntegralVLAD;
  3. 提出一种快速图像间相似度评分方法;

新技术主要框架以及关键技术点

首先需要明确的是 Patch-NetVLAD 的输入是一系列最为相似的参考图像(如用于构图的图像),例如本文利用原始的 NetVLAD 全局描述子召回与查询图像最为接近的 top-k 张参考图像;随后计算基于 patch 的描述子,并执行 patch-level 的图像匹配,这样可以对候选图像进行重新排序与精化以得到最终的参考图像(如 NetVLAD 召回了 top-k 的参考图像,但这些参考图像与查询图像相似度排序是错误的,而本文算法相当于是对这些相似度进行了重新排序)。

原始的 NetVLAD 框架

原始的 NetVLAD1 网络体使用 Vector-of-Locally-Aggregated-Descriptors(VLAD) 方法将预训练模型中的特征图进行聚合得到图像全局描述子,实现了应对场景以及视角变化的功能。

令,它表示对于输入的图像,输出一个维度为的特征图。原有的 NetVLAD 将这维特征聚合成一个维特征,其中表示聚类中心的个数。

其中表示第描述子的第个元素,表示软分配函数(即属于这一类的程度),表示第个聚类中心。

经过上述的 VLAD 聚合后,需要对结果矩阵进行降维:1. 按照列进行归一化;2. 将矩阵重排成一列得到一个向量;3. 对该向量进行;4. 白化 PCA 并。以上降维过程可以表示为:

Patch-level Global Features

相较于原有的 NetVLAD 框架,本文的改进点在于:对于特征图,设置步长,可以得到尺寸为的 patches:

其中表示总块数:

其中:

,表示块特征中心坐标。

于是,通过对每一个 patch 进行 NetVLAD 特征聚合与降维就会得到该 patch 的描述子:

其中:

进一步地,通过提取不同尺寸 patch 描述子并融合之会进一步提高位置识别性能(后续实验中会对比)。

相互最近邻

接下来的工作就是实现两张图像之间 patch-level 的匹配,即给定参考图像块描述子与查询图像块描述子:

(暴力)找到 patch 与 patch 之间互相最为接近的匹配对,可以写成以下形式:

其中以及:

空间一致性评分

这一步为了得到查询图像与参考图像之间的相似度得分。这里提供了两种可选的计分手段:1. 基于 RANSAC 的计分,高召回率,但较为耗时;2. 空间计分,速度快但是召回率稍有下降。

  • RANSAC Scoring:

空间一致性分数是通过拟合单应性矩阵,然后统计内点数给出的。其中使用了对应的 patch,这些 patch 匹配对是由上步相互最近邻匹配得到的。在拟合单应矩阵时,将每个 patch 看作一个 2D 图像点,坐标位于该 patch 的中心,另外将内点阈值定义为步幅,计算内点数目与总 patch 数的比例作为一致性得分。

  • Rapid Spatial Scoring

上述方式速度较慢,本文提出了 RANSAC Scoring 的一种替代方法,称之为快速空间评分(Rapid Spatial Scoring)。这种快速的空间评分极大地减少了计算时间,这是由于该方式可直接在匹配的特征对上计算得分而无需重新采样。如下为该得分的计算方法:

定义表示水平方向上的偏移量集合,同理表示竖直方向上的偏移量集合。

表示水平方向偏移量均值,同理表示竖直方向偏移量均值;空间得分(越高越好)为下式:

观察上式可知,空间得分会从平均偏移量中惩罚匹配patch位置中的较大空间偏移量,从而可以有效地测量视点变化下场景中元素整体移动的相干性。

多尺度 Patch 尺寸

设置不同的 patch 大小,将其得分进行组合,得到:

其中表示第 patch 尺寸,对于所有的而言,(后续实验中确定该权重)。

IntegralVLAD

为了高效计算多尺度得分,本文设计了类似于积分图的 IntegralVLAD。回想一下,若要计算多尺度得分就要知道多尺度 patch 描述子,而计算多尺度 patch 描述子的过程存在大量的冗余操作,如较大 patch 的描述子的计算中包含了较小 patch 描述子的计算过程。若每个尺度的描述子单独计算将会引入较大计算量,于是本文提出了 IntegralVLAD 用于高效计算多尺度特征。思路比较简单,就是在做特征降维之前,利用尺寸为的 patch 的 VLAD 聚合描述子制作积分特征图:

这样的话,对于计算任意尺寸patch的描述子,只需要索引积分特征图的 4 个位置即可(类似于积分图,不熟悉的同学自行查阅相关文献)。

实验

配置

本文算法使用 PyTorch 实现,在提取 Patch-NetVLAD 之前将输入图像尺寸缩放到 640*480。作者在 RobotCar Seasons v2 训练数据集上找到了用于后续实验的配置参数:单尺寸下,;多尺度融合配置,patch 尺寸分别为 2、5、8,融合比例。

定量评价

上述实验数据表明,与 NetVLAD1、DenseVLAD2、AP-GEM3 以及最近比较热门的 SuperGlue 相比,多尺度 Patch-NetVLAD 在全局描述能力上取得了最优的成绩。单尺度 Patch-NetVLAD 也能获得与 SuperGlue 相当的效果。

计算量比较

设置不同的降维配置:

统计不同配置下算法耗时与召回率之间的关系。可见 Multi-RANSAC-Patch-NetVLAD 表现最优,但最为耗时;Single-RANSAC-Patch-NetVLAD 与 SuperGlue 相当的效果,但是快了近 3 倍;专注内存消耗配置的 Single-Spatial-Patch-NetVLAD (dim=128) 仍然优于 NetVLAD,并且它的内存仅仅是一个 SIFT 描述子的大小。

结论与借鉴意义

  1. 改进了 NetVLAD,提出基于 patch 融合的 NetVLAD,对参考图像与查询图像之间的相似度重排,大幅度提升了 VPR 召回率;
  2. 提供了多种 Patch-NetVLAD 配置,可根据应用自行调节;
  3. 该方法说到底是对 NetVLAD 的初选参考图像结果的 re-ranking,目前阶段并没有脱离前置召回操作;同时由于缺乏更细粒度的局部描述子也无法做到与传统/学习的局部特征一样的特征匹配精度;但考虑到这仅仅用来做 VPR,效果还是不错的;

附录

Footnotes

  1. Relja Arandjelovic, Petr Gronat, Akihiko Torii, Tomas Pajdla, and Josef Sivic. NetVLAD: CNN architecture for weakly supervised place recognition. IEEE Trans. Pattern Anal. Mach. Intell., 40(6):1437–1451, 2018. ↩ ↩2

  2. Akihiko Torii, Relja Arandjelovic, Josef Sivic, Masatoshi Okutomi, and Tomas Pajdla. 24/7 Place Recognition by View Synthesis. IEEE Trans. Pattern Anal. Mach. Intell., 40(2):257–271, 2018. ↩

  3. Jerome Revaud, Jon Almazán, Rafael S Rezende, and Cesar Roberto de Souza. Learning with average precision: Training image retrieval with a listwise loss. In Int. Conf. Comput. Vis., pages 5107–5116, 2019. ↩

Comments