想象一下,你正在茂密的森林中徒步。环顾四周,你看到的只有树——树干、树枝和树叶,它们看起来和你十分钟前经过的那些树简直一模一样。现在,想象一下六个月后回到同一个地点。叶子落了,草长高了,光线也完全不同了。你能认出自己确切的位置吗?

这个场景凸显了机器人技术中最困难的问题之一: 自然环境中的位置识别 (Place Recognition) 。

在城市环境中,机器人可以依靠建筑物、路标和刚性的几何拐角来确定自己的位置;但在森林中,机器人面临着“感知混叠 (perceptual aliasing) ”的挑战。所有东西看起来都差不多,而且由于季节和天气的原因,环境还在不断变化。

在这篇文章中,我们将深入探讨 ForestLPR , 这是一篇提出了一种新颖方法的各种研究论文,旨在帮助机器人利用激光雷达 (LiDAR) 在森林中识别位置。其核心思想是什么?与其将森林看作一大团 3D 数据,研究人员建议将世界切分成层,并关注树木几何结构在不同高度上的变化。

问题: 为什么森林会让机器人困惑

为了进行导航,机器人需要构建地图,并识别出它何时回到了以前访问过的位置。这对于“回环检测 (Loop Closure) ”至关重要——即通过识别已访问地点来将地图拼接在一起,从而修正机器人内部指南针的漂移。

目前大多数方法使用 LiDAR (光探测和测距) 来创建 3D 点云。在城市中,这些方法效果很好,通常是将 3D 数据转换为 2D 的“鸟瞰图” (BEV) 图像,或使用神经网络直接处理这些点。

然而,森林带来了独特的挑战:

  1. 自相似性 (Self-Similarity) : 一片森林看起来和另一片非常相似。
  2. 非结构化地形 (Unstructured Terrain) : 地面不平坦,坡度变化剧烈。
  3. 时间变化 (Temporal Changes) : 树木生长,落叶,风吹动树枝。夏天扫描的景象与冬天的截然不同。

图1 展示了森林点云的复杂性和注意力图。

图 1 所示,森林的原始点云非常杂乱。地面充满噪点,树冠混乱不堪。ForestLPR 的研究人员假设,树干和树枝在特定高度上的独特空间分布包含了识别所需的稳定“指纹”。

解决方案: ForestLPR 概览

ForestLPR 代表 Forest LiDAR Place Recognition (森林激光雷达位置识别) 。 这是一个深度学习框架,旨在从 LiDAR 扫描中提取全局“签名” (描述子) ,该签名对旋转具有鲁棒性 (无论机器人朝向哪个方向都不受影响) 且能适应季节变化。

核心创新在于两个领域:

  1. 巧妙的预处理: 过滤掉噪音 (地面和树冠) ,专注于树木的稳定部分。
  2. 多重 BEV 架构: 生成不同高度间隔的多张 2D 图像,并使用一种机制来决定哪个高度层包含最有用的信息。

让我们一步步拆解这个架构。

ForestLPR 框架流程概览。

第一步: 清理数据 (预处理)

原始 LiDAR 数据包括地面 (随坡度变化) 和树顶 (随风移动且随季节变化) 。为了找到特征,我们需要对数据进行归一化。

地面分割与归一化 首先,系统将地面点与非地面点分离。但仅仅移除地面是不够的。站在山坡上的树看起来比站在山谷里的树“更高”。为了解决这个问题,算法会计算每个点相对于其正下方地面的高度。

地面分割和高度偏移去除的可视化。

图 2 所示,该算法本质上“拉平”了地形。

  • (a) 显示了具有高程变化的原始扫描。
  • (b) 显示了归一化后的扫描,所有树木都从 z=0 开始。

在数学上,归一化高度 \(h(\mathbf{p})\) 是通过减去相邻地面点的加权平均高度来计算的:

高度归一化公式。

修剪噪音 归一化后,研究人员对数据进行裁剪。他们移除了底部 1 米 (忽略草、雪和倒下的树枝) 以及 6 米以上的所有内容 (忽略随季节变化的茂密树冠) 。他们专注于 1米到 6米 的范围,这里的树干和主枝最为稳定。

第二步: 切分森林 (多重 BEV 表示)

大多数 BEV 方法将整个 3D 点云压缩成单张 2D 图像。作者认为这会导致 信息丢失 。 2 米高的分枝模式与 5 米高的模式是截然不同的。如果你把它们压在一起,就失去了这种区别。

ForestLPR 将归一化的点云切分成 \(S\) 个水平切片 (例如,5 个切片,每个 1 米厚) 。每个切片被投影到一个 2D 网格中,称为 BEV 密度图像

为了防止密集区域 (如粗树干) 压倒稀疏区域 (如细树枝) ,他们对密度值应用了对数运算:

对数尺度密度公式。

然后,他们将像素值归一化到 0-1 范围,以创建适合神经网络的图像:

图像归一化公式。

结果就是一叠图像,每张图像代表特定高度的森林几何结构。

第三步: 使用 Transformer 提取特征

现在我们有了一叠图像,我们如何理解它们?ForestLPR 使用 视觉 Transformer (具体来说是 DeiT) 作为其骨干网络。

