跳转至

ZipDepth: Bringing Lightweight Zero-Shot Monocular Depth Anywhere, on Any Device

会议: ECCV 2026
论文: ECCV 原文
领域: 模型压缩
关键词: 知识蒸馏、轻量单目深度、结构重参数化、跨域泛化、硬件自适应上采样

一句话总结

ZipDepth 将 Depth Anything v2-Large 的多域深度知识蒸馏到约 6.1M 参数的卷积学生,用半分辨率细节通路和硬件自适应上采样保留边界,在 Jetson Orin NX 15 W、FP32 条件下达到 34.4 FPS、396.6 mJ/帧,但精度仍低于教师,输出也只是相对深度。

研究背景与动机

单目深度基础模型已经能够跨室内、道路和互联网图片迁移,但大型骨干的代价限制了移动部署。本文测得 Depth Anything v2-Large 在 Jetson Orin NX 15 W、FP32 条件下只有 0.3 FPS。设备是否能连续运行一个模型,不仅取决于参数量,还取决于每帧能耗、输入分辨率和运行时对具体算子的支持。

小型深度网络通常训练于有限场景,低延迟不代表能认识陌生环境。本文同时处理知识来源和部署结构:先让学生见到足够多样的教师监督,再把有限计算集中在低分辨率语义提取和高分辨率边界恢复上。单纯换小骨干,或只增加训练数据,都不能自动解决另一个问题。

核心 idea:把昂贵的跨域知识留在离线教师端,让学生用可融合卷积承担语义提取、用浅层旁路恢复细节,并按硬件选择可高效执行的上采样算子。

方法详解

整体框架

输入是一张 RGB 图像,输出是同分辨率的逆深度图,具有尺度和平移不确定性,不能直接当作以米计的距离。训练侧做“多域教师蒸馏”;学生依次经过“可重参数化上下文编码”“半分辨率渐进解码”和“硬件自适应上采样”。教师不参与部署,上采样路径在训练前按目标后端选择,而不是逐帧自动切换。

编码器形成步长 4、8、16、32 的特征,同时保留 stem 的步长 2 浅层分支。解码器从粗到细融合,最后接回浅层分支,先预测半分辨率逆深度,再上采样至全分辨率。大部分语义计算在低分辨率进行,只有恢复轮廓时才引入浅层细节。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    T["多域教师蒸馏<br/>离线伪标签"]
    I["RGB 图像"] --> E["可重参数化上下文编码"]
    E --> D["半分辨率渐进解码"]
    D --> U["硬件自适应上采样"]
    U --> O["全分辨率逆深度"]
    T -.->|仅训练监督| O

关键设计

1. 多域教师蒸馏:用统一教师监督替代逐域采集真实深度

作者从 17 个图像来源构建约 14.1M 张图片的训练池,用 Depth Anything v2-Large 离线生成伪标签。来源包括 Objects365、ADE20K、COCO、SA-1B、OpenImages,以及 MegaDepth、Google Landmarks、Mapillary、Cityscapes、BDD100K、DrivingStereo、Gated2Depth、Trans10K、Flickr1024、HRWSI、HoloPix50K、ACDC。它们提供不同物体与拍摄条件,而不是共享标定协议的真实深度标签;教师输出构成统一的相对几何监督。

训练采用带温度的域均衡采样,避免大数据源支配全部更新;正文没有给出温度和抽样配额。蒸馏发生在输出端,以尺度和平移不变损失匹配教师,并未提出逐层特征蒸馏。学生从头学习卷积表示,不继承教师的 Transformer 架构。所谓零样本是没有用五个目标深度基准训练学生,不是整个系统无需训练。

2. 可重参数化上下文编码:训练用多分支,部署折叠为普通卷积

