PriorDiffusion利用文本到图像扩散模型语言先验,破解单目深度估计歧义,零样本性能优且收敛快 !

大模型数据中台机器学习

picture.image

本文探讨了利用文本到图像扩散模型学习的语言先验知识解决单目深度估计中的歧义和视觉干扰的潜力。特别是,传统的单目深度估计由于缺乏立体或多视角深度线索而具有固有的歧义,并且由于视觉缺乏鲁棒性而具有噪声。

作者提出,扩散模型中的语言先验可以通过利用与语言描述对齐的几何先验来增强单目深度估计,这种先验是在文本到图像预训练过程中学习的。

为了生成能正确反映文本的图像,模型必须理解指定物体的尺寸和形状、它们的空间关系以及场景的缩放。

因此,作者提出PriorDiffusion,使用一个同时考虑图像和文本描述与场景对齐的预训练文本到图像扩散模型,通过去噪过程推理仿射不变的深度。作者还证明,语言先验可以指导模型关注特定区域,并帮助其与用户意图对齐感知三维场景。

同时,它还可以作为扩散轨迹收敛的约束,因为从压缩的低维语言特征学习三维属性比从冗余的高维图像特征学习更有效。

通过在HyperSim和Virtual KITTI上进行训练,作者在NYUv2、KITTI、ETH3D和ScanNet等扩散基础深度估计器中实现了最先进的零样本性能和更快的收敛速度。

1 Introduction

作者提出了PriorDiffusion,将人类提供的场景语言描述作为先验知识,引导深度图预测。在文本到图像预训练过程中,扩散模型学习生成与提供语言描述相符的多样化场景。为了实现这一目标,扩散模型必须理解每个目标的尺寸和形状、空间关系以及语言输入中描述的场景大小,以生成准确地表示输入文本在各种视图和场景布局下的图像。因此,在深度估计中,由人类生成的描述允许模型利用输入文本中嵌入的几何先验知识更有效地感知3D场景。在作者的PriorDiffusion中,在去噪过程中,模型使用图像和语言输入来预测要移除的噪声。最终,高斯噪声逐步细化为与输入图像和语言描述都相符的深度图。由于在训练和推理图像中获取足够的人类提供文本描述具有挑战性,作者利用视觉语言模型(例如LLaVA[11])为每张图像生成描述,模拟人类标注。

为了支持作者的假设,作者在两个合成数据集上进行训练,分别是HyperSim [62]和Virtual KITTI [4],并在四个真实世界数据集上进行零样本评估,包括NYUv2 [69],KITTI [24],ETH3D [68]和ScanNet [10]。与其他最先进的扩散深度估计器相比,作者在定性结果上取得了优越性,同时在保真度更高的定量结果上,收敛速度更快。

作者的贡献:通过利用语言作为先验,使用预先用文本到图像生成进行深度学习的单目深度估计,作者证明了:

  1. 语言可以为语言描述中的物体提供关于其存在、几何属性和空间关系的先验信息,从而使深度估计器更好地推理这些物体的深度。
  2. 语言先验知识指导模型的注意力指向特定区域,使其根据用户的意图感知3D场景。这对视觉系统来说特别有益,尤其是那些具有小尺寸、恶劣照明、遮挡或与背景具有高度视觉相似性的区域。
  3. 语言先验为扩散轨迹的收敛速度提供了约束。作者的直觉是,从压缩的低维语言特征中学习3D属性(如几何特性和空间关系)比从冗余的高维图像特征中学习更有效。

2 Related Work

单目深度估计是一个密集回归问题,需要从单张图像中像素级预测深度,捕捉场景内的复杂空间关系。一些深度模型通过最小化深度预测和真实深度图之间的损失,在度量尺度(例如米)上学习像素级深度推理。每个模型通常只应用于一个数据域,该域中它被训练,具有相似的相机参数和物体尺度。具体而言,DORN利用了空间增加的离散化技术。AdaBins将深度范围分成了自适应的桶。NeWCRFs使用了神经窗口全连接CRF来计算能量。VADepthNet使用了第一阶变分约束,使网络 Aware 到场景空间中的深度梯度。当真实深度不可用时,自监督方法依赖于几何约束,其中尺度通过雷达[70],惯性[28, 78],激光雷达或双目图像[23, 26, 27]进行分配。为了实现跨域泛化,使深度估计在野外具有影响力,其他工作探索了仿射不变的深度估计,该方法预测深度到未知全局位移和比例。这种方法可以容纳具有不同尺度的各种场景,同时保留场景内不同物体或区域之间的几何关系。HND [98]利用空间信息和深度分布分 LayerNorm 深度表示。Depth Anything [88]从大规模自动标注的数据中学习。

