1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3D Gaussian Splattingで映り込んだ人物を消す方法【3つの手法を比較】

1
Last updated at Posted at 2026-04-02

はじめに

スマホで撮影した動画から3DGSを作成する際、映り込んでしまった人物が「影のような存在」として3Dモデルに残ってしまう問題に直面しました。

スクリーンショット 2026-04-01 133833.png

この記事では、マスク処理を使って人物を除去する3つの方法を試行錯誤した記録をまとめます。
まだ始めたばかりなので間違っているかもしれませんが、参考になれば幸いです。

ちなみに私の3DGSのワークフローや環境は以下の記事に書いています。(スマホ動画撮影 → ffmpegで切り出し → COLMAP → LichtFeld Studioで3DGS生成)

方法1:アルファ画像を作成して使う

ffmpegで動画から切り出した画像に対して、人物など消したい部分を特定し透過させ、LichtFeld Studioに読み込ませる方法です。

Step1:アルファ画像の作成

こちらのGUIツールを使ってみました!Mask2Formerを使っているようです。

WinRARで解凍してくださいとありますが、7-Zipでも解凍できました。

ツールを起動すると、以下のようなインターフェースが表示されます。

スクリーンショット 2026-04-01 112354.png

デフォルト設定で書き出すと、きれいに人物が透過されました。

20260318_170449_031.png

気づいた点:

  • 空の塗りつぶしは不要
  • バッグなど持ち物も一緒にマスクする必要あり

下記画像は人物だけにした場合で、バッグが残ってしまっています

image.png

Step2:COLMAPでの処理

Step1で出力された画像をそのままCOLMAPに書けます。
ただし、COLMAPからのUndistortion出力時にアルファ部分が黒に塗りつぶされてしまいます。

image.png

このままだとLichtFeld Studioでアルファマスクとして認識できず、人物が黒いもやとして残ってしまいます。

スクリーンショット 2026-04-01 133356.png

解決策:COLMAP出力の画像を置き換える

そこで以下の手順を試しました。

  1. アルファ画像でCOLMAPを実行
  2. 出力されたCOLMAP結果の中のimagesフォルダ内の画像(アルファ部分が黒くなっている)を、元のアルファ画像群に置き換える
  3. LichtFeld Studioで読み込んでトレーニング

Step3:LichtFeld Studioでの処理

LichtFeld Studioで読み込む際の設定は以下の通りです。

  • Mask Mode: 無視
  • アルファマスク: ON

スクリーンショット 2026-04-02 111339.png

結果:

足元に少し黒いものが残っていますが、おおむねきれいに人物を消すことができました。

image.png

人物ありデータとの比較:

Animation (20)aplha.gif

注意点:Mask Modeは「無視」を選択

間違えてMask Modeを「セグメント」にすると、人物がいた奥の領域が透明になってしまいました(下記は背景を黄緑にして分かりやすくしています)。

スクリーンショット 2026-04-02 132531.png

「無視」に設定すると、ちゃんと背景が埋まります。

スクリーンショット 2026-04-02 132554.png

セグメントモードはマスクを残したい部分(オブジェクトなど)にかけて、それのみを残す場合に使われるようです。
詳しくは公式のYouTubeが分かりやすいです。

方法2:白黒マスク画像を作成して使う

白黒のマスク画像を作成し、COLMAPとLichtFeld Studioの両方でマスク情報を活用する方法です。

Step1:白黒マスク画像の作成

こちらのツイートをまねして、方法1のStep1で使ったBoothのソフトを改変することにしました。

AIに頼んで機能追加できました。

image.png

これで白黒マスク画像が作成できました。黒い部分(人物)がマスクされ、白い部分が残ります。

スクリーンショット 2026-04-01 180703.png

スクリーンショット 2026-04-01 162930.png

参考:360度画像の場合

360度画像の特定領域を白黒化する場合は、以下のツールも使えるかな~と思います(今回は使用していません)

Step2:COLMAPでマスク適用

人物が映っている元の画像群をCOLMAPで読み込み、feature extractionmask_pathに白黒マスク画像のフォルダパスを指定します。

スクリーンショット 2026-04-02 090910.png

あとは通常通りCOLMAPを実行してください。

Step3:LichtFeld Studioでの処理

