DPT
Ranftl 2021 · 论文
一句话总结 — 用Vision Transformer取代CNN骨干网络进行稠密预测(深度、分割),在每一层都利用全局自注意力,从而产生全局一致的深度图。
问题
全卷积网络在稠密预测任务中占据主导地位,但其编码器会逐步降采样:在更深阶段丢失的特征分辨率和细粒度信息很难在解码器中恢复,而且单个卷积的感受野有限,因此只有在非常深的堆叠结构后期才能获得广阔的上下文信息。对于单目深度这类逐像素任务,这会导致预测在局部上不一致、在全局上摇摆不定。DPT探究了一个问题:一个具有恒定表示分辨率、每一阶段都拥有全局感受野的Vision Transformer骨干网络,能否产生更细粒度、全局更一致的稠密预测。
方法与架构
Transformer编码器。 图像被分解为像素()的非重叠图块,每个图块展平后线性投影为一个token;加入可学习的位置嵌入和一个特殊的读出token(readout token),得到token集合,,其中。层多头自注意力transformer层将其变换为。由于token与图块一一对应,空间分辨率在所有阶段保持恒定,而且从第一层开始每个token就可以关注其他所有token。变体包括:ViT-Base(,12层)、ViT-Large(,24层)和ViT-Hybrid(以ResNet-50特征作为token,12层)。
重组(Reassemble)。 来自四个transformer深度的token通过一个三阶段操作被转换回类图像的特征图
其中将读出token折叠进图块token中(默认方案是对每个token投影其与读出token的拼接结果),按图块位置将token重塑为一个的特征图,而通过投影加(转置)卷积将其缩放为,其中。对于ViT-Large,被抽取的层是(更深层的层在更低分辨率下组装);ViT-Base使用;ViT-Hybrid使用前两个ResNet模块加上第阶段。
卷积融合解码器。 RefineNet风格的融合模块通过残差卷积单元逐步组合相邻阶段的特征图,每阶段上采样2倍;最终表示的分辨率是输入的一半,并馈入特定任务的输出头。位置嵌入在运行时被线性插值,因此DPT能像FCN一样处理不同大小的图像。
深度训练方案。 遵循MiDaS协议——对逆深度采用尺度和位移不变的截尾损失,加上多尺度梯度匹配——但训练数据是MIX 6,一个约140万图像的元数据集(MIX 5加上另外五个数据集),是当时构建的最大深度训练集,使用多目标(帕累托)数据集混合策略,在分辨率下训练60个epoch。
实验结果
零样本跨数据集迁移(所有指标均为越低越好):在MIX 6上训练的DPT-Large达到DIW WHDR 10.82、ETH3D AbsRel 0.089、Sintel AbsRel 0.270,以及异常率8.46(KITTI)、8.32(NYU)、9.97(TUM),而此前最好的全卷积MiDaS(MIX 5)为:12.46 / 0.129 / 0.327 / 23.90 / 9.55 / 14.29。DPT-Large的平均相对提升为28%,DPT-Hybrid为23%;在同样的MIX 6上重新训练卷积版MiDaS只带来微小改善,说明全卷积网络无法像transformer那样利用额外数据。微调后的DPT-Hybrid在NYUv2( 0.904,AbsRel 0.110,RMSE 0.357)和KITTI( 0.959,AbsRel 0.062,RMSE 2.573)上创造了新的最优结果。在语义分割方面,DPT-Hybrid在ADE20K上以49.02% mIoU创造新纪录,并在微调后于Pascal Context上同样刷新最优结果。
对SLAM的意义
DPT使ViT编码器成为单目深度的默认选择:DPT-Large成为MiDaS v3和Depth Anything v1的骨干网络,而这两者是最常被注入单目和稠密SLAM系统的深度先验。当一个SLAM流水线使用”相对深度网络”时,其底层很可能就是DPT风格的架构。它产生的全局一致深度正是稠密建图所需要的——局部摇摆的深度图会破坏TSDF或surfel融合。
相关条目
- MiDaS — DPT所接入的稳健相对深度训练方案
- MonoDepth —更早的自监督单目深度谱系
- ZoeDepth — 在相对深度预训练基础上加入度量尺度
- Depth Anything — 基于DPT架构构建的基础规模深度模型
- Metric3D — 同样在海量混合数据上训练的度量深度路线