【AI3D比較】TripoSRをRTX 4060 Ti+WSLで導入して、同じ3枚画像を試してみた|InstantSplat++との違い

AI関連の記事
【AI3D比較】TripoSRをRTX 4060 Ti+WSLで検証|3枚画像で試した結果
AI 3D TripoSR RTX 4060 Ti WSL 比較検証

【AI3D比較】TripoSRをRTX 4060 Ti+WSLで導入して、同じ3枚画像を試してみた|InstantSplat++との違い

前回の InstantSplat++ 検証に続き、今回は単画像3D再構成モデル「TripoSR」を導入し、 同じキャラ3枚画像でどこまで見た目が改善するのかを比較しました。 結論として、導入はスムーズで物体サンプルは良好でしたが、全身キャラ用途では顔や細部の粗さが最後まで残りました。

まず大事な前提:
InstantSplat++ と TripoSR は同じ「3D生成」でも得意分野が違います。
InstantSplat++ は複数視点をつないで再構成する寄り、TripoSR は単画像からそれっぽい立体を高速に起こす寄りです。
そのため今回は、同じ3枚画像を使いつつも、TripoSR側では正面・側面・背面をそれぞれ個別に処理した結果を比較しています。

検証環境

ハードウェア

  • GPU: RTX 4060 Ti 16GB
  • CPU: Core Ultra 7 265K
  • RAM: 96GB
  • OS: Windows + WSL

今回の比較条件

  • 入力画像: 正面・側面・背面の3枚
  • 目的: キャラ用途でどこまで3Dっぽくなるか
  • 比較対象: 前回の InstantSplat++ 結果
  • 注目点: 顔の潰れ、全体サイズ、細部の粗さ

TripoSRの導入

TripoSR は比較的導入しやすく、まずはリポジトリ取得、仮想環境作成、PyTorch 導入、依存関係のインストールという流れで進めました。 WSLでも基本的には問題なく進みます。

1. リポジトリ取得

git clone https://github.com/VAST-AI-Research/TripoSR.git
cd TripoSR

2. 仮想環境作成

python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip setuptools wheel

3. PyTorch と依存関係

PyTorch は環境ごとの差が出やすいため、公式ページで Linux / Pip / Python / CUDA を選び、 表示されたコマンドを使うのが安全です。そのあとで依存関係を入れます。

pip install -r requirements.txt
最初のハマりどころ:
私の環境では最初の実行時に ModuleNotFoundError: No module named 'onnxruntime' が出ました。
これは背景除去に使われる rembg 側の依存関係だったため、以下で解消できました。
pip install onnxruntime

まずは公式サンプルの椅子で動作確認

いきなりキャラ画像から入る前に、まずは公式サンプルの椅子画像で動作確認しました。 これで環境構築に成功したか、GPUで最後まで通るかを切り分けられます。

python run.py examples/chair.png --output-dir output/ --render

入力サンプル

TripoSR公式サンプルの椅子画像

TripoSR公式リポジトリに含まれるサンプル画像 examples/chair.png を使って動作確認しました。

出力結果

正面画像1枚から生成した回転レンダリング。座面や脚、背もたれの厚みが出ており、立体物として復元できていることが分かります。

椅子サンプルでは、座面や脚、背もたれの厚みがしっかり出ており、少なくとも「2D切り抜き」ではなく、 立体物として復元できていることを確認できました。物体系のサンプルでは、TripoSR はかなり素直に結果が出る印象です。

同じ3枚画像でキャラを試す

次に、前回の InstantSplat++ と同じく、キャラクターの正面・側面・背面の3枚画像を使って試しました。 まずは標準設定で実行し、その後で調整オプションも追加しています。

基本コマンド

python run.py examples/00001.png examples/00002.png examples/00003.png --output-dir output_3views --render

調整込みコマンド

