TripoSR を試してみた
TripoSRのご紹介:単一画像からの高速3Dオブジェクト生成
stablity ai より、1 枚の写真から 3D オブジェクトを生成するモデルがリリースされたので、試してみます。
写真から 3D オブジェクトを生成するのは「フォトグラメトリ」と呼ばれて、従来から存在していました。ただ、3D モデルを生成するには各方向から撮影した、それなりの枚数の写真が必要なのが難点でした。TripoSR は生成 AI を使って、1 枚の写真でオブジェクトの形状や、写真には写っていない部分を推測していると思われます。そのため、写真によっては形状が破綻していたりすることがありますが、作成したオブジェクトをアプリケーションに読み込ませて編集することもできるので、手軽に 3D モデル化できるという点は魅力に感じました。
GeForce RTX 2070 を使用していますが、モデルの生成は数秒で完了します。環境の構築もそれほど時間はかからないので、かなり手軽に試せるツールだと思います。
準備
Docker コンテナを起動します。
>$ docker run -it --gpus=all --rm -p 7860:7860 -v /home/tadashi/work:/work nvidia/cuda:11.8.0-base-ubuntu22.04 /bin/bash
apt で必要なパッケージをインストールします。
># apt update
># apt install -y git python3-venv libgl1-mesa-dev libglib2.0-0
git でツールをダウンロードします。
># git clone https://github.com/VAST-AI-Research/TripoSR.git
># cd TripoSR/
pip で必要なライブラリをインストールしていきます。
># pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
># pip install --upgrade setuptools
># pip install -r requirements.txt
># pip install gradio
モデルの生成
WebUI を起動します。
># python3 gradio_app.py
ブラウザで http://localhost:7860
にアクセスすると、以下のような WebUI が表示されます。
Input Image
に元画像を読み込ませます。今回は Stable Diffusion を使って生成した以下の画像を使います。
「Generate」をクリックすると数秒で生成されます。「model」欄はマウスでぐりぐり動かすことが可能です。
生成したオブジェクトは .obj
ファイルとしてダウンロードできるので、Fusion 360 などの対応するアプリケーションで 3D モデルとして開くことが可能です。
よくよく見返してみると、背景を切り抜く際に翼も落とされてしまっていました・・・