OpenAI新作Shap-e算法使用教程

本文介绍了如何使用OpenAI的Shap-e工具生成3D模型。该工具基于Nerf,通过关键词输入能快速创建模型。文章详细阐述了从项目克隆、环境配置、依赖安装、JupyterNotebook的使用,到Shap-e算法的具体操作,包括模型训练和内存管理问题。此外,还提到了利用谷歌提供的测试环境以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、知识点

  Shap-e是基于nerf的开源生成3d模型方案。它是由如今热火朝天的Open AI公司(chatgpt,Dell-E2)开发、开源的。Shap-e生成的速度非常快,输入关键词即可生成简单模型(限于简单单体模型)。

二、环境

  • PyCharm2023.1.1
  • Python 3.11.3
  • Blender 3.5
  • Windows11

相关环境、软件的安装、配置就不在此文赘述了,本文核心是shap-e算法的使用。

三、安装和使用

1.拉取项目到本地

git clone https://github.com/openai/shap-e.git

在这里插入图片描述

2.安装相关模块依赖

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS D:\shap-e-main> .\venv\Scripts\activate	//激活虚拟venv环境,便于打包项目
(venv) PS D:\shap-e-main> python -V			//确认python版本是否为3.11.x
Python 3.11.3
(venv) PS D:\shap-e-main> pip install -e .	//安装shap-e环境,必须可以访问github.com
Obtaining file:///D:/shap-e-main
  Preparing metadata (setup.py) ... done
Collecting clip@ git+https://github.com/openai/CLIP.git
  Cloning https://github.com/openai/CLIP.git to c:\users\mr.wangxk\appdata\local\temp\pip-install-fgr41dyt\clip_e64fda89d6014713a948df91c66d07cf
  Running command git clone --filter=blob:none --quiet https://github.com/openai/CLIP.git 'C:\Users\Mr.Wangxk\AppData\Local\Temp\pip-install-fgr41dyt\clip_e64fda89d6014713a948df91c66d07cf'
  Resolved https://github.com/openai/CLIP.git to commit a9b1bf5920416aaeaec965c25dd9e8f98c864f16
  Preparing metadata (setup.py) ... done