DPT [60]利用尺度不变和位移不变的修剪损失。MiDas [59]将多个数据集与训练目标与深度范围和比例无关。Marigold [35]将微调协议与扩散模型关联。

现有方法试图仅从图像中预测深度,这受到比例,物体方向,遮挡和视觉噪声(如视点,照明,外观,纹理等)的模糊影响。另一方面,作者的PriorDiffusion利用Diffusion模型中的语言先验知识,为输入文本相关场景提供全面的了解,以解决视觉算法的歧义和噪声变量。

单目深度估计的扩散模型

去噪扩散概率模型(DDPM)[30]学习了一个扩散过程,该过程逐步降低图像的噪声,使它们可以通过应用反向过程从数据分布中获取样本。它们已经被应用于各种任务,如文本到图像的基因表达,超分辨率[22, 41, 64],图像修复[9, 90, 50],3D目标生成[40, 56, 48],等等。几种方法已经探索了使用DDPM进行度量深度估计。DiffusionDepth[12]学习将随单目视觉条件的随机深度分布去噪为深度图。同样,DDP[34]编码输入图像并使用扩散将其解码为深度图。DepthGen[66]扩展了一个多任务扩散模型用于度量深度预测。它的继任者,DDVM[67],专注于使用合成和真实数据集进行预训练以提高深度估计性能。最后,VPD[109]和Marigold[35]利用预训练的稳定扩散模型[63]作为图像特征提取器,结合额外的文本输入以增强深度预测。虽然以前的工作只关注使用图像作为扩散模型的条件来预测深度,但作者的PriorDiffusion利用语言先验在扩散模型中解决歧义和视觉噪声,并可控地进行3D感知。

单目深度估计的视觉语言模型通过在多样化的数据集上进行预训练,对语言和图像进行全面理解,从而为下游任务奠定了坚实的基础。

通常,CLIP [57] 采用对比学习在文本-图像对上进行操作,从而实现一系列应用,如少样本图像分类 ,图像分割 [61, 110],目标检测 [61, 115],以及 3D 感知 。考虑到它们日益增强的能力,一些工作 [1, 32, 105, 108] 尝试将视觉语言模型应用于单目深度估计。尤其是,DepthCLIP [105] 利用 CLIP 的语义深度响应和深度投影方案进行零样本单目深度估计。WorDepth [96] 从文本描述中学习 3D 场景的变分先验分布。RSA [97] 使用语言描述来预测尺度,将相对深度对齐到度量尺度。虽然语言在 3D 感知的各个方面都有应用,但作者的工作是首次在扩散模型中使用语言先验以利用与语言描述相匹配的几何先验来增强 3D 感知。

3 Method

问题设置: 给定一个RGB图像

,单目深度估计的目标是使用一个参数化函数

(表示为神经网络)来预测一个密集的深度图

,使得

。作者使用一个有监督的数据集

,其中包含

个样本,

是真实深度图,

表示描述图像的文本标注。

扩散形式化 。为了使用扩散模型进行单目深度估计,作者遵循[12, 34, 35, 66, 67, 109]中的方法,采用去噪扩散概率模型(DDPM)[30]的公式。作者定义一个潜在变量

,表示在扩散时间步

的潜在空间中深度图的一个噪声版本。真实深度图

通过一个冻结的VAE编码器

编码成潜在表示

作为监督:

。整个去噪过程后的扩散潜在

通过一个冻结的VAE解码器

解码回图像空间:

向前扩散过程。向前过程在

步中逐渐向潜在深度特征中添加噪声。该过程可以定义为:

是一个标量,用于定义在正向扩散过程中的每个步骤

添加的高斯噪声的方差。这个参数控制着潜在变量

在从

随时间过渡时增加了多少噪声。

的前向过程可以表示为:

其中

. 反向扩散过程。反向过程的目标是将

去噪以恢复

。反向过程定义为:

假设

是一个标准高斯分布

,去噪步骤

被参数化为:

是扩散模型,它预测在

,

, 输入图像

和相应的文本

条件下的均值和方差。作者使用来自稳定扩散 v2 [63] 的 U-Net 作为扩散模型的初始化。具体来说,给定一个文本描述

,作者首先通过一个冻住的 CLIP 文本编码器对其进行编码,然后将其输入到扩散模型中。给定一个图像

,作者使用与编码深度图的相同 VAE 编码器

对其进行编码,并将其与深度潜在

连接,然后将其输入到扩散模型中。

训练目标。作者的训练目标是通过使用重参化技巧和变分界,从噪声添加的角度进行推导。损失函数为:

在前向过程中采样到的噪声,用符号

表示,并且

是第

步的噪声深度图,其中

推理阶段 。推理阶段首先从标准高斯分布中采样一个纯粹的噪声潜在变量

