引言
想象一下,你在黑暗中摸索着穿过一个熟悉的房间,手里拿着手电筒。为了弄清楚自己在哪里,你不会把光束指向一片空白的墙壁;因为那给不了你任何信息。相反,你会本能地把光束照向明显的特征物体——门框、书架或一件独特的家具。通过主动选择“看哪里”,你最大化了在这个空间中定位自己的能力。
这种直观的人类行为正是机器人专家所说的主动视觉定位 (Active Visual Localization) 。
可靠的定位是机器人导航的基石。虽然激光雷达 (LiDAR) 传感器能提供精确的 360 度视图,但它们昂贵、沉重且耗电。相比之下,摄像头价格低廉且轻便,非常适合从家用吸尘器到空中无人机等各种设备。然而,摄像头的视场角 (FoV) 有限。如果机器人的摄像头恰好指向一个缺乏特征的区域——比如那面空白的墙——其定位系统可能会失效,导致机器人迷路。
大多数现有的视觉定位系统都是“被动”的。它们只是根据摄像头此时此刻捕捉到的画面来试图弄清楚自己在哪里。但是,如果机器人可以选择看哪里呢?
在这篇文章中,我们将探讨 ActLoc , 这是由苏黎世联邦理工学院 (ETH Zürich) 、罗马萨皮恩扎大学 (Sapienza University of Rome) 和微软的研究人员提出的一种新框架。ActLoc 将机器人从一个被动的观察者转变为一个主动的智能体,能够智能地选择视角,以确保它永远不会迷失方向。

如上图所示,ActLoc 学会了预测特定的观察方向对定位有多大帮助,并将这一知识直接整合到机器人的运动计划中。
被动定位的问题
要理解为什么 ActLoc 是必要的,我们首先需要看看视觉定位通常是如何工作的。通常,机器人捕捉图像并将其与预先构建的地图 (通常是图像数据库或 3D 点云) 进行比较,以估计其位置和朝向 (即位姿,Pose) 。
被动系统假设所有的观察方向都包含等量的信息,但这在现实世界中极少成立。看到堆满物品的厨房台面能为定位提供丰富的数据;而看着地板或天花板通常没有什么用。
以往解决这一问题 (即“主动”方法) 的尝试面临着重大障碍:
- 计算成本高: 许多方法逐一评估视角的优劣。对于需要瞬间做出决定的机器人来说,计算每一个可能角度的潜在质量太慢了。
- 缺乏上下文: 一些方法只关注局部的几何特征,却未能考虑更广泛的地图结构。
- 与规划分离: 通常,“看哪里”的决定是与“去哪里”的决定分开做的,导致运动不连贯或效率低下。
ActLoc 通过使用深度学习模型,在一个高效的步骤中一次性预测所有可能观察方向的定位质量,从而解决了这些问题。
ActLoc 方法
ActLoc 的核心是一个统一的框架,它结合了预测网络和路径规划器 。 其目标是针对一个 3D 位置 (航点,waypoint) 生成一张“LocMap”——这是一张指示哪些方向能提供最可靠定位的热力图。

1. 输入: 利用地图
机器人如何在看之前就知道哪个视角好呢?它依赖于它已经拥有的地图。具体来说,ActLoc 利用了来自运动恢复结构 (Structure-from-Motion, SfM) 重建的数据。
SfM 是一种从 2D 图像构建 3D 模型的技术。SfM 重建包含:
- 3D 地标 (Landmarks) : 机器人可以识别的空间中的独特特征点 (角点、边缘) 。
- 相机位姿 (Camera Poses) : 拍摄原始地图图像时的位置和角度。
ActLoc 将这些稀疏的 3D 地标和相机位姿作为输入。这是一个巧妙的设计选择,因为它使用了机器人在构建环境地图后自然就能获取的数据。
2. 数据预处理
在将数据输入神经网络之前,系统会对原始点云进行处理,使其易于被模型消化。

如上图所示,该流水线执行三个关键步骤:
- 过滤: 移除可能会混淆模型的高度不确定的地标。
- 自我中心变换 (Ego-Transformation) : 将坐标系转换到以机器人当前航点为中心。这确保了模型理解的是相对于机器人所站位置的几何结构。
- 裁剪: 关注机器人周围的边界框。远处的地标与即时定位的相关性较低,因此模型专注于局部邻域。
3. 神经架构
ActLoc 的核心是一个基于注意力机制的神经网络。研究人员认识到,机器人所在位置与地标之间的关系是复杂的。为了解决这个问题,他们使用了 Transformer , 即大型语言模型 (LLM) 背后的同类架构。
网络首先分别处理相机位姿和地标,从两者中提取特征。然后,它使用双向交叉注意力 (Bidirectional Cross-Attention) 机制。这使得模型能够“推理”稀疏的相机位姿与密集的 3D 地标之间的空间关系。
该网络的输出是 LocMap (\(\mathbf{C}_{\mathbf{x}}\))。模型不是输出单一的分数,而是预测一个代表不同偏航角 (yaw,水平方向) 和俯仰角 (pitch,垂直方向) 的分数网格。

