本日はNVIDIAのAIを学習していきます。
〇NeRF
NeRFはNeural Radiance Fieldsの略でカルフォルニア大学の研究員が2020年3月に発表された真新しい技術です。
Radiance Fieldsは輝度フィールドという意味ですが、これは空間上の点の輝度と密度を意味し、この密度が高い場所には物体があるというように判別されます。
このため何らかのデータからRadiance Fieldsを計算して取得することができればそのデータの元となった空間の3次元情報を取得することができるようになります。
このRadiance Fieldsをニューラルネットワークで近似計算する手法がNeRFになります。
あるシーンにおいて取られた画像ごとにカメラの位置情報がわかっている画像データを使用して、画像内データから5次元のベクトルを作成します。
これらをディープネットワークによりパラメータ化して空間内の体積密度とそのカメラからのRGB情報を出力します。
通常のレンダリング(Blenderなどをイメージ)では3DCG情報を2Dの画像に出力することを指しますが、逆に3DCGを三次元情報のまま描画することをボリュームレンダリングと呼びます。
ボリュームレンダリングの技術を使用し各種カメラの位置から並べることで空間内のピクセルを出力することができます。
これを使用することで3Dモデルを作成することができます。
〇NVIDIAのinstant-NeRF
NVIDIAでは75年前のポロライドの逆のことに取り組むという目標でNeRFの技術を用いて従来よりより高速に3DCGを構築できるinstant-NeRFを2022年に発表しました。
ここでいうポロライドとはポロライド社を指し 世界で初めてインスタントカメラを販売し、リアルな3D情報を2Dに誰でも簡単に保存することができるようにした功績を指し、 その逆とは2D情報から逆に3D情報を保存することを指します。
写真などの2D情報から3D情報を生成する方法をインバースレンダリングと呼ぶようですが、これを瞬時に行わせるアプローチとしてNeRFを適応し、instant-NeRFとしてリリースしたようです。
これは次のGitHubリポジトリで公開されています。
今回はこのinstant-NeRFを用いて実際に3Dモデルを作成していきます。
〇事前準備
instant-NeRFを実行するためには次の環境が必要です。
・NVIDIA Tensor Coreを実行できるGPU
・Anaconda
・Python 3.9
・VisualStudio
・OptiX 7.3以降
・Cuda 11.6以降
OptiXとCudaの導入は過去の記事を参考にしてください。
明日は実際に動かしていきます。
実際に動かしたものが上の画像になります。