,即

。这个初始噪声样本代表了反向扩散过程的起点。目标是逐步通过一系列去噪步骤优化这个样本,直到最终深度潜在

得到。每次去噪步骤都是预测需要从潜在变量在时间步

处删除的噪声成分

。预测通过在噪声潜在

的条件下,基于当前时间步

、输入图像

和相应文本描述

的扩散模型进行。迭代去噪过程遵循反向转变:

噪声时间表βt中推导出的αt和平均αt。这种反向扩散过程持续到t=0,此时完全去噪的潜在向量z0被达到。通过使用预训练和冻结的VAE解码器将z0解码回图像空间,可以获得预测的深度图y^:y^=D(z0)。

为了实现作者的方法,作者需要每个图像的人类提供的文本描述。由于标准基准测试没有包括这样的描述,作者提出使用现成的模型来生成文本描述,以模拟人类提供的描述。为了尽可能地模拟人类般的描述,作者关注自然语言,它不受模板限制,更能反映出人类的输入。为此,作者使用视觉问答模型LLaMA v1.6 Mistral [47]。作者将 Prompt 模型:

描述一张实际图像,假设它是一张真实世界的图像。请密切关注物体、它们的空间关系以及整体布局。这个 Prompt 旨在引发包括物体定位、互动和可能影响深度估计的显著特征在内的响应。请注意,作者使用的所有训练数据都是合成数据,通过强调“假设这是一张实际图像”,作者确保描述与模型将遇到的输入和场景相符。

4 Experiments

训练数据集。作者采用Marigold [35]中的训练方案,在两个合成数据集上训练作者的PriorDiffusion,这两个数据集都覆盖了室内和室外场景。第一个数据集,HyperSim [62],是一个逼真的室内场景集合,包含461个场景。从中,作者使用官方的划分选择大约54K个样本,排除任何不完整的样本。RGB图像和深度图被重新缩放到480 x 640像素的分辨率,相对于对焦点,将原始距离测量转换为相对于对焦点平面的一般深度值。第二个数据集,Virtual KITTI [4, 20],包括在五种不同的条件下生成的合成街道场景,如不同的天气和相机视角。作者使用Virtual KITTI 2 [4]版本。在训练中,作者选择四个场景,总共大约有20K个样本,并将图像裁剪成与KITTI基准分辨率[24]对齐,设置最大深度为80米。

深度归一化用于训练。参考[35, 59, 60, 88],为了标准化真实深度图

,作者应用一个线性归一化,以确保深度值主要位于

范围内,与VAE的输入值范围一致。这确保了在数据统计学上具有不变性的仿射不变深度表示,保证了所有场景都受到近远平面和极端深度值的限制。归一化的仿射变换定义如下:

2% 和 98% 百分位数分别表示深度图的 2% 和 98% 位置。

评估数据集。作者使用4个实际场景数据集评估PriorDiffusion的性能,这些数据集没有包含在训练数据中,遵循Marigold [35]的配置。NYUv2 [69]和ScanNet [10]都包含使用RGB-D Kinect传感器捕获的室内场景。对于NYUv2,作者使用指定的测试集,包含654张图像。对于ScanNet,作者从312个官方验证场景中随机选择800张图像进行评估。KITTI数据集[24, 25]包含由LiDAR传感器捕获的稀疏度深度图的户外街道场景,作者应用Eigen测试集[14]的652张图像,并遵循[15]的评估协议。对于ETH3D [68],它们也基于LiDAR测量,作者使用包括 GT 深度图的454个样本。

评估指标。遵循平移不变深度评估协议[35, 59, 60, 88, 97],对于每个图像和预测的相对深度

,作者拟合一对标量表示变换的缩放和偏移参数:

。深度预测的指标为

,其中:

其中

表示从相对深度

预测的指标尺度深度对齐,

表示图像坐标,

表示表示 GT 深度

中有效坐标的二进制 Mask ,其值大于零。然后,作者遵循 [6, 46, 96, 97, 105] 使用第一级阈值精度进行评估,计算为:

以及平均绝对相对误差,计算方法如下:

实现细节 作者使用PyTorch实现作者的方法,使用Stable Diffusion v2 [63]作为基础,并遵循原始的预训练设置,使用

-目标[65]。在训练期间,作者使用了DDPM噪声调度器[30],共1000个扩散步骤,而在推理时,应用了DDIM调度器[71],共50次采样步骤。作者的训练过程共进行了30000次迭代,批次大小为32,通过在16步(每步批量为2)的梯度累积中完成,以适应单个GPU。作者使用Adam优化器,学习率

,并包括随机水平翻转作为数据增强。通常在20000次迭代后(训练收敛),在Nvidia RTX 3090 GPU上需要约4天。

