生成AI 認識 応用

NeRFNeural Radiance Field

位置と方向を尋ねると光を答える3D場面

ポイント
  • NeRFは、複数の角度から撮った写真を集めて、場面を尋ねると答える計算規則ひとつに変える方法です。
  • 尋ねるのは空間のどの位置か、どの方向から見ているか、返ってくる答えはその位置の色と濃さです。
  • 絵を一枚作るときは、画面の点ごとに視線を伸ばしその線上で数百回尋ね、答えを手前から順に積み上げて色を決めます。
  • 方向まで一緒に尋ねるので、ガラスや金属の反射のように角度で変わる光も再現できます。
  • 写真数枚から3D場面を作る点はガウシアンスプラッティングと同じですが、結果をかけらの塊ではなく規則として持つ点が違います。
目次

1たとえで理解する

夜の海で灯台を見ると、方向ごとに明るさが違います。正面からはまぶしく、斜めに立つとぼんやりします。灯台の立つ場所ひとつと見る方向ひとつが決まれば、目に入る光もひとつに決まります。

NeRFは場面を写真や模型として持ちません。空間のどの場所にもごく小さな灯台が一本ずつ立っているとみなし、この場所からあの方向にはどんな光がどれくらい出ているかという問いに答える案内所ひとつだけを持っています。

場面を見るには、画面の点ごとに目から視線をまっすぐ伸ばします。その線が通る場所ごとに案内所に尋ね、返ってきた答えを手前から順に積み上げてその点の色を決めます。できあがった絵がどこかに置かれているのではなく、見るたびに新しく描かれるのです。

2くわしく

写真数十枚で案内所を仕込む

同じ対象を複数の角度から撮った写真数十枚が材料です。写真ごとにどこで撮られたかカメラの位置をまず突き止め、その位置から画面の点一つひとつへ視線を伸ばします。

最初は案内所がでたらめに答えます。視線に沿って集めた答えで絵を作ると、元の写真とはまるで違います。その差の分だけ、案内所が答える癖を少しずつ直します。

これを数十万回繰り返すと、案内所は写真に写った場所と方向についてほぼ写真と同じ答えをするようになります。そうなると写真を撮っていない場所で尋ねても、それらしい答えが返ってきます。写真と写真の間の角度の隙間を埋めているわけです。

案内所は色と濃さを答える

尋ねるとき渡すのは二つです。空間のどの場所か、そしてどの方向から見ているかです。返ってくる答えも二つです。その場所から出る光の色、そしてその場所がどれくらい詰まっているかです。

濃さは霧に似ています。値がほぼゼロなら空っぽの空気なので視線はそのまま通り抜け、値が大きければ固い表面なので視線はそこで止まります。表面がどこかを別に教えなくても、濃さが急に大きくなる場所がそのまま表面になります。

視線上の答えを積み上げて一点を塗る

画面の一点を塗るには、その点から場面の中へ視線をまっすぐ伸ばします。その線上に位置を数十から数百個取り、位置ごとに案内所に尋ねます。

返ってきた答えは手前から積み上げます。手前ですでに濃い答えが出ていれば奥の色は隠れてほとんど埋もれ、手前が空いていれば奥の色がそのまま乗ります。こうして集めた色がその点の最終的な色になります。

絵を一枚作るには、画面のすべての点についてこれをしなければなりません。一点への問いが数百回なので、全体の回数はとてつもない数になります。NeRFが遅いと言われる理由がここにあります。

方向によって答えが変わる

同じ場所でもどちら側から見るかによって色が変わることがあります。グラスの反射、金属の光り、濡れた床に映る光がそうです。尋ねるとき方向も一緒に渡すのはこのためです。

方向を抜いて場所だけを尋ねると、光っていた表面がのっぺりしたペンキ塗りのように出ます。方向まで入れると、首を動かしたとき反射がついて動く感覚が生まれます。反面、写真が足りない角度ではこの自由さが裏目に出て、宙にぼんやりした霧のような染みができることもあります。

ガウシアンスプラッティングと分かれる点

ガウシアンスプラッティングも写真数枚から同じことをします。分かれるのは結果を何として持つかです。スプラッティングは空間にまいたかけらの塊という目に見える物を、NeRFは尋ねると答える計算規則を持っています。

だからスプラッティングはかけらを画面に押し付けて描くだけなので速く、NeRFは視線ごとに数百回尋ねなければならないので遅いです。反面NeRFは、霧や半透明のガラスのように表面がはっきりしない対象を滑らかに描くのに強いです。

3もう少し正確に

NeRFはNeural Radiance Field(神経放射輝度場)の略です。案内所の役を果たすのは大きくない神経網ひとつです。位置と方向を入れると色と密度を返すよう学習され、場面ごとに別々に学習します。視線上の値を手前から混ぜて一点の色を決める計算は、体積レンダリングと呼ばれます。

たとえがずれるところもあります。灯台は自ら光を放ちますが、案内所が答える色はその場所で新しく生まれた光ではなく、どこかから来た光がその場所を通って見える結果です。だから照明を差し替えて描き直すことは、基本の形ではできません。灯台は港にいくつかしかありませんが、ここで答えを得る場所は空間のどこにでもあり数は決まっていません。そして案内所は、学習に使った写真が持つ角度の近辺でしか信用できません。

4やってみる

5よくある誤解

  • 3Dモデルファイルを作ってくれると思われがちですが、実際には尋ねると答える計算規則ができるだけなので、そのままゲームや3Dソフトに移して使うのは難しいです。

  • 写真数枚あればよいと思われがちですが、実際には対象の周りをまんべんなく回った写真が数十枚必要で、抜けた角度は崩れます。

  • ガウシアンスプラッティングが出てきて役に立たなくなったと思われがちですが、実際には霧や半透明の対象のように境界がぼやけた場面では今も強いです。

7ひとこと要約

つまりNeRFは場面を絵ではなく、この場所この方向からどんな光がどれくらい見えるかに答える規則として持っておき、見るたびにその答えを積み上げて新しく描きます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02