Amazon Web Services ブログ
3D Gaussian Splatting: 効率的に大規模な 3D シーンを再構成する
はじめに
従来、高品質な 3D コンテンツの制作は複雑で時間がかかり、リソースを大量に消費するプロセスでした。3D モデリングやテクスチャリングから、最終的なシーンの組み立てやレンダリングまで、企業は専門的なスキルセットを必要としていました。特に現実世界の要素をデジタルで再現することが目的の場合、リアルな仮想環境、アセット、キャラクターを作り上げるには多大な労力を要しました。
例えば、この AWS ブログでは、LiDAR スキャン、フォトグラメトリ、Neural Radiance Fields (NeRFs) などの技術を用いて、現実世界のオブジェクトや環境をデジタル化するプロセスを簡素化するリアリティキャプチャ技術について詳しく説明しています。その核となるアイデアは、シーンの複数の視点を捉え、それらの視点間の類似点と相違点を分析することで、シーンの深度と形状を推定するというものです。この自動化されたアプローチにより、手動での 3D モデリングの必要性がなくなり、従来の手法と比較して短時間で高品質なアウトプットを得ることができます。しかし、これらの技術には高価で特殊なハードウェアが必要であり、計算負荷が高く、通常はリアルタイムレンダリングのパフォーマンスが低いという課題があります。
最近、3D Gaussian Splatting と呼ばれる新しい 3D Reconstruction およびラスタライゼーション技術が、このワークフローを加速させながら高品質なアウトプットを提供する可能性を示しています。この記事では、3D Gaussian Splatting とは何か、従来の 3D Reconstruction やリアリティキャプチャのアプローチに比べてどのような利点があるのか、3D コンテンツ制作にとってどのような意味を持つのか、そして組織が AWS を活用して 3D Gaussian Splatting を利用し、実世界の 3D アセットを大規模に再構成する方法について探っていきます。
3D Reconstruction とは?
3D Gaussian Splatting について詳しく説明する前に、3D Reconstruction の概念を理解することが重要です。このプロセスは、写真やビデオフレームなどの 2D 入力を使用して、3D シーンやオブジェクトを再現し再構成(Reconstruction)することを含みます。例えば、カメラでシーンを撮影し、それをインタラクティブな 3D 環境に変換することなどが挙げられます。LiDAR のような 3D スキャン技術とは異なり、3D Reconstruction 技術は深度データを明示的な入力として提供するのではなく、2D 画像からカメラポーズを推定し、深度情報を推論して 3D 空間でシーンを再構成する必要があります。さらに、3D Reconstruction は multi-view stereo、structure from motion、shape from shading/texture/focus などの技術を活用して 2D から 3D を再現する複雑なコンピュータビジョンの問題として捉えることができます。
フォトグラメトリは 3D Reconstruction の最も古い例として、1980 年代から航空写真、測量、地図作成などの様々な用途で広く使用されてきました。以前の AWS ブログで説明されているように、フォトグラメトリは Structure from Motion と Multi-View Stereo を活用してシーンのポイントクラウドを生成します。そして、Poisson や Ball-pivoting などの様々な手法を用いて、ポイントクラウドからテクスチャを重ねたポリゴンベースの 3D メッシュを作成することができます。より最近の 2020 年には、Neural Radiance Fields(「NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis」)が新しい 3D Reconstruction 技術として導入され、再構成されたシーンをメッシュではなくボリュームとして表現しました。これは、ニューラルネットワークを使用して光の放射特性を推定し、被写体周りの人工的な新しい視点を作成することで実現されました。フォトグラメトリと比較して、この新しいアプローチは一般的により効率的で、より速く出力を生成しますが、細部のレベルは時に劣ることがあります。
3D Gaussian Splatting とは?
2023 年、SIGGRAPH で発表された論文「3D Gaussian Splatting for Real-Time Radiance Field Rendering」で、3D Gaussian Splatting が NeRF の概念を基に新しい 3D Reconstruction 手法として紹介されました。主な違いは、NeRF のように光の放射輝度を推定するためにニューラルネットワークを使用して新しい視点を作成するのではなく、3D Gaussian Splatting は視点依存の「ガウス分布」で 3D 空間を埋めることで新しい視点を生成するという点です。これらは、光の振る舞いを模倣するように色、密度、位置が調整された、ぼやけた 3D プリミティブとして現れます。
従来の手法がポリゴンメッシュの三角形を描画するのに対し、3D Gaussian Splatting はガウス分布を描画(または splat)します。これにより、数十億のガウス分布を使用して複雑な実世界の環境を再現する立体的な表現が可能になります。さらに重要なのは、3D Gaussian Splatting は NeRF とは異なり、ニューラルネットワークを使用せず、代わりに 確率的勾配降下法などの従来の機械学習最適化手法を活用している点です。この手法は NeRF と類似していますが、ニューラルネットワークのレイヤーを使用しないため、計算効率が大幅に向上しています。
3D Gaussian Splatting 技術は、従来の技術と比較して一般的に視覚品質が向上し、生成時間が短縮されたフォトリアルな 3D Reconstruction を提供します。さらに、他の利点もあり、3D Reconstruction の新しい最先端技術として位置付けられています。
フォトリアルな 3D Reconstruction の最適化
3D Gaussian Splatting には、フォトグラメトリや NeRF などの従来の 3D Reconstruction 技術に比べていくつかの重要な利点があります:
- 生成時間の短縮: 3D Gaussian Splatting は、3D 空間を明示的にモデル化するためのニューラルネットワークを使用せず、視点依存のガウス分布を直接描画します。これにより、3D シーンの再構成に必要な計算労力が大幅に削減され、処理能力と時間の両方が節約されます。
- 優れたリアルタイムパフォーマンス: 3D Gaussian Splats のボリュメトリックでポイントクラウドベースの性質により、ポリゴンベースのメッシュと比較してリアルタイムでのレンダリングが容易になります。また、3D Gaussian Splat 出力は NeRF よりもコンパクトであるため、Web やデバイス上でもパフォーマンスの高いリアルタイムアプリケーションが可能になります。
- より安定したアウトプット: 3D Gaussian Splatting のアプローチは、ノイズに対してより高い耐性を示します。視覚的なアーティファクトが少なく、透過、反射、空白スペースなど、従来の 3D Reconstruction で課題になりやすい表現を適切に処理します。
これらの利点により、3D Gaussian Splatting は実世界を 3D で捉えて再現する際の障壁を大幅に低下させました。これは以下のことを意味します:
- 3D アセット作成の参入障壁の低下と市場投入までの時間短縮: 従来の専門的な役割や使用例を超えて、3D の採用が加速し、使用範囲が拡大しました。複雑な 3D オブジェクトをモデリングするための専門知識はもはや必要ありません。必要なのはスマートフォンのカメラと、3D Gaussian Splatting を利用した 3D Reconstruction パイプラインのエンドポイントだけです。
- インタラクティブでリアルタイムな3Dコンテンツ体験がより身近に: レンダリングに必要なハードウェア要件が軽減され、リアルタイムでの利用パフォーマンスが向上したことで、ライブ 3D コンテンツがあらゆるメディアで一般化されつつあります。特に一般消費者向けのコンピューティング、モバイル、AR/VR 分野で顕著です。高価な高性能コンピューティング環境がなくても、フォトリアルな 3D アセットを使用したインタラクティブな体験を大規模に提供できるようになりました。
3D Reconstruction 技術としての 3D Gaussian Splatting は、バーチャルプロダクションからデジタルツイン、E コマースの製品可視化に至るまで、複数の産業分野で 3D アセット作成へのアプローチを変革する可能性を秘めています。これらの体験は、インタラクティブで高忠実度な 3D アセットの性質から恩恵を受けます。そのすべてがクラウドを活用することで、よりスケーラブルで配信可能、そしてパフォーマンスの高いものとなります。
AWS を使用した大規模な 3D Gaussian Splatting
3D Gaussian Splatting は、他の 3D Reconstruction 技術と同様に、アセットの生成、管理、そしてグローバルなエンドユーザーへの配信において、クラウドのスケール、パフォーマンス、コンテンツ配信機能を活用するのに適しています。このようなワークフローを構築する方法は多数あります。 以下は、AWS での 3D Gaussian Splatting ワークフローの例で、全体的なプロセスを高レベルで図示しています:
このワークフローは以下のコンポーネントで構成されています:
- 入力: 2D の動画や画像メディアが取り込まれ、ワークフローへの入力として使用されます。
- ワークフロー: ワークフローは複数のパイプラインで構成され、それぞれが独立して直列に処理されます。
- パイプライン: 各パイプラインは、標準化された入出力を持つ自己完結型のタスクです。パイプラインの使用により、スコープを区画化し、互いに独立して実行できる個別のプロセスを分離できます。このモジュール性により、各パイプラインのコードベースを最適化し、これらのプロセスを他のワークフローで再利用することができます。この例では、画像処理、Structure from Motion、3D Gaussian Splatting のトレーニングと初期化、3D Gaussian Splatting ビューワーのパイプラインがあります。
- 出力: 3D Gaussian Splatting の生成では、ユーザーが Web ブラウザで適切なビューワーを使用して閲覧できる 3D オブジェクトが出力されます。
次の図は、前述の 3D Gaussian Splatting ワークフローがどのように AWS サービスを使用して実装できるかを示しています:
この図は以下の主要コンポーネントを示しています:
- 開発者は AWS Cloud Development Kit (CDK) を使用して、使用前に一度だけインフラストラクチャを作成およびデプロイします。
- AWS CDK は、デプロイ中に必要なインフラストラクチャの情報(URI、ARN)を AWS Systems Manager Parameter Store に保存します。
- デプロイ後、ユーザーはインターネットに接続されたローカルブラウザでウェブサイトの URL を起動します。
- ウェブサイトは Amazon Simple Storage Service (S3) でホストされ、Amazon CloudFront を使用してグローバルに配信されます。
- ユーザーは Amazon Cognito ユーザープールを使用して認証情報を入力してログインします。
- ユーザーは UI で新しいアセット(動画または一連の画像)をアップロードし、API コマンドを発行して 3D Gaussian Splatting ワークフローを開始します。
- ワークフローの状態とアセットの詳細は Amazon DynamoDB に保存されます。
- AWS Step Functions ワークフローは、パイプラインを実行するプロセスハンドラーとして Amazon Elastic Container Service (ECS) を呼び出します。
- Amazon ECS は、コンテナ用の Amazon Elastic Container Registry (ECR) 内のイメージを使用します。
- Amazon ECS は、3D Gaussian Splatting パイプラインを実行するためのコンピューティングリソースを動的に確保し、コンテナをホストします。
- 生成されたアセットは Amazon S3 からパイプラインにロード/保存されます。
- プロセスハンドラーが完了すると、ワークフローも完了します。
- データベースは状態とワークフローの詳細で更新されます。
- Amazon Simple Notification Service (SNS) を使用して、アセット作成完了時にユーザーに通知できます。
- ユーザーは Web ブラウザで splat を表示できます。
- Amazon CloudWatch を使用してログにアクセスできます。
AWS での 3D Gaussian Splatting を含むワークロードは、AWS のマネージドサービスと共にオープンソースソフトウェアやサードパーティツールを統合できます。例えば、画像の前処理にオープンソースツールを使用し、AWS のマネージドサービスを活用して再構成ジョブを実行することができます。
このワークフローに統合できる AWS サービスの例は他にもたくさんあります。AWS で 3D Gaussian Splatting のワークロードを実行することで、顧客は以下のようにアプリケーション機能を拡張できます:
- 弾力的な分散処理: Amazon ECS、Amazon Elastic Kubernetes Service (EKS) と AWS Batch を使用して、3D Reconstruction ジョブをパッケージ化し、複数のコンピュートノードに並列化および分散させることで、生成時間を短縮し、必要に応じてスケールアップ・ダウンできます。AWS Deadline Cloud のようなコンピュートファームマネージャーを使用して Open Job Description (OpenJD) の互換性を活かして再構成パイプラインの実行を効率的に制御します。
- コンテンツの保存と管理:AWS のオープンソース Visual Asset Management System (VAMS) ソリューションを利用して、Amazon S3 と Amazon DynamoDB を活用し、スキャンした 3D アセットを保存、管理、取得して内部コラボレーションを行います。
- グラフィックスコンピューティング:Amazon Elastic Compute Cloud (EC2) と、NVIDIA L4 Tensor Core GPUを搭載した最新世代の Amazon EC2 G6 インスタンスを活用することで、グラフィックスアプリケーションで 3D アセットを効率的に処理し、活用することができます。
- コンテンツ配信とストリーミング:Amazon CloudFront を使用して、再構成されたインタラクティブな 3D コンテンツを、低レイテンシーでエッジから、Web やモバイルでグローバルにストリーミングおよび配信します。
- 分析とインサイト:Amazon Kinesis、Amazon Athena、Amazon QuickSight などの AWS 分析サービスを活用して、3D Reconstruction パイプラインからインサイトを得ます。パイプラインのパフォーマンスを追跡し、ボトルネックを特定し、大規模にコンピューティング効率を最適化します。
- AI/ML 統合:Amazon SageMaker や Amazon Bedrock などのマシンラーニングおよび生成 AI サービスを統合して、例えば画像セグメンテーションやセマンティックラベリングなどのコンピュータビジョンを通じて、3D Reconstruction をさらに強化します。
- デジタルツイン:AWS IoT TwinMaker でスキャンした 3D アセットを使用して、実世界のシステムや操作を表現するデジタルツインアプリケーションを強化します。
AWSは、3D Gaussian Splatting ワークロードのライフサイクル全体をサポートする幅広いサービスを提供しています。これには、データ取り込み、分散処理、ストレージ、配信、レンダリング、分析、AI/ML、デジタルツインが含まれます。
まとめ
昨年、論文が発表されて以降、3D Gaussian Splatting は 3D アセットおよびコンテンツ制作の分野に革新をもたらし、3D Reconstruction リアリティキャプチャ技術のアクセシビリティと効果を大幅に向上させました。
3D Gaussian Splatting の分野は急速に進化を続けており、AWS パートナーからの継続的なイノベーションが行われています。NVIDIA は「Text-to-4D with Dynamic 3D Gaussians and Composed Diffusion Models」というアプローチを探求し、3D Gaussian Splatting と AI 拡散モデルを統合して、テキスト入力を通じてダイナミックなアセットを生成することを目指しています。また、Meta は「Robust Gaussian Splatting」に取り組んでおり、視覚的な不整合を減らすことで、スマートフォンでの撮影から得られる 3D Reconstruction 出力の堅牢性を向上させることに焦点を当てています。
AWS では、スケーラブルな 3D Gaussian Splatting パイプラインを実現するためのクラウドインフラストラクチャ、サービス、およびパートナーエコシステムを提供しています。これには、動画データの取り込み、モデル生成のためのコンピューティング、3D アセットの保存と管理、そしてあらゆるデバイスへのリアルタイムレンダリングと配信が含まれます。これにより、メディア、小売業、製造業などの様々な産業分野のアプリケーションにフォトリアルな 3D 機能を組み込むプロセスが簡素化されます。
私たちは、皆さんが 3D Gaussian Splatting や 3D Reconstruction 技術を自ら試すことを推奨します。GitHub 上の「3D Gaussian Splatting for Real-Time Radiance Field Rendering」リポジトリを参照して実装手順を確認し、今すぐ AWS 上でデプロイしてみてください。
注) 上記リポジトリで公開されているソースコードの利用にあたっては事前にライセンスを確認し、その範囲内でご利用ください。
著者について
この記事は 3D Gaussian Splatting: Performant 3D Scene Reconstruction at Scale を翻訳したものです。翻訳はソリューションアーキテクトの小森谷が担当しました。