当前位置: 首页 > news >正文

FlashDepth | 混合模型+Mamba革新,24 FPS实时2K视频深度估计,超越Depth Anything v2

本文主要解决了什么问题

  1. 1. 高分辨率深度估计:开发了一种能够在2K分辨率()下进行实时深度估计的方法,适用于需要高分辨率的应用场景。

  2. 2. 实时流处理:支持实时流视频输入,帧率可达24 FPS,满足机器人技术、增强现实和视频编辑等应用的在线决策需求。

  3. 3. 帧间一致性和准确性:解决了现有方法在帧间一致性与准确性之间的权衡问题,确保生成的深度图既精确又连贯。


本文的核心创新是什么

  1. 1. FlashDepth模型设计

    • • 基于预训练的单图像深度模型(Depth Anything v2, DAv2),通过添加循环神经网络(Mamba模块)实现时间一致性。

    • • 提出了一种轻量级的时间对齐机制,能够实时将中间特征对齐到同一尺度,避免直接处理最终深度图带来的计算负担。

  2. 2. 混合模型架构

    • • 结合高分辨率小模型(FlashDepth-S)和低分辨率大模型(FlashDepth-L),通过交叉注意力模块融合两者特征,在保持高分辨率边界清晰度的同时,利用大模型的精确特征提升整体性能。

    • • 混合模型在A100 GPU上以24 FPS处理2K图像,同时达到与FlashDepth-L相当的精度。

  3. 3. 两阶段训练策略

    • • 第一阶段使用大量低分辨率数据训练FlashDepth-L和FlashDepth-S,使其在视频序列中保持一致性。

    • • 第二阶段使用少量高分辨率数据微调混合模型,确保其在高分辨率下的表现能力。


结果相较于以前的方法有哪些提升

  1. 1. 边界清晰度

    • • FlashDepth在多个数据集上的边界F1分数显著优于Baseline方法,尤其在捕捉细小结构(如杆和叶子)方面表现出色。

    • • 在高分辨率下运行时,边界锐度明显优于其他方法。

  2. 2. 运行效率

    • • 实现了在2K分辨率下的实时处理(24 FPS),而现有方法要么无法扩展到高分辨率,要么速度较慢。

    • • 相比DepthCrafter和Video Depth Anything,FlashDepth在更高分辨率下不会耗尽内存。

  3. 3. 准确性和泛化能力

    • • 在ETH3D、Sintel、Waymo等多个数据集上,FlashDepth的相对误差和绝对精度指标具有竞争力,甚至优于一些基于扩散模型的方法。

    • • 通过时间对齐机制,FlashDepth能够在无需昂贵模型的情况下将Stream帧对齐到同一尺度。


局限性总结

  1. 1. 残留闪烁问题:尽管FlashDepth在帧间一致性上有显著改进,但仍存在一定的闪烁现象,尤其是在动态场景或快速运动情况下。

  2. 2. 依赖高质量数据:虽然FlashDepth通过混合模型减少了对高分辨率数据的依赖,但其性能仍受限于训练数据的质量和多样性。

  3. 3. 复杂性增加:相比单一模型,混合模型的设计和训练过程更加复杂,可能对实际部署带来一定挑战。


1. 引言

视频深度估计是机器人 [10, 34]、增强现实 [13, 59] 和视频编辑 [16, 36] 等应用的基础。机器人需要实时传感器数据以做出在线决策,增强现实设备必须提供持续、稳定的深度流,而视频编辑(如目标插入)则需要高分辨率和精确的深度图。

因此,作者确定了支持广泛应用的视频深度估计模型的三个关键特性:

  1. 1. 视频序列中的连续性和准确性

  2. 2. 保留高分辨率和清晰特征的能力

  3. 3. 实时流传输

现有方法无法满足所有三个要求。最一致且精确的视频深度模型依赖于后优化[36, 58]或昂贵的视频扩散模型[24, 29, 47]。它们速度慢,并且扩展到更高分辨率时可能计算成本过高。

支持实时和 Stream 输入的方法不准确,因为它们依赖于网络容量有限的小型模型[28, 31, 52, 67],或者不一致,因为它们无法在帧之间共享上下文信息[3, 41, 62]。由于计算 Bottleneck ,这些方法在2K分辨率下至少比实时慢3.5倍[3, 62]。

在本文中,作者提出了FlashDepth模型,该模型满足所有三个要求。给定2K分辨率的流视频输入,它在一个A100 GPU上以24 FPS处理所有像素。它在多个未见过的数据集和自然场景视频中生成具有高精度和清晰边界的深度图,如图1和图2所示。

作者通过在先进的单图像深度模型Depth Anything v2 (DAv2) [62]的基础上进行构建,而非微调视频扩散模型[24, 47]来实现这一点。后一种方法能够免费实现一致性,而DAv2在大量合成和真实数据上经过精心训练,并在多个阶段使用多个损失函数[42, 61, 62]。其逐帧深度精度显著更高,同时保持轻量级架构,这对于实时性能至关重要。

作者通过两项关键技术贡献增强了DAv2。首先,作者添加了一个循环神经网络,该网络实时将单个帧的中间深度特征对齐到同一尺度。精确的相对深度图仅与真实值相差一个尺度和平移因子,因此确定每个深度图的正确尺度因子可以将其对齐到同一尺度。作者假设一个轻量级的循环网络足以完成这项任务,但作者选择对计算上更易于处理的中间特征进行对齐,而不是最终的深度图。作者通过实验发现,这种简单的方法可以泛化到长序列、移动物体和大相机姿态变化。

其次,作者设计了一个平衡质量和效率的混合模型。DAv2的运行时间与分辨率成正比;它处理2K帧的速度仅为缓慢的6 FPS。作者的混合模型包含一个轻量级组件,该组件处理完整的2K分辨率以保留清晰的边界,但融合来自一个以较低分辨率运行的计算密集型组件的更精确特征。这种方法的动机源于以下观察:深度图的原始精度(即估计像素之间的正确深度关系)对分辨率依赖性较小,因为前景和背景之间的边界平均仅占不到1%的像素,但要获得清晰的边界需要高分辨率处理。

作者通过广泛的实验验证了FlashDepth和设计选择。作者将发布所有代码和模型权重。

简而言之,作者得出以下发现和贡献:

  1.  作者提出了一种实时方法,用于对2K分辨率的流视频进行深度估计,支持需要高分辨率和真实感的应用。

  2.  作者将FlashDepth与当前最优方法进行比较,发现它在多个数据集上实现了具有竞争力的准确率,即使与一次性处理大批量图像的方法(而非 Stream 处理)相比也是如此。

  3. 作者基于开源预训练模型,且所需额外数据量相对较少,这使得FlashDepth易于训练,并规避了高质量视频深度数据的短缺问题。

2. 相关工作

单图像深度估计。单图像深度模型的最新进展[3, 12, 18, 23, 27, 41, 42, 61, 62, 65, 66]得益于大量数据,包括真实数据[1, 30, 46, 51]和合成数据[6, 43, 57],以及可扩展的预训练架构,如视觉Transformer(ViTs)[11, 40]和扩散模型[20, 44]。然而,当逐帧应用于视频序列时,单图像模型会产生闪烁、不一致的深度。即使对于度量深度预测模型来说,这也是由于仅凭单图像存在固有的模糊性所致。

基于优化的视频深度估计。另一种常见的方法是联合优化多张图像的深度。这类方法包括经典的和可学习的密集视觉SLAM方法[49, 54, 63],以及优化单图像模型输出的全局尺度方法[36, 58, 69]。BTimer[32]在单次前向传递中生成重建结果,但需要整个视频作为输入。Prompt Depth Anything[33]将相对深度与Sparse、低分辨率的激光雷达对齐以生成4K深度图,但依赖于外部传感器。

另一项近期工作估计点云(例如DUSt3R [56]),从中可以计算深度图和相机参数。后续研究表明,这些方法可以推广到视频和动态场景[35, 39, 68],但仍然需要全局束调整优化。作者与最先进的点云估计方法进行了比较,发现它们在深度精度和清晰度方面不如专门的深度预测模型。

