{ "cells": [ { "cell_type": "markdown", "id": "f53b58d7-4a4c-41cd-b689-c42462d7c464", "metadata": {}, "source": [ "# Volumetric inverse rendering" ] }, { "cell_type": "markdown", "id": "2c00d2cc-3e22-464c-bf13-cf703e29cf23", "metadata": {}, "source": [ "## Overview\n", "\n", "In this tutorial, we use Mitsuba's differentiable volumetric path tracer to optimize a scattering volume to match a set of (synthetic) reference images. We will optimize a 3D volume density that's stored on a regular grid. The optimization will account for both direct and indirect illumination by using [path replay backpropagation][1] to compute derivatives of delta tracking and volumetric multiple scattering. The reconstructed volume parameters can then for example be re-rendered using novel illumination conditions.\n", "\n", "\n", "
\n", "\n", "🚀 **You will learn how to:**\n", " \n", "\n", " \n", "
\n", "\n", "[1]: https://rgl.epfl.ch/publications/Vicini2021PathReplay" ] }, { "cell_type": "markdown", "id": "644bbd28-7d4b-4494-8926-d8a1e892d69d", "metadata": {}, "source": [ "## Setup\n", "\n", "As always, we start with the usual imports and set a variant that supports automatic differentation." ] }, { "cell_type": "code", "execution_count": 1, "id": "83ec80cc-d2a5-46da-83bd-cd66f8947a23", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt \n", "\n", "import drjit as dr\n", "import mitsuba as mi\n", "\n", "mi.set_variant('llvm_ad_rgb')" ] }, { "cell_type": "markdown", "id": "fbd1cb4f-c4e5-4bf7-9b24-417c4ee080a9", "metadata": {}, "source": [ "## Creating multiple sensors\n", "\n", "We cannot hope to obtain a robust volumetric reconstruction using only a single reference image. Multiple viewpoints are needed to sufficiently constrain the reconstructed volume density. Using a multi-view optimization we can recover volume parameters that generalize to novel views (and illumination conditions).\n", "\n", "In this tutorial, we use 5 sensors placed on a half circle around the origin. For the simple optimization in this tutorial this is sufficient, but more complex scenes may require using significantly more views (e.g., using 50-100 sensors is not unreasonable)." ] }, { "cell_type": "code", "execution_count": 2, "id": "10333b5e-eb4a-4b97-bb97-7895f2d8cd0d", "metadata": {}, "outputs": [], "source": [ "from mitsuba import ScalarTransform4f as T\n", "\n", "sensor_count = 5\n", "sensors = []\n", "\n", "for i in range(sensor_count):\n", " angle = 180.0 / sensor_count * i - 90.0\n", " sensor_rotation = T.rotate([0, 1, 0], angle)\n", " sensor_to_world = T.look_at(target=[0, 0, 0], origin=[0, 0, 4], up=[0, 1, 0])\n", " sensors.append(mi.load_dict({\n", " 'type': 'perspective',\n", " 'fov': 45,\n", " 'to_world': sensor_rotation @ sensor_to_world,\n", " 'film': {\n", " 'type': 'hdrfilm',\n", " 'width': 64, 'height': 64,\n", " 'filter': {'type': 'tent'}\n", " }\n", " }))\n" ] }, { "cell_type": "markdown", "id": "bddf2808-6b4f-49a8-b3c2-3d390c17e406", "metadata": {}, "source": [ "## Rendering synthetic reference images\n", "\n", "We will now setup a simple scene with a constant environment illumination and a reference volume placed at the origin. The heterogenous volume is instantiated inside of a cube. We assign the `null` BSDF to the cube's surface, since we do not want the cube's surface to interact with light in any way (i.e., the surface should be invisible). To learn more about volume rendering in Mitsuba, please refer to the [plugin documentation][1].\n", "\n", "We then render this scene using the previously created sensors and store the resulting images in a list for later use.\n", "\n", "\n", "[1]: https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_media.html#heterogeneous-medium-heterogeneous" ] }, { "cell_type": "code", "execution_count": 3, "id": "021d2244-3224-4da5-a453-328920b8c550", "metadata": {}, "outputs": [], "source": [ "scene_dict = {\n", " 'type': 'scene',\n", " 'integrator': {'type': 'prbvolpath'},\n", " 'object': {\n", " 'type': 'cube',\n", " 'bsdf': {'type': 'null'},\n", " 'interior': {\n", " 'type': 'heterogeneous',\n", " 'sigma_t': {\n", " 'type': 'gridvolume',\n", " 'filename': '../scenes/volume.vol',\n", " 'to_world': T.rotate([1, 0, 0], -90).scale(2).translate(-0.5)\n", " },\n", " 'scale': 40\n", " }\n", " },\n", " 'emitter': {'type': 'constant'}\n", "}\n", "\n", "scene_ref = mi.load_dict(scene_dict)\n", "\n", "# Number of samples per pixel for reference images\n", "ref_spp = 512" ] }, { "cell_type": "code", "execution_count": 4, "id": "ffd5b53a-5c17-437a-83d2-6712bbfe1d86", "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "# IGNORE THIS: When running under pytest, adjust parameters to reduce computation time\n", "import os\n", "if 'PYTEST_CURRENT_TEST' in os.environ:\n", " ref_spp = 2" ] }, { "cell_type": "code", "execution_count": 5, "id": "16008559-86a3-4b9f-80e2-c28ccb5aac37", "metadata": {}, "outputs": [], "source": [ "ref_images = [mi.render(scene_ref, sensor=sensors[i], spp=ref_spp) for i in range(sensor_count)]" ] }, { "cell_type": "code", "execution_count": 6, "id": "142d1dd5-6693-4030-a942-35ff70b7b826", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1, sensor_count, figsize=(14, 4))\n", "for i in range(sensor_count):\n", " axs[i].imshow(mi.util.convert_to_bitmap(ref_images[i]))\n", " axs[i].axis('off')" ] }, { "cell_type": "markdown", "id": "825f10c4-265e-4f53-9515-7688b142c2db", "metadata": {}, "source": [ "## Setting up the optimization scene\n", "Our goal is now to optimize a 3D volume density (also called extinction) to match the previously generated reference images. For this we create a second scene, where we replace the reference volume by a simple uniform initialization. \n", "\n", "To initialize a volume grid from Python, we use the [VolumeGrid][2] object in conjunction with [TensorXf][3]. The `VolumeGrid` class is responsible for loading and writing volumes from disk, similar to the `Bitmap` class for images. Using the `grid` property of the [gridvolume][4] plugin, it is possible to pass it directly to the plugin constructor in Python.\n", "\n", "We initialize the extinction `sigma_t` to a low constant value, (e.g. `0.002`). This tends to help the optimization process, as it seems to be easier for the optimizer to increase the volume density rather than remove parts of a very dense volume. \n", "\n", "Note that we use a fairly small initial volume resolution here. This is done on purpose since we will upsample the volume grid during the actual optimization process. As explained later, this typically improves the convexity of the volume optimization problem.\n", "\n", "[1]: https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_media.html#heterogeneous-medium-heterogeneous\n", "[2]: https://mitsuba.readthedocs.io/en/latest/src/api_reference.html#mitsuba.VolumeGrid\n", "[3]: https://mitsuba.readthedocs.io/en/latest/src/api_reference.html#mitsuba.TensorXf\n", "[4]: https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_media.html#grid-based-volume-data-source-gridvolume" ] }, { "cell_type": "code", "execution_count": 7, "id": "82313a97-a314-43a3-8a4b-f4e32305f1a2", "metadata": {}, "outputs": [], "source": [ "v_res = 16\n", "\n", "# Modify the scene dictionary\n", "scene_dict['object'] = {\n", " 'type': 'cube',\n", " 'interior': {\n", " 'type': 'heterogeneous',\n", " 'sigma_t': {\n", " 'type': 'gridvolume',\n", " 'grid': mi.VolumeGrid(dr.full(mi.TensorXf, 0.002, (v_res, v_res, v_res, 1))),\n", " 'to_world': T.translate(-1).scale(2.0)\n", " },\n", " 'scale': 40.0,\n", " },\n", " 'bsdf': {'type': 'null'}\n", "}\n", "\n", "scene = mi.load_dict(scene_dict)" ] }, { "cell_type": "markdown", "id": "5890a714-a81c-4f37-bc9f-7ec2e4335a6a", "metadata": {}, "source": [ "We load the modified scene and render it for all view angles. Those are going to be our initial image in the optimization process." ] }, { "cell_type": "code", "execution_count": 8, "id": "91050ab4-91ac-413b-89c0-959d024498e0", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "init_images = [mi.render(scene, sensor=sensors[i], spp=ref_spp) for i in range(sensor_count)]\n", "\n", "fig, axs = plt.subplots(1, sensor_count, figsize=(14, 4))\n", "for i in range(sensor_count):\n", " axs[i].imshow(mi.util.convert_to_bitmap(init_images[i]))\n", " axs[i].axis('off')" ] }, { "cell_type": "markdown", "id": "3a1cf830-9ad3-4bd7-98ca-3840e3179378", "metadata": {}, "source": [ "## Optimization\n", "\n", "We instantiate an `Adam` optimizer and load the `sigma_t` grid data as parameter to be optimized." ] }, { "cell_type": "code", "execution_count": 9, "id": "41f4e964-c5f9-4d7d-81d3-e8669bf153c0", "metadata": {}, "outputs": [], "source": [ "params = mi.traverse(scene)\n", "\n", "key = 'object.interior_medium.sigma_t.data'\n", "\n", "opt = mi.ad.Adam(lr=0.02)\n", "opt[key] = params[key]\n", "params.update(opt);\n", "\n", "iteration_count = 20\n", "spp = 8" ] }, { "cell_type": "code", "execution_count": 10, "id": "963d312f-e883-4e37-ad42-b93c360e51fd", "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "# IGNORE THIS: When running under pytest, adjust parameters to reduce computation time\n", "import os\n", "if 'PYTEST_CURRENT_TEST' in os.environ:\n", " iteration_count = 2\n", " spp = 1" ] }, { "cell_type": "markdown", "id": "210af9ef-b720-4d60-842a-88daa316db9f", "metadata": {}, "source": [ "We then run the optimization loop for a few iterations, similar to the other tutorials." ] }, { "cell_type": "code", "execution_count": 11, "id": "4af17b50-c809-472e-a55d-4b1589a5e84a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 19: error=0.027037\r" ] } ], "source": [ "for it in range(iteration_count):\n", " total_loss = 0.0\n", " for sensor_idx in range(sensor_count):\n", " # Perform the differentiable light transport simulation\n", " img = mi.render(scene, params, sensor=sensors[sensor_idx], spp=spp, seed=it)\n", " \n", " # L2 loss function\n", " loss = dr.mean(dr.sqr(img - ref_images[sensor_idx]))\n", " \n", " # Backpropagate gradients\n", " dr.backward(loss)\n", "\n", " # Take a gradient step\n", " opt.step()\n", " \n", " # Clamp the optimized density values. Since we used the `scale` parameter \n", " # when instantiating the volume, we are in fact optimizing extinction \n", " # in a range from [1e-6 * scale, scale].\n", " opt[key] = dr.clamp(opt[key], 1e-6, 1.0)\n", " \n", " # Propagate changes to the scene\n", " params.update(opt)\n", " \n", " total_loss += loss[0]\n", " print(f\"Iteration {it:02d}: error={total_loss:6f}\", end='\\r')" ] }, { "cell_type": "markdown", "id": "f046cdc9-572e-43a1-b281-3ae65a29097e", "metadata": {}, "source": [ "## Intermediate results\n", "\n", "We have only performed a few iterations so far and can take a look at the current results." ] }, { "cell_type": "code", "execution_count": 12, "id": "74c3bf2f-21f7-4635-8fce-261a70cd5062", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "intermediate_images = [mi.render(scene, sensor=sensors[i], spp=ref_spp) for i in range(sensor_count)]\n", "\n", "fig, axs = plt.subplots(1, sensor_count, figsize=(14, 4))\n", "for i in range(sensor_count):\n", " axs[i].imshow(mi.util.convert_to_bitmap(intermediate_images[i]))\n", " axs[i].axis('off')" ] }, { "cell_type": "markdown", "id": "c597b6e9-ca45-441b-ab6d-9bea4f35d329", "metadata": {}, "source": [ "## Volume upsampling\n", "\n", "The results above don't look great. One reason is the low resolution of the optimized volume grid. Let's try to increase the resolution of the current grid and continue the optimization for a few more iterations. In practice it is almost always beneficial to leverage such a \"multi-resolution\" approach. At low resolution, the optimization will recover the overall shape, exploring a much simpler solution landscape. Moving on to a volume with a higher resolution allows recovering additional detail, while using the coarser solution as a starting point.\n", "\n", "Luckily Dr.Jit provides [dr.upsample()][1], a functions for up-sampling tensor and texture data. We can easily create a higher resolution volume by passing the current optimzed tensor and specifying the desired shape (must be powers of two when upsampling `TensorXf`).\n", "\n", "[1]: https://drjit.readthedocs.io/en/latest/reference.html#drjit.upsample" ] }, { "cell_type": "code", "execution_count": 13, "id": "bbdfe9de-d1b2-4d06-89ed-ce2d93d1c383", "metadata": {}, "outputs": [], "source": [ "opt[key] = dr.upsample(opt[key], shape=(64, 64, 64))\n", "params.update(opt);" ] }, { "cell_type": "markdown", "id": "068b99e7-fb72-4b3f-b166-2d7930daf86d", "metadata": {}, "source": [ "Rendering the new, upsampled volume we can already notice a slight difference in the apparent sharpness. This is due to the *trilinear* interpolation of density values that is used by the volumetric path tracer." ] }, { "cell_type": "code", "execution_count": 14, "id": "352c5176-ded0-4d13-8996-5d4dbe006c3b", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "upscale_images = [mi.render(scene, sensor=sensors[i], spp=ref_spp) for i in range(sensor_count)]\n", "\n", "fig, axs = plt.subplots(1, sensor_count, figsize=(14, 4))\n", "for i in range(sensor_count):\n", " axs[i].imshow(mi.util.convert_to_bitmap(upscale_images[i]))\n", " axs[i].axis('off')" ] }, { "cell_type": "markdown", "id": "a86592e8-a87c-497f-8c94-297cfbe06ad5", "metadata": {}, "source": [ "## Continuing the optimization\n", "\n", "Let's now run our optimization loop for a few more iterations with the upscaled volume grid.\n", "\n", "
\n", "\n", "🗒 **Note**\n", " \n", "The optimizer automatically resets the internal state (e.g., momentum) associated to the optimized variable when it detects a size change.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 15, "id": "7c8b4e1b-a280-4178-8935-dd5c636aa846", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 19: error=0.021486\r" ] } ], "source": [ "for it in range(iteration_count):\n", " total_loss = 0.0\n", " for sensor_idx in range(sensor_count):\n", " img = mi.render(scene, params, sensor=sensors[sensor_idx], spp=8*spp, seed=it)\n", " loss = dr.mean(dr.sqr(img - ref_images[sensor_idx]))\n", " dr.backward(loss)\n", " opt.step()\n", " opt[key] = dr.clamp(opt[key], 1e-6, 1.0)\n", " params.update(opt)\n", " total_loss += loss[0]\n", " print(f\"Iteration {it:02d}: error={total_loss:6f}\", end='\\r')" ] }, { "cell_type": "markdown", "id": "725e9980-f9c5-416a-a1f1-896e5942716d", "metadata": {}, "source": [ "## Final results\n", "\n", "Finally we can render the final volume from the different view points and compare the images to the reference images." ] }, { "cell_type": "code", "execution_count": 16, "id": "57383d4d-780f-4824-a679-5021ca6d6a19", "metadata": { "nbsphinx-thumbnail": {}, "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "final_images = [mi.render(scene, sensor=sensors[i], spp=ref_spp) for i in range(sensor_count)]\n", "\n", "fig, axs = plt.subplots(2, sensor_count, figsize=(14, 6))\n", "for i in range(sensor_count):\n", " axs[0][i].imshow(mi.util.convert_to_bitmap(ref_images[i]))\n", " axs[0][i].axis('off')\n", " axs[1][i].imshow(mi.util.convert_to_bitmap(final_images[i]))\n", " axs[1][i].axis('off')" ] }, { "cell_type": "markdown", "id": "c34cf18c-75c6-4280-a69d-6467023e8cac", "metadata": {}, "source": [ "Of course the results could be further improved by taking more iterations or adopting other advanced optimization schemes, such as multi-resolution rendering where the rendering resolution is increased throughout the optimization process. Additionally, it can sometimes be beneficial to add a sparsity (e.g., an $L_1$ loss on the density values) or smoothness prior (e.g., a total variation regularizer penalizing differences between neighboring voxels).\n", "\n" ] }, { "cell_type": "markdown", "id": "f4473987-40c1-4d8a-b133-fc8d7e319420", "metadata": {}, "source": [ "## See also\n", "\n", "- [prbvolpath plugin](https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_integrators.html#path-replay-backpropagation-volumetric-integrator-prbvolpath)\n", "- [heterogeneous plugin](https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_media.html#heterogeneous-medium-heterogeneous)\n", "- [gridvolume plugin](https://mitsuba.readthedocs.io/en/latest/src/generated/plugins_media.html#grid-based-volume-data-source-gridvolume)\n", "- [mitsuba.VolumeGrid](https://mitsuba.readthedocs.io/en/latest/src/api_reference.html#mitsuba.VolumeGrid)\n", "- [mitsuba.TensorXf](https://mitsuba.readthedocs.io/en/latest/src/api_reference.html#mitsuba.TensorXf)\n", "- [dr.upsample](https://drjit.readthedocs.io/en/latest/reference.html#drjit.upsample)" ] } ], "metadata": { "interpreter": { "hash": "afd680236861e4ad68138f9ddf1f8bff806918beb77b7f0c16179efa24869fce" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }