HyperAIHyperAI

Command Palette

Search for a command to run...

使用多尺度深度网络从单张图像预测深度图

David Eigen Christian Puhrsch Rob Fergus

摘要

深度预测是理解场景三维几何结构的关键组成部分。对于立体图像,局部对应关系足以进行估计,但从单张图像中寻找深度关系则不那么直接,需要整合来自多种线索的全局和局部信息。此外,该任务本质上具有模糊性,整体尺度是导致不确定性的主要来源。在本文中,我们提出了一种新方法,通过使用两个深度网络堆栈来解决这一任务:一个基于整个图像进行粗略的全局预测,另一个则对该预测进行局部细化。我们还应用了一种尺度不变误差,以帮助衡量深度关系而非尺度。通过利用原始数据集作为大规模训练数据来源,我们的方法在NYU Depth和KITTI数据集上均取得了最先进的结果,并且无需超像素化即可匹配精细的深度边界。

一句话总结

一个多尺度深度网络,将来自整张图像的粗略全局深度预测与局部细化网络相结合,并使用尺度不变误差来关注深度关系而非绝对尺度,由纽约大学和 Facebook AI Research 的研究者提出,在 NYU Depth 和 KITTI 上实现了当前最优的单张图像深度估计,并生成了清晰的深度边界,无需超像素分割。

核心贡献

  • 一个双组件的深度网络架构,首先从整张图像估计粗略的全局深度图,然后对其进行局部细化以提高边界精度。
  • 一个尺度不变损失,显式惩罚像素位置之间相对深度关系的误差,从而在训练期间减少全局尺度歧义的影响。
  • 该方法在 NYU Depth 和 KITTI 上实现了当前最优的深度估计,并捕获了精细的深度边界,无需超像素后处理。

引言

从单张图像估计深度对于恢复场景几何结构至关重要,可直接应用于三维建模、机器人技术和场景理解。虽然立体深度估计可以依赖可恢复的对应关系,但单目预测必须解析固有的模糊线索,如透视、物体大小和场景布局,使其成为一个不适定问题。先前的单目方法依赖于手工设计的特征、严格的配准假设或在运行时进行昂贵的最近邻检索,这限制了精度和效率。作者引入了一个两阶段的卷积神经网络,该网络首先捕获全局场景结构,然后利用局部细节对其进行细化,并使用同时考虑逐点深度误差和成对深度关系的损失进行训练。该设计在 NYU Depth 和 KITTI 基准上实现了当前最优的深度估计,同时能在未见图像上实时运行。

数据集

作者从两个著名的深度估计基准 NYU Depth 和 KITTI 构建了训练集和测试集。处理过程包括时间同步、空间对齐、无效区域掩码以及去除近似重复的帧。两个数据集均按场景进行平衡,然后与重复样本一起打乱,为两阶段(粗略-精细)网络创建最终的训练列表。

  • NYU Depth v2

  • 来源:使用 Microsoft Kinect 采集的 464 段室内视频序列。采用官方划分(249 训练 / 215 测试)。

  • 分辨率:RGB 帧从 640×480 下采样至 320×240。

  • 时间对齐:每张深度帧与时间上最接近的 RGB 帧配对;若一张 RGB 匹配多个深度帧,则将其丢弃。

  • 掩码:对没有深度值的像素进行掩码。此外,对每张图像中等于最小值或最大值的深度进行掩码,以去除来自窗户、敞开的门和镜面反射表面的伪影。

  • 训练集大小:12 万张唯一图像,按每个场景 1200 张进行平衡,然后与重复样本一起打乱,形成一个包含 22 万张图像的列表。评估使用 694 张图像的 NYU Depth v2 测试集(带有填补的深度)。

  • 使用方式:粗略网络在此列表上训练 200 万样本(批量大小 32);然后使用冻结的粗略网络的预测训练精细网络 150 万样本。

  • KITTI

  • 来源:来自原始数据中 "city"、"residential" 和 "road" 类别的 56 个室外驾驶场景,划分为 28 个场景用于训练,28 个用于测试。

  • 分辨率:RGB 图像(原为 1224×368)下采样至一半。

  • 深度对齐:来自旋转激光雷达的真实深度是不规则采样的。通过选择记录时间最接近 RGB 捕获时刻的深度来解决逐像素冲突。

  • 裁剪:深度仅在图像的下半部分可用。整张图像被送入粗略网络以获取上下文;精细网络仅看到与目标区域对应的底部裁剪部分。

  • 过滤:移除车辆静止(加速度低于阈值)的镜头以避免重复。左右两个相机视图均作为独立样本使用。

  • 场景平衡:每个场景选择 800 张图像,得到 2 万张唯一训练图像。按场景平衡,并与重复样本一起打乱,形成一个包含 4 万张图像的列表。

  • 使用方式:粗略网络训练 150 万样本,然后精细网络训练 100 万样本,使用与 NYU Depth 相同的学习率比例。

