作者:Heng Zhou, Shuhong Liu, Yonghao He, Bohao Zhang, Fa Fu, Chenhui Hou, Xianbao Hou, Lijun Han, Cong Yang, Wei Sui

单位:D-Robotics, The University of Tokyo, Soochow University

会议:2026 Arxiv 技术报告

链接:论文项目页代码

研究动机

机器人、自动驾驶和多相机空间感知系统很少只使用一种镜头:针孔相机适合保留远处细节,鱼眼相机适合覆盖近场和周边区域。真正的设备往往把它们组合在同一刚性相机架上,但这会带来两个问题:

  1. 针孔与鱼眼的投影规律不同,相同大小的图像 patch 对应的视线分布和局部尺度并不一致;
  2. 通用三维基础模型通常同时预测相机、点图、位姿和深度,模型很大,也不一定能在边缘设备上实时运行。

X-Lens-0

全景拼接可以把输入统一到球面或 ERP 表示,但重采样会改变原始成像几何,也可能损失相机之间本来可利用的共视信息。X-Lens 因此提出一个更直接的目标:

保留每个镜头的原生图像域,把不同相机统一到射线空间中,只预测下游感知真正需要的稠密深度与全局尺度。

这是一篇“方法 + 系统 + 数据集”论文:核心模型只有 0.04B 参数,同时发布了面向异构六相机的合成数据集 OmniScene。

核心方法

X-Lens-2

1. 用射线统一异构相机

给定 $S$ 个图像 $I_s$、相机内参与畸变参数 $\xi_s$、相机类型 $\tau_s$ 以及外参旋转 $R_s$,每个像素中心 $p$ 被反投影为刚体坐标系中的单位射线:

$\mathcal G$ 可以是解析相机模型,也可以是训练时采样的径向查找表。后续几何推理在射线空间而不是像素坐标中完成,因此同一网络无需改变结构就能接收不同数量、不同镜头类型的视图。

2. 把深度形状与物理尺度解耦

X-Lens 不直接回归一个难以优化的绝对深度张量,而是预测三部分:

其中 $\hat D$ 是按批内均值归一化的每像素 $z$-depth,$\hat C$ 是自校准置信度,$\hat m$ 是整组视图共享的全局度量尺度。最终用形状场与尺度项组合得到度量深度。

这种分解的价值在于:局部结构误差不会直接与跨场景变化很大的绝对尺度纠缠;多视图共享一个 $\hat m$,也让相机间的尺度一致性成为显式学习目标。

3. 标定 token 处理粗粒度镜头差异

模型在图像 token 之外加入 learnable calibration tokens。第二阶段只训练这些 token,并冻结骨干、射线编码器和深度头,让鱼眼畸变首先被限制在专门的适配通路中,避免直接破坏第一阶段学到的针孔几何。

4. Jacobian Distortion Bias 处理局部投影变化

鱼眼图像中心和边缘的局部投影尺度差异很大,单个“相机类型 token”无法描述这种空间变化。X-Lens 在 patch 中心计算射线映射的局部 Jacobian,并结合局部射线方向生成注意力偏置:

$B(J,\mathbf r)$ 让跨视图注意力知道一个 patch 在当前镜头位置经历了怎样的局部拉伸或压缩。它不是直接矫正图像,而是修正“哪些 token 应该互相关注”。

5. 三阶段训练隔离几何冲突

  1. Pinhole Pre-training:关闭标定 token 与 Jacobian bias,在多视图针孔数据上训练深度、置信度和尺度先验。
  2. Fisheye Token Adaptation:冻结主体,仅在鱼眼数据上训练每层 16 个标定 token。
  3. Heterogeneous Joint Training:打开 Jacobian bias,在鱼眼 + 针孔混合视图和部分纯针孔回放数据上联合微调。

这套顺序并非普通的预训练/微调:第二阶段刻意限制可训练参数,第三阶段才允许共享表示适应跨镜头交互。

数据集

X-Lens-3

OmniScene

OmniScene 使用固定六相机架:4 个 $180^\circ$ Kannala–Brandt 鱼眼相机负责环视,前后各 1 个针孔相机保留远处细节;所有相机同步渲染为 $504\times798$,并提供完整内外参。

数据集包含约 26.6 万个同步六视图帧、170 万张单图和 103 个室内外场景,覆盖公寓、博物馆、办公室、停车场、铁路、自然环境与科幻场景。轨迹由占据约束的随机游走生成,并过滤空间覆盖不足的路径。

训练与评测