在表1中,作者将PriorDiffusion与其他最先进的非线性不变深度估计器进行了定量比较,这些估计器在本文中列出的所有零样本基准测试中进行了测试。PriorDiffusion在所有测试数据集上(包括NYUv2,KITTI,ETH3D和ScanNet)实现了最高的δ1准确率和最低的绝对相对误差(AbsRel)。值得注意的是,PriorDiffusion在NYUv2上的AbsRel为5.9%,δ1为95.9%,与Marigold等顶级竞争对手相当,表明了其强大的泛化能力。这是由于语言的泛化能力,因为它在不同类型的3D场景中具有不变性和鲁棒性。如图5所示,PriorDiffusion相对于Marigold具有更快的收敛速度。在表1中,即使在20,000次迭代时,PriorDiffusion也实现了与Marigold在30,000次迭代时相当或更好的性能指标。这可以归因于作者模型中集成的语言先验,它提供了额外的语义和几何先验作为额外的约束,加快了收敛扩散过程。直观的解释是,模型在从图像中学习物体的几何属性和空间关系方面花费较少的努力,因为这些属性是高维和计算密集的。相反,这些特性已经以压缩和低维的形式嵌入在语言输入中,人类提供的语言充当了有效的先验,使得扩散轨迹可以更快地收敛。

picture.image

picture.image

定性比较。 除了整体定量改进外,作者还主张语言先验可以引导模型关注更好地感知语言描述中的指定区域,这更符合用户的兴趣。NYUv2的视觉表示如图3所示,其中作者的PriorDiffusion相对于Margold在给定的输入图像上实现了更准确的深度预测,特别是对于语言描述中突出显示的实例。例如,在第一行,由于颜色和纹理与背景混合,肥皂分配器在输入图像中几乎难以区分。基于视觉的深度估计器如Margold很难识别它,导致深度预测与背景相匹配。相比之下,语言描述明确包括“肥皂分配器”这一术语,为模型提供了一个几何和空间先验,表明肥皂分配器存在以及它应该是什么样子。因此,作者的PriorDiffusion可以更准确地感知肥皂分配器的深度。同样,如图4所示,作者可视化了KITTI数据集的结果,其中如停车的汽车或标志等物体在仅从视觉信号中几乎无法区分。如图6所示,通过结合更详细的语言描述,深度预测得到了增强,对于指定的区域或物体。

picture.image

模板 Prompt 比较。 在用户提供的描述不可用的情况下,作者旨在探索作者的方法是否仍能有效地使用空白输入或标准模板 Prompt 。如果用户没有给出与场景相匹配的具体语言描述,作者可以使用一些预定义的模板 Prompt ,例如"一张图像"或更详细的 Prompt ,如"一个复杂的三维场景,其中不同距离的物体不断变化。"作为PriorDiffusion的输入,以保持其性能。 "这些模板,如表2中所示,在语言输入不实际时有助于保留模型的性能。需要注意的是,作者在训练和推理过程中并未考虑无意义的语言输入。因此,在推理时使用模板 Prompt 作为输入可能与训练域不同,导致语言描述的协变量漂移。这个问题可以通过在训练过程中将模板 Prompt 作为输入来缓解,使PriorDiffusion更好地适应各种无法实现有意义语言描述的场景。

picture.image

5 Discussion

局限性 一个主要的局限性是,它依赖于提供的语言描述的准确性和详细性。来自人类用户的模糊或误导性文本输入可能导致深度预测不 optimal,并可能损害模型的性能。此外,扩散模型的训练和推理的计算成本高于其他 CNN 或 Transformer 方法,这可能影响在实时或资源受限的环境中部署这种方法的可行性。

最后,作者的方法需要用户输入语言,这在某些情况下可能不可行。在用户提供的描述不可用的情况下,作者的方法仍可以执行标准模板 Prompt 。另一种潜在的解决方案是使用视觉语言模型 [11]、图像描述符 [31] 或像 RSA [97] 这样的方法,根据视觉模型的输出 [39, 115] 实时生成语言描述。尽管作者在本文中没有探索这种方法,但它为未来的研究提供了一个有前景的方向。

结论

作者提出了一种名为PriorDiffusion的新方法,该方法将语言先验与扩散模型相结合,以增强单目深度估计。通过利用与语言相关的文本到图像模型学习到的几何先验,PriorDiffusion克服了单目深度估计中固有的歧义和视觉干扰,在各种零样本基准测试中实现了最先进的表现,同时保持了较快的收敛速度。作者还强调了在基于视觉的AI系统中弥合视觉感知与语言理解之间的差距的潜力。

参考文献

[0]. PriorDiffusion: Leverage Language Prior in Diffusion Models.

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论