30篇论文计划-2-AdaBins: Depth Estimation using Adaptive Bins

在这里插入图片描述

摘要

本文解决了从单张RGB图像中估计高质量深度图的问题。作者从一个基线编解码器开始,提出全局信息如何帮助提高深度估计。基于此,作者提出一个基于transformer的模块,该模块将深度范围划分为binsbins的中心由网络根据每张图像自适应估计最终的深度值被估计为bins中心的线性组合。作者将这个模块称为AdaBins

介绍

作者的想法来源于当前的结构没有对输出值进行足够的全局分析。卷积层的一个缺点是,只有当张量处于很低的分辨率时,它们才能处理全局信息。作者认为,在高分辨率下的全局处理是更有效的。作者整体的思路是对传统编解码器的输出进行全局统计分析,并且在最高分辨率下用一个可学习的后处理块细化输出。据此,作者提出分析并修改深度值的分布。

对于不同的RGB输入对应的深度分布会有很大的差异,见图1.有些图像中大多数物体都位于深度值较小的范围内。例如,家具的特写图像将包含大多数靠近相机的像素,而其他图像的深度值可能分布在更广泛的范围内,例如走廊,其中深度值范围从小值到网络支持的最大深度。由于问题的ill-posed nature,这种深度分布的变化令端到端回归深度更加困难。最近的研究提出了利用关于室内环境的假设,如平面性约束,指导网络,这可能是也可能不适合真实环境,尤其对室外场景。替代这种假设,让网络自适应地学习将注意力集中在输入图像场景中更可能出现的深度范围区域。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关工作

许多CNN方法都认为单眼深度估计是从单个RGB图像中回归得到的密集深度图。作为两个最重要的竞争对手,我们考虑了BTS [26]和DAV [22]。在解码阶段,BTS使用局部平面制导层来引导特征到全分辨率,而不是标准的上采样层。DAV采用了标准的编码解码器方案,并提出通过注意利用场景中物体的共平面性在瓶颈处。我们的结果部分与这些(和许多其他)方法进行了比较
编解码器网络在图像分割[35]、光流估计[10]、图像恢复[28]等许多视觉相关问题上都做出了重要贡献。近年来,这种架构的使用在深度估计问题[15,41,21,48,1]的有监督和无监督设置中都取得了巨大的成功。这种方法通常使用一个或多个编码器-解码器网络作为其较大网络的子部分。在本文中,我们采用了[1]所使用的基线编码解码器网络架构。这使得我们能够更明确地研究我们提出的管道扩展的性能属性,这通常是一个不同的任务。
Transformer网络作为其在NLP任务和计算机视觉任务[32,43,2,6]中的传统使用之外的一个可行的构建模块,正获得越来越多的关注。随着最近将CNN与变压器[2]结合起来的趋势的成功,作者提出利用transformer编码器作为CNN输出的非局部处理的构建块

方法

动机

作者表明他的想法可以看作有序回归网络-见文献11的一个泛化。11表明将深度回归任务转化为深度分类任务可以提高性能。11提出将深度范围划分为预先定义宽度的bins。本文的泛化解决了初始方法的多重限制。首先,作者提出计算自适应的深度bins,也就是可以根据输入图像场景特征动态变化的bins。其次,分类方法导致深度值的离散化,导致视觉质量差明显的尖锐深度不连续。这可能仍然会给标准评估指标带来良好的结果,但它可能会给下游应用程序带来挑战,例如计算摄影或三维重建。基于此,作者提出将预测的最终深度作为bins中心的线性组合。这结合的分类和回归的优势。最后,与其他架构相比,如DAV [22],本文在高分辨率下全局计算信息,而不是主要在低分辨率下的瓶颈部分。

AdaBins的设计

