边缘算力一挤,高斯SLAM丢帧超94%,ATE会把失败评成成功

SLAMSqueezeBench: Comparing SLAM Systems under Resource Constraints

Mohamed Hefny, Karthik Dantu, Steven Y. Ko

cs.RO

2026-09-17

SLAMSqueezeBench在真实帧率和资源上限下横评九套系统:无截止时高斯SLAM仍丢帧94%以上,ATE只评估报出的位姿,会把中途停更评成高精度。

这篇在解决什么

SLAM 在真机器人上从来不是独占整台机器。相机按 25–30 Hz 往外吐帧,规划、分割、控制同时抢 CPU 和 GPU。现有基准几乎都在「等你算完再给下一帧」的离线回放里报轨迹误差,慢系统照样吃到每一帧,看起来很稳。

SLAMSqueezeBench 把这个前提拆掉。框架用 cgroup 和 HAMi-core 给 CPU、内存、磁盘、GPU 显存和算力加帽,再用 stress-ng、自研 SqueezeGPU 或真实的 SAM 3 分割当邻居,相机按数据集标称帧率送帧,两帧缓冲满了就丢最老的。评价除了 ATE,还加了陈旧位姿误差 SPE:在每一个真值时刻用「当时手里最新的那一帧位姿」,空窗期误差会随机器人继续走而变大。

方法

九套系统分成三家,各跑自家能跑的序列:经典几何用 EuRoC V101,20 Hz,500 帧;学习系用 TUM fr1/desk,30 Hz;高斯溅射用 KITTI 07,10 Hz,200 帧。经典三套是带/不带 IMU 的 ORB-SLAM3、OKVIS2-X 和 cuVSLAM;学习四套是 DROID-SLAM、DPV-SLAM、MASt3R-SLAM、VGGT-SLAM;高斯两套是 GigaSLAM 和 S3PO-GS。硬件固定为 i7-12700K + 62 GiB + RTX 3090。每组设重复三次。

六组实验:E1 逐步把 CPU 帽收到半核;E2 用竞争负载把平均 CPU 用到和帽相同,看「平均够用」够不够;E3/E4 用合成 GPU 负载和 SAM 3;E5 按桌面(8 核/16 GiB/8 GiB 显存)和嵌入式(6 核/4 GiB/4 GiB)同时加帽;E6 只对 ORB-SLAM3 做 30% 干净、20% 半核、50% 放开的瞬时挤压。

结果

只开截止、不加帽,已经能把系统拆开。EuRoC 上不带 IMU 的 ORB-SLAM3 丢帧 15%;TUM 上学习系丢 16%–75%;KITTI 上 GigaSLAM 丢 94%,S3PO-GS 丢 97% 并直接失败。cuVSLAM 从无截止到半核帽都是 0 丢帧、ATE 约 0.070 m、报满 499–500 个位姿。

ATE 会撒谎。VGGT-SLAM 半核帽下 ATE 仍是 0.021 m,和四核时一样漂亮,报出的位姿从 41 降到 17,SPE 从 0.313 m 升到 0.858 m。空窗被 ATE 扔掉了,SPE 留下。

平均 CPU 够用也不等于能跑。带 IMU 的 ORB-SLAM3 在一核帽下失败,换成大约同等平均占用的 30 个 CPU worker 就能跑完。DPV-SLAM 则相反,同等平均占用下竞争负载比硬帽更伤,位姿从 327 降到 283,ATE 从 0.497 升到 0.594 m。

GPU 邻居按占空比打。DROID-SLAM 在 4096 矩阵、占空比 0.25 到 0.95 时,报出位姿从 61 降到 26,丢帧 56% 到 93%。VGGT-SLAM 四个占空比都只报 34 个位姿。SAM 3 把 GPU 占到约 77%,六个 GPU 系统的丢帧和占空比 0.75–0.95 的合成负载接近。嵌入式预算下 DROID-SLAM、MASt3R-SLAM、VGGT-SLAM、GigaSLAM、S3PO-GS 全部叉掉。瞬时半核挤压里,ORB-SLAM3 六次里五次丢跟踪并重置地图,放开后能再跟,但保存轨迹从挤压之后才开始。

为什么重要

选机载 SLAM 不能只看论文表上的厘米级 ATE。这篇把「帧还在不在、位姿还出不出、挤完还能不能续上」写成可复现实验。SPE 是给机器人用的指标:控制环在空窗里仍按旧位姿走。高斯溅射两套在 10 Hz 的 KITTI 上都跟不上相机,这比再刷一个室内 PSNR 更接近装车时会碰到的问题。

局限与存疑

三家系统跑在三个数据集、三个帧率上,跨家族不能直接比精度。机器是固定桌面,帽是软件模拟,不是 Jetson 的真实内存层次和 GPU 调度。E6 只测了 ORB-SLAM3。SPE 在第一个位姿出现前用起点真值当参考,会把启动延迟算进误差。合成负载和 SAM 3 都不是完整的导航栈。代码承诺随论文公开,目前还没有第三方复现。

术语

原文与代码

社区讨论

相关论文

全部论文解读