AppleのSHARP

はじめに

 2025年12月にAppleが、1枚の画像から3D Gaussian Splatting(3DGS)を生成するエンジンを公開した。名前は「SHARP」である。安価なGPU(VRAM6GB程度)を用いて、数秒で計算できるのが特長である。また、商用利用可能かつ、改変再配布可能なライセンス形態を持つ。今回は、このSHARPを紹介する。

そもそも3DGSとは?

 3DGSとは点群やポリゴンとは異なる新しい3D表現方法である。簡単に説明すると以下のようになる(下図参照)。

  • 3D空間内にたくさんの楕円体(3Dガウス関数)を配置する。
  • 各楕円体には属性(位置、広がり、向き、色、透明度)が与えられる。
  • 楕円体の数と各楕円体が持つ属性は、最適化計算(後述)により決定される。
  • 任意の視点から、このたくさんの楕円体を見ると、任意視点から見た3D物体の画像を表現できる。


上記を実現するには、あらかじめ撮影された多視点画像が必要になる。この多視点画像を再現できるように最適化計算を行い、適切な場所に、適切な属性を持つ楕円体を置くことになる。ここで大切なことは、3DGSの計算には深層学習を使わないという点である。すべての楕円体の属性と位置を決めたあと、3DGSから任意視点の画像を作る手順は以下の通りである。

  1. 画像平面(カメラの位置)を決める。
  2. 各楕円体を、カメラ視線方向の深度でソートする。
  3. 各楕円体を画像平面に射影し、楕円(2D)を得る(下図参照)。
  4. ソートした順に(画像平面に近い方から奥に向かい)アルファ合成を行い、各画素の色を決める。


こちらに、論文著者らの公式サイトがあり、デモ映像を見ることができる。3DGSを描画するには専用のViewerが必要になる。例えばこれがある。

 ここで説明した3DGSを、SHARPの3DGSと区別するため「オリジナルな3DGS」と呼ぶことにする。

SHARPとオリジナルな3DGSとの違い

 SHARPは、深層学習を用いて3DGSを予測する手法である。3DGS作成時の、オリジナルな手法との違いは以下の通り。

上の表にある「SfM」とはStructure from Motionのことであり、多視点画像からカメラ姿勢を算出する手法である。COLMAPと呼ばれるツールを使うことが多い。ソースコードは、ここにある。

SHARPの大まかなロジック

 最初に、一枚の画像を入力してから3DGSを作成するまでのニューラルネットワークの構成を以下に示す。原論文から抜粋した。

左上のInput Imageが入力画像である。そのあと、4つのニューラルネットワーク(緑と橙)を経て3DGS(G=G_0+\delta G)が作られる。そのあと、Gを用いて、右上のNovel views(任意視点の画像)が描画される。
 下図に、SHARPの学習時フローを示す。図中の「NN」が上のネットワーク構造に相当する。最初に合成画像(カメラ位置も既知)を使い教師あり学習を行う。

そのあと、実際の撮影画像を使い自己教師あり学習を行う。

最初に3Dとして「何が正しいのか」を合成画像を使い教え、次のステップで実際の撮影画像を使い「実世界の見た目」に適応させる。

実験

 SHARPの公式サイトにあるソースコードを使い、3枚の画像から3つの3DGSを作成した結果を以下に示す。動作環境は以下の通り。

  • AWS EC2 g4dn.xlarge
  • CPU: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
  • RAM: 16GB
  • GPU: Tesla T4
  • VRAM: 16GB

ここに掲載する3DGSの動画は、ブログの容量制限のため、動画サイズを10分の1に落としてある。実際にはもう少し画質は良い。

実験1

 最初の画像(引用元)は以下である。画像サイズは6000×4000。

SHARPから作成した3DGSを動画で示したのが以下である(処理時間30秒程度)。

実験2

 次の画像(引用元)は以下である。画像サイズは4928×3280。

SHARPから作成した3DGSを動画で示したのが以下である(処理時間は30秒程度)。

実験3

 最後の画像(引用元)は以下である。画像サイズは4928×3280。

SHARPから作成した3DGSを動画で示したのが以下である(処理時間は30秒程度)。

まとめ

 Apple社は、他のテック企業(Google、Microsoft、Meta、Amazonなど)と異なり生成AIに力を入れていない(最近、GoogleのGeminiを採用すると発表があった)。そのため、最近では影が薄いが、今回SHARPという面白いアルゴリズムをオープンソースとして公開した。自社で開発しているVision ProやiPhone搭載の写真アプリなどで使われているのかもしれない。
 SHARPは1枚の画像から3DGSを作るため、オリジナルな3DGSと比べれば任意視点画像のクオリティは劣るが、原論文にも記載があるようにSHARPの目標は「元の画像から少し視点を動かした範囲」を自然に見せることである。そして、それを「短時間・低リソース・低コスト」で実現している点は注目に値すると思う。

Kumada Seiya

Kumada Seiya

仕事であろうとなかろうと勉強し続ける、その結果”中身”を知ったエンジニアになれる

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP