はじめに
この記事は、画像から3Dモデルを生成するためのソフトウェアであるWonder3Dの使用方法について説明していきます。これを理解するために、いくつかのソフトウェア開発ツールやプログラミング知識が必要となりますが、できる限りわかりやすく解説していきます。
記事の概要
- Wonder3D :画像から3Dモデルを生成するツール。
- VSCode2019 :コーディングを行うためのエディター(開発環境)。
- Python 、Conda 、pip :プログラミング言語およびパッケージ管理ツール。
このプロセスは、以下のステップに分けられます。
- 準備 :開発環境のセットアップ。
- 環境構築 :必要なライブラリのインストール。
- 画像の準備 :使用する画像を準備します。
- 多視点画像の生成 :3Dモデル化するための多角度からの画像を生成します。
- メッシュの生成 :生成した画像から3Dのメッシュモデルを生成します。
それでは、各ステップを詳細に見ていきましょう。
こちらの記事もおすすめ
準備
VSCode2019のインストール
VSCode(Visual Studio Code)は、プログラムを書くためのエディターです。C++ワークロード はC++言語での開発に必要なツールとライブラリのセットです。
VSCodeのインストール手順 (Windowsの場合):
- Visual Studioの公式サイト からVisual Studio 2019をダウンロードします。
- ダウンロードしたインストーラを開き、インストールを進めます。
- 「C++を使ったデスクトップ開発」を選択して、C++関連の開発環境をインストールします。
'where', 'cl'コマンドの確認
環境変数にパスを通しておきます。
コマンドプロンプト で以下のコマンドを実行して、C++のコンパイラcl.exe
の場所を確認します。
where cl
このコマンドを実行すると、以下のような出力が表示されるはずです。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe
環境構築
このステップでは、Pythonとそのライブラリをインストールします。CondaはPythonの環境管理ツールで、異なるプロジェクトに異なるPythonの環境を作ることができます。これは、ライブラリ間のバージョン衝突を避けるのに役立ちます。
Conda環境の作成
conda create --name venv_wonder3d python=3.8 -y
これにより、venv_wonder3d
という名前のPython 3.8の仮想環境が作成されます。
ライブラリのインストール
以下のコマンドを実行して、必要なライブラリをインストールします。
conda activate venv_wonder3d
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install fire diffusers==0.19.3 transformers bitsandbytes accelerate gradio rembg segment_anything
pip install einops omegaconf pytorch-lightning==1.9.5 torch_efficient_distloss nerfacc==0.3.3 PyMCubes trimesh
pip install https://download.pytorch.org/whl/cu118/xformers-0.0.22.post4%2Bcu118-cp38-cp38-manylinux2014_x86_64.whl
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
画像の準備
このステップではDALL-E 3というAIを用いて画像を生成しますが、記事の内容には具体的なコマンドが記載されていません。従って、ここでは事前に生成された画像(例えばcat2.png
)を使うことにします。
多視点画像の生成
多視点画像を生成するためには、まず設定ファイルmvdiffusion-joint-ortho-6views.yaml
を編集して、使用する画像の情報を更新します。
設定ファイルの編集 :
filepaths: ['cat2.png'] # 画像のファイル名をここに記入します。
pretrained_model_name_or_path: 'lambdalabs/sd-image-variations-diffusers'
pretrained_unet_path: './ckpts/'
revision: null
validation_dataset:
root_dir: "./example_images" # the folder path stores testing images
num_views: 6
bg_color: 'white'
img_wh: [256, 256]
num_validation_samples: 1000
crop_size: 192
filepaths: ['cat.png'] # the test image names. leave it empty, test all images in the folder
save_dir: 'outputs/'
pred_type: 'joint'
seed: 42
validation_batch_size: 1
dataloader_num_workers: 64
local_rank: -1
pipe_kwargs:
camera_embedding_type: 'e_de_da_sincos'
num_views: 6
validation_guidance_scales: [3.0]
pipe_validation_kwargs:
eta: 1.0
validation_grid_nrow: 6
unet_from_pretrained_kwargs:
camera_embedding_type: 'e_de_da_sincos'
projection_class_embeddings_input_dim: 10
num_views: 6
sample_size: 32
zero_init_conv_in: false
zero_init_camera_projection: false
num_views: 6
camera_embedding_type: 'e_de_da_sincos'
enable_xformers_memory_efficient_attention: true
多視点画像の生成コマンド :
accelerate launch --config_file 1gpu.yaml test_mvdiffusion_seq.py --config E:/Prj/Wonder3D_mesh/Wonder3D/configs/mvdiffusion-joint-ortho-6views.yaml
これを実行すると、指定したcat2.png
に基づいた複数の視点からの画像が生成されて、Wonder3D\outputs\cropsize-192-cfg3.0\cat2
ディレクトリに保存されます。
メッシュの生成
最後に、以下のコマンドを使って、生成された多視点画像から3Dモデル(メッシュ)を生成します。
python exp_runner.py --mode train --conf ./confs/wmask.conf --case cat2 --data_dir E:/Prj/Wonder3D_mesh/Wonder3D/outputs/cropsize-192-cfg3.0
このスクリプトを実行すると、Wonder3D\NeuS\exp\neus\cat2\meshes
ディレクトリにメッシュファイルが生成されます。
コメント