笔者跟踪这项比赛较长时间,去年和前年已经写过两篇文章 2021, 2020, 感兴趣的同学可点击查阅。
今年最大的不同是什么呢?对,就是Kaggle
!
其实,原本去年的比赛就要放在Kaggle
上进行的,但是由于疫情以及数据准备较为耗时,于是这个决定就被推迟到了今年。
今年比赛共有3846人参与,共计642个队伍,其中128个用户是他们首次参与比赛(Top20中占有18个新用户),这些参与者来自60个国家,另外共有14170次提交记录。
通过下图可以看出:超过25倍的参与者以及150倍的提交记录:
Fun fact: 冠军方案在deadline前48小时才完成。
相比往年的比赛,今年的不同之处具体表现在如下几个方面:
notebooks
离线处理比赛用的数据除此之外,还有几点差异:
multiview track
(多视图匹配赛道),仅专注在stereo track
。这么做的原因有很多,最主要的是“技术问题”,即很难在有限合理的时间内运行以及评价匹配性能。与以往不同,今年几乎所有排名靠前的队伍都使用了相似的流程,虽然实现细节不同,但是核心思想是相似的...
不过,最终排名第二的方案(hkchkc)采用了不同的方案,该方案并没有使用任何前/后处理,并且在比赛过程中该算法曾经“霸占”Top1很长一段时间。
如下所示为一个通用的特征匹配流程(被诸多参赛者使用):
LoFTR
[5], SuperGlue
[7], QuadTree Attention LoFTR
[6]。一些队伍还使用了尺度增强算法(多尺度特征匹配)。K-means
或者 DBSCAN
(top1方案) 对匹配进行聚类,然后找到图像上共视区域的 bbox (bounding box),这个 bbox 里包含数量最多的匹配对,这样做可能得到多个潜在的共视区域。紧接着,使用每个共视区域的匹配计算基础矩阵。另外一种不需要聚类的思路是利用 MAGSAC++
在低阈值条件下迭代几轮排除一些错误匹配,然后也可以得到 bbox。ANMS
[9] 或者基于半径的NMS算法。MAGSAC++
求解基础矩阵。更为具体的,此处列举Top1/Top2方案。
完全基于开源匹配器 (LoFTR
[5], SuperGlue
[7], DKM
[8]) 组合达到该名次,不可思议!取得该名次另外一个关键原因在于,该方案使用了多尺度图像裁剪后进行匹配的 "2-stage" 策略。
具体的步骤如下:
LoFTR
[5] 提取图像特征,分辨率840;Superpoint+SuperGlue
[7] 提取多尺度图像特征,分辨率 840, 1024, 1280;紧接着将这两种匹配器得到的匹配进行串联;这是本方案的第1阶段匹配;DBSCAN
对匹配进行聚类,可以获得最佳的80-90%的匹配对;紧接着得到一个对应区域的 bbox,将这个区域裁剪出来,作者将这种方式称为 mkpt_crop。mkpt_crop 可以有效地过滤外点以及提取共视区域;LoFTR
[5], SuperGlue
[7], DKM
[8] 重新对共视区域进行再次匹配,这是本方案的第二阶段匹配;MAGSAC
解算基础矩阵。几个关键点:
LoFTR
[5] 结构类似,同样是基于transformer直接进行图像匹配,没有特征点。不过作者提到,现阶段论文还在盲审,目前不能公开太多信息,笔者会持续跟踪;QuadTree
[6] + LoFTR
[5] + SuperGlue
[7])进一步增强精度;ECO-TR
对坐标进行优化有效 (未开源)DISK
[11] , ALIKE
[12] 等RANSACs
可以使用较少的内点恢复位姿;LoFTR
[5] 对输入图像大小非常敏感,这一点值得后续继续研究。[1]: Image Matching: Local Features & Beyond, homepage: https://image-matching-workshop.github.io
[2]: Image Matching Challenge 2022, homepage: https://www.kaggle.com/competitions/image-matching-challenge-2022
[3]: Image Matching Challenge 2022 Recap, Dmytro Mishkin, https://ducha-aiki.github.io/wide-baseline-stereo-blog/2022/07/05/IMC2022-Recap.html, homepage: http://dmytro.ai
[4]: Competition is Finalized : Congrats to our Winners, Recap, https://www.kaggle.com/competitions/image-matching-challenge-2022/discussion/329650
[5]: LoFTR: Detector-Free Local Feature Matching with Transformers, CVPR 2021, code: https://github.com/zju3dv/LoFTR, pdf: https://arxiv.org/abs/2104.00680
[6]: QuadTree Attention for Vision Transformers, ICLR 2022, code: https://github.com/Tangshitao/QuadTreeAttention, pdf: https://arxiv.org/abs/2201.02767
[7]: SuperGlue: Learning Feature Matching with Graph Neural Networks, CVPR 2020, code: https://github.com/magicleap/SuperGluePretrainedNetwork, pdf: https://arxiv.org/abs/1911.11763
[8]: DKM, Deep Kernelized Dense Geometric Matching, arxiv 2022, code: https://github.com/Parskatt/DKM, pdf: https://arxiv.org/abs/2202.00667
[9]: ANMS, Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution, code: https://github.com/BAILOOL/ANMS-Codes
[10]: OANet, Learning Two-View Correspondences and Geometry Using Order-Aware Network, code: https://github.com/zjhthu/OANet, pdf: https://arxiv.org/abs/1908.04964
[11]: DISK: Learning local features with policy gradient, NeurIPS 2020, code: https://github.com/cvlab-epfl/disk, pdf: https://arxiv.org/abs/2006.13566
[12]: 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
[13]: ASLFeat: Learning Local Features of Accurate Shape and Localization, CVPR 2020, code: https://github.com/lzx551402/ASLFeat, pdf: https://arxiv.org/abs/2003.10071