无内参单目追上 ORB-SLAM3,射线场把前馈重建拉到公里级

GRF-Recon: Global Ray-Field Optimization for Long-Sequence Feed-forward Reconstruction

Enpeng Li, Yunzhou Zhang, Zhiyao Zhang, Dexuan Lyu, Chenyu Wang, Chiyuan Cui, Cheng Cheng

ECCV 2026 as a Spotlight pre

cs.CV

2026-09-17

东北大学提出 GRF-Recon:重归一化 LoRA 锐化 Depth Anything 3 的局部几何,再用稀疏射线场做跨帧约束。KITTI 平均 ATE RMSE 7.18 米,优于 DA3-Streaming 的 12.72 米,并接近需标定的 ORB-SLAM3(7.93 米)。

这篇在解决什么

DUSt3R、MASt3R、VGGT、Depth Anything 3 这类前馈三维基础模型,能从没标定的几张图一次吐出位姿和稠密点云。短序列上很好看。一拉到自动驾驶那种上千帧、数公里的单目视频,两件事同时爆:Transformer 注意力随 token 数二次膨胀,消费级 GPU 上几十帧就会 OOM;局部误差沿轨迹累成 Sim(3) 漂移,路口和回环对不上。

已有的 chunk-and-align(切块再拼)能先活下来,但块与块之间约束太浅。VGGT-Long、Pi-Long、DA3-Streaming 都还在这条路上,长轨迹精度明显掉。东北大学李恩鹏、张云洲等人把问题收成一件事:在 24 GB 显存预算里,给前馈重建加上跨帧真正咬得住的几何约束。

方法

骨干用 Depth Anything 3。系统叫 GRF-Recon,三步。

局部几何先补锐。DA3 直接拿来做序列,遮挡边界会抹平。做法是冻住负责跨视图匹配的 decoder,只在 DINOv2 encoder 的 QKV 投影上插重归一化 LoRA(秩 8)。朴素蒸馏会把特征范数漂掉,和冻住的 decoder 对不上,所以把更新后的权重按原始 Frobenius 范数重新缩放。新增可训练参数不到 1%,总参数增幅卡在 3% 以内。监督是双分支:深度分支吃 MoGe 教师的伪标签,点云分支吃真值,λ=0.4。

长序列按块切,默认每块 60 帧、重叠 10 帧。相邻块用重叠帧解一个 Sim(3),SVD 出旋转,最小二乘出尺度和平移,串成一条粗全局轨迹。

真正咬住漂移的是混合权重稀疏射线场。DA3 的 ray head 给每个像素一条 7 维射线:方向、原点、置信度,深度头再给度量深度。三维点就是原点加深度乘方向。按深度置信、射线置信和深度梯度的加权分采样,再做非极大值抑制,避免全图像素互配。跨帧匹配主项是点到目标射线的垂距(权重 0.6),辅以梯度相似和块光度误差(各 0.2),双向重投影误差小于 5 像素才收下。

回环用 DINOv2 全局描述子。和上一关键帧相似度掉到 0.70 以下就新建关键帧,KITTI 上大约每 3 到 5 帧一个;和历史关键帧相似度超过 0.85 且间隔大于 100 帧,当成回环候选。全局目标是一个因子图:稀疏射线误差加多帧相对位姿先验(λpose=10),Huber 损失,Levenberg-Marquardt 求解。

结果

单卡 RTX 3090,图像宽边缩到 504。轨迹和点云都先做全局 Sim(3) 对齐再评。KITTI 平均 ATE 把高速 Seq. 01 排除在外,和论文表格口径一致。

方法设置KITTI 平均 ATE RMSE
ORB-SLAM3需内参7.93 m
VGGT-Long未标定19.78 m
Pi-Long未标定19.01 m
DA3-Streaming未标定12.72 m
GRF-Recon未标定7.18 m

Seq. 00 全长 3724 米、4542 帧,GRF-Recon 是 4.35 米,DA3-Streaming 9.34 米,VGGT-Long 11.16 米。VGGT 和原始 DA3 在这些序列上直接 OOM,MASt3R-SLAM 全部 Tracking Lost。

Waymo 九条序列平均 ATE:GRF-Recon 1.39 米,DA3-Streaming 1.76 米,VGGT-Long 2.03 米。深度前端在 KITTI 上 Rel 从 5.14 降到 4.50,δ1 从 92.4 升到 97.1;四数据集平均 Rel 6.95,仍高于教师 MoGe 的 5.62。

消融把因果钉死了。KITTI 00 完整系统 4.35 米;去掉 LoRA 到 6.80;去掉射线匹配到 7.35;关掉全部后端优化、只串相机位姿,飙到 12.35 米。块大小 30/60、重叠 10/20 几乎不动,默认取 60/10。KITTI 00 端到端 11 分 45 秒,每块前馈约 8 秒,射线匹配和块对齐被流水线藏在前馈后面,整段 LM 优化约 10 秒。

为什么重要

给想在未标定单目视频上跑公里级重建的人,这是一条能在 24 GB 上跑完的工程路径:别硬把 VGGT 塞进长序列,冻 decoder、LoRA 补高频,再用稀疏射线把块与块咬住。轨迹精度在 KITTI 上碰到了需要标定的 ORB-SLAM3,这是前馈路线里少见的对齐。点云还能拿去初始化 3D Gaussian Splatting,论文说大约 1000 次迭代就能收敛,省掉单独跑 COLMAP。

它仍然是渐进工作。骨干是现成的 DA3,切块对齐也不是新发明,贡献在射线场如何进全局因子图,以及 LoRA 范数对齐这种能让蒸馏不把匹配打崩的细节。

局限与存疑

作者自己写了:刚性场景还行,高度动态物体仍然难。Seq. 01 高速段 ATE 76.52 米,虽然比 DA3-Streaming 的 83.64 好一点,但已经不能当成功案例,平均指标把它剔除也说明问题没解决。Waymo 的 LiDAR 真值看不到楼顶和树冠,视觉重建出来的这些结构会被 Accuracy 惩罚,定量和观感会对不上。所有数字都经过全局 Sim(3) 对齐,绝对尺度仍来自对齐而不是模型自己钉死。没有室内、手持、夜晚的长序列评测。UAV 和 3DGS 只给了定性图,没有对照 PSNR 表。文中没有代码链接。

术语

原文与代码

社区讨论

相关论文

全部论文解读