← 返回 PaperDaily 视觉与图像

上海AI实验室等开源视频深度估计新模型!从游戏里抓出6M帧合成数据,效果效果优于所有生成式方法

如果有一项技术能从你的手机视频中提取出世界的3D结构,像人眼一样感知景深,你会用它做什么?上海AI实验室联合浙大、悉尼大学,最近放了一个大招:Depth Any Video。这个模型直接在Stable Video Diffusion上「开刀」,并靠着从游戏世界收集来的600万帧高质量深度数据,实现了视频深度估计的时空一致性全面飞跃。效果拉满,看了演示gif保

上海AI实验室等开源视频深度估计新模型!从游戏里抓出6M帧合成数据,效果效果优于所有生成式方法
原论文信息如下:
论文标题:
Depth Any Video with Scalable Synthetic Data
发表日期:
2024年10月
发表单位:
上海人工智能实验室 (SAIL)、浙江大学、悉尼大学
原文链接:
https://arxiv.org/pdf/2410.10815
开源代码链接:
https://github.com/DepthAnyVideo/DepthAnyVideo
项目链接:
https://depthanyvideo.github.io

东京街头漫步场景的深度估计效果展示
图0:东京街头漫步场景的深度估计效果展示,模型精确捕捉了动态城市环境中的远近层次。

视频深度估计的痛点:数据稀缺与一致性难题

给一段视频里的每一帧都算出准确的深度图,这事儿听起来就挺科幻。想想看,你随手拍的一段猫主子在家里跑酷的视频,AI不仅能识别出猫在哪,还能知道它离镜头多远,甚至能把这个3D信息无缝串联成一段稳定的深度序列。这不就是让2D视频瞬间拥有了「体感」吗?
但现实很骨感。单张图片的深度估计已经可以被做得很好了,比如之前聊过的Depth Anything、Marigold等模型,在单帧上的精度已经相当能打。可一旦把镜头拉长到视频,问题就暴露了:前后帧的深度预测「各玩各的」,导致画面闪烁、景深抖动,仿佛在看一部坏了的3D老电影。要让AI在连续的视频里保持时空一致性,难就难在两点:一是缺乏大规模、多样化且时序对齐的真实/合成深度数据集;二是很难设计出一个既能理解单帧语义,又能维持多帧间时空流畅度的网络结构。
以往的解决方案大多走「曲线救国」路线:要么依赖昂贵的深度传感器(LiDAR、结构光等)来采集,要么在推理时对每段视频进行高成本的优化拟合,直到最近的扩散模型出现才有所改观。但即使是生成式方法,也受限于训练数据的规模——之前模型用到的合成数据往往只有几万到几十万帧,而且场景单一,难以泛化到真实世界中那些千奇百怪的环境(比如浓雾、沙滩、复杂的动态物体)。

可扩展合成数据:DA-V数据集构建全流程

Depth Any Video的第一个突破点,在于它怎么搞到海量且高质量的视频深度数据。论文团队给出的方案非常巧妙:直接从现代游戏引擎里「捞」。思路很简单:现代3A大作(比如《城市:天际线II》、《侠盗猎车手V》)的渲染管线里本身就有一个深度缓冲区(depth buffer),GPU在渲染每个像素时顺带就计算出了该点与虚拟相机的距离。通过ReShade插件,研究人员可以直接「劫持」这个深度缓冲区的数据,并用OBS(Open Broadcaster Software)同步录制游戏画面和对应的深度图。
这里有个细节需要注意:如果直接录屏,游戏界面上的UI元素(比如血量条、地图)也会被录进去,导致画面与深度图对不上。为了解决这个问题,团队利用ReShade插件自带的UI消除功能去掉了屏幕上的文字和界面元素,然后在后期又做了多重过滤,包括:通过场景剪切检测算法基于颜色突变来识别场景切换、再用一个预训练的深度模型过滤掉那些分数低的不正确帧、最后用CLIP模型比较画面与彩色化后的深度图之间的语义相似度,只有三项指标都达标才被保留。经过这套自动化流水线,团队最终拿到了40,000段每段5秒(30fps)的干净视频,累计600万帧,取名为DA-V数据集。相比之前的合成数据集(如Sintel只有1.6K帧,DynamicReplica有169K帧),DA-V在规模上直接降维打击,且覆盖了丰富光照、动态物体和室内外场景。

