ZipDepth: Bringing Lightweight Zero-Shot Monocular Depth Anywhere, on Any Device
作者:Fabio Tosi, Luca Bartolomei, Matteo Poggi, Stefano Mattoccia
单位:University of Bologna, Bologna, Italy
会议:ECCV 2026(论文与作者项目页标注;本文未独立核验 ECCV 会务目录)
研究动机
单目深度估计的难点不只是“从一张 RGB 图预测深度”,而是同一张二维图像可能对应许多不同的三维结构。近年的基础模型借助大规模数据和重型视觉主干,已经能在室内、道路、合成场景之间取得很强的零样本泛化;代价是数亿参数、数百到数千 GMAC,以及难以放进嵌入式设备的延迟和能耗。另一端的轻量模型虽然跑得快,却大多在 KITTI 或 NYUv2 等单一域的自监督设置中训练,换域后容易失效。
ZipDepth 要解决的正是这条断层:能否把基础模型的跨域知识迁移到一张真正可部署的小网络中,而不是在精度和实时性之间二选一?作者用 Depth Anything v2-Large 生成伪深度监督,以 17 个异构域、约 14.1M 张图像训练一个专为部署算子设计的 CNN。这里的输出是仿射不变逆深度,重点是相对结构和边界,而不是直接以米为单位的 metric depth。

图 1 的四组 RGB/深度对是论文的 teaser:赛车、猎豹、飞机、运动员来自明显不同的视觉域,意在说明模型的跨域适用性。它是定性例子,不能单独证明准确率;但它清楚地交代了 ZipDepth 希望保留的能力——在低功耗设备上仍输出有物体轮廓和层次的深度图。

图 2 把问题放到 Jetson Orin NX 15 W 的真实部署约束下:横轴是单帧能耗,纵轴是五个数据集的平均 AbsRel,气泡大小表示 FPS。ZipDepth 位于 $400\,\mathrm{mJ/frame}$ 以下的区域,并比基础模型更接近轻量部署区;这也解释了本文应被读成“精度—能耗—吞吐三目标折中”,而非只比较一个 benchmark 的误差。
核心问题:如何让一个约 6.1M 参数的网络,继承基础深度模型的跨域先验,同时在 GPU、NPU、CPU 与移动端维持可用的实时推理?
核心方法
ZipDepth 是一个编码器—解码器。输入为 RGB 图像 $\mathbf{x}\in\mathbb{R}^{3\times H\times W}$,输出为全分辨率的仿射不变逆深度 $\hat d\in\mathbb{R}^{H\times W}$。作者把“跨域能力”主要交给大规模蒸馏数据,把“能否落地”主要交给网络和算子设计;二者缺一不可。

图 3 给出了完整路径。编码器有四个层级,分辨率逐步降到 stride 32;解码器再从粗到细融合多尺度特征,最后恢复全分辨率。所有模块都只使用 TensorRT、CoreML、NNAPI 可原生支持的卷积、池化和逐元素操作,避免导出时依赖自定义算子。
1. 把训练表达力折叠为推理效率
起始的 split stem 连续做两次 stride-2 卷积,却保留 $1/2$ 分辨率的特征作为跳连,而不是一开始就把所有细节压到 $1/4$:
基本块采用 RepVGG 式可重参数化结构。训练时并行保留 $3\times3$、$1\times1$ 和恒等分支:
其中 $W_3$、$W_1$ 分别为 $3\times3$ 与 $1\times1$ 核。部署前,三分支会无损折叠为一个普通 $3\times3$ 卷积;因此训练时仍有较强表征能力,推理时却没有多分支开销。
Stage 2 用并行空洞 depthwise convolution 扩大感受野,并以 strip pooling 获取水平、竖直的长程上下文;Stage 3 叠加 SE 与 Global Context,补偿轻量 CNN 缺少全局语义的问题。这里的关键不是堆叠昂贵自注意力,而是在 $\mathcal{O}(N)$ 复杂度内,把“场景全局关系”送入局部卷积表征。
2. 轻量解码器与半分辨率细节通路
解码器先用 SPPF 在最粗层聚合多尺度上下文,再通过 bidirectional cross-scale 模块让 Stage 3 和 Stage 4 交换信息;随后以 grouped $1\times1$ 卷积的 FPN 逐级融合。最重要的设计是把 stem 的 $\mathbf{s}_{1/2}$ 在最后阶段接回,避免 stride-4 解码结果直接上采样时损失边缘。论文的消融会证明:这条 half-resolution path 是最显著的精度来源,同时也是速度代价最大的部分。

