突破极限 | 视频深度估计VDA支持「任意长度」,精度提升10个点,速度提升6.6倍+!

打造一个有温度、有趣味、专业的全栈式AI&AIGC交流社区,

用心写好每一篇文章!



2024年,单目深度估计发生了翻天覆地的变化,尤其DepthAnything V1和V2模型的出现,同时兼容精度与效率!然而它们主要是针对为静态图像设计的,在视频中会出现闪烁和运动模糊等问题。这种限制限制了它们在机器人、增强现实和高级视频编辑等场景中的广泛应用。最近的工作主要集中在前馈模型上,主要分为两种方法。第一种方法涉及设计一个即插即用模块,从而增强单目深度模型预测的时间一致性。第二种方法将预训练的视频扩散模型重新调整为视频到深度模型。为了解决上面的问题,作者提出Video Depth Anything,它在不牺牲效率的情况下,在超长视频(超过几分钟)中实现高质量、一致的深度估计。该模型可以应用于任意长度的视频中,而不会其影响质量、一致性或泛化能力。作者提供不同规模的模型来支持一系列场景,最小的模型能够按照30 FPS的速率实时运行。



项目主页-https://videodepthanything.github.io/

代码链接-https://github.com/DepthAnything/Video-Depth-Anything

Demo链接-https://huggingface.co/spaces/depth-anything/Video-Depth-Anything

论文链接-https://arxiv.org/pdf/2501.12375





01-VDA背景简介

    近期,单目深度估计取得了重大进展,例如,Depth Anything V2在生成各种场景中具有丰富细节的深度预测方面表现出很强的泛化能力,同时具有较高的计算效率。然而,这些模型有一个主要的局限性:它们主要是针对为静态图像设计的,在视频中会出现闪烁和运动模糊等问题。这种限制限制了它们在机器人、增强现实和高级视频编辑等场景中的广泛应用,这些领域需要时间上一致的深度。

    早期的工作通常依赖于测试时间优化来调整具有复杂几何约束的预训练单眼深度模型。鉴于这些方法在推理时的开销很大,最近的工作主要集中在前馈模型上,主要分为两种方法。第一种方法涉及设计一个即插即用模块,从而增强单目深度模型预测的时间一致性。这种模块的训练高度依赖于光流或相机姿态的一致性约束,使模块容易受到相应误差的影响。第二种方法将预训练的视频扩散模型重新调整为视频到深度模型。这些方法擅长生成细粒度的细节,但计算效率低,无法利用现有的深度基础模型,并且只能处理长度有限的视频。
    作者抛出一个问题:是否有可能利用一个模型完美地继承现有基础模型的能力,同时实现任意长视频的时间稳定性?作者通过开发基于Depth Anything V2的Video Depth Anywhere,在不牺牲其泛化能力、细节丰富性或计算效率的情况下,证明了答案是肯定的。在不引入任何几何先验或视频生成先验的情况下实现了这一目标。

02-VDA算法简介

    为了解决上面的问题,作者提出Video Depth Anything,它在不牺牲效率的情况下,在超长视频(超过几分钟)中实现高质量、一致的深度估计。
    该模型基于Depth Anything V2,并将其头部替换为更高效的时空头部。作者通过约束时间深度梯度来设计一个简单而有效的时间一致性损失,从而不需要额外几何先验信息。该模型在视频深度和未标记图像的联合数据集上进行训练,类似于depth Anything V2。

    此外,作者还开发了一种新的基于关键帧的长视频推理策略。大量的实验结果表明,该模型可以应用于任意长度的视频中,而不会其影响质量、一致性或泛化能力。多个视频基准的综合评估结果表明:该方法在零样本视频深度估计方面成为新的SOTA。作者提供不同规模的模型来支持一系列场景,最小的模型能够按照30 FPS的速率实时运行

03-VDA算法应用场景
03.01-短视频分割

03.02-长视频分割

03.03-根据深度获取3D几何

    上图展示了通过MoGe运行视频的第一帧,可以获得相机的内参以及对齐比例和偏移参数,MoGe是从单眼开放域图像中恢复3D几何的强大模型。