python run.py examples/00001.png examples/00002.png examples/00003.png --output-dir output_3views_v2 --render --foreground-ratio 0.95 --mc-resolution 512
今回試した調整:
--foreground-ratio 0.95 は被写体をやや大きめに扱う方向の調整です。
--mc-resolution 512 はメッシュ抽出を細かくする設定です。
ただし、今回の結果ではどちらも劇的改善にはつながりませんでした。

3枚の個別処理結果

今回は3枚を無理につなげて1体に見せるよりも、正面・側面・背面をそれぞれ別結果として並べたほうが、TripoSR の挙動が分かりやすいと判断しました。 実際に見ると、全体の立体感は出る一方で、顔や細部の再現はどの方向でも粗さが残っています。

0001(正面)

正面入力の結果。全体の立体感は出るものの、顔の情報はかなり曖昧で、キャラ用途としては厳しさが残りました。

0002(側面)

側面入力の結果。シルエットは分かりやすい一方で、細部の立体表現は単純化されやすく、情報量の少なさが目立ちます。

0003(背面)

背面入力の結果。衣装や髪の後ろ姿はある程度まとまるものの、やはり全体的に粗く、精細な再現には届きませんでした。

結果:3Dにはなるが、キャラ用途ではまだ厳しい

比較で見えたこと

  • TripoSRでも、全体のシルエットや服の厚みは立体っぽく起きてくる
  • ブログ用の縮小画像では被写体が小さく、顔がかなり潰れた
  • 元の大きい画像を使うと、見た目のサイズ感は改善した
  • ただし、顔や細部の粗さそのものは大きく改善しなかった

今回の解釈

  • 問題は単純な入力解像度不足ではなかった
  • 元画像が十分大きくても粗さは残った
  • 被写体サイズの改善は効くが、決定打ではない
  • ボトルネックは TripoSR の復元特性そのものにある可能性が高い

今回の一番大きなポイントは、元画像を大きくすると見た目のサイズは改善したが、品質そのものは大きく変わらなかったことです。 つまり、課題は単なる解像度不足ではなく、全身キャラを1枚から立体化する用途との相性や、 顔のような細部をどこまで保てるかというモデル側の限界にあると考えています。

InstantSplat++ と比べてどうだったか

InstantSplat++

複数視点寄りの再構成

  • 3枚から点群や補間レンダリングは作れた
  • ただし、連続視点でないキャラ設定画では破綻が目立った
  • 「3枚をつないで1体にする」方向では面白い
  • 今回の条件では高品質キャラ3Dには届かなかった
TripoSR

単画像寄りの高速再構成

  • 導入しやすく、椅子などの物体系はかなり素直に立体化できた
  • 1枚ごとに「それっぽい立体」を作る手軽さがある
  • ただし、全身キャラでは顔や髪などの細部が粗い
  • 今回の3枚比較でも決定版とは言いにくかった
今回の比較を一言でまとめると:
InstantSplat++ は「3枚を扱う面白さ」はあるが設定画3枚では厳しい。
TripoSR は「1枚から手軽に3Dっぽくする力」はあるが、全身キャラの細部再現はまだ弱い。
つまり、今回の3枚キャラ画像に関しては、どちらも決定版ではありませんでした。

検証動画

前回の InstantSplat++ 検証動画はこちらです。今回の記事と合わせて見ると、複数視点再構成寄りのモデルと、 単画像再構成寄りのモデルの違いがより分かりやすいと思います。

まとめ

TripoSR の導入自体は RTX 4060 Ti + WSL でも問題なく通り、物体系サンプルではかなり分かりやすく3D化できました。 その一方で、今回の全身キャラ3枚画像では、元画像サイズを上げても、foreground-ratiomc-resolution を調整しても、 顔や細部の粗さは大きく改善しませんでした。

現時点での結論は、「TripoSRは導入しやすく、物体には強いが、全身キャラの高品質3D化にはまだ厳しい」です。 前回の InstantSplat++ と合わせて見ると、キャラ3D化ではモデルごとの得意分野の差がかなり大きいことがよく分かりました。

コメント

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