项目链接:Zero-Shot Metric Depth with a Field-of-View Conditioned Diffusion Model
专业名词解释
scale- and shift-invariant depth
-
Scale- and Shift-Invariant Depth:
-
Scale-invariant 指的是深度的估计不受到图像中对象实际大小的影响。也就是说,无论目标物体在视野中的实际大小如何,估计的深度值都应保持一致。
-
Shift-invariant 指深度的估计不受物体在图像中位置的影响。无论物体在图像中的位置如何变化,深度值应保持不变。
-
-
Metric Depth:
-
Metric depth 是指基于实际物理单位(如米或厘米)的深度测量,这种度量可以直接反映物体与摄像机之间的实际物理距离。
-
应用背景:
在实际应用中,尤其是在环境极为多样化的应用场景(如自动驾驶车辆、机器人导航等),需要处理的场景可能同时包括室内和室外环境。这些环境在光照、尺度、深度范围等方面可能有很大不同。因此,选择一个能够适应这些差异的深度估计方法非常关键。
-
使用scale- and shift-invariant depth的方法可以简化模型处理不同环境的复杂性,因为它通过忽略尺度和位置的具体变化,使得模型能够更专注于从各种环境中提取一致的深度信息。
-
相比之下,metric depth提供的是更为精确的深度信息,但在处理多样化数据时可能需要更复杂的模型或预处理步骤来适应环境的变化。
scale-invariant
背景解释:
在多场景深度估计中,尤其是在涉及室内外不同环境的情况下,相机的内参(如焦距、传感器大小等)可能会有很大的差异。这些差异会影响到图像中物体的表现形式,从而对深度估计产生影响。例如,不同的焦距会改变图像的视野范围,从而影响到物体尺寸的感知和深度的测量。
尺度歧义问题:
尺度歧义(scale ambiguity)是指在不了解相机内参的具体情况下,无法准确确定图像中物体的实际大小和距离。例如,如果不知道相机的焦距和传感器大小,单从图像中看到的物体大小是无法准确推断出其真实大小或距离的。
使用尺度不变深度的好处:
通过采用尺度不变的深度估计方法,模型可以忽略由于相机内参变化所带来的尺度差异,专注于从图像中提取更一般的深度信息。这种方法不直接计算物体的绝对深度(metric depth),而是计算一种相对深度或深度顺序,这样可以使深度估计对不同相机的具体设置更加鲁棒。
FOV
-
FOV增强(Field-of-View Augmentation):在训练过程中,通过模拟不同的相机视场来增强训练数据。具体做法是对图像进行裁剪(cropping)或扩展(uncropping),从而创建出具有不同FOV的图像样本。这样做的目的是让模型学会适应不同的相机内参,提高其在实际应用中遇到各种相机时的泛化能力。
-
FOV条件化(FOV Conditioning):在训练和推理(inference)阶段,将视场作为条件信息输入模型。这是因为在缺乏相机内参信息的情况下,从单目图像中估计的深度会随着视场的变化而变化(即存在尺度歧义)。通过将FOV作为一个条件,模型能够更准确地估计出与实际视场相对应的深度尺度,从而解决尺度歧义问题。
Zero-shot
"cc"(零样本)通常用于描述一种学习或推理的场景,其中模型需要处理或识别它在训练过程中从未直接见过的类别或情况。这种类型的学习对于人工智能领域特别重要,因为它使模型能够展现出更高的泛化能力,即在没有明确示例的情况下处理未知数据的能力。
在深度估计的背景下,零样本任务通常指的是模型需要在没有专门针对该场景或条件优化的情况下,对新的、未见过的环境进行深度预测。例如,在零样本度量深度估计中,模型需要能够估计它从未在训练数据中见过的室内或室外环境中的物体或场景的深度。
这种能力非常有用,因为它减少了对大量标记数据的依赖,可以使模型在实际应用中更为灵活和有效。例如,在自动驾驶或机器人导航领域,模型可能需要在未曾训练过的新环境中估计障碍物的距离。通过零样本学习,模型可以更好地适应这种类型的新情况,增强其实用性和适应性。
文章内容
文章概述
-
不同场景的RGB和深度分布差异问题:
-
问题描述: 室内和室外场景在RGB颜色和深度(距离)的分布上有很大差异,这使得使用统一的模型来处理这两种场景变得困难。
-
解决策略: 文章提出使用对数尺度深度参数化,这种方法可以更好地处理不同深度尺度的变化,从而使模型能够适应室内外不同场景的深度分布。
-
-
未知相机内参引起的深度尺度不确定性问题:
-
问题描述: 在没有相机内部参数(如焦距和光圈大小)的情况下,估计出的深度尺度可能会出现偏差,这会影响深度估计的准确性。
-
解决策略: 通过视场(Field of View, FOV)条件化处理,模型能够利用FOV信息来调整和纠正深度尺度的偏差。此外,还在训练过程中合成增强FOV,使模型能够泛化到不同的相机设置上。
-
-
训练数据集的局限性问题:
-
问题描述: 传统的训练数据集可能只针对特定的相机内参进行优化,缺乏多样性,导致模型泛化能力有限。
-
解决策略: 使用更加多样化的训练数据混合体。通过将不同来源和类型的数据集结合起来训练,模型能够学习到更广泛的数据特征和场景变化,从而提高在未见过的数据上的表现。
-
-
提升效率和性能:
-
问题描述: 传统的深度估计模型可能需要较长的计算时间和较多的处理步骤。
-
解决策略: 采用高效的扩散参数化(efficient diffusion parameterization)。通过优化模型的内部结构和参数,减少了去噪步骤的数量,从而在保持或提升性能的同时,大幅度提升了处理速度。
-
超过ZoeDepth (SOTA)
引言
-
背景与挑战:
-
单目度量深度估计在移动机器人和自动驾驶等应用中非常有用,但实现上存在困难。主要的障碍包括:
-
室内外数据集在RGB和深度分布上的显著差异。
-
当缺乏相机内部参数的知识时,图像中存在固有的尺度模糊。
-
-
当前大多数模型专注于室内或室外场景,或者在针对两者训练时,只能估计尺度不变的深度。
-
-
现有模型的局限性:
-
现有模型通常只在单一室内或室外场景上训练,使用固定的相机内参数,这虽然避免了室内外深度分布的问题,但牺牲了泛化能力,并容易过拟合。
-
-
联合模型的发展:
-
近期研究开始尝试整合不同方法,训练可以估计度量深度的室内外联合模型。例如,ZoeDepth模型通过在MiDaS基础上增加两个头部,分别转换室内和室外的尺度不变深度到度量深度。
-
-
本文的创新:
-
本文提倡使用去噪扩散模型来进行零样本度量深度估计,并引入了几项关键创新以达到最先进的性能。
-
在训练中使用视场(FOV)增强来提高对不同相机内参数的泛化能力。
-
训练和推断中的FOV条件化有助于解决内在的尺度模糊。
-
在对数域中表示深度,使得模型对室内外场景的处理能力更加平衡,尤其提升了室内性能。
-
-
介绍了DMD(度量深度扩散)模型,这是一个简单但有效的方法,对于零样本度量深度估计表现出色,尤其在相同数据上微调后,在所有八个未见分布数据集上的相对深度误差比ZoeDepth低很多。
-
-
主要贡献:
-
提出DMD模型,有效进行零样本度量深度估计。
-
通过合成增强FOV和对数尺度深度表示,提高了模型对不同场景的适应性和表示能力。
-
DMD模型在性能和效率上都优于现有模型,特别是通过v参数化的扩散过程,使得推断速度大幅提升。
-
相关工作
-
单一数据集的深度估计:
-
许多研究将模型限定在单一类型的数据集上(室内或室外),采用固定的相机内参数。通过使用特殊的架构如binning技术或特定的损失函数,这些方法在其特定领域内取得了显著进展。
-
提到了一些研究提议将多个训练数据集与不同的相机内参数结合起来,通过标准化图像到相同的相机内参数来训练模型。
-
-
室内外联合模型:
-
MiDaS模型在多样化的室内外数据集上进行训练,展示了良好的泛化能力,但没有提供度量深度。
-
DPT模型在预训练后,进一步在NYU和KITTI数据集上进行度量深度的微调。
-
ZoeDepth模型增加了一个由场景类型监督的专家混合头部,以处理室内外场景。
-
-
内参数调节的单目深度:
-
先前的工作尝试将相机内参数整合进深度估计中,虽然这些尝试通常规模较小,但表明通过内参数调节可以在具有不同内参数的多数据集上进行训练。
-
ZeroDepth模型引入了一个在大规模数据集上训练的内参数调节的度量尺度深度估计器。
-
-
视场(FOV)调节:
-
本文介绍了一种新颖的视场增强方案,通过裁剪或扩展来模拟多样的视场,为室内外领域的零样本泛化以及对不同相机内参数的鲁棒性提供了大规模研究。
-
-
扩散模型在视觉中的应用:
-
扩散去噪模型作为一类强大的生成模型,最初用于自然图像生成,近期被证明在多个计算机视觉任务中有效,如语义分割、全景分割和光流估计。
-
文章指出,这是首次展示扩散模型也能在室内外场景中支持最先进的零样本度量深度估计。
-
扩散模型
-
扩散模型的基本原理:
-
前向过程:扩散模型的基础是一个前向过程,这个过程逐渐将目标分布(即我们希望模型能够生成或复现的数据分布)转化为一个可处理的噪声分布。这意味着,模型首先学习如何从有结构的数据转换成接近随机噪声的状态。
-
逆向过程:通过训练一个神经网络去噪器(neural denoiser),扩散模型执行逆向过程,即逐步将噪声样本转换回原始目标分布的样本。这个去噪器通过迭代的方式逐步减少样本中的噪声,最终恢复出接近原始数据的样本。
-
-
应用效果与场景:
-
多媒体处理:扩散模型在处理图像和视频数据方面表现出色,被证明在这些领域非常有效。
-
密集视觉任务:最近,扩散模型开始被应用于密集视觉任务,如图像和视频的分割(segmentation)、跟踪(tracking)、光流(optical flow)估计和深度估计等。这些任务通常需要精确的像素级处理,扩散模型在这些任务上也展示了强大的性能。
-
-
模型特点:
-
强大的回归性能:扩散模型在回归任务上(即预测连续值任务)表现优异,能够有效捕捉后验不确定性(posterior uncertainty),这是指在给定观测数据后对未知参数的估计不确定性。
-
通用性:扩散模型不需要特定的架构、损失函数和训练程序,这使它们在不同的任务上都能够有效地工作,而不需要针对每个新任务进行大量的定制开发。
-
-
模型基础与架构:
-
基于Efficient U-Net:DMD(Diffusion for Metric Depth)模型基于任务不依赖的Efficient U-Net架构,这是一种广泛用于图像分割的网络结构,因其效率而得名。
-
从ϵ参数化到v参数化:在先前的DDVM(Deep Depth Variational Model)中使用了ϵ参数化来训练神经去噪器。而在DMD中,改用v参数化,这种方法在推断时更为高效,只需一到两个细化步骤,无需进行渐进式蒸馏。
v参数化的核心概念
在v参数化中,我们处理的是一个逐渐被噪声覆盖的目标图像(在这个场景中是深度图)。
-
zt: 在时间步t的噪声图像,公式为 αtx+σtϵ。
-
x: 原始的无噪声深度图。
-
ϵ: 从标准正态分布 N(0,I) 中抽取的噪声向量。
-
αt 和 σt: 分别是根据预先定义的噪声时间表计算出的缩放系数和噪声级别。这些系数决定了原始信号与噪声的混合程度,其中 σt2=1−αt2。
-
去噪网络的预测
去噪网络的目的是预测一个值v,这个值帮助模型从噪声数据中恢复出原始信号。
-
v的定义: αtϵ−σtx,即当前噪声图像中的噪声部分与信号部分的差异。
-
从v到原始信号的恢复: 通过去噪网络的输出,我们可以计算出在当前时间步的深度估计 x^t=αtzt−σtvθ(zt,y,t)。
-
y: 可选的条件信号,在这里是RGB图像,可以用来辅助深度估计。
v的定义与作用
v的定义:在扩散模型中,v 被定义为 αtϵ−σtx。这个表达式表示在给定时间步 t 的当前噪声图像中,噪声部分 ϵ 与信号部分 x 之间的差异,经过调整后的形式。这里,αt 和 σt 是根据噪声时间表预先确定的参数,它们控制着信号与噪声在混合过程中的比例。
αt 是缩放因子,影响原始信号部分的权重。
σt 是与噪声相关的缩放因子,调整噪声的影响程度。
从v到原始信号的恢复
恢复过程:去噪网络预测的 v 值用于计算在当前时间步的深度估计 x^t。具体公式为 x^t=αtzt−σtvθ(zt,y,t)。这个公式表明:
αtzt:当前噪声图像与缩放因子 αt 的乘积,代表从当前噪声图像中提取的信号部分。
σtvθ(zt,y,t):模型预测的调整后噪声 v 与 σt 的乘积,代表需要从上述信号中减去的噪声成分。
通过这种方式,模型使用 v 来调整当前的噪声图像 zt,以接近原始无噪声的深度图 x。
可选的条件信号
y的作用:在去噪过程中,可选的条件信号 y(例如RGB图像)可以提供额外的上下文信息,帮助模型更准确地估计和恢复深度信息。这种上下文信息尤其在处理复杂或多变的视觉场景时显得尤为重要,可以显著提高深度估计的准确性和鲁棒性。
训练目标与损失函数
这个模型的训练目标是最小化原始深度图和预测深度图之间的差异,以及实际噪声和预测噪声之间的差异。
-
L2损失: 最初使用的是L2范数(即欧几里得距离的平方),用于计算 x 和 x^t 之间以及 ϵ 和 ϵ^t 之间的误差。
-
改进的L1损失: 基于DDVM在使用L1损失(绝对值损失)时表现出更优越的性能,DMD模型也采用了L1损失。这种损失对异常值更加鲁棒,通常可以提高模型在处理图像和深度数据时的精确度。
-
训练目标公式: Ex,y,t,ϵ[max(∥x−x^t∥1,∥ϵ−ϵ^t∥1)],这意味着模型试图最小化在每一个训练样本中最大的误差。
通过这种方式,v参数化的扩散模型不仅可以有效地处理深度图像的去噪任务,还能够在不同的时间步骤中逐步恢复出接近真实的深度信息,显著提高了模型在零样本度量深度估计中的性能。
训练室内外联合模型的挑战
-
深度分布的差异:室内和室外场景在深度分布上有很大的不同。例如,室内场景的深度数据通常最多到10米,而室外场景的深度可以达到80米。这种差异使得训练一个能够同时处理这两种类型场景的深度估计模型变得复杂。
-
相机内参的变化缺乏:训练数据经常缺乏足够的相机内参变化,这是提高模型对不同相机图像鲁棒性所必需的。许多数据集都是使用固定相机参数拍摄的,这限制了模型在实际应用中的泛化能力。
提出的三种创新解决策略
-
对数深度(Log Depth)的使用:
-
通过将深度值转换为对数尺度,可以更有效地处理不同尺度的深度值。这种转换有助于缩小室内外场景深度分布的差异,使模型在两种场景下都能更好地工作。
-
-
视场(Field of View, FOV)增强:
-
视场增强是通过改变训练图像的视场来模拟从不同相机拍摄的图像,从而增加数据的多样性。这种方法可以帮助模型学习如何处理来自不同相机(即使这些相机的内参未在训练集中明确给出)的图像。
-
-
视场调节(Field of View Conditioning):
-
视场调节涉及到在模型训练和推理过程中使用视场信息作为一个条件变量,帮助模型根据不同的视场调整其深度估计。这可以进一步提高模型对于不同相机设置的适应性和准确性。
-
对数深度(Log Depth)
线性缩放的限制
-
线性缩放方法:通常在处理深度数据时,可以通过线性缩放把原始深度值 dr 转换到 [−1,1][−1,1] 范围内,以适配扩散模型常用的数据分布。这个转换公式是
其中 dmax 通常取为80米,以覆盖典型的室外深度范围。normalize(d)
函数通过 clip(2d−1,−1,1) 实现,它确保所有的值都被压缩到 [−1,1][−1,1] 范围内。
-
表示能力的分配问题:使用线性缩放时,由于大部分的缩放范围被用来表达室外的深度值(最大可达80米),这使得室内场景(深度通常不超过10米)的深度值在表示上得到的注意力较少,从而可能导致信息丢失或不足。
对数缩放的提出
-
对数缩放方法:为了更合理地分配表示能力,尤其是增加对室内场景深度的表示能力,提出使用对数缩放的方法。公式为
其中 dmin 和 dmax 分别代表支持的最小和最大深度,例如0.5米和80米。
-
对数缩放的好处:对数缩放能够在整个深度范围内更均匀地分配表示能力。对于较小的深度值(如室内场景中常见的),对数缩放提供了更细致的分辨率,使得模型能够更精确地处理这些场景的深度信息。实际应用中发现,对数缩放在提高深度估计的准确性和鲁棒性方面特别有效。
视场(Field of View, FOV)增强
视场增强的必要性
-
数据集视场变化少:深度估计数据集常常在视场(即相机的视角宽度)方面缺乏多样性。这会导致模型在训练数据上表现良好,但对于具有不同相机内参的新图像则泛化能力较差。
-
过拟合问题:由于数据集视场变化有限,模型容易在这些有限的视场上过度学习,难以适应新的或不同的视场设置。
视场增强的方法
-
裁剪和扩展:为了模拟多样的视场,提出通过裁剪(cropping)和扩展(uncropping)图像的方式来增强训练数据。裁剪是直接的方法,而扩展则涉及到对图像边缘进行填充。
-
扩展的实现:
-
生成式扩展:初步实验中使用了名为Palette的生成模型进行图像扩展,但这种方法可能较为复杂。
-
高斯噪声填充:后来发现使用均值为零、方差为1的高斯噪声来填充RGB图像同样有效,且更为简单和高效。
-
缺失真实深度数据的处理
深度数据填充:对于在扩展增强中产生的缺失深度数据,采用了一种结合近邻填充(near-neighbor in-filling)和阶段展开去噪(step-unrolled denoising)的方法。这种技术在训练过程中被证明能有效应对由于真实数据噪声或不完整带来的训练与测试间的分布偏移。
-
近邻填充(Near-neighbor in-filling):
-
这种方法使用图像中已知深度区域的近邻像素值来估计缺失区域的深度值。通过查找缺失区域周围最近的已知深度数据,并将这些数据用作填充材料,可以相对简单地恢复部分深度信息。这种方法通常在处理小范围缺失时效果较好。
-
-
阶段展开去噪(Step-unrolled denoising):
-
阶段展开去噪是一种更为复杂的技术,通常用于去噪和图像恢复任务中。在这个上下文中,它涉及将去噪网络的操作展开成多个步骤,每个步骤针对不同阶段的深度估计进行优化。通过这种方式,去噪网络可以逐步改善初始近邻填充提供的粗略深度估计,从而更准确地恢复缺失区域的深度。
-
视场调节(Field of View Conditioning)
视场调节作为条件信号的应用
-
使用 tan(θ/2) 作为信号:
-
角度定义:在这里,θ 指的是相机的垂直视场角。视场角是描述相机拍摄范围的一个参数,垂直视场角越大,相机能捕捉到的场景范围就越宽广。
-
正切函数的应用:通过使用 tan(θ/2),即垂直视场角一半的正切值,可以量化视场角对深度估计的影响。正切函数在这里被用来转换角度信息为一个更适合机器学习模型处理的数值形式。
-
深度估计的调整:这个数值(tan(θ/2))作为一个输入(条件信号)提供给深度估计模型,允许模型根据不同的视场大小来调整其深度估计。这是基于视场角大小直接影响到深度计算的原理——视场角越大,同一像素点代表的实际区域越广,因此对深度的估计也应有所调整。
-
-
探索水平视场作为条件信号:
-
研究尝试:除了垂直视场角之外,研究人员还试图使用水平视场角作为另一种条件信号进行模型训练,探索是否能进一步提高模型的准确性和泛化能力。
-
结果分析:尽管理论上水平视场也能提供有用的信息,研究发现将水平视场作为条件信号并没有显著改善深度估计的结果。这可能是因为垂直视场角已经足够提供必要的调整信息,或者是因为水平视场角的变化对深度估计的影响不如垂直视场角显著。
-
通过将垂直视场角的正切值 tan(θ/2) 作为条件信号使用,深度估计模型能够根据不同的视场大小调整其输出,这样做有助于提高模型在面对不同相机内参时的鲁棒性和准确性。尽管水平视场角的探索没有带来预期的效果,但这种尝试显示了研究人员在改进深度估计技术方面的努力和创新思路。