4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-10 18:17:31 +08:00
Commit Graph

69 Commits

Author SHA1 Message Date
Matthew Hoffman
f0aadf9de8
Use ruff as linter and formatter (#2765)
* Switch from black to ruff format

* Sort dependencies with ruff check

* Run ruff format
2024-01-15 13:43:14 -08:00
Maxim Bonnaerens
8812d7a5b0
.vscode settings match move to ms-python.black-formatter (#2456)
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2023-09-22 17:45:05 +00:00
Justin Kerr
85ef567682
Flesh out viewer beta (#2086)
* Increase max_res of first proposal network

* fix render statemachine logic for viewer beta

* clicking on cameras in the viewer

* fix fov calculation, update camera positions while training

* cleanup

* backup

* fix configure theme

* Fix theme configure for latest dev version of viser

* Fix runtime errors

* add set up direction button

* add pause resume button

* Export panel

* Render tab skeleton

* make responsiveness more snappy by stopping training

* depth composite

* start implementing viewercontrol in new viewer

* refactor background img to use depth and add depth layering option

* show/hide images

* speed up rendering

* fix crop color background

* crop

* rotated crops

* rotated crops

* transform handle on crop box

* fix xyzw for crop

* oriented crop export for pointclouds, not for meshes yet

* Initial render panel

* Fix export button

* Theme tweaks

* fix background issue in cropping

* export rotated poisson meshe

* double normals definition in export panel

* Visual nits

* remove tsdf from export panel

* Add licenses

* Fix some CI errors

* Type fixes

* Fix tests

* Fix numpy broken

* various bugfix

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
Co-authored-by: terrancewang <terrance.3512@gmail.com>
2023-09-08 05:10:00 +00:00
Saurav Maheshkar
46bc8fe7cc
style(ruff): provide better integration with ruff vscode extension (#1994)
* style(ruff): use default python setttings

* style(ruff): add ruff extension to `devcontainer.json`
2023-05-24 12:22:02 -07:00
Brent Yi
d542646c72
Switch to ruff (#1939)
* `isort` -> `ruff`

* `pylint` -> `ruff`

* Remove line

* More minor cleanup

* Better documentation for rules we are enabling

* Fix gitignore, run black

* vscode settings

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
2023-05-17 10:08:14 -07:00
Matthew Tancik
72a14b0b22
Move scripts folder into nerfstudio (#1897)
move scripts folder into nerfstudio
2023-05-09 16:44:21 -07:00
Brent Yi
6a7c8820b8
Viewer backend refactor (#1702)
* Copy in `viser` communication infrastructure

* Update background image

* Add build directory to fix viser HTTP server
May want to remove these later

* Copy in `viser` communication infrastructure

* Update background image

* Pass dataset vis using viser

* initial impl of ViewerParameter

* idk what i did but brent and matt know

* Suppress eslint typescript warnings

* implement ViewerElement base class, then ViewerButton, ViewerSlider, etc

* client -> server message setup

* multi folder stuff

* Stream controls over viser

* import

* add types to viewer_param.py

* Move another message to viser

* Update folder color

* Use non throttled messages

* multiple folders works

* Cleanup, more porting

* starting impl of control panel in viser

* More porting

* scenebox to viser

* Cleanup

* Fix render updates

* More cleanup, docs, typing

* start control_panel.py

* set_hidden logic but not merged in

* control_panel replicates behavior of existing control panel (visually), except for setting the list of output options. not yet integrated with viewer_utils.py for logic flow. also implemented set_disabled and set_hidden in javscript/ViewerElement side

* Remove some original leva components

* add some train util logic, attempt set_value, doesn't work on javascript side fully yet (value updates but not slider visually

* bye zmq

* missing call to decoder

* 'gui_set' works properly, control panel now replicates behavior of original

* remove print

* Fix status viewer message

* More cleanup

* support set_options in dropdown

* hiding buttons works correctly

* fix set_options, switch from cur_value to get_value()

* Fix slowdown

* output options

* colormap logic converted

* add handle to cb_hook

* fix some lambda bugs

* cleanup

* Save checkpoint logic readded

* Cleanup and minor fixes

* snappier ui

* Refactoring

* Fix state update bugs

* Bug fixes

* Write less to redux

* added comments to reducer code

* Render state machine (#1727)

* state machine works, but train step throttling not implemented

* more step logic, cleanup

* remove random try catcH

* mutex logic for render

* Update lock logic

* types and docs

* added some state machine logic to help rerenders

* merge

---------

Co-authored-by: Justin <justin.g.kerr@gmail.com>

* Refactor and cleanup

* More cleanup and docs

* docstring to gui_utils

* docstrings, rename viewer_param.py to viewer_elements.py

* Fix viewer, remove bridge stuff

* Render on connect

* Fix lint errors

* More eslint fixes

* render_freq logic

* better rerender logic for crop

* More cleanup

* Purge

* Cleanup

* Lint fixes

* Fix cache

* better parsing logic

* Fix infinite test

* More cleanup

* typo

* Update webdocs

* Update docs

* rerender on custom hooks

* add more docs

* Use shared utilities in `viser.infra`

* rework callback to use elements instead of handles

* Fix ESlint errors

* change naming of handle to element, add setter for value

* cleanup

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
Co-authored-by: Justin <justin.g.kerr@gmail.com>
Co-authored-by: Ethan Weber <eweb0124@gmail.com>
Co-authored-by: Matthew Tancik <tancik@berkeley.edu>
2023-04-14 14:53:10 -07:00
Pablo Vela
8126d47d8c
NeusFacto (#1654)
* add neus_facto method

* fix missing pixsfm from video process

* fix dev errors and small typos

---------

Co-authored-by: Ethan Weber <eweb0124@gmail.com>
2023-04-12 19:08:53 -05:00
Pablo Vela
ddfa463f4d
NeuS Implementation (#1444)
* add initial method configs and data manager

* add neus scheduler

* add initial surface model and neus

* add Neus ray sampler

* add sdf field

* move scale/shift calc to math utils

* add debug and fix sdf_dataset typo

* update vscode neus debug

* fix dataset and get initial working version

* add magic number from original repo

* black fixes

* clean up get weights/transmittance from alphas

* clean up typos in sdf datamanager

* type annotations on neus scheduler and remove unused params

* clean up and annotate sdf field along w/ other fixes

* more clean up

* remove unnessary directions norm

* resolve comments

* update neus scheduler to follow refactor

* fix linter errors

* fix some typos

* remove get_weights_from_alpha

* more comment fixes

* more linter error fixes

* clean up and add comments

* more little fixes for types/comments

* more comments

* rename NeuS Scheduler to DelayedScheduler

* rename DelayedScheduler to CosineDecayScheduler
2023-03-12 16:01:18 -04:00
Jake Austin
3ffee522e0
TrainerConfig inherit from InstantiateConfig (#1175)
Making TrainerConfig an InstantiateConfig so it can be swapped in and out with different methods. Also made the TrainerConfig a subclass of ExperimentConfig (which was changed from a printableconfig to an instantiateconfig), since we were already instantiating the Trainer class with the ExperimentConfig

Removed the "config" field from the TrainerCallbackAttributes struct to eliminate circular dependencies when types are checked.

Minor scripts and docs changes to accommodate the update to the config struct, meaning the flags that were associated with the TrainerConfig were moved up to the top level of the config.
2022-12-27 18:19:34 -10:00
Matthew Tancik
21f58252c1
remove tensorf model (#660)
* remove tensorf model

* lint
2022-10-04 16:39:47 -07:00
Matthew Tancik
654f070553
Remove mipnerf 360 (#659)
remove mipnerf 360
2022-10-04 16:29:11 -07:00
Matthew Tancik
531361a6aa
Remove remaining nerfactory (#598)
* Remove remaining nerfactory

* Lint
2022-10-01 12:28:15 -07:00
Matthew Tancik
1f83ad03db
Rename to nerfstudio (#589) 2022-09-29 23:42:15 -07:00
Ethan Weber
cf34ef4bd0
rename files and add project scripts (#566)
* scripts

* b

* fix file
2022-09-27 15:02:55 -07:00
Ethan Weber
7b5a251a30
[wip] dynamic batch size for instant ngp (#501)
* starting dynamic batch size branch

* dynamic batch pipeline code
2022-09-21 14:07:04 -07:00
Ethan Weber
5ccb8277d1
nerfacc integration (#447)
* integrated changes

* update

* stratified

* black

* bump version

* upgrade version
2022-09-16 09:51:19 -07:00
Ethan Weber
8973039e65
misc cleanup (#432)
* misc cuda improvements. added cone angle as param

* wandb as default. better organization for experiments

* turn off tensorboard

* disable eval when using viewer

* remove comment

* launch.json
2022-09-15 00:16:41 -07:00
Ethan Weber
de2cdb6cca
Friends dataset loading (#389)
command line dataparsing and friends dataset loading improvement
2022-09-11 12:52:27 -07:00
Matthew Tancik
f910836b8c
Cleanup (#325)
cleanup
2022-09-01 12:36:54 -07:00
Terrance Wang
8670f19d2d
Terrance/tensorf (#218)
* added tensorf, updated requirements for windows

* cleaning up imports

* tensorf changes

* initial working version of tensorf

* added callback for feature upsampling

* modifying tests to match changes

* reverting requirements changes

* reverting unnecessary changes

* reverting unnecessary changes

* no more upsampling on step 0

* removed density field, fixed error msg

* modified callbacks and upsampling, reinitializing optimzer in training loop

* deleting tensorf_field file"

* checkpointing progress on restructuring callbacks

* updated callback logic for before and after train capabilities

* fixing upsampling stepping

* merging

* adding tensorf to config, fixing some bugs with new callback

* changed the way callbacks detected steps argument in callback func

* fixing typing

* adding pylint disable no self use to get_training_callbacks

* fixing config

* changing callback in vanilla nerf to allow for no density field

* cleanup

* removing config yaml

Co-authored-by: Ethan Weber <eweb0124@gmail.com>
2022-08-31 23:29:13 -07:00
Matthew Tancik
04d0165a24
Camera Refactor (#301)
* Start camera refactor

* Training runs, but transforms incorrect

* Cameras render correctly in viewer.

* Fix eval

* cleanup

* cleanup
2022-08-29 13:09:02 -07:00
Ethan Weber
7e9a56fac4
Config restructure (#283)
* starting docs for pipelines

* working on an example

* clearing output

* starting to implement config changes and add documentation

* wip: removed cicular imports; porting basic config into python; todo: get python setups workin

* circular imports again

* wip: pausing at dataloader sort of working

* break for today

* running vanilla

* wip need to get all the config docs working

* laptop about to die

* instant ngp working

* added all configs for all methods; not tested yet: [mipnerf360, nerfw, semantic_nerf]

* unpacking later

* done with pylinting

* mostly done. just need to do docs and one test

* added import order to docs

* fixing near/far plane and other config things

* making loggers also instantiable via configs

* docs

* lint

* making --help work with dcargs

* moving configs back into flat

* convert list to tuples; fixed post init function with mutable params

* lint

* made run_eval and benchmarking scripts compatible with new config/dcargs

* lint

* added option to load configs from presaved config

Co-authored-by: evonneng <evonne_ng@berkeley.edu>
2022-08-26 17:25:10 -07:00
Matt Tancik
c1e8ef5c2d pyright entire directory by default 2022-08-25 12:13:32 -07:00
Ethan Weber
6879a8a9bd
Reorganizing docs for pipeline restructure (#279)
* 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
2022-08-16 12:10:24 -07:00
Ethan Weber
73fedc7593
Viewer refactor with state sync (#212)
* initial commit for viewer refactor

* updating name change to nerfactory

* adding headers

* making the rendering fix which broke from a merge

* things are starting to work. removing old commands now

* removed prints

* cleanup

* updating state works now even for nested dictionaries

* updating state in redux. listening for state changes. trying to draw three.js now

* added drawing functionality. need to fix translation of frustums and image planes

* images and frustums drawn correctly

* fixing lint

* github actions

* back to npm

* fixing eslint

* remove package.json from root

* new favicon

* some viewer cleanup

* notebook

* fixed camera drawings speed to avoid redraw

* trying to get Leva to update

* quick fix

* synced config panel

* adding notebook

* fixing output print error
2022-08-02 16:02:07 -05:00
Matthew Tancik
6c45f72c57
Typecheck workspace (#231) 2022-07-30 15:38:08 -07:00
Matthew Tancik
a957e8c501
Move datasets to classes (#227) 2022-07-28 18:41:39 -07:00
Ruilong Li
cd61517eb5 fix sorting 2022-07-27 01:08:27 +00:00
Ruilong Li(李瑞龙)
1cd697366e
sorting imports on save; cleanup imports sorting; add isort check (#207) 2022-07-26 14:35:38 -07:00
Ruilong Li(李瑞龙)
12cd321e1a
Update Instant-NGP & Density Grid with CUDA supports. Much faster and better PSNR. (#193) 2022-07-24 22:22:44 -07:00
Ethan Weber
05b92e228b
Fixing nerfw and adding to GH Actions (#167)
* added beta_min to nerfw, which I think is needed

* added camera interpolation path and restructured run_eval code

* adding to gitignore

* addressing github comments. mostly documentation

* fixing nerfw dataset for test cases
2022-07-19 16:21:54 -07:00
Ethan Weber
74ec84117e
cleaning up viewer code (#101) 2022-07-07 16:00:30 -07:00
Matthew Tancik
304a759e85
Tancik/scene contraction (#70)
Contract the scene to a sphere of radius 2. This is the same contraction used in MipNeRF 360.
Add mipnerf 360 graph and config. It currently doesn't contain the other advancements made in the paper (sample proposal network, regularizers)
2022-06-29 18:28:21 -07:00
evonneng
ee4e6b24f4
Added structured config support (#58)
* added typed config; idealy would convert graph to typed too....

* added graph as config
2022-06-17 08:46:03 -07:00
Matt Tancik
cc79708df7 Cleanup mipnerf implementation 2022-06-09 17:26:58 -07:00
Ethan Weber
457788d689
dataloader logic, new folder structure, flatter configs (#26)
* renaming dataloader to data. adding some dataloader classes

* restructuring configs

* fixed instant ngp tcnn direction rescaling

* working through test cases

* black and lint and tests
2022-06-08 09:01:56 -07:00
Ethan Weber
146332cfb6
Refactoring (data loading, semantic-nerf/nerf-w fixes, ...) (#8)
* in progress. camera_indices broken

* faster dataloader. starting on pixel sampler logic

* imagesampler and pixelsampler

* lint and black

* continuing merge

* pytest working

* fixed docs

* docs

* minor changes
2022-06-02 14:58:46 -04:00
Ethan Weber
676beebb14
Setting near and far with scene bounds collider. Also LR schedules. (#74)
* some initial cuda code as I learn. using git to save progress.

* first cuda kernel for ray sampling that mostly works

* cleaning up code. working on lr. structs for scene bounds aabb

* added scene bounds collider code

* updated setup

* setup

* setup

* black

* including some files

* exporting env variable

* new file

* git workflows

* github actions

* github actions

* github actions

* removing env var
2022-05-16 14:03:19 -07:00
Ethan Weber
1c1a58c4e5
nerf-w and semantic-nerf initial implementations (#73)
* initial nerfw code

* nerfw should be implmented correctly now

* semantic nerf in progress. data loader is too slow and not clean right now

* added implementation of semantic nerf

* mend
2022-05-13 17:44:16 -07:00
Matthew Tancik
2ebe34f01d
Use torchmetrics (#68) 2022-05-10 17:06:49 -07:00
Matthew Tancik
29ba6d8abc
Add ssim and update typechecks (#66)
* Add ssim and update typechecks

* update requirements

* Fix type error
2022-05-10 11:52:32 -07:00
Ethan Weber
5fb3d14304
Fixed testing and added graph abstractions (#64)
* abstracted some test logic and actually using test images now

* moved logging from trainer to graph

* fixing dataset path

* refactored instant ngp code to use inheritance

* fixed my run_train

* fixed data path

* fixed data dir
2022-05-09 11:54:40 -07:00
Matt Tancik
cf9c557b7b Add colormaps to logs 2022-05-06 18:07:12 -07:00
Matt Tancik
c164fd5207 Update vscode settings 2022-05-06 13:50:23 -07:00
Matt Tancik
0be41fe4dd Use pyproject.toml 2022-05-06 11:57:40 -07:00
Matt Tancik
a10eb5caef Add basic NGP encoder 2022-05-02 13:27:30 -07:00
Ethan Weber
6b17ad51c6 cpu support and multi gpu progress 2022-04-29 21:29:13 +00:00
Ethan Weber
dd6f79fc40 using test images. including some local data. black on save. disabled warnings for pytest 2022-04-29 16:23:05 +00:00
Ethan Weber
4c0df2fde8 merged from master 2022-04-22 03:51:28 +00:00