首先作者讨论了他们的四种设计,这是对结果最重要的。
首先,作者应用自适应bin策略离散深度范围D(dmin,dmax)到N个bins。深度范围对于给定的数据集是固定的,可以由数据集或手动调节到一个合理的范围。作者为了证明adabins的想法,将其与其他三种设计进行对比:
1.bin宽度一致的bins:将深度范围D划分为N个宽度相同的bins。
2.固定对数宽度区间:将深度范围D按照对数尺度划分为N个宽度相同的区间。
3.可训练的宽度区间:宽度区间是根据特定数据集自适应学到的。虽然宽度可学习,但是所有的图像最终共享相同的宽度区间。
4.adabins宽度区间根据每张图像自适应地计算
作者推荐AdaBins作为最佳选择,消融研究显示这种设计优于其替代方案的优越性来验证了这一选择。图3显示了四种bins width的设计选择。
在这里插入图片描述
其次,将深度范围D离散到N个bins,并且为每个像素分配一个bin,这会导致深度离散伪影。因此,作者提出预测最终的深度值通过线性聚合bin centers,使模型能够估计平滑变化的深度值。
第三,以前的几个架构建议使用注意块来处理架构中的编码器块之后的信息(例如,图像字幕[5,18]或对象检测[2])。此外,目前最先进的深度估计也使用了这种策略[22]。这样的体系结构由三个按这样的顺序排列的块组成:编码器,注意器,然后是一个解码器。我们最初采用这种方法,但注意到,在空间高分辨率张量上使用注意力时,可以获得更好的结果。因此,我们提出了一个也有这三个块的架构,但顺序如下:编码器,解码器,以及最后的注意
第四,我们希望建立在最简单的架构之上,来隔离我们新提出的AdaBins概念的影响。因此,我们建立了一个在模型编码解码器[1]上,使用efficientB5 [40]作为编码器的骨干。在下一节中,将提供对整个体系结构的描述。

网络结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Adabins的第一个块称为mini-Vit。这个块的概述如图4所示。它是最近提出的利用transformer进行图像识别的方法的简化版本。minivit的细节如下段所述。Mini-vIT有两个输出:
1.一个b向量表示bin-widths,定义如何为输入图像划分深度范围D
2.Range-Attention-Maps R,形状为hwC,包含像素级深度计算有用的信息

Mini-ViT。在深度范围D内估计对给定图像更有可能发生的子区间,同时需要结合局部结构信息和全局分布信息。本文提出使用全局注意力来计算每个输入图像的bin widths向量b。在内存和计算复杂度方面,全局关注都是昂贵的,特别是在更高的分辨率下。然而,最近在变压器方面的快速发展提供了一些有效的替代方案。我们的灵感来自于视觉变压器ViT [6]在设计我们的AdaBins模块与变压器。我们还使用一个小得多的变压器版本,因为我们的数据集更小,在下面的描述中将这个变压器称为mini-ViT或mViT。
在这里插入图片描述

Bin-Widths。作者首先介绍怎样使用Mvit得到bin-widths。MVIT的输入是一个形状为hwCd的解码的特征张量。然而,transformer以一系列固定大小的向量作为输入。本文首先将解码特征送入一个卷积块(embedding conv,图4),卷积核大小为pp,步长为p,输出通道数为E。因此,这个卷积的输出是一个形状为h/pw/pE的张量。结果被reshape为一个空间flattened的张量,形状为SE的xp,其中S=hw/(pp),作为transformer的有效序列长度。本文将E维向量称为patch embeddings。
在这里插入图片描述

按照常规[2,6],我们在将学习到的位置编码添加到变压器之前,将它们添加到补丁嵌入中。本文transformer设置如表1,输出一个形状维S*E的嵌入x0.本文在第一个输出嵌入上使用了一个MLP头(作者还实验了一个版本,它有一个额外的特殊令牌作为第一个输入,但没有看到改进)。MLP头使用一个ReLU激活,并输出一个n维向量b‘。最后,我们对向量b’进行归一化,使其求和为1,得到bin widths b如下:
在这里插入图片描述
在这里插入图片描述
范围注意映射(Range attension maps)。此时,解码的特征代表了高分辨率和局部像素级信息,而变压器输出嵌入有效地包含了更多的全局信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值