当前位置: 首页 > article >正文

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/MarigoldMarigold是一个革命性的计算机视觉项目它重新利用预训练的扩散图像生成器进行单目深度估计、表面法线预测和内在图像分解。这篇开发者手册将深入解析Marigold的训练代码架构、自定义扩展方法和最佳实践帮助你充分利用这个强大的框架。 Marigold训练架构概述Marigold的核心思想是利用预训练的Stable Diffusion模型中的丰富视觉知识通过微调将其重新用于密集图像分析任务。训练代码位于script/depth/train.py、script/normals/train.py和script/iid/train.py分别对应深度估计、表面法线和内在图像分解任务。训练流程核心组件配置系统基于OmegaConf的YAML配置文件如config/train_marigold_depth.yaml数据集架构基础数据集类位于src/dataset/base_depth_dataset.py训练器实现核心训练逻辑在src/trainer/marigold_depth_trainer.pyPipeline组件推理和训练管道在marigold/marigold_depth_pipeline.py️ 训练代码结构解析1. 训练配置详解Marigold使用模块化的配置文件系统。每个任务都有对应的训练配置文件深度估计config/train_marigold_depth.yaml表面法线config/train_marigold_normals.yaml内在图像分解config/train_marigold_iid_appearance.yaml配置文件采用分层设计通过base_config引用基础配置base_config: - config/logging.yaml - config/wandb.yaml - config/dataset_depth/dataset_train.yaml - config/dataset_depth/dataset_val.yaml - config/dataset_depth/dataset_vis.yaml - config/model_sdv2.yaml2. 数据集自定义指南Marigold支持多种数据集所有数据集都继承自基础类。要添加自定义数据集需要创建数据集类继承相应的基础类深度估计继承BaseDepthDataset表面法线继承BaseNormalsDataset内在图像分解继承BaseIIDDataset实现核心方法def __getitem__(self, index): # 加载RGB图像 # 加载对应的标注深度/法线/内在分解 # 应用数据增强 # 返回标准化后的数据注册数据集在src/dataset/init.py中添加导入3. 训练器工作原理Marigold训练器的核心在src/trainer/marigold_depth_trainer.py中实现。关键步骤包括模型适配修改U-Net的输入通道数优化器配置使用Adam优化器学习率3e-5损失函数默认使用MSE损失噪声调度使用DDPM调度器进行训练图Marigold深度估计流程展示 - 从原始图像到深度热力图再到3D点云 自定义扩展实战指南1. 添加新的训练任务要添加新的训练任务需要创建新的Pipeline类继承自MarigoldDepthPipeline实现训练器参考src/trainer/marigold_depth_trainer.py配置训练脚本创建新的训练脚本和配置文件2. 修改模型架构Marigold允许修改U-Net架构以适应不同任务。关键修改点# 在训练器中修改输入通道 def _replace_unet_conv_in(self): # 修改U-Net的第一层卷积以适应不同输入 conv_in Conv2d( 8, # 新输入通道数 self.model.unet.config[block_out_channels][0], kernel_size3, padding1, ) self.model.unet.conv_in conv_in3. 数据预处理自定义数据预处理配置在数据集配置文件中。例如深度估计的数据集配置位于config/dataset_depth/dataset_train.yamldataset: train: name: mixed prob_ls: [0.9, 0.1] dataset_list: - name: hypersim_depth disp_name: hypersim_depth_train dir: hypersim/hypersim_processed_train.tar filenames: data_split/hypersim_depth/filename_list_train_filtered.txt resize_to_hw: - 480 - 640 训练最佳实践1. 环境设置确保正确设置环境变量export BASE_DATA_DIRYOUR_DATA_DIR export BASE_CKPT_DIRYOUR_CHECKPOINT_DIR2. 数据准备不同任务需要不同的数据集深度估计Hypersim和Virtual KITTI 2表面法线Hypersim、Interiorverse和Sintel内在图像分解Interiorverse外观模型和Hypersim光照模型3. 训练命令启动训练的基本命令# 深度估计 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.yaml4. 恢复训练从检查点恢复训练python script/depth/train.py --resume_run output/marigold_base/checkpoint/latest 调试和优化技巧1. 验证和可视化训练过程中定期进行验证和可视化validation: denoising_steps: 1 ensemble_size: 1 processing_res: 0 match_input_res: false resample_method: bilinear2. 学习率调度使用指数衰减学习率调度lr_scheduler: name: IterExponential kwargs: total_iter: 25000 final_ratio: 0.01 warmup_steps: 1003. 多分辨率噪声增强训练稳定性的多分辨率噪声multi_res_noise: strength: 0.9 annealed: true downscale_strategy: original 评估和部署1. 模型评估使用评估脚本评估模型性能# 深度估计 bash script/depth/eval/11_infer_nyu.sh bash script/depth/eval/12_eval_nyu.sh2. 检查点组合训练后组合检查点将训练输出中的unet文件夹替换到Marigold检查点中替换scheduler/scheduler_config.json文件3. 集成到DiffusersMarigold已集成到Hugging Face Diffusers库可以直接使用from diffusers import MarigoldDepthPipeline pipeline MarigoldDepthPipeline.from_pretrained(prs-eth/marigold-depth-v1-1) 高级自定义技巧1. 自定义损失函数在src/util/loss.py中添加自定义损失函数def custom_loss(pred, target, **kwargs): # 实现自定义损失逻辑 return loss_value2. 数据增强策略在配置文件中调整数据增强参数augmentation: lr_flip_p: 0.5 # 添加更多增强策略3. 混合数据集采样使用MixedBatchSampler实现多数据集混合训练。 实用建议和注意事项硬件要求建议使用至少24GB显存的GPU进行训练训练时间完整训练通常需要2-3天数据格式确保数据格式与现有数据集保持一致版本兼容性注意PyTorch和Diffusers库的版本兼容性内存优化使用梯度累积处理大批量数据通过这篇开发者手册你应该对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),仅供参考

