【ACE-SLAM】场景坐标回归实时神经 SLAM:TriMLP 架构与隐式回环闭合

摘要

神经隐式 SLAM 方法(如 NICE-SLAM、SplaTAM)精度出色但帧率通常不到 1 FPS,无法用于实时应用。Imperial College 的 ACE-SLAM 首次将**场景坐标回归(Scene Coordinate Regression, SCR)**作为核心地图表示,通过训练轻量 MLP 将 2D 图像特征直接映射到 3D 全局坐标,实现 29.7 FPS 严格实时运行 ,地图仅 ~1MB,且无需专用回环检测模块即可隐式处理回环闭合。


论文ACE-SLAM: Scene Coordinate Regression for Real-Time SLAM

代码github.com/ialzugaray/ace-slam(预告)


一、问题背景:神经隐式 SLAM 的实时性鸿沟

当前神经隐式 SLAM 有两大阵营:

阵营 代表 精度 FPS 地图大小
体积渲染 NICE-SLAM, ESLAM, SplaTAM 0.3~7 45~96 MB
传统特征 ORB-SLAM3 30+

矛盾:体积渲染方法需要逐帧做神经渲染优化(极慢),传统方法快但缺乏隐式表示的泛化和紧凑性。

ACE-SLAM 的思路完全不同:不做体积渲染,而是训练一个网络直接预测"这个像素对应全局坐标系的哪个 3D 点"------这就是场景坐标回归。预测出 2D-3D 对应后,用 RANSAC + Kabsch 算法直接闭式求解位姿,不需要迭代优化。


二、核心方法

图 1:ACE-SLAM 系统架构。上半部分为实时定位流程(特征提取→TriMLP 坐标回归→RANSAC 位姿求解),下半部分为在线地图更新循环(关键帧触发 SGD 更新网络权重),底部说明隐式回环闭合机制。重绘自 design skill

2.1 系统流水线

三步走:

  1. 特征提取 :预训练冻结的特征提取器(ACE 密集特征或 SuperPoint 稀疏特征)从 RGB 帧提取特征 f i t f_i^t fit
  2. 场景坐标回归 :SCR 网络 M M M 将特征映射为全局 3D 坐标 y ^ i = M ( f i t ) \hat{y}_i = M(f_i^t) y^i=M(fit)
  3. 位姿估计:RANSAC 采样 triplet → Kabsch-Umeyama 闭式求解 → 内点精化

回归损失函数:

L y ( M , P ) = ∑ P t ∈ P ∑ f i t ∈ F t ∥ M ( f i t ) − P t ⋅ y i t ∥ 2 \mathcal{L}y(M, P) = \sum{P^t \in \mathcal{P}} \sum_{f_i^t \in \mathcal{F}^t} \|M(f_i^t) - P^t \cdot y_i^t\|^2 Ly(M,P)=Pt∈P∑fit∈Ft∑∥M(fit)−Pt⋅yit∥2

其中 M M M 是 SCR 网络, P t P^t Pt 是相机位姿, y i t y_i^t yit 是由深度图反投影得到的局部 3D 点经位姿变换后的全局坐标。网络通过最小化预测坐标与观测坐标之间的 L2 距离来在线学习场景几何。

2.2 TriMLP:三正交平面坐标回归

这是 ACE-SLAM 的架构创新。传统 HomMLP 直接回归 3D 坐标 ( x , y , z ) (x,y,z) (x,y,z)------这是一个高维连续回归问题,在大场景中容易混淆。

TriMLP 的核心思想 :将 3D 坐标回归分解为三个正交 2D 平面上的分类问题(XY、XZ、YZ 平面),每个平面独立做 softmax 投票,最终坐标由三个平面预测的加权平均组合得到:

y ~ i = x \~ i ,    y \~ i ,    z \~ i ⊤ \tilde{y}_i = \\tilde{x}_i,\\; \\tilde{y}_i,\\; \\tilde{z}_i^\top y~i=x\~i,y\~i,z\~i

每个坐标分量由对应两个平面的预测取均值( x x x 来自 XY 和 XZ 平面,以此类推)。

这种分解提供了更强的归纳偏置

  • 把连续回归变成离散分类 → 优化更稳定
  • 三平面冗余约束 → 单平面预测错误可被其他平面纠正
  • 适合在线学习 → 新区域可独立更新对应平面的权重

2.3 位姿估计:RANSAC + Kabsch

