超越匹配: 隐式学习如何解决图像到点云配准问题

想象一下,你是一个在城市中导航的机器人。你拥有一个预先构建的城市 3D 地图 (点云) ,而你刚刚用机载相机拍了一张照片。为了知道你在这个巨大 3D 世界中的确切位置,你需要弄清楚那张 2D 照片究竟对应地图的哪个部分。这个问题被称为图像到点云配准 (Image-to-Point Cloud Registration)

理论上听起来很简单——只需将照片与 3D 模型对齐即可——但在实践中,这极其困难。为什么?因为你试图匹配两种完全不同类型的数据: 像素的 2D 网格 (图像) 和空间坐标的无序集合 (点云) 。

多年来,研究人员一直依赖“基于匹配”的方法。这些方法涉及在图像中寻找关键特征点,在 3D 云中寻找特征点,并试图强行将它们匹配起来。然而,这种方法通常很脆弱。2D 外观和 3D 结构之间的模态差异会导致许多错误的匹配,而且最后一步通常依赖于传统的算法,神经网络本身无法对其进行优化。

在这篇文章中,我们将深入探讨一篇题为 《Implicit Correspondence Learning for Image-to-Point Cloud Registration》 (CVPR) 的论文。这项研究提出了一种新的架构,不再依赖显式的特征匹配。相反,它利用“隐式查询”和几何先验来实现最先进的精度。

主流方法与本文提出方法的流程对比。

如上图 Figure 1 所示,传统方法 (a) 经常导致红色的错误对应关系像“意大利面”一样杂乱。本文提出的方法 (b),也就是我们将要在本文中拆解的内容,使用了一种更智能的、基于查询的系统来寻找两个世界之间稳健的连接。


核心问题: 模态差异

在理解解决方案之前,我们必须认识到问题的难度。

1. 重叠问题

当你观察一个巨大的城市 3D 点云时,你的相机只能看到其中的一小部分 (相机视锥体) 。配准的第一步通常是确定哪些 3D 点实际上在 2D 图像中是可见的。现有的方法使用“逐点分类”,要求网络查看每一个 3D 点并回答“是/否”它是否在图片中。这充满噪声,并且经常导致锯齿状、不准确的边界。

2. 匹配问题

标准方法试图强行让 2D 像素特征在数学上与 3D 点特征相同。这是不自然的。像素包含颜色和纹理信息;点包含几何结构。强迫它们进入同一个潜空间 (latent space) 往往会混淆网络,导致 Figure 1(a) 中出现的错误匹配。

3. 优化问题

在找到匹配后,传统流程将数据交给一种称为 PnP-RANSAC (带随机抽样一致性的透视 n 点算法) 的算法来计算最终位置。虽然该算法很稳健,但这一步对神经网络来说通常是一个“黑盒”——它无法在训练期间学习如何改进 PnP 步骤。


解决方案: 隐式对应关系学习

作者提出了一个统一的框架,使用三个独特的模块来解决这三个问题。让我们分解一下这个架构。

提出方法的架构概览。

Figure 2 所示,该流程包括:

  1. GPDM (几何先验引导的重叠区域检测模块) : 一个利用几何逻辑 (不仅仅是分类) 来寻找重叠区域的模块。
  2. ICLM (隐式对应关系学习模块) : 一个使用“查询 (Queries) ”来隐式学习 2D 和 3D 数据对应位置的模块,无需强迫它们的特征完全相同。
  3. PRM (位姿回归模块) : 一个端到端预测最终位姿的回归模块,取代了不可微分的 RANSAC 步骤。

让我们详细了解每个模块。

模块 1: 几何先验引导的重叠区域检测 (GPDM)

第一个挑战是将巨大的点云过滤到仅剩图像中可见的点。

大多数以前的工作将其视为一个简单的二分类任务: “点 \(X\) 在图像中吗?”然而,这忽略了一个基本的几何事实: 相机的视野是一个视锥体 (frustum) (一个顶部被切掉的金字塔形状) 。图像内的点必须形成一个连续的几何形状,而不是一团散乱的点。

GPDM 利用了这个“几何先验”。

步骤 A: 视锥体位姿预测

首先,网络分别提取图像特征 (\(F_I\)) 和点云特征 (\(F_P\))。它结合这些特征来预测一个点位于帧内的粗略概率 (\(O_P\))。

但这里有个巧妙的地方: 网络并没有止步于此,而是利用这些概率来猜测视锥体位姿 (\(T_f\))。它尝试预测相机视锥体相对于点云的旋转 (\(R_f\)) 和平移 (\(t_f\))。

预测视锥体旋转和平移的公式。

在这个公式中,网络使用多层感知机 (MLP) 根据点云坐标及其初始包含概率来回归旋转和平移。

步骤 B: 投影检查

一旦网络对相机视锥体的位置 (\(R_f, t_f\)) 有了猜测,它就可以从数学上验证哪些点落在其中。它使用相机的内参矩阵 (\(K\)) 将每个 3D 点 (\(p_i\)) 投影到虚拟相机平面上。

将 3D 点投影到 2D 像素的公式。

这里,\(u_i\) 代表通过投影 3D 点获得的 2D 像素坐标。

步骤 C: 生成掩码

现在,重叠区域的确定严格遵循几何规则。只有当一个点的投影坐标落在图像高度 (\(H\)) 和宽度 (\(W\)) 范围内,并且位于相机前方 (\(z \geq 0\)) 时,该点才被视为“在区域内” (\(M_p = 1\))。

生成几何掩码的公式。

通过强制执行这种视锥体几何约束,网络消除了逐点分类中常见的随机噪声。它创建了一个干净的、几何上有效的点子集以供关注。


模块 2: 隐式对应关系学习模块 (ICLM)

这是论文的核心。既然我们已经有了重叠区域 (感谢 GPDM) ,我们需要将特定的点匹配到特定的像素。

作者没有直接计算像素特征和点特征之间的相似度 (如前所述,这容易出错) ,而是使用了基于 Transformer 的注意力机制

他们引入了一组可学习的对应关系查询 (Correspondence Queries) (\(F_q\))。可以将这些查询视为被训练来寻找特定地标 (例如“建筑物的角落”或“杆子的顶部”) 的“代理”。这些代理查看图像,然后查看点云,并试图在这两个地方找到它们的特定地标。

注意力循环

该过程是迭代进行的。查询与图像特征 (\(F_I\)) 和点云特征 (\(F_P\)) 在交替步骤中进行交互: 像素注意力 (Attention-Pixel)点注意力 (Attention-Point)

交替注意力机制的公式。

Attention-Pixel 步骤中,查询从 2D 图像中提取信息。在 Attention-Point 步骤中,它们从 3D 点云中提取信息 (由 GPDM 结果掩盖,因此它们不会查看不相关的点) 。

注意力机制本身是 Transformer 中使用的标准“查询-键-值 (Query-Key-Value) ”计算:

计算查询、键和值矩阵的公式。

缩放点积注意力的公式。

通过重复这个循环 (实验表明 3 次效果最好) ,查询 (\(F_q\)) 变成了丰富的表示,能够同时在 2D 和 3D 上下文中“理解”场景。

生成关键点

在注意力循环之后,系统将这些查询转换为实际坐标。

对于图像,查询在图像网格上生成一个热力图 (\(H_I\)):

生成 2D 热力图的公式。

对于点云,它们在 3D 点上生成类似的热力图 (\(H_P\))。通过将这些热力图应用于坐标网格,模型计算出每个查询的加权平均位置。

提取最终 2D 和 3D 关键点的公式。

结果是一组 \(N_q\) 个配对的关键点: \(K_I\) (2D 坐标) 和 \(K_P\) (3D 坐标) 。至关重要的是,这些匹配是隐式发现的。网络没有被迫使特征向量完全相同;它被允许学习一种中间表示 (查询) 来弥合差异。


模块 3: 位姿回归模块 (PRM)

在这个阶段,我们有一组配对的 2D 和 3D 点。传统方法会将这些数据输入到一个数学求解器 (PnP-RANSAC) 中。本文用神经网络取而代之,允许整个系统进行端到端训练。

还记得开始时的 GPDM 模块吗?它已经给了我们要给相机位姿的“粗略”猜测 (\(R_f, t_f\))。PRM 的目标是计算残差 , 即让那个粗略猜测变得完美所需的修正量。

真实位姿与粗略视锥体位姿之间的差异定义为:

计算 delta (残差) 位姿的公式。

为了找到这个 \(\Delta R\) 和 \(\Delta t\),网络将来自关键点检测器 (\(D_P, D_I\)) 的信息和坐标 (\(K_P, K_I\)) 组合成一个“融合特征” (\(F_f\))。

创建融合特征的公式。

该特征被处理并池化为一个单一的向量 \(f_{pose}\),代表全局对齐信息。

池化为全局位姿特征的公式。