出力されたCOLMAPのフォルダに、マスク画像をmasksという名前で追加します。

スクリーンショット 2026-04-02 094232.png

LichtFeld Studioで読み込むと、マスク画像が認識されていることが確認できます。

スクリーンショット 2026-04-02 095213.png

画像サイズの問題と解決策

最初、画像サイズが合わずインポートに失敗しました。

image.png

調べたところ、COLMAPでUndistortionを実行するたびに画像サイズが微妙に変わっていました。

  • 今回COLMAPにインプットした画像:2169x3897
  • COLMAPから出力されたimages:2161x3883

解決策として、COLMAP出力もマスク画像もすべて1920x1080に統一しました。
私はLichtFeld Studioでの処理の時、メモリの関係でMaxWidthをいつも1920に下げていましたが、どのみちマスクを使う場合はLichtFeld StudioでMaxWidthなどをいじらない方が良いようなので、この方法で問題ありませんでした。

このように、画像を選んでMを押すと、マスクが適用されているか画像ごとに確認できます。

スクリーンショット 2026-04-02 114124.png

トレーニング時の設定:

  • Mask Mode: 無視
  • アルファマスク: OFF

スクリーンショット 2026-04-02 112059.png

結果:

人物をきれいに消すことができました!

Animation (21)mask.gif

方法3:塗りつぶして使う

マスクするのではなく、人物を消してAIの力で塗りつぶしてしまう方法です。

Step1:アルファ画像の作成

人間の部分を塗りつぶすのに、アルファ画像を入力とできるので、方法1のStep1と同じように人間部分を抜いたアルファ画像を作成してください。

Step2:塗りつぶし処理

diffusers(イマイチ)

有名なStable Diffusionを使って部分塗りつぶし(inpainting)をしてみます。
Stable DiffusionにはPythonから扱えるdiffusersライブラリ、GUIのStable Diffusion WebUI、ノードで操作できるComfyUIなどがあるようです。

500枚ほど処理する必要があるため、バッチ処理しやすそうなdiffusersを試してみました。

Clineに構築を頼んで実行しましたが、あまりきれいに消えませんでした。

問題点:

  • 人物がいた部分に看板などが生成されることがある
  • 不自然な補完が多い

スクリーンショット 2026-04-01 102418.png

良くてもこのレベル:

スクリーンショット 2026-04-01 102818.png

設定を変えればよくなるのかもしれませんが、あまり深くためしていません。

参考:Stable Diffusion WebUI

ツールによって結果が変わるのかよくわかりませんが、Stable Diffusion WebUIのinpaintingの例を見ても、あまりきれいな結果ではありませんでした。

スクリーンショット 2026-04-01 113939.png

Stable Diffusion WebUIでも、バッチ処理で大量の画像も処理できるようですが、環境構築に手間取ったため今回は試していません。

LaMa

塗りつぶしに特化しているモデルです。

思ったほどきれいではありませんが、変なものが生成されずに塗りつぶすことができました。

スクリーンショット 2026-04-01 175250.png

ぼやっとしている部分が塗りつぶした人物です。

Animation (19).gif

Step3:COLMAPとLichtFeld Studioでの処理

LaMaで塗りつぶした画像を通常通りCOLMAPとLichtFeld Studioで処理します。

結果:

3DGSでもぼやっと表示されてしまいました。塗りつぶしの品質がそのまま反映されます。

スクリーンショット 2026-04-02 110625.png

まとめ

3つの方法を試した結果、方法2:白黒マスク画像を使う方法が最もきれいな結果となりました。

スクリーンショット 2026-04-02 145817.png

方法 メリット デメリット 結果の品質
方法1:アルファ画像 手軽に試せる COLMAPで画像の置き換えが必要 ⭐⭐⭐⭐
方法2:白黒マスク画像 最もきれい、COLMAPでも活用可 LichtFeld Studio前に画像サイズの調整が必要 ⭐⭐⭐⭐⭐
方法3:塗りつぶし COLMAPとLichtFeld Studioでの操作がシンプル 画像処理に時間がかかる、AIによって品質が変わる ⭐⭐⭐

もちろん、塗りつぶしツールの精度を上げれば、方法3もより良い結果が得られる可能性があります。
同じ課題に直面している方の参考になれば幸いです!

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?