从 SCR 预测的 2D-3D 对应中:

  • 随机采样 triplet(3 个点对),用 Kabsch-Umeyama 算法闭式求解 SE(3) 位姿假设
  • 生成最多 H H H 个假设,选择内点比例 λ t \lambda^t λt 最高的假设
  • 仅用内点重新精化位姿

内点阈值 τ \tau τ 决定了匹配严格程度。 λ t \lambda^t λt 同时用于评估跟踪质量------低 λ t \lambda^t λt 意味着地图对当前帧的覆盖不足,触发关键帧添加。

2.4 隐式回环闭合

这是 ACE-SLAM 最优雅的设计:不需要专门的回环检测和位姿图优化

原理:SCR 网络在整个序列上持续训练,旧区域的特征-坐标映射自然保持在网络权重中。当机器人重访某区域时,网络仍能正确预测该区域的全局坐标 → RANSAC 自动给出与全局一致的位姿 → 回环隐式闭合。

这种设计避免了传统方法中回环检测器失败导致的灾难性漂移修正。

2.5 关键帧与地图更新策略

  • 时间阈值 σ ˉ \bar{\sigma} σˉ:每隔固定时间强制添加关键帧,保证场景覆盖
  • 内点比例阈值 λ ˉ \bar{\lambda} λˉ :当 λ t < λ ˉ \lambda^t < \bar{\lambda} λt<λˉ 时添加关键帧(地图对当前帧不熟悉)
  • 优化窗口采样:概率性偏向低置信度帧,平衡全局覆盖与薄弱区域加强

#mermaid-svg-pAnoNGvY2ZMdWmtv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pAnoNGvY2ZMdWmtv .error-icon{fill:#552222;}#mermaid-svg-pAnoNGvY2ZMdWmtv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pAnoNGvY2ZMdWmtv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .marker.cross{stroke:#333333;}#mermaid-svg-pAnoNGvY2ZMdWmtv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pAnoNGvY2ZMdWmtv p{margin:0;}#mermaid-svg-pAnoNGvY2ZMdWmtv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster-label text{fill:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster-label span{color:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster-label span p{background-color:transparent;}#mermaid-svg-pAnoNGvY2ZMdWmtv .label text,#mermaid-svg-pAnoNGvY2ZMdWmtv span{fill:#333;color:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .node rect,#mermaid-svg-pAnoNGvY2ZMdWmtv .node circle,#mermaid-svg-pAnoNGvY2ZMdWmtv .node ellipse,#mermaid-svg-pAnoNGvY2ZMdWmtv .node polygon,#mermaid-svg-pAnoNGvY2ZMdWmtv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .rough-node .label text,#mermaid-svg-pAnoNGvY2ZMdWmtv .node .label text,#mermaid-svg-pAnoNGvY2ZMdWmtv .image-shape .label,#mermaid-svg-pAnoNGvY2ZMdWmtv .icon-shape .label{text-anchor:middle;}#mermaid-svg-pAnoNGvY2ZMdWmtv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .rough-node .label,#mermaid-svg-pAnoNGvY2ZMdWmtv .node .label,#mermaid-svg-pAnoNGvY2ZMdWmtv .image-shape .label,#mermaid-svg-pAnoNGvY2ZMdWmtv .icon-shape .label{text-align:center;}#mermaid-svg-pAnoNGvY2ZMdWmtv .node.clickable{cursor:pointer;}#mermaid-svg-pAnoNGvY2ZMdWmtv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .arrowheadPath{fill:#333333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pAnoNGvY2ZMdWmtv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pAnoNGvY2ZMdWmtv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pAnoNGvY2ZMdWmtv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster text{fill:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv .cluster span{color:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pAnoNGvY2ZMdWmtv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pAnoNGvY2ZMdWmtv rect.text{fill:none;stroke-width:0;}#mermaid-svg-pAnoNGvY2ZMdWmtv .icon-shape,#mermaid-svg-pAnoNGvY2ZMdWmtv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pAnoNGvY2ZMdWmtv .icon-shape p,#mermaid-svg-pAnoNGvY2ZMdWmtv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pAnoNGvY2ZMdWmtv .icon-shape .label rect,#mermaid-svg-pAnoNGvY2ZMdWmtv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pAnoNGvY2ZMdWmtv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pAnoNGvY2ZMdWmtv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pAnoNGvY2ZMdWmtv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是



RGB-D 帧到达
冻结特征提取器

ACE/SuperPoint
TriMLP 场景坐标回归

features → 3D coords
RANSAC + Kabsch

