全天球画像のままCOLMAPでアライメントしLichtFeld Studioで3DGS処理

COLMAP の新バージョン v4.1.0 に全天球画像のままアライメントする機能が追加されました!

パノラマ状の全天球画像 (エクイレクタングラー) のまま処理できるので、キューブマップ等の透視投影分割してからアライメントする必要はありません。

以下のようなシンプルな流れで3DGS (3D Gaussian Splatting) やフォトグラメトリ処理が可能です。

  1. 360度カメラで撮影
  2. COLMAPでそのままアライメント (写真位置推定)
  3. LichtFeld Studioでそのまま3DGS処理

この手法で作成したサンプルはこちら。

以下に手順をまとめました。

COLMAP編

COLMAPを起動する。

「New project」を開く。

「Database」で任意の場所にDatabaseファイルを作成する。

「Images」で処理する画像 (360度画像や360度動画を連番画像化したもの) が入ったフォルダを指定する。

指定できたら「Save」する。

まずは特徴点検出するので「Feature extraction」を選択。

Camera modelで「EQUIRECTANGULAR」(全天球画像) を選択する。

「Extract」で処理を実行する。

処理完了まで待つ。

続いて各画像間のマッチング処理を実行する。

上部のタブ (各種マッチングモード) から任意の手法を選んで「Run」で実行する。
今回使用した画像素材は動画から切り出したもので連続的な画像になっているので「Sequential」モードを使用した。
総当りでマッチング処理したい場合は「Exhaustive」を利用する。

処理完了まで待つ。

最後に「Start Reconstruction」で写真位置推定処理を行う。

画面上に全天球画像が並び始めるので処理が終わるまで待つ。

アライメント完了!

このモデルを「Export model」で任意のフォルダへ書き出す。

このモデルを「Export model」で任意のフォルダへ書き出す。

COLMAP編は以上。

LichtFeld Studio編

書き出したデータを以下の構成に整理してそのフォルダ (datasetフォルダ) を丸ごとLichtFeld Studioへ読み込ませるのみでOK。

dataset/
├ sparse/
│ └0/
│ ├ cameras.bin
│ ├ images.bin
│ └ points3D.bin
└ images/
 └ (全天球画像一式)

以下の場合は「colmap」フォルダをLichtFeld Studioへ読み込む。

LichtFeld Studioは既にCOLMAPのEQUIRECTANGULARタイプに対応しているためそのまま処理が可能!

データをロードする際は360度画像の元サイズをそのまま利用する設定が良いかもしれません (詳しい比較検証はまだですが) 。以下の「Disable downscaling」を有効にするとリサイズなしで読み込めます。

※LichtFels Studioの基本的な使い方についてはこちら

注意

リリースノートの記載 にもあるように、COLMAPのエクイレクタングラー処理は高速な一方精度は劣るようなので注意です。

精度を優先する場合は従来の手法、透視投影分割の方が有効そうです。