最后,两个并行的 MLP 回归旋转和平移的修正量。

最终位姿回归的公式。

通过将这些修正量添加到初始视锥体位姿,系统输出最终的、精确的相机位置。


训练模型

我们如何教这个复杂的网络?作者使用了一个复合损失函数,同时指导管道的每个部分。

  1. 分类损失 (\(\mathcal{L}_{cls}\)): 教 GPDM 正确预测哪些点在视锥体内。 分类损失公式。

  2. 视锥体位姿损失 (\(\mathcal{L}_{fru}\)): 教 GPDM 对相机位姿做出良好的初始猜测。 视锥体位姿损失公式。

  3. 对应关系损失 (\(\mathcal{L}_{corr}\)): 确保如果我们将学习到的 3D 关键点 (\(K_P\)) 投影到图像上,它们确切地落在学习到的 2D 关键点 (\(K_I\)) 上。 对应关系损失公式。

  4. 多样性损失 (\(\mathcal{L}_{div}\)): 这很有趣。我们不希望所有的查询都收敛到同一个简单的点上 (比如一个路灯) 。这个损失强制关键点在 2D 和 3D 空间上都要分散开。 多样性损失公式。

  5. 相机位姿损失 (\(\mathcal{L}_{cam}\)): 最终目标——最小化最终回归位姿的误差。 相机位姿损失公式。

这些损失被加总为总损失:

总损失公式。


实验与结果

研究人员在两个主要的自动驾驶数据集上测试了他们的模型: KITTInuScenes 。 他们使用相对平移误差 (RTE)、相对旋转误差 (RRE) 和准确率 (Acc) 来衡量成功与否。

定量结果的成功

结果不仅仅是略好;而是一个巨大的飞跃。

KITTI 和 nuScenes 上的结果表。

查看 Table 1 :

  • KITTI 数据集上,该方法达到了 97.49% 的准确率 , 而之前的最佳方法 (VP2P-match) 仅为 83.04%。
  • 平移误差 (RTE) 从 0.75m 下降到 0.20m
  • 旋转误差 (RRE) 从 3.29° 下降到 1.24°

误差的大幅减少表明,对于这项任务,隐式学习远优于显式匹配。

定性结果的成功

可视化有助于我们理解为什么这种方法效果更好。

定性比较热力图。

Figure 3 中,我们看到了投影的深度图。“Ours”一栏显示了与真实世界清晰、准确的对齐,而竞争对手 (VP-match) 经常错位相机,导致重影或完全错误的视角 (见底行) 。

我们也可以直接可视化对应关系:

正确对应关系的视觉插图。

Figure 4 显示了绿色的对应关系线。注意它们是多么平行且一致。如果匹配是错误的,这些线将会互相交叉或指向随机方向。这里的一致性证明了 ICLM 模块正在寻找可靠的地标。

为什么 GPDM 很重要?

作者进行了一项消融实验,以证明几何先验 (GPDM) 确实有帮助。

重叠区域检测的视觉插图。

Figure 5 中,左列显示了没有几何先验的检测结果。它很混乱——蓝点 (漏检) 和红点 (误报) 随处可见。中间一列显示了带有几何先验的检测结果。检测生成了一个干净、实体的形状,与实际的相机视锥体 (绿点) 相匹配。

这在 Table 2 中得到了定量支持:

显示每个设计组件效果的表格。

移除 GPDM 会使准确率从 97.49% 下降到 91.89%。移除 ICLM (隐式对应关系) 会使性能暴跌至 72.64%,表明隐式匹配是最关键的组件。


结论与启示

论文 《Implicit Correspondence Learning for Image-to-Point Cloud Registration》 提出了一个令人信服的观点: 在处理跨模态数据 (如 2D 图像和 3D 点) 时,强行进行显式特征匹配是一种次优策略。

通过转向隐式学习框架,作者实现了三个主要改进:

  1. 更好的检测: 利用视锥体的几何形状过滤掉噪声。
  2. 更好的匹配: 可学习的查询比直接的特征比较能更有效地弥合像素和点之间的鸿沟。
  3. 端到端优化: 用回归模块替换 RANSAC 允许网络从整体上学习整个任务。

对于计算机视觉的学生和研究人员来说,这项工作凸显了几何先验的力量——利用我们对物理世界的了解 (相机如何工作) 来约束深度学习模型。它还展示了注意力机制在语言或标准图像分类之外的多功能性,证明了它们是 3D 空间中进行空间推理的强大工具。