闭式位姿求解
内点比例 λ > λ̄?
输出位姿

继续下一帧
添加关键帧

更新 SCR 网络
重访区域?
SCR 自动预测全局坐标

隐式回环闭合


三、实验分析

3.1 静态场景精度

方法 Replica (m) TUM (m) ScanNet (m) FPS 地图大小
NICE-SLAM 0.016 0.030 0.056 0.33 95.86 MB
ESLAM 0.006 0.025 0.057 7.35 45.46 MB
ACE-SLAM 0.034 0.053 0.212 29.7 1.11 MB

精度上 ACE-SLAM 不如体积渲染方法,但换来的是:

  • 速度快 90×(29.7 vs 0.33 FPS)
  • 地图小 86×(1.11 vs 95.86 MB)
  • 首个达到 99% 实时率的神经隐式 SLAM

3.2 动态场景鲁棒性

序列 ACE-SLAM (m) 说明
fr3/s/xyz 0.037 小物体运动
fr3/s/static 0.007 静态参考
fr3/w/xyz 0.072 大面积运动

ACE-SLAM 在动态场景中无需语义分割或动态物体检测------SCR 网络通过多帧训练自然"忽略"不一致的动态区域。

3.3 TriMLP vs HomMLP 消融

数据集 TriMLP (m) HomMLP (m) 提升
Replica Avg 0.034 0.046 -26%
TUM Avg 0.053 0.056 -5%
ScanNet Avg 0.212 0.254 -17%

TriMLP 在大型复杂场景(Replica、ScanNet)上优势显著------三平面分解的归纳偏置在空间跨度大时特别有效。

3.4 运行时分解

配置 定位速度 FPS RT-Factor
ACE 密集特征 11 ms 93 FPS (定位) 99.0%
SuperPoint 稀疏 13 ms 76 FPS (定位) 99.0%

端到端 FPS 29.7 是因为包含了地图更新的 SGD 步骤------但系统通过跳帧策略保证时间对齐,实时率 99%。


小结

ACE-SLAM 重新定义了"实时"在神经隐式 SLAM 中的含义。它的核心决策是放弃体积渲染换取速度------用 SCR 网络直接回归坐标,用 RANSAC 直接求位姿,不做任何迭代渲染优化。

三个设计亮点:

  1. TriMLP 三平面分解:把 3D 回归变成 2D 分类,优化更稳定,归纳偏置更强,大场景下精度提升 26%
  2. 隐式回环:SCR 网络的权重本身就是"记忆",重访时自动给出全局一致坐标,不需要回环检测器
  3. 极致紧凑:整个场景地图仅 1MB------比 NICE-SLAM 小 86 倍,可以在资源受限设备上部署

权衡也很明确:精度不如体积渲染方法(ATE 差 2-4×),因为 SCR 本质上是做回归近似而非精确几何建模。但对于"实时性优先、存储受限"的场景(如无人机、AR 眼镜),这个 tradeoff 是合理的。

这篇工作证明了一个反直觉的结论:你不需要渲染就能做神经 SLAM。场景坐标回归是一条被低估的路线------快、轻、天然抗动态,只是精度还需要追赶。


参考文献:I. Alzugaray, M. Taher, A. J. Davison, "ACE-SLAM: Scene Coordinate Regression for Real-Time SLAM," arXiv:2512.14032, 2025.

相关推荐
2601_956414141 小时前
2026年DTC独立站开发与小语种独立站设计的优质服务选择指南
人工智能
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月3日
大数据·人工智能·python·信息可视化·自然语言处理
m沐沐1 小时前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 过采样
人工智能·算法·机器学习·pycharm·逻辑回归
code_pgf1 小时前
SFT 过程及技巧详解
人工智能·机器学习
七牛开发者1 小时前
从 Claude 案例看 Coding Agent 的计划层设计
人工智能·ai·agent·claude·claudecode
蒟蒻的贤1 小时前
从线性分类器到两层神经网络:为什么我们需要非线性?
人工智能·深度学习·神经网络
zy_destiny1 小时前
【大模型应用】用千问大模型实现屋顶材质分类算法实现
人工智能·深度学习·机器学习·计算机视觉·数据挖掘·材质·通义千问
米核AI易山1 小时前
扣子工作流实战:多节点串联打造 AI 内容自动化流水线
人工智能·自动化·coze·扣子工作流·米核ai易山
qxq_sunshine1 小时前
千问(Qwen)模型Linux部署操作手册
人工智能·gpt·语言模型