返回列表

10th Place solution (brief summary)

495. Image Matching Challenge 2022 | image-matching-challenge-2022

开始: 2022-04-04 结束: 2022-06-02 计算机视觉 数据算法赛
第10名方案(简要总结)

第10名方案(简要总结)

作者:ts (团队: Tatsu-Tomo) | 排名:第10名

首先,我要感谢 Kaggle 工作人员和组织者组织了这场非常实用且具有挑战性的比赛。
我们的团队在私人排行榜上排名第 10。

概览

IMC2022-10th.png

解决方案总结如下。

关键点

  • 使用 DKM-ROI 进行集成
  • 实现更快、更好的估计
  • 异常值处理
  • 信任 CV(交叉验证)

使用 DKM-ROI 进行集成

DKM 在我们的实验中表现出稳健的趋势。它几乎总能找到很多对应点,但与另一种算法相比,其峰值性能有所不足。

基于这种趋势,我们将 DKM 视为“平均击球手”。并在后续步骤中利用它制作裁剪图像作为 ROI(感兴趣区域)。

  1. 使用 DKM 进行推理,并使用 Otsu 方法计算置信度阈值
  2. 使用计算出的阈值过滤对应点
  3. 利用过滤后的对应点制作边界框
  4. 从边界框区域裁剪图像
  5. 与 LoFTR、SE2-LoFTR 和 SuperGlue 进行集成

DKM-ROI 提取 ROI 的样本结果如下所示:

Untitled.png

图 1:DKM 确认的点的置信度图

Untitled.png

图 2:通过 Otsu 方法对置信度图进行二值化的结果

Untitled-1.png

图 3:原图上对应点的边界框

基本上,与 DKM-ROI 的集成效果很好。它让寻找关键点变得更容易。但有时它会遗漏重要区域。针对此问题的一个简单对策是,我们的方案不仅与 DKM-ROI 集成,还使用 LoFTR 对原始图像进行推理并将其加入集成。

实现更快、更好的估计

与往常一样,本次比赛的重点之一是以某种方式增加推理时间。我们方案的典型思路如下:

  • 流水线处理:
    • 我们将整体流程优化为多线程实现。它可以描述为三个组件:1. 预处理(如加载图像),2. 推理(如匹配器),3. 后处理(如 RANSAC)。我们的方案运行多线程来并行处理这些任务。特别是对于本次比赛中的任务,流水线非常有效,因为 GPU 处理和 CPU 处理承载着不同的进程。
  • 关键点 NMS (非极大值抑制):
    • 检测到的关键点通常是有噪声且冗余的。这会增加计算时间。为了避免这个问题,我们对关键点使用了 NMS 算法,名为 SSC (Suppression via Square Covering,方形覆盖抑制)。SSC 可以在保持精度的同时减少处理时间。
  • 加权随机采样:
    • 出于同样的原因,我们试图以一种能够保持估计精度的方式减少输入到 RANSAC 的关键点数量。作为一种方法,我们将 DKM 中使用的加权随机采样算法应用于关键点集成结果。

异常值处理

本次比赛的输入图像预期非常多样化。

在困难的情况下,例如无纹理、距离较远和视角非常不同,简单集成的效果有限,因为几乎找不到对应点。因此,针对这些应被称为异常值的图像对,采取了以下措施。

  • 异常情况 1: 当找到的对应点数量
同比赛其他方案