Video Depth Anything引领超长视频深度估计最新SOTA!字节跳动开源

论文链接:https://arxiv.org/pdf/2501.12375
git 链接:https://videodepthanything.github.io/

亮点直击

  • 开发了一种新方法,将“Depth Anything”转换为“视频Depth Anything”,用于任意长度视频的深度估计。

  • 提出了一种简单而有效的损失函数,该函数在不引入几何或生成先验的情况下,强制执行时间一致性约束。

  • 该模型不仅在视频深度估计中(空间和时间上)获得了新的SOTA(最先进技术),而且在计算效率上也是最高的。

总结速览

解决的问题

Depth Anything在单目深度估计中表现出色,但在视频应用中存在时间不一致性的问题,限制了其实用性。现有方法虽然尝试解决这一问题,但仅适用于短视频,并在质量与计算效率之间存在权衡。

提出的方案

提出了Video Depth Anything模型,旨在解决超长视频中的深度估计问题。该方案通过替换Depth Anything V2的头部为高效的时空头,并设计了一种简单有效的时间一致性损失函数,来约束时间深度梯度,无需额外几何先验。

应用的技术

  • 使用高效的时空头替换原有模型head。

  • 设计时间一致性损失函数,约束时间深度梯度。

  • 基于视频深度和未标记图像的联合数据集进行训练。

  • 开发基于关键帧的策略用于长视频推理。

达到的效果

  • 实现了对超长视频的高质量、一致性深度估计,而不牺牲计算效率。

  • 在零样本视频深度估计中设立了新的技术标准。

  • 提供不同规模的模型,支持多种场景,最小模型可实现30 FPS的实时性能。

Video Depth Anything

Video Depth Anything,这是一种前馈视频变换模型,用于高效估计时间一致的视频深度。本文采用仿射不变深度,但在整个视频中共享相同的尺度和偏移。我们方法的流程如下图2所示。本文模型基于Depth Anything V2构建,增加了时间模块和视频数据集训练。提出了一种新的损失函数,以增强时间一致性。最后,我们提出了一种结合重叠帧和关键帧的策略,以高效支持超长视频推理。

架构

由于缺乏足够的视频深度数据,从一个预训练的图像深度估计模型Depth Anything V2开始,并采用图像和视频数据的联合训练策略。

Depth Anything V2 编码器。 Depth Anything V2 是当前最先进的单目深度估计模型,以其高精度和泛化能力为特点。我们使用其训练好的模型作为我们的编码器。为了降低训练成本并保留已学习的特征,训练过程中编码器是冻结的。

与仅接受图像输入的单目深度编码器不同,我们的训练场景要求编码器同时处理视频和图像数据。为了用图像编码器从视频帧中提取特征,我们将视频片段的时间维度折叠到批量维度中。输入数据表示为 ,其中 代表批量大小, 是视频片段中的帧数,对于图像作为输入时 ,、、 分别是帧的通道数、高度和宽度。编码器将 作为输入,生成一系列中间特征图 ,其中 是编码器的补丁大小。尽管图像编码器从单个帧中提取了强大的视觉表示,但它忽略了帧之间的时间信息交互。因此,引入时空头以建模帧之间的时间关系。

时空头。 时空头(STH)基于DPT头构建,唯一的修改是插入时间层以捕捉时间信息。时间层由一个多头自注意力模型(SA)和一个前馈网络(FFN)组成。当将特征 输入到时间层时,时间维度 被隔离,自注意力仅沿时间维度执行,以促进时间特征的交互。为了捕捉不同帧之间的时间位置关系,利用绝对位置嵌入来编码视频序列中的时间位置信息。

时空头从 中均匀采样4个特征图(包括编码器的最终特征,记为 )作为输入,并预测深度图 。如上图2所示,选定的特征 被输入到重组层以生成特征金字塔。然后,特征通过融合层从低分辨率逐渐融合到高分辨率。重组和融合层由DPT提出。最终融合的高分辨率特征图通过输出层生成深度图 。为了减少额外的计算负担,我们在一些具有较低特征分辨率的位置插入时间层。

时间梯度匹配损失

