DSO:牛津大学公布的符合物理规律的3D模型优化框架项目
DSO是什么?
DSO(Direct Simulation Optimization)是牛津大学公布的一种用于提升图像到3D模型生成器(如TRELLIS)的方法,通过直接模拟优化来增强生成的3D对象在物理模拟和现实世界中的稳定性。它无需在测试时增加额外成本,能在短时间内生成可站立的3D对象。
DSO功能特征
提升3D模型稳定性:解决了传统生成器无法生成在重力下可站立的3D对象的问题,显著提高了生成3D对象在物理模拟和3D打印时的稳定性。
高效性:在测试时不会增加额外成本,生成稳定3D对象的速度以秒计。
兼容性:基于现有的图像到3D模型生成器(如TRELLIS)进行优化,能够与之无缝衔接,充分利用其原有的功能和优势。
提供预训练模型:提供了两种预训练模型检查点,分别通过直接偏好优化(DPO)和直接奖励优化(DRO)训练,方便用户快速上手使用。
DSO应用场景
3D打印:生成的3D模型更有可能在实际打印后能够稳定站立,减少了因模型不稳定导致的打印失败或需要额外支撑结构的情况,提高了3D打印的成功率和实用性。
虚拟现实与增强现实:在虚拟环境中创建更加真实、稳定的3D对象,提升用户体验,例如在虚拟场景中放置的物体能够按照物理规律稳定存在。
游戏开发:为游戏中的3D模型生成提供更符合物理规则的解决方案,使游戏中的物体在重力等物理因素作用下表现更加自然,增强游戏的真实感和沉浸感。
建筑设计与工业设计:帮助设计师快速生成符合物理稳定性的3D模型原型,进行初步的设计评估和验证,减少因稳定性问题导致的设计修改和迭代次数。
DSO使用教程
1. 安装依赖:
安装TRELLIS依赖,创建Python环境并安装指定版本的PyTorch及相关依赖库,运行脚本安装其他相关库,最后安装Kaolin库。
安装剩余依赖,通过pip install -r requirements.txt命令安装。
2. 下载预训练模型:通过git lfs install和git clone命令下载DPO和DRO训练的预训练模型。
3. 快速开始生成:使用example.py脚本,加载预训练模型和输入图像,通过TrellisImageTo3DPipeline进行预处理和生成操作,最后将生成的模型导出为GLB格式。
4. 评估:
下载评估数据集。
使用训练好的检查点生成3D模型。
计算稳定性和几何度量。
5. 训练:
生成合成训练数据,包括获取图像、生成3D模型以及添加模拟反馈并保存物理合理性分数。
启动训练作业,指定数据目录并运行finetune.py脚本。
Github地址:https://github.com/RuiningLi/dso