相关文章:

Marigold开发者手册:深入理解训练代码和自定义扩展

Marigold开发者手册:深入理解训练代码和自定义扩展 【免费下载链接】Marigold [CVPR 2024 - Oral, Best Paper Award Candidate] Marigold: Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation 项目地址: https://gitcode.com/gh_mirr…...

cool-admin(midway版)数据权限过滤:实现方案与对比

cool-admin(midway版)数据权限过滤:实现方案与对比 【免费下载链接】cool-admin-midway 🔥 cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 3.x、typescri…...

Tencent Hunyuan3D-1.0虚幻引擎集成:从生成模型到游戏资产的完整工作流

Tencent Hunyuan3D-1.0虚幻引擎集成:从生成模型到游戏资产的完整工作流 【免费下载链接】Hunyuan3D-1 腾讯开源的Hunyuan3D-1项目,创新提出两阶段3D生成方法,实现快速、高质量的文本到3D和图像到3D转换,融合Hunyuan-DiT模型&#…...

Graphormer效果可视化:预测结果置信度热力图与分子原子重要性归因展示

Graphormer效果可视化:预测结果置信度热力图与分子原子重要性归因展示 1. 模型概述 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M等分子…...

SiameseAOE模型效果展示:支持否定修饰‘不清晰’‘不太耐用’‘几乎没有售后’准确识别

SiameseAOE模型效果展示:支持否定修饰‘不清晰’‘不太耐用’‘几乎没有售后’准确识别 1. 引言:当AI学会“听”懂弦外之音 想象一下,你正在浏览一款新手机的电商评论。一条评论写道:“手机拍照效果不错,但屏幕不太耐…...

Local Moondream2一键部署方案:省去依赖冲突的烦恼快速运行

Local Moondream2一键部署方案:省去依赖冲突的烦恼快速运行 1. 项目介绍 Local Moondream2 是一个基于 Moondream2 模型构建的超轻量级视觉对话 Web 界面。它能让你的电脑真正拥有"眼睛",可以对上传的图片进行智能分析。 这个工具的核心功能…...

像素剧本圣殿效果展示:生成含镜头切换提示与音效标注的专业脚本

像素剧本圣殿效果展示:生成含镜头切换提示与音效标注的专业脚本 1. 专业剧本创作新体验 在影视创作领域,剧本质量直接影响最终作品的表现力。传统剧本创作往往需要编剧反复推敲场景转换、镜头语言和音效设计,这个过程既耗时又需要丰富的专业…...

Pixel Aurora Engine作品集:基于大气/明亮/交互哲学的100+原创像素图

Pixel Aurora Engine作品集:基于大气/明亮/交互哲学的100原创像素图 1. 像素极光引擎概览 Pixel Aurora Engine是一款专为像素艺术创作设计的AI绘图工作站。它采用复古游戏机风格的界面设计,将现代AI技术与经典8-bit美学完美融合。通过简单的文字描述&…...

代码随想录 300.最长递增子序列

思路:根据题意得,子序列是由数组派生而来的序列,删除(或不删除)数组中的元素不改变其余元素的顺序。动规五部曲:1.dp[i]的定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。2.确…...

CentOS7 无法输入中文 CentOS7 中文输入法设置

一、问题描述 安装完 CentOS7 后,不能输入中文,按 WIN空格 也无法切换到中文输入法 二、解决方案 右键桌面 -> 打开终端(E) -> 执行命令 ibus-setup -> 输入法 -> 添加(A) -> 汉语 -> Intelligent Pinyin -> 添加(A) ibus-setup&am…...

Vibe coding对程序员的影响

一、深化核心能力数学与算法基础掌握离散数学、概率论等基础理论熟练应用动态规划、图论等算法范式示例:优化算法时间复杂度 O(n\log n)--O(n)系统设计能力理解计算机组成原理与操作系统机制构建高可用分布式系统(如CAP定理)二、适应技术演进…...

yz-bijini-cosplay效果惊艳展示:高精度布料褶皱、金属反光、发丝细节呈现

yz-bijini-cosplay效果惊艳展示:高精度布料褶皱、金属反光、发丝细节呈现 基于通义千问Z-Image底座与yz-bijini-cosplay专属LoRA的RTX 4090专属Cosplay风格文生图系统,为Cosplay创作带来了革命性的突破。这个系统不仅支持LoRA动态无感切换和多训练步数版…...

雯雯的后宫-造相Z-Image-瑜伽女孩真实案例分享:10组高质量瑜伽体式生成效果展示

雯雯的后宫-造相Z-Image-瑜伽女孩真实案例分享:10组高质量瑜伽体式生成效果展示 1. 效果展示前言 今天给大家分享一个特别实用的AI工具——雯雯的后宫-造相Z-Image-瑜伽女孩模型。这是一个专门生成瑜伽女孩图片的AI模型,基于Z-Image-Turbo的lora版本训…...

2 轻量设备鸿蒙应用开发极简流程 | 鸿蒙开发筑基实战

轻量设备鸿蒙应用开发极简流程 | 鸿蒙开发筑基实战 作者:杨建宾(华夏之光永存) 摘要 本文面向鸿蒙轻量设备(HiSpark系列、穿戴设备、IoT终端)开发者,拆解从工程创建到上线的全流程。聚焦轻量设备硬件资源有…...

避坑指南:R语言中XGBoost回归建模的5个常见错误与SHAP分析的正确姿势

避坑指南:R语言中XGBoost回归建模的5个常见错误与SHAP分析的正确姿势 在数据科学领域,XGBoost因其出色的预测性能而广受欢迎,而SHAP(Shapley Additive Explanations)则为模型解释提供了强大的数学基础。然而&#xff0…...

告别随机色!YOLOv7检测框颜色固定与高级样式自定义全攻略(从PIL到OpenCV)

YOLOv7检测框样式深度定制:从颜色固化到多语言字体支持实战 在计算机视觉项目的实际部署中,检测框的可视化效果往往直接影响最终用户体验。YOLOv7作为当前主流的目标检测框架,其默认的随机颜色分配和有限的字体支持可能无法满足专业场景需求。…...

飞浆PaddleOCR实战:5分钟实现图片转文字+表格识别(Python代码可直接套用)

飞桨PaddleOCR极速入门:零基础实现高精度图片转文字与表格解析 在数字化办公和智能信息处理的大背景下,光学字符识别(OCR)技术正成为提升工作效率的利器。想象一下,当面对堆积如山的纸质文档、会议白板照片或是复杂的财…...

WarcraftHelper兼容性技术方案:让经典游戏在现代系统重生的实战指南

WarcraftHelper兼容性技术方案:让经典游戏在现代系统重生的实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 1. 兼容性问题的技术根…...

告别Cline!用Roo Code在VSCode里打造你的专属AI编程搭档(附扫雷游戏实战)