从基于光流的扭曲(OPW)损失开始,随后探索新的损失设计,并最终提出一种不依赖光流的时间梯度匹配损失(TGM),但仍能确保帧间预测的时间一致性。

OPW损失。 为了约束时间一致性,之前的视频模型(如[19, 37, 38])假设通过光流识别的相邻帧中对应位置的深度是一致的,例如,NVDS [38]中提出的基于光流的扭曲(OPW)损失。OPW损失是在根据光流和扭曲获得对应点后计算的。具体来说,对于两个连续的深度预测结果, 和 ,根据从光流派生的扭曲关系将 扭曲到 ,然后使用以下公式计算损失:

其中, 表示视频窗口的长度, 代表 距离。然而,OPW 损失存在一个根本问题:相邻帧中对应点的深度并不是不变的。这个假设仅在相邻帧静止时成立。例如,在驾驶场景中,当汽车向前移动时,相对于汽车,前方静止物体的距离会减少,从而违反了 的假设。为了解决 OPW 的这个固有问题,提出了一种新的损失函数来约束深度的时间一致性。

时间梯度匹配损失(TGM)。 在计算损失时,不假设相邻帧中对应点的深度保持不变。相反,假设相邻预测帧中对应点的深度变化应与在真实数据中观察到的变化一致。我们将这种差异称为稳定误差(SE),其定义为:

在这里, 和 是预测值和真实值的缩放和偏移版本。 和 表示使用光流从后续帧扭曲的深度。 用于表示绝对值。

然而,生成光流会产生额外的开销。为了解决对光流的依赖,进一步推广了上述假设。具体来说,不需要使用从光流获得的对应点。相反,我们直接使用相邻帧中相同坐标处的深度来计算损失。假设是,相邻帧中同一图像位置的深度变化应该与真实值中的变化一致。由于这个过程类似于计算时间维度上的值的梯度,我们称之为时间梯度匹配损失,其定义为:

在实际操作中,仅在真实深度变化的区域计算时间梯度匹配损失(TGM),即 。该阈值有助于避免由于边缘、动态物体和其他因素引起的深度图突然变化,从而在训练过程中引入不稳定性。用于监督视频深度数据的总损失如下:

其中, 是一种用于监督单帧图像的尺度和偏移不变损失,由 MiDaS 提出。 和 是用于平衡时空一致性和单帧空间结构的权重。

超长序列的推理策略

为了处理任意长度的视频,一个简单的方法是将来自不同视频窗口的模型输出进行拼接。然而,这种方法无法确保窗口之间的平滑过渡。一个更复杂的技术是推断具有重叠区域的视频窗口。通过利用重叠区域的预测深度来计算仿射变换,可以将一个窗口的预测与另一个窗口对齐。然而,这种方法可能会通过连续的仿射对齐引入累积误差,导致在延长视频中出现深度漂移。为了解决超长视频中推理窗口大小有限的问题,提出了关键帧参考以继承过去预测的尺度和偏移信息,以及重叠插值以确保局部窗口之间的平滑推理。

关键帧参考。如下图 3 所示,用于推理的后续视频片段由三部分组成: 个未来帧、来自前一个片段的 个重叠帧和 个关键帧。关键帧是从之前的帧中以大小为 的间隔进行子采样的。因此,要处理的视频片段与训练时的长度相同。这种方法以最小的计算负担将早期窗口的内容纳入当前窗口。根据我们的实验结果,这种简单的策略可以显著减少累积的尺度漂移,尤其是在长视频中。

深度片段拼接。在两个连续窗口之间使用 个重叠帧(如上图 3 所示)对于避免深度预测的闪烁至关重要。重叠帧的效果是双重的。首先,通过共享部分帧特征,连续窗口之间的尺度和偏移将更加相似。其次,重叠帧的深度预测通过在两个片段之间插值进行更新。假设前一个片段的第 个重叠帧的深度表示为 ,当前片段的深度表示为 。最终的深度更新为:

其中, 随着 从 1 增加到 线性衰减从 1 到 0。

实验

评估

