Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Gaussian Splatting

ガウシアンスプラッティングは、写真から数百万個の3Dガウスプリミティブを用いてフォトリアルな3Dシーンを再構築し、リアルタイムでレンダリングします。学習、NeRF、撮影について解説します。

ガウシアンスプラッティングは、3D Gaussian Splatting(3DGS)とも呼ばれ、一般的な写真から写実的な3Dシーンを再構築し、その新しい視点をリアルタイムでレンダリングする技術です。シーンを、位置、形状、不透明度、視点依存の色をそれぞれ持つ、柔らかな楕円体である何百万もの3Dガウス分布として表現します。画面に投影(「スプラット」)して合成することで画像を描画します。SIGGRAPH 2023で発表されたリアルタイム放射輝度場レンダリングのための3Dガウシアンスプラッティングは、最高水準のニューラル放射輝度場(NeRF)と同等の画質を達成し、1080pで毎秒30フレーム以上のレンダリングを実現しました。広大で境界のないシーンでこれを達成した手法は、それ以前にはありませんでした。これは、新規視点合成と3D再構築の手法です。

ガウススプラッティングの仕組み#

各ガウス分布は、学習可能な数値を59個保持します。内訳は、3D位置、3Dスケール、共分散(形状と向き)を定義する4要素の回転クォータニオン、不透明度、および球面調和関数の係数48個です。色チャンネルごとに16個の係数を使い、反射や光沢を捉えるために、見る方向に応じて色を変化させます。訓練は、カメラのキャリブレーション時にStructure from Motion(SfM)が生成する疎な点群から始まり、各点に1つずつガウス分布を配置します。各イテレーションで訓練視点を1つレンダリングし、L1損失とD-SSIM損失を組み合わせた重み付き損失で実際の写真と比較し、微分可能レンダラーを介した勾配降下法で各ガウス分布を更新します。100イテレーションごとに適応的な密度制御を行い、再構築が不十分な領域では小さなガウス分布を複製し、細部を覆いすぎている大きなガウス分布を分割し、ほぼ透明なものを削除します。論文では、この処理により各シーンのガウス分布数が100万から500万に増加しました。

フレームを描画する際、レンダラーは各3Dガウス分布を画像平面上の2D楕円に投影し、画面を16×16ピクセルのタイルに分割します。各タイルと重なるガウス分布を深度順に単一のGPU基数ソートで並べ、各ピクセルについて手前から奥の順にアルファ合成します。シーンはプリミティブの明示的なリストで表現されるため、レンダリングはゲームエンジンのラスタライザーのように動作し、ピクセルごとにニューラルネットワークを評価する必要がありません。

ガウシアンスプラッティングとNeRF・メッシュの比較#

NeRFはシーンをニューラルネットワークの重みに暗黙的に保存し、各カメラ光線に沿った多数の点でネットワークを評価してレンダリングします。ガウシアンスプラッティングはシーンを明示的に保存するため、レンダリングはソートと合成だけで済みます。元の論文と同じハードウェアでは、Mip-NeRF360の訓練に平均48時間かかり、1フレームのレンダリングに約10秒を要しました。一方、ガウシアンスプラッティングは35~45分の訓練後に同等かやや高い品質に達し、リアルタイムでレンダリングしました。明示的な表現にはメモリコストがあります。ガウス分布あたり59個の数値を使うため、300万個のガウス分布を含むシーンには約700 MBの32ビット浮動小数点数が必要であり、元の実装では大規模シーンの訓練時にGPUメモリのピーク使用量が20 GBを超えることもありました。スプラットには定義された表面がないため、衝突形状やCAD形式の編集が必要なアプリケーションでは、後続の手法を使ってメッシュに変換する必要があります。また、動くシーンには4Dガウシアンスプラッティングなどの拡張が必要です。

ガウシアンスプラッティング用データの撮影#

キャプチャデータは、静的なシーンの周囲を移動しながら撮影した、互いに重なり合う写真または動画フレームの集合です。通行人や車など、撮影中に動くものはフレームによって写ったり写らなかったりするため、最適化処理ではフローターと呼ばれる半透明のアーティファクトとして説明されることがあります。そのため訓練パイプラインでは、動く物体を除外するマスクを受け入れます。Nerfstudioのデータ形式では、無視するピクセルを黒で示す白黒マスクを使用します。YOLO26のインスタンスセグメンテーションモデルは、各フレーム内のすべての人物をセグメント化して、これらのマスクを自動生成します。

import cv2
from ultralytics import YOLO

# YOLO26のインスタンスセグメンテーションモデルを読み込みます
model = YOLO("yolo26n-seg.pt")

# フローターのよくある原因となる人物だけをセグメント化します(COCOクラス0)。
results = model("https://ultralytics.com/images/bus.jpg", classes=[0], retina_masks=True)
result = results[0]

# 訓練対象の静的なシーンは白で、無視する人物は黒で示されます。
people = result.masks.data.sum(dim=0) > 0
keep_mask = (~people).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_mask.png", keep_mask)

保存されたbus_mask.pngは写真と同じ全解像度です。これはretina_masks=Trueが元の画像サイズでマスクを返すためで、フレーム内の人物は全員黒で表示されます。

用途#

  • 不動産とバーチャルツアー: スマートフォンやドローンで撮影した住宅、博物館、遺産施設が、訪問者がブラウザーやVRヘッドセットで自由に探索できるシーンになります。床や窓の反射も保持されます。
  • 視覚効果とバーチャルプロダクション: 映画やゲームのチームは実在のロケーションをスプラットとして撮影し、写実的な背景やセットの参考資料として使用します。
  • デジタルツインとマッピング: 地理空間プラットフォームでは、都市、建設現場、インフラの大規模なスプラット再構築データを、従来の3Dタイルと並べてストリーミングします。
  • 運転とロボティクスのシミュレーション: 実際の走行を再構築すると、自動運転車のチームは記録したシーンを新しいカメラ位置から再レンダリングし、認識モデルをテストできます。

gsplatなどのオープンソースライブラリは、スプラット訓練用のCUDAラスタライザーを提供しています。またKhronos Groupは、Cesium、Esri、Niantic Spatial、NVIDIA、Huawei、Autodeskの貢献者と共同開発した、ガウシアンスプラットを保存するためのglTF 2.0拡張機能KHR_gaussian_splattingを承認しています。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう