【論文紹介】pixelSplat: 画像ペアからリアルタイム3D Gaussian Splattingを生成する新手法

近年、現実世界をデジタルで再現する3D再構築や、既存の画像から新しい視点画像を生成する「新規視点合成」の技術が目覚ましい発展を遂げています。特に、NeRF(Neural Radiance Fields)のような「神経放射場」に基づく手法は高精度な結果をもたらしましたが、その計算コストの高さや、明確な3Dモデルを直接生成しないという性質が課題として残っていました。

そんな中、リアルタイムレンダリングと高い品質を両立する「3D Gaussian Splatting (3D-GS)」という画期的な手法が登場し、大きな注目を集めています。しかし、3D-GSは単一のシーンに対して多数の画像と時間をかけて最適化する必要があり、汎用的な応用にはまだハードルがありました。

今回ご紹介する「pixelSplat」は、この3D-GSのメリットを最大限に引き出し、たった2枚の画像から、スケーラブルで汎用的な3D Gaussian Splattingモデルを生成するという、まさに次世代の3D再構築技術を提案しています。

論文タイトル: pixelSplat: 3D Gaussian Splats from Image Pairs for Scalable Generalizable 3D Reconstruction
ArXivリンク: arXiv:2312.12337v4


pixelSplatとは?新たな3D再構築の挑戦

pixelSplatは、与えられた2枚の入力画像とそれぞれのカメラ情報から、そのシーンの3D Gaussian Splatting表現を推論する「フィードフォワードモデル」です。これにより、単一の順方向パスで3Dシーンを再構築し、新しい視点からの画像をリアルタイムでレンダリングすることが可能になります。

この技術が画期的なのは、これまでの手法が抱えていた以下の課題を克服した点にあります。

  1. 計算コストと速度: 従来の神経放射場ベースの手法は、新しい視点をレンダリングするたびに複雑な計算が必要で、リアルタイムでの利用は困難でした。ライトフィールドトランスフォーマーのような高速化された手法でも、リアルタイムには程遠い状態でした。pixelSplatは、既存のライトフィールドトランスフォーマーと比較して、レンダリング時間を2.5桁(約650倍)も短縮しながら、高品質な画像を生成します。
  2. 3D表現の欠如: 多くの高速な新規視点合成手法は、内部的に明確な3Dシーン表現を持たず、「ブラックボックス」として機能していました。そのため、再構築されたシーンを編集したり、他の3Dグラフィックスソフトウェアにエクスポートしたりすることができませんでした。pixelSplatは、3D Gaussianという「プリミティブ(基本的な要素)」の集合としてシーンを表現するため、解釈可能で編集可能な3Dモデルを生成します。

しかし、このような画期的なシステムを実現するには、大きな課題がありました。


課題1: 実世界データの「スケール曖昧性」を乗り越える

現実世界で撮影された画像データセットのカメラポーズは、SfM(Structure-from-Motion)ソフトウェアによって計算されることがほとんどです。このSfMは、シーンの形状を正確に再構築できますが、その絶対的なスケール(尺度の大きさ)を任意に決定してしまうという性質があります。つまり、シーンAが「実際の1メートル」を「データ上では10単位」で表現するのに対し、シーンBは「データ上では50単位」で表現するなど、シーンごとにバラバラなスケールが適用されてしまうのです。

このような状況で、ニューラルネットワークがシーンの3D形状(特に深度)を予測しようとすると、どのスケールで予測すれば良いのか分からず、矛盾が生じてしまいます。

pixelSplatは、このスケール曖昧性を解決するために、「二視点エピポーラエンコーダ」を提案しました。

  • エピポーラ線と三角測量: まず、入力された2枚の画像それぞれを特徴マップに変換します。そして、一方の画像のあるピクセルに対応する「エピポーラ線」をもう一方の画像上に引きます。このエピポーラ線上に沿って複数のサンプル点を取得し、元のピクセルとの間で「三角測量」を行うことで、そのサンプル点に対応するシーンの深度を計算します。この深度は、SfMによって決定されたシーン固有のスケールを保持しています。
  • エピポーラ交差注意: 次に、計算された深度情報を「位置エンコーディング」という形で特徴量に付加し、エピポーラ線上のサンプル点の特徴量と、元のピクセルから得られた特徴量の間で「交差注意(クロスアテンション)」を適用します。これにより、モデルは各ピクセルに対応する正しい3D点を、そのスケールを含めて見つけ出すことができます。
  • 自己注意による補完: 片方の画像からしか見えない部分など、エピポーラ線上で対応する点が見つからないピクセルについては、画像内の「自己注意(セルフアテンション)」によって、既に得られた深度情報を画像全体に伝播・補完します。

この仕組みにより、pixelSplatはシーンごとに異なるスケールを正確に推論し、矛盾のない3D再構築を可能にしました。このエピポーラエンコーダがなければ、性能が大幅に低下することが実験で示されています。


課題2: Gaussianプリミティブの「局所最適解」問題への革新的アプローチ