编码器采用 RepVGG 式单元:训练时并行保留 3×3、1×1 卷积及满足通道条件的恒等分支,配合批归一化与 ReLU;推理时把线性分支和批归一化融合为带偏置的单个 3×3 卷积。这不是剪枝或量化,而是训练结构向等价部署结构的转换。参数从训练时 6.79M 变为融合后 6.14M,主表四舍五入为 6.1M。约 89.6% 的部署参数集中在 Stage 3、4,减少高分辨率宽通道运算。

小卷积骨干还需要全局上下文。Stage 2 用膨胀率 1、2 的深度卷积分支及横纵条带池化补充空间范围,并采用可抑制或增强特征的门控;Stage 3 加入 SE 和 GCBlock,用通道重加权及空间加权池化汇总场景信息。Stage 4 之后的 SPPF 在瓶颈通道上串联三个 5×5 最大池化,再通过分组 1×1 卷积交换 Stage 3、4 信息。这些组件共同补偿轻量局部卷积的上下文不足,不应被拆成多项独立的新发明。

3. 半分辨率渐进解码:将轮廓定位留给浅层旁路

两次步长 2 的 stem 卷积会把空间分辨率降至四分之一。ZipDepth 保留第一次下采样后的半分辨率特征,在最后解码阶段接回,而不让整个主干都维持高分辨率。深层负责判断前后景关系,浅层补充轮廓位置;如果边缘位置已在早期下采样中混合,仅靠最后插值通常无法恢复。

解码器从步长 32 开始,逐级上采样并与编码器同尺度跳接融合。投影用分组 1×1 卷积,组数取不超过 4 且同时整除输入输出通道数的最大值;通道数随分辨率提高而缩小,FPN 融合参数约 150K。步长 4 融合后接入步长 2 的 stem 分支,得到 32 通道的半分辨率特征,再用 3×3 预测头输出逆深度。消融显示这条通路改善精度,但也明显增加能耗,不能称为免费细节恢复。

4. 硬件自适应上采样:边界质量相近的目标,不同后端用不同算子实现

GPU/TensorRT 路径借鉴 RAFT 的凸上采样:从半分辨率特征预测每个输出子像素对 3×3 邻域的九个权重,经过带温度的 softmax 后加权邻域深度,再重排为两倍分辨率。邻域通过复制填充及 unfold 获得,输出施加 ReLU。权重非负且和为 1,可优先选取边界一侧的深度,减少前景与背景直接平均的模糊。正文未提供可可靠读取的温度数值。

移动 NPU/DSP 未必善于执行 unfold、softmax、PixelShuffle,因此另用标准卷积和插值:半分辨率特征经 1×1 降维、5×5 深度卷积及 1×1 投影,生成 sigmoid 门控,混合最近邻与双线性上采样。它在边缘保留陡变,在平坦区域提供平滑;相较九邻居自由权重,其灵活性较低,但算子更容易被移动后端支持。这是结构选择,不是 GPU 权重的无损格式转换。

以下为该门控混合的机制表达,两项插值作用于同一张半分辨率逆深度:

\[ \hat d=\operatorname{ReLU}\left(\alpha\operatorname{NN}(d)+(1-\alpha)\operatorname{Bilinear}(d)\right),\quad 0\leq\alpha\leq1. \]

损失函数 / 训练策略

预测与教师标签在有效像素上逐图做 median-and-MAD 归一化,去除尺度和平移歧义;随后结合归一化平均绝对误差与多尺度梯度损失。前者约束相对几何值,后者约束空间变化。原文给出的损失权重为:

\[ \mathcal L=\mathcal L_{\mathrm{SSI}}+2\mathcal L_{\mathrm{grad}}. \]

训练归一化只用教师标签;测试时与真实深度做最小二乘对齐是另一回事,不能据此认为部署时能得到真实尺度。缓存部分公式损坏,因此不猜补 MAD 的实现细节和梯度尺度列表。

