深度估计:平面视频隐藏的那条轴
视频是平面的,所以正对镜头或远离镜头的运动在屏幕上几乎看不出位移。Funscript 深度估计填补了这一空白:AutoScript Sync 在你的电脑上运行 MiDaS 模型,估计画面各部分的远近,并跟踪运动区域中远近的变化。其结果是又一个候选位置信号。深度是可选的,脚本仍然以光流为基础构建。
已于 2026 年 9 月 21 日对照应用代码核实。
为什么深度很重要
光流测量的是物体在画面中的移动:上、下、左、右。当行程沿镜头的视线方向进行时(例如 POV 画面),运动的物体主要是变大变小,而不是在画面中横向移动。光流几乎看不到这种变化。深度模型把同样的帧读作远和近,因此沿该轴的行程会表现为深度的变化。
使用哪个 MiDaS 模型
AutoScript Sync 使用 ONNX 格式的 MiDaS v2.1 深度模型。它们给出的是相对深度,即同一画面中的较近和较远,而不是以厘米计的距离。
| 模型 | 大小 | 使用场合 |
|---|---|---|
| MiDaS small | 约 64 MB | Fast 和 Balanced,以及 CPU 上的所有档位。默认下载的模型。 |
| MiDaS large | ~397 MB | High,仅在 CUDA GPU 上,且需你已下载。建议使用 GPU。 |
该选择由 Auto-pick model tier from Accuracy 决定,它默认开启,且只能选择已经安装的模型。引擎接受你指定的任何相对深度 ONNX 模型,但应用只提供 MiDaS 的下载。
深度如何成为信号
深度每隔一个采样帧推理一次,在 320 px 宽的分析图像上进行,并在追踪区域内实际运动的像素上取平均。结果与区域中心和姿态关键点一起,作为位置轨迹的候选锚点。如果深度模型每帧耗时超过 3 秒,引擎会在本次运行的剩余部分关闭深度,而不是让一个慢模型拖住整个任务。
每个视频统一一个深度尺度,而不是每帧一个
深度模型的输出没有固定单位:每一帧都按各自的尺度返回。如果每帧单独归一化,尺度本身就会逐帧变化,而这种变化看起来就像是运动。AutoScript Sync 则根据深度读数的稳健百分位数为整个视频设定一个尺度,这样数值的变化就代表场景的变化。
| 指标 | 逐帧缩放 | 逐视频缩放 |
|---|---|---|
| 深度变化的帧间相关性 | 0.594 | 0.963 |
| 出现虚假方向翻转的步数 | 42% | 2% |
这是开发者于 2026 年 9 月 10 日针对模型原始输出所做的一项范围很窄的工程测量。它表明逐视频缩放能防止深度信号自相矛盾;它并不衡量最终脚本的准确度。
影响深度的设置
行程设置中有两个名称带 Depth 的滑块。只有 Depth priority 会改变分析;Depth emphasis 在发往设备的途中塑造行程长度,与 MiDaS 模型无关。两者都不会开关深度模型;这取决于是否安装并选用了深度模型。
- Depth priority
- 30 到 90,默认 85。它决定位置轨迹中有多少来自实测速度,而不是来自位置锚点(深度是锚点的候选之一):数值越高,锚点的权重越低。应用自带的提示说明,速度承载行程幅度,锚点能阻止漂移但会压平深度;如果脚本感觉太忙乱或太深,建议调低到 45–65。它会改变分析,因此需要重新生成。
- Depth emphasis
- 100% 到 200%,默认 100%(中性)。深的行程会按比例走得更远。它塑造的是发送给设备的副本,因此更改后请重新发送脚本;保存的文件不会改变。在已发布的应用中,这种设备端塑形只用于 Autoblow AI Ultra 上传;对 Intiface 设备同样应用,以及将其写入 Export Script (as played),将在下一次更新中推出。
深度的开销
有 NVIDIA GPU 时,深度通过 CUDA 在 GPU 上运行,否则在 CPU 上运行;应用会报告实际使用的是哪一个。RTX 5080 测试电脑上的一条代码注释记录,MiDaS small 每次调用在 GPU 上约 25.8 ms,在 CPU 上则为 234 ms。每隔一个采样帧运行一次而不是每帧都运行,工作量减半。在 GPU 上,深度模型的 CUDA 内存池上限为 4 GB。
我们没有公布深度在整个分析中所占的时间比例,因为目前的估计值背后没有测量数据表支撑。基准测试页面列出了已测量的内容。
局限
- 相对的,而非绝对的。MiDaS 说的是更近或更远,而不是有多远。行程幅度仍来自融合后的轨迹,而不是仅来自深度。
- 在运动区域上取平均。深度在追踪区域内每个运动像素上取平均,因此区域内的其他运动也会与行程一起被平均进去。用 Set Motion Region… 或 Live Track 自己画出区域可以缩小范围。
- 更大的模型未被证明更好。没有记录过 MiDaS small 与 MiDaS large 在行程准确度上的对比。
- 行程幅度仍是弱点。对照开发者手工编写脚本的测试片段,在最快的两部影片上,引擎的行程幅度分别只有人工的四分之一和一半。目前没有以绝对单位计的深度误差的正式测量。
常见问题
我需要深度模型吗?
不需要。没有深度模型时,引擎依靠光流、区域中心以及(若已安装)姿态工作。除非你关闭自动下载,MiDaS small 会自动下载。
我应该下载 MiDaS large 吗?
只有当你在 NVIDIA GPU 上运行 High 时才需要;在 CPU 上或其他档位不会使用它。我们没有测量过它是否比 MiDaS small 生成更好的脚本。
脚本感觉太深或太忙乱,是深度的问题吗?
可能是速度与锚点之间的平衡问题。试着把 Depth priority 设在 45 到 65 之间,然后重新生成。如果只是觉得设备上的行程太长,Depth emphasis 为 100% 时是中性的。
深度估计适用于 VR 视频吗?
VR 画面会先还原为单眼的普通透视视图,深度在该视图上运行,与其他画面无异。布局检测是启发式的,基于少量采样帧。
延伸阅读
- AI funscript 生成的原理完整的处理流程,从解码到设备。
- 光流如何读取运动与深度相互权衡的速度信号。
- AutoScript Sync 中的姿态估计另一个可选模型和锚点候选。
- 每个 AI 部分的作用从产品角度看这些模型,以及应用如何从编辑中学习。