AIで立体的な絵を生成・再現
Hierarchical NeRF with JAX3D for Volumetric Rendering, Novel-View Synthesis, and 3D Reconstruction

JAX3Dを使った立体的な絵を作るAI(NeRF)の構築方法が公開。新しい視点からの画像生成や3D再現の精度向上に役立ちます。
このチュートリアルでは、JAX、Flax、Optax、およびjax3dが提供するボリュームレンダリングプリミティブを使用して、エンドツーエンドの階層型Neural Radiance Field(NeRF)を構築します。\nまず、volumetric geometryとview-dependent radianceを含む解析シーンから、sample_along_raysとvolume_renderingを使用してフォワードレンダリングプロセスを確立し、合成多視点データセットを構築します。\n次に、positional encoding、skip connections、個別のcoarseおよびfine networks、view-direction conditioningを備えたNeRFを実装し、sample_piecewise_constant_pdfを介した階層的なimportance samplingを行います。\nモデルはJAX JIT compilation、Adam optimization、exponential learning-rate decay、gradient clippingで訓練し、最終的にPSNR、depthおよびopacity visualization、sampling diagnostics、360-degree rendering、marching-cubes geometry extractionを使用してnovel-view synthesisを評価します。\nコードをコピー コピー済み 別のブラウザを使用してください import os, sys, subprocess, importlib.util, functools, dataclasses, time, math\ndef _sh(cmd): subprocess.run(cmd, shell=True, check=False, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)\nprint("Installing dependencies ...")\n_sh(f'{sys.executable} -m pip install -q "etils[array-types,epy,etree,enp]" ' f'chex flax optax scikit-image')\nREPO_DIR = "/content/jax3d" if os.path.isdir("/content") else os.path.abspath("./jax3d")\nif not os.path.isdir(REPO_DIR): print("Cloning google-research/jax3d ...")\n_sh(f"git clone -q --depth 1 https://github.com/google-research/jax3d.git {REPO_DIR}")\ndef _load_module_by_path(name, path): \"\"\"Load a single .py file without triggering the parent package __init__. `from jax3d.math import volume_rendering` also works if you run `pip install .` inside the clone, but that pulls in gin/tfds/etc. \"\"\" spec = importlib.util.spec_from_file_location(name, path)\nmod = importlib.util.module_from_spec(spec)\nsys.modules[name] = mod\nspec.loader.exec_module(mod)\nreturn mod\n_VR_PATH = os.path.join(REPO_DIR, "jax3d", "jax3d", "math")
この記事について質問
記事の内容に答えます。記事外のことは都度ウェブで調べます。