Gaussian Splatting
フォトリアルな3Dシーン再構成を実現するGaussian Splattingをご確認ください。リアルタイムレンダリングを可能にし、Ultralytics YOLO26と統合してビジョンタスクに活用する方法を学べます。
ガウシアン・スプラッティングは、コンピューターグラフィックスやコンピュータービジョンで使用される最新のラスタライズ技術で、複数の2D画像からフォトリアリスティックな3Dシーンを再構成します。ポリゴンメッシュに依存する従来の3Dモデリングや、ニューラルネットワークを使用してシーンを近似するNeural Radiance Fields(NeRF)などの近年のAI技術とは異なり、ガウシアン・スプラッティングでは、数百万個の3Dガウス分布(楕円体)の集合としてシーンを表現します。この手法により、非常に高い視覚的忠実度を維持しながら、高いフレームレート(多くの場合100 FPS超)でのリアルタイムレンダリングが可能になり、従来の視点合成手法における大きなパフォーマンスボトルネックを解消します。
ガウシアン・スプラッティングの仕組み#
基本的な考え方は、3D空間を暗黙的ではなく明示的に表現することです。一般的なワークフローでは、まずStructure from Motion(SfM)と呼ばれる手法を使用して、複数の写真から生成した疎な点群を用意します。次に、この点群内の各点を3Dガウスとして初期化します。
トレーニングプロセスでは、システムが各ガウスについて複数のパラメーターを最適化します。
- 位置: シーン内の3D座標(X、Y、Z)です。
- 共分散: 楕円体の形状と回転を決定します(例: 「スプラット」がどの程度伸びたり傾いたりしているか)。
- 不透明度: ガウスがどの程度透明または不透明に見えるかを表します(アルファ値)。
- 色: 球面調和関数を使用して表現され、見る角度に応じて色を変化させることで、現実的な反射や照明効果を再現します。
「スプラッティング」という用語は、これらの3Dガウスを2Dカメラ平面に投影、つまり「スプラット」して画像を形成するラスタライズプロセスを指します。この投影は完全に微分可能であるため、標準的な勾配降下法アルゴリズムを使用して、レンダリング画像と元のグラウンドトゥルース画像との差を最小化できます。
ガウシアン・スプラッティングとNeRFの比較#
どちらの手法もシーンの新しい視点を生成することを目的としていますが、アーキテクチャとパフォーマンスは根本的に異なります。NeRF(Neural Radiance Fields)は、ニューラルネットワークの重みの中にシーンをエンコードします。NeRFのレンダリングでは、1フレームごとにこのネットワークへ数百万回クエリを実行する必要があり(レイマーチング)、計算コストが高く、処理も低速です。
一方、ガウシアン・スプラッティングは、ガウスのリストによる明示的な表現を使用します。これにより、ビデオゲームでグラフィックスをレンダリングする方法と同様の、効率的なタイルベースのラスタライズを利用できます。その結果、ガウシアン・スプラッティングはNeRFよりもトレーニングとレンダリングが大幅に高速になり、コンシューマー向けアプリケーションやリアルタイム推論により適した手法となっています。
実世界での利用例#
ガウシアン・スプラッティングの速度と品質により、さまざまな業界で新たな可能性が広がっています。
- バーチャルツーリズムと不動産: クリエイターは、ドローンやスマートフォンを使用して、博物館、史跡、または販売中の住宅を撮影できます。ガウシアン・スプラッティングにより、遠隔地のユーザーは6自由度(6DoF)のバーチャルリアリティ(VR)でこれらの空間を探索でき、従来のフォトグラメトリでは捉えにくい、木製の床に映る反射などの細部も確認できます。
- 自動車シミュレーション: 自動運転車を開発する企業には、認識アルゴリズムをテストするために膨大な量のデータが必要です。ガウシアン・スプラッティングは、センサーデータから実世界の市街地を再構成し、フォトリアリスティックなシミュレーション環境を作成できます。こうした環境内で、Ultralytics YOLO26のようなビジョンモデルをテストし、複雑な3Dシナリオで危険を正しく識別できることを確認できます。
コンピュータービジョンによるスプラッティングの前処理#
ガウシアン・スプラッティングを効果的に機能させるには、通常、トレーニング画像が静止している必要があります。元の写真に含まれる歩行者や車などの動く物体は、「フローター」と呼ばれるアーティファクトを引き起こす可能性があります。高度なパイプラインでは、インスタンスセグメンテーションを使用して、スプラットモデルのトレーニング前にこれらの動的要素を自動的にマスクします。
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における意義と今後のトレンド#
ガウシアン・スプラッティングは、Deep Learningの学習可能性と従来のコンピューターグラフィックスの効率性を組み合わせたハイブリッド手法へと、コンピュータービジョンが移行していることを示しています。この技術は急速に進化しており、研究者はサイズが大きくなる可能性のあるファイルを圧縮する方法や、生成AIと統合してテキストプロンプトから3Dアセットを作成する方法を模索しています。GPUなどのハードウェアアクセラレーターが引き続き進歩するにつれて、ガウシアン・スプラッティングは、現実世界をデジタル形式でキャプチャーし、レンダリングするための標準になる可能性があります。









