本文へ移動

G検定(ジェネラリスト検定)

なーふ

NeRF

NeRF

Neural Radiance Fields

NeRFは、少数の入力視点画像からシーンを連続的な5次元関数としてMLPで学習し、新しい視点から見た画像を合成する手法です。

詳しい説明

NeRFが解く問題とシーンの表し方

NeRF(Neural Radiance Fields)は、少数の入力視点の画像をもとに、複雑なシーンを新しい視点から見た画像を合成する手法です。新しい視点からの画像を作ることを新規視点合成と呼びます。NeRFは、シーンの背後にある連続的な体積のシーン関数を最適化することでこれを実現します。

NeRFでは、静的なシーンを連続的な5次元関数として表します。入力は空間内の位置(x, y, z)と視線の方向(theta, phi)を合わせた5次元座標です。出力は2つあります。1つは、その点から各方向へ放たれる放射輝度で、視点に依存するRGB色として表されます。もう1つは、その点での体積密度です。密度は差分的な不透明度のように働き、その点を通過する光線にどれだけ放射輝度が蓄積されるかを制御します。

この関数を近似するのが、畳み込み層を持たない全結合の深層ニューラルネットワーク、つまり多層パーセプトロン(MLP)です。NeRFは、単一の5次元座標(x, y, z, theta, phi)から、単一の体積密度と視点に依存するRGB色への回帰として、このネットワークを学習します。

画像を描く3つの手順と学習の仕組み

ある視点から画像をレンダリングするとき、NeRFは次の3つの手順を踏みます。

1. カメラ光線をシーンの中に進め、サンプリングされた3次元点の集合を作ります。
2. それらの点と、対応する2次元の視線方向をニューラルネットワークに入力し、色と密度の出力の集合を得ます。

3. 古典的な体積レンダリングの技法を使い、それらの色と密度を2次元画像へ蓄積します。

体積レンダリングは自然に微分可能です。そのため、観測された各画像と、この表現からレンダリングした対応する視点の画像との誤差を最小化することで、勾配降下によってモデルを最適化できます。最適化に必要な入力は、カメラの姿勢が分かっている画像の集合だけです。複数の視点にわたって誤差を最小化すると、実際のシーンの内容が存在する場所に高い体積密度と正確な色が割り当てられ、ネットワークがシーン全体として一貫したモデルを予測するよう促されます。

基本実装の課題と2つの改良

基本的な実装のままでは、複雑なシーンに対して十分に高解像度な表現へ収束せず、カメラ光線あたりに必要なサンプル数の点でも非効率でした。NeRFはこれに2つの工夫で対処します。

  • 位置エンコーディング: 入力の5次元座標を位置エンコーディングで変換し、MLPがより高い周波数の関数を表現できるようにします。
  • 階層的サンプリング: 高周波なシーン表現を十分にサンプリングするのに必要な問い合わせの回数を減らす手順です。MLPの表現能力を、見えるシーンの内容がある空間へ振り向けます。

体積表現としての利点

NeRFは体積表現の利点を受け継いでいます。複雑な現実世界の幾何学的形状と見た目を表現でき、投影された画像を使った勾配ベースの最適化に適しています。一方で、離散化されたボクセルグリッドで高解像度の複雑なシーンを表すと、記憶容量のコストが法外に大きくなります。NeRFはシーンをMLPという連続関数で表すことで、この問題を克服しました。

試験で問われること

G検定

  • NeRFのネットワークに入力される5次元座標は何と何から成り、出力は何か説明できますか。
  • NeRFが画像をレンダリングする3つの手順と、体積レンダリングが微分可能であることが学習にどう役立つかを説明できますか。
  • 基本実装の課題に対して導入された位置エンコーディングと階層的サンプリングは、それぞれ何を改善するためのものか確認しましょう。
  • NeRFのシーン表現は、離散化されたボクセルグリッドと比べてどのような点で有利か説明できますか。

最終更新日: 2026/09/14