写真→3D変換手法の比較検証 2025

#tech #3d #ai

2025-12-30 更新: Depth Anything 3を追加!V2を超える精度、Any-view対応の最新深度推定モデル。
2025-12-29 更新: TripoSRを追加!見えない部分も補完して360度回転可能な完全3Dメッシュを生成。
デモを見る(インタラクティブ3D比較)

概要

1枚の写真から3Dモデルを生成する技術が急速に進化している。 今回は5つの異なるアプローチを実際に試して比較した。

検証環境

各手法の詳細

TripoSR NEW

Stability AI と Tripo AI が共同開発したLRMベースの3Dメッシュ生成モデル。 見えていない部分も補完して、360度回転可能な完全な3Dメッシュを生成する。

技術的特徴

  • 出力: OBJ形式 (3Dメッシュ)
  • 処理時間: 1-1.5秒
  • VRAM: 約6GB
  • 背景自動除去(rembg)
  • 頂点カラー付きメッシュ

セットアップ

git clone https://github.com/VAST-AI-Research/TripoSR.git
cd TripoSR
python -m venv .venv
.venv/bin/pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
.venv/bin/pip install omegaconf einops transformers trimesh rembg huggingface-hub scikit-image onnxruntime xatlas moderngl

注意: torchmcubes問題の回避

CUDAヘッダーがない環境ではtorchmcubesのビルドに失敗する。 scikit-imageのmarching_cubesで代替可能:

# tsr/models/isosurface.py を修正
from skimage import measure
def skimage_marching_cubes(level, iso_value):
    verts, faces, _, _ = measure.marching_cubes(level.cpu().numpy(), level=iso_value)
    return torch.from_numpy(verts), torch.from_numpy(faces)

使い方

.venv/bin/python run.py input.jpg --output-dir output/

メリット

  • 見えない部分を補完
  • 360度回転可能
  • 完全な3Dメッシュ出力
  • 高速(1-1.5秒)
  • MITライセンス

デメリット

  • VRAM 6GB必要
  • 被写体のみ(背景は除去)
  • テクスチャなし(頂点カラー)

Apple SHARP

Apple ML Researchが2024年12月に発表した1秒以内で3D Gaussian Splattingを生成する手法。 入力画像から直接Point Cloudを生成する。

技術的特徴

  • 出力: PLY形式 (Point Cloud)
  • 色表現: Spherical Harmonics (DC係数)
  • ポイント数: 約15万点/画像
  • 処理時間: 1秒以内

使い方

cd ~/ml-sharp
uv run sharp predict -i input.jpg -o output/

Three.js表示のための後処理

SHARPの出力はSpherical Harmonics形式なので、RGB変換が必要:

RGB = 0.5 + 0.282 * f_dc

メリット

  • 高精度なPoint Cloud
  • 高速処理(1秒以内)
  • メトリックスケール対応

デメリット

  • 見えている部分のみ(補完なし)
  • 最新GPUが必要(sm_70+)
  • PLY後処理が必要

Depth Anything V2

DINOv2ベースのVision Transformerで深度推定を行う。 相対深度マップを生成し、ディスプレースメントマッピングで3D表示。

技術的特徴

  • 出力: 深度マップ (PNG)
  • モデル: vits, vitb, vitl, vitg
  • 処理時間: 数秒

メリット

  • ローカル実行可能
  • 高精度な深度推定
  • エッジがシャープ

デメリット

  • 相対深度のみ
  • GPU要件あり

Depth Anything 3 NEW

ByteDance Seedが2025年11月に発表した最新の深度推定モデル。 「深度光線表現」により複雑なマルチタスク学習が不要になり、 Any-view対応(複数視点から一貫した深度推定)を実現。

V2からの進化

  • Any-view対応: 複数画像で空間的に一貫した深度
  • シンプル設計: 標準DINOエンコーダーのみ
  • 深度光線表現: マルチタスク学習不要
  • 公開学術データセットのみで学習

モデルバリエーション

  • DA3-Small (80M) / Base (120M) / Large (350M) / Giant (1.15B)
  • DA3MONO-LARGE: 高品質単眼深度推定(今回使用)
  • DA3METRIC-LARGE: メートル単位の絶対深度

セットアップ

git clone https://github.com/ByteDance-Seed/Depth-Anything-3.git
cd Depth-Anything-3
uv venv && uv pip install torch torchvision xformers
uv pip install -e .

使い方

from depth_anything_3.api import DepthAnything3
model = DepthAnything3.from_pretrained("depth-anything/DA3MONO-LARGE")
prediction = model.inference(["input.jpg"])
depth = prediction.depth[0]  # [H, W] float32

メリット

  • V2を上回る精度
  • Any-view対応(複数視点)
  • 高速(0.3秒/枚)
  • Apache-2.0ライセンス

デメリット

  • GPU要件あり
  • 相対深度(Metric版除く)

Nano Banana (Gemini 2.5 Flash Image)

Gemini APIの画像生成機能を使って深度マップを生成する。 朋義さんのアイデアで実装された革新的なアプローチ。

使い方

uv run tools/generate_depth_nanobana.py input.jpg depth.png

メリット

  • GPU不要(API経由)
  • セットアップ簡単
  • 無料枠500画像/日
  • 創造的な補完が可能

デメリット

  • オンライン必須
  • 結果にばらつき

比較表

項目 SHARP DA V2 DA3 Nano Banana TripoSR
出力形式 Point Cloud (PLY) 深度マップ 深度マップ 深度マップ 3Dメッシュ (OBJ)
処理速度 1秒以内 数秒 0.3秒 5-10秒 1-1.5秒
GPU要件 sm_70+ sm_70+ sm_70+ 不要 sm_70+ (6GB)
見えない部分 生成しない 推定のみ 推定のみ 創造的補完 補完する
Any-view 不可 不可 対応 不可 不可
360度回転 不可 不可 不可 不可 可能
セットアップ 簡単

結論

用途別のおすすめ

TripoSRの優位性

「見えていない部分の補完」という点で、TripoSRが唯一の選択肢。 SHARP、Depth Anything、Nano Bananaは見えている面しか扱えないが、 TripoSRは背面も含めた完全な3Dメッシュを生成する。

今後の展望

さらに高品質な結果が期待できる手法:

関連リンク

デモを見る(インタラクティブ3D比較)