Marigold完全指南:从零开始掌握扩散模型的图像分析能力
Marigold完全指南:从零开始掌握扩散模型的图像分析能力
【免费下载链接】Marigold[CVPR 2024 - Oral, Best Paper Award Candidate] Marigold: Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation项目地址: https://gitcode.com/gh_mirrors/ma/Marigold
Marigold是一项荣获CVPR 2024 Oral和最佳论文候选的创新技术,它创新性地将基于扩散的图像生成器重新用于单目深度估计等密集图像分析任务。本指南将帮助你从零开始,轻松掌握这一强大工具的安装、使用与核心功能。
🌟 Marigold核心功能解析
Marigold通过巧妙调整预训练的潜在扩散模型(如Stable Diffusion)架构,仅需在单个GPU上使用小型合成数据集进行训练,就能实现多种高级图像分析任务:
图1:Marigold的多任务图像分析能力展示,包括深度估计、表面法线预测和内在图像分解
主要功能亮点
- 单目深度估计:从单张图像精确推断场景深度
- 表面法线预测:重建物体表面的三维朝向信息
- 内在图像分解:分离图像的反射率、光照和材质属性
🚀 快速安装指南
环境准备
Marigold需要Python环境和GPU支持。首先克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ma/Marigold cd Marigold基础依赖安装
pip install -r requirements.txt扩展功能安装
如需使用全部功能,安装扩展依赖:
pip install -r requirements++.txt -r requirements+.txt -r requirements.txt💡 实用推理指南
快速开始推理
将你的图像放入input/in-the-wild_example目录,运行以下命令进行推理:
python script/depth/infer.py \ --input_path input/in-the-wild_example \ --output_path output/depth_results \ --checkpoint prs-eth/marigold-depth-v1-1关键参数说明
--half_precision:启用半精度推理,加快速度并减少显存占用--ensemble_size:推理集成次数,值越大结果越好但速度越慢(默认1)--resolution:处理分辨率,Stable Diffusion在768x768时性能最佳--color_map:深度图的颜色映射方案,默认使用Spectral
图2:Marigold深度估计效果展示,上排为输入图像,中排为深度图,下排为3D重建结果
学术研究配置
如需用于学术比较,请使用论文中指定的设置:
python script/depth/infer.py \ --input_path input/academic_example \ --output_path output/academic_results \ --checkpoint prs-eth/marigold-depth-v1-1 \ --ensemble_size 4 \ --resolution 768 \ --no_resize_back📊 训练自定义模型
数据准备
设置数据和 checkpoint 目录:
export BASE_DATA_DIR=YOUR_DATA_DIR # 训练数据目录 export BASE_CKPT_DIR=YOUR_CHECKPOINT_DIR # 预训练模型目录开始训练
根据任务类型选择不同的训练脚本:
深度估计训练
python script/depth/train.py --config config/train_marigold_depth.yaml法线估计训练
python script/normals/train.py --config config/train_marigold_normals.yaml内在图像分解训练
# 外观分解(反射率、粗糙度、金属度) python script/iid/train.py --config config/train_marigold_iid_appearance.yaml # 光照分解(反射率、漫反射、非漫反射残差) python script/iid/train.py --config config/train_marigold_iid_lighting.yaml恢复训练
如需恢复中断的训练:
python script/depth/train.py --resume_run output/marigold_base/checkpoint/latest📁 项目结构解析
Marigold项目组织清晰,主要目录功能如下:
- config/:包含各类任务的配置文件,如
train_marigold_depth.yaml - data_split/:数据集分割文件,定义训练/验证/测试样本
- marigold/:核心推理代码,如
marigold_depth_pipeline.py - script/:训练和推理脚本,按任务类型组织(depth/iid/normals)
- src/:源代码目录,包含数据集处理、模型定义和工具函数
🔍 评估模型性能
Marigold提供了便捷的评估脚本,可用于不同任务的性能评估:
深度估计评估
bash script/depth/eval/11_infer_nyu.sh # 推理NYU数据集 bash script/depth/eval/12_eval_nyu.sh # 评估预测结果法线估计评估
bash script/normals/eval/11_infer_scannet.sh # 推理ScanNet数据集 bash script/normals/eval/12_eval_scannet.sh # 评估预测结果内在图像分解评估
bash script/iid/eval/11_infer_appearance_interiorverse.sh # 推理外观数据集 bash script/iid/eval/12_eval_appearance_interiorverse.sh # 评估预测结果通过本指南,你已掌握Marigold的核心功能和使用方法。无论是学术研究还是实际应用,Marigold都能为你提供强大的图像分析能力。开始探索这个令人兴奋的扩散模型应用吧!
【免费下载链接】Marigold[CVPR 2024 - Oral, Best Paper Award Candidate] Marigold: Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation项目地址: https://gitcode.com/gh_mirrors/ma/Marigold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
