MiDaS

Ranftl 2020 · 论文

一句话总结 — 通过混合多个异构数据集并使用尺度-偏移不变损失进行训练,实现鲁棒的相对(仿射不变)单目深度估计,在跨域场景下实现强大的零样本泛化能力。

问题

单目深度估计的成功取决于大规模且多样化的训练集,但在不同环境下大规模获取密集真值深度极为困难,以至于该领域分裂成了具有各自特征和偏差的多个数据集——基于立体的、激光扫描的、结构光的,每种都有各自的尺度约定、深度范围,甚至未知或不一致的标定。在单一数据集上训练的模型在域外表现脆弱。MiDaS构建了一套工具,使得即便标注彼此不兼容,也能联合在所有这些数据集上训练。

方法与架构

网络本身是一个传统的编码器-解码器结构(Xian等人基于ResNet的多尺度架构);本文的贡献在于围绕它构建的训练机制。

预测空间。 模型在视差空间(逆深度)中进行预测,直到一个未知的尺度和偏移——这是唯一能兼容所有标注类型(未标定的立体、激光、SfM)的表征。

尺度-偏移不变损失。 对于MM个有效像素,损失在预测和真值的对齐版本d^,d^\hat{d}, \hat{d}^*上计算:

Lssi(d^,d^)=12Mi=1Mρ(d^id^i)L_{ssi}(\hat{d}, \hat{d}^*) = \frac{1}{2M}\sum_{i=1}^{M} \rho\left(\hat{d}_i - \hat{d}_i^*\right)

一种对齐方式是最小二乘:(s,t)=argmins,ti=1M(sdi+tdi)2(s,t) = \arg\min_{s,t}\sum_{i=1}^{M}(s d_i + t - d_i^*)^2,可闭式求解。鲁棒的替代方案用中位数/平均绝对偏差估计量对两个信号进行归一化:

t(d)=median(d),s(d)=1Mi=1Mdt(d),d^=dt(d)s(d)t(d) = \mathrm{median}(d), \qquad s(d) = \frac{1}{M}\sum_{i=1}^{M}|d - t(d)|, \qquad \hat{d} = \frac{d - t(d)}{s(d)}

表现最好的变体LssitrimL_{ssitrim}采用平均绝对误差ρ\rho,但会剔除每张图像中最大的20%残差(Um=0.8MU_m = 0.8M),使真值中的异常值永远不会影响训练。

梯度匹配。 一个多尺度梯度匹配项使深度不连续处变得锐利,并与真值边缘对齐(Ri=d^id^iR_i = \hat{d}_i - \hat{d}_i^*K=4K=4个尺度):

Lreg(d^,d^)=1Mk=1Ki=1M(xRik+yRik)L_{reg}(\hat{d},\hat{d}^*) = \frac{1}{M}\sum_{k=1}^{K}\sum_{i=1}^{M}\left(|\nabla_x R_i^k| + |\nabla_y R_i^k|\right)

每个数据集的损失为Ll=1NlnLssi+αLregL_l = \frac{1}{N_l}\sum_n L_{ssi} + \alpha\, L_{reg},其中α=0.5\alpha = 0.5

帕累托最优数据集混合。 不是简单地对各数据集的损失求平均,而是将每个数据集视为多目标优化(Sener & Koltun)中的一个任务,寻求一个近似的帕累托最优点,使任何数据集都不占主导地位。

数据:MIX 5 + 3D电影。 五个训练集——ReDWeb、DIML、MegaDepth、WSVD,以及一个新的3D电影语料库(来自23部立体电影的约7.5万帧):立体视角间的光流用作视差代理,配合左右一致性检查(超过2像素的标记为无效)、自动帧过滤,以及天空区域被强制设为最小视差。

编码器预训练。 编码器的ImageNet表现能够预测深度估计的表现;最佳模型使用ResNeXt-101-WSL编码器(弱监督预训练),带来最多15%的相对提升,而随机初始化的ResNet-50比其预训练版本差约35%。

实验结果

评估采用零样本跨数据集迁移:测试数据集(DIW、ETH3D、Sintel、KITTI、NYU、TUM)在训练中从未见过。完整模型(MIX 5,ResNeXt-101-WSL)取得DIW WHDR 12.46,ETH3D AbsRel 0.129,Sintel AbsRel 0.327,以及δ>1.25\delta > 1.25异常值率23.90(KITTI)、9.55(NYU)、14.29(TUM)——在所有方法中平均排名最佳(2.0);最强的竞争方法(Li MD、Li MC、Wang WS、Xian RW)在平均相对性能上差65–82%。消融实验显示,每个单数据集模型的平均泛化能力都不如经过精心整理的小型ReDWeb基线,而对全部五个数据集进行帕累托最优混合,相比该基线平均性能提升22.4%(而简单混合仅提升19.5%),且剔除式MAE损失优于MSE和MAE变体。训练总计耗时约六个GPU月。

对SLAM的意义

MiDaS(其v2/v3 DPT骨干版本)在大约半个十年间是首选的现成单目深度模型,其尺度-偏移不变损失如今已成为深度学习中的标准做法(ZoeDepth、Depth Anything、Marigold)。对SLAM而言,相对深度可直接用作稠密先验——用于填补无纹理区域、正则化稠密建图,或在单目流水线中初始化深度——但需注意尺度和偏移必须由SLAM系统自身逐帧解决。

相关条目