Requirement already satisfied: filelock in c:\users\mr.wangxk\appdata\local\programs\python\python311\lib\site-packages (from shap-e==0.0.0) (3.12.0)
Collecting Pillow
  Downloading Pillow-9.5.0-cp311-cp311-win_amd64.whl (2.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 1.5 MB/s eta 0:00:00
Collecting torch
  Downloading torch-2.0.1-cp311-cp311-win_amd64.whl (172.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.3/172.3 MB 3.3 MB/s eta 0:00:00
Collecting fire
  Downloading fire-0.5.0.tar.gz (88 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.3/88.3 kB 5.2 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting humanize
  Downloading humanize-4.6.0-py3-none-any.whl (109 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 110.0/110.0 kB 3.2 MB/s eta 0:00:00
Collecting requests
  Downloading requests-2.30.0-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.5/62.5 kB 3.3 MB/s eta 0:00:00
Collecting tqdm
  Downloading tqdm-4.65.0-py3-none-any.whl (77 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.1/77.1 kB 4.5 MB/s eta 0:00:00
Collecting matplotlib
  Downloading matplotlib-3.7.1-cp311-cp311-win_amd64.whl (7.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.6/7.6 MB 5.2 MB/s eta 0:00:00
Collecting scikit-image
....

**如果没有科学上网则会报错如下:**
在这里插入图片描述

如上所示显示Successfully环境就安装完成了。

3.安装、配置jupyter notebook

(venv) PS D:\shap-e-main> pip install notebook 

在这里插入图片描述
配置jupyter模型存放路径:

(venv) PS D:\shap-e-main> jupyter notebook --generate-config                                                                       
Overwrite C:\Users\Mr.Wangxk\.jupyter\jupyter_notebook_config.py with default config? [y/N]y
Writing default config to: C:\Users\Mr.Wangxk\.jupyter\jupyter_notebook_config.py

因为我已经生成了所以提示是否覆盖

根据提示的配置文件路径打开jupyter_notebook_config.py配置文件:

# 找到 c.NotebookApp.notebook_dir = 更改路径
...
c.NotebookApp.notebook_dir = 'D:/shap-e-main/models'
...

在这里插入图片描述

保存并重启jupyter即可生效。

4.Shap-e算法使用

  OpenAI不愧是大厂,非常的贴心,在项目目录下已经为我们准备好了代码案例,可直接复制使用。三个代码案例文件说明如下:

  • sample_text_to_3d.ipynb - 对 3D 模型进行采样,以文本提示为条件。
  • sample_image_to_3d.ipynb - 对 3D 模型进行采样,以合成视图图像为条件。为了获得最佳效果,您应该从输入图像中删除背景。
  • encode_model.ipynb - 加载 3D 模型或三网格,创建一批多视图渲染和点云,将它们编码为潜在,然后渲染回来。为此,请安装 Blender 版本 3.3.1 或更高版本,并将环境变量设置为 Blender 可执行文件的路径。BLENDER_PATH
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

说明:

  图中代码左侧的In 1、In 2、In 3...是代码块运行成功的标志,In _为等待运行,且正在运行的代码块地底边框会有蓝色动态光条,每个代码块底部还有执行时间戳、耗时统计。In 3代码块回去下载并加载transmittertext300M模型,大概3GB左右,所以比较费时间,博主为了节省时间已提前下载好,如有需要的伙伴评论留言即可。

load_model含义:

  xm = load_model('transmitter', device=device)这行代码的作用是加载名为 “transmitter” 的模型,并将其放在指定的设备上(例如 CPU 或 GPU)。具体而言,它使用 PyTorch 中的 load_model 函数来加载预先训练好的模型,并返回一个 nn.Module 对象。你可以使用这个对象来进行推理或微调训练。注意,在运行这行代码之前,你需要先定义 device 变量并将其设置为你想要使用的设备。

关键参数:

batch_size:训练模型数量
guidance_scale:模型尺寸
prompt:描述模型形状

由于电脑配置原因训练模型需要四个小时…
在这里插入图片描述
训练完后会在代码块下放显示,也可网页查看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RuntimeError: [enforce fail at …\c10\core\impl\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 47185920 bytes.
由于内存不足无法继续训练其余三个模型了…

别担心,谷歌给我们提供了shap-e测试页面:https://colab.research.google.com/drive/1XvXBALiOwAT5-OaAD7AygqBXFqTijrVf?usp=sharing&pli=1#scrollTo=iSN7AXg2eeW3

5.谷歌Shap-e测试页面使用

我们只需要跟着步骤一步步执行即可
在这里插入图片描述

左侧:测试服务器目录,可以利用测试服务器训练完模型并下载到本地,很方便。
右侧:测试服务器的性能信息实时监控。
中间:代码执行操作以及结果展示区域。

继续训练咱们的shark模型,可以看到训练模型只需要1分钟左右!模型下载也很快!
在这里插入图片描述
以下四个模型训练完毕:
在这里插入图片描述
生成模型文件ply,并下载模型文件
在这里插入图片描述

可以看到谷歌提供的免费shap-e测试环境很棒,37秒完成了我笔记本四个小时训练的效果!(我笔记本8核16G,2G独显)

将文件导入blender
在这里插入图片描述
在这里插入图片描述

导入前选中初始模型安del键将其删除

在这里插入图片描述
在这里插入图片描述
选择旋转功能可拖拽中心球体进行360°旋转查看。(模型不带颜色)
在这里插入图片描述

四、结束语

  本次Shap-e算法的使用教程就到此结束了,后期会给大家带来更深层次应用,感谢认真读完,如果觉得还可以,那么给作者点赞、收藏、关注吧!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cs阿坤dn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值