nerfbaselines¶
nerfbaselines [OPTIONS] COMMAND [ARGS]...
download-dataset¶
Download a dataset either to a specified directory or to the default dataset directory. The dataset must have format external://{dataset}/{scene}, where {dataset} is one of the registered datasets and {scene} is the scene id supported by the dataset.
nerfbaselines download-dataset [OPTIONS] DATASET
Options
- -o, --output <output>¶
Output directory to download the dataset to. If not provided, the dataset will be downloaded to the default dataset directory (/home/runner/.cache/nerfbaselines).
Arguments
- DATASET¶
Required argument
evaluate¶
Evaluate predictions (e.g., obtained by running nerfbaselines render) against the ground truth. The predictions are evaluated using the correct evaluation protocol and the results are saved in the specified JSON output file. The predictions can be provided as a directory or a tar.gz/zip file.
nerfbaselines evaluate [OPTIONS] PREDICTIONS
Options
- -o, --output <output>¶
Required Path to the output JSON file to save the evaluation results.
Arguments
- PREDICTIONS¶
Required argument
export-demo¶
Export a demo from a trained model. The interactive demo will be a website (index.html) that can be opened in the browser. Only some methods support this feature.
nerfbaselines export-demo [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- -o, --output <output>¶
Required Output directory for the demo.
- --data <data>¶
A path to the dataset to load which matches the dataset used to train the model. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path. While only some methods require the dataset, it is recommended to always specify it as it can improve viewing experience.
- --train-embedding <train_embedding>¶
Select the train embedding index to use for the demo (if the method supports appearance modelling.
- --set <options>¶
Set a parameter for demo export. The argument should be in the form of –set key=value and can be used multiple times to set multiple parameters. The parameters are specific to each method.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
export-mesh¶
Export a mesh from a trained model. This usually involves rendering all training cameras and fusing the depth maps and normals into a mesh. The mesh will be saved in the specified output directory, usually as mesh.ply file, but different methods can export other files or file formats. Note, only some methods support this feature.
nerfbaselines export-mesh [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- -o, --output <output>¶
Required Path to a directory to save the mesh (usually as a mesh.ply file).
- -v, --verbose¶
Enable verbose logging
- --data <data>¶
A path to the dataset to load which matches the dataset used to train the model. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path. While required for most, some methods do not require the dataset to export a mesh (e.g. colmap).
- --set <options>¶
Set a parameter for mesh export. The argument should be in the form of –set key=value and can be used multiple times to set multiple parameters. The parameters will override the parameters stored in the checkpoint. The parameters are specific to each method.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
fix-checkpoint¶
Fix a checkpoint created from either an older nerfbaselines version or a checkpoint created directly by using the authors’ code. This command will update the checkpoint to the latest format and save it to a new directory.
nerfbaselines fix-checkpoint [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Required Path to the current checkpoint directory.
- --data <data>¶
Required A path to the dataset the model was trained on. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path.
- --method <method_name>¶
Method to use. If not provided, the method name will be read from the checkpoint (if nb-info.json file is present).
- --new-checkpoint <new_checkpoint>¶
Required Path to save the new checkpoint
- --set <config_overrides>¶
Override parameters used when training the original checkpoint. The argument should be in the form of –set key=value. This argument can be used multiple times to override multiple parameters. And it is specific to each method.
- --presets <presets>¶
A comma-separated list of presets used when training the original checkpoint.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
fix-output-artifact¶
nerfbaselines fix-output-artifact [OPTIONS]
Options
- --input <input>¶
Required
- --data <data>¶
- --method <method_name>¶
- --rebuild-checkpoint¶
- --rerun-evaluation¶
- --rerun-render¶
- --output <new_artifact>¶
Path to save the new output artifact
- --force¶
- --inplace¶
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
generate-dataset-results¶
nerfbaselines generate-dataset-results [OPTIONS]
Options
- --results <results>¶
- --dataset <dataset>¶
- --output-type <output_type>¶
- Options:
markdown | json | latex
- --method-links <method_links>¶
- Options:
paper | website | results | none
- --output <output>¶
- --scenes <scenes>¶
Comma-separated list of scenes to include in the results.
install¶
Install either a pre-defined method or a custom method from a spec file. If installing from spec (–spec argument) - a python file with a register() call - the registered objects will be added to local registry. If installing a method (–method argument) the backend implementation for the method will be pre-installed. This also applies when specifying both –spec and –backend arguments.
nerfbaselines install [OPTIONS]
Options
- --method <method>¶
Method to install.
- Options:
nerfonthego | mipnerf360 | gaussian-opacity-fields | gaussian-splatting | kplanes | colmap | seathru-nerf | 2d-gaussian-splatting | instant-ngp | nerfacto | tetra-nerf | gsplat | wild-gaussians | tensorf | nerf | scaffold-gs | nerfw-reimpl | camp | gaussian-splatting-wild | mip-splatting | zipnerf | 3dgs-mcmc
- --spec <spec>¶
Path to a spec file (a Python file with register() calls) to install.
- --force¶
Overwrite existing specs. Only applies when –spec is provided.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
measure-fps¶
Measure FPS
nerfbaselines measure-fps [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Required Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- --data <data>¶
Required A path to the dataset to render the cameras from. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path.
- --num-repeats <num_repeats>¶
Number of times to repeat the rendering to estimate the FPS.
- Default:
10
- --split <split>¶
Dataset split to use to estimate the FPS.
- Default:
'test'
- --data-indices <data_indices>¶
Indices of the dataset to use to estimate the FPS. Default is to use the first camera.
- --resolution <resolution>¶
Override the resolution of the output. Use ‘widthxheight’ format (e.g., 1920x1080). If one of the dimensions is negative, the aspect ratio will be preserved and the dimension will be rounded to the nearest multiple of the absolute value of the dimension.
- --output-names <output_names>¶
Comma separated list of output types (e.g. color,depth,accumulation). See the method’s get_info()[‘supported_outputs’] for supported outputs. By default, only color is rendered.
- --output <output>¶
Write output to a JSON file.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
render¶
Render images from a trained model for all cameras in the dataset. The images will be saved in the specified output directory. The correct evaluation protocol will be used to render the images. E.g., for Photo Tourism, appearance embeddings will be optimized before the images are rendered.
nerfbaselines render [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Required Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- --data <data>¶
Required A path to the dataset to render the cameras from. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path.
- --output <output>¶
Output directory or tar.gz/zip file.
- --split <split>¶
Dataset split to render.
- Default:
'test'
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
render-trajectory¶
Render images from a trained model for a trajectory. The trajectory should be a JSON file obtained from the viewer (nerfbaselines viewer). The output can be a video or a directory with images. Furthermore, one or multiple outputs can be rendered (e.g., color, depth, accumulation).If multiple outputs are specified, the –output argument should contain a placeholder {output} which will be replaced with the output name and multiple files will be generated (unless the output is a directory or an archive, where all outputs can be placed to a single archive).
nerfbaselines render-trajectory [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Required Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- --trajectory <trajectory>¶
Required Path to the trajectory JSON file.
- --output <output>¶
Output a mp4/directory/tar.gz file. Use ‘{output}’ as a placeholder for output name.
- --resolution <resolution>¶
Override the resolution of the output. Use ‘widthxheight’ format (e.g., 1920x1080). If one of the dimensions is negative, the aspect ratio will be preserved and the dimension will be rounded to the nearest multiple of the absolute value of the dimension.
- --output-names <output_names>¶
Comma separated list of output types (e.g. color,depth,accumulation). See the method’s get_info()[‘supported_outputs’] for supported outputs.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
shell¶
Run a shell command in the backend environment. This command is useful for debugging and running custom commands in the backend environment.
nerfbaselines shell [OPTIONS] [COMMAND]...
Options
- --method <method>¶
Required Method to use.
- Options:
nerfonthego | mipnerf360 | gaussian-opacity-fields | gaussian-splatting | kplanes | colmap | seathru-nerf | 2d-gaussian-splatting | instant-ngp | nerfacto | tetra-nerf | gsplat | wild-gaussians | tensorf | nerf | scaffold-gs | nerfw-reimpl | camp | gaussian-splatting-wild | mip-splatting | zipnerf | 3dgs-mcmc
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Arguments
- COMMAND¶
Optional argument(s)
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
test-method¶
nerfbaselines test-method [OPTIONS]
Options
- --method <method_name>¶
Required Method to use
- Options:
2d-gaussian-splatting | 3dgs-mcmc | camp | colmap | gaussian-opacity-fields | gaussian-splatting | gaussian-splatting-wild | gsplat | instant-ngp | kplanes | mip-splatting | mipnerf360 | nerf | nerfacto | nerfonthego | nerfw-reimpl | scaffold-gs | seathru-nerf | tensorf | tetra-nerf | wild-gaussians | zipnerf
- --data <dataset>¶
Required
- -v, --verbose¶
- --full¶
Run the full method training
- --steps <steps>¶
Number of steps to run (for initial tests, not –full)
- --presets <presets>¶
Apply a comma-separated list of preset to the method. If no –presets is supplied, or if a special @auto preset is present, the method’s default presets are applied (based on the dataset metadata).
- --set <config_overrides>¶
Override a parameter in the method.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
train¶
Train a model of a specified method on a dataset. The method is specified by the –method argument, and the dataset is specified by the –data argument. The training will periodically save checkpoints, evaluate the intermediate model on a few images, and evaluate the final model on all images. The training progress will be logged to the console and optionally to TensorBoard, Weights & Biases, or another supported logger. The final model and predictions can be saved as an output artifact which can be uploaded to the web benchmark. The training can be resumed from a checkpoint by specifying the –checkpoint argument. The method’s parameters can be overridden using the –set argument, and the method’s presets can be applied using the –presets argument. The –set and –presets arguments can be used multiple times to apply multiple overrides and presets and are specific to each method.
nerfbaselines train [OPTIONS]
Options
- --method <method_name>¶
Required Method to use
- Options:
2d-gaussian-splatting | 3dgs-mcmc | camp | colmap | gaussian-opacity-fields | gaussian-splatting | gaussian-splatting-wild | gsplat | instant-ngp | kplanes | mip-splatting | mipnerf360 | nerf | nerfacto | nerfonthego | nerfw-reimpl | scaffold-gs | seathru-nerf | tensorf | tetra-nerf | wild-gaussians | zipnerf
- --checkpoint <checkpoint>¶
Path to a checkpoint to resume training from.
- --data <data>¶
Required A path to the dataset to train on. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path.
- --output <output>¶
Output directory to save the training results
- Default:
'.'
- --logger <logger>¶
Logger to use.
- Default:
'tensorboard'
- Options:
none | wandb | tensorboard | wandb,tensorboard
- --save-iters <save_iters>¶
When to save the model
- Default:
-1
- --eval-few-iters <eval_few_iters>¶
When to evaluate on few images
- Default:
2000::2000
- --eval-all-iters <eval_all_iters>¶
When to evaluate all images
- Default:
-1
- --disable-output-artifact¶
Disable producing output artifact containing final model and predictions.
- --force-output-artifact¶
Force producing output artifact containing final model and predictions.
- --set <config_overrides>¶
Override a parameter in the method. The argument should be in the form of –set key=value. This argument can be used multiple times to override multiple parameters. And it is specific to each method.
- --presets <presets>¶
Apply a comma-separated list of preset to the method. If no –presets is supplied, or if a special @auto preset is present (default if no presets are specified), the method’s default presets are applied (based on the dataset metadata).
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
viewer¶
Start the viewer. If a checkpoint is provided, the viewer will load the model. If a data path is provided, the viewer will load the dataset. Note that even then the checkpoint is provided, providing the –data argument is still recommended as it will improve viewing experience.
nerfbaselines viewer [OPTIONS]
Options
- --checkpoint <checkpoint>¶
Path to the checkpoint directory. It can also be a remote path (starting with http(s)://) or be a path inside a zip file.
- --data <data>¶
A path to the dataset to load in the viewer. The dataset can be either an external dataset (e.g., a path starting with external://{dataset}/{scene}) or a local path to a dataset. If the dataset is an external dataset, the dataset will be downloaded and cached locally. If the dataset is a local path, the dataset will be loaded directly from the specified path.
- --port <port>¶
Port to run the viewer on. Defaults to 6006.
- --backend <backend_name>¶
The backend to use. If not specified, a supported installed backend is selected automatically. Note, the backend can be specified via the NERFBASELINES_BACKEND environment variable.
- Options:
conda | docker | apptainer | python
Environment variables
- NERFBASELINES_BACKEND
Provide a default for
--backend
web¶
nerfbaselines web [OPTIONS] COMMAND [ARGS]...
build¶
Build the web benchmark static website.
nerfbaselines web build [OPTIONS]
Options
- --data <data_path>¶
Path to data directory. If not provided, data is generated from the NerfBaselines repository.
- --output <output>¶
Required Output directory.
- --datasets <datasets>¶
List of comma separated dataset ids to include.
- --base-path <base_path>¶
Base path for the website.
- --docs <include_docs>¶
Whether to include the documentation page for all versions, the latest, or none.
- Default:
'none'
- Options:
all | latest | none
dev¶
Start a development server for the web benchmark. Any changes to the source code will be automatically reloaded.
nerfbaselines web dev [OPTIONS]
Options
- --data <data_path>¶
Path to data directory. If not provided, data is generated from the NerfBaselines repository.
- --datasets <datasets>¶
List of comma separated dataset ids to include.
- --docs <include_docs>¶
Whether to include the documentation page for all versions, the latest, or none.
- Default:
'none'
- Options:
all | latest | none