11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルで2D動画から3D Gaussian Splattingを生成するワークフロー

11
Last updated at Posted at 2026-01-23

概要

スマートフォンで撮影した2D動画から3D Gaussian Splatting(3DGS)データを生成する際、ScaniverseやLumaAIなどのクラウドサービスを使用せず、PCのローカル環境で、無料で、できるだけGUIで実現してみました。
3DGSについての解説は行っていません。

※2026/4/15追記 LichtfeldStudioのビルド版は有料化した旨追記
※2026/2/3追記 360度動画から生成する場合を記事最後に追記しました。
※2026/2/19追記 3DGS生成ツールBrush、および360度動画専用の一貫処理ツール360° Gaussianについて追記しました。

細かいパラメーターの試行錯誤は以下の記事で行っています。

ワークフロー

ffmpegで動画から画像を書き出し → COLMAPでCOLMAPデータ書き出し → LichtFeld StudioでCOLMAPデータを読み込み3DGS生成

使用したツール

  • ffmpeg: スマホ2D動画から静止画の抽出
  • 360 Video Still Cropper(1.3.1):360度動画から静止画の抽出
  • COLMAP(3.13.0): 写真からカメラの位置・向きを推定する処理(アライメント)
  • LichtFeld Studio(2026-01-16): 3DGSの生成・編集・書き出し
  • Brush(0.3.0): 3DGSの生成・書き出し(LichtFeld Studioの代替)
  • 360° Gaussian: 360度動画をインプットとし3DGS生成まで一貫処理

環境

  • OS: Windows 11
  • CPU: Intel(R) Core(TM) Ultra 9 185H
  • GPU: NVIDIA RTX 4070, 8GB VRAM

1. 動画から静止画の抽出(ffmpeg)

FFmpeg公式サイトからダウンロードして使用

下記のようなコマンドで動画を切り出します

1秒間隔で抽出する場合:

ffmpeg -i "動画ファイル名.mp4" -vf fps=1 -q:v 2 "3DGS\images\frame_%04d.jpg"

0.5秒間隔で抽出する場合:

ffmpeg -i "動画ファイル名.mp4" -vf fps=2 -q:v 2 "3DGS\images\frame_%04d.jpg"

パラメータ説明:

  • -vf fps=1: 1秒間隔でフレーム抽出
  • -vf fps=2: 0.5秒間隔でフレーム抽出(より多くのフレームを取得)
  • -q:v 2: 高品質設定(1-31、数値が小さいほど高品質)

以下のように画像に切り出せました。

ffmpegによる動画からの静止画抽出

※最初からGUIではないですが、私はダウンロードしたffmpegと動画データを同じフォルダに入れて、Clineに「ffmpegを使って動画から画像を1秒間隔で切り出して」と指示しているのでコマンドも覚えず使っています。スクリーンショット 2026-01-14 100130.png

2. アライメント(COLMAP)

COLMAP GitHubのReleasesページからcolmap-x64-windows-cuda.zipをダウンロードし、batファイルでGUIを起動します。

COLMAPフォルダ構成

COLMAP GUI起動画面

処理手順

下記の記事を参考にしました。

1. プロジェクト作成

File > New Projectでデータベース新規作成&ffmpegで書きだした画像フォルダを選びます。

プロジェクト作成画面

2. 特徴点抽出

