SLAMVIO视觉里程计深度学习计算机视觉## 摘要
几何基础模型(VGGT、DUSt3R 等)让 SLAM 进入"前馈推理"时代,但单一范式无法兼顾延迟与一致性:两视图推理快却约束稀疏,多视图约束丰富却必须攒够帧才能跑。ECCV 2026 的 UniSim-SLAM 回到经典 SLAM 的双流架构------前端两视图跟踪、后端多视图子图精化------并解决了一个经典 SLAM 里不存在的新问题:两种推理输出处于不同局部坐标系、尺度互不相容。其方案是在 S i m ( 3 ) Sim(3) Sim(3) 流形上构建统一多层次因子图,联合优化全局关键帧位姿与子图位姿。免标定设置下 TUM RGB-D 平均 ATE 0.032 m(降 38.5%),7-Scenes 0.020 m(降 45.9%)。
论文 :UniSim-SLAM: Feed-Forward SLAM with Unified Sim(3) Optimization
一、问题背景:前馈 SLAM 的两难
要理解 UniSim-SLAM 在解决什么,先看清前馈推理的两种范式各自的硬伤。
两视图推理(MASt3R-SLAM、ViSTA-SLAM 这条路)把相邻两张图喂给基础模型,直接回归相对位姿与深度。优点是收到新帧立刻能算,延迟低,且时序相邻关系天然稠密;缺点是几何约束只来自两张图,误差会随时间稳定累积,长期漂移压不住。
多视图推理 (VGGT-SLAM 这条路)必须积累固定数量的帧构成子图(submap)才能推理。约束丰富、几何一致性好,但每帧更新不现实 (一次推理就是百毫秒到秒级),而且子图之间的修正是靠重叠区域传递的------相邻子图一旦不重叠,全局一致性就断了。
论文的原始动机图把这两难画得很清楚:

图 1:前馈 SLAM 的两种推理范式。(a) 两视图:快但几何线索少;(b) 多视图:几何线索丰富但慢;© UniSim-SLAM 两者兼得。重点看 © 中前端实线红轨迹与后端虚线子图框同时存在------这正是双流架构的视觉表达。来源:UniSim-SLAM 论文 Fig. 1
论文的关键判断是:回到经典 SLAM 的架构原则 。ORB-SLAM3、LSD-SLAM、Kimera、DSO 这些经典系统早就用"前端轻量里程计 + 后端间歇性全局一致性修正"化解了同类效率---一致性矛盾。于是 UniSim-SLAM 采用同样的双流结构,但两个流里跑的都是基础模型的前馈推理,而非手写特征或光度残差。
问题随之而来:两种前馈推理的输出不在同一个坐标系里,尺度也不一致。这构成了本文真正的技术难点。下面这张图概括了整条数据流:
#mermaid-svg-gWBPeLEC8UwP6k9g{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-gWBPeLEC8UwP6k9g .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-gWBPeLEC8UwP6k9g .error-icon{fill:#552222;}#mermaid-svg-gWBPeLEC8UwP6k9g .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gWBPeLEC8UwP6k9g .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gWBPeLEC8UwP6k9g .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gWBPeLEC8UwP6k9g .marker.cross{stroke:#333333;}#mermaid-svg-gWBPeLEC8UwP6k9g svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gWBPeLEC8UwP6k9g p{margin:0;}#mermaid-svg-gWBPeLEC8UwP6k9g .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster-label text{fill:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster-label span{color:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster-label span p{background-color:transparent;}#mermaid-svg-gWBPeLEC8UwP6k9g .label text,#mermaid-svg-gWBPeLEC8UwP6k9g span{fill:#333;color:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g .node rect,#mermaid-svg-gWBPeLEC8UwP6k9g .node circle,#mermaid-svg-gWBPeLEC8UwP6k9g .node ellipse,#mermaid-svg-gWBPeLEC8UwP6k9g .node polygon,#mermaid-svg-gWBPeLEC8UwP6k9g .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gWBPeLEC8UwP6k9g .rough-node .label text,#mermaid-svg-gWBPeLEC8UwP6k9g .node .label text,#mermaid-svg-gWBPeLEC8UwP6k9g .image-shape .label,#mermaid-svg-gWBPeLEC8UwP6k9g .icon-shape .label{text-anchor:middle;}#mermaid-svg-gWBPeLEC8UwP6k9g .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-gWBPeLEC8UwP6k9g .rough-node .label,#mermaid-svg-gWBPeLEC8UwP6k9g .node .label,#mermaid-svg-gWBPeLEC8UwP6k9g .image-shape .label,#mermaid-svg-gWBPeLEC8UwP6k9g .icon-shape .label{text-align:center;}#mermaid-svg-gWBPeLEC8UwP6k9g .node.clickable{cursor:pointer;}#mermaid-svg-gWBPeLEC8UwP6k9g .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-gWBPeLEC8UwP6k9g .arrowheadPath{fill:#333333;}#mermaid-svg-gWBPeLEC8UwP6k9g .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gWBPeLEC8UwP6k9g .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gWBPeLEC8UwP6k9g .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gWBPeLEC8UwP6k9g .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-gWBPeLEC8UwP6k9g .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gWBPeLEC8UwP6k9g .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster text{fill:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g .cluster span{color:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g 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-gWBPeLEC8UwP6k9g .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-gWBPeLEC8UwP6k9g rect.text{fill:none;stroke-width:0;}#mermaid-svg-gWBPeLEC8UwP6k9g .icon-shape,#mermaid-svg-gWBPeLEC8UwP6k9g .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gWBPeLEC8UwP6k9g .icon-shape p,#mermaid-svg-gWBPeLEC8UwP6k9g .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-gWBPeLEC8UwP6k9g .icon-shape .label rect,#mermaid-svg-gWBPeLEC8UwP6k9g .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gWBPeLEC8UwP6k9g .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-gWBPeLEC8UwP6k9g .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-gWBPeLEC8UwP6k9g :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 回环检测
图像检索 + 几何验证
输入图像流
关键帧采样
前端:两视图推理 f_2v
相对位姿 T̂_ij^2v
两视图深度 D̂_2v
顺序复合初始化
T_j = T_i · T̂_ij^2v
后端:攒够 14 帧
构建子图
多视图推理 f_mv
子图局部位姿 T̂_mi^mv
多视图深度 D̂_mv
统一 Sim(3) 因子图
联合优化
{T_i} 与 {S_m}
全局一致轨迹
稠密点云重建
联合回环子图
图 2:UniSim-SLAM 数据流。前端(左支)与后端(右支)异步并行,在统一 S i m ( 3 ) Sim(3) Sim(3) 因子图处汇合。虚线为回环通路。来源:本文根据论文 §3 与附录 A1 绘制
二、核心方法
2.1 整体框架

图 3:UniSim-SLAM 整体框架。右上为前端两视图跟踪(输出相对位姿 T ^ i j 2 v \hat{T}^{2v}{ij} T^ij2v 与两视图深度),左下为后端多视图推理(输出子图局部位姿 { T ^ m i m v } \{\hat{T}^{mv}{mi}\} {T^mimv} 与多视图深度)。二者汇入右下角由 View-to-View、Submap-to-View、Submap-to-Submap 三类边构成的统一因子图。重点看右侧图例:五条残差项对应五种颜色,红( e 2 v e^{2v} e2v)走全局链、蓝( e b r e^{br} ebr)连子图与视图、黄( e a n c h e^{anch} eanch)锚定尺度、绿( e t i e e^{tie} etie)约束重叠子图、紫( e s c e^{sc} esc)约束子图间尺度。来源:UniSim-SLAM 论文 Fig. 2
系统由前端、后端两个独立线程异步运行:
- 前端 :对每对时序相邻关键帧 ( I i , I j ) (I_i, I_j) (Ii,Ij),用两视图基础模型(VGGT 或 STA)得到
{ D ^ i 2v , D ^ j 2v , T ^ i j 2v } = f 2v ( I i , I j ) \{\hat{D}^{\text{2v}}{i},\hat{D}^{\text{2v}}{j},\hat{T}^{\text{2v}}{ij}\}=f{\text{2v}}(I_{i},I_{j}) {D^i2v,D^j2v,T^ij2v}=f2v(Ii,Ij)
其中 D ^ 2v \hat{D}^{\text{2v}} D^2v 为预测深度图, T ^ i j 2 v ∈ S i m ( 3 ) \hat{T}^{\mathrm{2v}}_{ij}\in Sim(3) T^ij2v∈Sim(3) 为相对变换(尺度分量初始化为 1)。全局位姿通过顺序复合在线初始化:
T j = T i T ^ i j 2 v T_{j}=T_{i}\hat{T}^{\mathrm{2v}}_{ij} Tj=TiT^ij2v
第一帧 I 0 I_0 I0 定义全局坐标系原点。这个顺序初始化隐式定义了因子图中的时序边,即使子图完全不重叠,图也保持连通。
- 后端 :攒够连续关键帧后,在窗口 W m \mathcal{W}_m Wm 上构建第 m m m 个子图,用多视图模型推理:
{ D ^ m i m v , T ^ m i m v } i ∈ W m = f m v ( I m ) \{\hat{D}^{\mathrm{mv}}{mi},\hat{T}^{\mathrm{mv}}{mi}\}_{i\in\mathcal{W}m}=f{\mathrm{mv}}(\mathcal{I}_m) {D^mimv,T^mimv}i∈Wm=fmv(Im)
注意论文特意用 f 2v f_{\text{2v}} f2v 和 f mv f_{\text{mv}} fmv 区分两个模型------它们不要求是同一种模型。论文验证了前端用低延迟的 STA、后端保留 VGGT 的异构配置(Ours + STA),性能依然有竞争力。
2.2 难点:异质坐标系的拼接
多视图推理是在自己的局部坐标系 里重建的,以子图中心关键帧为原点。要把它接进全局轨迹,需要引入子图位姿 S m ∈ S i m ( 3 ) S_m\in Sim(3) Sm∈Sim(3):
T i ≈ S m T ^ m i mv T_{i}\approx S_{m}\hat{T}^{\text{mv}}_{mi} Ti≈SmT^mimv
麻烦在于:多视图预测依赖输入的视图集合(view-set dependent) ,同一个关键帧在不同子图里会得到不同的尺度和位姿。所以子图局部位姿不能当作全局一致的测量 ,必须显式引入 { S m } \{S_m\} {Sm}。
论文用深度统计量估计相对尺度:
s m i r e l = m e d i a n ( D ^ m i m v / D ^ i 2 v ) s^{\mathrm{rel}}{mi}=\mathrm{median}({\hat{D}^{\mathrm{mv}}{mi}}/{\hat{D}^{\mathrm{2v}}_{i}}) smirel=median(D^mimv/D^i2v)
即同一视角下多视图深度与两视图深度的中位数比值 。子图初始尺度设为 s m ( 0 ) = s i / s m i r e l s_{m}^{(0)}={s_{i}}/{s^{\mathrm{rel}}_{mi}} sm(0)=si/smirel,子图位姿初始化为:
S m ( 0 ) = s m ( 0 ) R i t i s m i r e l 0 ⊤ 1 S_{m}^{(0)}=\begin{bmatrix}s_{m}^{(0)}R_{i}&\dfrac{t_{i}}{s^{\mathrm{rel}}_{mi}}\\ \mathbf{0}^{\top}&1\end{bmatrix} Sm(0)= sm(0)Ri0⊤smirelti1
平移项用同一个相对尺度因子缩放,是为了保持全局系与子图系之间的相似变换结构不被破坏。
但作者指出,仅靠初始化阶段一次性对齐是不够 的:当两视图和多视图约束同时施加时,一个子图内会同时存在多个 S i m ( 3 ) Sim(3) Sim(3) 关系。这正是要构建多层次因子图的动机。
2.3 统一 Sim(3) 位姿图
图 G = ( V , E ) G=(V,E) G=(V,E) 的节点是全局位姿节点与子图位姿节点:
V = V T ∪ V S , V T = { T i ∈ S i m ( 3 ) } , V S = { S m ∈ S i m ( 3 ) } \mathcal{V}=\mathcal{V}{T}\cup\mathcal{V}{S},\quad\mathcal{V}{T}=\{T{i}\in Sim(3)\},\quad\mathcal{V}{S}=\{S{m}\in Sim(3)\} V=VT∪VS,VT={Ti∈Sim(3)},VS={Sm∈Sim(3)}
边集按层次分为三组:
E = E t e m p ∪ E v 2 s ∪ E s 2 s \mathcal{E}=\mathcal{E}^{\mathrm{temp}}\;\cup\;\mathcal{E}^{\mathrm{v2s}}\;\cup\;\mathcal{E}^{\mathrm{s2s}} E=Etemp∪Ev2s∪Es2s
| 边类型 | 连接对象 | 残差定义 | 作用 |
|---|---|---|---|
| View-to-View(时序) | 相邻全局位姿 | e i j 2 v = log ( ( T ^ i j 2 v ) − 1 ( T i − 1 T j ) ) \mathbf{e}^{\mathrm{2v}}{ij}=\log\!\left(({\hat{T}^{\mathrm{2v}}{ij}})^{-1}(T_{i}^{-1}T_{j})\right) eij2v=log((T^ij2v)−1(Ti−1Tj)) | 保证图连通,是修正传导的骨架 |
| View-to-Submap(桥接) | 全局位姿 ↔ 子图位姿 | e m i b r = log ( ( T ^ m i m v ) − 1 S m − 1 T i ) \mathbf{e}^{\mathrm{br}}{mi}=\log\!\left((\hat{T}^{\mathrm{mv}}{mi})^{-1}S_{m}^{-1}T_{i}\right) emibr=log((T^mimv)−1Sm−1Ti) | 把子图局部预测对齐到全局轨迹 |
| View-to-Submap(尺度锚定) | 同上 | e m i a n c h = log s i − log s m − log ( m e d i a n ( D ^ m i m v / D ^ i 2 v ) ) \mathbf{e}^{\mathrm{anch}}{mi}=\log s{i}-\log s_{m}-\log\!\left(\mathrm{median}({\hat{D}^{\mathrm{mv}}{mi}}/{\hat{D}^{\mathrm{2v}}{i}})\right) emianch=logsi−logsm−log(median(D^mimv/D^i2v)) | 强约束全局系与子图系的相对尺度 |
| Submap-to-Submap(tie) | 重叠子图对 | e m n i t i e = log ( ( S m T ^ m i m v ) − 1 ( S n T ^ n i m v ) ) \mathbf{e}^{\mathrm{tie}}{mni}=\log\left((S{m}\hat{T}^{\mathrm{mv}}{mi})^{-1}(S{n}\hat{T}^{\mathrm{mv}}_{ni})\right) emnitie=log((SmT^mimv)−1(SnT^nimv)) | 强制重叠子图对共享关键帧给出一致全局位姿 |
| Submap-to-Submap(尺度) | 重叠子图对 | e m n s c = log s n − log s m − log s ^ m n \mathbf{e}^{\mathrm{sc}}{mn}=\log s{n}-\log s_{m}-\log\hat{s}_{mn} emnsc=logsn−logsm−logs^mn | 阻止子图间尺度漂移 |
其中 tie 边的语义很值得注意:对共享关键帧 i ∈ V m n i\in\mathcal{V}{mn} i∈Vmn,多视图推理分别在子图 m m m 和 n n n 中给出独立预测 T ^ m i m v \hat{T}^{\mathrm{mv}}{mi} T^mimv 和 T ^ n i m v \hat{T}^{\mathrm{mv}}{ni} T^nimv,几何一致性要求 S m T ^ m i m v ≈ S n T ^ n i m v S{m}\hat{T}^{\mathrm{mv}}{mi}\approx S{n}\hat{T}^{\mathrm{mv}}{ni} SmT^mimv≈SnT^nimv。子图间尺度一致性则通过聚合共享视图上的逐视角相对尺度 s ^ m n = m e d i a n i ∈ V m n s ^ m n , i \hat{s}{mn}=\mathrm{median}{i\in\mathcal{V}{mn}}\hat{s}_{mn,i} s^mn=mediani∈Vmns^mn,i 来实现。
论文的一段推理很关键,解释了为什么 View-to-Submap 边不能替代 Submap-to-Submap 边 :桥接边通过全局视图节点间接对齐子图,但这种耦合可以被中间视图节点的挪动补偿掉。要强制子图坐标系之间的严格一致,必须有直接连接的 s2s 边。
消融实验证实了这一点(7-Scenes,重叠配置 φ=2):
| 配置 | 平均 ATE m ↓ |
|---|---|
| 仅跟踪(Tracking only) | 0.124 |
| 去掉 E v 2 s \mathcal{E}^{\mathrm{v2s}} Ev2s | 0.124 |
| 去掉 E s 2 s \mathcal{E}^{\mathrm{s2s}} Es2s | 0.030 |
| 去掉 e b r e^{\mathrm{br}} ebr | 0.063 |
| 去掉 e t i e e^{\mathrm{tie}} etie | 0.027 |
| 完整模型 | 0.020 |
去掉 v2s 边后性能完全退化到纯跟踪水平------这说明子图一旦与全局轨迹断开,后端精化就等于不存在。
我在 1 的 Fig.2 基础上,把因子图的节点---边关系与权重一起画出来,便于对照公式:

图 4:统一 S i m ( 3 ) Sim(3) Sim(3) 因子图结构(本文重绘)。灰色圆为全局关键帧位姿节点 { T i } \{T_i\} {Ti},紫色圆为全局子图位姿节点 { S m } \{S_m\} {Sm},蓝色方块为子图内估计的局部位姿 { T ^ m i m v } \{\hat{T}^{mv}_{mi}\} {T^mimv}。实线为 View-to-View 时序边,蓝线为 View-to-Submap 桥接边,黄线为尺度锚定边,绿线为子图间 tie 边,紫线为子图间尺度边。这张图承载了原论文图没有的信息 :标注了论文附录 A1 给出的固定权重 ( w 2 v , w b r , w a n c h , w s c , w t i e ) = ( 1.0 , 1.0 , 50.0 , 50.0 , 0.2 ) (w^{2v},w^{br},w^{anch},w^{sc},w^{tie})=(1.0,1.0,50.0,50.0,0.2) (w2v,wbr,wanch,wsc,wtie)=(1.0,1.0,50.0,50.0,0.2),可以看出尺度类约束的权重是位姿类约束的 50 倍,而 tie 约束只有 0.2。重绘自 UniSim-SLAM 论文 Fig. 3 + 附录 A1
权重设计本身就是一条工程信息:尺度约束( w a n c h , w s c w^{\mathrm{anch}},w^{\mathrm{sc}} wanch,wsc)取 50.0,是因为尺度一旦失配会在子图间传播放大;tie 约束取 0.2 是因为子图局部预测本身受视图集合影响、噪声较大,权重给高了反而会拖累优化。论文没有让读者去调这些权重,而是给出了跨全部实验固定不变的取值------这一点对复现很友好。
三、与经典 SLAM 框架的差异
这一节是本文想重点厘清的部分。UniSim-SLAM 在架构上"回到经典",但在几乎每一个具体环节上都与经典系统不同。

图 5:三种 SLAM 范式对比(本文重绘)。按"后端优化对象 / 前端观测量 / 标定依赖 / 尺度来源 / 地图输出"五个维度展开。重点看中间一行 DPVO------它与左右两侧在图像域上就是分裂的。重绘自本文分析
3.1 前端观测量的本质差异
经典方法 (ORB-SLAM3、Kimera)走 SfM 路线:提取 ORB 关键点、匹配、三角化、PnP 求位姿。直接法 (DSO、LSD-SLAM)最小化光度残差,通常连带每帧深度估计。两者前端都不一样,但共享同一个后端------束调整(BA)。
UniSim-SLAM 前端不做匹配也不做光度优化,而是把图像对丢给一个几何基础模型,直接得到位姿和深度。它没有特征点、没有描述子、没有光度残差项。连它检测回环用的都是全局图像检索 + 几何验证,而非词袋模型。
3.2 标定依赖的颠覆
论文明确把参评方法分成两组:Calib. (假设内参已知)和 Uncalib.(免标定)。UniSim-SLAM 在免标定组。
这个差异在实际后果上很直观------看 ORB-SLAM3 在 TUM RGB-D 上的表现:
| 序列 | 360 | desk | desk2 | floor | plant | room | rpy | teddy | xyz |
|---|---|---|---|---|---|---|---|---|---|
| ORB-SLAM3 | × | 0.017 | 0.210 | × | 0.034 | × | × | × | 0.009 |
九个序列里有五个直接失败 (× 表示未能产生有效轨迹),平均值无法统计(N/A)。这是经典特征法在弱纹理/快速运动场景下的典型表现。论文 §2.1 也点明了经典方法的两个软肋:对相机标定敏感、在困难视觉条件下表现差,且通常只能产生稀疏或半稠密地图。
不过必须公允地说:这是不同设置下的比较,不能直接读成"前馈方法全面碾压经典方法"。ORB-SLAM3 是在已知内参下的结果,UniSim-SLAM 是免标定的;而免标定本身是个更强的前提假设。经典的鲁棒性优势在于,它在纹理丰富、光照稳定的场景下精度极高(看 desk 的 0.017、xyz 的 0.009,都是很有竞争力的数字),且计算量远低于跑基础模型。
3.3 后端优化对象:从"地图点"到"坐标系"
经典 BA 优化的是:相机位姿 + 三维地图点坐标(重投影误差)。
e i j = z i j − π ( T c w ⋅ p j ) \mathbf{e}{ij} = \mathbf{z}{ij} - \pi\!\left(\mathbf{T}_{cw} \cdot \mathbf{p}_j\right) eij=zij−π(Tcw⋅pj)
其中 z i j \mathbf{z}_{ij} zij 为观测像素坐标, π ( ⋅ ) \pi(\cdot) π(⋅) 为投影函数。
UniSim-SLAM 优化的是 :全局关键帧位姿 { T i } \{T_i\} {Ti} + 子图位姿 { S m } \{S_m\} {Sm},在 S i m ( 3 ) Sim(3) Sim(3) 流形上 。残差全部是位姿-位姿之间的李代数误差,没有任何三维地图点参与优化 ,也没有重投影误差。
这个转变的深层原因是:几何基础模型的输出本身就是稠密深度 + 位姿,不存在需要三角化的稀疏路标点。于是"地图"从优化变量降级成了单纯的输出产物------论文 §4.2 里重建全局点云时,用的是已经优化好的位姿 + 多视图深度估计 + 内参 + 置信度图,点云本身不参与优化。
3.4 尺度问题的处理方式
经典单目 SLAM 的尺度不可观,标准做法是:与 IMU 紧耦合(ORB-SLAM3 的视觉惯性模式)、或做 S i m ( 3 ) Sim(3) Sim(3) 对齐时把尺度作为整体缩放因子求解。
UniSim-SLAM 的尺度问题更复杂 :它不是"整条轨迹缺一个全局尺度",而是每一段推理、每一个子图都各自带一个独立尺度 。所以尺度不是事后对齐出来的,而是作为优化变量进图 ------ S m S_m Sm 本身就含尺度分量,另有 e a n c h e^{\mathrm{anch}} eanch 和 e s c e^{\mathrm{sc}} esc 两条专门的尺度残差来约束它。
这也解释了为什么论文专门做了尺度鲁棒性消融(附录 A2 表 A3)。在深度图上注入高斯噪声并随机丢弃 10% 像素后,ATE 表现如下:
| 扰动类型 | σ=0.3 | σ=0.2 | σ=0.1 | σ=0 |
|---|---|---|---|---|
| 深度图被污染 | 0.021 | 0.021 | 0.020 | 0.020 |
| 尺度估计被污染 | --- | --- | 0.041 | 0.020 |
关键结论:深度被污染时系统几乎不退化(0.020 → 0.021),但尺度估计被污染时退化明显(0.020 → 0.045)。原因是尺度由同一视角下像素对齐的深度比值算出,深度虽然脏但比值稳定;而尺度一旦算错,就直接是错的了。
四、与 DPVO / DPV-SLAM 的差异
这一节的对比较容易产生混淆,先把三者的关系理清:
- DPVO (Deep Patch Visual Odometry, arXiv 2208.04726):纯视觉里程计,无回环、无全局优化,输出的是滑动窗口内的轨迹。
- DPV-SLAM (Deep Patch Visual SLAM, arXiv 2408.01654):DPVO 的 SLAM 扩展,同一代码仓库(princeton-vl/DPVO),加了全局 BA 与回环。
- UniSim-SLAM:本文方法。
所以严格意义上,与 UniSim-SLAM 直接可比的是 DPV-SLAM;但 DPVO 作为前身,它的设计选择恰恰暴露了这条技术路线的取舍,值得单讲。
4.1 DPVO 的核心思想:用稀疏 patch 打败稠密光流
DPVO 的出发点是反共识的。当时的主流判断是:稠密光流能提供额外的冗余来抵抗错误匹配,因此在精度上不可替代。DPVO 的设计直接反驳了这一点:
用稀疏的 patch 匹配,而不是稠密光流,既能拿到最好的精度,也能拿到最好的效率。
它的两个关键组件是:
- 针对 patch 对应关系的循环更新算子(recurrent update operator)------把 patch 跟踪建模成沿时间递归更新;
- 可微束调整------把 BA 嵌进网络训练流程,端到端优化。
实测结果(EuRoC MAV):平均 ATE 0.105 m ,默认配置 60 FPS、4.9 GB 显存 ,最快配置 120 FPS、2.5 GB。相比 DROID-VO(8.7 GB)省 56% 显存,平均快 3 倍,最坏情况快 8.9 倍。DPV-SLAM 在此基础上保持 5--7 GB 显存,实时率 1×--4×,精度与 DROID-SLAM 相当而速度快 2.5 倍。
注意硬件口径 :DPVO 的数字是 RTX-3090 上测的,且 EuRoC 是双目/惯性数据集(DPVO 用的是单目图像流)。UniSim-SLAM 使用 TUM RGB-D 和 7-Scenes,两套数据集完全不重叠,数字不可直接横向比较。这一点在下面还会展开。
4.2 三个维度的正面对比
维度一:图像域------稀疏 patch vs 稠密深度
这是最本质的差异。DPVO/DPV-SLAM 在稀疏 patch 上工作:网络跟踪的是一组离散的图像块,深度也只在 patch 位置上有定义,输出的是稀疏点云。UniSim-SLAM 走的是稠密路线:基础模型输出的是整张深度图,重建出来是稠密点云(论文 §4.2 报告的 Accuracy / Completion / Chamfer 三项就是针对稠密重建的指标)。
后果很实际:DPV-SLAM 的稀疏地图只够做定位,做不了场景重建;UniSim-SLAM 的稠密输出可以同时支撑重建,代价是显存和计算量都上去了。
维度二:后端优化对象------滑动窗口 BA vs 全轨迹 Sim(3) 图
DPVO 的后端是滑动窗口内的可微 BA,窗口外的历史不参与优化,所以误差会稳定累积------这也是为什么它必须靠 DPV-SLAM 打补丁。
UniSim-SLAM 的后端是全轨迹的 S i m ( 3 ) Sim(3) Sim(3) 位姿图 ,没有滑窗 。所有关键帧位姿 T i T_i Ti 和所有子图位姿 S m S_m Sm 都在同一个图里联合优化(论文附录 A1 提到还有独立的回环模块,检测到回环后构造联合回环子图并插入图中)。这是它能把长序列漂移压住的根本原因。
维度三:模型调用方式------单模型单次 vs 双模型异步
DPVO 调一次网络,一件事(patch 跟踪 + BA)。UniSim-SLAM 调两类不同规模的前馈推理:前端每来一个关键帧就跑一次两视图推理,后端攒够 14 个新关键帧才触发一次多视图推理,两个线程异步。论文附录 A3 给出了各阶段延迟:
| 阶段 | 组件 | 延迟 ms |
|---|---|---|
| 前端 | 两视图推理 | 197 |
| 后端 | 子图节点初始化 | 167 |
| 后端 | 描述子提取 | 16 |
| 后端 | 图构建 | 36 |
| 后端 | 优化 | 645 |
| 后端 | 多视图推理 | 933 |
前端约 25 FPS (7-Scenes),后端因为跑在独立线程不阻塞前端。总计算量明显高于 DPVO,换来的是免标定 + 稠密重建 + 全局一致性。
4.3 精度数字对比
论文的对比表里包含 DPV-SLAM 和 DPV-SLAM++:
TUM RGB-D(ATE RMSE m ↓)
| 方法 | 设置 | Avg |
|---|---|---|
| DPV-SLAM | 需标定 | 0.076 |
| DPV-SLAM++ | 需标定 | 0.054 |
| DROID-SLAM | 需标定 | 0.038 |
| MASt3R-SLAM | 需标定 | 0.030 |
| ViSTA-SLAM | 免标定 | 0.052 |
| VGGT-SLAM | 免标定 | 0.061 |
| UniSim-SLAM | 免标定 | 0.032 |
7-Scenes(ATE RMSE m ↓)
| 方法 | 设置 | Avg |
|---|---|---|
| DROID-SLAM | 需标定 | 0.024 |
| MASt3R-SLAM | 需标定 | 0.044 |
| VGGT-SLAM | 免标定 | 0.037 |
| ViSTA-SLAM | 免标定 | 0.049 |
| UniSim-SLAM | 免标定 | 0.020 |
这里有一个必须点明的口径问题 :论文宣称的"降 38.5% / 45.9%"是对比此前最好的结果 ,即 TUM 上的 ViSTA-SLAM(0.052 → 0.032)和 7-Scenes 上的 VGGT-SLAM(0.037 → 0.020)。这是免标定组内的对比。
而在 TUM RGB-D 上,需标定的 MASt3R-SLAM 拿到 0.030,比 UniSim-SLAM 的 0.032 更优 。所以更准确的表述是:在免标定设置下达到 SOTA,而非在所有设置下。论文摘要的措辞是 "state-of-the-art accuracy in the uncalibrated setting",这个限定词是准确的。
回到与 DPVO/DPV-SLAM 的比较:DPV-SLAM 0.076 / DPV-SLAM++ 0.054 是需标定 下的 TUM 结果,UniSim-SLAM 0.032 是免标定 下的结果。即便带着这个不利前提,UniSim-SLAM 仍然明显占优。但同样要提醒:DPVO 的 EuRoC 0.105 m 与这里任何一个数字都不可比------数据集、传感器、评价协议全都不一样。
前端骨干的可替换性也做了一组实验(论文附录 A3):把前端换成低延迟的 STA,后端保留 VGGT,TUM 平均 ATE 从 0.032 变成 0.032(持平),7-Scenes 从 0.020 变成 0.027(变差)。作者的解释是 STA 在这类困难序列上继承了 ViSTA-SLAM 的局限------说明"双流可异构"这个设计成立,但前端质量仍然直接决定了下限。
4.4 重建质量

图 6:稠密重建定性对比。上排为 7-Scenes Kitchen,下排为 TUM RGB-D Room,红色框为局部放大。重点看放大区域内的几何锐度:ViSTA-SLAM 在 Room 场景的桌腿处已经糊成一片,VGGT-SLAM 在书架边缘有明显拉伸,UniSim-SLAM 的结构边界最清晰。来源:UniSim-SLAM 论文 Fig. 5
7-Scenes 上的稠密重建定量指标(论文表 3,单位与数据集口径一致,越低越好):
| 方法 | 设置 | Acc. ↓ | Comp. ↓ | Chamfer ↓ |
|---|---|---|---|---|
| DROID-SLAM | 需标定 | 0.111 | 0.049 | 0.080 |
| MASt3R-SLAM | 需标定 | 0.064 | 0.068 | 0.066 |
| VGGT-SLAM | 免标定 | 0.039 | 0.051 | 0.045 |
| ViSTA-SLAM | 免标定 | 0.041 | 0.056 | 0.049 |
| UniSim-SLAM | 免标定 | 0.035 | 0.046 | 0.041 |
论文特别说明了一个评测细节,值得记一下:因为系统会产生重叠子图 ,如果简单地把所有重建点聚合起来,点密度上升会虚假地抬高 Completion 指标 。为避免这种偏置,论文对每个视角只采用置信度最高的那个子图的深度图。这个处理是诚实的,但也意味着这类指标跨论文比较时要格外小心。
五、轨迹精度与消融

图 7:7-Scenes 上四种方法的轨迹对比(灰色虚线为真值)。重点看颜色------颜色编码的是误差幅度(右侧 colorbar),UniSim-SLAM 一列整条轨迹几乎全为深蓝(误差接近 0.004--0.007 m 的下界),而 MASt3R-SLAM 与 ViSTA-SLAM 在轨迹多处出现黄绿高误差段。来源:UniSim-SLAM 论文 Fig. 4
完整消融(7-Scenes,论文表 4a 与附录表 A2)给出了两档子图重叠配置下的结果:
| 配置 | φ=0(无重叠) | φ=2(重叠 2 帧) |
|---|---|---|
| 无后端 | 0.124 | 0.124 |
| 无回环 | 0.061 | 0.037 |
| 无 e 2 v e^{2v} e2v | 0.101 | 0.021 |
| 无 e a n c h e^{anch} eanch | 0.083 | 0.020 |
| 无 e b r e^{br} ebr | 0.116 | 0.063 |
| 无 e t i e e^{tie} etie | 0.040 | 0.027 |
| 无 e s c e^{sc} esc | 0.048 | 0.031 |
| 完整模型 | 0.032 | 0.020 |
这张表最有信息量的是无重叠(φ=0)那一列 。论文的核心论点之一是"即使子图不重叠,修正也能通过时序边传导"。数据支持了这一点:φ=0 时完整模型仍有 0.032 的 ATE,而如果去掉 e 2 v e^{2v} e2v 时序边,会崩到 0.101------说明时序边正是那个"不依赖子图重叠"的传导通道。
另一个值得注意的数字是回环:φ=0 时去掉回环 ATE 从 0.032 涨到 0.061(翻倍),φ=2 时从 0.020 涨到 0.037(也接近翻倍)。回环模块的贡献在两种配置下都很大,它显然不是可选装饰。
子图规模也有超参扫描(论文表 4b):
| 子图大小 w | φ=1 | φ=2 | φ=4 | φ=8 |
|---|---|---|---|---|
| 4 | 0.043 | 0.041 | -- | -- |
| 8 | 0.035 | 0.035 | 0.035 | -- |
| 16 | 0.031 | 0.032 | 0.031 | 0.030 |
| 32 | 0.033 | 0.032 | 0.034 | 0.033 |
16 附近是个平台,再往大到 32 没有收益。作者在正文里说明默认取子图大小 16、重叠 2 帧,这个选择在计算量和精度之间是合理的。
小结
创新点的实质
UniSim-SLAM 的贡献不在于"提出了一个新架构"------双流架构是经典 SLAM 的既有范式,论文自己也是这么定位的("revisit the architectural principles of classic SLAM systems")。真正的贡献在于解决了一个经典 SLAM 里不存在的新问题 :当两个流里跑的都是前馈基础模型时,它们的输出分别定义在各自的局部坐标系里、尺度互不相容,无法像经典系统那样直接拼进同一个 BA。论文给出的答案是一个统一 S i m ( 3 ) Sim(3) Sim(3) 多层次因子图,用五类残差把异质预测耦合起来,并识别出"桥接边会被中间节点挪动补偿掉"这一结构性缺陷,进而引入直接的子图间约束。
局限性(我的判断)
-
计算成本仍然很高。前端 197 ms、后端优化 645 ms、多视图推理 933 ms,前端 25 FPS 已经算不上宽裕,而后端虽然异步不阻塞前端,但总 GPU 占用是两个基础模型叠加。论文没有报告整体显存占用,这是个遗憾------DPVO 当年正是靠"4.9 GB 显存、60 FPS"打出的差异点。
-
对尺度的依赖是硬依赖 。消融表 A3 显示尺度被污染时 ATE 会翻倍以上,而尺度来自深度比值的中位数。论文自己也说场景"平面结构为主时缺少尺度恢复的几何线索"(floor 序列的表现也印证了这一点)。这意味着退化场景仍是风险点。
-
评测覆盖面偏窄。只有 TUM RGB-D 和 7-Scenes 两个室内小规模数据集,单目。没有 EuRoC、没有 KITTI、没有大场景长序列,也没有与 DPVO/DPV-SLAM 在共同数据集上的直接对比。论文提到的项目页有视频演示,但量化的大规模验证还缺。
与 DPVO/DPV-SLAM 的一句话总结
DPVO 走的是"用更聪明的稀疏表示把效率做到极致 "的路线------单模型、滑动窗口、稀疏 patch、主打实时性与显存;UniSim-SLAM 走的是"用更完整的全局模型把一致性做到极致 "的路线------双模型、全轨迹 S i m ( 3 ) Sim(3) Sim(3) 图、稠密输出、免标定,代价是延迟和算力。DPV-SLAM 补了 DPVO 缺的全局优化和回环,某种程度上是沿同一条路线向 UniSim-SLAM 的方向靠;但两者的图像域(稀疏 patch vs 稠密深度)不同,工程取舍的分野依然清晰。
如果目标是嵌入式/移动端实时里程计,DPVO 这条线显然更合适;如果目标是免标定的稠密重建 + 长序列全局一致,UniSim-SLAM 的架构更对路------前提是能接受它的算力开销。
参考
- Inha Lee, Dongjae Jeong, Junhee Lee, Kyungdon Joo. UniSim-SLAM: Feed-Forward SLAM with Unified Sim(3) Optimization . ECCV 2026. arXiv:2608.01706
- Zachary Teed, Lahav Lipson, Jia Deng. Deep Patch Visual Odometry . NeurIPS 2023. arXiv:2208.04726
- Lahav Lipson, Zachary Teed, Jia Deng. Deep Patch Visual SLAM . ECCV 2024. arXiv:2408.01654