交大NaCR:NeRF合成视图加光度闭环,室内中位误差降到2.2cm

NaCR: Visual Localization via NeRF-aided Camera Ray Regression

Yesheng Zhang, Xiang Dai, Xu Zhao, Chongyang Zhang

cs.CV

2026-09-22

上海交大把NeRF嵌进相机光线回归:既按块生成合成视图,又把光度误差反传到射线。7-Scenes中位误差从DIMM的3.5cm降到2.2cm,推理仍约0.03秒。

这篇在解决什么

视觉定位要给查询图估计已知场景里的 6DoF 位姿。Scene Coordinate Regression 给每个图像块回归无界 3D 坐标,背景点方差大,训练常靠深度先验挡异常值。DIMM 把这块改成 Camera Ray Regression:每个块回归一条有界相机光线(方向加矩),再分两步线性解旋转和平移,不再依赖深度先验。户外还行,室内精度仍一般。另一边,NeRF 正好做逆过程:从光线可微渲染出图像块。上海交通大学把这两件事在光线这一层接上。

方法

先改 DIMM 三处。骨干换成 Depth Anything 3 预训练的 DINOv2,保留块级解码器,以便继续做 Gradient Decorrelation Training。再固定 3 张参考图(训练位姿聚类中心),查询块 token 拼上对应参考 token,把绝对光线回归收成相对条件。输出头加光线置信度,训练时降权不确定预测,推理时加权 RANSAC。

NeRF 做两件事。每个场景先训 Nerfacto,随机扰动位姿和外观嵌入,用 BRISQUE 滤掉烂图,得到合成集。Stage 1 按真图:合成图 2:1 做 GDT,优化光线-置信度损失,并用对抗损失对齐真假特征(只解冻 DINO 最后两层注意力)。Stage 2 在预测稳住后,把预测光线送进 Nerfacto,在整个图像块上采样渲染,光度 L2 反传到回归器。一开始就加渲染损失会在高度非凸的 RGB 空间里把模型带崩,所以分两段。可选的 NaCR+NPR 再用渲染出的 RGB-D 做 2D-3D 匹配,精修位姿。

训练在 A800 上。图像 504×378,块 14×14。Stage 1 是 AdamW、学习率 1e-4、40K 步;Stage 2 学习率 1e-6、再 20K 步。batch 5120。

结果

7-Scenes(SfM 真值)中位误差:DIMM 3.5 cm / 1.0°,NaCR 2.2 cm / 0.4°。同用新视角增强的 GRLoc(3DGS)是 2.8 cm / 0.8°。室内 SCR 仍更准,ACE 平均 1.1 cm / 0.3°。NaCR+NPR 到 0.3 cm / 0.2°,低于 RAP 的 0.6 和 GRLoc 的 0.5。户外 Wayspots 在 10 cm/5° 召回上,DIMM 42.9%,NaCR 54.5%,ACE 52.2%;0.5 m/5° 为 66.3% 对 ACE 的 62.6%。Statue、Winter Sign 这类重复纹理上,NPR 精修有时更差。

方法7-Scenes 中位误差Wayspots 10cm/5°
DIMM3.5 cm / 1.0°42.9%
ACE1.1 cm / 0.3°52.2%
NaCR2.2 cm / 0.4°54.5%
NaCR+NPR0.3 cm / 0.2°54.9%

消融(多种子平均):只换结构到 3.2 cm,加上合成数据到 2.4 cm,再加渲染损失到 2.2 cm。单阶段一上来就加渲染损失,7-Scenes 掉到 6.7 cm / 3.3°。每场景建图从 DIMM 的 1.32 小时升到 3.63 小时(含 NeRF 0.42 小时),查询推理 0.03 秒对 DIMM 的 0.02 秒,前向路径不跑 NeRF。

为什么重要

CRR 和 NeRF 共用光线这个接口,合成数据按块消费,比整图只监督一个位姿更划算;光度闭环提供几何损失之外的图像空间信号。推理仍是一次前向,适合要反复查询、能接受数小时建图的场景。室内无 NPR 时还追不上 ACE;增益主要来自建图阶段的数据和监督,不是更快的定位头。

局限与存疑

每个场景都要先训一份能用的 NeRF,大范围、光照乱的 6-Scenes 上 NeRF 伪影会污染增强和监督,NaCR 反而低于 DIMM 基线。重复纹理会让 NPR 匹配加错。建图 3.63 小时、参数 39.53 M,对 ACE 的 5 分钟、2.10 M 没有优势。两阶段超参(何时切 Stage 2、损失权重 μ=0.1)按经验来。没有把 NeRF 和 CRR 联合训练,作者把它留作后续。

术语

原文与代码

社区讨论

相关论文

全部论文解读