Processing > Feature extractionで以下の設定を行います:

  • Shared for all imagesにチェック(全画像で同一カメラ設定の場合)
  • first_octaveを0に設定(計算量が減る。細かい特徴を抽出したい場合は-1のまま[詳細]
  • Extract実行

特徴点抽出設定

3. 特徴点マッチング

Processing > Feature matchingで設定:

  • 連続画像なのでSequentialを選択
  • Run実行

特徴点マッチング設定

4. 復元オプション

Reconstruction > Reconstruction optionsで設定:

  • multiple_modelsのチェックを外す(撮影場所が1か所の場合)

復元オプション設定

5. 復元実行

Reconstruction > Start reconstructionで開始します。

復元処理開始

処理が完了すると、カメラの撮影位置や姿勢が求まっているのが分かります。

復元結果の3Dビュー

6. データ書き出し

Extras > Undistortionでフォルダを指定して書き出します。

注意: 5の処理完了前はUndistortionが選択できません。終了しているかは、Timeのカウント停止しているかなどで判断可能です。

データ書き出し設定

書き出し完了後、以下のようなデータがOutputされます。imagesは入力に使った画像そのままです。

出力フォルダ構成

失敗例
狭い室内をスマートフォンの広角モードで撮影したデータでは、最初COLMAP処理に失敗しました。
動画の前半部分は適切に処理されるものの後半で連続性が失われ、後半部分の2枚のみがCOLMAPデータ化される現象が発生しました。
スクリーンショット 2026-01-23 102912.png
消えたかと思ったデータですが、上のバーのNewerstというドロップダウンを開くと、Model1などとして残っています!
スクリーンショット 2026-03-17 143918.png

3. 3D Gaussian Splatting生成

COLMAPで生成したデータから3DGSを生成します。LichtFeld StudioとBrushの二つのツールを使ってみました。

パターンA: LichtFeld Studio(多機能GUI)

LichtFeld Studioから最新版をダウンロードして、binフォルダ内のLichtFeld-Studio.exeをダブルクリックして起動します。日本語にも対応しています。

※追記:2026/4/15現在ビルド版は有料化しました。ソースコードはGithubからダウンロードできるので、無料で使いたい場合は自分でビルドする必要がありそうです。

スクリーンショット 2026-04-15 102528.png

LichtFeld Studio起動画面

1. データ読み込み

COLMAPのデータをフォルダごと画面にドロップして読み込みます。imagesとsparseフォルダが認識されていますね

COLMAPデータの読み込み

2. 学習実行

右のタブのトレーニングを開始でスタートします。

学習設定画面

  • 各種設定項目がありますが、私はデフォルト設定で実行しました
  • 詳細な設定項目についてはこちらの記事が詳しいです

  • Bilateral Grid(露出差吸収)やBG Modulation(背景変調)は使える場面が多そうです。

PPISP

約20分で完了

学習完了画面

3. 編集機能

「編集モードに切り替え」ボタンを押します。

編集モードへの切り替え

画面上部のUIを選択して、大きさや向きを変更可能です。

スクリーンショット 2026-01-22 181934.png

自動水平調整機能や現実とのサイズ合わせ機能は確認できませんでした。Supersplatにある「Splatsの測定とリスケール」機能が便利なので入ると嬉しいですね

スクリーンショット 2026-01-23 110602.png

4. データ書き出し

ファイル>エクスポートで各種形式を選択して書きだせます。

エクスポート設定画面

SOG形式で書き出したところ16MBになりました。

ちなみに現時点では、明示的な「プロジェクト保存」機能は見当たりませんでした

パターンB: Brush(シンプル)

Brushもオープンソースの3DGS生成ツールです。LichtFeld Studioと同様にCOLMAPデータから3DGSを生成できます。

特徴

  • 出力形式: PLYのみ(バージョン0.3.0時点)
  • 編集機能なし
  • LichtFeld Studioと比較して、よりシャープな仕上がりになる傾向があるそうです

詳しい比較については、以下の記事が参考になります:

colmapデータを読み込むと設定画面が出て、STARTを押すとすぐに始まります

スクリーンショット 2026-02-19 110012.png

インプットの撮影画像と3DGSが、対応した角度で並んで表示されるのが面白いです

スクリーンショット 2026-02-10 105341.png

出力はControlsを開いてExportボタンからできます

image.png

360度動画を使用する場合

360度動画から3DGS生成を行う場合、いろいろ方法があります。

パターンA: 360 Video Still Cropper + COLMAP + LichtFeld Studio/Brush(手動処理)

360度動画から3DGS生成を行う場合、そのままではCOLMAPでアライメントができないため、歪みの少ない画像に切り出す必要があります。

ffmpegで6方向などに分割して切り出すこともできますが、今回は「360 Video Still Cropper」というGUIツールを使用しました。

このツールはffmpegを内蔵しており、GUIで360度動画から任意の向きの静止画を切り出すことができます。

360度動画では上方向は天井や空で特徴点が少なく、下方向は撮影者が映り込んでいることが多いため、画像を確認しながら切り出し範囲を決められるGUIツールは非常にありがたいです!

1. 動画から静止画の抽出(360 Video Still Cropper)

360 Video Still Cropperをダウンロードし、exeファイルを実行します。

デフォルト設定では、重なりを持った状態で上下を除いた8方向に切り出してくれます。今回はデフォルト設定で書き出してみました。

スクリーンショット 2026-02-03 153542.png

以下のように切り出されました。

スクリーンショット 2026-02-03 103716.png

2. アライメント(COLMAP)

360 Video Still Cropperで切り出した画像を使用して、上記の「2. アライメント(COLMAP)」と同様の手順でCOLMAPで処理を行います。

8方向の画像を適切に認識し、カメラ位置の推定ができました。

スクリーンショット 2026-02-03 142423.png

3. 3D Gaussian Splatting生成

COLMAPのデータを使用して、上記の「3. 3D Gaussian Splatting生成」と同様の手順で3DGSを生成します(パターンA、Bのいずれかを選択)。

トレーニングや点の数が足りないのか、デフォルト設定だとやや輪郭が柔らかい仕上がりとなりましたが、無事に3DGSデータを生成できました。

スクリーンショット 2026-02-03 160208.png

パターンB: 360° Gaussian(一貫処理)

360° Gaussianは、360度動画をインプットとして3DGS生成まで一貫して処理できるツールです。

特徴

  • 動画を投げるだけで3DGS生成まで完了: 手動での画像切り出しやアライメント処理が不要
  • 360度画像対応のアライメント: SphereSfM(COLMAPの360度画像対応拡張版)をデフォルトで使用
  • 3DGS生成エンジンを選択可能: LichtFeld StudioやBrushのexeファイルを参照して、使いたいエンジンを選択できる
  • 注意: オープンソースではありません

まずPathsにBrushやLitchFeldなどのexeを指定します。

スクリーンショット 2026-02-19 113155.png

そのあとAlignmentタブでトレーニングとアライメントに何を使うかを選択します。アライメントはデフォルトはSphereSFMでしたがRealityCaptureなども設定していれば選べました。

スクリーンショット 2026-02-19 113225.png

そして必要であれば、step数やsplatsを設定。ちなみにMax Splatsを8000にしたら私のPCのスペック的に限界を迎え失敗しました。

スクリーンショット 2026-02-19 113251.png

そして動画などを追加しStartを押したら、画像切り出し・アライメント・キューブマップ化・3DGS生成と自動で進んでいきます。ログで今何をやっているかが分かります。

image.png

TrainにBrushを選んだ時はBrushが起動し生成の様子も見えました。LichtFeld StudioはGUIの画面は起動しませんでした。

ログを見て、生成が終わったか確かめます。UIは変化がないのでログを確認する必要がありそうです。

image.png

出力は、インプット動画があったフォルダ近くにplyのアウトプットフォルダが生成されました。Brushだとステップごとに随時出力されました。

image.png

詳しい使い方はYoutubeに動画があります。人物をマスクする機能は有料です。

まとめ

本ワークフローにより、無料のオープンソースツール(※360 Video Still Cropper/360° Gaussianを除く)を使用して、通常のスマートフォン動画および360度動画の両方から高品質な3DGSデータを生成できました。

Animation (15).gif

ただし、クラウドサービスと異なりCOLMAPでのパラメーター調整を自分で行う必要があり、その点に難しさを感じました。

ちなみに動画データをインプットとした、アライメント処理~COLMAP書き出しは、RealityScanというソフトを使えば一括でできるようですが、 100 万米ドル以上の収益の企業では有料のライセンスが必要です。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?