数据集。 为了对视频深度估计进行定量评估,使用了五个涵盖广泛场景的数据集,包括室内 [7, 22, 24]、室外 [11] 和野外环境 [5]。每个视频最多使用500帧进行评估,这比 [13] 中使用的110帧要多得多。有关110帧的结果,请参见附录中的详细信息。除了视频深度评估,我们还在五个图像基准 [5, 11, 15, 22, 31] 上评估了模型在静态图像 [42] 上的性能。

指标。 使用几何准确性和时间稳定性指标来评估视频深度模型。根据 [13],首先通过在整个视频中应用统一的缩放和偏移来对齐预测的深度图与真实值。在几何准确性方面,我们计算了绝对相对误差(AbsRel)和 指标 [13, 42]。为了评估时间稳定性,使用 [40] 中的时间对齐误差(TAE)指标,测量连续帧之间深度图的重投影误差。

零样本深度估计

我们将我们的模型与四个代表性的视频深度估计模型进行比较:NVDS、ChronoDepth、DepthCrafter 和 DepthAnyVideo,基于已建立的视频深度基准。此外,我们引入了两个强大的基线,1)Depth Anything V2(DAv2),以及2)NVDS + DAv2,即用DAv2替换NVDS中的基础模型。需要注意的是,DepthAnyVideo支持每个视频最多192帧;因此,仅在Sintel数据集上报告该模型的指标,因为其他数据集包含的视频帧数超过了此限制。在静态图像评估中,将我们的模型与DepthCrafter、DepthAnyVideo和 Depth Anything V2的性能进行比较。

视频深度结果。 如下表1所示,VDA模型在所有长视频数据集上实现了最先进的性能,在几何和时间指标上都表现出色。

这突显了强大基础模型的有效性以及我们视频模型的创新设计。值得注意的是,在KITTI 、Scannet 和 Bonn 数据集上,模型在几何准确性指标 上比其他领先方法高出约10%,尽管与DepthCrafter(超过1000万帧)和DepthAnyVideo(600万帧)相比,模型训练使用的视频数据要少得多。对于短视频合成数据集Sintel,其中每个序列包含约50帧,DepthCrafter 的准确性优于我们的模型。这一差异可能归因于我们模型的训练集中缺乏电影数据,而电影数据的焦距与Sintel中的相似。还值得强调的是,紧凑模型VDA-S,与其他模型相比具有显著更低的延迟(如下表3所示),在长视频的几何准确性上优于代表性的基于扩散的方法。

图像深度结果。 如下表2所示,视频深度模型在大多数数据集中实现了与DAv2-L相当的深度指标。这表明我们的模型在保持基础模型的几何准确性的同时,也确保了视频稳定性。

长视频定量结果。 从Bonn 和 Scannet 中各选择了10个场景,从NYUv2 中选择了8个场景,每个场景包括500个视频帧。然后,我们在帧长度为110、192、300、400和500时评估视频深度,其中110和192对应于DepthCrafter 和 DepthAnyVideo 的最大窗口大小。指标的变化如下图4所示。如图所示,我们的模型在所有数据集中所有评估帧长度上显著优于DepthCrafter,并且随着帧数的增加,指标的下降最小。此外,我们的模型在Scannet和 NYUv2 上超过了DepthAnyVideo ,并在Bonn 的110和192帧指标上取得了相当的结果。最值得注意的是,我们的方法支持对任意长视频进行推断,在实际应用中具有显著优势。

定性结果 视频可视化如下图5所示。第二列表示通过沿时间轴在红线位置切割图像获得的图像时间剖面。后续列表示相应的深度剖面。红色方框突出显示了我们的模型的深度剖面与真实值(GT)相比更为相似的实例,表明其具有更优越的几何精度。此外,如蓝色方框所示,我们的模型展示了更好的时间一致性。在这些实例中,DepthCrafter 显示出深度漂移,而DAv2-L 产生了闪烁的深度。

除了长视频外,在下图6中展示了野外短视频的结果。Depth Any Video即使在单个参考窗口内也表现出深度不一致,如蓝色方框所示。尽管DepthCrafter 相比Depth Any Video 在视频帧之间展示了更平滑的深度,但在某些复杂环境中未能准确估计深度。

