postshotの使い方

3D Gaussian SplattingをGUIで処理できるソフトです。

公式サイトはこちら

コマンドラインで実行する公式の3D Gaussian Splattingの環境構築方法もこちらで解説していますが、CUIは慣れていないとなかなか使いこなすのも大変。この点postshotはマウス操作で直感的に利用できます。

直感的に使えるので使用方法は詳しい説明がいらないレベルではありますが、応用的な使い方を含めて以下にまとめてみました。
後半ではRealityCaptureの併用方法についても紹介しています。

現在はベータ版で頻繁にアップデートも行われており、UIや仕様変更が度々発生しているのでここに記載している内容も変わる可能性は大いになります。
poostshotのDiscordがあるので、最新情報はそちらで追えます。
バグレポートや機能要望もDiscordから行えます。

インストールと簡単な使い方

公式サイトからDLしてインストールする。

起動すると以下のような画面になるので、表示されている通り画像をドロップ&ドロップする。

読み込むとダイアログが表示されます。

デフォルトだと「Image Selection」が「Best Images」になっていますが、使用する写真が限定されるので、すべての写真を利用したい場合は「Use All Images」を選んでおきます。

「Start Trainning」は「Import」ボタンを押すとすぐ処理が開始される設定です。写真を読み込んでから設定をつめて、それからトレーニングを実行したい場合はこのチェックは外しておきます。

右下の「Import」を押すと写真が読み込まれます。

読み込まれたら、左上の「Start Trainning」を押すと処理が開始されます。

しばらく待つとリアルタイムに処理中の様子がビューポート上に表示されます。

以上、最低限の使い方でした。
(その他便利な使い方等は今後追記予定)

各種パラメーターの詳細ついては公式マニュアルに記載があります。

RealityCaptureのアライメント結果を利用する場合

大規模なシーンや複雑なシーンを処理する場合、postshotではうまくアライメント(写真位置推定)ができない場合があります。
(現在postshotにはコントロールポイントを使用したり、レーザースキャンデータを併用する機能はありません)
しかしこうした複雑なシーンを事前にRealityCaptureでアライメントを行っておくことでこのデータをpostshotに読み込ませて利用することができます。

この方法がまだ公式マニュアルには記載がないので手順をまとめました。

1. RealityCaptureでアライメントまで完了させる

RealityCaptureの使い方については「フォトグラメトリ手順書」にまとめているので参考にしてみてください。

2. RealityCaptureからcsvを書き出す

Alignment > Export > Registration > Internal/Extenal camera paramerters から書き出す。

設定はデフォルトのままでOK。

3. RealityCaptureからplyを書き出す

Alignment > Export > Point Cloud > Sparse point cloud as Polygon File Format から書き出す。

Export asciiをFalseにする。

4. plyとcsvと写真をすべて選択してpostshotの画面へドラッグ&ドロップする

写真は歪み補正前のオリジナルの写真で良い。

5. 表示されるダイアログでCamera posesがimportになっているのを確認する

この設定によりカメラポーズ(写真位置)については読み込んだcsvのデータを用いる事になるので、postshot上での写真位置推定はスキップされます。

5. トレーニングを開始する

読み込むと既にカメラと点群がビューポート上にある状態になる。
RealityCapture上と同じ状態で読み込めた。

あとは通常通り、お好みで設定を調整してトレーニングを開始する。

以下がこのワークフローでRealityCaptureを併用した大規模、広域の3D Gaussian Splattingの作例です。
(postshotのみでなく公式3DGSも併用してる例ではありますが)
600mの道程約2万枚の画像から生成しました。