学习式单目SLAM把跟丢换成漂移,合成光照还会排错系统

Failure or Drift? Evaluating Monocular SLAM under Synthetic and Real-World Corruptions

Abhay Skaria Thomas, Shashank Agnihotri, Margret Keuper

ECCV 2026

cs.CV, cs.RO

2026-08-31

在KITTI合成损坏和4Seasons上,ORB-SLAM2常直接跟丢,DPVO与DROID-SLAM从不空轨却常漂过100米;便宜亮度扰动偏向DPVO,结构化雨雾偏向DROID,真实夜晚把排序反过来。

这篇在解决什么

单目SLAM的标准评测几乎全在干净轨迹上。车上、机器人上真正出事的是雨、雾、弱光、运动模糊和压缩噪声。真实恶劣天气数据最忠实,可路线、传感器、运动和天气缠在一起,分不清是哪一项把跟踪打垮。合成损坏能把路线和真值钉死、只改图像,前提是它推出的工程结论和它想近似的真实条件一致。这篇问的就是这个外部效度问题。

失败形态也不能收成一个轨迹误差。特征法可能直接跟丢、交出空轨迹;学习式跟踪器可以继续输出位姿,同时把误差一点点攒起来。前者好检测,后者会把错位姿送进建图、规划和控制。

方法

三条系统都不做损坏特化适配:ORB-SLAM2代表稀疏特征加回环,DPVO代表学习补丁的局部视觉里程计,DROID-SLAM代表稠密对应加全局集束调整。干净基线是KITTI里程计00到10的单目模式。受控损坏全部做在序列00上,共115个变体:13种图像空间变换、7种几何感知效应、3种复合组合,各5档强度。真实对照用4Seasons的四段邻里序列,分别对应阴天参考、雨、冬雾感、傍晚,再和雨加对比度、雾加对比度、亮度加对比度这些复合代理对齐。

评测先报轨迹是否可对齐到真值,再在有效轨迹上算Sim(3)对齐后的APE和RPE。空输出不当成低误差。学习式两者的对比只用两边都跑出来的条件。

结果

干净KITTI上三家全部交出可评估轨迹。ORB-SLAM2中位条件APE最低,8.2米,但序列01上到518.0米。DPVO和DROID-SLAM中位APE是64.9米和82.0米,相对名次随路线变。

合成损坏下分工立刻反过来。DPVO和DROID-SLAM在所有已归档合成尝试里都不空轨;ORB-SLAM2在图像空间63次里只有37次有效,几何感知23次里15次,复合15次里10次。高斯噪声、脉冲噪声和雪在所有记录强度上都让ORB交不出轨迹。学习式系统继续跑的代价是几何感知和复合条件下对齐APE经常超过100米。

哪家学习式跟踪更稳,完全取决于损坏长什么样。43组配对图像空间条件里,DPVO有30组APE更低,亮度和对比度每一档都站DPVO。33组几何感知条件里DROID-SLAM全胜,14/15组复合条件也是它更好,唯一翻盘是雾加对比度的第5档。几何感知雨里DROID-SLAM的APE从强度1的111.9米降到强度5的87.9米,DPVO卡在125.5到129.2米;强度排序的是损坏参数,不是估计难度。

迁到真实数据,结构化代理保住了排序:雨加对比度上DROID-SLAM平均好17.96米,真实雨天好16.40米;雾加对比度好2.27米,真实冬天好5.15米。傍晚翻盘:亮度加对比度仍偏向DROID-SLAM 5.51米,真实多云夜晚DPVO反而好10.85米。合成曲线之间ρ=1.00也保不住真实排序。

为什么重要

部署时「系统还在出位姿」和「位姿还能信」是两件事。学习式跟踪器把灾难性跟丢换成持续漂移,下游如果只看输出是否为空,会把错估计当成健康信号。评测协议必须先报有效率,再报条件误差。

更实际的警告是:用ImageNet-C那种便宜全局变换做SLAM鲁棒性排行,会把冠军颁给DPVO;一旦损坏带上深度和空间结构,冠军换成DROID-SLAM。雨雾代理能把这个弱点带到真实数据里,照明代理不能。合成损坏适合当诊断干预,不适合当部署误差的校准预报。

局限与存疑

受控扫描只用KITTI序列00、每个条件一次归档运行,场景依赖、初始化方差和运行非确定性都没测。有效性是二元的,截断轨迹还覆盖了多少时间并不清楚。4Seasons只是语义配对,不是同一路线同一相机,绝对误差不能跨域比。研究停在单目轨迹,没有惯导融合,也没有地图精度、完整度、耗时和显存。论文自己也说,没有拆开稠密对应、循环更新和全局优化各自的贡献,机制解释只是和架构一致,不是因果归因。

术语

原文与代码

社区讨论

相关论文

全部论文解读