#お役立ちコラム
3DGSの作り方|撮影から学習・品質確認までの実践手順

3DGSは、写真や動画を入れれば必ずきれいな3D空間になるわけではありません。撮影範囲、写真どうしの重なり、動く物の有無が、学習設定より前に結果を左右します。
作業は、目的を決める、撮影する、カメラ位置を求める、3Dガウシアンを学習する、未撮影の視点で確認する、という順に進みます。途中で崩れを見つけた場合は、設定だけを変え続けず、原因に応じて撮影や前処理へ戻ります。
この記事では、特定のサービスに限定せず、3DGSの作り方に共通する手順と品質確認の方法を説明します。
執筆: bestat 編集部
3DGSを作る全体手順
3DGSの制作は、撮影から共有までを一つの工程として設計します。見た目の再現が目的なのか、位置関係の確認も必要なのかを最初に決めると、撮る範囲と検収条件が定まります。

基本の流れは次のとおりです。
使い道と見せたい範囲を決めます。
対象を多方向から、重なりを保って撮影します。
ぶれた画像や状態が変わった画像を除きます。
画像ごとのカメラ位置と向きを推定します。
疎な点を初期位置として3Dガウシアンを学習します。
学習に使わなかった視点と、視点の移動中の見え方を確認します。
用途に合う形式とビューアを選び、撮影条件と一緒に保存します。
3DGSの原論文は、カメラ校正で得た疎な点から始め、位置、大きさ、向き、不透明度、色などを持つ3Dガウシアンを最適化します(Inria GraphDecoの原論文ページ)。そのため、学習の前にカメラ位置を安定して求められる写真を用意する必要があります。
作る前に決めること
最初に決めるのは使用するソフトではなく、完成後にどこから何を見たいかです。必要な視点が決まらないまま撮ると、正面はきれいでも、入口、裏側、天井付近などが欠けます。
次の4点を短い文章で残します。
対象:物体、室内、屋外空間のどれを作るか
閲覧範囲:外周だけか、内部へ入るか、上からも見るか
変えてはいけない物:撮影中に固定する扉、椅子、照明、設備など
合格条件:見せたい視点で穴や二重像がなく、移動時に急なぼけが出ないことなど
3DGSの主目的は、新しい視点から自然な画像を表示することです。寸法検査、CAD編集、干渉判定が目的なら、必要なのは座標精度を検証した点群や面を持つモデルかもしれません。見せる用途と測る用途を分けると、3DGSだけで完結させるべきかを早い段階で判断できます。
対象の大きさも記録します。3DGSの表示上の縮尺と、現実の単位が一致するとは限りません。実寸を扱う場合は、既知寸法、基準点、別の計測データなど、スケールを確かめる方法を制作前に用意します。
写真と動画を撮影する
写真でも動画でも制作できます。重要なのは形式より、隣り合う画像へ同じ特徴が十分に写り、カメラ位置をつなげられることです。
Nerfstudioの独自データ向け公式文書も、画像または動画から処理できる一方、COLMAPが位置合わせしやすいよう、重なりがあり、ぶれていない画像を撮るよう案内しています(Using custom data)。
撮影経路を先に歩いて確かめる
撮影前に、開始位置から終了位置まで一度移動します。行き止まり、強い逆光、狭い通路、人が頻繁に通る場所を確認し、連続して撮れる経路へ直します。
物体なら、同じ高さで一周するだけで終えず、少し高い位置と低い位置からも撮ります。室内なら、壁沿いだけを進むと部屋の中央にある物の裏側が欠けます。外周と中央寄りの経路を組み合わせ、柱や設備の陰を別方向から補います。

撮影中の状態をそろえる
一つの3DGSへ入れる画像は、同じ時点の一つの空間として矛盾しないことが理想です。撮影途中で物が移動すると、同じ位置について異なる画像が混ざります。
人、車、搬送物が画面を横切る時間を避けます
扉や引き出しは開閉状態を統一します
自動露出が急変する強い逆光を避けます
カメラを急に振らず、動体ぶれを抑えます
鏡、透明面、単色の壁は別方向の特徴も含めて撮ります
動画は連続性を保ちやすい反面、移動が速いと多数のフレームが同じ方向へぶれます。写真は一枚ずつ止まって撮れますが、間隔が空きすぎると位置のつながりを失います。どちらを使っても、撮影後に全体を見直せるよう、削除前の原データを残します。
カメラ位置と疎な点を求める
撮影後は、各画像をどこから、どちらへ向けて撮ったかを推定します。多くの制作環境では、SfMの一連の処理として特徴点を照合し、カメラ姿勢と疎な3次元点を求めます。