训练分三阶段:256×256、10 epoch、每 GPU batch 192、峰值学习率 0.002;384×384、5 epoch、batch 128、学习率 0.0005;512×512、3 epoch、batch 96、学习率 0.00025。各阶段继承权重,半个 epoch 线性预热后余弦衰减至峰值的 1%。图片缩放短边后随机方形裁剪,加概率 0.5 的水平翻转。

作者报告两张 RTX 3090 训练约三天,但教师预训练、离线伪标签和每 epoch 实际抽样量未充分披露,不能把三天当作全部成本。默认推理保持宽高比、短边 384;效率剖析用固定 384×384,二者计算量并不相同。

实验关键数据

主实验

测试覆盖 NYUv2 654 张、ScanNet 800 张、KITTI Eigen split 652 张、ETH3D 454 张、DIODE 室内 325 张加室外 446 张。预测与真实深度按 Marigold 协议最小二乘对齐。AbsRel 为有效像素绝对相对误差均值,δ1 为预测/真值双向较大比值小于 1.25 的像素占比。

下表每个数据集单元格为 AR↓/δ1↑,两者沿用原表百分数,AR 8.4 即 AbsRel 0.084。效率条件为 Jetson Orin NX、15 W、FP32,固定输入 384×384,但模型内部可按原生配置缩放。† 表示作者用相同多域数据重训的轻量基线;ZipDepth 使用 GPU 上采样路径。

模型 参数 M / MACs G FPS↑ / mJ每帧↓ NYUv2 KITTI ETH3D ScanNet DIODE
DA-V2-Large(教师) 335 / 652.7 0.3 / 54457.1 5.1 / 97.1 7.7 / 94.9 5.1 / 97.8 4.2 / 98.0 21.0 / 76.7
DA-V2-Small 24.8 / 57.8 2.2 / 6740.3 6.1 / 96.2 8.4 / 93.4 6.3 / 96.7 5.2 / 97.2 21.4 / 75.9
Lite-Mono † 8.3 / 13.5 7.3 / 1883.5 8.7 / 92.7 10.9 / 89.5 8.7 / 93.6 9.6 / 90.2 22.4 / 72.9
PyDNet † 1.9 / 5.5 34.8 / 398.0 11.4 / 87.1 12.9 / 84.9 10.4 / 90.6 11.7 / 85.8 23.4 / 70.8
ZipDepth 6.1 / 3.0 34.4 / 396.6 8.4 / 93.3 12.3 / 86.4 10.0 / 92.2 8.8 / 92.1 22.6 / 73.9

ZipDepth 不逐项领先:Lite-Mono 在 KITTI、ETH3D 两指标和 DIODE AR 上更好,但 MACs 是其 4.5 倍。与近似吞吐的 PyDNet 相比,ZipDepth 五域两项精度都更好。相对教师,参数约少 55 倍、MACs 约少 218 倍,但存在明显精度损失,应解读为效率取舍。

消融实验

结构消融使用相同数据、训练日程及 Jetson 15 W、384×384 条件。下表 AR 保持百分数口径。

配置 NYUv2 AR↓ KITTI AR↓ ETH3D AR↓ ScanNet AR↓ DIODE AR↓ FPS↑ mJ每帧↓
完整模型 8.4 12.3 10.0 8.8 22.6 34.4 396.6
移除 SE + GCBlock 8.7 12.6 10.3 9.2 22.8 36.2 377.2
移除 SPPF + 跨尺度模块 9.0 13.1 10.6 9.0 23.0 36.5 375.8
移除半分辨率通路 9.1 13.8 11.2 10.3 23.8 48.9 271.8

去掉半分辨率通路后,KITTI、ScanNet AR 各增加 1.5 个百分点,同时能耗降低约 31.5%。这说明细节分支有明确质量收益和运行代价。其他消融是成组移除,无法单独归因到组内某个模块。

