mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-12 10:55:57 +08:00
* starting docs for pipelines * working on an example * clearing output * starting to implement config changes and add documentation * removing diff * format * templated pipeline notebook a bit * black
7.6 MiB
7.6 MiB
In [13]:
# HIDDEN
import torch
import plotly.graph_objects as go
torch.manual_seed(4)
webdocs_layout = go.Layout(
scene=dict(
aspectmode="data",
xaxis=dict(showspikes=False),
yaxis=dict(showspikes=False),
zaxis=dict(showspikes=False),
# xaxis_visible=False,
# yaxis_visible=False,
# zaxis_visible=False,
),
scene_camera=dict(up=dict(x=0, y=1, z=0)),
margin=dict(r=0, b=10, l=0, t=10),
hovermode=False,
showlegend=False,
paper_bgcolor="rgba(0,0,0,0)",
)In [14]:
# COLLAPSED
import nerfactory
from nerfactory.utils import plotly as vis
import torch
import plotly.graph_objects as go
num_rays = 4
num_samples = 15
pixel_area = 0.12
far = 5
origins = torch.rand((num_rays, 1, 3)) * 1 - 0.5
directions = torch.randn((num_rays, 1, 3))
bins = torch.linspace(0.1, far, num_samples + 1)[None, ..., None]
pixel_area = torch.tensor([pixel_area])[None, None, ...]
directions = directions / directions.norm(dim=-1, keepdim=True)
frustums = nerfactory.cameras.rays.Frustums(
origins=origins, directions=directions, starts=bins[:, :-1, :], ends=bins[:, 1:, :], pixel_area=pixel_area
)
data = []
for i, frustum in enumerate(frustums):
data += vis.get_gaussian_ellipsoids_list(frustum.get_gaussian_blob(), color=vis.get_random_color(idx=i))
data.append(vis.get_sphere(radius=1.0, color="#111111", opacity=0.05))
data.append(vis.get_sphere(radius=2.0, color="#111111", opacity=0.05))
fig = go.Figure(data=data, layout=webdocs_layout)
fig.show()In [15]:
# COLLAPSED
from nerfactory.fields.modules.spatial_distortions import SceneContraction
data = []
for i, frustum in enumerate(frustums):
contracted_gaussian = SceneContraction()(frustum.get_gaussian_blob())
data += vis.get_gaussian_ellipsoids_list(contracted_gaussian, color=vis.get_random_color(idx=i))
data.append(vis.get_sphere(radius=1.0, color="#111111", opacity=0.05))
data.append(vis.get_sphere(radius=2.0, color="#111111", opacity=0.05))
fig = go.Figure(data=data, layout=webdocs_layout)
fig.show()