Gaussian Splatting
フォトリアルな3Dシーン再構築のためのGaussian Splattingを探求します。リアルタイムレンダリングを可能にし、視覚認識のためにUltralytics YOLO26と統合する仕組みを学びましょう。
Gaussian Splattingは、コンピュータグラフィックスやコンピュータビジョンにおいて、一連の2D画像からフォトリアルな3Dシーンを再構築するために使用される現代的なラスタライゼーション技術です。ポリゴンメッシュに依存する従来の3Dモデリングや、シーンを近似するためにニューラルネットワークを使用するNeural Radiance Fields (NeRF)のような最近のAIの進歩とは異なり、Gaussian Splattingはシーンを数百万個の3Dガウス分布(楕円体)の集合として表現します。この手法により、高いフレームレート(多くの場合100 FPSを超える)でのリアルタイムレンダリングが可能になると同時に、卓越した視覚的忠実度が維持され、従来の新視点合成法における主要なパフォーマンスのボトルネックが解決されます。
Gaussian Splattingの仕組み#
中心となるアイデアは、3D空間を暗黙的ではなく明示的に表現することにあります。一般的なワークフローでは、Structure from Motion (SfM)と呼ばれる手法を使用して一連の写真から生成されたスパースなpoint cloudからプロセスが始まります。このクラウド内の各点は、その後3Dガウスとして初期化されます。
training processの間、システムは各ガウスについていくつかのパラメータを最適化します。
- 位置: シーン内の3D座標(X、Y、Z)。
- 共分散: 楕円体の形状と回転を決定します(例:「スプラット」がどの程度引き伸ばされているか、または傾いているか)。
- 不透明度: ガウスがどの程度透明か、あるいは不透明かを示します(アルファ値)。
- Color: Spherical Harmonicsを使用して表現され、視点に応じて色が変化することを可能にし、現実的な反射やライティング効果を捉えます。
「スプラッティング」という用語は、これらの3Dガウスが投影され(あるいは「スプラットされ」)、2Dカメラプレーン上に画像を形成するrasterizationプロセスを指します。この投影は完全に微分可能であり、レンダリングされた画像と元の正解写真の間の差を最小限に抑えるために標準的なgradient descentアルゴリズムを使用できることを意味します。
Gaussian Splatting対NeRF#
どちらの手法もシーンの新しいビューを生成することを目的としていますが、アーキテクチャとパフォーマンスの面で根本的に異なります。NeRF (Neural Radiance Fields)は、neural networkの重みの中にシーンをエンコードします。NeRFをレンダリングするには、すべての単一フレームに対してこのネットワークを何百万回もクエリする必要があり(レイマーチング)、計算コストが高く低速です。
対照的に、Gaussian Splattingは明示的な表現(ガウスのリスト)を使用します。これにより、ビデオゲームがグラフィックスをレンダリングする方法に似た、効率的なタイルベースのラスタライゼーションを活用できるようになります。その結果、Gaussian SplattingはNeRFよりもトレーニングとレンダリングが大幅に高速であり、コンシューマー向けアプリケーションやreal-time inferenceにより適しています。
実社会での応用#
Gaussian Splattingの速度と品質は、さまざまな業界で新たな可能性を切り拓いています。
- バーチャルツーリズムと不動産: クリエイターは、ドローンやスマートフォンを使用して、美術館、史跡、または売り出し中の家を撮影できます。Gaussian Splattingにより、リモートユーザーは6自由度(6DoF)でVirtual Reality (VR)内のこれらの空間を探索でき、従来のフォトグラメトリでは見落とす可能性のあるフローリングの反射などの細かいディテールを確認できます。
- 自動車シミュレーション: autonomous vehiclesを開発する企業は、知覚アルゴリズムをテストするために膨大な量のデータを必要としています。Gaussian Splattingはセンサーデータから現実世界の街区を再構築し、フォトリアルなシミュレーション環境を作成できます。これらの環境内では、Ultralytics YOLO26などのビジョンモデルをテストして、複雑な3Dシナリオ内の危険を正しく識別できることを確認できます。
コンピュータビジョンを用いたSplattingの前処理#
Gaussian Splattingが効果的に機能するには、通常、トレーニング画像が静止している必要があります。ソース写真内の動くオブジェクト(歩行者や車など)は、「フローター」と呼ばれるアーティファクトを引き起こす可能性があります。高度なパイプラインでは、instance segmentationを使用して、スプラットモデルをトレーニングする前にこれらの動的要素を自動的にマスクします。
Ultralytics Platformを使用すると、チームはデータセットを管理し、この前処理フェーズを支援できるモデルをトレーニングできます。以下は、3D再構築用のデータセットのマスクを作成するためにセグメンテーションモデルを使用する方法の例です。
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")AIにおける重要性と将来のトレンド#
Gaussian Splattingは、Deep Learningの学習能力と古典的なコンピュータグラフィックスの効率性を組み合わせたハイブリッド手法への、computer visionにおける転換を表しています。この技術は急速に進化しており、研究者たちはファイルサイズ(大きくなる可能性がある)を圧縮する方法や、テキストプロンプトから3Dアセットを作成するためにgenerative AIと統合する方法を模索しています。GPUsのようなハードウェアアクセラレータが改善し続けるにつれて、Gaussian Splattingは現実世界をデジタル形式でキャプチャしてレンダリングするための標準になると予想されます。






