用全卷积网络做密集预测 (dense prediction),优点很多。但现在,你可以试试 Vision Transformer 了 ——

英特尔最近用它搞了一个密集预测模型,结果是相比全卷积,该模型在单目深度估计应用任务上,性能提高了 28%。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

其中,它的结果更具细粒度和全局一致性。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

在语义分割任务上,该模型更是在 ADE20K 数据集上以 49.02% 的 mIoU 创造了新的 SOTA。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

这次,Transformer 又在 CV 界秀了一波操作。

沿用编码-解码结构

此模型名叫 DPT,也就是 dense prediction transformer 的简称。

总的来说,DPT 沿用了在卷积网络中常用的编码器-解码器结构,主要是在编码器的基础计算构建块用了 transformer。

它通过利用 ViT 为主干,将 ViT 提供的词包(bag-of-words)重新组合成不同分辨率的图像特征表示,然后使用卷积解码器将该表示逐步组合到最终的密集预测结果。

模型架构图如下:

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

具体来说就是先将输入图片转换为 tokens(上图橙色块部分),有两种方法:

(1)通过展开图像表征的线性投影提取非重叠的图像块(由此产生的模型为 DPT-Base 与 DPT-Large);

(2)或者直接通过 ResNet-50 的特征提取器来搞定(由此产生的模型为 DPT-Hybrid)。

然后在得到的 token 中添加位置 embedding,以及与图像块独立的读出 token(上图红色块部分)。

接着将这些 token 通过 transformer 进行处理。

再接着将每个阶段通过 transformer 得到的 token 重新组合成多种分辨率的图像表示(绿色部分)。注意,此时还只是类图像(image-like)。

下图为重组过程,token 被组装成具有输入图像空间分辨率 1/s 的特征图。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

最后,通过融合模块(紫色)将这些图像表示逐步“拼接”并经过上采样,生成我们最终想要的密集预测结果。

ps.该模块使用残差卷积单元组合特征,对特征图进行上采样。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

以上就是 DPT 的大致生成过程,与全卷积网络不同,ViT 主干在初始图像 embedding 计算完成后放弃了下采样,并在全部处理阶段保持恒定维数的图像表示。

此外,它在每阶段都有一个全局感受野。

正是这两点不同对密集预测任务尤其有利,让 DPT 模型的结果更具细粒度和全局一致性。

用两种任务来检验效果,具体效果如何?

研究人员将 DPT 应用于两种密集预测任务。

由于 transformer 只有在大训练集上才能展现其全部潜能,因此单目深度估计评估是测试 DPT 能力的理想任务。

他们将 DPT 与该任务上的 SOTA 模型进行对比,采用的数据集包含约 140 万张图像,是迄今为止最大的单目深度估计训练集。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

结果是,两种 DPT 变体的性能均显著优于最新模型(以上指标越低越好)。

其中,与 SOTA 架构 MiDaS 相比,DPT-Hybrid 的平均相对改善率超过 23%,DPT-Large 的平均相对改善率则超过 28%。

为了确保该成绩不仅是由于扩大了训练集,研究人员也在更大的数据集上重新训练了 MiDaS,结果仍然是 DPT 胜出。

通过视觉比较图还可以看出,DPT 可以更好地重建细节,可以在对卷积结构具有挑战的区域(比如较大的均匀区域)中提高全局一致性。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

另外,通过微调,研究人员发现 DPT 也可以有效地应用于较小的数据集。

在具有竞争力的语义分割任务上:研究人员在 ADE20K 数据集上对 DPT 进行了 240 个 epoch 的训练。

结果发现,DPT-Hybrid 优于现有的所有全卷积结构,以 49.02 的 mIoU 达到了 SOTA(其更清晰、更细粒度的边界效果如开头所展示)。

而 DPT-Large 的性能稍差,研究人员分析可能是因为与之前的实验相比,采用的数据集要小得多。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

同时,他们在小数据集(Pascal)上对表现优异的 DPT-Hybrid 微调了 50 个 epoch 后发现,DPT 的性能仍然强大。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

最后,“百闻不如一见”,如果你想体验 DPT 的真实效果,可以到 Huggingface 官网。

英特尔用 ViT 做密集预测效果超越卷积:性能提高 28%,在线可玩-编程之家

论文地址:

https://arxiv.org/abs/2103.13413

模型地址:

https://github.com/intel-isl/dpt

Hugging Face 体验地址:

https://huggingface.co/spaces/akhaliq/DPT-Large