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

推荐订阅源

The Cloudflare Blog
L
LangChain Blog
WordPress大学
WordPress大学
V
V2EX
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
Recent Announcements
Recent Announcements
GbyAI
GbyAI
博客园 - 叶小钗
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog

RealCat

📝笔记:图像匹配挑战赛回顾(CVPR 2023) | RealCat 📝笔记:Stable Diffusion QR-Code | RealCat 📝笔记:Python zip() | 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 📝笔记:Patch-NetVLAD论文阅读 | 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
📝笔记:图像匹配挑战赛回顾(CVPR 2022) | RealCat
2022-07-09 · via RealCat

笔者跟踪这项比赛较长时间,去年和前年已经写过两篇 2021, 2020, 主页, 比赛地址

其实,本来去年的比赛就要放在Kaggle上进行的,但是由于疫情以及数据准备较为耗时,于是这个决定就被推迟到了今年。

今年比赛共有3846人参与,共计642个队伍,其中128个用户是他们首次参与比赛(Top20中占有18个新用户),这些参与者来自60个国家,另外共有14170次提交记录。

通过下图可以看出:超过25倍的参与者以及150倍的提交记录:

Fun fact: 冠军方案在deadline前48小时才完成。

不同之处

相比往年的比赛,今年的不同之处具体表现在如下几个方面:

  • 参赛者需要提交 notebooks 离线处理比赛用的数据
  • 参赛者无法查看测试集:很难作弊
  • 允许算法快速迭代

除此之外,还有几点差异:

  1. 砍掉了multiview track(多视图匹配赛道),仅专注在stereo track。这么做的原因有很多,最主要的是“技术问题”,即很难在有限合理的时间内运行以及评价匹配性能。
  2. 新的数据集以及评价标准。往年的真值位姿的平移量没有尺度,仅能够评价旋转的精度;而今年的平移量拥有了尺度信息,这使得可以同时评价位姿旋转量与平移量。此外,今年使用了来自Google的非公开数据集(网上是搜不到滴)。
  3. 时间限制。总计算时长被限制在9小时(计算平台:Kaggle GPU virtual instance)以内,不能超时!这让参赛者要思考,什么算法能用什么算法不能用。一个简单的例子:使用语义分割mask对提升指标可能是有帮助的,但是需要的算力太大,那就不能使用!

Top solutions

与以往不同,今年几乎所有排名靠前的队伍都使用了相似的流程,虽然实现细节不同,但是核心思想是相似的…

最终排名第二的方案(hkchkc)采用了不同的方案,该方案并没有使用任何前/后处理,并且在比赛过程中该算法曾经“霸占”Top1很长一段时间。

如下所示为一个通用的特征匹配流程(被诸多参赛者使用):

  1. 第一步使用 off-the-shelf 模型获得初始匹配。这些模型包括 LoFTR1, SuperGlue2, QuadTree Attention LoFTR3。一些队伍还使用了尺度增强算法(多尺度特征匹配)。
  2. 下一步就是估计两张图的共视区域,一个常用的方法是用 K-means 或者 DBSCAN (top1方案) 对匹配进行聚类,然后找到图像上共视区域的 bbox (bounding box),这个 bbox 里包含数量最多的匹配对,这样做可能得到多个潜在的共视区域。紧接着,使用每个共视区域的匹配计算基础矩阵。另外一种不需要聚类的思路是利用 MAGSAC++ 在低阈值条件下迭代几轮排除一些错误匹配,然后也可以得到 bbox。
  3. 裁剪出每个 bbox 区域,随后将其resize到一个预设的图像尺寸。紧接着,使用匹配算法对这些 “zoomed-in” 过的图像进行再次匹配。得到新的匹配之后,将这些匹配对投影到原始的图像上,这些投影后的匹配和最原始的图像匹配进行串联组织起来。注意,“zoomed-in” 后的匹配是为了增加匹配,而不是替换原来的匹配。
  4. (可选) 这一步使用非极大值抑制过滤过于集中的匹配对。非极大值抑制 包括 ANMS4 或者基于半径的NMS算法。
  5. 使用OpenCV MAGSAC++ 求解基础矩阵。

更为具体的,此处列举Top1/Top2方案。