方法

作者利用一个由两个组件栈组成的网络架构来预测场景深度。一个粗尺度网络首先在全局层面预测深度,然后由一个精细尺度网络在局部区域内进行细化。两个栈均应用于原始输入,但粗略网络的输出也会作为额外的第一层图像特征传递给精细网络。这使得局部网络能够编辑全局预测,以纳入更精细的尺度细节。

参考框架图:

全局粗尺度网络的设计目的是利用场景的全局视图预测整体深度图结构。其上层为全连接层,其感受野包含整张图像,而中低层通过最大池化操作融合信息。这种设计整合了对整个场景的全局理解,这对于利用消失点和物体位置等线索是必要的。该网络包含五个由卷积和最大池化组成的特征提取层,随后是两个全连接层。最终输出为输入分辨率的 1/4。作者没有依赖硬编码的上采样,而是让顶部的全连接层在更大区域上学习模板,从而有效地让网络根据特征学习自己的上采样方式。

如下图所示,来自粗略输出层的权重向量展示了学习到的深度模式:

在进行全局视角处理后,作者使用第二个精细尺度网络进行局部细化。该组件编辑粗略预测使其符合局部细节,如物体和墙壁边缘。精细尺度网络栈仅由卷积层组成,并对第一层的边缘特征使用了一次池化阶段。粗略输出作为一个额外的低级特征图输入,与第一个精细尺度层的输出拼接在一起。后续层使用零填充卷积保持此尺寸。所有隐藏单元使用整流线性激活,除了预测目标深度的最终线性层。作者首先针对真实目标训练粗略网络,然后在保持粗尺度输出不变的情况下训练精细尺度网络。

为了解决深度预测中全局尺度的根本歧义,作者引入了一种尺度不变的误差度量。对于预测深度图 yyy 和真实深度 yy^*y,对数空间中的尺度不变均方误差定义为: D(y,y)=1ni=1n(logyilogyi+α(y,y))2D(y, y^*) = \frac{1}{n} \sum_{i=1}^n (\log y_i - \log y_i^* + \alpha(y, y^*))^2D(y,y)=n1i=1n(logyilogyi+α(y,y))2 其中 α(y,y)=1ni(logyilogyi)\alpha(y, y^*) = \frac{1}{n} \sum_i (\log y_i^* - \log y_i)α(y,y)=n1i(logyilogyi) 是使误差最小化的值。该度量比较像素对之间的关系,确保预测中的深度差异与真实值中的一致。

受此度量启发,每个样本的训练损失设为: L(y,y)=1nidi2λn2(idi)2L(y, y^*) = \frac{1}{n} \sum_i d_i^2 - \frac{\lambda}{n^2} \left(\sum_i d_i\right)^2L(y,y)=n1idi2n2λ(idi)2 其中 di=logyilogyid_i = \log y_i - \log y_i^*di=logyilogyiλ=0.5\lambda = 0.5λ=0.5。这平衡了逐元素 l2l_2l2 误差与尺度不变误差。在训练期间,目标深度图中的缺失值被掩码,损失仅在有效点上评估。