在这个公式中:
- \(\mathbf{P}\) 代表 3D 地标 (点云) 。
- \(\mathbf{T}\) 代表相机位姿 (轨迹/训练视图) 。
- \(\mathbf{x}\) 是当前的航点。
- \(\mathbf{C}_{\mathbf{x}}\) 是预测出的准确度网格。
通过在一次前向传播中预测整个网格,ActLoc 比逐个角度迭代的方法要快得多。
4. 训练模型
为了训练这个网络,研究人员需要大量的标记数据——具体来说,他们需要知道数百万个不同视角的实际定位误差。用真实的机器人收集这些数据需要数年时间。
取而代之的是,他们使用了 Habitat-Matterport 3D (HM3D) 数据集,这是一个真实室内环境的高保真数字副本集合。

他们在这些虚拟环境中的数千个点上,模拟相机朝向每一个方向。然后,他们运行标准的定位算法,看看它是成功还是失败。这创建了一个丰富的数据集,网络可以从中学习房间几何结构 (SfM 地图) 与成功定位可能性之间的相关性。
5. 感知定位的规划
机器人不能在每一毫秒都将相机猛地转向“最佳”角度;那会导致不稳定、抖动的运动,可能会违反运动学约束或导致运动模糊。
ActLoc 将预测的 LocMap 整合到路径规划器中,使用一个平衡两个相互竞争目标的代价函数:
- 高定位精度: 看向 LocMap 认为精度最高的地方。
- 平滑运动: 最小化当前步骤与上一步骤之间的旋转差异。

这里,\(\mathbf{C}_{\mathbf{x}}\) 是定位代价 (来自网络) ,\(\mathbf{D}_{\mathbf{x}}\) 是运动代价 (机器人需要转动多少) 。参数 \(\lambda\) 控制权衡。这确保了机器人沿着平滑的路径移动,同时保持它的“眼睛”盯着特征丰富的区域。
实验与结果
研究人员将 ActLoc 与最先进的基线方法进行了比较,包括 LWL (Learning Where to Look) 和 FIF (Fisher Information Field) 。
可视化预测
首先,让我们看看模型实际上预测了什么。下面的可视化展示了 3D 场景 (上图) 和相应的预测 LocMap (下图) 。深蓝色/紫色的区域代表预测为定位准确的视角,而黄色/绿色的区域则被预测为困难的视角。

你可以看到,模型正确地识别出,看向特征丰富的区域 (如摆放家具的角落) 比看向空旷的空间能产生更好的定位效果。
路径规划性能
真正的考验在于这是否能改善导航。研究人员进行了模拟,机器人必须穿过一条路径。他们将 ActLoc 与标准的“前视 (Forward-Facing) ”基线 (机器人只看它前进的方向) 和 LWL 进行了比较。

在上图中,绿色路径 (ActLoc) 显示机器人调整视线以锁定特征点。蓝色路径 (基线) 显示机器人直视前方,通常导致较高的定位误差 (如红框和误差指标所示) 。
ActLoc 始终如一地实现了更高的成功率和更低的平移/旋转误差。它允许机器人“蟹行”或平滑地平移相机,以便在向目标移动的同时将地标保持在视野中。
速度与效率
最令人印象深刻的结果之一是计算效率。因为 ActLoc 一次性预测整个视图网格,它比竞争对手快几个数量级。

如表 7 所示,无论分辨率如何,ActLoc 处理一个航点大约需要 108 毫秒 。 竞争方法 LWL 对于低分辨率网格需要超过 8 秒 , 对于高分辨率网格则需要超过 100 秒 。 这种速度对实时机器人技术至关重要;一个正在移动的机器人不能停下来等 8 秒钟才决定看哪里。
鲁棒性
研究人员还测试了 ActLoc 如何处理“稀疏”地图——即预先构建的地图不完美或有数据缺失的情况。

结果表明,即使移除了大部分地图数据 (稀疏化) ,ActLoc (底部几行) 仍能保持较高的成功率,其性能退化比 LWL 平缓得多。
结论与启示
ActLoc 代表了机器人自主性向前迈出的重要一步。通过从被动观察转变为主动感知,它使机器人能够在复杂的环境中更稳健地导航。
主要的收获是:
- 整体预测: 同时预测所有角度的准确性远比逐序评估更高效。
- 利用地图: 利用底层的 SfM 地图提供了准确预测所需的几何上下文。
- 平滑集成: 将定位置信度与运动约束相结合,创造出既准确又对真实硬件可行的轨迹。
这项技术具有广泛的意义。它可以让配备低质量摄像头的廉价机器人以高端机器的精度进行导航。它可以提高依赖视觉定位的增强现实 (AR) 头显的可靠性。最终,这让我们离那些不仅能在我们的世界中移动,而且能主动理解如何观察世界的机器人更近了一步。
](https://deep-paper.org/en/paper/2508.20981/images/cover.png)