CG×ML #4 Neural Radiance Fields [Devlog #018]
Table of Contents
NeRF(Neural Radiance Fields)
ボリュームベースのレンダリング
レンダリング方式
メッシュベース
ラスタライゼーション
3Dモデルのポリゴン(通常は三角形)を個々に処理する
ポリゴンはカメラ(ビューポート)に基づいて2D画面に投影される
投影されたポリゴンは、スクリーン上のピクセルにマッピングされる(ポリゴンの各頂点の色、テクスチャ座標、その他の属性が考慮される)
ピクセルに色を割り当てるために、シェーディングアルゴリズム(例えばフォンシェーディング)が用いられる
レイトレーシング
視点(カメラ)からシーン内の各ピクセルに向けて光線(レイ)を発射する
これらの光線がシーン内のオブジェクト(ポリゴンメッシュ)と交差するかどうかを計算する
光線がオブジェクトに当たると、反射、屈折、影など、光のさまざまな物理的挙動を計算する
最終的なピクセルの色と明るさは、交差したポイントでの光の挙動と物質の特性に基づいて計算する
参考:レイトレーシングとラスタライズの違い - NVIDIA
ボリュームベース
直接ボリュームレンダリング(Direct Volume Rendering, DVR)
ボリュームデータセット全体が直接画像に変換される
透過率や色をデータ値に基づいて割り当て、複数の値を積み重ねて最終的な画像を生成する
医療画像(CTやMRIスキャンなど)の3D可視化に広く用いられる
レイキャスティング(Ray Casting)
ビューワーからボリュームデータを通してレイ(光線)を投射し、その経路上のデータをサンプリングして画像を生成する
高品質な画像を生成することができますが、計算コストが高い
スプラットティング(Splatting)
ボリュームデータセット内の各データポイントから画像平面上に「スプラット」と呼ばれる影響領域を投影する方法
テクスチャベースボリュームレンダリング
ボリュームデータを視覚化するために3Dテクスチャマッピング技術を利用する手法
3D空間内で定義された一連の平面(または他の形状)をボリュームデータを通過するように配置して、各平面はテクスチャから対応するデータスライスをサンプリングする
ISOサーフェスレンダリング
ボリュームデータ内で特定の値を持つ表面(ISOサーフェス)を抽出し、その表面のみをレンダリングする
抽出されたサーフェスは通常、「マーチングキューブス」アルゴリズムなどの手法を用いてポリゴンメッシュ(多くの場合は三角形のメッシュ)に変換される
マルチモーダルレンダリング
異なる種類のデータソース(例えば、CTとMRIデータ)を組み合わせて、1つの統合された画像を生成する
各モダリティのデータの長所を組み合わせることで、より包括的な可視化が可能
Structure from Motion(SfM)によるカメラ姿勢推定
SfMは複数の2D画像から3D空間内のカメラの動き(姿勢)とシーンの構造を同時に推定する
特徴点の抽出とマッチング
複数の画像から特徴点(キーポイント)を抽出し、異なる画像間でこれらの点をマッチングする
カメラ姿勢の推定
画像間の特徴点の対応関係から、各画像に対応するカメラの姿勢(位置と方向)を推定する
SfMではその他にも、3Dポイントクラウドの生成や最適化と精度向上を行う
MVSとの連携によるフォトグラメトリ(参考)
マルチビューステレオ(Multi-View Stereo, MVS)は、SfMで得られたカメラ姿勢情報を基に、複数の画像からより詳細な3Dシーンを再構築する技術である
具体的には、複数の画像間でピクセルの一貫性を検証し、精密な3Dモデルを作成する
得られた高密度ポイントクラウドから、滑らかなサーフェスモデルを作成できる
これらSfMとMVSを連携して使用することがフォトグラメトリでは一般的となっている
ライトフィールドとライトフィールドフォトグラフィー
ディープラーニングとニューラルネットワーク
ニューラルネットワークとは,人間の脳内にある神経細胞(ニューロン)との接続関係を数理モデル化したネットワークを意味する(人口ニューラルネットワーク - artificial neural network)
基本的には関数の補間問題として捉え,$k$次元の変数を引数とする未知の関数$f(\bm{x})$に対して,離散的なサンプル点$\bm{x}=\bm{x_p}(p=1, 2, … ,N)$での値$f_p:=f(\bm{x_p})$は既知であるとし,$\bm{x}\neq \bm{x_p}$に対する$f(\bm{x})$の値を求める問題を考える
NeRF
ボリュームベースのレイキャスティング方式のレンダリングを応用したものとして、NeRF(Neural Radiance Fields)がある
ここではNeRF論文1を理解する
https://www.matthewtancik.com/nerf
Ben Mildenhall and Pratul P. Srinivasan and Matthew Tancik and Jonathan T. Barron and Ravi Ramamoorthi and Ren Ng. 2020. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV.
この論文では、複雑なシーンの新しいビューを合成するために、スパースな(実際の場所や物体の少ない)入力ビューを使用して連続的な体積シーン関数を最適化する(その場所や物体をあらゆる角度から見たかのような新しい画像を生成する)方法を提案している
シーンを5Dニューラル放射場(NeRF)として表現し、この表現のために完全連結のディープネットワークを使用する
NeRF論文
1.概要と導入
新しいビュー合成のために、連続的な5Dシーン表現のパラメータを最適化する方法を提案
3Dポイントのサンプリングと、それに基づく色と密度の出力を行い、これらを2D画像に統合する
2.技術的貢献
連続的なシーンを5Dニューラル放射場(NeRF)として表現
標準RGB画像からNeRFを最適化するための可微分レンダリング手法
入力5D座標を高次元空間にマッピングし、高周波数のシーンコンテンツを表現するための位置エンコーディング
3.関連研究
他のアプローチと比較し、より複雑なリアルなシーンのレンダリングに成功している
4.ニューラル放射場の表現とボリュームレンダリング
シーンを5Dベクトル値関数として表現し、異なるビューポイントからの放射輝度を出力
5.NeRFの最適化
高解像度の複雑なシーンを表現するための改善策として、位置エンコーディングと階層的ボリュームサンプリングを導入
6.実装の詳細と結果
実験結果の提示と、他の手法との比較でNeRFの優位性を示す
7.結論
NeRFは従来のディープ畳み込みネットワークに基づくアプローチよりも優れたレンダリングを実現しており、さらなる最適化とレンダリング技術の研究が期待される
-
Ben Mildenhall and Pratul P. Srinivasan and Matthew Tancik and Jonathan T. Barron and Ravi Ramamoorthi and Ren Ng. 2020. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV. ↩︎