Wonder3Dを用いて画像から3Dモデル生成

Python

はじめに

この記事は、画像から3Dモデルを生成するためのソフトウェアであるWonder3Dの使用方法について説明していきます。これを理解するために、いくつかのソフトウェア開発ツールやプログラミング知識が必要となりますが、できる限りわかりやすく解説していきます。

記事の概要

  • Wonder3D :画像から3Dモデルを生成するツール。
  • VSCode2019 :コーディングを行うためのエディター(開発環境)。
  • PythonCondapip :プログラミング言語およびパッケージ管理ツール。

このプロセスは、以下のステップに分けられます。

  1. 準備 :開発環境のセットアップ。
  2. 環境構築 :必要なライブラリのインストール。
  3. 画像の準備 :使用する画像を準備します。
  4. 多視点画像の生成 :3Dモデル化するための多角度からの画像を生成します。
  5. メッシュの生成 :生成した画像から3Dのメッシュモデルを生成します。

それでは、各ステップを詳細に見ていきましょう。


こちらの記事もおすすめ

CG制作もChatGPTでワンパン~BlenderとChatGPTを活用して簡単にオーディオビジュアル(オーディオスペクトラム)を作成しよう!~
はじめにBlender とChatGPT の組み合わせて、あっと驚く簡単さでオーディオビジュアルを作る方法を学びましょう!初心者の方でも分かりやすく解説していきますので、ぜひ最後までご覧ください。解説動画 @maki.sunwood.ai...
【作曲AI】AIを使って曲を作成しよう!【suno.ai】
はじめにこんにちは!今回は、AIを使って曲を作る方法をご紹介します。従来のBGMのようなものだけでなく、人の声が入った曲も作れる時代になりました。興味を持った方は、以下の手順に従って一緒に挑戦してみましょう!解説動画 @maki.sunw...

準備

VSCode2019のインストール

VSCode(Visual Studio Code)は、プログラムを書くためのエディターです。C++ワークロード はC++言語での開発に必要なツールとライブラリのセットです。

VSCodeのインストール手順 (Windowsの場合):

  1. Visual Studioの公式サイト からVisual Studio 2019をダウンロードします。
  2. ダウンロードしたインストーラを開き、インストールを進めます。
  3. 「C++を使ったデスクトップ開発」を選択して、C++関連の開発環境をインストールします。

file

'where', 'cl'コマンドの確認

環境変数にパスを通しておきます。

file

コマンドプロンプト で以下のコマンドを実行して、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ディレクトリに保存されます。

file

メッシュの生成

最後に、以下のコマンドを使って、生成された多視点画像から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ディレクトリにメッシュファイルが生成されます。

file

使用したリポジトリ

GitHub - xxlong0/Wonder3D: Single Image to 3D using Cross-Domain Diffusion for 3D Generation
Single Image to 3D using Cross-Domain Diffusion for 3D Generation - xxlong0/Wonder3D

コメント

タイトルとURLをコピーしました