Marigold V2 · 扩散 Transformer 单目深度估计新标杆 · 干货攻略
- 链接: https://x.com/_akhaliq/status/2097726716861186348
- 分类: x-tips
- 来源: X @_akhaliq
- 作者: Jay
- 更新: 2026-09-13
- 仓库: huawei-bayerlab/marigold-v2
这是什么
Marigold V2 是一套将预训练图像生成扩散 Transformer(DiT)低成本改造为单目深度估计器的完整方案——包括模型族和可复现微调协议。2026 年 9 月 8 日由华为苏黎世实验室( Huawei Bayer Lab)、EPFL 和博洛尼亚大学联合开源,已被 ACM Transactions on Graphics 接收(SIGGRAPH Asia 2026,2026 年 12 月正式发表)。
其核心思路:不从零训练深度估计网络,而是对已具备强大图像理解能力的生成式 DiT 做后训练(post-training)——把图像生成器的潜空间重用于深度预测,大幅降低对标注数据的依赖,同时保留 DiT 对细节的高保真建模能力。
为什么值得关注
单目深度估计(从单张 RGB 图像预测稠密深度图)是计算机视觉的经典难题,下游应用涵盖三维重建、计算摄影、机器人导航等。传统方法要么依赖大规模深度标注数据,要么在边缘、毛发等细节处模糊不清。
Marigold V2 的贡献在于同时解决了两个痛点:
- 泛化性差:模型在分布外图像上表现崩溃;
- 细节丢失:毛发、植被、玻璃后物体边缘等薄结构无法恢复。
这些问题的根源被团队剖析清楚,并针对性提出了两剂"药方":语义对齐(iREPA)和双阶段 SinkLoss 微调,最终在零样本场景下实现了 KITTI 和 ETH3D 上 AbsRel 相对降低 16–26% 的显著提升。定性来看,模型能忠实地还原毛发、叶片等 prior 方法长期无法处理的细节。
对于个人研究者和小型实验室,这条路径的核心吸引力在于:一块消费级 GPU(24 GB)就能在一周内完成微调,不需要成百上千卡的大集群,复现门槛极低。
核验过程
官方来源
| 来源 | 内容 |
|---|---|
| GitHub README(huawei-bayerlab/marigold-v2) | 环境配置、推理/训练命令、完整检查点列表 |
| HuggingFace 模型卡(huawei-bayerlab/marigold-v2-0) | 零样本基准数字、各检查点用途、VRAM 需求 |
| arXiv 2609.08084(摘要页) | 论文核心贡献、iREPA + SinkLoss 机制、16–26% AbsRel 提升声明 |
| HuggingFace Paper Page(2609.08084) | SinkLoss 原理(5×5 tile Sinkhorn 匹配)、see-through 玻璃深度数字 |
交叉验证结论
- AbsRel 16–26% 提升:arXiv 摘要、HF Paper Page、AI Weekly 三处一致,✅ 核验通过。
- 零样本基准数字(NYUv2 3.6/98.0, KITTI 5.4/97.4, ETH3D 2.8/99.2, ScanNet 3.7/97.9, DIODE 5.2/97.1):GitHub README 原文表格与 HF 模型卡一致,✅ 核验通过。
- Surface normals 数字(NYUv2 MAE 16.6 / 61.2% within 11.25°):HF 模型卡原文,✅ 核验通过。
- VRAM 需求(1024² ≈ 17 GB,2048² ≈ 29 GB;24 GB 卡覆盖 1024²):HF 模型卡原文,⚠️ 注:原帖写作"单 GPU 可 post-train"且未注明具体显存,官方数字更精确。
- Base model = Qwen-Image-Edit-2509:GitHub + HF 模型卡一致,✅ 核验通过。
- Siggraph Asia 2026 接收:arXiv meta 字段注明,✅ 核验通过。
上手步骤
环境安装
git clone https://github.com/huawei-bayerlab/marigold-v2.git
cd marigold-v2
bash setup/setup_env.sh # 创建 conda 环境 marigold-v2,CUDA 12.8 wheel
conda activate marigold-v2
下载资产(基座模型 + 所有检查点)
python scripts/download_assets.py --skip-datasets
# 下载内容:Qwen-Image-Edit-2509 基座 + 所有 Marigold V2 LoRA 权重 → assets/
推理(Depth)
# 默认使用 depth/Log-stage2(论文主模型)
python scripts/infer.py \
--image_dir /path/to/images \
--output_dir output/depth
# 指定其他检查点(如 see-through depth,预测玻璃后物体)
python scripts/infer.py \
--checkpoint assets/checkpoints/Marigold-V2/depth/Log-layered \
--image_dir /path/to/images \
--output_dir output/see-through
# 指定法线或反照率
python scripts/infer.py \
--checkpoint assets/checkpoints/Marigold-V2/normals \
--image_dir /path/to/images \
--output_dir output/normals
推理输出:
- predictions_npy/:float32 .npy 文件(程序化使用)
- visualizations/depth_spectral/:PNG 可视化图
零样本评测
# 需要数据集,详情见 GitHub README
python eval/launcher.py \
--dataset nyuv2 \
--checkpoint depth/Log-stage2 \
--output_dir output/eval_runs
# 快速验证(截断样本数)
python eval/launcher.py \
--dataset nyuv2 \
--checkpoint depth/Log-stage2 \
--output_dir output/eval_runs \
100 # 只跑前 100 张
扩展新任务(微调自己的深度/法线/反照率数据集)
# Stage 1:潜空间 MSE + L1 + 梯度 + iREPA 正则
python train/train.py \
--config configs/stage1.yaml \
--data_root /path/to/your/dataset
# Stage 2:SinkLoss 精修(处理噪声 GT)
python train/train.py \
--config configs/stage2.yaml \
--checkpoint output/stage1/checkpoints/last.ckpt
VRAM 需求一览
| 分辨率 | 最低显存 | 说明 |
|---|---|---|
| 1024 × 1024 | ~17 GB | 24 GB 卡可跑 |
| 2048 × 2048 | ~29 GB | 需要 32 GB 卡 |
| 批量更小尺寸 | 显著更低 | 视 batch size 而定 |
基座 DiT 在首次加载时自动量化为 4-bit(约几分钟初始化时间),后续推理无需额外量化步骤。
坑与适用边界
⚠️ 已知限制
- 尺度/偏移不确定:输出深度是仿射不变的(affine-invariant),即深度值只知道相对远近,不知道绝对距离,也不能直接跨图像对齐。如需绝对深度,需要额外后处理(RANSAC 对齐等)。
- 玻璃后物体需要专用检查点(
depth/Log-layered/Disparity-layered/Uniform-layered),通用Log-stage2在玻璃处表现一般。 - LoRA 权重 ≠ 完整模型:推理时必须同时有 Qwen-Image-Edit-2509 基座(
assets/目录),不能单独分发 LoRA。 - Linux + Python 3.10 + CUDA:Windows/macOS 不在官方支持范围。
适用边界
- ✅ 零样本深度估计(通用 RGB → 深度)
- ✅ 毛发/植被/薄结构等高细节场景
- ✅ 个人/小实验室低成本复现(单 GPU + < 1 周)
- ✅ 多任务扩展:法线、反照率、see-through 深度
- ❌ 需要绝对 metric depth(需额外标定流程)
- ❌ 透明物体通用深度(用 layered 检查点)
- ❌ Windows 环境(需要 Docker 或 WSL2 中转)
关于基座模型许可
LoRA 权重采用 Apache 2.0 许可,但基座模型 Qwen-Image-Edit-2509 保持其自有许可证,商业使用前请单独确认阿里/Qwen 的许可条款。
一句话结论
Marigold V2 将"用最强图像生成器改造深度估计器"这件事做到了工程化和开源级别的极致——单块消费级 GPU 一周内可训出一流深度/法线/反照率模型,且零样本泛化显著优于 prior,尤其擅长毛发、植被等 prior 方法长期无法复原的细节。