Latent-NeRF によるテキストからの3D生成を試す
「Latent-NeRF」によるテキストからの3D生成を試したので、まとめてみました。
前回
1. Latent-NeRF
「Latent-NeRF」は、テキストから3Dを生成する手法です。3D形状とテクスチャの形状誘導の機能で、よりイメージ通りの3Dモデルを生成できるようになりました。「stable-dreamfusion」と「text2mesh」をベースにしています。
2. Latent-NeRFのインストール
ColabへのLatent-NeRFのインストール方法は、次のとおりです。
(1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」に「GPU」を選択。
自分は高速化のために「Colab Pro」の「プレミア」を使いました。
(2) GPUの確認。
# GPUの確認
!nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 A100-SXM4-40GB Off | 00000000:00:04.0 Off | 0 |
| N/A 42C P0 44W / 400W | 0MiB / 40536MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
(3) MiniCondaのインストール。
Python 3.9のものを利用しました。
# MiniCondaのインストール
%%bash
MINICONDA_INSTALLER=Miniconda3-py39_4.9.2-Linux-x86_64.sh
MINICONDA_DOWNLOAD_HP=https://repo.anaconda.com/miniconda
MINICONDA_PREFIX=/usr/local
wget $MINICONDA_DOWNLOAD_HP/$MINICONDA_INSTALLER
chmod +x $MINICONDA_INSTALLER
./$MINICONDA_INSTALLER -b -f -p $MINICONDA_PREFIX
(4) 「Latent-NeRF」のインストール。
# Latent-Nerfのインストール
!git clone https://github.com/eladrich/latent-nerf
%cd latent-nerf
!pip install -r requirements.txt
(5) パッケージのインストール。
# パッケージのインストール
!pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
!pip install --upgrade numpy
!pip install imageio[ffmpeg]
!pip install imageio[pyav]
(6) iglのインストール。
シェイプガイドによる3Dモデル生成 (latent_nerf.pyのshape_path付き) で必要になります。
# iglのインストール
!conda install -c conda-forge igl
(7) kaolinのインストール。
テクスチャ生成 (latent_paint.py) で必要になります。
# kaolinのインストール
!pip install git+https://github.com/NVIDIAGameWorks/kaolin
(8) HuggingFaceのログイン。
# HuggingFaceにログイン
!huggingface-cli login
3. 3Dモデルの生成
3Dモデルの生成 (Sketch-Guided Latent-NeRF) の手順は、次のとおりです。
(1) latent_nerf.pyを実行。
5000ステップにA100で40分ほどかかりました。
# 3Dモデルの生成
!python -m scripts.train_latent_nerf --config_path demo_configs/latent_nerf/lego_man.yaml
引数は、lego_man.yamlに記述されてます。
・lego_man.yaml
log:
exp_name: 'lego_man'
guide:
text: 'a lego man'
shape_path: shapes/teddy.obj
optim:
iters: 5000
seed: 10
render:
nerf_type: 'latent'
(2) 「latent-nerf/experiments/lego_man/results」の出力を確認。
4. テクスチャの生成
テクスチャの生成 (Latent-Paint) の手順は、次のとおりです。
(1) latent_paint.pyの実行。
5000ステップにA100で13分ほどかかりました。
# テクスチャの生成
!python -m scripts.train_latent_paint --config_path demo_configs/latent_paint/nascar.yaml
引数は、nascar.yamlに記述されてます。
・nascar.yaml
log:
exp_name: 'nascar'
guide:
text: 'a next gen nascar'
shape_path: shapes/nascar.obj
shape_scale: 0.6
render:
backbone: 'texture-mesh'
(2) 「latent-nerf/experiments/nascar/results」の出力を確認。
Unityに配置するとこんな感じです。
次回
この記事が気に入ったらサポートをしてみませんか?