表 1 展示了“轻量”具体来自哪里:训练时总参数为 6.79M,融合后为 6.14M(文中常四舍五入为 6.1M);Stage 4 占推理参数约 54%,而 FPN 与最终 convex upsample 合计只占很小比例。也就是说,模型没有把预算耗在庞大的 decoder 上,而是把大部分容量留给中高层表征。
3. 面向硬件的两条上采样路径
GPU/TensorRT 路径对半分辨率预测的 $3\times3$ 邻域做由 mask $M_k$ 控制的凸组合,再 PixelShuffle 到全分辨率:
它更擅长保留深度不连续边界,但依赖 unfold 类操作。为 NPU/移动端,作者改为学习门控 $\alpha$,在 nearest 与 bilinear 两种上采样之间插值:
这不是一个“同一模型自动适配所有硬件”的魔法模块,而是两种已训练、已导出的部署路径:GPU 路径优先边界质量,NPU 路径优先算子兼容和吞吐。
4. 蒸馏目标
每张训练图像先经 median/MAD 对齐,作者使用 scale-and-shift invariant 深度损失与梯度损失:
这使学生学习 teacher 的相对深度结构和边缘,而不强迫不同数据源共享统一的绝对尺度;也直接带来了后文评测与应用边界。
数据集
训练数据。论文用 Depth Anything v2-Large 离线生成伪深度,训练池覆盖约 14.1M 张图像、17 个异构域,包括通用图像、地标、城市道路、恶劣天气、室内外场景、立体/多视角数据等。作者使用 temperature-scaled、domain-balanced sampler,避免大数据源完全主导梯度。这里的“多域”是 ZipDepth 获得零样本能力的主要数据来源,而非仅靠网络结构。
训练策略。训练分三阶段:$256\times256$ 训练 10 epoch(每张 RTX 3090 的 batch size 为 192、峰值学习率 $2\times10^{-3}$),$384\times384$ 微调 5 epoch(128、$5\times10^{-4}$),最后 $512\times512$ 微调 3 epoch(96、$2.5\times10^{-4}$)。每阶段从前一阶段初始化,半个 epoch warm-up 后做 cosine decay;增强只有随机方形裁剪和 $0.5$ 概率的水平翻转。
评测数据与协议。五个测试集都未出现在训练中:NYUv2(654 张室内图)、ScanNet(800)、KITTI Eigen split(652)、ETH3D(454)、DIODE(325 张室内 + 446 张室外)。预测会逐图用最小二乘做 scale/shift 对齐,再报 AbsRel 和 $\delta_1$。因此,表中的优异结果证明了跨域相对深度的形状与排序;它不能直接外推为无需标定的绝对距离预测能力。
算力
学生网络的训练使用 2 张 NVIDIA RTX 3090,约 3 天。这是一个颇有说服力的门槛:论文没有把轻量模型的训练成本包装成基础模型级别的资源需求。不过应当区分两个口径——该数字描述学生网络训练;14.1M 图像的 teacher 伪标签预生成成本并未在论文中完整报告。

表 6 报告的是 384$\times$384 下 20 次 warm-up 后、200 次前向的中位数吞吐。优化后,RTX 3090 从 389 FPS 到 1317 FPS,15 W Jetson Orin NX 从 34 FPS 到 77 FPS,iPhone 12 从 240 FPS 到 375 FPS,iPad Pro M4 从 360 FPS 到 715 FPS;低端 Xiaomi Poco X3 的 TFLite GPU 路径仍有 16 FPS。这组数据比“只报桌面 GPU FPS”更有价值,因为它展示了不同功耗级别上的可部署范围。
实验结果

表 2 是主结果。轻量基线都在相同多域训练数据上从头重训,因而更适合考察架构差异;基础模型则使用官方预训练权重,所以二者共同回答的是部署折中,而不是完全同训练条件下的纯架构竞赛。
在 Jetson Orin NX 15 W、384$\times$384、FP32 的 GPU 上采样路径下,ZipDepth 为 6.1M 参数、3.0 GMAC、34.4 FPS、396.6 mJ/frame。五个基准的 AbsRel/$\delta_1$ 分别为:NYUv2 8.4/93.3、KITTI 12.3/86.4、ETH3D 10.0/92.2、ScanNet 8.8/92.1、DIODE 22.6/73.9。它在轻量模型中取得 NYUv2 与 ScanNet 最低 AbsRel、DIODE 最高 $\delta_1$,但 Lite-Mono 在 KITTI 和 ETH3D 更好,DIODE AbsRel 也略优(22.4 对 22.6);因此“每个数据集都第一”的说法不成立。
同一张表也量化了上限:teacher DA-V2-Large 为 335M 参数、652.7 GMAC、0.3 FPS、54,457.1 mJ/frame。ZipDepth 无法达到 teacher 的精度,KITTI AbsRel 相差约 4.6、DIODE 相差约 1.6;换来的则是约 55 倍更少参数、200 倍以上更少计算和可用的嵌入式吞吐。