从Cline到Roo Code:VSCode智能编程助手的进化实战 如果你曾经使用过Cline这类AI编程助手,可能会对它们提供的代码补全和简单问答功能感到满意。但当项目复杂度上升时,这些基础功能往往显得力不从心。这就是为什么越来越多的开发者开始转向Roo…...

C语言完美演绎6-17

/* 范例&#xff1a;6-17 */#include <stdio.h>#include <conio.h>int main(){int a;printf("请输入你的分数(0-100)");scanf("%d",&a);if(a>0) if(a<100) printf("你输入的分数…...

C语言完美演绎6-16

/* 范例&#xff1a;6-16 */#include <stdio.h> #include <conio.h>void main(){/* 这是一个if的程序递归*/ int a;printf("请输入一值");scanf("%d",&a);if(a>5) /* 将if (a>5) 的statement展开成为以下statement区块&#xff0c;…...

Nunchaku FLUX.1-dev效果展示:4步生成惊艳图片案例分享

Nunchaku FLUX.1-dev效果展示&#xff1a;4步生成惊艳图片案例分享 你是否曾经被AI生成图片的漫长等待时间所困扰&#xff1f;传统文生图模型往往需要20步以上的推理才能获得理想效果&#xff0c;而今天我要展示的Nunchaku FLUX.1-dev模型&#xff0c;仅需4步就能生成令人惊艳…...

【Linux复习】:基础指令/常用工具

基础指令 目录相关 pwd 打印当前所在路径ls 列出目录内容 ls # 简单列表 ls -l # 详细信息&#xff08;权限、大小、时间&#xff09; ls -a # 显示隐藏文件 ls -la # 详细 隐藏 ls -lt # 按时间排序cd 切换目录 cd /home # 绝对路径 cd .. …...

[项目名称]:简洁有力的项目描述

[项目名称]&#xff1a;简洁有力的项目描述 【免费下载链接】InstantID 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/InstantID [简短的项目介绍&#xff0c;前100字内包含核心关键词] ✨ 核心特性 特性1&#xff1a;简要描述特性2&#xff1a;简要描述特…...

商城首页小程序源码 购物商场小程序系统 开源商城系统 基于H5小程序Uniapp开发

【核心功能】 – 前端小程序&#xff1a;uniapp 1、顶部自定义透明导航 2、搜索框 3、动态轮播图 4、动态分类导航 5、动态通知提醒 6、宫格商品列表 7、列表上滑预加载 8、底部导航 – 系统架构&#xff1a;uniapp&#xff0c;代码规范 – 适合懂uniapp的朋友使用 …...

Godot引擎资源提取完全指南:从PCK文件到资产复用的技术实践

Godot引擎资源提取完全指南&#xff1a;从PCK文件到资产复用的技术实践 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 技术挑战速览 核心问题解决方案预览技术价值如何识别有效PCK文件&#xff1f…...

2025届学术党必备的十大AI科研方案推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下的学术与内容创作范畴之内&#xff0c;对于AI生成文本的检测变得越发严格起来。降AI率…...

mPLUG-Owl3-2B多模态推理优化教程:FP16加载+SDPA注意力提速实测

mPLUG-Owl3-2B多模态推理优化教程&#xff1a;FP16加载SDPA注意力提速实测 1. 开篇&#xff1a;为什么需要优化多模态推理&#xff1f; 如果你尝试过在个人电脑上运行多模态AI模型&#xff0c;很可能遇到过这些问题&#xff1a;显存不足导致程序崩溃、推理速度慢得让人着急、…...

系统整体设计方案

业务架构设计项目架构图业务流程设计文档向量整个流程从用户上传文档开始&#xff0c;用户通过前端页面选择文档并设置相关的组织标签和可见信后系统开始接收文档。这个阶段的关键是建立文档的基本记录信息&#xff0c;包括文件的Md5哈希值文件原始名文件大小上传用户等信息。系…...

安防弱电智能化VISIO图例实战指南:从入门到精通的设计技巧

1. VISIO在安防弱电设计中的核心价值 第一次接触安防弱电智能化设计时&#xff0c;我被各种复杂的系统连接关系搞得头晕眼花。直到发现VISIO这个神器&#xff0c;才真正体会到什么叫"一图胜千言"。不同于普通CAD软件&#xff0c;VISIO最大的优势在于它专为系统图设计…...