下图为论文中Table 1,展示了DA-V数据集的规模与先前的合成数据对比。

表1:本文的DA-V数据集与之前合成数据集的规模对比,DA-V以600万帧的数据量遥遥领先,且同时覆盖室内外与动态场景。

方法概述:生成式框架

有了海量数据作为燃料,接下来要解决的就是模型本身怎么设计。Depth Any Video选择站在巨人肩上,以Stable Video Diffusion(SVD)作为基础骨架。SVD本身是一个强大的视频生成模型,基于Latent Diffusion Model架构,编码了数亿视频里的时空先验。
整个框架的整体设计思路如下:首先,记输入的RGB视频为xc、对应的真实深度图为xd。训练阶段,通过预训练的VAE编码器将xc和xd分别映射到潜空间,得到zc和zd。然后对zd逐步施加高斯噪声,并训练一个去噪网络 vθ 来还原原始潜变量。该去噪网络是以zc为条件来预测的,相当于让模型学会在看到彩色视频的前提下,从纯噪声中还原出对应的深度潜变量。推理时,只需对所有帧的潜变量从纯噪声开始做几步降噪,然后经过VAE解码器就得到了最终的深度图。
为了提升效率和灵活性,论文做了两项关键改动:

1. 条件流匹配(Conditional Flow Matching, CFM)取代了SVD原本的EDM调度器。EDM需要25步降噪才能得到好结果,而CFM只需要3步就能达到甚至超越原效果。CFM的本质是通过在噪声和数据之间定义一个线性插值的速度场来形成一条从噪声到数据的直线路径,使得模型学到的速度场的近似解可以直接用来求解常微分方程,一步就从纯噪声跳到接近数据的潜空间,大大降低了推理时间。

2. 移除CLIP嵌入条件原本SVD会用图像CLIP特征来指导视频生成,但论文发现对于深度估计任务来说,这个条件几乎没有用处,反而增加了计算量。于是直接将其替换为零嵌入,简化了模型的输入。

混合时长训练+深度插值:灵活应对不同输入

现实世界的视频千变万化,可能是手机拍的短片段,也可能是监控的长视频,帧率也不统一。为了让一个模型能通吃所有情况,论文设计了混合时长训练策略,包含两个关键技术:帧丢弃(Frame Dropout)和视频打包(Video Packing)。

帧丢弃:直接训练长视频太耗显存。论文受大语言模型中上下文扩展技术的启发,在SVD的3D UNet中将原来的绝对正弦位置编码替换为旋转位置编码(RoPE),以支持可变帧数。但仅靠RoPE训练短视频很难泛化到长视频,因此训练时保留原始视频的帧索引,然后随机采样K帧(K小于总帧数)来训练,但这些帧仍然使用它们原始的绝对位置。这样模型就能学会在不同长度视频中插值,即使训练时只见过少数帧,推理时也能直接处理更长的序列。

视频打包:不同长度的视频不能直接拼成一个batch训练。论文先将视频按分辨率分组、裁剪到统一尺寸,然后每个batch内选取相同帧数的样本,并且动态调整batch大小——短视频用小batch、长视频用大batch,从而最大限度地利用GPU内存。

通过这套策略,模型训练时既能看到单帧图像,也能看到不同长度的视频,从而获得跨帧率的泛化能力。
但是模型一次推理最多只能处理32帧(在80GB A100上),对于长视频比如150帧怎么办?论文提出了一种深度插值模块,如图3所示。首先用基础模型预测一组关键帧(比如每隔16帧选一帧),保证关键帧之间深度分布的一致性。然后对于关键帧之间的非关键帧,用一个微调后的插值网络来生成,这个网络不仅以彩色视频和噪声为输入,还把相邻的关键帧的深度潜变量作为额外的条件(用mask map标记哪些帧是已知的)。插值公式如下:
公式:深度插值网络输入
其中z_hat_d是关键帧潜变量(非关键帧置零),m是mask map(关键帧位置为1,其余为0)。这样插值网络就能利用全局一致的关键帧信息来生成平滑的中间帧,避免滑动窗口独立处理造成的闪烁伪影。
Figure 3: 帧插值网络示意图
图3:深度插值模块,以关键帧为条件生成中间帧,确保长视频深度在时序上的一致性。

全面超越:实验效果与消融分析