Top1 思路

完全基于开源匹配器 (LoFTR1, SuperGlue2, DKM5) 组合达到该名次,不可思议!取得该名次另外一个关键原因在于,该方案使用了多尺度图像裁剪后进行匹配的 “2-stage” 策略。

具体的步骤如下: 1. 图像初始匹配: LoFTR1 提取图像特征,分辨率840;Superpoint+SuperGlue2 提取多尺度图像特征,分辨率 840, 1024, 1280;紧接着将这两种匹配器得到的匹配进行串联;这是本方案的第1阶段匹配; 2. 使用 DBSCAN 对匹配进行聚类,可以获得最佳的80-90%的匹配对;紧接着得到一个对应区域的 bbox,将这个区域裁剪出来,作者将这种方式称为 mkpt_crop。mkpt_crop 可以有效地过滤外点以及提取共视区域; 3. 使用 LoFTR1, SuperGlue2, DKM5 重新对共视区域进行再次匹配,这是本方案的第二阶段匹配; 4. 将上述两个阶段的匹配对串联起来,使用 MAGSAC 解算基础矩阵。

Top2 思路

几个关键点:

  1. 仅仅使用单一模型(Baseline)就可以获得0.838(public)/0.833(private)精度;这个模型与 LoFTR1 结构类似,同样是基于transformer直接进行图像匹配,没有特征点。不过作者提到,现阶段论文还在盲审,目前不能公开太多信息;
  2. 使用其他匹配器(Baseline + QuadTree3 + LoFTR1 + SuperGlue2)进一步增强精度;
  3. 使用归一化位置编码;
  4. 没有使用前/后处理;

有用的tricks

  1. 交换图像匹配顺序可提升 LoFTR-like 匹配器的精度
  2. 对 LoFTR-like 匹配器的位置编码归一化有效 (top2方案)
  3. 使用不同的 resize 图像的方法差异不大
  4. 使用 ECO-TR 对坐标进行优化有效 (未开源)
  5. 使用局部描述子+非学习的匹配器增加匹配数量并不奏效,如 DISK6 , ALIKE7 等;
  6. 语义分割掩码(天空/人)也不奏效; Refinement by ECO-TR

总结

  1. “2-stage” 的方式对于图像匹配任务相当有效:首先找到共视区域,接着缩放进行匹配;
  2. 最好首先解决 “recall” 问题,即尽可能多的找到匹配,这个过程可以使用不同的匹配器;要相信现代的 RANSACs 可以使用较少的内点恢复位姿;
  3. LoFTR1 对输入图像大小非常敏感,这一点值得后续继续研究。
  1. LoFTR: Detector-Free Local Feature Matching with Transformers, CVPR 2021, code: https://github.com/zju3dv/LoFTR, pdf: https://arxiv.org/abs/2104.00680 ↩ ↩234567

  2. SuperGlue: Learning Feature Matching with Graph Neural Networks, CVPR 2020, code: https://github.com/magicleap/SuperGluePretrainedNetwork, pdf: https://arxiv.org/abs/1911.11763 ↩ ↩2345

  3. QuadTree Attention for Vision Transformers, ICLR 2022, code: https://github.com/Tangshitao/QuadTreeAttention, pdf: https://arxiv.org/abs/2201.02767 ↩ ↩2

  4. ANMS, Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution, code: https://github.com/BAILOOL/ANMS-Codes, pdf: https://www.researchgate.net/publication/323388062\_Efficient\_adaptive\_non-maximal\_suppression\_algorithms\_for\_homogeneous\_spatial\_keypoint\_distribution

  5. DKM, Deep Kernelized Dense Geometric Matching, arxiv 2022, code: https://github.com/Parskatt/DKM, pdf: https://arxiv.org/abs/2202.00667 ↩ ↩2

  6. DISK: Learning local features with policy gradient, NeurIPS 2020, code: https://github.com/cvlab-epfl/disk, pdf: https://arxiv.org/abs/2006.13566

  7. ALIKE: Accurate and Lightweight Keypoint Detection and Descriptor Extraction, Transactions on Multimedia 2022, code: https://github.com/Shiaoming/ALIKE, pdf: https://arxiv.org/abs/2112.02906