ここで見るべきなのは、処理が終了したかだけではありません。
使用予定の画像がカメラとして登録されているか
カメラが実際の撮影経路に近い並びになっているか
離れた場所に誤ったカメラや点が飛んでいないか
一部の区画だけカメラの間隔が空いていないか
対象を囲む方向と高さがそろっているか
カメラ位置が大きく誤っている状態で学習へ進んでも、粒の位置が二重になったり、輪郭が伸びたりします。未登録画像が多い場合は、画像数をただ増やす前に、ぶれ、露出差、重なり不足、模様の少なさを調べます。
GraphDecoの公式実装は、画像とCOLMAP形式のカメラ情報を入力として扱います。別のサービスを使う場合も、撮影画像とカメラ姿勢が内部でどのように作られるかを確認すると、失敗箇所を切り分けやすくなります。
3Dガウシアンを学習する
前処理が整ったら、疎な点を手掛かりに粒を配置し、撮影画像に近い見え方になるよう調整します。NerfstudioのSplatfactoも、COLMAPまたは独自データ処理で保存されたSfM点をガウシアンの初期化に使うと説明しています(Splatfacto)。
学習中は、損失の数値だけで判断しません。数値が下がっても、撮影画像を暗記するような状態では、画像間の視点で見たときに形が崩れることがあります。
確認用の視点をあらかじめ決めます。正面、裏側、上面、細い部材の近く、反射面の近くなど、失敗しやすい場所を含めます。学習設定を変更したときも同じ視点で比較できるよう、カメラ経路を保存します。
出力の保存先には、少なくとも次を対応づけます。
元の画像または元動画
採用した画像の一覧
カメラ姿勢と疎な点
学習設定と使用した実装の版
学習済みデータ
確認用の静止画または動画
出力だけを残すと、後で欠けを見つけても撮影へ戻れません。入力と処理条件をひとまとまりで管理することが、再制作の手間を減らします。
完成した3DGSを確認する
品質確認では、学習画像と同じ位置からきれいに見えることより、その間を動いたときに破綻しないことを重視します。

次の順で確認します。
対象範囲の外周をゆっくり移動し、背景の穴と浮いた粒を探します。
撮影位置の中間へ移り、輪郭の二重化と急なぼけを見ます。
上下の視点を変え、天面、床面、物の下側を確認します。
細い部材や境界へ近づき、にじみと消失を確認します。
表示に使う端末で、読み込み時間と操作時の滑らかさを確かめます。
比較のため、学習へ入れなかった画像を残しておく方法も有効です。その画像と同じカメラ位置から描画し、輪郭、色、隠れ方を見比べます。PSNRなどの画像指標を使う場合も、用途上重要な場所の目視確認を省かないようにします。
計測を行う場合は別の検証が必要です。既知寸法や基準点で位置とスケールを確かめ、必要な許容差を満たすかを確認します。見た目が自然なことは、座標や寸法の精度を保証しません。
失敗したときの戻り方
崩れ方と直す工程を対応づけると、学習設定の試行だけを繰り返さずに済みます。
症状 | 確認する原因 | 戻る工程 |
|---|---|---|
裏側や上面に穴がある | その面を写した画像がない | 撮影 |
輪郭が二重になる | 物が動いた、カメラ姿勢がずれた | 画像選別・前処理 |
細い物が消える | 撮影距離が遠い、背景と同化した | 撮影 |
浮いた粒が多い | 反射、動体、誤対応が残った | 画像選別・前処理 |
視点の途中で急にぼける | カメラ間隔が広い、角度が偏った | 撮影 |
表示が重い | 粒の数や出力規模が用途より大きい | 学習・書き出し |

一度に複数の条件を変えると、改善した理由が分かりません。最初は対象範囲を小さくし、撮影、前処理、学習、表示が一巡することを確かめます。その後に範囲や解像度を広げると、問題の発生地点を追いやすくなります。
よくある質問
スマートフォンだけでも3DGSを作れますか
撮影自体はスマートフォンで可能です。端末名より、ぶれを抑え、同じ場所を多方向から重ねて撮り、撮影中の状態を変えないことが重要です。学習を端末内で行うか、PCやクラウドへ送るかは、使うアプリやサービスで異なります。
何枚撮れば十分ですか
対象の大きさ、形、隠れ方、画像の画角で必要枚数が変わるため、一律の枚数では決められません。枚数より、見せたいすべての面が複数方向から写り、隣り合う画像がつながっているかを確認します。
背景は消した方がよいですか
物体だけを見せたい場合は、マスクに対応した制作方法を選ぶと背景を分けられます。ただし、位置推定に使える特徴まで消すとカメラ姿勢が不安定になることがあります。撮影時の背景、位置推定、学習時のマスクを別の工程として考えます。
3DGSから正確な寸法を取れますか
表示機能として距離を測れる環境はありますが、その値の精度は、スケールの与え方、カメラ姿勢、撮影条件、検証方法で決まります。寸法を根拠として使う場合は、既知寸法や別の計測手段との比較が必要です。
まとめ
3DGSは、目的設定、撮影、画像選別、カメラ位置推定、学習、品質確認の順で作ります。
撮影では、写真どうしの重なり、多方向の視点、静止した状態、ぶれの少なさを優先します。
学習後は、撮影位置そのものより、位置の間を移動したときの穴、二重像、ぼけ、浮遊物を確認します。
崩れを見つけたら、症状に応じて撮影、前処理、学習のどこへ戻るかを決めます。
見た目の自然さと寸法精度は別に検証します。
大容量の点群データを確認しやすい3Dモデルへ変換する方法を含め、3D.Core のサービス紹介資料をダウンロードできます。→ 資料ダウンロード
bestat 編集部について
bestat株式会社は、東京大学 松尾研究室発の産業用3Dデータに特化したAIスタートアップです。製造業・インフラ・土木の現場で、画像・動画・点群・360度動画などから3Dデータを生成・処理・活用する「3D.Core」シリーズを開発・提供しています。
https://bestat-data.com/3dcore
参考文献
Inria GraphDeco「3D Gaussian Splatting for Real-Time Radiance Field Rendering」
GraphDeco「gaussian-splatting: Original reference implementation」
Nerfstudio「Using custom data」
Nerfstudio「Splatfacto」