作者使用随机在线变换增强训练数据,包括缩放、旋转、平移、颜色调整和水平翻转。缩放和平移不保持世界空间几何关系,但作者通过将深度值除以尺度因子来校正缩放。他们发现,尽管存在轻微变形,平移带来的额外数据仍对网络有益。在测试时,使用缩放比例为 1.0 的单次中心裁剪,不使用旋转或颜色变换。

实验

论文在原始的 NYU Depth v2 和 KITTI 数据集上训练了一个由粗至精的深度预测网络,利用其庞大的规模和天然的深度间隙,无需预处理。与 Make3D 和已发表方法的比较表明,该模型在所有标准指标上实现了最佳性能,在 NYU 上平均相对提升 35%,在 KITTI 上平均相对提升 31%。精细尺度网络在定性输出中持续锐化深度边界,尽管它不会提升数值误差分数;使用尺度不变损失在视觉上有轻微改善,但无指标提升。结果验证了该模型能够在室内和室外驾驶场景中,从具有挑战性的、未经填补的原始数据中学习准确的深度结构。

该架构通过一个粗略网络处理图像,该网络下采样至 1x1 的瓶颈层,然后上采样至输入分辨率的四分之一。一个四层的精细尺度网络在此相同的四分之一分辨率上细化预测,锐化深度边界但不改善误差指标。该系统在 NYU Depth 和 KITTI 上优于基线,相对提升分别为 35% 和 31%,而精细尺度细化带来了可见但非数值上的增强。粗略路径将输入压缩为 1x1 的表示,然后上采样至 1/4 分辨率,精细网络在此分辨率上操作。精细尺度层不改善误差指标,但产生更清晰的过渡,尤其是在物体边界和路面边缘附近。在 NYU Depth 上,该方法相对于第二名实现了 35% 的相对提升,在 KITTI 上为 31%,这得益于原始训练数据。Make3D 对水平对齐的假设降低了其在 NYU 上的性能,但在 KITTI 上有所帮助;本文提出的方法在两个数据集上仍超越了它。使用尺度不变损失在数值上没有增益,但在 NYU Depth 上有轻微的定性改善。

粗略网络在 NYUDepth 上优于所有基线,将绝对相对差异降低至 0.228,并将 δ<1.25 的准确率从 0.447 (Make3D) 提升至 0.618。精细尺度的添加仅带来微小的量化变化,但在定性上锐化了深度边界。尺度不变分析表明,校正平均对数深度消除了大部分误差,表明模型已经很好地捕获了场景结构。粗略网络实现了 0.283 的对数 RMSE 和 0.618 的 δ<1.25 准确率,显著优于 Make3D (0.409, 0.447) 和 Ladicky 等 (0.542)。对本文系统应用尺度预言机将对数 RMSE 从 0.28 降至 0.22,揭示出全局尺度预测构成了剩余误差的主要部分,而相对深度关系基本正确。

在 KITTI 驾驶数据集上,本文提出的粗略网络相对于 Make3D 基线带来了巨大且一致的增益,降低了绝对相对误差、平方相对误差以及线性和对数 RMSE。加入精细尺度网络仅带来微小的指标改善,但明显锐化了路面边缘附近的深度边界,这一效果受限于训练数据中的传感器未对齐问题。粗略网络将绝对相对差异从 0.280 (Make3D) 降至 0.194,并将 δ < 1.25 下的准确像素比例从 0.601 提升至 0.679。添加精细尺度细化将对数 RMSE 从 0.273 降至仅 0.270,证实了额外阶段在 KITTI 指标上几乎没有带来量化收益。定性输出显示,使用精细尺度网络时,尤其是在路面边缘附近,过渡更清晰,但改进受限于旋转扫描仪深度图与输入图像之间未经校正的对齐问题。

该评估在 NYU Depth 和 KITTI 上测试了一个两阶段架构,使用一个粗略网络下采样至 1x1 瓶颈层然后上采样,并在四分之一分辨率上应用可选的精细尺度网络。粗略网络在指标上产生了相对于基线的巨大量化增益,而精细尺度阶段产生了更清晰的深度边界,但在误差指标上没有有意义的改善。在物体边缘附近可见定性增强,尽管尺度不变分析显示,全局尺度预测和传感器未对齐是剩余误差的主要来源。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供