与关注局部像素的卷积神经网络 (CNN) 不同,Transformer 将图像分割成小块 (例如 \(16 \times 16\) 像素) ,并将它们作为“Token”序列进行处理。这使得网络能够理解全局上下文——例如左边的一棵树与右边的一棵树有什么关系。

网络独立处理 \(S\) 个高度切片 (层) ,但共享相同的权重。它从 Transformer 的三个不同级别 (低、中、高层) 提取特征,以捕获细节和宏观模式。

第四步: 多 BEV 交互模块

这是论文中最关键的部分。我们要处理森林每一层 (切片) 的特征。但并非所有层都同样重要。

  • 在某个地点,独特的特征可能是 3 米处的特定分枝模式。
  • 在另一个地点,1 米处的粗树干可能是关键。

多 BEV 交互模块 (Multi-BEV Interaction Module) 允许网络在垂直层之间“对话”,并决定关注哪里。

生成注意力权重 对于每个图块 (Patch) 位置,该模块会查看所有切片的特征。它通过将每个切片与所有切片的均值进行比较来计算“相对特征值”:

相对特征计算公式。

然后,它使用 SoftMax 函数生成一个 权重向量 \(\mathbf{w}_i\)。这个向量告诉网络: “对于这个特定的图块,请给予第 2 层切片 80% 的注意力,而其他层只给 5%。”

生成注意力权重的公式。

最后,这些权重被应用于原始特征,创建一个加权的、融合的描述子,强调森林中最具辨识度的部分:

将权重应用于特征的公式。

第五步: 创建全局描述子

最后一步是将所有这些图块特征组合成代表整个地点的单个向量。系统使用专门的池化层 (GeM) 和拼接操作来创建最终的全局描述子 \(\mathbf{G}\)。

最终全局描述子生成的公式。

这个向量 \(\mathbf{G}\) 就是机器人存储在地图中的内容。当机器人看到一个新地方时,它会生成一个新的 \(\mathbf{G}\),并使用简单的余弦距离与数据库进行比较。


实验与结果

研究人员在三个不同的数据集上测试了 ForestLPR: Wild-Places (茂密的天然森林) 、ANYmal (由四足机器人采集) 和 Botanic Garden (管理良好的公园绿地) 。

可视化所用数据集的多样性。

图 4 所示,这些环境在植被密度和结构上差异很大。黄色平面表示 6 米截止线,红色平面表示 1 米地面截止线。

定量性能

使用的主要指标是 Recall@1 (R@1) , 即: “当机器人在数据库中搜索其当前位置时,排名第一的匹配项是否正确?”

ForestLPR 与 PointNetVLAD、MinkLoc3D 和标准 Scan Context 等最先进 (SOTA) 方法进行了比较。

表 1: 序列内基准测试结果。

表 1 显示了“序列内”检测 (同一运行过程中的回环) 的结果。

  • ForestLPR (Ours) 始终优于其他方法。
  • Wild-Places (V-03) 数据集上,ForestLPR 的 F1 分数达到 64.15 , 而第二好的方法 (LoGG3D-Net) 仅为 53.94。
  • ANYmal 数据集上,它达到了 81.45 , 明显高于其他方法。

该方法在 序列间 测试 (重定位) 中表现更为出色,这种情况下机器人是在几个月后重访同一地点。

表 2: 序列间性能。

表 2 中,请看“Inter-K”列 (Karawatha 森林序列) 。ForestLPR 实现了 79.02% 的召回率,而流行的 Scan-Context 方法仅为 52.81%。这证明了假设: 切分森林并选择稳定的高度,使系统对季节变化具有鲁棒性。

定性分析: 看见机器人所见

注意力机制真的有效吗?研究人员将注意力权重投影回点云进行了可视化。

投影的图块级注意力的前视图可视化。

图 6 中,颜色代表注意力权重 (红色=高,蓝色=低) 。注意网络并没有平等地看待所有东西。它专注于特定的树干部分和分枝点,这些是那些树木所独有的。它学会了忽略那些令人困惑或普遍存在的植被部分。

消融实验: 我们真的需要多个切片吗?

你可能会问,“为什么不直接把切片堆叠在一起,而不需要那个复杂的交互模块呢?”作者对此进行了测试。

表 4: 消融实验结果。

表 4 揭示了:

  • Single BEV (单张 BEV) : 如果只使用一张密度图像,性能会显著下降 (例如,V-03 上 53.70 vs 76.53) 。
  • Concatenation (直接拼接) : 如果堆叠图像但不使用交互模块对其进行加权,性能仍然低得多。
  • Ours (我们的方法) : 完整的交互模块提供了最佳结果,证明系统需要 自适应地 选择哪个高度是重要的。

结论

ForestLPR 代表了机器人在自然界中运行迈出的重要一步。通过将森林视为多层几何拼图,而不是混乱的点云,该方法在非结构化的世界中找到了稳定性。

关键要点:

  1. 高度很重要: 几何信息在不同海拔高度上是不同的。对数据进行切片捕获了这一点。
  2. 自适应注意力: 并非树的所有部分都同样独特。允许网络为每个图块“选择”最佳高度切片可以提高准确性。
  3. 鲁棒性: 通过过滤地面和树冠,并专注于树干几何结构,机器人即使在季节变化时也能识别地点。

随着我们迈向自主搜救无人机或林业监测机器人,像 ForestLPR 这样的技术对于确保这些机器不会在丛林中迷失方向至关重要。