
计算机视觉深度学习【免费下载链接】Metric-Video-Depth-Anything-Base-MLX项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Metric-Video-Depth-Anything-Base-MLX点击查看免费下载Metric-Video-Depth-Anything-Base-MLX 是一个运行在 Apple SiliconMLX 框架上的视频单目深度估计模型由字节跳动 CVPR 2025 高亮论文 Video Depth Anything 的官方基座模型转换而来能对任意长度视频逐帧输出以米为单位的绝对深度图。本文用 10 个高频问题一次讲清它的用法、Metal fast-math 精度差异以及常见报错的排查方法。问题 1这个模型到底是什么能做什么简单说它把视频的每一帧厚度化输入一段视频输出每帧的深度图float32形状(T, H, W)深度值代表相机到物体的真实距离米。它的架构由三部分组成DINOv2 backboneViT-B 编码器提取视觉特征DPT head把特征解码为密集深度图AnimateDiff 风格的时序运动模块保证长视频前后帧深度一致模型文件就是仓库根目录下的 model.safetensors配套元数据在 config.json 中。问题 2如何安装并加载模型只需一个短代码段完整说明见 README.md 的 Usage 章节from mlx_vlm import load from mlx_vlm.models.video_depth_anything.generate import ( VideoDepthPredictor, read_video_frames, ) model, processor load(mlx-community/Metric-Video-Depth-Anything-Base-MLX) predictor VideoDepthPredictor(model, processor) frames, fps read_video_frames(input.mp4, max_len300, target_fps15) depths predictor.infer(frames) # (T, H, W) float32 注意加载名是mlx-community/...这个 MLX 仓库不是PyTorch 原版仓库。问题 3为什么叫 Metric它和普通深度模型有什么区别这是新手最容易混淆的点类型输出含义对齐方式非 metric 模型相对深度只知道近和远需要窗口内 scale/shift 对齐Metric 模型本仓库绝对深度米跳过 scale/shift 对齐config.json 中metric: true就是它的身份标识。也就是说输出的深度数值可以直接当物理距离用不需要额外标定。问题 4Metal GPU 上结果为什么和 PyTorch 有约 1% 的偏差这是 README.md 中 Notes 部分明确说明的行为不是 bug模型权重为fp32在 GPUMetal上MLX 启用了Metal fast-math快速数学近似如更快的浮点运算路径换来更高吞吐代价是与 PyTorch 参考实现存在约 1% 的相对误差在CPU上逐帧对比误差可达~1e-5近乎比特级一致。对深度估计任务而言1% 的相对差异通常完全可接受无需担心。问题 5GPU 和 CPU 推理怎么选场景推荐原因日常使用 / 批处理长视频GPU (Metal)速度快~1% 误差无感与 PyTorch 结果做严格对比 / 回归测试CPU误差 ~1e-5结果可复现无 Apple GPU罕见CPUMLX 主要面向 Apple Silicon一句话要精度对齐选 CPU要速度选 GPU精度损失由 Metal fast-math 机制决定属于正常设计。问题 6报错尺寸不合法H 和 W 必须是 14 的倍数这是最高频的踩坑点。输入张量的H 和 W 必须是 14 的倍数对应 DINOv2 的 patch 划分否则推理会直接报错。正确做法把画面缩放到如 518×518518 14 × 37正好是 preprocessor_config.json 中input_size的值。⚠️ 自查口诀H % 14 0 and W % 14 0不满足就先用插值 resize。问题 7输入张量是什么格式顺序错了会怎样输入采用channel-last格式(B, T, H, W, 3)——通道在最后和 PyTorch 常见的(B, C, T, H, W)顺序不同。维度含义BbatchT帧数H / W高 / 宽14 的倍数3RGB 通道把 channel 放到第 2 维是典型错误来源报错往往表现为广播失败或输出全黑/全 NaN。问题 8长视频怎么控制长度max_len 和 target_fps 怎么设read_video_frames(input.mp4, max_len300, target_fps15)两个参数配合使用target_fps目标采样帧率。原始视频 30fps 时设为 15等于隔帧采样直接减半计算量max_len最多送入多少帧。超过部分会被截断或分块显存不够就先调小它。经验值先按target_fps15、max_len300试跑OOM 就降到 150、96……逐步逼近你的内存上限。问题 9config.json 里的参数各是什么意思config.json 共 8 个字段逐一看字段值含义model_typevideo_depth_anything架构类型encodervitbDINOv2 编码器规格ViT-Bmetrictrue输出米制绝对深度features128骨干特征维度out_channels96/192/384/768DPT head 四级输出通道num_frames32时序模块的参考帧数窗口peape位置编码方式绝对位置编码其中num_frames: 32决定了时序一致性模块一次参照多少帧这也是长视频能保持深度不漂移的关键。问题 10常见报错排查清单 许可红线按出现频率排序的排查表报错 / 现象可能原因解决办法尺寸相关报错H/W 不是 14 的倍数resize 到 518 等 14 的倍数输出形状奇怪 / NaN用了 channel-first 输入改为(B, T, H, W, 3)channel-last内存溢出 (OOM)max_len 或分辨率太大调小max_len、降低分辨率与 PyTorch 差 ~1%Metal fast-math 正常行为需要严格对齐时改用 CPU 推理load 失败加载名写成了原版仓库名使用mlx-community/Metric-Video-Depth-Anything-Base-MLX最后的红线提醒本仓库采用CC-BY-NC-4.0许可与源 checkpoint 一致仅限非商业使用商业产品接入前务必确认合规。快速小结模型核心DINOv2 DPT 时序模块输出米制绝对深度精度GPU 约 1%Metal fast-math、CPU 约 1e-5都是预期行为三大铁律14 的倍数、channel-last、先控制 max_len 再谈速度许可CC-BY-NC-4.0非商用。仓库内文件索引README.md config.json preprocessor_config.json model.safetensors赞分享计算机视觉深度学习【免费下载链接】Metric-Video-Depth-Anything-Base-MLX项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Metric-Video-Depth-Anything-Base-MLX点击查看免费下载相关推荐Video-Depth-Anything-Large-MLX vs 原版PyTorch精度约1%偏差与Metal fast-math深度对比Video Depth Anything Large MLX vs 原版PyTorch精度约1%偏差与Metal fast math深度对比 Video De人工智能计算机视觉从PyTorch到MLXMetric-Video-Depth-Anything-Base-MLX移植实现细节与Metal fast-math精度1%的秘密从PyTorch到MLXMetric Video Depth Anything Base MLX移植实现细节与Metal fast math精度1%的秘密 M计算机视觉深度学习Video-Depth-Anything-Small-MLX 精度实测Metal GPU 与 CPU 结果和 PyTorch 原版差距有多大Video Depth Anything Small MLX 精度实测Metal GPU 与 CPU 结果和 PyTorch 原版差距有多大 Video D上一篇3步瘦身90%SLIM多阶段构建Node.js应用最佳实践下一篇变更说明创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考