第一阶段使用 13 个公开针孔数据源,包括 BlendedMVS、ScanNet++V2、TartanAirV2-WB、DL3DV、MegaDepth 等;第二阶段使用 OmniScene 鱼眼子集;第三阶段联合 OmniScene 六相机数据、KITTI360 与第一阶段针孔数据。

评测分三类:

  • 鱼眼:KITTI360、OmniScene-Single、OmniScene-Quad;
  • 针孔:ETH3D、ScanNet++V2、真实环视数据 OmniOcc;
  • 异构相机:OmniScene-Full(4 鱼眼 + 2 针孔)。

算力

第一阶段使用 64 张 H100 训练 150K steps,学习率峰值 $1\times10^{-4}$;第二阶段训练标定 token 10K steps;第三阶段再次使用 64 张 H100 联合微调 50K steps。第三阶段分辨率固定为 $504\times798$,视图数在 6–8 之间采样。

所有 FPS 在单张 H100 上测试。这里需要区分“训练算力”和“部署效率”:X-Lens 的推理模型很小,但获得这种跨相机泛化仍依赖大规模多数据集训练。

实验结果

X-Lens-1

异构相机是最有说服力的主结果

OmniScene-Full 六视图上,X-Lens 达到:

  • Scale AbsRel 0.1181;
  • AbsRel 0.1021;
  • RMSE 1.5993;
  • $\delta_1$ 0.8982;
  • 22 FPS。

最强 AbsRel 对比方法 UniDAC 为 0.1368,X-Lens 相对降低 25.4%;参数量由 0.36B 降到 0.04B,即减少 88.9%,速度从 1 FPS 提升到 22 FPS。这一组数字同时支持“异构准确率、轻量化和实时性”三项主张。

X-Lens-4

X-Lens-6

定性结果中,X-Lens 在针孔与鱼眼视图之间保持了更一致的物理尺度,点云墙面和房间尺寸也较少出现明显拉伸。

同构相机上的结果需要更谨慎解读

在鱼眼任务上,模型最高达到 41 FPS,并在多个尺度或深度指标上领先。针孔任务中,X-Lens 以 0.04B 参数达到 39 FPS(双视图)和 26 FPS(六视图 OmniOcc),但大型 DA3/VGGT 系列在 ETH3D、ScanNet++ 的部分稠密深度指标上仍然更准确。

因此论文最强的结论不是“所有相机、所有指标都优于大模型”,而是:在原生混合镜头、明确预测度量尺度、受限参数与延迟的组合条件下,X-Lens 提供了更好的折中。

X-Lens-5

消融验证了分阶段训练和畸变偏置

OmniScene-Full 上,Stage-1 only 的 AbsRel 为 0.7563,Stage-2 only 为 0.3952,Stage-3 冻结共享表示为 0.2333;完整模型为 0.1021。去掉 Jacobian bias 后为 0.1912。说明:

  • 只会针孔几何无法直接适应鱼眼;
  • 只调标定 token 不足以解决跨相机对应;
  • 第三阶段必须允许共享表示参与混合镜头适配;
  • 局部 Jacobian 偏置对鱼眼边缘区域尤其关键。

优势与不足

优势

  1. 任务目标克制。 只预测深度、置信度和全局尺度,避免为不需要的完整三维重建支付参数与延迟成本。
  2. 统一表示有物理含义。 射线、标定 token 和局部 Jacobian 分别处理通用几何、全局镜头差异和空间变化畸变。
  3. 实验覆盖较完整。 鱼眼、针孔、异构相机以及真实/合成场景均有测试,并公开新数据集。
  4. 效率收益真实可见。 0.04B 参数和 22–41 FPS 明显优于多数通用几何模型。

不足

  1. 模型严格依赖准确的相机内外参,不能在线联合估计标定;标定误差会直接进入射线和畸变偏置。
  2. OmniScene 的相机参数仍覆盖有限。极端视场角或训练分布外的鱼眼模型存在合成到真实的性能缺口。
  3. 训练使用 64 张 H100,说明“小推理模型”并不等于低训练成本。
  4. 当前只处理逐帧多视图,没有利用时间聚合;动态遮挡和跨帧稳定性仍待验证。

记忆点

  1. 异构相机不一定要先统一成全景图,可以先统一成射线。
  2. 全局 calibration token + 局部 Jacobian bias 是处理镜头差异的两级设计。
  3. 深度形状与全局尺度分开预测,更适合多视图度量深度。
  4. 限制第二阶段的可训练参数,可以先吸收镜头特性,再做跨相机联合优化。