展开本页目录
开始前准备什么
- 把本题ZIP解压到独立目录,保留原始文件与README中的素材身份。
- 模型步骤需在官方支持的隔离环境、相应权重与硬件中运行;本包不含权重,不承诺Apple本机支持CUDA。
- 本地文件检查使用Python、NumPy/Pillow或Blender;模型运行与素材/格式校验是分开的证据。
- 保留36帧原片和时间基准
- 按官方规格选择Small视频模型
- 同时导出可视视频与原始深度
- 先检查数组,再谈画面稳定性
- 用跟随对象的区域看原始值
- 核对EXR顺序和合成读入设置
- 保存真实输出与未运行边界
1. 保留36帧原片和时间基准
input.mp4是640×360、12fps、36帧的原创双玩具运动片;先用ffprobe读取时长与帧率。不要为了看起来顺滑先补帧,否则深度序列不再对应这份输入。
2. 按官方规格选择Small视频模型
官方run.py用--encoder vits选择Small,并从checkpoints/video_depth_anything_vits.pth加载相对视频权重。--metric是另一组权重;本题默认相对深度,不能把输出称为米。
3. 同时导出可视视频与原始深度
使用--target_fps -1保留原fps,开启--save_npz和--save_exr。官方脚本把NPZ存为depths键,把EXR写成逐帧Z通道;不把_vis.mp4里的灰度像素当作原始浮点深度。
commands.md
SPATIAL_LESSON_DIR="$PWD"
cd /path/to/Video-Depth-Anything
python run.py --input_video "$SPATIAL_LESSON_DIR/input.mp4" --output_dir "$SPATIAL_LESSON_DIR/actual-video-depth" --encoder vits --target_fps -1 --save_npz --save_exr
cd "$SPATIAL_LESSON_DIR"
python inspect-video-depth.py actual-video-depth/input_depths.npz --expected-frames 36 --out actual-depth-inspection4. 先检查数组,再谈画面稳定性
inspect-video-depth.py拒绝缺depths键、非N×H×W、NaN及帧数不符。它生成首中尾预览仅供查看;每帧分别归一化会掩盖数值尺度漂移,不能据此直接下稳定结论。
5. 用跟随对象的区域看原始值
两只玩具在移动,固定画面中心可能从玩具切到后墙。对同一实体逐帧记录区域或结合人工核对的mask,再比较原始值;不要把不同物体的值连成“同一对象深度曲线”。
6. 核对EXR顺序和合成读入设置
确认EXR序列从frame_00000开始且数量一致,用线性数据读取Z通道;不要自动套用显示色彩转换后再进行深度运算。导入后看首尾帧和运动方向,记录闪烁或对象边缘突变。
7. 保存真实输出与未运行边界
本包有原片、脚本、参数和格式负例检查,模型及EXR推理尚未执行。reference-depths.npz是已知几何参考的重复序列,只测试解析器,不能当作视频模型“完全不闪”的证据。
怎样确认已经完成
- 原始输入、人工参考、官方示例和实际模型输出标识分开。
- 保存真实帧号/坐标/对象ID或几何版本,不只凭文件能打开判断质量。
- 模型未运行时保留not-executed,不把参考文件复制更名为成功结果。
常见问题
视频深度图为什么还要保留NPZ和EXR?
可视MP4经过色表、缩放和视频编码;NPZ/EXR保留用于后期的浮点数据。检查原始值和时序不能只看一段着色视频。
Video Depth Anything能保证完全不闪烁吗?
不能。它有视频时间建模,但实际片段仍需检查物体边缘、相机移动和数值尺度;本教程不会将参考恒定数组当作模型成功。
EXR里的Z通道就是米吗?
仅在使用相应metric模型并确认输出语义后才可讨论米制。默认relative视频模型的Z只是通道名称,不赋予真实距离单位。