上采样实验在 UnrealStereo4K 的 1000 张合成图片上测尺度不变边界 F1(SI-BF1)。它评价深度轮廓匹配,而非全图误差;缓存未展开匹配容差。原表列名带百分号但数值为小数,下面保留原值,不自行换算。

上采样 NYUv2 AR / δ1 KITTI AR / δ1 SI-BF1 原值↑ CPU FPS↑ GPU FPS↑ NPU FPS↑
双线性 8.3 / 93.2 12.2 / 86.5 0.088 47.4 40.3 415
NPU 路径 8.3 / 93.2 12.2 / 86.5 0.105 44.6 34.1 375
GPU 路径 8.4 / 93.3 12.3 / 86.4 0.120 25.6 34.8 240

CPU 为 i7-11800H 45 W、ONNX Runtime;GPU 为 Jetson Orin NX 15 W、PyTorch Fused FP32;NPU 为 iPhone 12 ANE 6 W、CoreML,不能把不同列当作同条件硬件排名。GPU 路径的边界 F1 相对双线性提高约 36.4%,常规深度指标却几乎不变。表中 34.8 FPS 与主表 34.4 FPS 来自不同剖析表,不是同一次测量。

关键发现

  • 数据收益不全是单调的。 1% 到全量数据,NYUv2 AR 从 12.2 降到 8.4、ScanNet 从 13.2 降到 8.8;KITTI 各档为 12.1、12.1、12.4、12.6、12.3,不能声称数据越多每域必然越好。
  • 后端与精度决定吞吐口径。 Jetson 15 W 的融合 PyTorch FP32 约 34 FPS,TensorRT FP16 为 77 FPS;77 FPS 不能与主表 FP32 的 396.6 mJ/帧组合成同一结果。
  • 标题不代表所有设备都高速。 iPhone 12 ANE 的移动路径为 375 FPS,低端 Poco X3 NFC 的 TFLite GPU FP16 为 16 FPS。跨设备表用预热后前向延迟中位数,不包含采集、传输与显示全链路。

亮点与洞察

  • 训练与部署结构分开。 重参数化解决部署图,蒸馏解决知识来源,二者互补而非替代。
  • 边缘来源与插值协同。 浅层旁路保存轮廓位置,自适应上采样决定如何使用,需结合结构消融和边界指标判断。
  • 算子比参数量更接近硬件约束。 unfold 在不同后端代价不同,标准卷积加插值反而可能更适合移动加速器。

局限与展望

  • 精度与时序仍有限。 模型弱于基础模型,逐帧视频会闪烁;时序模块、度量深度和点图是作者后续方向,不是已有功能。
  • 相对深度不能直接测距。 测试使用真值对齐,部署用于机器人控制仍需尺度恢复和下游验证。
  • 极端场景主要是定性证据。 DA-2K 的恶劣天气、航拍、反射、水下例图没有真实深度,不能证明定量可靠性。
  • 总成本与复现信息不足。 离线伪标签成本、域采样配额和能耗测量细节不完整,缺少跨随机种子统计区间。

相关工作与启发

  • 对比 Depth Anything v2: 教师提供伪标签,本文重训卷积学生,不是对教师逐层剪枝。
  • 对比 Lite-Mono / PyDNet: 同数据重训帮助区分架构和数据收益,但不同模型在单域精度或参数量上仍有优势。
  • 对比 RepVGG / RAFT: 分别借用结构重参数化和凸上采样,增量是轻量跨域深度组合及移动算子替代。
  • 资源: 项目页来自论文首页,未联网核实发布状态,不将其冒充代码仓库。

评分

  • 新颖性:3/5。成熟组件的系统组合,重点在跨域轻量部署。
  • 实验充分度:4/5。五域、同数据基线、消融及多设备较完整,但全流程成本和统计仍不足。
  • 写作质量:4/5。数据到硬件论证连贯,部分细节依赖未收录的补充材料。
  • 价值:4/5。提供低功耗相对深度的可参考预算,不能替代高精度基础模型或直接测距。