惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
T
Threatpost
P
Palo Alto Networks Blog
NISL@THU
NISL@THU
O
OpenAI News
Project Zero
Project Zero
G
GRAHAM CLULEY
P
Privacy International News Feed
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
D
Docker
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
W
WeLiveSecurity
P
Proofpoint News Feed
腾讯CDC
Cloudbric
Cloudbric
S
Secure Thoughts
C
Check Point Blog
博客园 - Franky
T
The Exploit Database - CXSecurity.com
T
Troy Hunt's Blog
GbyAI
GbyAI
Security Archives - TechRepublic
Security Archives - TechRepublic
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
TaoSecurity Blog
TaoSecurity Blog
L
Lohrmann on Cybersecurity
V
Visual Studio Blog
F
Fortinet All Blogs
博客园 - 叶小钗
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
C
Cisco Blogs
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research

RealCat

📝笔记:图像匹配挑战赛回顾(CVPR 2023) | RealCat 📝笔记:Stable Diffusion QR-Code | RealCat 📝笔记:Python zip() | RealCat 📝笔记:图像匹配挑战赛回顾(CVPR 2022) | RealCat 📝笔记:5秒钟训练NeRF,NVIDIA Instant NeRF 测试 | RealCat 📝笔记:Visualization Localization Revisited(under construction...) | RealCat 📝笔记:使用vlfeat的Matlab接口简单实现BOW以及VLAD | RealCat 📝笔记:一些关于KD-Tree的知识点 | RealCat 📝笔记:简明矩阵求导术之分子布局与分母布局 | RealCat 📝笔记:使用Clockwise/Spiral Rule技巧轻松读懂变量/函数声明 | RealCat 🔨工具:优雅地下载Youtube视频 | RealCat 🔨工具:每日自动获取arXiv论文摘要 | RealCat 🎃资料: 从Eigen向量化谈内存对齐 | RealCat 📝笔记:图像匹配挑战赛总结 (SuperPoint + SuperGlue 缝缝补补还能再战一年) | RealCat 📝笔记:ICCV 2021最佳学生论文 | COLMAP 优化建图组件 Pixel-Perfect SFM | RealCat 📝笔记:CVPR 2021 | PixLoc: 端到端场景无关视觉定位算法(SuperGlue一作出品) | RealCat 📝笔记:港大MARS实验室 R3LIVE (R2LIVE升级) 鲁棒实时RGB雷达视觉惯导紧耦合状态估计 | RealCat 🔨工具:bash常用命令 | RealCat 📝笔记:VSLAM基础知识导图 | RealCat 📝笔记:光场相机能否用于SLAM? | RealCat 📝笔记:读写文本常用操作 | RealCat 📝笔记:CVPR 2020 视觉定位挑战赛冠军方案 | RealCat 📝笔记:三维重建系列 COLMAP: Structure-from-Motion Revisited | RealCat 🐈芒果驾到 | RealCat 📝笔记:GMS一种基于运动统计的快速鲁棒特征匹配过滤算法 | RealCat 🌡️秋天到了,还是很热 | RealCat 📝笔记:AdaLAM: Revisiting Handcrafted Outlier Detection 超强外点滤除算法 | RealCat 🔨工具:使用vercel加速Hexo静态博客访问 | RealCat 📝笔记:ORB-SLAM3论文阅读 | RealCat 🔨工具:解决Github挂图及龟速访问 | RealCat 📝笔记:图解卡尔曼滤波 | RealCat 🔨工具:国内加速访问arxiv | RealCat 📝笔记:CVPR2020图像匹配挑战赛,新数据集+新评测方法,SOTA正瑟瑟发抖! | RealCat 📝笔记:SuperGlue:Learning Feature Matching with Graph Neural Networks论文阅读 | RealCat 📝笔记:SLAM常见问题(四):求解ICP,利用SVD分解得到旋转矩阵 | RealCat 📝笔记:SLAM常见问题(五):Singular Value Decomposition(SVD)分解 | RealCat 📝笔记:SLAM常见问题(三):PNP | RealCat 📝笔记:SLAM常见问题(二):重定位Relocalisation | RealCat 📝笔记:SLAM常见问题(一):SearchByBoW | RealCat 📝笔记:2019年浙大CADCG暑假SLAM培训部分课件 | RealCat 🔨工具:Filebrowser:一款轻量级个人网盘 | RealCat 📝笔记:SuperPoint: Self-Supervised Interest Point Detection and Description 自监督深度学习特征点 | RealCat Black Hole | RealCat 🔥Awesome CV Works | RealCat 🔨工具:开启SSR模式 | RealCat 虚实:「未麻的部屋」 | RealCat 笔记:李群与李代数求导 | RealCat 资料:ORB SLAM2 阅读报告 | RealCat 资料:SLAM草稿 | RealCat 资料:Line Segments Detection | RealCat 资料:Eigen与Matlab语句之对应关系 | RealCat 笔记:清华-谷歌人工智能研讨会(Tsinghua-Google AI Symposium) | RealCat Think Different | RealCat Light Field Depth Estimation | RealCat CV Related References | RealCat 立体视觉综述:Stereo Vision Overview | RealCat Lytro的光场AR之路:从巅峰到死亡 | RealCat Stephen Hawking | RealCat 常用的生产力工具 | RealCat 深度学习在深度(视差)估计中的应用(2) | RealCat 深度学习在深度(视差)估计中的应用(1) | RealCat Matlab Deep Learning学习笔记 | RealCat CNN框架(CNN Architectures) | RealCat 理解LSTM网络【译】 | RealCat 降维之PCA主成分分析原理 | RealCat 📝笔记:SIFT和SURF特性提取总结 | RealCat 统计学习方法总结 | RealCat Ubuntu上使用Git以及GitHub | RealCat 机器学习修炼手册 | RealCat 初试HCI光场数据集 | RealCat 实习季到了,大家又浮躁了起来 | RealCat 日本与美国之行 | RealCat Light Field 光场以及MATLAB光场工具包(LightField ToolBox)的使用说明 | RealCat MATLAB:多个不同维度的箱线图画在一起 | RealCat AR形势与应用 | RealCat Hexo+Github+jsDelivr+Vercel建站备忘录 | RealCat Markdown 学习 | RealCat 复试那些事儿 | RealCat
📝笔记:Patch-NetVLAD论文阅读 | RealCat
2021-03-13 · via RealCat

今天要介绍的文章是来自Stephen等人在CVPR2021发表的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,效果还是不错的;

附录

  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. ↩