04-VDA算法整体流程

    上图展示了该算法的整体流程和时空头的实现细节。左图展示了该模型由Depth Anything V2的骨干编码器和新提出的时空头组成。
    作者使用地面真实深度标签在视频数据上对该模型进行联合监督训练,并使用教师模型生成的伪标签在未标记的图像上联合训练模型。在整个训练过程中,只学习头部。

    右图展示了作者提出的时空头的实现细节,它在DPT头中插入了几个时间层,同时保留了DPT头的原始结构。

05-VDA算法实现细节
05.01-长视频推理策略详解
    上图展示了长视频的推理策略。N表示该模型消耗的视频剪辑长度。每个推理视频片段由N?To?Tk个未来帧、To个重叠/相邻帧和Tk个关键帧构建。通过向后取每?k帧来选择关键帧。紧接着,新的深度预测将基于Tk重叠帧与之前的帧按照比例进行偏移对齐。其中N=32,To=8,Tk=2,?k=12。
05.02-不同推理策略效果

    上图展示了不同推理策略的在相同的输入视频上的定性比较结果。作者将重叠对齐(OA)与其提出的重叠插值和关键帧参考(OI+KR)在7320帧的自捕获视频上进行了比较与分析。通过直观观察,我们可以发现:OI+KR的效果明显更好一些。

05.03-模型耗时细节

    上图展示了多个SOTA的单目视频深度估计算法的推理延迟比较结果。所有的模型的分辨率为518×518,均在单个A100 GPU上测量每帧的平均运行时间。通过观察与分析,我们可以发现:VDA-S模型按照FP32精度进行推理也只需要9.1ms,比DAv2-L快了6.6倍左右。


06-VDA算法性能评估

06.01-主观效果性能评估

    上图展示了该算法与多个SOTA方法在图像上的深度估计的定性比较结果。Depth Crafter和Depth Any Video在油画方面表现不佳。DepthCrafter也在努力处理玻璃和水等透明物体。与这些方法相比,该模型在复杂场景中显示出更优的深度估计结果。此外,该模型显示了静态图像的深度估计结果,与depth-Anything-V2的结果相当,表明作者已经成功地将depth-Anythhing-V2转换为视频深度模型,而不会影响其空间精度。

    上面的视频展示了该算法与DepthCrafter在相同的输入视频上的视频深度估计效果。通过仔细观察与分析,我们可以发现:VDA输出的深度信息更精准,尤其是在很多物体的边缘位置处。

06.02-客观效果性能评估

    上面的表格展示了该方法与多个SOTA的视频深度估计方法在多个不同的视频评估基准的上面的比较结果。通过观察与分析,我们可以发现:VDL-A在多项评估指标上面获得最佳的得分,而VDA-S的效果次之,大幅优于DAv2-L。

07-VDA算法环境搭建与运行
07.01-搭建运行环境
# 步骤-利用git克隆代码git clone https://github.com/DepthAnything/Video-Depth-Anything
# 步骤2-进入该路径cd Video-Depth-Anything
# 步骤3-创建并进入虚拟环境conda create -n vda python3.8conda activate vda
# 步骤4-安装三方依赖pip install -r requirements.txt

07.02-运行样例Demo

# 步骤1-下载模型权重bash get_weights.sh
# 步骤2-将其存放在checkpoints目录
# 步骤3-运行样例python3 run.py --input_video ./assets/example_videos/davis_rollercoaster.mp4 --output_dir ./outputs --encoder vitl

08-VDA算法效果展示

图8.1-VDA算法视频深度估计效果展示1
图8.2-VDA算法视频深度估计效果展示2

图8.3-VDA算法视频深度估计效果展示3

图8.4-VDA算法视频深度估计效果展示4

图8.5-VDA算法视频深度估计效果展示5



关注我,AI热点早知道,AI算法早精通,AI产品早上线!




禁止私自转载,需要转载请先征求我的同意!

欢迎你的加入,让我们一起交流、讨论与成长!

若二维码失效:关注公众号--》交流分享--》联系我们