❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🖨️ 「ZBrush要过时?清华核弹框架把3D建模变『填空题』」
大家好,我是蚝油菜花。你是否也经历过这些建模地狱——
- 👉 为调拓扑通宵改7版,甲方却说"还是第一版好看"
- 👉 点云数据像散沙,手动补面补到视网膜脱落
- 👉 渲染时发现隐藏面穿模,一夜回到解放前...
今天要炸场的 DeepMesh 正在重构3D工作流!这个学术派AI建模神器:
- ✅ 强化学习造面术:DPO算法让每个三角面都长在人类审美点上
- ✅ 点云秒变精模:稀疏扫描数据直接生成ISO标准工业网格
- ✅ 动态拓扑黑科技:自回归变换器实时修正模型,穿模成为历史
已有游戏团队用它3小时做完角色建模,工业设计公司靠它批量处理扫描数据——你的鼠标,是时候从面片地狱中解放了!
🚀 快速阅读
DeepMesh 是一个基于强化学习和自回归变换器的 3D 网格生成框架。
- 核心功能:支持高质量 3D 网格生成、点云条件生成和图像条件生成。
- 技术原理:采用自回归变换器、高效预训练策略和强化学习优化,确保生成的网格既精确又符合人类审美。
DeepMesh 是什么
DeepMesh 是由清华大学和南洋理工大学的研究人员提出的 3D 网格生成框架。它基于强化学习和自回归变换器,能够生成高质量的 3D 网格。通过两项关键创新,DeepMesh 在网格生成的质量和效率上实现了显著提升。
首先,DeepMesh 引入了高效的预训练策略,结合了新型标记化算法和改进的数据处理流程,显著缩短了序列长度,同时保留了几何细节。其次,DeepMesh 采用了直接偏好优化(DPO)的强化学习方法,使生成的网格在几何精度和视觉效果上更符合人类偏好。
DeepMesh 的主要功能
- 高质量 3D 网格生成:DeepMesh 能生成具有丰富细节和精确拓扑结构的 3D 网格,适用于各种复杂的几何形状。
- 点云条件生成:DeepMesh 可以根据输入的点云数据生成对应的 3D 网格,适用于从稀疏点云到密集点云的各种场景。
- 图像条件生成:DeepMesh 支持基于图像的条件生成,能根据输入的 2D 图像生成 3D 网格。
DeepMesh 的技术原理
- 自回归变换器:DeepMesh 采用自回归变换器作为核心架构,包含自注意力层和交叉注意力层,逐步生成网格的面,通过条件输入(如点云或图像)来预测网格的顶点和面。
- 高效预训练策略:DeepMesh 引入了一种改进的标记化算法,通过局部感知的面遍历和块索引坐标编码,显著缩短了序列长度,同时保留了几何细节。
- 强化学习与人类偏好对齐:DeepMesh 引入了直接偏好优化(DPO),通过人工评估和 3D 指标设计评分标准,收集偏好对用于强化学习训练,使生成的网格在几何精度上准确,在视觉效果上更符合人类审美。
- 端到端可微分的网格表示:DeepMesh 支持端到端可微分的网格表示,拓扑可以动态变化,这种可微分性使模型能通过梯度下降进行优化,进一步提升生成网格的质量。
如何运行 DeepMesh
1. 安装
我们的环境已在 Ubuntu 22、CUDA 11.8 上测试,支持 A100、A800 和 A6000 显卡。
克隆仓库并创建 conda 环境:
git clone https://github.com/zhaorw02/DeepMesh.git && cd DeepMesh
conda env create -f environment.yaml
conda activate deepmesh
AI 代码解读
安装预训练模型权重:
pip install -U "huggingface_hub[cli]"
huggingface-cli login
huggingface-cli download zzzrw/DeepMesh --local-dir ./
AI 代码解读
2. 使用
命令行推理
# 生成文件夹中的所有 obj/ply 文件
CUDA_VISIBLE_DEVICES=0 torchrun --nproc-per-node=1 --master-port=12345 sample.py \
--model_path "your_model_path" \
--steps 90000 \
--input_path examples \
--output_path mesh_output \
--repeat_num 4 \
--temperature 0.5 \
# 生成指定的 obj/ply 文件
CUDA_VISIBLE_DEVICES=0 torchrun --nproc-per-node=1 --master-port=22345.py \
--model_path "your_model_path" \
--steps 90000 \
--input_path examples \
--output_path mesh_output \
--repeat_num 4 \
--uid_list "wand1.obj,wand2.obj,wand3.ply" \
--temperature 0.5 \
# 或者使用脚本
bash sample.sh
AI 代码解读
资源
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