4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-11 02:24:38 +08:00
nerfstudio/reference/api/data/utils.html
2025-07-29 02:30:47 +00:00

1202 lines
122 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="no-js" lang="en" >
<head><meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<meta property="og:title" content="Utils" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://docs.nerf.studio/reference/api/data/utils.html" />
<meta property="og:description" content="Base: This file copied with small modifications from:,- https://github.com/colmap/colmap/blob/1a4d0bad2e90aa65ce997c9d1779518eaed998d5/scripts/python/read_write_model.py.,. TODO(1480) Delete this f..." />
<meta property="og:image" content="https://assets.nerf.studio/opg.png" />
<meta property="og:image:alt" content="Utils" />
<link rel="index" title="Index" href="../../../genindex.html" /><link rel="search" title="Search" href="../../../search.html" /><link rel="next" title="Fields" href="../fields.html" /><link rel="prev" title="Datasets" href="datasets.html" />
<meta name="generator" content="sphinx-5.2.1, furo 2022.09.29" />
<title>Utils - nerfstudio</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo.css?digest=d81277517bee4d6b0349d71bb2661d4890b5617c" />
<link rel="stylesheet" type="text/css" href="../../../_static/mystnb.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/togglebutton.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/design-style.b7bb847fb20b106c3d81b95245e65545.min.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
<style>
body {
--color-code-background: #f8f9fb;
--color-code-foreground: black;
--color-brand-primary: #d34600;
--color-brand-content: #ff6f00;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #282C34;
--color-code-foreground: #ABB2BF;
--color-brand-primary: #fdd06c;
--color-brand-content: ##fea96a;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #282C34;
--color-code-foreground: #ABB2BF;
--color-brand-primary: #fdd06c;
--color-brand-content: ##fea96a;
}
}
}
</style><script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/underscore.js"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script src="../../../_static/scripts/furo.js"></script>
<script src="../../../_static/clipboard.min.js"></script>
<script src="../../../_static/copybutton.js"></script>
<script>let toggleHintShow = 'Click to show';</script>
<script>let toggleHintHide = 'Click to hide';</script>
<script>let toggleOpenOnPrint = 'true';</script>
<script src="../../../_static/togglebutton.js"></script>
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown, .tag_hide_input div.cell_input, .tag_hide-input div.cell_input, .tag_hide_output div.cell_output, .tag_hide-output div.cell_output, .tag_hide_cell.cell, .tag_hide-cell.cell';</script>
<script src="../../../_static/design-tabs.js"></script>
<script src="../../../_static/require.min.js"></script>
<script src="../../../_static/custom.js"></script>
</head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="../../../index.html"><div class="brand">nerfstudio</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a
class="sidebar-brand"
href="../../../index.html"
>
<div class="sidebar-logo-container">
<img
class="sidebar-logo only-light"
src="../../../_static/imgs/logo.png"
alt="Light Logo"
/>
<img
class="sidebar-logo only-dark"
src="../../../_static/imgs/logo-dark.png"
alt="Dark Logo"
/>
</div>
</a>
<div style="text-align: center">
<script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- Place this tag where you want the button to render. -->
<a
class="github-button"
href="https://github.com/nerfstudio-project/nerfstudio/"
data-color-scheme="no-preference: light; light: light; dark: light;"
data-size="large"
data-show-count="true"
aria-label="Download buttons/github-buttons on GitHub"
>
Github
</a>
<br />
<a
href="https://colab.research.google.com/github/nerfstudio-project/nerfstudio/blob/main/colab/demo.ipynb"
style="
background-color: #ebf0f4;
background-image: linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);
border-radius: 3px;
border: 1px solid #1b1f2426;
display: inline-flex;
cursor: pointer;
color: #0d0d0d;
font-family: Arial;
font-size: 12px;
font-weight: bold;
padding: 5px 41px;
line-height: 16px;
text-decoration: none;
"
>
<svg
viewBox="0 0 24 24"
width="16"
height="16"
class="octicon octicon-mark-github"
>
<g>
<path
d="M4.54,9.46,2.19,7.1a6.93,6.93,0,0,0,0,9.79l2.36-2.36A3.59,3.59,0,0,1,4.54,9.46Z"
style=""
fill="#E8710A"
></path>
<path
d="M2.19,7.1,4.54,9.46a3.59,3.59,0,0,1,5.08,0l1.71-2.93h0l-.1-.08h0A6.93,6.93,0,0,0,2.19,7.1Z"
style=""
fill="#F9AB00"
></path>
<path
d="M11.34,17.46h0L9.62,14.54a3.59,3.59,0,0,1-5.08,0L2.19,16.9a6.93,6.93,0,0,0,9,.65l.11-.09"
style=""
fill="#F9AB00"
></path>
<path
d="M12,7.1a6.93,6.93,0,0,0,0,9.79l2.36-2.36a3.59,3.59,0,1,1,5.08-5.08L21.81,7.1A6.93,6.93,0,0,0,12,7.1Z"
style=""
fill="#F9AB00"
></path>
<path
d="M21.81,7.1,19.46,9.46a3.59,3.59,0,0,1-5.08,5.08L12,16.9A6.93,6.93,0,0,0,21.81,7.1Z"
style=""
fill="#E8710A"
></path>
</g>
</svg>
<span>&nbspcolab</span></a
>
</div><form class="sidebar-search-container" method="get" action="../../../search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Getting Started</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/first_nerf.html">Training your first model</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/existing_dataset.html">Using existing data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/custom_dataset.html">Using custom data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/viewer_quickstart.html">Using the viewer</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/export_geometry.html">Export geometry</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/data_conventions.html">Data conventions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../contributing.html">Contributing</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Extensions</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../extensions/blender_addon.html">Blender VFX add-on</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../extensions/maya_plugin.html">Autodesk Maya Plug-in</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../extensions/unreal_engine.html">Exporting to Unreal Engine</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../extensions/sdfstudio.html">SDFStudio</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">NeRFology</span></p>
<ul>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../nerfology/methods/index.html">Methods</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/instant_ngp.html"> Instant-NGP</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/splat.html"> Splatfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/splatw.html"> Splatfacto-W</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/in2n.html"> Instruct-NeRF2NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/igs2gs.html"> Instruct-GS2GS</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/signerf.html"> SIGNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/kplanes.html"> K-Planes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/lerf.html"> LERF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/livescene.html"> LiveScene</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/feature_splatting.html"> Feature-Splatting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/mipnerf.html"> Mip-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/nerf.html"> NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/nerfacto.html"> Nerfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/nerfbusters.html"> Nerfbusters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/nerfplayer.html"> NeRFPlayer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/tetranerf.html"> Tetra-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/tensorf.html"> TensoRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/generfacto.html"> Generfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/pynerf.html"> PyNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/seathru_nerf.html"> SeaThru-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/zipnerf.html"> Zip-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/bionerf.html"> BioNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/nerf2gs2nerf.html"> NeRFtoGSandBack</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/methods/opennerf.html"> OpenNeRF</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../nerfology/model_components/index.html">Model components</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/model_components/visualize_cameras.html"> Cameras models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/model_components/visualize_samples.html"> Sample representation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/model_components/visualize_samplers.html"> Ray samplers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/model_components/visualize_spatial_distortions.html"> Spatial distortions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../nerfology/model_components/visualize_encoders.html"> Encoders</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Developer Guides</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../developer_guides/new_methods.html">Adding a New Method</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../developer_guides/pipelines/index.html">Pipelines overview</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../../developer_guides/pipelines/dataparsers.html">DataParsers</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="dataparsers.html">Data Parsers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/pipelines/datamanagers.html">DataManagers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/pipelines/models.html">Models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/pipelines/fields.html">Fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/pipelines/pipelines.html">Pipelines</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../developer_guides/viewer/index.html">Viewer</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/viewer/custom_gui.html">Custom GUI</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/viewer/viewer_control.html">Python Viewer Control</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/viewer/local_viewer.html">(Legacy Viewer) Local Server</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../developer_guides/config.html">Customizable configs</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../developer_guides/debugging_tools/index.html">Debugging tools</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/debugging_tools/local_logger.html">Local writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/debugging_tools/profiling.html">Code profiling support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer_guides/debugging_tools/benchmarking.html">Benchmarking workflow</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Reference</span></p>
<ul class="current">
<li class="toctree-l1 has-children"><a class="reference internal" href="../../cli/index.html">CLI</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_install_cli.html">ns-install-cli</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_process_data.html">ns-process-data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_download_data.html">ns-download-data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_train.html">ns-train</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_render.html">ns-render</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_viewer.html">ns-viewer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_export.html">ns-export</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../cli/ns_eval.html">ns-eval</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="../index.html">API</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../cameras.html">Cameras</a></li>
<li class="toctree-l2"><a class="reference internal" href="../config.html">Configs</a></li>
<li class="toctree-l2 current has-children"><a class="reference internal" href="index.html">Data</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="dataparsers.html">Data Parsers</a></li>
<li class="toctree-l3"><a class="reference internal" href="datamanagers.html">Datamanagers</a></li>
<li class="toctree-l3"><a class="reference internal" href="datasets.html">Datasets</a></li>
<li class="toctree-l3 current current-page"><a class="current reference internal" href="#">Utils</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../fields.html">Fields</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../field_components/index.html">Field Modules</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../field_components/encodings.html">Encodings</a></li>
<li class="toctree-l3"><a class="reference internal" href="../field_components/embeddings.html">Embeddings</a></li>
<li class="toctree-l3"><a class="reference internal" href="../field_components/field_heads.html">Field Heads</a></li>
<li class="toctree-l3"><a class="reference internal" href="../field_components/mlp.html">MLP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../field_components/spatial_distortions.html">Spatial Distortions</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../models.html">Models</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../model_components/index.html">Model components</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../model_components/ray_sampler.html">Ray Sampler</a></li>
<li class="toctree-l3"><a class="reference internal" href="../model_components/losses.html">Losses</a></li>
<li class="toctree-l3"><a class="reference internal" href="../model_components/renderers.html">Renderers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../optimizers.html">Engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="../plugins.html">Plugins</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../utils/index.html">Utils</a><input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" role="switch" type="checkbox"/><label for="toctree-checkbox-12"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../utils/colors.html">Colors</a></li>
<li class="toctree-l3"><a class="reference internal" href="../utils/math.html">Math</a></li>
<li class="toctree-l3"><a class="reference internal" href="../utils/colormaps.html">Colormaps</a></li>
<li class="toctree-l3"><a class="reference internal" href="../utils/tensor_dataclass.html">TensorDataclass</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../viewer.html">Viewer</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="utils">
<span id="datautils"></span><h1>Utils<a class="headerlink" href="#utils" title="Permalink to this heading">#</a></h1>
<section id="base">
<h2>Base<a class="headerlink" href="#base" title="Permalink to this heading">#</a></h2>
<dl class="simple">
<dt>This file copied with small modifications from:</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://github.com/colmap/colmap/blob/1a4d0bad2e90aa65ce997c9d1779518eaed998d5/scripts/python/read_write_model.py">https://github.com/colmap/colmap/blob/1a4d0bad2e90aa65ce997c9d1779518eaed998d5/scripts/python/read_write_model.py</a></p></li>
</ul>
</dd>
</dl>
<p>TODO(1480) Delete this file when moving to pycolmap.</p>
<span class="target" id="module-nerfstudio.data.utils.colmap_parsing_utils"></span><dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.BaseImage">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">BaseImage</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.BaseImage" title="Permalink to this definition">#</a></dt>
<dd><p>alias of <a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Image" title="nerfstudio.data.utils.colmap_parsing_utils.Image"><code class="xref py py-class docutils literal notranslate"><span class="pre">Image</span></code></a></p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">Camera</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera" title="Permalink to this definition">#</a></dt>
<dd><dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera.height">
<span class="sig-name descname"><span class="pre">height</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.height" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 3</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera.id">
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.id" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 0</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera.model">
<span class="sig-name descname"><span class="pre">model</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.model" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 1</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera.params">
<span class="sig-name descname"><span class="pre">params</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.params" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 4</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Camera.width">
<span class="sig-name descname"><span class="pre">width</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.width" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 2</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.CameraModel">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">CameraModel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">model_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_params</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel" title="Permalink to this definition">#</a></dt>
<dd><dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_id">
<span class="sig-name descname"><span class="pre">model_id</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_id" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 0</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_name">
<span class="sig-name descname"><span class="pre">model_name</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_name" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 1</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.CameraModel.num_params">
<span class="sig-name descname"><span class="pre">num_params</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.num_params" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 2</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Image">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">Image</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">qvec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tvec</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">camera_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xys</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point3D_ids</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#Image"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Image" title="Permalink to this definition">#</a></dt>
<dd></dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">Point3D</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xyz</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rgb</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">image_ids</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">point2D_idxs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D" title="Permalink to this definition">#</a></dt>
<dd><dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.error">
<span class="sig-name descname"><span class="pre">error</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.error" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 3</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.id">
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.id" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 0</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.image_ids">
<span class="sig-name descname"><span class="pre">image_ids</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.image_ids" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 4</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.point2D_idxs">
<span class="sig-name descname"><span class="pre">point2D_idxs</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.point2D_idxs" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 5</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.rgb">
<span class="sig-name descname"><span class="pre">rgb</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.rgb" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 2</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.Point3D.xyz">
<span class="sig-name descname"><span class="pre">xyz</span></span><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.xyz" title="Permalink to this definition">#</a></dt>
<dd><p>Alias for field number 1</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_cameras_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_cameras_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_cameras_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_cameras_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::WriteCamerasBinary(const std::string&amp; path)
void Reconstruction::ReadCamerasBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_cameras_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_cameras_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_cameras_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_cameras_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::WriteCamerasText(const std::string&amp; path)
void Reconstruction::ReadCamerasText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_images_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_images_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_images_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_images_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadImagesBinary(const std::string&amp; path)
void Reconstruction::WriteImagesBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_images_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_images_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_images_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_images_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadImagesText(const std::string&amp; path)
void Reconstruction::WriteImagesText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_next_bytes">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_next_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_bytes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">format_char_sequence</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">endian_character</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'&lt;'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_next_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_next_bytes" title="Permalink to this definition">#</a></dt>
<dd><p>Read and unpack the next bytes from a binary file.
:param fid:
:param num_bytes: Sum of combination of {2, 4, 8}, e.g. 2, 6, 16, 30, etc.
:param format_char_sequence: List of {c, e, f, d, h, H, i, I, l, L, q, Q}.
:param endian_character: Any of {&#64;, =, &lt;, &gt;, !}
:return: Tuple of read and unpacked values.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_points3D_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_points3D_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_points3D_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_points3D_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadPoints3DBinary(const std::string&amp; path)
void Reconstruction::WritePoints3DBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.read_points3D_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">read_points3D_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#read_points3D_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.read_points3D_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadPoints3DText(const std::string&amp; path)
void Reconstruction::WritePoints3DText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_cameras_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_cameras_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cameras</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_cameras_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_cameras_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::WriteCamerasBinary(const std::string&amp; path)
void Reconstruction::ReadCamerasBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_cameras_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_cameras_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cameras</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_cameras_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_cameras_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::WriteCamerasText(const std::string&amp; path)
void Reconstruction::ReadCamerasText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_images_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_images_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">images</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_images_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_images_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadImagesBinary(const std::string&amp; path)
void Reconstruction::WriteImagesBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_images_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_images_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">images</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_images_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_images_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadImagesText(const std::string&amp; path)
void Reconstruction::WriteImagesText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_next_bytes">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_next_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">format_char_sequence</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">endian_character</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'&lt;'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_next_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_next_bytes" title="Permalink to this definition">#</a></dt>
<dd><p>pack and write to a binary file.
:param fid:
:param data: data to send, if multiple elements are sent at the same time,
they should be encapsuled either in a list or a tuple
:param format_char_sequence: List of {c, e, f, d, h, H, i, I, l, L, q, Q}.
should be the same length as the data list or tuple
:param endian_character: Any of {&#64;, =, &lt;, &gt;, !}</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_points3D_binary">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_points3D_binary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">points3D</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path_to_model_file</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_points3D_binary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_points3D_binary" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadPoints3DBinary(const std::string&amp; path)
void Reconstruction::WritePoints3DBinary(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.colmap_parsing_utils.write_points3D_text">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.colmap_parsing_utils.</span></span><span class="sig-name descname"><span class="pre">write_points3D_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">points3D</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/colmap_parsing_utils.html#write_points3D_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.colmap_parsing_utils.write_points3D_text" title="Permalink to this definition">#</a></dt>
<dd><dl class="simple">
<dt>see: src/base/reconstruction.cc</dt><dd><p>void Reconstruction::ReadPoints3DText(const std::string&amp; path)
void Reconstruction::WritePoints3DText(const std::string&amp; path)</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="data">
<h2>Data<a class="headerlink" href="#data" title="Permalink to this heading">#</a></h2>
<p>Utility functions to allow easy re-use of common operations across dataloaders</p>
<span class="target" id="module-nerfstudio.data.utils.data_utils"></span><dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.data_utils.get_depth_image_from_path">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.data_utils.</span></span><span class="sig-name descname"><span class="pre">get_depth_image_from_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filepath</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_factor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interpolation</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tensor</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/data_utils.html#get_depth_image_from_path"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.data_utils.get_depth_image_from_path" title="Permalink to this definition">#</a></dt>
<dd><p>Loads, rescales and resizes depth images.
Filepath points to a 16-bit or 32-bit depth image, or a numpy array <cite>*.npy</cite>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filepath</strong> – Path to depth image.</p></li>
<li><p><strong>height</strong> – Target depth image height.</p></li>
<li><p><strong>width</strong> – Target depth image width.</p></li>
<li><p><strong>scale_factor</strong> – Factor by which to scale depth image.</p></li>
<li><p><strong>interpolation</strong> – Depth value interpolation for resizing.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Depth image torch tensor with shape [height, width, 1].</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.data_utils.get_image_mask_tensor_from_path">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.data_utils.</span></span><span class="sig-name descname"><span class="pre">get_image_mask_tensor_from_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filepath</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">Path</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">IO</span><span class="p"><span class="pre">[</span></span><span class="pre">bytes</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_factor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tensor</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/data_utils.html#get_image_mask_tensor_from_path"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.data_utils.get_image_mask_tensor_from_path" title="Permalink to this definition">#</a></dt>
<dd><p>Utility function to read a mask image from the given path and return a boolean tensor</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.data_utils.get_semantics_and_mask_tensors_from_path">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.data_utils.</span></span><span class="sig-name descname"><span class="pre">get_semantics_and_mask_tensors_from_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filepath</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mask_indices</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">List</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_factor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">Tensor</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/data_utils.html#get_semantics_and_mask_tensors_from_path"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.data_utils.get_semantics_and_mask_tensors_from_path" title="Permalink to this definition">#</a></dt>
<dd><p>Utility function to read segmentation from the given filepath
If no mask is required - use mask_indices = []</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.data_utils.identity_collate">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.data_utils.</span></span><span class="sig-name descname"><span class="pre">identity_collate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/data_utils.html#identity_collate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.data_utils.identity_collate" title="Permalink to this definition">#</a></dt>
<dd><p>This function does nothing but serves to help our dataloaders have a pickleable function, as lambdas are not pickleable</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.data_utils.pil_to_numpy">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.data_utils.</span></span><span class="sig-name descname"><span class="pre">pil_to_numpy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">im</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Image</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/data_utils.html#pil_to_numpy"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.data_utils.pil_to_numpy" title="Permalink to this definition">#</a></dt>
<dd><p>Converts a PIL Image object to a NumPy array.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>im</strong> (<em>PIL.Image.Image</em>) – The input PIL Image object.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>numpy.ndarray representing the image data.</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="dataloader">
<h2>Dataloader<a class="headerlink" href="#dataloader" title="Permalink to this heading">#</a></h2>
<p>Code for sampling images from a dataset of images.</p>
<span class="target" id="module-nerfstudio.data.utils.dataloaders"></span><dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.CacheDataloader">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">CacheDataloader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">dataset:</span> <span class="pre">~torch.utils.data.dataset.Dataset,</span> <span class="pre">num_images_to_sample_from:</span> <span class="pre">~typing.Union[int,</span> <span class="pre">float]</span> <span class="pre">=</span> <span class="pre">inf,</span> <span class="pre">num_times_to_repeat_images:</span> <span class="pre">~typing.Union[int,</span> <span class="pre">float]</span> <span class="pre">=</span> <span class="pre">inf,</span> <span class="pre">device:</span> <span class="pre">~typing.Union[~torch.device,</span> <span class="pre">str]</span> <span class="pre">=</span> <span class="pre">'cpu',</span> <span class="pre">collate_fn:</span> <span class="pre">~typing.Callable[[~typing.Any],</span> <span class="pre">~typing.Any]</span> <span class="pre">=</span> <span class="pre">&lt;function</span> <span class="pre">nerfstudio_collate&gt;,</span> <span class="pre">exclude_batch_keys_from_device:</span> <span class="pre">~typing.Optional[~typing.List[str]]</span> <span class="pre">=</span> <span class="pre">None,</span> <span class="pre">**kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#CacheDataloader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.CacheDataloader" title="Permalink to this definition">#</a></dt>
<dd><p>Collated image dataset that implements caching of default-pytorch-collatable data.
Creates batches of the InputDataset return type.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dataset</strong> – Dataset to sample from.</p></li>
<li><p><strong>num_samples_to_collate</strong> – How many images to sample rays for each batch. -1 or infinity for all images.</p></li>
<li><p><strong>num_times_to_repeat_images</strong> – How often to yield an image batch before resampling. -1 or infinity to never pick new images.</p></li>
<li><p><strong>device</strong> – Device to perform computation.</p></li>
<li><p><strong>collate_fn</strong> – The function we will use to collate our training data</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.EvalDataloader">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">EvalDataloader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_dataset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="datasets.html#nerfstudio.data.datasets.base_dataset.InputDataset" title="nerfstudio.data.datasets.base_dataset.InputDataset"><span class="pre">InputDataset</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">device</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'cpu'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#EvalDataloader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.EvalDataloader" title="Permalink to this definition">#</a></dt>
<dd><p>Evaluation dataloader base class</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>input_dataset</strong> – InputDataset to load data from</p></li>
<li><p><strong>device</strong> – Device to load data to</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.EvalDataloader.__iter__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__iter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#EvalDataloader.__iter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.__iter__" title="Permalink to this definition">#</a></dt>
<dd><p>Iterates over the dataset</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.EvalDataloader.__next__">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__next__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.rays.RayBundle" title="nerfstudio.cameras.rays.RayBundle"><span class="pre">RayBundle</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#EvalDataloader.__next__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.__next__" title="Permalink to this definition">#</a></dt>
<dd><p>Returns the next batch of data</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.EvalDataloader.get_camera">
<span class="sig-name descname"><span class="pre">get_camera</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image_idx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.cameras.Cameras" title="nerfstudio.cameras.cameras.Cameras"><span class="pre">Cameras</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#EvalDataloader.get_camera"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.get_camera" title="Permalink to this definition">#</a></dt>
<dd><p>Get camera for the given image index</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>image_idx</strong> – Camera image index</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.EvalDataloader.get_data_from_image_idx">
<span class="sig-name descname"><span class="pre">get_data_from_image_idx</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image_idx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.rays.RayBundle" title="nerfstudio.cameras.rays.RayBundle"><span class="pre">RayBundle</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#EvalDataloader.get_data_from_image_idx"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.get_data_from_image_idx" title="Permalink to this definition">#</a></dt>
<dd><p>Returns the data for a specific image index.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>image_idx</strong> – Camera image index</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.FixedIndicesEvalDataloader">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">FixedIndicesEvalDataloader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_dataset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="datasets.html#nerfstudio.data.datasets.base_dataset.InputDataset" title="nerfstudio.data.datasets.base_dataset.InputDataset"><span class="pre">InputDataset</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">image_indices</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">device</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'cpu'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#FixedIndicesEvalDataloader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.FixedIndicesEvalDataloader" title="Permalink to this definition">#</a></dt>
<dd><p>Dataloader that returns a fixed set of indices.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>input_dataset</strong> – InputDataset to load data from</p></li>
<li><p><strong>image_indices</strong> – List of image indices to load data from. If None, then use all images.</p></li>
<li><p><strong>device</strong> – Device to load data to</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.ImageBatchStream">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">ImageBatchStream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_dataset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="datasets.html#nerfstudio.data.datasets.base_dataset.InputDataset" title="nerfstudio.data.datasets.base_dataset.InputDataset"><span class="pre">InputDataset</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">sampling_seed</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">3301</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cache_images_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'uint8'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'float32'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'float32'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">device</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'cpu'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">custom_image_processor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.cameras.Cameras" title="nerfstudio.cameras.cameras.Cameras"><span class="pre">Cameras</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.cameras.Cameras" title="nerfstudio.cameras.cameras.Cameras"><span class="pre">Cameras</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#ImageBatchStream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.ImageBatchStream" title="Permalink to this definition">#</a></dt>
<dd><p>A wrapper of InputDataset that outputs undistorted full images and cameras. This makes the
datamanager more lightweight since we don’t have to do generate rays. Useful for full-image
training e.g. rasterization pipelines</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RandIndicesEvalDataloader">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">RandIndicesEvalDataloader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_dataset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="datasets.html#nerfstudio.data.datasets.base_dataset.InputDataset" title="nerfstudio.data.datasets.base_dataset.InputDataset"><span class="pre">InputDataset</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">device</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'cpu'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#RandIndicesEvalDataloader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RandIndicesEvalDataloader" title="Permalink to this definition">#</a></dt>
<dd><p>Dataloader that returns random images.
:param input_dataset: InputDataset to load data from
:param device: Device to load data to</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">RayBatchStream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">input_dataset:</span> <span class="pre">~nerfstudio.data.datasets.base_dataset.InputDataset,</span> <span class="pre">sampling_seed:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">3301,</span> <span class="pre">num_rays_per_batch:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">1024,</span> <span class="pre">num_images_to_sample_from:</span> <span class="pre">~typing.Union[int,</span> <span class="pre">float]</span> <span class="pre">=</span> <span class="pre">inf,</span> <span class="pre">num_times_to_repeat_images:</span> <span class="pre">~typing.Union[int,</span> <span class="pre">float]</span> <span class="pre">=</span> <span class="pre">inf,</span> <span class="pre">device:</span> <span class="pre">~typing.Union[~torch.device,</span> <span class="pre">str]</span> <span class="pre">=</span> <span class="pre">'cpu',</span> <span class="pre">collate_fn:</span> <span class="pre">~typing.Callable[[~typing.Any],</span> <span class="pre">~typing.Any]</span> <span class="pre">=</span> <span class="pre">&lt;staticmethod</span> <span class="pre">object&gt;,</span> <span class="pre">num_image_load_threads:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">4,</span> <span class="pre">exclude_batch_keys_from_device:</span> <span class="pre">~typing.Optional[~typing.List[str]]</span> <span class="pre">=</span> <span class="pre">None,</span> <span class="pre">load_from_disk:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False,</span> <span class="pre">patch_size:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">1,</span> <span class="pre">custom_ray_processor:</span> <span class="pre">~typing.Optional[~typing.Callable[[~nerfstudio.cameras.rays.RayBundle,</span> <span class="pre">~typing.Dict],</span> <span class="pre">~typing.Tuple[~nerfstudio.cameras.rays.RayBundle,</span> <span class="pre">~typing.Dict]]]</span> <span class="pre">=</span> <span class="pre">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#RayBatchStream"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream" title="Permalink to this definition">#</a></dt>
<dd><p>Wrapper around Pytorch’s IterableDataset to generate the next batch of rays (next RayBundle) and corresponding labels
with multiple parallel workers.</p>
<p>Each worker samples a small batch of images, pixel samples those images, and generates rays for one training step.
The same batch of images can be pixel sampled multiple times hasten ray generation, as retrieving images is process
bottlenecked by disk read speed. To avoid Out-Of-Memory (OOM) errors, this batch of images is small and regenerated
by resampling the worker’s partition of images to maintain sampling diversity.</p>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.__iter__">
<span class="sig-name descname"><span class="pre">__iter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#RayBatchStream.__iter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.__iter__" title="Permalink to this definition">#</a></dt>
<dd><p>This implementation allows every worker only cache the indices of the images they will use to generate rays to conserve RAM memory.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.collate_fn">
<span class="sig-name descname"><span class="pre">collate_fn</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.collate_fn" title="Permalink to this definition">#</a></dt>
<dd><p>What collate function is used to batch images to be used for pixel sampling and ray generation.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.device">
<span class="sig-name descname"><span class="pre">device</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.device" title="Permalink to this definition">#</a></dt>
<dd><p>If a CUDA GPU is present, self.device will be set to use that GPU.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.exclude_batch_keys_from_device">
<span class="sig-name descname"><span class="pre">exclude_batch_keys_from_device</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.exclude_batch_keys_from_device" title="Permalink to this definition">#</a></dt>
<dd><p>Which key of the batch (such as ‘image’, ‘mask’,’depth’) to prevent from moving to the device.
For instance, if you would like to conserve GPU memory, don’t move the image tensors to the GPU,
which comes at a cost of total training time. The default value is [‘image’].</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.load_from_disk">
<span class="sig-name descname"><span class="pre">load_from_disk</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.load_from_disk" title="Permalink to this definition">#</a></dt>
<dd><p>If True, conserves RAM memory by loading images from disk.
If False, each worker caches all the images in its dataset partition as tensors to RAM and loads from RAM.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.num_image_load_threads">
<span class="sig-name descname"><span class="pre">num_image_load_threads</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_image_load_threads" title="Permalink to this definition">#</a></dt>
<dd><p>Number of threads created to read images from disk and form collated batches.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.num_images_to_sample_from">
<span class="sig-name descname"><span class="pre">num_images_to_sample_from</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_images_to_sample_from" title="Permalink to this definition">#</a></dt>
<dd><p>How many images to sample to generate a RayBundle. More images means greater sampling diversity at expense of increased RAM usage.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.num_rays_per_batch">
<span class="sig-name descname"><span class="pre">num_rays_per_batch</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_rays_per_batch" title="Permalink to this definition">#</a></dt>
<dd><p>Number of rays per batch to user per training iteration.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.num_times_to_repeat_images">
<span class="sig-name descname"><span class="pre">num_times_to_repeat_images</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_times_to_repeat_images" title="Permalink to this definition">#</a></dt>
<dd><p>How many RayBundles to generate from this batch of images after sampling <cite>num_images_to_sample_from</cite> images.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.patch_size">
<span class="sig-name descname"><span class="pre">patch_size</span></span><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.patch_size" title="Permalink to this definition">#</a></dt>
<dd><p>Size of patch to sample from. If &gt; 1, patch-based sampling will be used.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.pixel_sampler_config">
<span class="sig-name descname"><span class="pre">pixel_sampler_config</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="index.html#nerfstudio.data.pixel_samplers.PixelSamplerConfig" title="nerfstudio.data.pixel_samplers.PixelSamplerConfig"><span class="pre">PixelSamplerConfig</span></a></em><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.pixel_sampler_config" title="Permalink to this definition">#</a></dt>
<dd><p>Specifies the pixel sampler config used to sample pixels from images. Each worker will have its own pixel sampler</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.RayBatchStream.ray_generator">
<span class="sig-name descname"><span class="pre">ray_generator</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">RayGenerator</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.ray_generator" title="Permalink to this definition">#</a></dt>
<dd><p>Each worker will have its own ray generator, so this is set to None for now.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.undistort_view">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">undistort_view</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">idx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="datasets.html#nerfstudio.data.datasets.base_dataset.InputDataset" title="nerfstudio.data.datasets.base_dataset.InputDataset"><span class="pre">InputDataset</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">image_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'uint8'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'float32'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'float32'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="../cameras.html#nerfstudio.cameras.cameras.Cameras" title="nerfstudio.cameras.cameras.Cameras"><span class="pre">Cameras</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#undistort_view"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.undistort_view" title="Permalink to this definition">#</a></dt>
<dd><p>Undistorts an image to one taken by a linear (pinhole) camera model and returns a new Camera with these updated intrinsics
Note: this method does not modify the dataset’s attributes at all.</p>
<p>Returns: The undistorted data (image, depth, mask, etc.) and the new linear Camera object</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.dataloaders.variable_res_collate">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.dataloaders.</span></span><span class="sig-name descname"><span class="pre">variable_res_collate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">batch</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/dataloaders.html#variable_res_collate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.dataloaders.variable_res_collate" title="Permalink to this definition">#</a></dt>
<dd><p>Default collate function for our dataloader.
:param batch: Batch of samples from the dataset.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Collated batch.</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="nerfstudio-collate">
<h2>Nerfstudio Collate<a class="headerlink" href="#nerfstudio-collate" title="Permalink to this heading">#</a></h2>
<p>Custom collate function that includes cases for nerfstudio types.</p>
<span class="target" id="module-nerfstudio.data.utils.nerfstudio_collate"></span><dl class="py function">
<dt class="sig sig-object py" id="nerfstudio.data.utils.nerfstudio_collate.nerfstudio_collate">
<span class="sig-prename descclassname"><span class="pre">nerfstudio.data.utils.nerfstudio_collate.</span></span><span class="sig-name descname"><span class="pre">nerfstudio_collate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">batch</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">extra_mappings</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">type</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/data/utils/nerfstudio_collate.html#nerfstudio_collate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.data.utils.nerfstudio_collate.nerfstudio_collate" title="Permalink to this definition">#</a></dt>
<dd><p>This is the default pytorch collate function, but with support for nerfstudio types. All documentation
below is copied straight over from pytorch’s default_collate function, python version 3.8.13,
pytorch version ‘1.12.1+cu113’. Custom nerfstudio types are accounted for at the end, and extra
mappings can be passed in to handle custom types. These mappings are from types: callable (types
being like int or float or the return value of type(3.), etc). The only code before we parse for custom types that
was changed from default pytorch was the addition of the extra_mappings argument, a find and replace operation
from default_collate to nerfstudio_collate, and the addition of the nerfstudio_collate_err_msg_format variable.</p>
<p>Function that takes in a batch of data and puts the elements within the batch
into a tensor with an additional outer dimension - batch size. The exact output type can be
a <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code>, a <cite>Sequence</cite> of <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code>, a
Collection of <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code>, or left unchanged, depending on the input type.
This is used as the default function for collation when
<cite>batch_size</cite> or <cite>batch_sampler</cite> is defined in <code class="xref py py-class docutils literal notranslate"><span class="pre">DataLoader</span></code>.</p>
<p>Here is the general input type (based on the type of the element within the batch) to output type mapping:</p>
<blockquote>
<div><ul class="simple">
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code> -&gt; <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code> (with an added outer dimension batch size)</p></li>
<li><p>NumPy Arrays -&gt; <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code></p></li>
<li><p><cite>float</cite> -&gt; <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code></p></li>
<li><p><cite>int</cite> -&gt; <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.Tensor</span></code></p></li>
<li><p><cite>str</cite> -&gt; <cite>str</cite> (unchanged)</p></li>
<li><p><cite>bytes</cite> -&gt; <cite>bytes</cite> (unchanged)</p></li>
<li><p><cite>Mapping[K, V_i]</cite> -&gt; <cite>Mapping[K, nerfstudio_collate([V_1, V_2, …])]</cite></p></li>
<li><p><cite>NamedTuple[V1_i, V2_i, …]</cite> -&gt; <cite>NamedTuple[nerfstudio_collate([V1_1, V1_2, …]),
nerfstudio_collate([V2_1, V2_2, …]), …]</cite></p></li>
<li><p><cite>Sequence[V1_i, V2_i, …]</cite> -&gt; <cite>Sequence[nerfstudio_collate([V1_1, V1_2, …]),
nerfstudio_collate([V2_1, V2_2, …]), …]</cite></p></li>
</ul>
</div></blockquote>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>batch</strong> – a single batch to be collated</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with a batch of `int`s:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
<span class="go">tensor([0, 1, 2, 3])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with a batch of `str`s:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;c&#39;</span><span class="p">])</span>
<span class="go">[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with `Map` inside the batch:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([{</span><span class="s1">&#39;A&#39;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">&#39;B&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">},</span> <span class="p">{</span><span class="s1">&#39;A&#39;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;B&#39;</span><span class="p">:</span> <span class="mi">100</span><span class="p">}])</span>
<span class="go">{&#39;A&#39;: tensor([ 0, 100]), &#39;B&#39;: tensor([ 1, 100])}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with `NamedTuple` inside the batch:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Point</span> <span class="o">=</span> <span class="n">namedtuple</span><span class="p">(</span><span class="s1">&#39;Point&#39;</span><span class="p">,</span> <span class="p">[</span><span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="s1">&#39;y&#39;</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([</span><span class="n">Point</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">Point</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)])</span>
<span class="go">Point(x=tensor([0, 1]), y=tensor([0, 1]))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with `Tuple` inside the batch:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)])</span>
<span class="go">[tensor([0, 2]), tensor([1, 3])]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Example with `List` inside the batch:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nerfstudio_collate</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]])</span>
<span class="go">[tensor([0, 2]), tensor([1, 3])]</span>
</pre></div>
</div>
</dd></dl>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="../fields.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Fields</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="datasets.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Datasets</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2022, nerfstudio Team
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
<div class="icons">
</div>
</div>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Utils</a><ul>
<li><a class="reference internal" href="#base">Base</a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.BaseImage"><code class="docutils literal notranslate"><span class="pre">BaseImage</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera"><code class="docutils literal notranslate"><span class="pre">Camera</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.height"><code class="docutils literal notranslate"><span class="pre">Camera.height</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.id"><code class="docutils literal notranslate"><span class="pre">Camera.id</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.model"><code class="docutils literal notranslate"><span class="pre">Camera.model</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.params"><code class="docutils literal notranslate"><span class="pre">Camera.params</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Camera.width"><code class="docutils literal notranslate"><span class="pre">Camera.width</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel"><code class="docutils literal notranslate"><span class="pre">CameraModel</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_id"><code class="docutils literal notranslate"><span class="pre">CameraModel.model_id</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.model_name"><code class="docutils literal notranslate"><span class="pre">CameraModel.model_name</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.CameraModel.num_params"><code class="docutils literal notranslate"><span class="pre">CameraModel.num_params</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Image"><code class="docutils literal notranslate"><span class="pre">Image</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D"><code class="docutils literal notranslate"><span class="pre">Point3D</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.error"><code class="docutils literal notranslate"><span class="pre">Point3D.error</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.id"><code class="docutils literal notranslate"><span class="pre">Point3D.id</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.image_ids"><code class="docutils literal notranslate"><span class="pre">Point3D.image_ids</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.point2D_idxs"><code class="docutils literal notranslate"><span class="pre">Point3D.point2D_idxs</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.rgb"><code class="docutils literal notranslate"><span class="pre">Point3D.rgb</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.Point3D.xyz"><code class="docutils literal notranslate"><span class="pre">Point3D.xyz</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_cameras_binary"><code class="docutils literal notranslate"><span class="pre">read_cameras_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_cameras_text"><code class="docutils literal notranslate"><span class="pre">read_cameras_text()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_images_binary"><code class="docutils literal notranslate"><span class="pre">read_images_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_images_text"><code class="docutils literal notranslate"><span class="pre">read_images_text()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_next_bytes"><code class="docutils literal notranslate"><span class="pre">read_next_bytes()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_points3D_binary"><code class="docutils literal notranslate"><span class="pre">read_points3D_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.read_points3D_text"><code class="docutils literal notranslate"><span class="pre">read_points3D_text()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_cameras_binary"><code class="docutils literal notranslate"><span class="pre">write_cameras_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_cameras_text"><code class="docutils literal notranslate"><span class="pre">write_cameras_text()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_images_binary"><code class="docutils literal notranslate"><span class="pre">write_images_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_images_text"><code class="docutils literal notranslate"><span class="pre">write_images_text()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_next_bytes"><code class="docutils literal notranslate"><span class="pre">write_next_bytes()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_points3D_binary"><code class="docutils literal notranslate"><span class="pre">write_points3D_binary()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.colmap_parsing_utils.write_points3D_text"><code class="docutils literal notranslate"><span class="pre">write_points3D_text()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#data">Data</a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.data_utils.get_depth_image_from_path"><code class="docutils literal notranslate"><span class="pre">get_depth_image_from_path()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.data_utils.get_image_mask_tensor_from_path"><code class="docutils literal notranslate"><span class="pre">get_image_mask_tensor_from_path()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.data_utils.get_semantics_and_mask_tensors_from_path"><code class="docutils literal notranslate"><span class="pre">get_semantics_and_mask_tensors_from_path()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.data_utils.identity_collate"><code class="docutils literal notranslate"><span class="pre">identity_collate()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.data_utils.pil_to_numpy"><code class="docutils literal notranslate"><span class="pre">pil_to_numpy()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#dataloader">Dataloader</a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.CacheDataloader"><code class="docutils literal notranslate"><span class="pre">CacheDataloader</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.EvalDataloader"><code class="docutils literal notranslate"><span class="pre">EvalDataloader</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.__iter__"><code class="docutils literal notranslate"><span class="pre">EvalDataloader.__iter__()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.__next__"><code class="docutils literal notranslate"><span class="pre">EvalDataloader.__next__()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.get_camera"><code class="docutils literal notranslate"><span class="pre">EvalDataloader.get_camera()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.EvalDataloader.get_data_from_image_idx"><code class="docutils literal notranslate"><span class="pre">EvalDataloader.get_data_from_image_idx()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.FixedIndicesEvalDataloader"><code class="docutils literal notranslate"><span class="pre">FixedIndicesEvalDataloader</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.ImageBatchStream"><code class="docutils literal notranslate"><span class="pre">ImageBatchStream</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RandIndicesEvalDataloader"><code class="docutils literal notranslate"><span class="pre">RandIndicesEvalDataloader</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream"><code class="docutils literal notranslate"><span class="pre">RayBatchStream</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.__iter__"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.__iter__()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.collate_fn"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.collate_fn</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.device"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.device</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.exclude_batch_keys_from_device"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.exclude_batch_keys_from_device</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.load_from_disk"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.load_from_disk</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_image_load_threads"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.num_image_load_threads</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_images_to_sample_from"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.num_images_to_sample_from</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_rays_per_batch"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.num_rays_per_batch</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.num_times_to_repeat_images"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.num_times_to_repeat_images</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.patch_size"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.patch_size</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.pixel_sampler_config"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.pixel_sampler_config</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.RayBatchStream.ray_generator"><code class="docutils literal notranslate"><span class="pre">RayBatchStream.ray_generator</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.undistort_view"><code class="docutils literal notranslate"><span class="pre">undistort_view()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.data.utils.dataloaders.variable_res_collate"><code class="docutils literal notranslate"><span class="pre">variable_res_collate()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio-collate">Nerfstudio Collate</a><ul>
<li><a class="reference internal" href="#nerfstudio.data.utils.nerfstudio_collate.nerfstudio_collate"><code class="docutils literal notranslate"><span class="pre">nerfstudio_collate()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div></body>
</html>