推理时间。 在A100 GPU上测量了各种模型的推理延迟。如上表3所示,与基于扩散的方法(DepthAnyVideo和DepthCrafter)以及基于变换器的方法(NVDS)相比,我们的大模型实现了最低的推理时间。这种性能归因于我们的前馈变换器结构和轻量级时间模块。值得注意的是,我们的大模型VDA-L的延迟仅比使用相同编码器结构的DAv2-L大约高10%,从而展示了我们时空头的效率。此外,我们的小模型的推理延迟小于10毫秒,表明其在实时应用中的潜力。

消融研究

在本节中,除非另有说明,我们使用窗口大小为16的VDA-S模型进行研究,并且不使用图像蒸馏。未注明数据集名称的指标表示所有数据集的平均值。

时间损失。 时间损失实验在TartanAir和VKITTI数据集上进行。除了我们提出的TGM+SSI损失外,我们还评估了其他三种损失函数的性能。VideoAlign损失是一个简单的设计,通过共享的尺度平移将预测的视频深度与真实值对齐,并计算损失。在VideoAlign的基础上,VideoAlign+SSI损失引入了额外的空间损失来监督单帧结构。OPW+SSI损失结合了[38]中提出的基于光流的扭曲损失与单帧空间损失。SE指的是在方程2中引入的稳定误差损失。如下表4所示,虽然VideoAlign和VideoAlign+SSI在几何指标上表现良好,但它们的视频稳定性指标较差。在具有时间约束的损失函数中,我们提出的TGM+SSI损失在几何和稳定性指标上明显优于OPW+SSI损失,并且达到了与SE+SSI相当的指标。这表明TGM不仅纠正了OPW的错误,还消除了对光流的依赖。

推理策略。 为分析我们的推理策略,考虑了四种不同的推理方案。Baseline:在没有重叠帧的情况下独立对每个窗口进行推理。重叠对齐(OA):基于两个相邻窗口之间的重叠帧的尺度平移不变对齐,将两个窗口拼接在一起。重叠插值(OI):依据DepthCrafter 的方法,在重叠区域进行线性插值后拼接两个窗口。重叠插值+关键帧参考(OI+KR):在OI的基础上,额外引入前一个窗口的关键帧作为当前推理的参考。如下表5所示,OA达到了与OI+KR相当的指标。然而,它在长视频推理过程中导致了累积的尺度漂移。下图7展示了这一问题,我们在一个时长为4分04秒的视频上评估了OA和OI+KR。值得注意的是,OA处理的最后一帧中红框区域突出了深度尺度的累积漂移。相比之下,OI+KR在整个视频过程中更有效地保持了全局尺度一致性。OA在评估数据集上表现较好的一个可能解释是,500帧的评估视频数据集不足以反映现实世界中长时间视频遇到的尺度漂移问题。

窗口大小。 如上表5所示,窗口大小为32的模型在几何精度和时间一致性方面优于窗口大小为16的模型。然而,将窗口大小增加到32以上并没有带来额外的好处。考虑到更大的窗口大小需要更多的训练和推理资源,我们为最终模型选择了窗口大小为32。

训练策略。 除了在合成数据集上进行训练外,还通过结合相同数量的伪标记真实数据集,对蒸馏训练策略进行了消融研究。如下表6所示,在蒸馏训练过程中加入真实的单帧数据集显著提升了单帧深度指标中的AbsRel和。此外,它还改善了视频深度指标。

结论。

Video Depth Anything,用于估计时间一致性的视频深度。该模型基于Depth Anything V2构建,并依赖于三个关键组件。首先,采用时空head,通过对特征图应用时间自注意力层来引入时间交互。其次,使用一种简单的时间梯度匹配损失函数来强制时间一致性。第三,为了实现长视频深度估计,开发了一种新的基于关键帧的策略,用于分段推理,并结合深度拼接方法。广泛的实验表明,模型在三个方面实现了最先进的性能:空间精度、时间一致性和计算效率。因此,它可以为持续数分钟的视频生成高质量的深度预测。

参考文献

[1] Video Depth Anything: Consistent Depth Estimation for Super-Long Videos

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值