mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-11 02:24:38 +08:00
822 lines
75 KiB
HTML
822 lines
75 KiB
HTML
<!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="Math" />
|
||
|
||
<meta property="og:type" content="website" />
|
||
|
||
<meta property="og:url" content="http://docs.nerf.studio/reference/api/utils/math.html" />
|
||
|
||
<meta property="og:description" content="Math Helper Functions" />
|
||
|
||
<meta property="og:image" content="https://assets.nerf.studio/opg.png" />
|
||
|
||
<meta property="og:image:alt" content="Math" />
|
||
<link rel="index" title="Index" href="../../../genindex.html" /><link rel="search" title="Search" href="../../../search.html" /><link rel="next" title="Colormaps" href="colormaps.html" /><link rel="prev" title="Colors" href="colors.html" />
|
||
|
||
<meta name="generator" content="sphinx-5.2.1, furo 2022.09.29" />
|
||
<title>Math - 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> colab</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="../data/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 has-children"><a class="reference internal" href="../data/index.html">Data</a><input 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>
|
||
<li class="toctree-l3"><a class="reference internal" href="../data/dataparsers.html">Data Parsers</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../data/datamanagers.html">Datamanagers</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../data/datasets.html">Datasets</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="../data/utils.html">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 current has-children"><a class="reference internal" href="index.html">Utils</a><input checked="" 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 class="current">
|
||
<li class="toctree-l3"><a class="reference internal" href="colors.html">Colors</a></li>
|
||
<li class="toctree-l3 current current-page"><a class="current reference internal" href="#">Math</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="colormaps.html">Colormaps</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="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="math">
|
||
<span id="id1"></span><h1>Math<a class="headerlink" href="#math" title="Permalink to this heading">#</a></h1>
|
||
<p>Math Helper Functions</p>
|
||
<span class="target" id="module-nerfstudio.utils.math"></span><dl class="py class">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.Gaussians">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">Gaussians</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mean</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">dim'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cov</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">dim</span> <span class="pre">dim'</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#Gaussians"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.Gaussians" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Stores Gaussians</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>mean</strong> – Mean of multivariate Gaussian</p></li>
|
||
<li><p><strong>cov</strong> – Covariance of multivariate Gaussian.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.columnwise_squared_l2_distance">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">columnwise_squared_l2_distance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*M</span> <span class="pre">N'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*M</span> <span class="pre">N'</span></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">→</span> <span class="sig-return-typehint"><span class="pre">Float</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="s"><span class="pre">'N</span> <span class="pre">N'</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#columnwise_squared_l2_distance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.columnwise_squared_l2_distance" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Compute the squared Euclidean distance between all pairs of columns.
|
||
Adapted from <a class="reference external" href="https://github.com/google-research/multinerf/blob/5b4d4f64608ec8077222c52fdf814d40acc10bc1/internal/geopoly.py">https://github.com/google-research/multinerf/blob/5b4d4f64608ec8077222c52fdf814d40acc10bc1/internal/geopoly.py</a></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>x</strong> – tensor of floats, with shape [M, N].</p></li>
|
||
<li><p><strong>y</strong> – tensor of floats, with shape [M, N].</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>tensor of floats, with shape [N, N].</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>sq_dist</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.compute_3d_gaussian">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">compute_3d_gaussian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">directions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">means</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dir_variance</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius_variance</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></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">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians"><span class="pre">Gaussians</span></a></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#compute_3d_gaussian"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.compute_3d_gaussian" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Compute gaussian along ray.</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>directions</strong> – Axis of Gaussian.</p></li>
|
||
<li><p><strong>means</strong> – Mean of Gaussian.</p></li>
|
||
<li><p><strong>dir_variance</strong> – Variance along direction axis.</p></li>
|
||
<li><p><strong>radius_variance</strong> – Variance tangent to direction axis.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Oriented 3D gaussian.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians">Gaussians</a></p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.conical_frustum_to_gaussian">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">conical_frustum_to_gaussian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">origins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">directions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ends</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></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">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians"><span class="pre">Gaussians</span></a></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#conical_frustum_to_gaussian"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.conical_frustum_to_gaussian" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Approximates conical frustums with a Gaussian distributions.</p>
|
||
<p>Uses stable parameterization described in mip-NeRF publication.</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>origins</strong> – Origins of cones.</p></li>
|
||
<li><p><strong>directions</strong> – Direction (axis) of frustums.</p></li>
|
||
<li><p><strong>starts</strong> – Start of conical frustums.</p></li>
|
||
<li><p><strong>ends</strong> – End of conical frustums.</p></li>
|
||
<li><p><strong>radius</strong> – Radii of cone a distance of 1 from the origin.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Approximation of conical frustums</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians">Gaussians</a></p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.cylinder_to_gaussian">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">cylinder_to_gaussian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">origins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">directions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">3'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ends</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">radius</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">1'</span></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">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians"><span class="pre">Gaussians</span></a></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#cylinder_to_gaussian"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.cylinder_to_gaussian" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Approximates cylinders with a Gaussian distributions.</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>origins</strong> – Origins of cylinders.</p></li>
|
||
<li><p><strong>directions</strong> – Direction (axis) of cylinders.</p></li>
|
||
<li><p><strong>starts</strong> – Start of cylinders.</p></li>
|
||
<li><p><strong>ends</strong> – End of cylinders.</p></li>
|
||
<li><p><strong>radius</strong> – Radii of cylinders.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Approximation of cylinders</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><a class="reference internal" href="#nerfstudio.utils.math.Gaussians" title="nerfstudio.utils.math.Gaussians">Gaussians</a></p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.expected_sin">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">expected_sin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x_means</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_vars</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tensor</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#expected_sin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.expected_sin" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Computes the expected value of sin(y) where y ~ N(x_means, x_vars)</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>x_means</strong> – Mean values.</p></li>
|
||
<li><p><strong>x_vars</strong> – Variance of values.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>The expected value of sin.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>torch.Tensor</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.generate_polyhedron_basis">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">generate_polyhedron_basis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">basis_shape</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">'icosahedron'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'octahedron'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">angular_tesselation</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">remove_symmetries</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</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">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eps</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">0.0001</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tensor</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#generate_polyhedron_basis"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.generate_polyhedron_basis" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Generates a 3D basis by tesselating a geometric polyhedron.
|
||
Basis is used to construct Fourier features for positional encoding.
|
||
See Mip-Nerf360 paper: <a class="reference external" href="https://arxiv.org/abs/2111.12077">https://arxiv.org/abs/2111.12077</a>
|
||
Adapted from <a class="reference external" href="https://github.com/google-research/multinerf/blob/5b4d4f64608ec8077222c52fdf814d40acc10bc1/internal/geopoly.py">https://github.com/google-research/multinerf/blob/5b4d4f64608ec8077222c52fdf814d40acc10bc1/internal/geopoly.py</a></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>base_shape</strong> – string, the name of the starting polyhedron, must be either
|
||
‘icosahedron’ or ‘octahedron’.</p></li>
|
||
<li><p><strong>angular_tesselation</strong> – int, the number of times to tesselate the polyhedron,
|
||
must be >= 1 (a value of 1 is a no-op to the polyhedron).</p></li>
|
||
<li><p><strong>remove_symmetries</strong> – bool, if True then remove the symmetric basis columns,
|
||
which is usually a good idea because otherwise projections onto the basis
|
||
will have redundant negative copies of each other.</p></li>
|
||
<li><p><strong>eps</strong> – float, a small number used to determine symmetries.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>a matrix with shape [3, n].</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>basis</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.intersect_aabb">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">intersect_aabb</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">origins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">directions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aabb</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_bound</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">10000000000.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">invalid_value</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">10000000000.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</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/utils/math.html#intersect_aabb"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.intersect_aabb" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Implementation of ray intersection with AABB box</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>origins</strong> – [N,3] tensor of 3d positions</p></li>
|
||
<li><p><strong>directions</strong> – [N,3] tensor of normalized directions</p></li>
|
||
<li><p><strong>aabb</strong> – [6] array of aabb box in the form of [x_min, y_min, z_min, x_max, y_max, z_max]</p></li>
|
||
<li><p><strong>max_bound</strong> – Maximum value of t_max</p></li>
|
||
<li><p><strong>invalid_value</strong> – Value to return in case of no intersection</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>t_min, t_max - two tensors of shapes N representing distance of intersection from the origin.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.intersect_obb">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">intersect_obb</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">origins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">directions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obb</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../data/index.html#nerfstudio.data.scene_box.OrientedBox" title="nerfstudio.data.scene_box.OrientedBox"><span class="pre">OrientedBox</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_bound</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">10000000000.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">invalid_value</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">10000000000.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#intersect_obb"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.intersect_obb" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Ray intersection with an oriented bounding box (OBB)</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>origins</strong> – [N,3] tensor of 3d positions</p></li>
|
||
<li><p><strong>directions</strong> – [N,3] tensor of normalized directions</p></li>
|
||
<li><p><strong>R</strong> – [3,3] rotation matrix</p></li>
|
||
<li><p><strong>T</strong> – [3] translation vector</p></li>
|
||
<li><p><strong>S</strong> – [3] extents of the bounding box</p></li>
|
||
<li><p><strong>max_bound</strong> – Maximum value of t_max</p></li>
|
||
<li><p><strong>invalid_value</strong> – Value to return in case of no intersection</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.k_nearest_sklearn">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">k_nearest_sklearn</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">k</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">metric</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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">'euclidean'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">k'</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Int</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="s"><span class="pre">'*batch</span> <span class="pre">k'</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#k_nearest_sklearn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.k_nearest_sklearn" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Find k-nearest neighbors using sklearn’s NearestNeighbors.</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>x</strong> – input tensor</p></li>
|
||
<li><p><strong>k</strong> – number of neighbors to find</p></li>
|
||
<li><p><strong>metric</strong> – metric to use for distance computation</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>distances to the k-nearest neighbors
|
||
indices: indices of the k-nearest neighbors</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>distances</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.masked_reduction">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">masked_reduction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_tensor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'1</span> <span class="pre">32</span> <span class="pre">mult'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mask</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Bool</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="s"><span class="pre">'1</span> <span class="pre">32</span> <span class="pre">mult'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reduction_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">'image'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'batch'</span></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">→</span> <span class="sig-return-typehint"><span class="pre">Tensor</span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#masked_reduction"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.masked_reduction" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Whether to consolidate the input_tensor across the batch or across the image
|
||
:param input_tensor: input tensor
|
||
:param mask: mask tensor
|
||
:param reduction_type: either “batch” or “image”</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>reduced input_tensor</p>
|
||
</dd>
|
||
<dt class="field-even">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>input_tensor</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.normalized_depth_scale_and_shift">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">normalized_depth_scale_and_shift</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prediction</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'1</span> <span class="pre">32</span> <span class="pre">mult'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'1</span> <span class="pre">32</span> <span class="pre">mult'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mask</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Bool</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="s"><span class="pre">'1</span> <span class="pre">32</span> <span class="pre">mult'</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#normalized_depth_scale_and_shift"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.normalized_depth_scale_and_shift" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>More info here: <a class="reference external" href="https://arxiv.org/pdf/2206.00665.pdf">https://arxiv.org/pdf/2206.00665.pdf</a> supplementary section A2 Depth Consistency Loss
|
||
This function computes scale/shift required to normalizes predicted depth map,
|
||
to allow for using normalized depth maps as input from monocular depth estimation networks.
|
||
These networks are trained such that they predict normalized depth maps.</p>
|
||
<p>Solves for scale/shift using a least squares approach with a closed form solution:
|
||
Based on:
|
||
<a class="reference external" href="https://github.com/autonomousvision/monosdf/blob/d9619e948bf3d85c6adec1a643f679e2e8e84d4b/code/model/loss.py#L7">https://github.com/autonomousvision/monosdf/blob/d9619e948bf3d85c6adec1a643f679e2e8e84d4b/code/model/loss.py#L7</a>
|
||
:param prediction: predicted depth map
|
||
:param target: ground truth depth map
|
||
:param mask: mask of valid pixels</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>scale and shift for depth prediction</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.random_quat_tensor">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">random_quat_tensor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">N</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">→</span> <span class="sig-return-typehint"><span class="pre">Float</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="s"><span class="pre">'*batch</span> <span class="pre">4'</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#random_quat_tensor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.random_quat_tensor" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Defines a random quaternion tensor.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>N</strong> – Number of quaternions to generate</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>a random quaternion tensor of shape (N, 4)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="nerfstudio.utils.math.safe_normalize">
|
||
<span class="sig-prename descclassname"><span class="pre">nerfstudio.utils.math.</span></span><span class="sig-name descname"><span class="pre">safe_normalize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">vectors</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Float</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="s"><span class="pre">'*batch_dim</span> <span class="pre">N'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eps</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">1e-10</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Float</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="s"><span class="pre">'*batch_dim</span> <span class="pre">N'</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../../_modules/nerfstudio/utils/math.html#safe_normalize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.utils.math.safe_normalize" title="Permalink to this definition">#</a></dt>
|
||
<dd><p>Normalizes vectors.</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>vectors</strong> – Vectors to normalize.</p></li>
|
||
<li><p><strong>eps</strong> – Epsilon value to avoid division by zero.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Normalized vectors.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
|
||
</article>
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="related-pages">
|
||
<a class="next-page" href="colormaps.html">
|
||
<div class="page-info">
|
||
<div class="context">
|
||
<span>Next</span>
|
||
</div>
|
||
<div class="title">Colormaps</div>
|
||
</div>
|
||
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
|
||
</a>
|
||
<a class="prev-page" href="colors.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">Colors</div>
|
||
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="bottom-of-page">
|
||
<div class="left-details">
|
||
<div class="copyright">
|
||
Copyright © 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="#">Math</a><ul>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.Gaussians"><code class="docutils literal notranslate"><span class="pre">Gaussians</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.columnwise_squared_l2_distance"><code class="docutils literal notranslate"><span class="pre">columnwise_squared_l2_distance()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.compute_3d_gaussian"><code class="docutils literal notranslate"><span class="pre">compute_3d_gaussian()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.conical_frustum_to_gaussian"><code class="docutils literal notranslate"><span class="pre">conical_frustum_to_gaussian()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.cylinder_to_gaussian"><code class="docutils literal notranslate"><span class="pre">cylinder_to_gaussian()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.expected_sin"><code class="docutils literal notranslate"><span class="pre">expected_sin()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.generate_polyhedron_basis"><code class="docutils literal notranslate"><span class="pre">generate_polyhedron_basis()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.intersect_aabb"><code class="docutils literal notranslate"><span class="pre">intersect_aabb()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.intersect_obb"><code class="docutils literal notranslate"><span class="pre">intersect_obb()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.k_nearest_sklearn"><code class="docutils literal notranslate"><span class="pre">k_nearest_sklearn()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.masked_reduction"><code class="docutils literal notranslate"><span class="pre">masked_reduction()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.normalized_depth_scale_and_shift"><code class="docutils literal notranslate"><span class="pre">normalized_depth_scale_and_shift()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.random_quat_tensor"><code class="docutils literal notranslate"><span class="pre">random_quat_tensor()</span></code></a></li>
|
||
<li><a class="reference internal" href="#nerfstudio.utils.math.safe_normalize"><code class="docutils literal notranslate"><span class="pre">safe_normalize()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</aside>
|
||
</div>
|
||
</div></body>
|
||
|
||
</html> |