图 4 给出五个未见基准上的输入、teacher 与轻量模型的定性对比。它支持“ZipDepth 比其他轻量基线保留更多局部结构”的直观判断,但视觉图并不能取代表 2 的定量结果;尤其深度色彩映射本身不提供绝对尺度。

表 3 解释了哪些模块真正有效。去掉 SE+GC,NYUv2 从 8.4/93.3 退到 8.7/92.9,只有小幅加速;去掉 SPPF+Cross-Scale 则到 9.0/92.4。最关键的是移除 half-resolution path:NYUv2 降到 9.1/91.5,DIODE 降到 23.8/71.6,但速度升至 48.9 FPS、能耗降为 271.8 mJ。由此可见它不是“免费细节”,而是用一部分功耗换取深度边界。

表 4 将 14.1M 的训练池缩到 1%、10%、25%、50%、100%。NYUv2 从 12.2/84.9 改善为 8.4/93.3,ScanNet 从 13.2/82.4 改善为 8.8/92.1,说明小模型仍能继续吸收大规模蒸馏的收益。KITTI 在 10% 以后 AbsRel 在 12.1–12.6 间波动,并没有单调提升;这提醒我们,数据规模的收益也与目标域覆盖度有关。

表 5 直接验证硬件自适应上采样。普通 NYUv2/KITTI 指标几乎相同,但在 1,000 张 UnrealStereo4K 合成图的 SI-BF1 上,GPU convex 为 0.120,显著高于 bilinear 的 0.088(约 +36%);NPU convex 为 0.105,保留大部分边界收益。代价同样清楚:GPU convex 在 CPU 上为 25.6 FPS,低于 NPU path 的 44.6 FPS;在 iPhone ANE 上,NPU path 为 375 FPS,高于 GPU path 的 240 FPS。

图 5 把表 5 的边界指标变成了可见现象:双线性上采样把雕像轮廓与细小结构抹平,convex 路径的边缘更锐利。需要保留一个限定:这项最强的边界证据来自带稠密、精确标注的合成数据,真实数据的同等收益仍值得继续验证。

图 6 展示恶劣天气、航拍、反光和水下场景。它说明模型能在训练/评测域之外产生连贯深度结构,但图中没有 ground truth,因而只能作为定性泛化案例,不能视作这些困难条件下的精度证明。
优势与不足
优势
把部署约束放进研究目标。论文同时给出五个零样本基准、参数量、GMAC、Jetson 15 W 能耗/FPS 和九类设备吞吐,避免只用一个桌面 GPU 数字宣称“轻量”。
结构与数据的因果证据较完整。半分辨率跳连、SE/GC、SPPF/cross-scale、数据规模、上采样路径都有对应消融;尤其表 3 与表 4 支持了“细节通路”和“多域蒸馏”各自不可替代的判断。
推理图友好。可重参数化把训练时的多分支变为普通卷积,GPU 与 NPU 分别采用合适的上采样路径,减少跨框架导出时的工程摩擦。
不足
不等同于 metric depth。输出是仿射不变逆深度,评测前还逐图做 least-squares scale/shift 对齐;这很适合比较相对几何,但没有证明跨相机的绝对尺度标定能力。
蒸馏上限依然明显。和 DA-V2-Large 相比仍有可见精度差距;teacher 的偏差也可能被学生继承。论文报告了学生训练的 2 张 3090、3 天,却没有完整给出离线伪标签生成的总成本。
统计与公平性仍有边界。主表是单点结果,正文没有给出多随机种子方差或置信区间;轻量方法的同数据重训对比很有价值,但基础模型使用官方预训练权重,不能把所有比较误读成完全相同预训练条件下的胜负。
时序和极端场景尚未解决。作者明确提到单帧模型在视频上会发生 temporal flickering;图 6 的极端场景没有 GT。加入轻量时序模块、扩展到 metric depth 或 point map 都仍是后续方向。
记忆点
ZipDepth 不是把基础模型“剪小”:它用基础模型当 teacher,把跨域知识转入专为端侧算子设计的 CNN。
训练多分支、部署单分支是可重参数化最有价值的工程思想:把训练表达力与推理图复杂度分开优化。
半分辨率跳连是深度边界的关键开销点:移除它能到 48.9 FPS,却会在所有基准损失细节;实时性从来不是免费的。
上采样也要按硬件分路:GPU convex 赢得边界质量,NPU 路径赢得兼容性和移动端吞吐,而不是追求一套算子通吃。
一句话总结:ZipDepth 用大规模多域蒸馏补齐轻量模型的泛化短板,再用可重参数化骨干、半分辨率细节通路和硬件自适应上采样把能力压进 6.1M 参数与实时设备预算;它是很强的“相对深度部署”方案,但不是免标定的 metric depth,也尚未解决视频时序一致性。












