一つのアプリでStructure from MotionからGaussian Splatting
1つのアプリケーションで、画像のメタデータチェック、キーポイント抽出、マスク生成、マッチング、3次元構成、そしてGaussian Splattingまでの3D再構築処理を一元管理できるツールを作りました。
Githubレポジトリ
概要
これまで、3D再構築を行う際は、各処理を個別のツールで実施していました。今回作成したアプリは、以下の一連の処理を1つのアプリケーション内で完結できるようにしています。
-
画像のメタデータチェック
画像ファイルから必要なメタデータを確認します。 -
キーポイント抽出
画像から特徴点を抽出し、後続のマッチング処理に備えます。 -
マスク生成
必要に応じて、画像に対してマスク処理を行います。 -
マッチング
抽出した特徴点を用いて、画像間の対応関係を算出します。 -
3次元構成
マッチング結果から、カメラ位置やシーンの3D構造を再構築します。 -
Gaussian Splatting
再構成された3Dデータを、Gaussian Splatting技術によりレンダリングします。
使用技術
本プロジェクトでは、以下のオープンソースプロジェクトを活用しています。
これらの技術を組み合わせることで、高精度な3D再構築とリアルタイムレンダリングを実現しています。
Dockerでの動かし方
環境構築が不要な Docker イメージ inuex35/splat_one
を利用すれば、簡単に動作させることができます。以下のコマンドを実行してください。
docker run --gpus all \
-e DISPLAY=host.docker.internal:0.0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ${PWD}/dataset:/source/splat_one/dataset \
-v C:\Users\$env:USERNAME\.cache:/home/user/.cache/ \
-p 7007:7007 \
--rm -it \
--shm-size=12gb \
inuex35/splat_one
コンテナに入ったら
python main.py
でGUIが起動します。
最後に
開発中なのでバグ等あります。issueに挙げてもらえばなるべく早く直しますが、個人開発なので修正したらプルリクいただけると助かります。