论文在四个广泛使用的零样本深度估计基准(NYUv2、KITTI、ETH3D、ScanNet)上进行了定量评估,所有结果均为零样本(即测试时不做任何域适应)。评价指标包括绝对相对误差(AbsRel)和δ1精度(预测深度与真值误差小于1.25%的像素比例)。对于视频深度,还引入了时序对齐误差(TAE)来衡量帧间一致性。
在单帧输入的对比中(Table 2),Depth Any Video全面超越了所有之前的生成式深度模型,包括Marigold、DepthFM、GeoWizard。例如在ETH3D上,AbsRel从6.4降到4.7,提升超过25%;在KITTI上相比GeoWizard的δ1提升了3个百分点。甚至在一些基准上与顶级判别式模型Depth Anything不相上下,尤其在KITTI和ETH3D上反而更优。这充分证明了大规模高质量合成数据(DA-V)的威力。
Table 2: 单帧输入定量比较
表2:与SOTA方法在单帧输入下的零样本比较,Depth Any Video在全部4个数据集上均优于所有生成式方法。
在视频深度对比中(Table 3),模型在ScanNet++上以AbsRel 9.3和δ1 93.4击败了专门的视频深度模型NVDS、ChronoDepth、DepthCrafter,同时TAE(时序误差)也达到最低的2.1,说明不仅单帧准,帧间也稳。
Table 3: 视频深度及时序一致性比较
表3:在ScanNet++上的视频深度评估,Depth Any Video在空间精度和时序一致性上均取得最佳。
在推理效率上(Table 4),模型仅用3步去噪,推理时间仅0.37秒(480×640分辨率),参数量1422.8M,在ScanNet上δ1达到96.1%,远远快于DepthCrafter的4.80秒,也优于ChronoDepth的1.04秒。
Table 4: 推理效率比较
表4:推理效率与精度对比,Depth Any Video以最少步数、最短耗时达到最高精度。
定性结果(Figure 4和5)更直观。图4显示模型能捕捉到精细细节,比如ETH3D数据集中的梯子、KITTI中与背景相似颜色的人物头部。在视频上(Figure 5),与其他方法相比,Depth Any Video几乎没有帧间闪烁,而Marigold和ChronoDepth在时间轴上呈现明显的锯齿状波动,DepthCrafter虽然平滑一些,但在窗口边界仍有闪烁。关键帧+插值的策略成功消除了这些伪影。
Figure 4: 单帧定性对比
图4:与其他生成式方法在单帧上的定性对比,Depth Any Video能捕捉更多细节(如小物体和边缘)。
Figure 5: 视频定性对比
图5:在多种in-the-wild视频上的定性比较。红色竖线处的切片显示深度随时间的变化,Depth Any Video曲线平滑,而其他方法有明显锯齿。
动物视频剪辑的深度估计效果
动物视频剪辑深度估计:在复杂动态场景中仍能保持稳定的深度层次。
消融实验(Table 5)验证了每个组件的必要性:去掉生成式先验(不使用SVD预训练)后平均δ1从95.8%骤降至65.1%;去掉条件流匹配后用EDM,推理时间从0.37秒增加到2.4秒,精度也下降;去掉合成数据后精度也有明显下降。此外,图6展示了超参数的影响:流匹配仅需3步就达到饱和,而EDM需要25步;训练仅需5个epoch就能快速收敛,说明生成式先验提供了极好的初始化。
表5:逐一消融各组件。生成式先验(SVD预训练)贡献最大,条件流匹配既提升速度也提升精度,合成数据也带来稳定增益。
Figure 6: 超参数消融
图6:超参数消融实验。(a)CFM只需3步即可达到EDM 25步的性能;(b)训练收敛极快,5个epoch就有不错结果;(c)合成数据规模增大,精度稳步提升。

总结与未来展望

Depth Any Video这篇工作可以说为视频深度估计指明了一个新方向:用海量合成数据+强大的生成式先验来彻底解决数据稀缺和一致性两大难题。DA-V数据集的构建方法也证明了,只要找到合适的管道(游戏引擎+自动化过滤),合成数据的规模和多样性可以远超想象,而且对真实场景的泛化效果令人惊叹。
当然,目前模型还存在一些局限:推理时需要3个去噪步和20次集成的设置(为了达到最佳精度),虽然比同类方法快,但在实时场景(如机器人控制)中仍有压力;深度插值模块虽然能做长视频,但流程相对复杂;此外,模型目前只输出相对深度(需要后处理对齐到绝对尺度),对于自动驾驶等需要绝对尺度的应用还差临门一脚。未来可以考虑引入对法线估计、边缘导向的监督来进一步提升细节精度。
总体来看,这是一篇非常扎实的工程+算法结合的工作,尤其是数据管道的设计和生成式框架的迁移思路,值得很多计算机视觉任务借鉴。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:

这篇论文解决什么问题?它解决了视频深度估计中数据稀缺和时序不一致两大痛点。通过从游戏中大规模采集合成深度视频(DA-V数据集,600万帧),并基于Stable Video Diffusion构建生成式框架,首次在零样本设定下实现了同时兼顾单帧精度和视频时序一致性,效果远超此前所有生成式方法。

条件流匹配(CFM)相比原本的EDM有什么好处?CFM通过定义一个从噪声到数据的直线速度场,使去噪过程可以被更少的步数(3步)近似,而EDM需要25步。因此推理速度提升了6.5倍,同时精度还略有提升(表5中AbsRel从7.5降到6.9,δ1从93.8%升到94.9%)。

混合时长训练策略中的“帧丢弃”具体怎么操作?训练时,对一个T帧的视频,保留原来的帧索引0,1,...,T-1,然后随机采样K帧(比如K=4)来训练,但这些帧的索引不变(例如采样第0、2、5、7帧,它们的位置编码就是0,2,5,7)。这样模型学到了如何利用稀疏的帧索引进行插值,推理时就能处理任意长度的视频(只要不超过训练时见过的最大索引)。

如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★★★首次将大规模游戏数据+扩散视频先验系统性地用于视频深度估计,数据管道设计巧妙,框架改造(CFM、混合时长训练、深度插值)实用且有效。

实验合理度:★★★★✰在4个主流零样本基准上评测,对比了最新的生成式和判别式方法,消融实验全面,定性结果丰富。但视频对比数据集(ScanNet++)只有98个clip,规模偏小,且缺少与更多视频深度模型的对比(如VideoDepth-Anything)。

学术研究价值:★★★★★为视频深度估计提供了可复现的大规模合成数据范式,流匹配+视频扩散的使用思路可推广到其他视频密集预测任务(法线、光流等)。

稳定性:★★★★✰在多个域外场景表现稳健,零样本泛化能力强,但合成数据与真实场景细节(如玻璃反射、透明物体)仍存在差异,偶尔会出现深度突变。

适应性以及泛化能力:★★★★★模型可处理单帧到任意长度视频,适用于室内/室外、自然/城市、静态/动态等广泛场景,是当前泛化性最好的视频深度估计模型之一。

硬件需求及成本:★★★✰✰训练需32张A100约1天,成本高;推理时单张A100处理32帧需0.37秒(3步去噪),但集成20次后约7秒,实时性不足。对于轻量级设备部署困难。

复现难度:★★★★★代码和模型权重已开源,数据收集工具(ReShade、OBS)公开,DA-V数据集也可通过类似流程重建,复现门槛较低。

产品化成熟度:★★★✰✰可用于影视后期、VR/AR、机器人导航等非实时场景的产品原型,但实时性、绝对尺度还原、以及对极端环境(黑暗、强反射)的稳定性仍需打磨。

可能的问题:论文使用了一些游戏中可能涉及版权的内容,虽然做了UI过滤和非商业声明,但若用于商业应用需注意版权风险;视频对比时缺少与最新方法的公开比较(如Depth Pro、VideoLDM);长视频插值模块的细节描述不够充分。


主要参考文献

[1] Yang, H., Huang, D., Yin, W., et al. Depth Any Video with Scalable Synthetic Data. arXiv:2410.10815, 2024.
[2] Blattmann, A., et al. Stable Video Diffusion: Scaling latent video diffusion models to large datasets. arXiv:2311.15127, 2023.
[3] Lipman, Y., et al. Flow matching for generative modeling. ICLR 2023.
[4] Ke, B., et al. Marigold: Repurposing diffusion-based image generators for monocular depth estimation. CVPR 2024.

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

end
说真的,看完Depth Any Video的演示gif,有没有一种“世界在我眼底变得透明”的感觉?想亲手试试跑一下自己的视频吗?快来群里一起讨论吧,搞不好你下一段自驾游视频就能一键3D化!欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。🚀
wechat_helper dianzan
转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。