WebODM/OpenSplat

Production-grade 3D gaussian splatting with CPU/GPU support for Windows, Mac and Linux 💦

OpenSplat – 高速でオープンソースの3Dガウシアンスプラッティング

何であるか – OpenSplatは、3DガウシアンスプラッティングのC++実装です。これは、COLMAP、OpenSfM、ODX、nerfstudioなどからのスパースなカメラポーズと点群を、小さな3Dガウシアンで構成されるコンパクトなシーンに変換する現代的なニューラルグラフィックス技術です。結果は.ply、.splat、.spz、または.radとして保存でき、多数のガウシアンスプラッティングビューアーで表示または編集できます。

なぜ重要か – ガウシアンスプラッティングは、NeRFと同等のリアルタイムに近いレンダリング品質を提供しながら、学習やレンダリングにははるかに低コストです。OpenSplatはポータブルで、軽量かつ高速を目標としており、NVIDIA、AMD、Apple GPU(Metal経由)をサポートし、純CPUフォールバックも提供します。


主な機能(READMEに記載)

  • クロスプラットフォーム:Windows、macOS、Linuxでビルド可能。
  • GPU加速:CUDA、ROCm(HIP)、Apple Metalをサポート。CPUオンリーモードも動作(約100倍遅い)。
  • シンプルなデータインジェスト:ODX、OpenSfM、COLMAP、OpenMVG、nerfstudio形式のプロジェクトを受付。
  • 複数の出力形式:.ply、.splat、.spz、.rad – Antimatter15のウェブビューアーやPlayCanvasなど、多数のビューアーに対応。
  • Dockerイメージ:再現可能な環境用にCUDAおよびROCm用の準備済みDockerfileを提供。
  • トレーニングユーティリティ:トレーニング再開、画像領域のマスクベース除外、座標系の保持、オプションの圧縮をサポート。
  • 拡張可能:AMDサポート、分散トレーニング、リアルタイムビューアー出力など、貢献を歓迎。

クイックスタート(導入手順)

  1. 依存関係のインストール – OpenCVと対応するLibTorchビルド(CPU、CUDA、またはROCm)。READMEにはUbuntu、Homebrew、Windows用の正確なパッケージ名が記載されています。
  2. ビルド –
    git clone https://github.com/pierotofy/OpenSplat OpenSplat
    cd OpenSplat
    mkdir build && cd build
    cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ ..
    make -j$(nproc)   # Ninjaを好む場合はNinjaを使用
    
    ROCm用には -DGPU_RUNTIME="HIP" と -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON を追加、CPUオンリー用には -DGPU_RUNTIME=CPU を設定。
  3. 実行 – サンプルデータセット(例:banana または truck)をダウンロードし、実行します:
    ./opensplat /path/to/banana -n 2000   # 2000個のガウシアン
    
    プログラムは splat.ply(-oオプションで banana.splat)を出力し、任意の互換ビューアーにドロップできます。
  4. オプション – --resume で既存の.plyのトレーニングを再開、--output-cameras でカメラのJSONをエクスポート、masks/フォルダに画像ごとのマスクを配置して画像の一部を無視できます。

Dockerの利用(概要)

  • CUDAイメージ – docker build -t opensplat .(デフォルト:Ubuntu/CUDA/libtorch)。
  • ROCmイメージ – docker build -f Dockerfile.rocm -t opensplat .。
  • コンテナを実行し、データをマウントして、READMEに示す通りコンテナ内で ./opensplat を呼び出します。

プロジェクトの状態と貢献

  • コードはAGPL-v3ライセンスでリリースされています(オリジナルのsplatfacto実装からの一部Apache-2.0コンポーネントを含む)。
  • 現在の目標は、より良いAMDサポート、メモリ使用量の削減、分散トレーニング、リアルタイムビューアー出力の実現です。
  • プルリクエストによる貢献を歓迎。オープンなイシューは機能強化用にラベル付けされています。

TL;DR

OpenSplatは、写真測量の出力を高速レンダリング可能な3Dガウシアンスプラットシーンに変換する実用的でオープンソースのツールです。すべての主要GPUプラットフォームで動作し、CPUフォールバックも可能。Dockerイメージを提供し、トレーニング、再開、マスク、エクスポートのためのシンプルなCLIを備えています。大きなNeRFフレームワークのオーバーヘッドなしに、軽量でポータブルなガウシアンスプラットパイプラインが必要な研究者や開発者に最適です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト