This commit is contained in:
Gina Wu committed 2024-06-27 16:52:57 -07:00
1 parent 770d843d9b
commit 9352d88f17
2 files changed
+38 -2

No files matched your search

+33 -2
View File
@@ -14,18 +14,49 @@
from __future__ import annotations
import dataclasses
from pathlib import Path
from typing import Literal
import viser
from nerfstudio.models.base_model import Model
from nerfstudio.models.splatfacto import SplatfactoModel
from nerfstudio.viewer.control_panel import ControlPanel
from nerfstudio.viewer.viewer_elements import ViewerPlot
@dataclasses.dataclass
class MetricsPanel:
server: viser.ViserServer
control_panel: ControlPanel
config_path: Path
viewer_model: Model
def populate_metrics_tab(
server: viser.ViserServer,
control_panel: ControlPanel,
config_path: Path,
viewer_model: Model,
) -> None:
pass
viewing_gsplat = isinstance(viewer_model, SplatfactoModel)
with server.add_gui_folder("Training Metrics"):
populate_train_metrics_tab(server, control_panel, config_path, viewing_gsplat)
# with server.add_gui_folder("Training Loss"):
# populate_train_loss_tab(server, control_panel, config_path, viewing_gsplat)
#training rays?
# with server.add_gui_folder("Eval Metrics"):
# populate_eval_metrics_tab(server, control_panel, config_path, viewing_gsplat)
# with server.add_gui_folder("Eval Metrics (All Images)"):
# populate_eval_metrics_all_images_tab(server, control_panel, config_path, viewing_gsplat)
# with server.add_gui_folder("Eval Loss"):
# populate_eval_loss_tab(server, control_panel, config_path, viewing_gsplat)
def populate_train_metrics_tab(
server: viser.ViserServer,
control_panel: ControlPanel,
config_path: Path,
viewing_gsplat: bool,
) -> None:
ViewerPlot()
+5
View File
@@ -40,6 +40,7 @@ from nerfstudio.utils.decorators import check_main_thread, decorate_all
from nerfstudio.utils.writer import GLOBAL_BUFFER, EventName
from nerfstudio.viewer.control_panel import ControlPanel
from nerfstudio.viewer.export_panel import populate_export_tab
from nerfstudio.viewer.metrics_panel import populate_metrics_tab
from nerfstudio.viewer.render_panel import populate_render_tab
from nerfstudio.viewer.render_state_machine import RenderAction, RenderStateMachine
from nerfstudio.viewer.utils import CameraState, parse_object
@@ -199,6 +200,7 @@ class Viewer:
self._output_split_type_change,
default_composite_depth=self.config.default_composite_depth,
)
config_path = self.log_filename.parents[0] / "config.yml"
with tabs.add_tab("Render", viser.Icon.CAMERA):
self.render_tab_state = populate_render_tab(
@@ -208,6 +210,9 @@ class Viewer:
with tabs.add_tab("Export", viser.Icon.PACKAGE_EXPORT):
populate_export_tab(self.viser_server, self.control_panel, config_path, self.pipeline.model)
with tabs.add_tab("Metrics", viser.Icon.GRAPH):
populate_metrics_tab(self.viser_server, self.control_panel, config_path, self.pipeline.model)
# Keep track of the pointers to generated GUI folders, because each generated folder holds a unique ID.
viewer_gui_folders = dict()