基于优化的方法能够在序列中生成一致且精确的深度信息,但要么速度较慢,要么只能在低分辨率下达到实时速度(例如,DROID-SLAM [49] 在  分辨率下平均帧率为15 FPS - 在线视频深度估计。据作者所知,实时在线深度估计方法(即每次仅处理一帧图像时运行的方法)相对较少。[52, 67] 尝试使用LSTMs [22] 实现这一目标。[28] 存储全局点云以保持一致性。[31] 预测立体和运动线索。然而,这些方法在不对其架构进行重大修改的情况下无法扩展到高分辨率帧。此外,这些方法仅在小型数据集上进行训练和测试,生成的深度图精度较低且闪烁严重 [58]。

除了架构限制之外,先前方法性能不佳的另一个可能原因是缺乏具有移动物体、多样化相机姿态和真实深度信息的视频数据。在有限的选择中,自动驾驶数据集[14, 48]包含Sparse深度且相机运动变化较小,而包含移动物体的合成场景场景多样性有限[26, 70]。

尽管作者执行一致性的方法与这类方法相似(即,作者也使用循环网络执行在线对齐),但作者使用现代架构和训练方法重新审视了这个问题设置。作者的设计规避了数据短缺的问题,并优于许多最先进的 Baseline 模型。

基于扩散模型的视频深度估计。截至本文撰写时,大多数最先进的视频深度模型[24, 47, 60]通过微调视频扩散模型[2, 4, 8, 21, 64]来提升性能,这得益于扩散模型强大的一致性和运动先验,从而弥补了缺乏大量高质量数据的不足。这些方法在基于优化和在线方法之间取得了平衡,因为它们通常不将完整视频作为输入,但仍需处理帧批次,然后通过拼接或优化来对齐每个批次。尽管这些方法展示了令人印象深刻的泛化能力和准确性,但由于扩散模型在推理时的计算需求,将它们扩展到实时、高分辨率的深度估计仍然是一个挑战。

并行工作。Video Depth Anything [7] 和 CUT3R [55] 是两项相关的并行工作。与FlashDepth类似,Video Depth Anything 在视频数据上使用时间模块对 Depth Anything v2 [62] 进行微调。然而,他们的方法需要一次性处理32张图像,因此不支持 Stream 处理,并且在分辨率上扩展时计算成本过高。CUT3R 可以处理 Stream 输入,但其点云生成的深度图质量不如专用深度估计模型生成的深度图。作者在第4节将FlashDepth与这两项工作进行比较。

3. 方法

FlashDepth基于预训练的单图像深度模型来估计每个单独帧的准确深度,并以自回归的方式强制执行流视频的一致性。在第3.1节,作者描述了Depth Anything v2 [62],作者的基础模型。在第3.2节,作者解释了FlashDepth来强制执行时间一致性。在第3.3节,作者解释了作者的策略来训练一个混合模型以处理2K分辨率视频,同时保持吞吐量和准确性。作者在图3中提供了作者架构的示意图。

3.1. 单图深度基础模型

作者使用Depth Anything v2 (DAv2) [62] 作为作者的单图像基础模型,该模型由预训练的DINOv2 ViT [11, 40]编码器和DPT解码器[41, 42]组成。图像被 Token 化并通过ViT进行特征提取。从ViT中收集了四个中间特征层,具体为24层模型中第5层、第12层、第18层和第24层的输出,并将这些特征传递给DPT解码器。动机是浅层包含更多的空间细节,而深层包含更多的语义信息。DPT解码器使用残差卷积单元[19]融合这些特征以生成深度图。DAv2可以生成高度详细和准确的深度图,但在连续帧序列上运行会导致闪烁,因为没有公共尺度。

3.2. 强制时间一致性

为了在帧之间保持一致的深度,FlashDepth基于三个考虑。首先,模型应处理 Stream 输入,这意味着它仅能访问当前帧和过去的信息。一种实现方式是使用循环网络(例如RNN)。循环网络维护一个隐状态,该状态编码来自过去帧的信息,并在新帧到达时更新该隐状态。具体而言,作者使用Mamba [9, 15],因为它已被证明能够在长序列中选择性保留相关信息。作者的Mamba模块处理来自DPT解码器的特征,并在存储上下文的同时对齐特征。

其次,作者希望尺度对齐不会带来可忽略的开销。作者假设在跨帧对齐深度时,密集的像素级特征是不必要的,因此在用Mamba处理之前,作者对DPT解码器的特征输出进行下采样,以减少计算负载。对齐操作可以表示为

第三,作者希望初始化作者的时序模块,使其保持基础单图像深度模型的表现性能。为此,作者将Mamba模型置于DPT解码器之后,仅在最终卷积头之前,以保持预训练特征的完整性。作者将Mamba模型的输出层置零,以确保FlashDepth的第一轮迭代仍然生成有效的深度图。这既保留了模型在初始化时的原始能力,又允许训练过程逐步引导其朝向作者的相容性目标。

综上所述,作者的流程通过ViT编码器和DPT解码器分别处理每个输入图像,以生成特征图。随后,Mamba模块根据当前帧的特征调整每个特征图并更新其隐藏状态。最后,调整后的特征通过卷积头生成一致的深度预测。该流程如图3所示(迄今为止,作者仅描述了通过ViT-S的高分辨率路径)。

3.3. 高分辨率下的混合模型效率

尽管作者的时序模块增加了可忽略的延迟,原始模型(DAv2-Large)在2K分辨率下仅能达到6 FPS。同时扩大模型规模和分辨率并实现实时性能是困难的。为此,作者考察了现有DAv2系列[61, 62]的运行时与准确率权衡,该系列包括三个从DINOv2的ViT-Small、ViT-Base和ViT-Large Backbone 网络微调得到的预训练权重——DAv2-Small(S)、DAv2-Base(B)和DAv2-Large(L)。DAv2-L在所有基准测试中实现了最高准确率,但在高分辨率下速度较慢。相反,DAv2-S在2K分辨率下实现了实时吞吐量,但准确率大幅下降,因此直接减小模型规模并非有效解决方案。

为实现2K分辨率下实时深度估计且不失精度,作者提出一种混合模型,该模型基于以下考虑对帧进行双流处理。首先,为满足实时吞吐量要求,处理2K帧的主流必须轻量化。作者称此流为FlashDepth-S,该流基于DAv2-S进行微调并添加了作者的时序模块。

其次,为了保持准确性,作者引入了更强大的模型DAv2-L的特征。作者训练了一个第二流FlashDepth-L,该模型微调DAv2-L,并以较低分辨率(518px)处理帧,以生成可用于监督FlashDepth-S中间特征的准确特征。作者使用交叉注意力[53]来融合中间特征,而无需修改原始架构。

作者观察到,虽然分辨率对于保持清晰的边界至关重要,但它对数值精度的影响极小,因为边界平均仅占不到1%的像素。例如,作者在2K与518px(将短边调整为518px同时保持宽高比)分辨率下,在多个数据集上测试了DAv2的逐帧精度,发现两者之间的精度差异可以忽略不计。然而,在更低分辨率下,作者开始观察到精度的下降。

通过同时运行两个模型,即使它们之间有通信,作者也能在A100 GPU上以24 FPS(墙时间)处理2K图像。经验上,作者展示了作者的混合模型的精度与FlashDepth-L相当(表2),并且明显高于FlashDepth-S(表4)。

3.4. 两阶段训练

端到端训练FlashDepth需要大量具有高分辨率密集深度图的视频,但大多数现有数据集分辨率低于720p。因此,作者分两个阶段训练模型。首先,作者使用低分辨率深度数据训练FlashDepth-L和FlashDepth-S(第3.2节),使其在视频序列中保持一致性。然后,作者使用少量高分辨率数据来监督一个混合模型(第3.3节),该模型以FlashDepth-L和FlashDepth-S初始化。

在第一阶段,作者从DAv2-L和DAv2-S初始化FlashDepth-L和FlashDepth-S的ViT编码器和DPT解码器,并从头开始训练时序模块。作者使用以下数据集:MVSSynth [25]、Spring [37]、TartanAir [57]、PointOdyssey [70]和Dynamic Replica [26]。在过滤掉无效场景后,作者获得了大约五十万张图像深度对。作者通过随机裁剪将所有帧处理为固定分辨率518×518。由于这些数据集是合成数据且具有度量特性,作者使用简单的L1损失来监督模型,而不是许多先前工作使用的尺度平移不变损失[42, 62]。作者没有使用任何额外的监督,例如光流[29, 35, 68]或时序损失[28, 52]。

由于内存限制,作者使用包含少量帧的输入序列进行反向传播,但通过设置较长的帧间步长来扩充数据集。这使得FlashDepth在测试包含高达1000帧的视频时能够保持一致性,甚至超越了在将较短序列拼接成长序列方面设计了显式优化算法的当前最先进视频深度模型[24]。

在第二阶段,作者使用包含2K深度标注的两个高分辨率深度数据集MVS-Synth [25]和Spring [37]来训练作者的混合模型,这两个数据集总共包含约16000对图像-深度数据。作者冻结FlashDepth-L的权重,仅微调FlashDepth-S。FlashDepth-S以原始2K分辨率处理图像,而FlashDepth-L处理输入图像的下采样版本(短边518)。作者从零初始化在DPT解码器之间传递特征的交叉注意力模块。同样,作者使用L1损失来监督该模型。

如图3所示,FlashDepth L仅从DPT获取中间特征,而非从Mamba获取,但在第一阶段对FlashDepth-L进行训练对于将FlashDepth-L和FlashDepth-S的特征对齐到大致相同的尺度至关重要。

3.5. 实现细节

4. 实验

Baseline 方法。作者将FlashDepth与DepthCrafter [24]、Video Depth Anything [7]、CUT3R [55]和Depth Anything v2 [62]进行比较。DepthCrafter [24]基于视频扩散模型进行微调,与ChronoDepth [47]和NVDS [58]等先前的视频深度模型相比,展现出更强的泛化能力和更高的精度。Video Depth Anything (VidDepthAny) [7]是一项并行工作,通过添加时间模块对Depth Anything v2 (DAv2) [62]进行微调。在所有实验中,作者使用其最大的模型。CUT3R [55]也是一项并行工作,通过设计基于transformer的循环模型从流视频估计点云图。作者包含DAv2 [62],因为它既是VidDepthAny的基础模型,也是FlashDepth的基础模型,并作为理解FlashDepth效果的一个参考点。在所有实验中,作者使用其DAv2-Large模型。

数据集。作者在五个不同的数据集上进行了测试。ETH3D [46] 包含13个真实场景,包括户外和室内场景。Sintel [5] 是一部3D动画电影,包含许多运动物体。Waymo [48] 是一个自动驾驶数据集,具有连续的相机运动。作者从其验证集中随机采样了30个场景。Unreal4K [50] 和 UrbanSyn [17] 都是合成但照片级真实的数据集,具有不同的相机视角和场景。Unreal4k共有9个场景,而UrbanSyn总共包含超过7,000帧。作者取UrbanSyn的前1,000帧作为测试数据。

尽管ETH3D、Unreal4k和UrbanSyn中的图像不是作为连续视频序列组织的,作者将这些图像拼接成视频,以模拟具有显著相机运动的视频帧。作者在所有五个数据集上计算了相对误差和绝对精度指标。作者仅使用Unreal4k和UrbanSyn报告边界清晰度,因为只有这两个数据集包含密集和高分辨率的 GT 深度图。

4.1. 深度清晰度、分辨率和运行时间

作者首先评估每种方法的边界锐度和运行时间,这是作者关注的重点,对于需要高分辨率的在线任务和应用至关重要。作者使用文献[3]中提出的F1分数。边界由相邻像素之间的值差定义,作者在多个阈值下计算这些边界。图3以固定阈值为例展示了边界的可视化结果。FlashDepth能够捕捉细小结构如杆和叶子,并且与现有方法相比,整体上产生的边界更加锐利。

除了四个 Baseline 模型外,作者还包含了作者完整的混合模型(FlashDepth (Full), 大模型(FlashDepth-L)以及在高分辨率下运行的大模型(FlashDepth-L (high))的结果。表1报告了定量结果。边界锐度与分辨率相关,因为低分辨率图像会模糊或平均边界。因此,FlashDepth (Full) 在更高分辨率下运行,显著优于 Baseline 模型并不令人意外。然而,FlashDepth-L (high) 生成的边界也比 FlashDepth (Full) 更锐利,这表明即使分辨率似乎是最重要的因素,模型容量与边界锐度之间也存在权衡。

现有的视频深度模型难以扩展到更高分辨率。DepthCrafter和VidDepthAny分别处理110帧和32帧,在更高分辨率下会耗尽内存。例如,在924×518分辨率下运行VidDepthAny需要占用40GB的显存。CUT3R仅在分辨率低于518px(长边518)的数据集上训练,在更高分辨率下性能会下降。

作者还报告了在指定分辨率下的墙时钟帧率FPS。对于包含1000张图像的Unreal4k场景,作者在单次预热迭代后开始计时,并在所有帧处理完成后记录时间。从作者的实验结果来看,只有作者的混合方法能够在保持24 FPS实时性能的同时进行高分辨率操作。

4.2. 深度误差与精度

作者在表2中报告了所有误差和准确率指标。所有方法均在表1中报告的分辨率下运行。虽然作者在图3中可视化了逐帧深度图,但作者鼓励读者观看作者的补充视频,以可视化每种方法在视频序列中的连贯性。

VidDepthAny在五个数据集上实现了整体最高精度,作者的基础模型位居第二。VidDepthAnything一次处理32张图像,而FlashDepth一次只能处理一帧图像,但仍然表现出具有竞争力的性能。

DepthCrafter基于视频扩散模型进行微调,可一次性处理110张图像,但FlashDepth在除一个数据集外所有数据集上都实现了更高的精度。由于作者仅使用全局尺度和偏移对整个序列与真实数据进行对齐,这表明作者的时序模块能够在无需昂贵模型的情况下将 Stream 帧对齐到同一尺度。

FlashDepth在性能上优于CUT3R,即使CUT3R是在33个数据集上训练的。这表明,在专门的预训练深度估计模型的基础上,使用少量数据构建模型可以显著简化训练过程,同时实现高性能,相比于从头开始训练而言。

VidDepthAny和FlashDepth在所有数据集上都表现优于DAv2,在某些情况下准确率提高了高达20%,这表明时间对齐(无论具体实现方式如何)是泛化单图像模型到视频领域的一种有前景的方向,而不是依赖昂贵的视频扩散模型。

通过对比FlashDepth的两个变体,作者验证了作者的交叉注意力模块成功地传递了基础模型预测的鲁棒特征。FlashDepth(Full)在方法中排名第三,并且通常仅比其对应版本FlashDepth-L落后1-2%。请注意,如第3.5节所述,当图像短边小于518像素时,FlashDepth(Full)默认运行FlashDepth-L,因此Sintel的指标对于这两种方法来说是相同的。

相比之下,作者在第4.3节中展示了在所有数据集上,FlashDepth-S的表现明显更差,这验证了直接降低模型容量并不是一个理想的权衡。

4.3. 消融研究

超分辨率与混合模型。作者的混合模型在保持实时性能的同时,兼顾了准确性和边界锐度。但作者能否直接使用专用的深度超分辨率网络呢?作者考察了一篇关于深度超分辨率的最新综述[72],发现即使是最新方法,无论是使用扩散[38]还是可学习滤波器[71],都存在对单一数据集过拟合的问题,其报告的数值显示出不令人满意的泛化能力。尽管作者没有找到在多个数据集上进行消融实验的研究,但作者假设这些模型无法泛化,因为泛化需要使用多样化、高质量的数据进行训练,有时还需要多个阶段[3, 62]。

作者在表3中报告了定量结果。FlashDepth-L是作者的 Baseline ,作者将518px输出进行双线性上采样至真实分辨率。 "UNet'是作者早期实验之一,作者在518px分辨率下使用作者的五个训练数据集预训练FlashDepth-L,然后冻结它并添加一个从头开始训练的UNet [45]。UNet对高分辨率图像进行编码,然后使用 Shortcut 对低分辨率深度图特征进行上采样(在作者的Mamba模块之后和最终卷积头之前,因此 Head 需要重新训练)。作者发现这种方法降低了准确性和边界锐度,可能是因为没有足够的数据重新训练 Head 以匹配预训练头的性能。相比之下,作者的混合方法确保在第一次训练迭代期间不会修改模型的原始能力,因此它可以在少量数据的情况下进行微调。

 

作者还与现成的超分辨率网络进行了比较。作者应用了DAGF [71],这是一种相对快速的方法(10 FPS),它使用了一种注意力引导的图像滤波技术,将其应用于FlashDepth-L的输出深度(记作 DAGF')。这导致了准确性的显著下降,大约降低了20%。与论文的发现一致,该网络无法泛化到分布外数据。它只能在FlashDepth-L之后运行,导致速度为7.7 FPS。

从表3可以看出,FlashDepth(Full)不仅从高分辨率图像中保留了边界锐度,而且由于从更强大的FlashDepth-L中迁移特征,它还保持了准确性和强大的泛化能力。相比之下,基于学习和基于滤波的方法都不如作者的性能。

根据作者的观察,超分辨率方法表现出较差的泛化性能,并且可能需要大量高分辨率的训练数据来改善结果,而这些数据并不容易获取。FlashDepth直接利用预训练的单图像模型来避免这个问题。

FlashDepth(完整版)与FlashDepth-S的比较。在3.3节中,作者讨论了作者的混合模型的动机,即减小模型规模会直接导致显著的精度下降,正如原始DAv2 [62]论文所示。在此,作者进行消融实验以验证这一观察结果。在表4中,作者比较了FlashDepth的三个变体。作者发现,将模型规模从FlashDepth-L(约300M参数)减小到FlashDepth-S(约21M参数)会导致所有数据集上精度下降3-10%。另一方面,作者的混合模型以与FlashDepth-S相同的速度运行,但代价是更小的精度下降(1-3%)。这验证了作者的设计,并证实作者的交叉注意力模块从FlashDepth-L转移了更鲁棒的特征。

5. 结论

在本工作中,作者开发了一种方法,用于对  Stream 视频进行深度估计,帧率为24 FPS。与当前最优方法相比,FlashDepth在处理实时 Stream 输入时,边界清晰度更优,同时在精度方面也具有很强的竞争力。

FlashDepth的主要局限性是残留闪烁。虽然要匹配在线方法与优化方法的性能可能比较困难,但对于某些应用,如SLAM,同时优化已处理的帧并在 Stream 传输新帧是可能的。作者将此留待未来工作。

参考

[1]. FlashDepth: Real-time Streaming Video Depth Estimation at 2K Resolution

http://www.lryc.cn/news/581922.html

相关文章:

  • (倍增)洛谷 P1613 跑路/P4155 国旗计划
  • ZooKeeper 实现分布式锁
  • 【Note】《Kafka: The Definitive Guide》 第5章:深入 Kafka 内部结构,理解分布式日志系统的核心奥秘
  • 【kafka-python使用学习笔记2】Python操作Kafka之环境准备(2)亲测有效有图有真相
  • 专为磁盘存储设计的数据结构——B树
  • 快速上手百宝箱搭建知识闯关游戏助手
  • 第二届虚拟现实、图像和信号处理国际学术会议(VRISP 2025)
  • Java面试宝典:异常
  • Python实现MCP Server的完整Demo
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十四天
  • 《Effective Python》第十二章 数据结构与算法——当精度至关重要时使用 decimal
  • Node.js特训专栏-实战进阶:14.JWT令牌认证原理与实现
  • 《30天打牢数模基础-第一版》(已完结) 需要自取
  • macOS运行python程序遇libiomp5.dylib库冲突错误解决方案
  • 基于Rust红岩题材游戏、汽车控制系统、机器人运动学游戏实例
  • 在内网环境中,Java服务调用PHP接口时报错的排查方法
  • Mac 电脑无法读取硬盘的解决方案
  • AI智能体长期记忆系统架构设计与落地实践:从理论到生产部署
  • 文件操作(java)
  • window显示驱动开发—X 通道解释
  • [shad-PS4] GUI启动游戏 | Qt用户界面 | 三端兼容
  • 鸿蒙生态加持:国产ARM+FPGA工业开发平台——GM-3568JHF
  • SQL Server不同场景批量插入数据的方式详解
  • 深入解析迭代器模式:优雅地遍历聚合对象元素
  • 基于拉普拉斯变换与分离变量法的热传导方程求解
  • 【机器学习笔记 Ⅱ】9 模型评估
  • 标准128位AES/ECB/PKCS5Padding进行加解密
  • Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验
  • IDEA 中使用 <jsp:useBean>动作指令时,class属性引用无效
  • 构建分布式高防架构实现业务零中断