3D Gaussian Splattingは強力な表現ですが、その最適化には「局所最適解」の問題がつきまといます。これは、例えるなら、広大な土地の中で最も低い場所(最適な解)を探すときに、たまたま降り立った場所から少し進んだところにある小さな窪み(局所最適解)に捕まってしまい、それ以上良い場所が見つけられなくなるような状況です。

Gaussianプリミティブは、その影響範囲が局所的であるため、正しい位置から少し離れてしまうと、勾配(次の改善方向を示す情報)が非常に小さくなり、ほとんど動かなくなってしまいます。また、正しい位置に移動するために、途中で他の物体を遮ったりする「空き空間」を通る必要がある場合、損失が増加してしまうため、最適化が難しくなります。

従来の3D-GSでは、この問題を解決するために、勾配情報だけでなく、ヒューリスティックなルール(「適応的密度制御」と呼ばれる、必要に応じてGaussianを生成したり削除したりする非微分的な操作)を用いていました。しかし、pixelSplatのようにニューラルネットワークがGaussianのパラメータを直接予測する「汎用的な設定」では、これらの非微分的な操作を利用することができません。ネットワークは、常に微分可能な形で勾配を受け取り、学習を進める必要があるからです。

そこでpixelSplatは、「確率的深度予測」という画期的な手法を提案しました。

  • 深度バケットと確率分布: Gaussianの「位置(平均)」を直接予測するのではなく、各ピクセルから伸びるレイ(光線)上の深度をいくつかの「深度バケット」に分割します。そして、ニューラルネットワークは、そのレイ上の各深度バケットにGaussianが存在する「確率分布」を予測します。
  • サンプリングと再パラメータ化トリック: フォワードパス(順方向の計算)では、この予測された確率分布から、実際にGaussianが配置される深度バケットを「サンプリング」します。しかし、サンプリング操作自体は微分不可能であり、そのままでは勾配を伝播できません。
    pixelSplatは、この問題を「再パラメータ化トリック」という手法で解決します。具体的には、サンプリングされたGaussianの「不透明度 (α)」を、そのGaussianがサンプリングされた深度バケットの「確率 (ϕz)」に等しく設定するのです。
  • 勾配による確率制御: これにより、バックワードパス(逆方向の勾配計算)では、レンダリング結果の損失から得られる不透明度に対する勾配が、そのまま深度バケットの確率に伝播されることになります。
    • もし、ある深度バケットからサンプリングされたGaussianが、レンダリング結果を改善する方向に貢献した場合、そのGaussianの不透明度が上がり、結果としてその深度バケットが将来より頻繁にサンプリングされるようになります。
    • 逆に、不正確な深度バケットがサンプリングされてレンダリング結果を悪化させた場合、そのGaussianの不透明度が下がり、結果としてその深度バケットが将来サンプリングされる確率が減少します。

このようにして、pixelSplatは非微分的な操作なしに、学習の過程でGaussianプリミティブが適切な位置に「生まれ」たり「消えたり」するような効果を実現し、局所最適解の問題を克服しました。実験では、この確率的予測がない場合、性能が顕著に低下し、画像に斑点状のアーティファクトが発生することが確認されています。


驚異的な性能と効率性

pixelSplatは、RealEstate10kとACIDといった大規模な実世界データセットでの広基線からの新規視点合成タスクにおいて、既存の最先端手法を全ての評価指標(PSNR, SSIM, LPIPS)で上回るという素晴らしい結果を達成しました。

特に注目すべきはその効率性です。

  • レンダリング速度: 既存の最速のベースラインと比較して、約650倍も高速なレンダリングを実現しています。
  • メモリ使用量: 訓練時と推論時の両方で、大幅に少ないメモリ使用量で動作します。

また、pixelSplatは最終的に明確な3D Gaussianプリミティブの集合を生成するため、レンダリングされた画像だけでなく、その背後にある3Dシーンの点群などを可視化することも可能です。これは、従来のライトフィールド表現にはない大きな利点と言えるでしょう。


今後の展望と課題

pixelSplatは、3D Gaussian Splattingを汎用的な3D再構築システムに統合する上で大きな一歩を踏み出しました。しかし、著者らはいくつかの今後の展望と課題も挙げています。

  • Gaussianの融合・重複排除: 現在のモデルでは、2つの参照ビューそれぞれから予測されたGaussianプリミティブを単純に統合しています。より洗練された方法で、重複するGaussianを融合したり、最適なものだけを選別したりすることで、さらなる効率化や品質向上が期待されます。
  • 未観測部分の生成モデリング: 入力画像から見えないシーンの裏側など、全く観測されていない部分の形状を予測する「生成モデリング」は、今後の大きな課題です。拡散モデルなどの生成AI技術との組み合わせが考えられます。
  • カメラポーズ不要な学習: 現在は入力時にカメラポーズが必要ですが、将来的にはこの制約を取り除き、より大規模で多様なデータセットで学習できるようにすることも目標とされています。
  • 多数の参照ビューへの拡張: 2枚の画像から素晴らしい結果を出していますが、より多くの参照ビューを用いた場合のメモリ効率やスケーラビリティも検討の余地があります。

pixelSplatは、リアルタイム3D再構築と新規視点合成の分野に新たな地平を切り開く画期的な研究です。今後の発展に目が離せません。