【免费下载链接】Video-Depth-Anything-Base-MLX
想在Mac 上本地运行 Video-Depth-Anything-Base-MLX吗?它是字节跳动 Video Depth Anything 的MLX 移植版,专门用于视频单目深度估计:给一段视频,逐帧输出一致的深度图。本文带你从 0 到 1 完成模型获取、环境安装和首次推理,全程不依赖云端。
它是什么:为什么选择在本地跑
🎬 传统深度估计模型(如 Video Depth Anything)通常依赖 PyTorch + NVIDIA GPU,而Video-Depth-Anything-Base-MLX将权重与结构转换成了MLX 格式,可以直接在Apple Silicon(M 系列芯片)上高效推理。
它的核心特点:
| 特点 | 说明 |
|---|---|
| 架构 | DINOv2 视觉骨干 + DPT 头 + AnimateDiff 风格时序运动模块 |
| 输出 | 每帧一张深度图(相对深度,非米制绝对深度) |
| 精度 | 权重为 fp32,Metal 加速下与 PyTorch 参考结果相对误差约 1% |
| 长视频支持 | 可处理任意长度视频,帧间深度保持时序一致 |
模型类型与结构参数定义在 config.json 中:编码器为vitb,num_frames为 32,metric为false(即输出相对深度,而非米制深度)。
第一步:获取模型文件
仓库只需用一行命令克隆到本地:
git clone https://gitcode.com/hf_mirrors/mlx-community/Video-Depth-Anything-Base-MLX克隆完成后,目录结构非常简洁,四个文件各司其职:
| 文件 | 作用 |
|---|---|
| model.safetensors | 模型权重文件(fp32) |
| config.json | 模型结构配置(编码器、通道数、帧数等) |
| preprocessor_config.json | 预处理配置,输入尺寸为 518 |
| README.md | 项目说明与用法示例 |
💡 只需克隆一次,权重文件较大,建议在网络良好时进行;克隆成功后即可断网使用。
第二步:安装环境,准备运行
本地运行 Video-Depth-Anything-Base-MLX 的环境要求其实只有两条:一台 Apple Silicon 的 Mac(M1 及以上)和Python 环境。
安装两个依赖即可:
pip install mlx mlx-vlm- mlx:Apple 官方的机器学习框架,提供 Metal GPU 加速
- mlx-vlm:加载与推理库,内置了
video_depth_anything模型的实现
⚠️ 注意:MLX 目前仅支持 Apple 芯片,Windows/Intel Mac 无法直接运行。
第三步:3 行代码完成首次推理
推理流程可以拆成三步:加载模型 → 读取视频帧 → 执行推理。完整示例来自 README.md:
from mlx_vlm import load from mlx_vlm.models.video_depth_anything.generate import ( VideoDepthPredictor, read_video_frames, ) # 1. 加载模型(可直接指向本地克隆的仓库目录) model, processor = load("Video-Depth-Anything-Base-MLX") predictor = VideoDepthPredictor(model, processor) # 2. 读取视频帧(最长 300 帧,目标帧率 15fps) frames, fps = read_video_frames("input.mp4", max_len=300, target_fps=15) # 3. 推理,得到 (T, H, W) 形状的 float32 深度序列 depths = predictor.infer(frames)把input.mp4换成你自己的视频文件即可。depths的每个时间步就是一帧的灰度深度图,值越大代表离镜头越远,用任意图像库保存成图片就能直观查看。
关键参数与输入约束
📌 首次运行前,这几个约束务必确认,能避免绝大多数报错:
| 约束项 | 要求 | 出处 |
|---|---|---|
| 输入张量格式 | channel-last:(B, T, H, W, 3) | README.md |
| 高宽限制 | H 和 W 必须是 14 的倍数 | README.md |
| 预处理输入尺寸 | 518 | preprocessor_config.json |
| 最大处理帧数 | max_len=300(可按需调整) | README.md |
| 时序窗口帧数 | 32 帧 | config.json |
关于精度:在 Metal GPU 上,输出与 PyTorch 参考实现约 1% 的相对误差(fast-math 导致);在 CPU 上误差可低至约 1e-5。对可视化、分割等应用来说完全够用。
常见问题 FAQ
Q1:输出是绝对深度(米)吗?
不是。config.json中metric为false,输出的是相对深度(近小远大),不能直接当真实距离使用,但帧间一致性很好,适合立体感渲染、背景分离等场景。
Q2:长视频能处理吗?
可以。read_video_frames通过max_len和target_fps控制采样帧数,模型对任意长度视频保持时序一致的深度输出。
Q3:第一次运行特别慢?
正常现象——首次推理需要编译 MLX 内核,后续帧会明显加速。
许可证提醒
⚠️ 本模型采用CC-BY-NC-4.0协议(与源模型一致),仅限非商业用途。用于商业产品前请仔细阅读 README.md 中的 License 条款。
写在最后
至此,你已完成 Video-Depth-Anything-Base-MLX 的完整本地部署:克隆仓库 → 安装 mlx-vlm → 三行代码出深度图。整个过程无需云 GPU,一台 M 系列 Mac 就能跑通。后续你可以尝试调整target_fps观察时序一致性,或把深度结果叠加回原视频,制作"3D 立体感"特效视频。
【免费下载链接】Video-Depth-Anything-Base-MLX
相关推荐
从PyTorch到MLX:如何将Video Depth Anything平滑迁移到Video-Depth-Anything-Base-MLX
从PyTorch到MLX:如何将Video Depth Anything平滑迁移到Video Depth Anything Base MLX Video Dep
Small、Base还是Large?Video Depth Anything MLX系列模型选型指南(含Metric-Video-Depth-Anything-Small-MLX对比)
Small、Base还是Large?Video Depth Anything MLX系列模型选型指南(含Metric Video Depth Anything
计算机视觉Video-Depth-Anything-Base-MLX config.json参数指南:num_frames、out_channels逐个拆解
Video Depth Anything Base MLX config.json参数指南:num_frames、out_channels逐个拆解 Video
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考