GaussianDreamer进阶技巧使用自定义数据集训练与模型微调【免费下载链接】GaussianDreamer[CVPR 2024] GaussianDreamer: Fast Generation from Text to 3D Gaussians by Bridging 2D and 3D Diffusion Models项目地址: https://gitcode.com/gh_mirrors/ga/GaussianDreamerGaussianDreamer作为CVPR 2024的创新成果是一款基于2D和3D扩散模型桥接技术的快速文本到3D高斯生成工具。本指南将详细介绍如何使用自定义数据集进行训练和模型微调帮助你充分发挥GaussianDreamer的强大功能创建高质量的3D内容。准备工作环境搭建与项目克隆在开始自定义训练之前首先需要确保你的环境已正确配置并克隆项目代码库。克隆项目仓库git clone https://gitcode.com/gh_mirrors/ga/GaussianDreamer cd GaussianDreamer安装依赖项目提供了环境配置文件你可以通过以下命令创建并激活虚拟环境conda env create -f gaussiansplatting/environment.yml conda activate gaussiandreamer自定义数据集准备格式与组织GaussianDreamer支持多种类型的自定义数据输入正确组织数据集是成功训练的关键一步。数据集格式要求图像数据支持常见格式如PNG、JPG分辨率建议不低于512x512。项目示例数据可参考load/images/目录下的文件如firekeeper.jpg1080x1133。深度图可选命名格式为image_name_depth.png如load/images/firekeeper_depth.png。法线图可选命名格式为image_name_normal.png如load/images/firekeeper_normal.png。数据集目录结构推荐的数据集组织方式如下custom_data/ ├── images/ │ ├── image1.png │ ├── image1_depth.png │ ├── image1_normal.png │ ├── image2.png │ └── ... └── prompt_library.json # 可选包含图像对应的文本描述配置文件修改关键参数详解GaussianDreamer的训练参数主要通过YAML配置文件进行设置位于configs/gaussiandreamer-sd.yaml。以下是自定义训练中需要重点调整的参数数据相关配置data_type: random-camera-datamodule # 数据加载类型 data: load_type: ${system.load_type} # 加载类型0: 从形状加载1: 从SMPL模型加载 batch_size: 4 # 批次大小根据GPU内存调整 height: 1024 # 输入图像高度 width: 1024 # 输入图像宽度 eval_camera_distance: 4.0 # 评估相机距离 camera_distance_range: [1.5, 4.0] # 相机距离范围系统与模型配置system_type: gaussiandreamer-system # 系统类型 system: load_type: 0 # 加载类型0: 从形状加载1: 从SMPL模型加载 load_path: ./load/shapes/stand.obj # 加载路径当load_type1时使用 radius: ${data.eval_camera_distance} # 半径 sh_degree: 0 # 球谐函数阶数影响细节表现 prompt_processor: pretrained_model_name_or_path: stabilityai/stable-diffusion-2-1-base # 预训练模型路径 prompt: your custom prompt here # 自定义提示词 negative_prompt: ugly, bad anatomy, blurry... # 负面提示词训练参数配置trainer: max_steps: 1200 # 最大训练步数 log_every_n_steps: 1 # 日志记录间隔 val_check_interval: 100 # 验证间隔 precision: 16-mixed # 精度16-mixed可节省显存 loss: lambda_sds: 1. # SDS损失权重 lambda_sparsity: 1. # 稀疏性损失权重 lambda_opaque: 0.0 # 不透明度损失权重 optimizer: name: Adam # 优化器 args: lr: 0.001 # 学习率 betas: [0.9, 0.99] # Beta参数模型训练从启动到监控完成数据集准备和配置文件修改后即可启动训练过程。启动训练命令python launch.py --config configs/gaussiandreamer-sd.yaml训练过程监控GaussianDreamer提供了多种监控训练进度的方式日志输出训练过程中会实时打印损失值等信息。进度条默认启用进度条显示当前步数和预计剩余时间。验证结果每隔val_check_interval步会保存验证结果到outputs/目录。训练过程中你可以观察到3D高斯模型从初始状态逐步优化的过程。下图展示了一个典型的训练时间对比GaussianDreamer能够在短时间内生成高质量的3D模型GaussianDreamer训练时间对比展示了从初始化到14分钟的模型进化过程模型微调提升特定场景表现微调是优化模型在特定数据集上表现的关键步骤。以下是一些有效的微调策略调整学习率对于微调建议使用较小的学习率如将optimizer.args.lr从0.001调整为0.0001以避免过拟合。增加训练步数如果自定义数据集较大或复杂度较高可以适当增加trainer.max_steps如从1200增加到2000。调整损失权重根据数据集特点调整损失权重例如若生成结果细节不足可增加lambda_sparsity若模型过度拟合可减小lambda_sds优化提示词精心设计的提示词对生成质量至关重要。你可以参考load/prompt_library.json创建适合自己数据集的提示词库。结果评估质量对比与优化训练完成后需要对生成结果进行评估以确定是否需要进一步优化。结果对比GaussianDreamer提供了可视化工具可以对比不同训练阶段的结果。以下是使用默认参数左图和优化参数右图训练得到的结果对比优化参数训练结果细节更清晰纹理更丰富默认参数训练结果存在模糊和细节丢失常见问题与解决方案结果模糊增加sh_degree提高球谐函数阶数或增加训练步数。过拟合减小学习率增加数据多样性或添加正则化项。训练时间过长降低height和width或减小batch_size。高级技巧加速训练与优化显存对于大规模数据集或资源有限的情况以下技巧可以帮助你更高效地进行训练使用混合精度训练配置文件中已默认启用混合精度训练precision: 16-mixed这可以在不损失太多精度的情况下显著减少显存占用。数据预处理对图像进行下采样如将1024x1024降为512x512。使用数据增强如随机旋转、裁剪增加数据多样性。分布式训练如果有多个GPU可以通过以下命令启动分布式训练torchrun --nproc_per_node2 launch.py --config configs/gaussiandreamer-sd.yaml总结打造专属3D模型通过本指南你已经了解了如何使用自定义数据集训练和微调GaussianDreamer模型。从数据集准备、配置文件修改到训练监控和结果优化每一步都至关重要。随着实践的深入你将能够根据自己的需求调整参数生成高质量的3D高斯模型。GaussianDreamer的强大之处在于其快速生成能力即使是复杂的3D模型也能在短时间内完成训练。例如下面的3D雕塑模型仅用7分钟就完成了训练GaussianDreamer仅用7分钟完成的3D雕塑模型训练过程现在是时候动手尝试使用自己的数据集了通过不断调整和优化你将能够充分发挥GaussianDreamer的潜力创造出令人惊艳的3D内容。【免费下载链接】GaussianDreamer[CVPR 2024] GaussianDreamer: Fast Generation from Text to 3D Gaussians by Bridging 2D and 3D Diffusion Models项目地址: https://gitcode.com/gh_mirrors/ga/GaussianDreamer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考